<?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>157080</bug_id>
          
          <creation_ts>2016-04-27 10:28:28 -0700</creation_ts>
          <short_desc>Change ProxyObject.[[Get]] not to use custom accessor</short_desc>
          <delta_ts>2016-06-05 18:54:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>154320</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="André Bargull">andre.bargull</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>barraclough</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1187792</commentid>
    <comment_count>0</comment_count>
    <who name="André Bargull">andre.bargull</who>
    <bug_when>2016-04-27 10:28:28 -0700</bug_when>
    <thetext>SVN: rev200124
Build with: perl Tools/Scripts/build-jsc --gtk --debug


The following test case triggers this assertion error:
---
ASSERTION FAILED: from.isCell() &amp;&amp; from.asCell()-&gt;JSCell::inherits(std::remove_pointer&lt;To&gt;::type::info())
---


Test case:
---
Reflect.get(new Proxy({}, {}), 0, 1)
---


Stack trace:
---
#0  0x00007ffff6e289ac in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:322
#1  0x00007ffff6e289bd in WTFCrashWithSecurityImplication () at ../../Source/WTF/wtf/Assertions.cpp:342
#2  0x00007ffff5fe50be in JSC::jsCast&lt;JSC::JSObject*&gt; (from=...) at ../../Source/JavaScriptCore/runtime/JSCell.h:244
#3  0x00007ffff6cf21c8 in JSC::performProxyGet (exec=0x7fffffffcae0, thisValue=-281474976710655, propertyName=...) at ../../Source/JavaScriptCore/runtime/ProxyObject.cpp:103
#4  0x00007ffff6cebb4e in JSC::PropertySlot::customGetter (this=0x7fffffffca80, exec=0x7fffffffcae0, propertyName=...) at ../../Source/JavaScriptCore/runtime/PropertySlot.cpp:39
#5  0x00000000004423b2 in JSC::PropertySlot::getValue (this=0x7fffffffca80, exec=0x7fffffffcae0, propertyName=...) at ../../Source/JavaScriptCore/runtime/PropertySlot.h:294
#6  0x0000000000448cfb in JSC::JSValue::get (this=0x7fffffffca40, exec=0x7fffffffcae0, propertyName=..., slot=...) at ../../Source/JavaScriptCore/runtime/JSCJSValueInlines.h:768
#7  0x00007ffff6cfc288 in JSC::reflectObjectGet (exec=0x7fffffffcae0) at ../../Source/JavaScriptCore/runtime/ReflectObject.cpp:181
#8  0x00007fffb0bff028 in ?? ()
#9  0x00007fffffffcb60 in ?? ()
#10 0x00007ffff6a33818 in llint_entry () from /home/andre/svn/webkit/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18
Backtrace stopped: frame did not save the PC
---</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193145</commentid>
    <comment_count>1</comment_count>
      <attachid>278946</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-14 14:22:34 -0700</bug_when>
    <thetext>Created attachment 278946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193156</commentid>
    <comment_count>2</comment_count>
      <attachid>278948</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-14 15:52:03 -0700</bug_when>
    <thetext>Created attachment 278948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193160</commentid>
    <comment_count>3</comment_count>
      <attachid>278951</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-14 16:43:00 -0700</bug_when>
    <thetext>Created attachment 278951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195735</commentid>
    <comment_count>4</comment_count>
      <attachid>278951</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-23 22:42:55 -0700</bug_when>
    <thetext>Comment on attachment 278951
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/PropertySlot.h:97
&gt; +    typedef EncodedJSValue (*GetValueFunc)(ExecState*, EncodedJSValue thisValue, PropertyName, JSObject* slotBase);

Can you add a comment here talking about the difference between a CustomAccessorGetter and a CustomValueGatter, and what the arguments are for them?
And then maybe a fixme to see if we can combine them? I think we can since you&apos;re adding this new argument. But it requires a lot of one line fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195742</commentid>
    <comment_count>5</comment_count>
      <attachid>278951</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-23 23:12:31 -0700</bug_when>
    <thetext>Comment on attachment 278951
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/runtime/PropertySlot.h:97
&gt;&gt; +    typedef EncodedJSValue (*GetValueFunc)(ExecState*, EncodedJSValue thisValue, PropertyName, JSObject* slotBase);
&gt; 
&gt; Can you add a comment here talking about the difference between a CustomAccessorGetter and a CustomValueGatter, and what the arguments are for them?
&gt; And then maybe a fixme to see if we can combine them? I think we can since you&apos;re adding this new argument. But it requires a lot of one line fixes.

Nice! Added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195745</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-23 23:23:41 -0700</bug_when>
    <thetext>Committed r201322: &lt;http://trac.webkit.org/changeset/201322&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195752</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-23 23:43:02 -0700</bug_when>
    <thetext>*** Bug 154320 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195837</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-24 07:32:50 -0700</bug_when>
    <thetext>Committed r201331: &lt;http://trac.webkit.org/changeset/201331&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196673</commentid>
    <comment_count>9</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-05-26 00:37:38 -0700</bug_when>
    <thetext>Yusuke,

I&apos;m not keen on this change - this actually reverse a change I made a couple of months ago (removing slotBase from getters): https://bugs.webkit.org/show_bug.cgi?id=154009

Previously having both the thisValue and slotBase passed into getters resulted in them being used inconsistently and incorrectly (and is clearly inefficient if they are not both required).

And they never were both required:
- In the case of custom value getters, you should only ever be operating on the holder of the property - the slotBase.
- In the case of custom accessors you should only ever be operating on the receiver of the access - the thisValue.

I have two specific concerns with this change:

1) In JSBoundSlotBaseFunction you are using slotBase. All use of slotBase in JSBoundSlotBaseFunction is incorrect. We use JSBoundSlotBaseFunction  to reflect custom accessor as JSFunctions, but custom accessor SHOULD NOT be binding to the object they are extracted from. This is not correct behavior. If you follow through the logic you&apos;ll find that the value of slotBase  is never actually used prior to your change (as it should not be). I was just working on a patch to rename this class &amp; remove m_slotBase [ https://bugs.webkit.org/show_bug.cgi?id=157978 ]. Reintroducing this use of slotBase is almost certainly a bug.

2) Your patch does not change the value being passed in as the thisValue. This means that in the case of custom value getters, you&apos;ve changed it such that we&apos;re passing the slotBase into the getter twice, rather than passing thisValue &amp; slotBase. If you are going to pass two base values in to the getter (which, again, I don&apos;t think we should - it&apos;s unnecessary, inefficient, and error-prone), then you should make the If we are going to pass the slotBase in to getters, then I think we should make the thisValue actually be the thisValue, and not a second copy of slotBase.

I must admit I don&apos;t yet understand why this change was necessary as a part of a fix to this bug – I&apos;ll take a closer look at the test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196675</commentid>
    <comment_count>10</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-05-26 00:51:50 -0700</bug_when>
    <thetext>Hmmm, from a high level description of the operation it sounds like Reflect.get should should just be getting the property descriptor from the target, if it&apos;s a value return it, if it&apos;s an accessor call it passing receiver. But maybe that doesn&apos;t match the spec - I&apos;ll have to dig into that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196679</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-26 01:40:27 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Yusuke,

Gavin, thank you for your notification :)

&gt; 
&gt; I&apos;m not keen on this change - this actually reverse a change I made a couple
&gt; of months ago (removing slotBase from getters):
&gt; https://bugs.webkit.org/show_bug.cgi?id=154009
&gt; 
&gt; Previously having both the thisValue and slotBase passed into getters
&gt; resulted in them being used inconsistently and incorrectly (and is clearly
&gt; inefficient if they are not both required).
&gt; 
&gt; And they never were both required:
&gt; - In the case of custom value getters, you should only ever be operating on
&gt; the holder of the property - the slotBase.
&gt; - In the case of custom accessors you should only ever be operating on the
&gt; receiver of the access - the thisValue.

Hmm, this change was made because ProxyObject&apos;s performProxyGet require both, slotBase and receiver.
When the custom getter is called, performProxyGet need to extract ProxyObject from slotBase, and
later, when the proxy traps, it invokes the handler with receiver.

Now, I&apos;m attempting to discuss with Saam about performProxyGet on IRC (Maybe, now PST is super late, right?). This is only the function that requires the both currently.
And if we can remove this custom accessor usage, we can clean up.

&gt; 
&gt; I have two specific concerns with this change:
&gt; 
&gt; 1) In JSBoundSlotBaseFunction you are using slotBase. All use of slotBase in
&gt; JSBoundSlotBaseFunction is incorrect. We use JSBoundSlotBaseFunction  to
&gt; reflect custom accessor as JSFunctions, but custom accessor SHOULD NOT be
&gt; binding to the object they are extracted from. This is not correct behavior.
&gt; If you follow through the logic you&apos;ll find that the value of slotBase  is
&gt; never actually used prior to your change (as it should not be). I was just
&gt; working on a patch to rename this class &amp; remove m_slotBase [
&gt; https://bugs.webkit.org/show_bug.cgi?id=157978 ]. Reintroducing this use of
&gt; slotBase is almost certainly a bug.

Sounds reasonable.

&gt; 
&gt; 2) Your patch does not change the value being passed in as the thisValue.
&gt; This means that in the case of custom value getters, you&apos;ve changed it such
&gt; that we&apos;re passing the slotBase into the getter twice, rather than passing
&gt; thisValue &amp; slotBase. If you are going to pass two base values in to the
&gt; getter (which, again, I don&apos;t think we should - it&apos;s unnecessary,
&gt; inefficient, and error-prone), then you should make the If we are going to
&gt; pass the slotBase in to getters, then I think we should make the thisValue
&gt; actually be the thisValue, and not a second copy of slotBase.

Right. So I was planning to pass the same parameters to custom value/accessor getter in the subsequent patch[1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=158014

&gt; 
&gt; I must admit I don&apos;t yet understand why this change was necessary as a part
&gt; of a fix to this bug – I&apos;ll take a closer look at the test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196681</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-26 02:04:17 -0700</bug_when>
    <thetext>Reconsider about slotBase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196682</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-26 02:16:13 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Now, I&apos;m attempting to discuss with Saam about performProxyGet on IRC
&gt; (Maybe, now PST is super late, right?). This is only the function that
&gt; requires the both currently.
&gt; And if we can remove this custom accessor usage, we can clean up.

I guess that CustomAccessor is used because throwing an error in getOwnPropertySlot for InternalMethodType::Get is not allowed/considered in the current JSC. slot.getValue() is guarded by exception checks. But getOwnPropertySlot with InternalMethodType::Get is not.
ProxyObject&apos;s performProxyGet need to call handlers, thus it can throw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196684</commentid>
    <comment_count>14</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-26 02:29:11 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #11)
&gt; &gt; Now, I&apos;m attempting to discuss with Saam about performProxyGet on IRC
&gt; &gt; (Maybe, now PST is super late, right?). This is only the function that
&gt; &gt; requires the both currently.
&gt; &gt; And if we can remove this custom accessor usage, we can clean up.
&gt; 
&gt; I guess that CustomAccessor is used because throwing an error in
&gt; getOwnPropertySlot for InternalMethodType::Get is not allowed/considered in
&gt; the current JSC. slot.getValue() is guarded by exception checks. But
&gt; getOwnPropertySlot with InternalMethodType::Get is not.
&gt; ProxyObject&apos;s performProxyGet need to call handlers, thus it can throw.

There is two ways to fix the situation I think.

1. 
Adding a new types, GetCustomValueFunc and GetCustomAccessorFunc.

EncodedJSValue (*GetCustomValueFunc)(ExecState*, EncodedJSValue thisValue, PropertyName, JSObject* slotBase);
EncodedJSValue (*GetCustomAccessorFunc)(ExecState*, EncodedJSValue thisValue, PropertyName);

While GetCustomValueFunc gets slotBase and receiver, GetCustomAccessorFunc does not. And change ProxyObject&apos;s custom accessor getter to custom value getter.
Since current JSBoundSlotBaseFunction is not used for custom value getter, this also solves that problem.

2.
Change to allow throwing exceptions from InternalMethodType::Get, and insert exception checks carefully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196685</commentid>
    <comment_count>15</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-26 02:46:18 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; 1. 
&gt; Adding a new types, GetCustomValueFunc and GetCustomAccessorFunc.
&gt; 
&gt; EncodedJSValue (*GetCustomValueFunc)(ExecState*, EncodedJSValue thisValue,
&gt; PropertyName, JSObject* slotBase);
&gt; EncodedJSValue (*GetCustomAccessorFunc)(ExecState*, EncodedJSValue
&gt; thisValue, PropertyName);
&gt; 
&gt; While GetCustomValueFunc gets slotBase and receiver, GetCustomAccessorFunc
&gt; does not. And change ProxyObject&apos;s custom accessor getter to custom value
&gt; getter.
&gt; Since current JSBoundSlotBaseFunction is not used for custom value getter,
&gt; this also solves that problem.

Here, I mean that adding these types and replacing GetValueFunc with them. Using the same type for two different functions (custom value func / custom accessor func) may be error prone I think.

&gt; 
&gt; 2.
&gt; Change to allow throwing exceptions from InternalMethodType::Get, and insert
&gt; exception checks carefully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196699</commentid>
    <comment_count>16</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-26 05:16:19 -0700</bug_when>
    <thetext>*** Bug 157083 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196991</commentid>
    <comment_count>17</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-05-26 23:38:12 -0700</bug_when>
    <thetext>&gt; There is two ways to fix the situation I think.
&gt; 
&gt; 1. 
&gt; Adding a new types, GetCustomValueFunc and GetCustomAccessorFunc.
&gt; 
&gt; EncodedJSValue (*GetCustomValueFunc)(ExecState*, EncodedJSValue thisValue,
&gt; PropertyName, JSObject* slotBase);
&gt; EncodedJSValue (*GetCustomAccessorFunc)(ExecState*, EncodedJSValue
&gt; thisValue, PropertyName);
&gt; 
&gt; While GetCustomValueFunc gets slotBase and receiver, GetCustomAccessorFunc
&gt; does not. And change ProxyObject&apos;s custom accessor getter to custom value
&gt; getter.
&gt; Since current JSBoundSlotBaseFunction is not used for custom value getter,
&gt; this also solves that problem.

So, Yes, and Yes.

Yes – I think this is just a good idea anyway – had been considering this, and agree that it would make things less confusing.

And Yes – I think this would be an acceptable solution. I am more concerned with the issues around the accessors and this solves that. For custom values reintroducing the slotBase for now is not too horrible.
 
&gt; 2.
&gt; Change to allow throwing exceptions from InternalMethodType::Get, and insert
&gt; exception checks carefully.

I actually think this is probably more the right direction in the long term. Having the extra hop of setting up &amp; calling the custom value getter if likely introduces some avoidable overhead &amp; complexity. But that&apos;s a discussion for later - reintroducing a separate slotBase for custom values may well be a pragmatic solution for now.




A bunch more suggestions, for bonus points:


(1) Argument order of your GetCustomValueFunc:

    EncodedJSValue (*GetCustomValueFunc)(ExecState*, EncodedJSValue thisValue, PropertyName, JSObject* slotBase);

I&apos;d personally prefer it if you could change the order to:

    EncodedJSValue (*GetCustomValueFunc)(ExecState*, JSObject* slotBase, PropertyName, EncodedJSValue thisValue);

My reasoning is: for all other existing custom value getters in the code base other than performProxyGet, the this value the getter should be working on is the slotBase. I think the API design here can lead people towards making the right decision. Placing the things they&apos;re likely to want as the 1st &amp; 2nd arguments, putting the rarely used things in 3rd &amp; 4th positions seems more logical. Placing the things that most clients want in 1st &amp; 4th positions, with a red herring of a 2nd argument, seems prone to leading to mistakes being made.


(2) Pretty sure custom accessors don&apos;t need property names.

If you split the GetValueFunc like this, I think you&apos;ll find that no custom accessor uses the PropertyName – we should be able to remove it.

    EncodedJSValue (*GetCustomAccessorFunc)(ExecState*, EncodedJSValue thisValue);


(3) Naming of the arguments.

I think &apos;thisValue&apos; and &apos;slotBase&apos; are confusing and unclear names – it would be great to rename them.

- &apos;thisValue&apos; is the object upon which the access originates. I think both the specification and V8 refer to this as the &apos;receiver&apos;. I think this is both slightly more descriptive and meaningful than &apos;thisValue&apos;, and matching the spec provides some helpful documentation.
- &apos;slotBase&apos; is the object that logically holds the property - where the descriptor is read from. I believe V8 uses the term &apos;holder&apos;, and the pec uses &apos;target&apos;. I like our name &apos;slotBase&apos; the least. [It says we filled it out into the property slot, it doesn&apos;t say why – it can be interpreted in a way that would be describing the receiver, it&apos;s just unclear.] &apos;holder&apos; is not a bad name at all, but I&apos;d be inclined to just match the spec for documentation purposes.

As such, I&apos;d suggest the following function signatures could be ideal:

    EncodedJSValue (*GetCustomValueFunc)(ExecState*, JSObject* target, PropertyName, EncodedJSValue receiver);
    EncodedJSValue (*GetCustomAccessorFunc)(ExecState*, EncodedJSValue receiver);


(4) What about PutValueFunc?

If we&apos;re going to make this change to get, ideally we&apos;d symmetrically make it for put – it has the same ambiguity over the this value:

    bool (*PutCustomValueFunc)(ExecState*, JSObject* target, EncodedJSValue value);
    bool (*PutCustomAccessorFunc)(ExecState*, EncodedJSValue receiver, EncodedJSValue value);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196995</commentid>
    <comment_count>18</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-27 00:32:14 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; Now, I&apos;m attempting to discuss with Saam about performProxyGet on IRC
&gt; &gt; &gt; (Maybe, now PST is super late, right?). This is only the function that
&gt; &gt; &gt; requires the both currently.
&gt; &gt; &gt; And if we can remove this custom accessor usage, we can clean up.
&gt; &gt; 
&gt; &gt; I guess that CustomAccessor is used because throwing an error in
&gt; &gt; getOwnPropertySlot for InternalMethodType::Get is not allowed/considered in
&gt; &gt; the current JSC. slot.getValue() is guarded by exception checks. But
&gt; &gt; getOwnPropertySlot with InternalMethodType::Get is not.
&gt; &gt; ProxyObject&apos;s performProxyGet need to call handlers, thus it can throw.
&gt; 
&gt; There is two ways to fix the situation I think.
&gt; 
&gt; 1. 
&gt; Adding a new types, GetCustomValueFunc and GetCustomAccessorFunc.
&gt; 
&gt; EncodedJSValue (*GetCustomValueFunc)(ExecState*, EncodedJSValue thisValue,
&gt; PropertyName, JSObject* slotBase);
&gt; EncodedJSValue (*GetCustomAccessorFunc)(ExecState*, EncodedJSValue
&gt; thisValue, PropertyName);
&gt; 
&gt; While GetCustomValueFunc gets slotBase and receiver, GetCustomAccessorFunc
&gt; does not. And change ProxyObject&apos;s custom accessor getter to custom value
&gt; getter.
&gt; Since current JSBoundSlotBaseFunction is not used for custom value getter,
&gt; this also solves that problem.
&gt; 
&gt; 2.
&gt; Change to allow throwing exceptions from InternalMethodType::Get, and insert
&gt; exception checks carefully.

I think (2) would be a very easy change to make. I don&apos;t know
of any places that have InternalMethodType::Get that don&apos;t immediately
get the value (and if there are, we can probably extend them to work
with a different model, for example, our IC code probably wants caching
information while performing a get()). We can just provide one function that does this get for us and that function can have the exception checks in the correct place. It may be worth doing this for the other InternalMethodType operations as well.

Regarding Gavin&apos;s name change proposal, I think that&apos;s one of the most important
changes we can make to help this code regain readability and help prevents bugs.
I&apos;m still confused every time I look at this code. I&apos;m confused just reading the comments and I have to remind myself what each name means.
FWIW, my vote is for the &apos;receiver&apos;, &apos;holder&apos; pair of names. Those names make sense to me and I think it would be hard to confuse them. 

(I&apos;m typing on my phone so I will respond in more detail when I have a keyboard.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197013</commentid>
    <comment_count>19</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-27 01:36:41 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; I think (2) would be a very easy change to make. I don&apos;t know
&gt; of any places that have InternalMethodType::Get that don&apos;t immediately
&gt; get the value (and if there are, we can probably extend them to work
&gt; with a different model, for example, our IC code probably wants caching
&gt; information while performing a get()). We can just provide one function that
&gt; does this get for us and that function can have the exception checks in the
&gt; correct place. It may be worth doing this for the other InternalMethodType
&gt; operations as well.
&gt; 
&gt; Regarding Gavin&apos;s name change proposal, I think that&apos;s one of the most
&gt; important
&gt; changes we can make to help this code regain readability and help prevents
&gt; bugs.
&gt; I&apos;m still confused every time I look at this code. I&apos;m confused just reading
&gt; the comments and I have to remind myself what each name means.
&gt; FWIW, my vote is for the &apos;receiver&apos;, &apos;holder&apos; pair of names. Those names
&gt; make sense to me and I think it would be hard to confuse them. 
&gt; 
&gt; (I&apos;m typing on my phone so I will respond in more detail when I have a
&gt; keyboard.)

Nice! While taking (2), Gavin&apos;s proposal is also very good to add it.

(In reply to comment #17)
&gt; (1) Argument order of your GetCustomValueFunc:
&gt; 
&gt;     EncodedJSValue (*GetCustomValueFunc)(ExecState*, EncodedJSValue
&gt; thisValue, PropertyName, JSObject* slotBase);
&gt; 
&gt; I&apos;d personally prefer it if you could change the order to:
&gt; 
&gt;     EncodedJSValue (*GetCustomValueFunc)(ExecState*, JSObject* slotBase,
&gt; PropertyName, EncodedJSValue thisValue);
&gt; 
&gt; My reasoning is: for all other existing custom value getters in the code
&gt; base other than performProxyGet, the this value the getter should be working
&gt; on is the slotBase. I think the API design here can lead people towards
&gt; making the right decision. Placing the things they&apos;re likely to want as the
&gt; 1st &amp; 2nd arguments, putting the rarely used things in 3rd &amp; 4th positions
&gt; seems more logical. Placing the things that most clients want in 1st &amp; 4th
&gt; positions, with a red herring of a 2nd argument, seems prone to leading to
&gt; mistakes being made.

Yeah, right. The custom value getter should work with the slot base (holder).
And after taking (2) change, this custom value getter signature should be,

EncodedJSValue (*GetCustomValueFunc)(ExecState*, JSObject* holder, PropertyName);

I think this is reasonable. BTW, it is super slightly efficient in ARM 32bit environment (due to EABI).

&gt; 
&gt; 
&gt; (2) Pretty sure custom accessors don&apos;t need property names.
&gt; 
&gt; If you split the GetValueFunc like this, I think you&apos;ll find that no custom
&gt; accessor uses the PropertyName – we should be able to remove it.
&gt; 
&gt;     EncodedJSValue (*GetCustomAccessorFunc)(ExecState*, EncodedJSValue
&gt; thisValue);

Yeah, right. Roughly looking into the code base, it seems that there is no custom accessor getter that uses this property name.
Due to the similar reason to the slot base argument, it is better dropping this argument too.
It gives us simplified signature for custom accessor.

EncodedJSValue (*GetCustomAccessorFunc)(ExecState*, EncodedJSValue receiver);


&gt; (3) Naming of the arguments.
&gt; 
&gt; I think &apos;thisValue&apos; and &apos;slotBase&apos; are confusing and unclear names – it
&gt; would be great to rename them.

Yup.

&gt; 
&gt; - &apos;thisValue&apos; is the object upon which the access originates. I think both
&gt; the specification and V8 refer to this as the &apos;receiver&apos;. I think this is
&gt; both slightly more descriptive and meaningful than &apos;thisValue&apos;, and matching
&gt; the spec provides some helpful documentation.

Strongly agreed. &quot;receiver&quot; seems better.
And by aligning to the spec, we can easily validate our implementation to the spec.
Changing PropertySlot::thisValue to PropertySlot::receiver also gives us better readability.

&gt; - &apos;slotBase&apos; is the object that logically holds the property - where the
&gt; descriptor is read from. I believe V8 uses the term &apos;holder&apos;, and the pec
&gt; uses &apos;target&apos;. I like our name &apos;slotBase&apos; the least. [It says we filled it
&gt; out into the property slot, it doesn&apos;t say why – it can be interpreted in a
&gt; way that would be describing the receiver, it&apos;s just unclear.] &apos;holder&apos; is
&gt; not a bad name at all, but I&apos;d be inclined to just match the spec for
&gt; documentation purposes.
&gt; 
&gt; As such, I&apos;d suggest the following function signatures could be ideal:
&gt; 
&gt;     EncodedJSValue (*GetCustomValueFunc)(ExecState*, JSObject* target,
&gt; PropertyName, EncodedJSValue receiver);
&gt;     EncodedJSValue (*GetCustomAccessorFunc)(ExecState*, EncodedJSValue
&gt; receiver);

Personally I like &quot;holder&quot; and &quot;slotBase&quot; both.

&gt; 
&gt; (4) What about PutValueFunc?
&gt; 
&gt; If we&apos;re going to make this change to get, ideally we&apos;d symmetrically make
&gt; it for put – it has the same ambiguity over the this value:
&gt; 
&gt;     bool (*PutCustomValueFunc)(ExecState*, JSObject* target, EncodedJSValue
&gt; value);
&gt;     bool (*PutCustomAccessorFunc)(ExecState*, EncodedJSValue receiver,
&gt; EncodedJSValue value);

Yes, I think we should change that.

bool (*PutCustomValueFunc)(ExecState*, JSObject* holder, EncodedJSValue value);
bool (*PutCustomAccessorFunc)(ExecState*, EncodedJSValue receiver, EncodedJSValue value);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197021</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-27 02:16:07 -0700</bug_when>
    <thetext>BTW, just out of curiosity, it seems that DOM attributes are represented as custom accessors. Where is this behavior defined?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197143</commentid>
    <comment_count>21</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-05-27 12:07:11 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; BTW, just out of curiosity, it seems that DOM attributes are represented as
&gt; custom accessors. Where is this behavior defined?

It certainly is spec defined, but I never remember what is covered in which spec. cdumez would know!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197329</commentid>
    <comment_count>22</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-27 22:47:00 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; BTW, just out of curiosity, it seems that DOM attributes are represented as
&gt; &gt; custom accessors. Where is this behavior defined?
&gt; 
&gt; It certainly is spec defined, but I never remember what is covered in which
&gt; spec. cdumez would know!

Thanks, gotcha.

OK, as a first step, I&apos;ll upload the patch that change ProxyObject&apos;s custom accessor use and drop the JSObject* slotBase last parameter. It allows Gavin&apos;s patch landed.

And after that, I&apos;ll replace &quot;thisValue&quot; / &quot;thisObject&quot; etc to &quot;receiver&quot;, &quot;receiverObject&quot; etc. And introduce new value / accessor funcs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197340</commentid>
    <comment_count>23</comment_count>
      <attachid>280026</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-28 00:09:34 -0700</bug_when>
    <thetext>Created attachment 280026
Patch

Need tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197353</commentid>
    <comment_count>24</comment_count>
      <attachid>280032</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-28 01:09:50 -0700</bug_when>
    <thetext>Created attachment 280032
Patch

WIP: dynamic get_from_scope tests are added</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198920</commentid>
    <comment_count>25</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-06-03 07:31:44 -0700</bug_when>
    <thetext>hmmmmmmm, there are so many missing error checks after hasProperty()...
I&apos;ll fix this issue in the separate patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198993</commentid>
    <comment_count>26</comment_count>
      <attachid>280451</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-06-03 12:16:35 -0700</bug_when>
    <thetext>Created attachment 280451
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199373</commentid>
    <comment_count>27</comment_count>
      <attachid>280548</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-06-05 08:22:28 -0700</bug_when>
    <thetext>Created attachment 280548
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199374</commentid>
    <comment_count>28</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-06-05 08:23:37 -0700</bug_when>
    <thetext>Performance looks neutral or slightly better. (Due to exec-&gt;vm() inlining)

Benchmark report for SunSpider, Octane, Kraken, and AsmBench on hanayamata.

VMs tested:
&quot;baseline&quot; at /home/yusukesuzuki/dev/WebKit/WebKitBuild/slotbase-master/Release/bin/jsc
&quot;patched&quot; at /home/yusukesuzuki/dev/WebKit/WebKitBuild/slotbase3/Release/bin/jsc

Collected 10 samples per benchmark/VM, with 10 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to
get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                 baseline                  patched                                      
SunSpider:
   3d-cube                                    6.2314+-0.4959     ?      6.2809+-0.5050        ?
   3d-morph                                  25.8342+-0.1299           25.7833+-0.1167        
   3d-raytrace                                7.2051+-0.7738            7.0978+-0.7920          might be 1.0151x faster
   access-binary-trees                        2.3703+-0.1982     ?      2.4647+-0.3670        ? might be 1.0399x slower
   access-fannkuch                            6.3885+-0.2690     ?      6.5939+-0.4993        ? might be 1.0321x slower
   access-nbody                               2.8629+-0.0243     ?      2.8881+-0.0169        ?
   access-nsieve                              3.2344+-0.0862     ?      3.4032+-0.2429        ? might be 1.0522x slower
   bitops-3bit-bits-in-byte                   1.2270+-0.0908            1.2153+-0.0965        
   bitops-bits-in-byte                        2.7954+-0.2056            2.7179+-0.1588          might be 1.0285x faster
   bitops-bitwise-and                         1.9922+-0.0413            1.9755+-0.0188        
   bitops-nsieve-bits                         3.2374+-0.2751     ?      3.3523+-0.3541        ? might be 1.0355x slower
   controlflow-recursive                      2.8321+-0.2692     ?      2.9626+-0.2102        ? might be 1.0461x slower
   crypto-aes                                 5.2610+-0.0625            5.2607+-0.0479        
   crypto-md5                                 2.7231+-0.0911            2.7069+-0.0746        
   crypto-sha1                                2.5471+-0.1121     ?      2.6289+-0.2780        ? might be 1.0321x slower
   date-format-tofte                         10.9906+-0.2385     ?     10.9928+-0.2194        ?
   date-format-xparb                          6.0336+-0.1793            5.8869+-0.0795          might be 1.0249x faster
   math-cordic                                3.0885+-0.0806            3.0579+-0.0693          might be 1.0100x faster
   math-partial-sums                         11.2670+-1.4539           10.5288+-0.0349          might be 1.0701x faster
   math-spectral-norm                         2.1292+-0.0718     ?      2.1982+-0.0945        ? might be 1.0324x slower
   regexp-dna                                 7.3740+-0.0438     ?      7.3743+-0.0397        ?
   string-base64                              3.9361+-0.0184     ?      4.0377+-0.1214        ? might be 1.0258x slower
   string-fasta                               6.4778+-0.4643            6.3651+-0.0904          might be 1.0177x faster
   string-tagcloud                            9.8062+-0.0861     ?     10.0663+-0.4486        ? might be 1.0265x slower
   string-unpack-code                        20.3599+-0.2200     ^     19.4320+-0.1070        ^ definitely 1.0477x faster
   string-validate-input                      4.3019+-0.1048     ?      4.3166+-0.0982        ?

   &lt;arithmetic&gt;                               6.2503+-0.0831            6.2149+-0.0734          might be 1.0057x faster

                                                 baseline                  patched                                      
Octane:
   encrypt                                   0.17801+-0.00143    ?     0.17953+-0.00125       ?
   decrypt                                   3.04231+-0.01640          3.03613+-0.01619       
   deltablue                        x2       0.14989+-0.00561    ?     0.15093+-0.00177       ?
   earley                                    0.33671+-0.00096          0.33611+-0.00151       
   boyer                                     5.31995+-0.01633    ?     5.32392+-0.02081       ?
   navier-stokes                    x2       4.80850+-0.06221          4.77989+-0.00261       
   raytrace                         x2       0.93480+-0.01018    ?     0.93678+-0.00513       ?
   richards                         x2       0.09718+-0.00156    ?     0.09748+-0.00118       ?
   splay                            x2       0.39753+-0.00381          0.39713+-0.00342       
   regexp                           x2      18.71190+-0.12091         18.68516+-0.13110       
   pdfjs                            x2      43.54796+-0.61695    ^    42.18400+-0.34963       ^ definitely 1.0323x faster
   mandreel                         x2      48.97782+-0.49090         48.76037+-0.12389       
   gbemu                            x2      39.68383+-2.84287         39.59681+-2.26499       
   closure                                   0.62641+-0.03081          0.61135+-0.00353         might be 1.0246x faster
   jquery                                    8.06943+-0.14904          8.02381+-0.03563       
   box2d                            x2      14.82936+-0.32708    ^    14.35973+-0.08975       ^ definitely 1.0327x faster
   zlib                             x2     375.53504+-17.26765       366.22104+-7.96651         might be 1.0254x faster
   typescript                       x2     816.42893+-8.88835        810.97114+-7.67738       

   &lt;geometric&gt;                               5.94667+-0.05103          5.90495+-0.03067         might be 1.0071x faster

                                                 baseline                  patched                                      
Kraken:
   ai-astar                                   96.826+-2.078      ?      96.969+-2.035         ?
   audio-beat-detection                       46.986+-2.994      ?      47.065+-2.973         ?
   audio-dft                                 123.185+-0.140      ?     123.213+-0.131         ?
   audio-fft                                  37.285+-0.035             37.282+-0.011         
   audio-oscillator                           53.912+-0.310      ^      53.444+-0.087         ^ definitely 1.0088x faster
   imaging-darkroom                           87.680+-0.277             87.536+-0.115         
   imaging-desaturate                         56.483+-0.362      ?      56.575+-0.646         ?
   imaging-gaussian-blur                      74.618+-4.118      ?      81.110+-4.830         ? might be 1.0870x slower
   json-parse-financial                       46.643+-1.173      ^      43.168+-0.431         ^ definitely 1.0805x faster
   json-stringify-tinderbox                   26.427+-0.259             26.164+-0.056           might be 1.0100x faster
   stanford-crypto-aes                        44.335+-0.476             44.119+-0.609         
   stanford-crypto-ccm                        44.383+-2.910      ?      44.737+-2.325         ?
   stanford-crypto-pbkdf2                    112.726+-3.880      ^     106.533+-1.133         ^ definitely 1.0581x faster
   stanford-crypto-sha256-iterative           38.581+-0.450      ^      37.858+-0.215         ^ definitely 1.0191x faster

   &lt;arithmetic&gt;                               63.576+-0.500             63.269+-0.375           might be 1.0049x faster

                                                 baseline                  patched                                      
AsmBench:
   towers.c                                 276.0853+-0.4833     ?    276.2968+-0.5142        ?
   n-body.c                                 917.2735+-8.8774          913.9123+-10.6103       
   float-mm.c                               713.5380+-5.7114     ?    740.2077+-42.1313       ? might be 1.0374x slower
   container.cpp                           3010.2078+-22.2541        3004.6500+-21.1110       
   quicksort.c                              436.2158+-5.0901     ?    453.1074+-30.1013       ? might be 1.0387x slower
   gcc-loops.cpp                           4142.0506+-26.6415    ?   4169.2655+-30.9709       ?
   bigfib.cpp                               453.3693+-6.3037          451.0540+-4.5639        
   hash-map                                 154.4345+-2.7118     ?    155.4508+-1.9327        ?
   dry.c                                    473.0838+-21.6665    ?    475.0469+-15.7381       ?

   &lt;geometric&gt;                              683.3217+-3.9256     ?    689.2355+-5.7139        ? might be 1.0087x slower

                                                 baseline                  patched                                      
Geomean of preferred means:
   &lt;scaled-result&gt;                           35.6448+-0.1386           35.5661+-0.1647          might be 1.0022x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199378</commentid>
    <comment_count>29</comment_count>
      <attachid>280550</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-06-05 08:59:28 -0700</bug_when>
    <thetext>Created attachment 280550
Patch

Just a build fix for WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199385</commentid>
    <comment_count>30</comment_count>
      <attachid>280553</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-06-05 10:02:31 -0700</bug_when>
    <thetext>Created attachment 280553
Patch

binding test rebaselining</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199394</commentid>
    <comment_count>31</comment_count>
      <attachid>280553</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-05 10:58:19 -0700</bug_when>
    <thetext>Comment on attachment 280553
Patch

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

&gt; Source/JavaScriptCore/jsc.cpp:1454
&gt; +    String sourceCode = exec-&gt;argument(0).toString(exec)-&gt;value(exec);
&gt; +    if (exec-&gt;hadException())
&gt; +        return JSValue::encode(jsUndefined());

There’s a faster way to write this:

    auto* sourceCodeObject = exec-&gt;argument(0).toStringOrNull(exec);
    if (!sourceCodeObject)
        return JSValue::encode(jsUndefined());
    Strings sourceCode = sourceCodeObject-&gt;value(exec);

But if we are not trying to do that faster idiom, then I would have suggested using toWTFString rather than writing out toString(exec)-&gt;value(exec), which does the same thing. Maybe someone can make a version of toWTFString that does the faster idiom.

&gt; Source/JavaScriptCore/runtime/JSCJSValue.h:293
&gt; +    template&lt;typename Func&gt;
&gt; +    typename std::result_of&lt;Func(bool, PropertySlot&amp;)&gt;::type getPropertySlot(ExecState*, PropertyName, Func) const;
&gt; +    template&lt;typename Func&gt;
&gt; +    typename std::result_of&lt;Func(bool, PropertySlot&amp;)&gt;::type getPropertySlot(ExecState*, PropertyName, PropertySlot&amp;, Func) const;

Would you be willing to use an entire word, instead of &quot;Func&quot;? I also think these are easier to read on a single line rather than with template above typename.

&gt; Source/JavaScriptCore/runtime/ObjectPrototype.cpp:288
&gt; +                return JSValue();

Why do we use jsUndefined() in some cases, and JSValue() in others, for the ignored value when there is an exception in the global state? Is one consistently better?

&gt; Source/JavaScriptCore/runtime/ObjectPrototype.cpp:294
&gt; +                JSString* result = ropeBuilder.release();

I’d use auto for this.

&gt; Source/JavaScriptCore/runtime/ObjectPrototype.cpp:305
&gt; +        JSString* result = jsNontrivialString(&amp;vm, newString);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199453</commentid>
    <comment_count>32</comment_count>
      <attachid>280553</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-06-05 18:34:07 -0700</bug_when>
    <thetext>Comment on attachment 280553
Patch

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

&gt;&gt; Source/JavaScriptCore/jsc.cpp:1454
&gt;&gt; +        return JSValue::encode(jsUndefined());
&gt; 
&gt; There’s a faster way to write this:
&gt; 
&gt;     auto* sourceCodeObject = exec-&gt;argument(0).toStringOrNull(exec);
&gt;     if (!sourceCodeObject)
&gt;         return JSValue::encode(jsUndefined());
&gt;     Strings sourceCode = sourceCodeObject-&gt;value(exec);
&gt; 
&gt; But if we are not trying to do that faster idiom, then I would have suggested using toWTFString rather than writing out toString(exec)-&gt;value(exec), which does the same thing. Maybe someone can make a version of toWTFString that does the faster idiom.

Interesting. I&apos;ll change this to toWTFString.

&gt;&gt; Source/JavaScriptCore/runtime/JSCJSValue.h:293
&gt;&gt; +    typename std::result_of&lt;Func(bool, PropertySlot&amp;)&gt;::type getPropertySlot(ExecState*, PropertyName, PropertySlot&amp;, Func) const;
&gt; 
&gt; Would you be willing to use an entire word, instead of &quot;Func&quot;? I also think these are easier to read on a single line rather than with template above typename.

Thanks. I renamed it to CallbackWhenNoException. And make this a single line.

&gt;&gt; Source/JavaScriptCore/runtime/ObjectPrototype.cpp:288
&gt;&gt; +                return JSValue();
&gt; 
&gt; Why do we use jsUndefined() in some cases, and JSValue() in others, for the ignored value when there is an exception in the global state? Is one consistently better?

This code itself is derived from the original code&apos;s `JSValue()`.
Since this value is ignored when exception occurs, any value is OK.
In the meantime, I&apos;ll use jsUndefined for that.

&gt;&gt; Source/JavaScriptCore/runtime/ObjectPrototype.cpp:294
&gt;&gt; +                JSString* result = ropeBuilder.release();
&gt; 
&gt; I’d use auto for this.

OK, fixed.

&gt;&gt; Source/JavaScriptCore/runtime/ObjectPrototype.cpp:305
&gt;&gt; +        JSString* result = jsNontrivialString(&amp;vm, newString);
&gt; 
&gt; Ditto.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199458</commentid>
    <comment_count>33</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-06-05 18:54:52 -0700</bug_when>
    <thetext>Committed r201703: &lt;http://trac.webkit.org/changeset/201703&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278946</attachid>
            <date>2016-05-14 14:22:34 -0700</date>
            <delta_ts>2016-05-14 15:51:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157080-20160515062326.patch</filename>
            <type>text/plain</type>
            <size>44545</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwOTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MmE2YWQyNmExZDRmMTZjMmJlMjAzMWJjZWRkOWFkMjAwNTYxZmRkLi4yYmM3NjhlODIzYzk2MWY0
ZTc1ZjU4NjQ0ODAwM2Y4NzYzZThmMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAxNi0wNS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBc3NlcnRpb24gZmFpbHVyZSBmb3IgUmVmbGVjdC5nZXQgd2l0aCBQ
cm94eSBhbmQgcHJpbWl0aXZlIHZhbHVlIGFzIGV4cGxpY2l0IHJlY2VpdmVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcwODAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBjdXN0b20gYWNjZXNzb3Ig
Z2V0dGVyLCB0aGUgYXJndW1lbnQgInRoaXNWYWx1ZSIgY2FuIGJlIGFsdGVyZWQgYnkgdXNpbmcg
YFJlZmxlY3QuZ2V0YC4KKyAgICAgICAgSW4gdGhpcyBwYXRjaCwgd2UgYWRkIGEgbmV3IHBhcmFt
ZXRlciwgInNsb3RCYXNlIi4gVGhpcyByZXByZXNlbnRzIHRoZSBiYXNlIHZhbHVlIG9mZmVyaW5n
CisgICAgICAgIHRoaXMgY3VzdG9tIGdldHRlci4gQW5kIHVzZSBpdCBpbiBQcm94eU9iamVjdCdz
IHBlcmZvcm1HZXQgY3VzdG9tIGFjY2Vzc29yIGdldHRlci4KKworICAgICAgICAqIEFQSS9KU0Nh
bGxiYWNrT2JqZWN0Lmg6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMu
aDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5jdGlv
bkdldHRlcik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2FsbGJh
Y2tHZXR0ZXIpOgorICAgICAgICAqIGJ5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcDoKKyAg
ICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKToKKyAgICAgICAgSW4gUG9seW1v
cnBoaWNBY2Nlc3MgY2FzZSwgdGhlIHRoaXNWYWx1ZSBhbmQgdGhlIHNsb3RCYXNlIGFyZSBhbHdh
eXMgY2VsbHMuCisgICAgICAgIFRoaXMgaXMgYmVjYXVzZSBJQyBpcyBlbmFibGVkIGluIHRoZSBj
YXNlIHRoYXQgdGhlIGJhc2UgdmFsdWUgaXMgYSBjZWxsLgorICAgICAgICBBbmQgc2xvdEJhc2Ug
aXMgYWx3YXlzIG9uIHRoZSBwcm90b3R5cGUgY2hhaW4gZnJvbSB0aGlzIGJhc2UgdmFsdWUuCisK
KyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoV1RGOjpDdXN0b21HZXR0ZXI6OmN1c3RvbUdl
dHRlcik6CisgICAgICAgIChXVEY6OlJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAg
ICAgKiBydW50aW1lL0pTQm91bmRTbG90QmFzZUZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6
Ym91bmRTbG90QmFzZUZ1bmN0aW9uQ2FsbCk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9u
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKToKKyAgICAg
ICAgKEpTQzo6SlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKToKKyAgICAgICAgKiBydW50aW1lL0pT
RnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNlT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6Y2FsbGJhY2tHZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvUHJv
cGVydHlTbG90LmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90OjpjdXN0b21HZXR0ZXIp
OgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6CisgICAgICAgICogcnVudGltZS9Q
cm94eU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OnBlcmZvcm1Qcm94eUdldCk6CisgICAgICAg
ICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OnJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JJbnB1dCk6
CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKToKKyAgICAgICAgKEpT
Qzo6cmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25z
dHJ1Y3Rvckxhc3RQYXJlbik6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTGVmdENv
bnRleHQpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCk6Cisg
ICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyNCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyNSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyNik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
Nyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSk6IERlbGV0ZWQu
CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Byb3h5LWdldC13aXRoLXByaW1pdGl2ZS1yZWNlaXZl
ci5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisKIDIwMTYtMDUtMTMgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBqc2M6IHNhbXBsaW5nUHJv
ZmlsZXJTdGFja1RyYWNlcygpIHdpdGhvdXQgc3RhcnRpbmcgc2FtcGxpbmcgc2hvdWxkIG5vdCBj
YXVzZSBqc2MgdG8gY3Jhc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNTgxOWQ5YmNmMDI0ODc5MWZhMzUwZDg2
MmQyMWNhNTBiNzEwZTk2Li41YWI1N2RhNzk1YTJjMTE1YjM5MTQzMjIyNGE5MjYzMjcyYmE1MzZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTYtMDUtMTQgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmUgZm9y
IFJlZmxlY3QuZ2V0IHdpdGggUHJveHkgYW5kIHByaW1pdGl2ZSB2YWx1ZSBhcyBleHBsaWNpdCBy
ZWNlaXZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU3MDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6Om5vbkNhY2hp
bmdTdGF0aWNGdW5jdGlvbkdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNET01XaW5kb3dXZWJLaXQpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIp
OgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYnJpZGdlL3J1
bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRl
cik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2Uv
cnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjpsZW5ndGhH
ZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5oOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1l
T2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcik6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpS
dW50aW1lT2JqZWN0OjpmaWVsZEdldHRlcik6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50
aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVj
dC5oOgorCiAyMDE2LTA1LTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFRvVCBXZWJLaXQgZG9lc24ndCBzaG93IHRvb2x0aXAgb24gcGVyZiBkYXNoYm9hcmQn
cyBzdW1tYXJ5IHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxYTBhMWVmOWY5NWZhMDMxNjAwYTlmMTJmYWRk
OWM5MWQ3ZWUwYWFiLi5iMWU1ODJmYTdiOGRmOGJlYjNjYTY4Y2NhYzFlZGRiNTQzNGEzMWNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDUtMTQgIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmUgZm9yIFJl
ZmxlY3QuZ2V0IHdpdGggUHJveHkgYW5kIHByaW1pdGl2ZSB2YWx1ZSBhcyBleHBsaWNpdCByZWNl
aXZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3
MDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkpTTlBPYmplY3Q6OnByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9i
amVjdDo6bWV0aG9kR2V0dGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5oOgorCiAyMDE2LTA1LTEzICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggaU9TIEJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCBlOTU2M2Y1NGNlYThiMjYzYjE0MzM1NjcyMWQ0
Y2RkZDc5YzVlNDA2Li4wZWJmYzYzZWI4YjFlODk3OTEyNDUxYjAxZWM5MTNkYjI0YjgwMTk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMjEx
LDggKzIxMSw4IEBAIGNsYXNzIEpTQ2FsbGJhY2tPYmplY3QgOiBwdWJsaWMgUGFyZW50IHsKICAg
ICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3QoRXhlY1N0YXRl
Kik7CiAgICAKICAgICBKU1ZhbHVlIGdldFN0YXRpY1ZhbHVlKEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0
ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFs
dWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBFbmNvZGVkSlNWYWx1ZSk7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8SlNDYWxsYmFja09iamVjdERhdGE+IG1fY2FsbGJhY2tPYmplY3REYXRh
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdEZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2Jq
ZWN0RnVuY3Rpb25zLmgKaW5kZXggYTU1MzcyMzRiYjMyY2E2ODZkZDA2YjJhZmU5YTA3YTlkMDI1
N2YzNC4uOWMxNmQ3MmRkZmJmZTMxYjZjYjk0OTFjNGVmYjQ0M2JlMjA5MmVkMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25z
LmgKQEAgLTU5OSw3ICs1OTksNyBAQCBKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6
Z2V0U3RhdGljVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcAogfQogCiB0ZW1w
bGF0ZSA8Y2xhc3MgUGFyZW50PgotRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJl
bnQ+OjpzdGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpT
Q2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6c3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IEVuY29kZWRKU1ZhbHVlKQogewogICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmogPSBhc0Nh
bGxiYWNrT2JqZWN0KHRoaXNWYWx1ZSk7CiAgICAgCkBAIC02MjcsNyArNjI3LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5jdGlvbkdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEUKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLUVuY29kZWRK
U1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmNhbGxiYWNrR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLCBFbmNvZGVkSlNWYWx1ZSkKIHsKICAgICBKU0NhbGxiYWNrT2JqZWN0
KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdCh0aGlzVmFsdWUpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKaW5k
ZXggNzA2N2M0OWJhNGFiZmY0NjFlYjU0OGM0ZDJlNWEyZTg4MGVhYmMzNS4uZGJlMjdmMmJmYjg5
MzQwZjM0Y2E2OGU5NmY5ZmM2NzllZDM0OWFlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCkBAIC0xMDkyLDcgKzEwOTIs
NyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NHZW5lcmF0aW9uU3RhdGUm
IHN0YXRlKQogICAgICAgICAgICAgLy8gdG8gbWFrZSBzb21lIHNwYWNlIGhlcmUuCiAgICAgICAg
ICAgICBqaXQubWFrZVNwYWNlT25TdGFja0ZvckNDYWxsKCk7CiAKLSAgICAgICAgICAgIC8vIGdl
dHRlcjogRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgIC8vIGdldHRlcjog
RW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBFbmNvZGVkSlNWYWx1ZSBzbG90QmFzZSk7CiAgICAg
ICAgICAgICAvLyBzZXR0ZXI6IHZvaWQgKCpQdXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKTsKICAgICAgICAgICAg
IC8vIEN1c3RvbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aGUgc2xvdEJhc2UgKHRoZSBwcm9wZXJ0eSBo
b2xkZXIpLCBjdXN0b20gYWNjZXNzb3JzIGFyZSBwYXNzZWQgdGhlIHRoaXNWYXVsZSAocmVjaWV2
ZXIpLgogICAgICAgICAgICAgR1BSUmVnIGJhc2VGb3JDdXN0b21WYWx1ZSA9IG1fdHlwZSA9PSBD
dXN0b21WYWx1ZUdldHRlciB8fCBtX3R5cGUgPT0gQ3VzdG9tVmFsdWVTZXR0ZXIgPyBiYXNlRm9y
QWNjZXNzR1BSIDogYmFzZUZvckdldEdQUjsKQEAgLTExMDAsNyArMTEwMCw4IEBAIHZvaWQgQWNj
ZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUpCiAgICAg
ICAgICAgICBpZiAobV90eXBlID09IEN1c3RvbVZhbHVlR2V0dGVyIHx8IG1fdHlwZSA9PSBDdXN0
b21BY2Nlc3NvckdldHRlcikgewogICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoCiAgICAgICAgICAgICAgICAgICAgIGJhc2VGb3JDdXN0b21WYWx1ZSwKLSAg
ICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwo
KSkpOworICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRl
bnQuaW1wbCgpKSwKKyAgICAgICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUik7CiAgICAg
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKGJhc2VGb3JDdXN0b21WYWx1ZSwgdmFsdWVSZWdzLmdwcigpKTsKICNlbHNlCkBAIC0x
MTA4LDcgKzExMDksOSBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NHZW5l
cmF0aW9uU3RhdGUmIHN0YXRlKQogICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoCiAgICAgICAgICAgICAgICAgICAgIEVBQklfMzJCSVRfRFVNTVlfQVJHIGJh
c2VGb3JDdXN0b21WYWx1ZSwKICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0gICAgICAgICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpKTsKKyAgICAgICAgICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSksCisgICAgICAgICAgICAg
ICAgICAgIEVBQklfMzJCSVRfRFVNTVlfQVJHIGJhc2VGb3JBY2Nlc3NHUFIsCisgICAgICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgRUFCSV8zMkJJVF9EVU1NWV9BUkcg
YmFzZUZvckN1c3RvbVZhbHVlLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBiMzI2OGZlOWE2NWYy
NjM5ZDU5YzZlMGZiMDVlNDQ5MGM3MTZiYzY0Li5mODE4ZDA4NjFmNzJhMjdlZDU5MjI0NjFiMTBl
YzZjNGFiNmY3M2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMzU4LDcgKzM1OCw3IEBAIGNs
YXNzIEN1c3RvbUdldHRlciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGN1c3RvbUdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorICAgIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFsdWUpCiAgICAgewogICAg
ICAgICBDdXN0b21HZXR0ZXIqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEN1c3RvbUdldHRl
cio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICAgICAgaWYgKCF0aGlzT2JqZWN0
KQpAQCAtNDYzLDcgKzQ2Myw3IEBAIGNsYXNzIFJ1bnRpbWVBcnJheSA6IHB1YmxpYyBKU0FycmF5
IHsKICAgICB7CiAgICAgfQogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFsdWUp
CiAgICAgewogICAgICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0
PFJ1bnRpbWVBcnJheSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICAgICAgaWYg
KCF0aGlzT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24uY3BwCmluZGV4IDFmMzM1NjI2N2ZhZmI3ZDMwNWQ5
NjNhYWE5MDdmZTJmNGJlNjRlMGUuLmNlN2FlZmE5ZGQzZDc0MDhlOTZmYzg0NDI4YzJhNTU3MmQz
NWUwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRT
bG90QmFzZUZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBib3VuZFNsb3RCYXNlRnVuY3Rpb25DYWxsKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAogICAg
IGNvbnN0IFN0cmluZyYgbmFtZSA9IGJvdW5kU2xvdEJhc2VGdW5jdGlvbi0+bmFtZSgpOwotICAg
IHJldHVybiBnZXR0ZXIoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNWYWx1ZSgpKSwg
UHJvcGVydHlOYW1lKElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgbmFtZSkpKTsKKyAgICBy
ZXR1cm4gZ2V0dGVyKGV4ZWMsIEpTVmFsdWU6OmVuY29kZShleGVjLT50aGlzVmFsdWUoKSksIFBy
b3BlcnR5TmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIG5hbWUpKSwgSlNWYWx1ZTo6
ZW5jb2RlKGJhc2VPYmplY3QpKTsKIH0KIAogSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb246OkpTQm91
bmRTbG90QmFzZUZ1bmN0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFR5cGUgdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggNjM4ZTcwNTI2ZmMwMGNiYjMwYzUz
ZTU5ZmE3Yzc3NjE1YzZiNWEwMi4uYjI4N2JmYTM2NTdjZWYzZmFhODQwMWJkZWFjNTYzZTlmYTM4
NDYwNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAK
QEAgLTI2NCw3ICsyNjQsNyBAQCBzdGF0aWMgSlNWYWx1ZSByZXRyaWV2ZUFyZ3VtZW50cyhFeGVj
U3RhdGUqIGV4ZWMsIEpTRnVuY3Rpb24qIGZ1bmN0aW9uT2JqKQogICAgIHJldHVybiBmdW5jdG9y
LnJlc3VsdCgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjphcmd1bWVudHNHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBFbmNvZGVkSlNW
YWx1ZSkKIHsKICAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0ganNDYXN0PEpTRnVuY3Rpb24qPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUKCF0aGlzT2JqLT5pc0hvc3RG
dW5jdGlvbigpKTsKQEAgLTMyNiw3ICszMjYsNyBAQCBzdGF0aWMgR2V0dGVyU2V0dGVyKiBnZXRU
aHJvd1R5cGVFcnJvckdldHRlclNldHRlcihKU0Z1bmN0aW9uKiBmdW5jdGlvbikKICAgICAgICAg
OiBmdW5jdGlvbi0+Z2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yQXJndW1lbnRzQW5kQ2Fs
bGVySW5TdHJpY3RNb2RlR2V0dGVyU2V0dGVyKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTRnVu
Y3Rpb246OmNhbGxlckdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUsIEVuY29kZWRKU1ZhbHVlKQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8
SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlQoIXRo
aXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5oCmluZGV4IDMwMDcwZDBkNjFkN2UyYjZhZDhiYWRjYmZkMTk3MWFjNzc1N2Iy
NDguLjhlMzAyZDI3NTBjYTY4MDk3MTMwMjg1NTFhZTQyNzE5Yzg4NTAzZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTE5OCwxMCArMTk4LDEwIEBA
IGNsYXNzIEpTRnVuY3Rpb24gOiBwdWJsaWMgSlNDYWxsZWUgewogCiAgICAgZnJpZW5kIGNsYXNz
IExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIAotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBhcmd1
bWVudHNHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0g
ICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNhbGxlckdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3Ro
R2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBuYW1lR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHNHZXR0
ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFs
dWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFsdWUpOworICAgIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFsdWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBuYW1lR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEVu
Y29kZWRKU1ZhbHVlKTsKIAogICAgIFdyaXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gbV9leGVj
dXRhYmxlOwogICAgIFdyaXRlQmFycmllcjxGdW5jdGlvblJhcmVEYXRhPiBtX3JhcmVEYXRhOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3Bh
Y2VPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1l
c3BhY2VPYmplY3QuY3BwCmluZGV4IDQwZGRhNzMzM2ZmNzIwYWRmNjA5OGZmNDc3NTcyZjFlYjE4
NmFlYTAuLjRlMWVmODMxM2NlOTlmNDA3NzhkYjgzMGQ3NzFmYmNiODQzODAyZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNlT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZU5hbWVzcGFj
ZU9iamVjdC5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBKU01vZHVsZU5hbWVzcGFjZU9iamVj
dDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAg
IHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX21vZHVsZVJlY29yZCk7CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFsdWUpCiB7
CiAgICAgSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNNb2R1
bGVOYW1lc3BhY2VPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgSlNN
b2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9IHRoaXNPYmplY3QtPm1vZHVsZVJlY29yZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAKaW5kZXgg
MDQxMDEzOTQzOGI1NGNkZDkyOGYwMTMyN2U2N2Y4ODIyMDUwZTg2Ni4uNTMyMTE3MDNhM2IzZDEw
MzBhMGIyNTAwNzFkMzQ3MzNmMmU0MGRmZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCkBAIC0zNiw3ICszNiw3IEBAIEpTVmFsdWUgUHJvcGVy
dHlTbG90OjpmdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiBKU1ZhbHVlIFBy
b3BlcnR5U2xvdDo6Y3VzdG9tR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSkgY29uc3QKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IG1fYXR0cmlidXRl
cyAmIEN1c3RvbUFjY2Vzc29yID8gbV90aGlzVmFsdWUgOiBKU1ZhbHVlKHNsb3RCYXNlKCkpOwot
ICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbS5nZXRWYWx1ZShleGVjLCBK
U1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1lKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmRlY29kZShtX2RhdGEuY3VzdG9tLmdldFZhbHVlKGV4ZWMsIEpTVmFsdWU6OmVuY29k
ZSh0aGlzVmFsdWUpLCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmVuY29kZShzbG90QmFzZSgpKSkp
OwogfQogCiBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6Z2V0UHVyZVJlc3VsdCgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCmluZGV4IDE1NDAzY2Rj
N2RhNzM4MjM1ZjcwMTQyMjk1YjQxNmQ4OTQ0YjdiZWQuLmUxZTJiYjRmMmM4MmFlMWVjYTRkM2Mw
MTMwMGU3NDg0Y2RjOGExYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5U2xvdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5U2xvdC5oCkBAIC05NCw3ICs5NCw3IEBAIGNsYXNzIFByb3BlcnR5U2xvdCB7CiAgICAg
ewogICAgIH0KIAotICAgIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICB0
eXBlZGVmIEVuY29kZWRKU1ZhbHVlICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFsdWUgc2xvdEJhc2Up
OwogCiAgICAgSlNWYWx1ZSBnZXRWYWx1ZShFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUpIGNvbnN0
OwogICAgIEpTVmFsdWUgZ2V0VmFsdWUoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNw
cAppbmRleCA1MzkxODVmMzRmNzQ5NjUyYTYwNWVhMTJlYWI4MGE0Y2VjOTc5MzhjLi42N2RmNzU0
ZjI3ZjM5OWZjNTBjNjhiYTFhZDQ5OTdkZTZmMGE5ODkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgUHJv
eHlPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHRhcmdldCwgSlNWYWx1CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBzX3Byb3h5QWxyZWFkeVJldm9r
ZWRFcnJvck1lc3NhZ2UgPSAiUHJveHkgaGFzIGFscmVhZHkgYmVlbiByZXZva2VkLiBObyBtb3Jl
IG9wZXJhdGlvbnMgYXJlIGFsbG93ZWQgdG8gYmUgcGVyZm9ybWVkIG9uIGl0IjsKIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIHBlcmZvcm1Qcm94eUdldChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBwZXJmb3JtUHJveHlHZXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVlIHNs
b3RCYXNlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgaWYgKCF2bS5pc1NhZmVU
b1JlY3Vyc2UoKSkgewpAQCAtMTAwLDIwICsxMDAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
cGVyZm9ybVByb3h5R2V0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CiAgICAgfQogCi0g
ICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNPYmplY3QqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7IC8vIFRoaXMgbWlnaHQgYmUgYSB2YWx1ZSB3aGVyZSBzb21ld2hlcmUg
aW4gX19wcm90b19fIGNoYWluIGxpdmVzIGEgUHJveHlPYmplY3QuCi0gICAgSlNPYmplY3QqIHBy
b3h5T2JqZWN0QXNPYmplY3QgPSB0aGlzT2JqZWN0OwotICAgIC8vIEZJWE1FOiBtYWtlIGl0IHNv
IHRoYXQgY3VzdG9tIGdldHRlcnMgdGFrZSBib3RoIHRoZSB8dGhpc3wgdmFsdWUgYW5kIHRoZSBz
bG90QmFzZSAocHJvcGVydHkgaG9sZGVyKS4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MzIwCi0gICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgaWYg
KExJS0VMWShwcm94eU9iamVjdEFzT2JqZWN0LT50eXBlKCkgPT0gUHJveHlPYmplY3RUeXBlKSkK
LSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0gcHJveHlP
YmplY3RBc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgICAgIFJFTEVBU0VfQVNT
RVJUKHByb3RvdHlwZS5pc09iamVjdCgpKTsKLSAgICAgICAgcHJveHlPYmplY3RBc09iamVjdCA9
IGFzT2JqZWN0KHByb3RvdHlwZSk7Ci0gICAgfQotCi0gICAgUHJveHlPYmplY3QqIHByb3h5T2Jq
ZWN0ID0ganNDYXN0PFByb3h5T2JqZWN0Kj4ocHJveHlPYmplY3RBc09iamVjdCk7CisgICAgUHJv
eHlPYmplY3QqIHByb3h5T2JqZWN0ID0ganNDYXN0PFByb3h5T2JqZWN0Kj4oSlNWYWx1ZTo6ZGVj
b2RlKHNsb3RCYXNlKSk7CiAgICAgSlNPYmplY3QqIHRhcmdldCA9IHByb3h5T2JqZWN0LT50YXJn
ZXQoKTsKIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+dW5kZXJz
Y29yZVByb3RvKQpAQCAtMTQzLDcgKzEzMCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwZXJm
b3JtUHJveHlHZXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsCiAg
ICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOwogICAgIGFyZ3VtZW50cy5hcHBlbmQo
dGFyZ2V0KTsKICAgICBhcmd1bWVudHMuYXBwZW5kKGlkZW50aWZpZXJUb1NhZmVQdWJsaWNKU1Zh
bHVlKHZtLCBJZGVudGlmaWVyOjpmcm9tVWlkKCZ2bSwgcHJvcGVydHlOYW1lLnVpZCgpKSkpOwot
ICAgIGFyZ3VtZW50cy5hcHBlbmQodGhpc09iamVjdCk7CisgICAgYXJndW1lbnRzLmFwcGVuZChK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgSlNWYWx1ZSB0cmFwUmVzdWx0ID0gY2Fs
bChleGVjLCBnZXRIYW5kbGVyLCBjYWxsVHlwZSwgY2FsbERhdGEsIGhhbmRsZXIsIGFyZ3VtZW50
cyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IDE5NTZlYzkwY2MyNDYwZTkzOThi
ZmZkYzZlOTcxMTFiMjU1NzIwMmMuLmQ4MmEzNWM0YzI4NGVlZDNhYWIxNWE2NGMxYTEwZWQyNGFh
YzQzYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBD
b25zdHJ1Y3Rvci5jcHAKQEAgLTMxLDIxICszMSwxNCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0
Y2goRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29u
c3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4
dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyhFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNihFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjcoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyOShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvcklucHV0KEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVlKTsK
K3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBFbmNvZGVkSlNWYWx1ZSk7CitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2goRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFsdWUpOworc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVlKTsKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVlKTsKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lLCBFbmNvZGVkSlNWYWx1ZSk7Cit0ZW1wbGF0ZTxpbnQgTj4KK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcihFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBFbmNvZGVkSlNWYWx1ZSk7CiAKIHN0YXRpYyBi
b29sIHNldFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlKTsKIHN0YXRpYyBib29sIHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGls
aW5lKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CkBAIC03Miwx
NSArNjUsMTUgQEAgY29uc3QgQ2xhc3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKICAgICAkYCAgICAgICAgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCAgICBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRF
bnVtCiAgICAgcmlnaHRDb250ZXh0ICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0ICAg
RG9udERlbGV0ZXxSZWFkT25seQogICAgICQnICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
clJpZ2h0Q29udGV4dCAgIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAgICAkMSAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxICAgICAgICBEb250RGVsZXRlfFJlYWRP
bmx5Ci0gICAgJDIgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiAgICAgICAg
RG9udERlbGV0ZXxSZWFkT25seQotICAgICQzICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjMgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkNCAgICAgICAgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAg
JDUgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSAgICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQotICAgICQ2ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYg
ICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkNyAgICAgICAgICAgICAgcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXI3ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDggICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCAgICAgICAgRG9udERlbGV0ZXxSZWFkT25s
eQotICAgICQ5ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjkgICAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKKyAgICAkMSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI8MT4gICAgICBEb250RGVsZXRlfFJlYWRPbmx5CisgICAgJDIgICAgICAgICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyPDI+ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICAgICQz
ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjwzPiAgICAgIERvbnREZWxldGV8
UmVhZE9ubHkKKyAgICAkNCAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI8ND4g
ICAgICBEb250RGVsZXRlfFJlYWRPbmx5CisgICAgJDUgICAgICAgICAgICAgIHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyPDU+ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICAgICQ2ICAgICAgICAg
ICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjw2PiAgICAgIERvbnREZWxldGV8UmVhZE9ubHkK
KyAgICAkNyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI8Nz4gICAgICBEb250
RGVsZXRlfFJlYWRPbmx5CisgICAgJDggICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9s
bGFyPDg+ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICAgICQ5ICAgICAgICAgICAgICByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjw5PiAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKIEBlbmQKICov
CiAKQEAgLTE1Nyw3OCArMTUwLDM5IEBAIGJvb2wgUmVnRXhwQ29uc3RydWN0b3I6OmdldE93blBy
b3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByCiB7CiAgICAg
cmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxSZWdFeHBDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5j
dGlvbj4oZXhlYywgcmVnRXhwQ29uc3RydWN0b3JUYWJsZSwganNDYXN0PFJlZ0V4cENvbnN0cnVj
dG9yKj4ob2JqZWN0KSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KLSAgICAKLUVuY29kZWRKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJh
Y2tyZWYoZXhlYywgMSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRv
bGxhcjIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3Io
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDIpKTsKLX0KLQot
RW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKS0+Z2V0QmFja3JlZihleGVjLCAzKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyNChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBD
b25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhlYywg
NCkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDUpKTsKLX0KLQotRW5jb2RlZEpTVmFs
dWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2V0QmFj
a3JlZihleGVjLCA2KSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9s
bGFyNyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQotewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhlYywgNykpOwotfQotCi1F
bmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjgoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDgpKTsKLX0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXI5KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCit0ZW1wbGF0ZTxpbnQgTj4KK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVlKQogewotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdl
dEJhY2tyZWYoZXhlYywgOSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBD
b25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhlYywg
TikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvcklucHV0KEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFsdWUpCiB7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KS0+aW5wdXQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGls
aW5lKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVlKQogewog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwQ29uc3RydWN0b3Io
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5tdWx0aWxpbmUoKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhw
Q29uc3RydWN0b3JMYXN0TWF0Y2goRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFsdWUpCiB7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KS0+Z2V0QmFja3JlZihleGVjLCAwKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0
cnVjdG9yTGFzdFBhcmVuKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJl
bihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
LCBFbmNvZGVkSlNWYWx1ZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhw
Q29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRMYXN0UGFyZW4oZXhl
YykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVl
KQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldExlZnRDb250ZXh0KGV4ZWMpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVlKQogewogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSktPmdldFJpZ2h0Q29udGV4dChleGVjKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWdldC13aXRoLXByaW1pdGl2ZS1y
ZWNlaXZlci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHktZ2V0
LXdpdGgtcHJpbWl0aXZlLXJlY2VpdmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiM2QzYmRlYzg1NDQyMjZl
YjQ1NWQyNDUyOGQ4N2VjMGM5MGQ1ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWdldC13aXRoLXByaW1pdGl2ZS1yZWNlaXZlci5q
cwpAQCAtMCwwICsxLDIyIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7
CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcign
YmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworCitzaG91bGRCZShSZWZsZWN0LmdldChuZXcg
UHJveHkoe30sIHt9KSwgMCwgMSksIHVuZGVmaW5lZCk7CitzaG91bGRCZShSZWZsZWN0LmdldChu
ZXcgUHJveHkoe30sIHt9KSwgJ2hlbGxvJywgMSksIHVuZGVmaW5lZCk7CisKK3sKKyAgICBsZXQg
dGFyZ2V0ID0ge307CisgICAgbGV0IGhhbmRsZXJzID0geworICAgICAgICBnZXQ6IGZ1bmN0aW9u
KHRoZVRhcmdldCwgcHJvcE5hbWUsIHJlY2VpdmVyKSB7CisgICAgICAgICAgICAvLyBSZWNlaXZl
ciBjYW4gYmUgYSBwcmltaXRpdmUgdmFsdWUuCisgICAgICAgICAgICBzaG91bGRCZShyZWNlaXZl
ciwgMSk7CisgICAgICAgICAgICByZXR1cm4gNDI7CisgICAgICAgIH0KKyAgICB9OworICAgIGxl
dCBwcm94eSA9IG5ldyBQcm94eSh0YXJnZXQsIGhhbmRsZXJzKTsKKyAgICBzaG91bGRCZShSZWZs
ZWN0LmdldChwcm94eSwgMCwgMSksIDQyKTsKKyAgICBzaG91bGRCZShSZWZsZWN0LmdldChwcm94
eSwgJ2hlbGxvJywgMSksIDQyKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmgKaW5kZXggYjg4ZjA2MDg4NTZmZDBmNTczM2UzY2FhOGQ1YzM1ZWIxMzMxNWQ0NC4u
Yzc5YzYxZjZhODQzYTBhY2YwMzQxMmJmMTk1MGVmMjI1YzBjODQ2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTMwNiw3ICszMDYsNyBAQCBTdHJpbmcg
cHJvcGVydHlOYW1lVG9TdHJpbmcoSlNDOjpQcm9wZXJ0eU5hbWUpOwogQXRvbWljU3RyaW5nIHBy
b3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKEpTQzo6UHJvcGVydHlOYW1lKTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgRE9NQ2xhc3M+IGNvbnN0IEpTQzo6SGFzaFRhYmxlVmFsdWUqIGdldFN0YXRpY1Zh
bHVlU2xvdEVudHJ5V2l0aG91dENhY2hpbmcoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci10ZW1wbGF0ZTxKU0M6Ok5hdGl2ZUZ1bmN0aW9uLCBpbnQgbGVuZ3RoPiBKU0M6OkVu
Y29kZWRKU1ZhbHVlIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3RlbXBsYXRlPEpT
Qzo6TmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+IEpTQzo6RW5jb2RlZEpTVmFsdWUgbm9uQ2Fj
aGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiAvLyBJbmxp
bmUgZnVuY3Rpb25zIGFuZCB0ZW1wbGF0ZSBkZWZpbml0aW9ucy4KIApAQCAtODA5LDcgKzgwOSw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIGNvbnN0IEpTQzo6SGFzaFRhYmxlVmFsdWUqIGdldFN0YXRp
Y1ZhbHVlU2xvdEVudHJ5V2l0aG91dENhY2hpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXRl
bXBsYXRlPEpTQzo6TmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+IEpT
Qzo6RW5jb2RlZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUpCit0ZW1wbGF0ZTxKU0M6Ok5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uLCBp
bnQgbGVuZ3RoPiBKU0M6OkVuY29kZWRKU1ZhbHVlIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdl
dHRlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU0M6OkVuY29kZWRKU1ZhbHVlKQogewogICAgIHJldHVy
biBKU0M6OkpTVmFsdWU6OmVuY29kZShKU0M6OkpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgp
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGxlbmd0aCwgcHJvcGVydHlOYW1lLnB1Ymxp
Y05hbWUoKSwgbmF0aXZlRnVuY3Rpb24pKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA2ZDRiZTNlYjQwM2M4Y2ViMzJmNzAz
ZGM1MzMxODFjZmFjY2FmMWY4Li5lMTQ3YjA5NmQ3MjdjMTg0Y2UwN2YwM2FiYmNmZmVlYzIyNThl
ZGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgSlNET01XaW5kb3c6OnZpc2l0QWRkaXRpb25h
bENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogfQogCiAjaWYgRU5BQkxFKFVTRVJfTUVT
U0FHRV9IQU5ETEVSUykKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1dlYktpdChF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93V2ViS2l0KEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVlKQog
ewogICAgIEpTRE9NV2luZG93KiBjYXN0ZWRUaGlzID0gdG9KU0RPTVdpbmRvdyhKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93
QWNjZXNzVG9ET01XaW5kb3coZXhlYywgY2FzdGVkVGhpcy0+d3JhcHBlZCgpKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwCmluZGV4IDI4NjUzNzJlOWFlNzFmNGE1Y2E1MDRlZTA4NDk1NWFiNWViMTRkYWUuLmU1ODIy
NzM2MDBhYWM2MTgxMzY2MjNhMzFiMjA5ZDIzZTE2NzI3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAt
OTQsNyArOTQsNyBAQCBKU09iamVjdCogcGx1Z2luU2NyaXB0T2JqZWN0KEV4ZWNTdGF0ZSogZXhl
YywgSlNIVE1MRWxlbWVudCoganNIVE1MRWxlbWVudCkKICAgICByZXR1cm4gaW5zdGFuY2UtPmNy
ZWF0ZVJ1bnRpbWVPYmplY3QoZXhlYyk7CiB9CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBwbHVnaW5F
bGVtZW50UHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBwbHVnaW5F
bGVtZW50UHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVlKQogewogCiAg
ICAgSlNIVE1MRWxlbWVudCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNIVE1MRWxlbWVu
dCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggYzdjNWJhMTdlOTZlNmQ3
YTdjZmMxYzg3ZjJmY2QyN2EzYWQxZWIwZS4uOGJiMDM2ZjRjMzdmY2VmY2ExMzkxMDY0ODEwNDJi
MzRkMWU0ZjRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTE1MzIsNyArMTUzMiw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRl
cgogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdl
bmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlm
ICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1
dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
O1xuIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNW
YWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4iKTsKICAgICAgICAgICAgIGlm
ICghSXNSZWFkb25seSgkYXR0cmlidXRlKSkgewogICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIg
PSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1
dGUpOwogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJib29sICR7c2V0dGVy
fShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpO1xuIik7CkBAIC0yMDkwLDcgKzIwOTAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdl
bmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAk
Y29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRl
R2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAk
e2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4iKTsKICAgICAgICAgICAgIGlmICghSXNS
ZWFkb25seSgkYXR0cmlidXRlKSkgewogICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRB
dHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwog
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke3NldHRlcn0oSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIp
OwpAQCAtMjEwMCw3ICsyMTAwLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAg
ICAgCiAgICAgICAgIGlmIChOZWVkc0NvbnN0cnVjdG9yUHJvcGVydHkoJGludGVyZmFjZSkpIHsK
ICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3Ry
dWN0b3IiOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkVuY29kZWRKU1Zh
bHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6
OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwogICAg
ICAgICB9CiAKICAgICAgICAgbXkgJGNvbnN0cnVjdG9yRnVuY3Rpb25OYW1lID0gInNldEpTIiAu
ICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKQEAgLTI1NjAsMTEgKzI1NjAsMTIgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVDb25k
aXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5n
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiNpZiAke2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGF0dHJpYnV0ZUNvbmRp
dGlvbmFsU3RyaW5nOwogCi0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRK
U1ZhbHVlICR7Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVl
IHNsb3RCYXNlKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwog
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0oc3RhdGUp
O1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5V
U0VEX1BBUkFNKHNsb3RCYXNlKTtcbiIpOwogCiAgICAgICAgICAgICBpZiAoISRhdHRyaWJ1dGUt
PmlzU3RhdGljIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3Ik
LykgewogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTVmFsdWUgZGVj
b2RlZFRoaXNWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpO1xuIik7CkBAIC0yNzYz
LDcgKzI3NjQsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBpZiAoTmVl
ZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2UpKSB7CiAgICAgICAgICAgICBteSAkY29u
c3RydWN0b3JGdW5jdGlvbk5hbWUgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0
b3IiOwogCi0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7
Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBFbmNvZGVk
SlNWYWx1ZSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZSog
ZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSlcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGM1YjNjNGY3ZTdhMjE3OTI3MTIxYjNjN2U3YzBmMWE0
OTY3MWI2NWMuLjNhOTM0ZDU4YzA4MWI4YTNmMjU4NWM2Mjg4YzY1MjRkNTNmYjRmZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9p
ZCBSdW50aW1lQXJyYXk6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQogICAgIHN0YXRpY19jYXN0PFJ1
bnRpbWVBcnJheSo+KGNlbGwpLT5SdW50aW1lQXJyYXk6On5SdW50aW1lQXJyYXkoKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgUnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IFJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVlKQogewogICAgIFJ1bnRp
bWVBcnJheSogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8UnVudGltZUFycmF5Kj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghdGhpc09iamVjdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IDAxOGMxMzI3OGRiYTNkZDAzMTcxZTUzZWZjMGFk
N2RmMGUxMDdlOTIuLmFjNTRkZWNmMGUwOTRjYjQ2NTViZDEyNTFiMjgyNTZhYWRhMWFlNzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtODMsNyArODMsNyBAQCBjbGFz
cyBSdW50aW1lQXJyYXkgOiBwdWJsaWMgSlNBcnJheSB7CiAKIHByaXZhdGU6CiAgICAgUnVudGlt
ZUFycmF5KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7
CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBFbmNvZGVkSlNWYWx1ZSk7CiAKICAgICBCaW5kaW5n
c0FycmF5KiBtX2FycmF5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2Qu
Y3BwCmluZGV4IGFlMmIyYjliYzkzZTkyNzNjZmFiMmQxZjdkN2VkNDBlYTEzYjAyYjcuLmRkMjYw
OWEwOTMxMmMzYzY2MDMzMTQ0NzQ1NWI2OWIzODg3ODYwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lkIFJ1bnRpbWVNZXRo
b2Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgY29uc3QgU3RyaW5nJiBpZGVudCkKICAgICBBU1NF
UlQoaW5oZXJpdHMoaW5mbygpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVNZXRob2Q6
Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgUnVudGltZU1ldGhvZDo6bGVuZ3RoR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUs
IEVuY29kZWRKU1ZhbHVlKQogewogICAgIFJ1bnRpbWVNZXRob2QqIHRoaXNPYmplY3QgPSBqc0R5
bmFtaWNDYXN0PFJ1bnRpbWVNZXRob2QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKCF0aGlzT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApp
bmRleCBkODZkNTk0NzVlMGE5NzUxN2MwMTM2YmFiMTA2ZjJhMDdjMTkyNGUxLi5kODM2NTA2ZjQz
ODAzZmQ2NzlmNjA2Zjc0NWFiYTIwZjQ1ZDgxM2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuaApAQCAtNjYsNyArNjYsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50
aW1lTWV0aG9kIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0
aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVlKTsKIAogICAgIEJpbmRpbmdzOjpNZXRo
b2QqIG1fbWV0aG9kOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3Bw
CmluZGV4IGE1NzNlMDVkNzU5YjA3NTcwZDI2MjFkOGU2MjYwMzY0MWNiYjRlYjkuLmY1Y2MzNDc3
ZmI2ZWQ0NWUzOTY1ZDEwZDZjMmI3MDg3YWNjMDg3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6
OmludmFsaWRhdGUoKQogICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lLCBFbmNvZGVkSlNWYWx1ZSkKIHsKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganND
YXN0PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVm
UHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7CkBAIC04MCw3ICs4
MCw3IEBAIEVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBFbmNvZGVkSlNWYWx1ZSkKIHsgICAgCiAgICAgUnVudGltZU9iamVjdCog
dGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqLT5tX2luc3RhbmNl
OwpAQCAtOTksNyArOTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVj
dDo6bWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVj
dDo6bWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBFbmNvZGVkSlNWYWx1ZSkKIHsKICAgICBSdW50
aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmot
Pm1faW5zdGFuY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9v
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDgx
ZDRlYmQzYjRkYmI3MDk5MTE1ZGExMDI4MmIyOWZiZmZiMTg2ZjUuLjdkOWRlNzEzMTc3ZmU0MTg5
NjFkODZiMmEwOWQ2MzFiNjhiZmQ5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29i
amVjdC5oCkBAIC03OCw5ICs3OCw5IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVPYmpl
Y3QgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oVk0mKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZmFsbGJhY2tP
YmplY3RHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0g
ICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBtZXRob2RH
ZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIGZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEVuY29kZWRKU1ZhbHVlKTsKKyAgICBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgZmllbGRHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSwgRW5jb2RlZEpTVmFsdWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBtZXRo
b2RHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgRW5jb2Rl
ZEpTVmFsdWUpOwogCiAgICAgUmVmUHRyPEluc3RhbmNlPiBtX2luc3RhbmNlOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmNwcAppbmRleCBkNTYxYWUxNDhjMjJmNTk3ZDdmMWFlODRjYjdkMGRmOTFjMGNhMGFl
Li5hZWQ4NTA0NGUzYzI4ODg1Y2QyNDQzZmY4ZmQzNTIwZDZkZDE1MWE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmpl
Y3QuY3BwCkBAIC00MzUsNyArNDM1LDcgQEAgdm9pZCBKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHkKICAgICBu
cG5NZW1GcmVlKGlkZW50aWZpZXJzKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6
cHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0Ojpw
cm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFsdWUpCiB7CiAgICAgSlNOUE9i
amVjdCogdGhpc09iaiA9IGpzQ2FzdDxKU05QT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iaiwgaW5mbygpKTsK
QEAgLTQ3NSw3ICs0NzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0Ojpwcm9wZXJ0eUdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocHJvcGVydHlWYWx1ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTTlBP
YmplY3Q6Om1ldGhvZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpTTlBPYmpl
Y3Q6Om1ldGhvZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgRW5jb2RlZEpTVmFsdWUpCiB7CiAgICAgSlNO
UE9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxKU05QT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iaiwgaW5mbygp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5oCmluZGV4IDhiYWZlYjA2MGEyMTA2NmQ4ZWFhNjA4NzRjMDNhYzk5ZjBj
ZjRiZTcuLmQwODljZGM1OWFmYjg4MTQ3MDdjMDgxY2I5MzY1ZGQzZmM5MDU5MjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuaApAQCAtOTQsOCArOTQsOCBAQCBjbGFzcyBKU05QT2JqZWN0IDogcHVibGljIEpTQzo6
SlNEZXN0cnVjdGlibGVPYmplY3QgewogCiAgICAgc3RhdGljIHZvaWQgZ2V0T3duUHJvcGVydHlO
YW1lcyhKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFy
cmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUpOwogCi0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpT
VmFsdWUgcHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgbWV0
aG9kR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIHByb3BlcnR5R2V0dGVy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIG1l
dGhvZEdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoSlNDOjpFeGVjU3RhdGUqKTsKIAogICAgIE5QUnVu
dGltZU9iamVjdE1hcCogbV9vYmplY3RNYXA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278948</attachid>
            <date>2016-05-14 15:52:03 -0700</date>
            <delta_ts>2016-05-14 16:42:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157080-20160515075255.patch</filename>
            <type>text/plain</type>
            <size>45113</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwOTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MmE2YWQyNmExZDRmMTZjMmJlMjAzMWJjZWRkOWFkMjAwNTYxZmRkLi4yYmM3NjhlODIzYzk2MWY0
ZTc1ZjU4NjQ0ODAwM2Y4NzYzZThmMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAxNi0wNS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBc3NlcnRpb24gZmFpbHVyZSBmb3IgUmVmbGVjdC5nZXQgd2l0aCBQ
cm94eSBhbmQgcHJpbWl0aXZlIHZhbHVlIGFzIGV4cGxpY2l0IHJlY2VpdmVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcwODAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBjdXN0b20gYWNjZXNzb3Ig
Z2V0dGVyLCB0aGUgYXJndW1lbnQgInRoaXNWYWx1ZSIgY2FuIGJlIGFsdGVyZWQgYnkgdXNpbmcg
YFJlZmxlY3QuZ2V0YC4KKyAgICAgICAgSW4gdGhpcyBwYXRjaCwgd2UgYWRkIGEgbmV3IHBhcmFt
ZXRlciwgInNsb3RCYXNlIi4gVGhpcyByZXByZXNlbnRzIHRoZSBiYXNlIHZhbHVlIG9mZmVyaW5n
CisgICAgICAgIHRoaXMgY3VzdG9tIGdldHRlci4gQW5kIHVzZSBpdCBpbiBQcm94eU9iamVjdCdz
IHBlcmZvcm1HZXQgY3VzdG9tIGFjY2Vzc29yIGdldHRlci4KKworICAgICAgICAqIEFQSS9KU0Nh
bGxiYWNrT2JqZWN0Lmg6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMu
aDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5jdGlv
bkdldHRlcik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2FsbGJh
Y2tHZXR0ZXIpOgorICAgICAgICAqIGJ5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcDoKKyAg
ICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKToKKyAgICAgICAgSW4gUG9seW1v
cnBoaWNBY2Nlc3MgY2FzZSwgdGhlIHRoaXNWYWx1ZSBhbmQgdGhlIHNsb3RCYXNlIGFyZSBhbHdh
eXMgY2VsbHMuCisgICAgICAgIFRoaXMgaXMgYmVjYXVzZSBJQyBpcyBlbmFibGVkIGluIHRoZSBj
YXNlIHRoYXQgdGhlIGJhc2UgdmFsdWUgaXMgYSBjZWxsLgorICAgICAgICBBbmQgc2xvdEJhc2Ug
aXMgYWx3YXlzIG9uIHRoZSBwcm90b3R5cGUgY2hhaW4gZnJvbSB0aGlzIGJhc2UgdmFsdWUuCisK
KyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoV1RGOjpDdXN0b21HZXR0ZXI6OmN1c3RvbUdl
dHRlcik6CisgICAgICAgIChXVEY6OlJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAg
ICAgKiBydW50aW1lL0pTQm91bmRTbG90QmFzZUZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6
Ym91bmRTbG90QmFzZUZ1bmN0aW9uQ2FsbCk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9u
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKToKKyAgICAg
ICAgKEpTQzo6SlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKToKKyAgICAgICAgKiBydW50aW1lL0pT
RnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNlT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6Y2FsbGJhY2tHZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvUHJv
cGVydHlTbG90LmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90OjpjdXN0b21HZXR0ZXIp
OgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6CisgICAgICAgICogcnVudGltZS9Q
cm94eU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OnBlcmZvcm1Qcm94eUdldCk6CisgICAgICAg
ICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OnJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JJbnB1dCk6
CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKToKKyAgICAgICAgKEpT
Qzo6cmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25z
dHJ1Y3Rvckxhc3RQYXJlbik6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTGVmdENv
bnRleHQpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCk6Cisg
ICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyNCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyNSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyNik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
Nyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOSk6IERlbGV0ZWQu
CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Byb3h5LWdldC13aXRoLXByaW1pdGl2ZS1yZWNlaXZl
ci5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisKIDIwMTYtMDUtMTMgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBqc2M6IHNhbXBsaW5nUHJv
ZmlsZXJTdGFja1RyYWNlcygpIHdpdGhvdXQgc3RhcnRpbmcgc2FtcGxpbmcgc2hvdWxkIG5vdCBj
YXVzZSBqc2MgdG8gY3Jhc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNTgxOWQ5YmNmMDI0ODc5MWZhMzUwZDg2
MmQyMWNhNTBiNzEwZTk2Li42NzlmMTk0MGFiYzVlZjdjODdiZDZiNmZlOTM5ZGFiNjIxZDdmZTBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDUtMTQgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmUgZm9y
IFJlZmxlY3QuZ2V0IHdpdGggUHJveHkgYW5kIHByaW1pdGl2ZSB2YWx1ZSBhcyBleHBsaWNpdCBy
ZWNlaXZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU3MDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6Om5vbkNhY2hp
bmdTdGF0aWNGdW5jdGlvbkdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNET01XaW5kb3dXZWJLaXQpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVf
YXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcik6Cisg
ICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGlt
ZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIp
OgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5oOgorICAgICAgICAqIGJyaWRnZS9y
dW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0
OjpmYWxsYmFja09iamVjdEdldHRlcik6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1l
T2JqZWN0OjpmaWVsZEdldHRlcik6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2Jq
ZWN0OjptZXRob2RHZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgor
CiAyMDE2LTA1LTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFRvVCBXZWJLaXQgZG9lc24ndCBzaG93IHRvb2x0aXAgb24gcGVyZiBkYXNoYm9hcmQncyBzdW1t
YXJ5IHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxYTBhMWVmOWY5NWZhMDMxNjAwYTlmMTJmYWRkOWM5MWQ3
ZWUwYWFiLi5iMWU1ODJmYTdiOGRmOGJlYjNjYTY4Y2NhYzFlZGRiNTQzNGEzMWNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDUtMTQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmUgZm9yIFJlZmxlY3Qu
Z2V0IHdpdGggUHJveHkgYW5kIHByaW1pdGl2ZSB2YWx1ZSBhcyBleHBsaWNpdCByZWNlaXZlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MDgwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkpT
TlBPYmplY3Q6OnByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6
bWV0aG9kR2V0dGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5oOgorCiAyMDE2LTA1LTEzICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggaU9TIEJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3QuaAppbmRleCBlOTU2M2Y1NGNlYThiMjYzYjE0MzM1NjcyMWQ0Y2RkZDc5
YzVlNDA2Li41ZTAzM2Y4ZTNjMmVkZmM1MzE4M2I4MWMxMzVlMGNmNWVjOGU0NTBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMjExLDggKzIx
MSw4IEBAIGNsYXNzIEpTQ2FsbGJhY2tPYmplY3QgOiBwdWJsaWMgUGFyZW50IHsKICAgICBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3QoRXhlY1N0YXRlKik7CiAg
ICAKICAgICBKU1ZhbHVlIGdldFN0YXRpY1ZhbHVlKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSk7
Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKKyAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxK
U0NhbGxiYWNrT2JqZWN0RGF0YT4gbV9jYWxsYmFja09iamVjdERhdGE7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApp
bmRleCBhNTUzNzIzNGJiMzJjYTY4NmRkMDZiMmFmZTlhMDdhOWQwMjU3ZjM0Li5iMmJjZjQ1M2E2
YjE4Yjk1NzY3NmY3ZmIwNGQzMTcwMTI2YTZlN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtNTk5LDcgKzU5
OSw3IEBAIEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRTdGF0aWNWYWx1ZShF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJl
bnQ+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0
aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQ
YXJlbnQ+OjpzdGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewog
ICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHRoaXNWYWx1
ZSk7CiAgICAgCkBAIC02MjcsNyArNjI3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09i
amVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEUKIH0K
IAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmpl
Y3Q8UGFyZW50Pjo6Y2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
U0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09i
amVjdCopCiB7CiAgICAgSlNDYWxsYmFja09iamVjdCogdGhpc09iaiA9IGFzQ2FsbGJhY2tPYmpl
Y3QodGhpc1ZhbHVlKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCmluZGV4IDcwNjdjNDliYTRhYmZmNDYxZWI1NDhj
NGQyZTVhMmU4ODBlYWJjMzUuLjY4NGVkZTg1MzUxMDk4NmNiMTA2NjBiYTVmMDYyMzljNjcyYjhi
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhp
Y0FjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljQWNjZXNzLmNwcApAQCAtMTA5Miw3ICsxMDkyLDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5l
cmF0ZUltcGwoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAgICAgICAgICAgIC8vIHRv
IG1ha2Ugc29tZSBzcGFjZSBoZXJlLgogICAgICAgICAgICAgaml0Lm1ha2VTcGFjZU9uU3RhY2tG
b3JDQ2FsbCgpOwogCi0gICAgICAgICAgICAvLyBnZXR0ZXI6IEVuY29kZWRKU1ZhbHVlICgqR2V0
VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSk7CisgICAgICAgICAgICAvLyBnZXR0ZXI6IEVuY29kZWRKU1ZhbHVlICgqR2V0VmFsdWVG
dW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwg
SlNPYmplY3QqIHNsb3RCYXNlKTsKICAgICAgICAgICAgIC8vIHNldHRlcjogdm9pZCAoKlB1dFZh
bHVlRnVuYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc09iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdmFsdWUpOwogICAgICAgICAgICAgLy8gQ3VzdG9tIHZhbHVlcyBhcmUgcGFzc2VkIHRo
ZSBzbG90QmFzZSAodGhlIHByb3BlcnR5IGhvbGRlciksIGN1c3RvbSBhY2Nlc3NvcnMgYXJlIHBh
c3NlZCB0aGUgdGhpc1ZhdWxlIChyZWNpZXZlcikuCiAgICAgICAgICAgICBHUFJSZWcgYmFzZUZv
ckN1c3RvbVZhbHVlID0gbV90eXBlID09IEN1c3RvbVZhbHVlR2V0dGVyIHx8IG1fdHlwZSA9PSBD
dXN0b21WYWx1ZVNldHRlciA/IGJhc2VGb3JBY2Nlc3NHUFIgOiBiYXNlRm9yR2V0R1BSOwpAQCAt
MTEwMCw3ICsxMTAwLDggQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2Vu
ZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gQ3VzdG9tVmFs
dWVHZXR0ZXIgfHwgbV90eXBlID09IEN1c3RvbUFjY2Vzc29yR2V0dGVyKSB7CiAgICAgICAgICAg
ICAgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAg
ICAgYmFzZUZvckN1c3RvbVZhbHVlLAotICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CisgICAgICAgICAgICAgICAgICAgIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpLAorICAgICAgICAgICAgICAgICAg
ICBiYXNlRm9yQWNjZXNzR1BSKTsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAg
IGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUZvckN1c3RvbVZhbHVlLCB2YWx1
ZVJlZ3MuZ3ByKCkpOwogI2Vsc2UKQEAgLTExMDgsNyArMTEwOSw4IEBAIHZvaWQgQWNjZXNzQ2Fz
ZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUpCiAgICAgICAgICAg
ICAgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAg
ICAgRUFCSV8zMkJJVF9EVU1NWV9BUkcgYmFzZUZvckN1c3RvbVZhbHVlLAogICAgICAgICAgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAg
ICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwo
KSkpOworICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRl
bnQuaW1wbCgpKSwKKyAgICAgICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUik7CiAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoCiAgICAgICAgICAgICAgICAgICAgIEVBQklfMzJCSVRfRFVNTVlfQVJHIGJhc2VG
b3JDdXN0b21WYWx1ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggYjMyNjhmZTlhNjVmMjYzOWQ1
OWM2ZTBmYjA1ZTQ0OTBjNzE2YmM2NC4uNDA3NzEyNjZmMGI1N2ZjZWVjOTY0ZTI5Mjc0N2I0MjMy
NzZhMTg5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTM1OCw3ICszNTgsNyBAQCBjbGFzcyBD
dXN0b21HZXR0ZXIgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgfQogCiBwcml2YXRl
OgotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKKyAgICBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKICAgICB7CiAgICAgICAgIEN1c3Rv
bUdldHRlciogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8Q3VzdG9tR2V0dGVyKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgICAgICBpZiAoIXRoaXNPYmplY3QpCkBAIC00NjMs
NyArNDYzLDcgQEAgY2xhc3MgUnVudGltZUFycmF5IDogcHVibGljIEpTQXJyYXkgewogICAgIHsK
ICAgICB9CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCisgICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCiAgICAgewogICAgICAg
ICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJ1bnRpbWVBcnJheSo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICAgICAgaWYgKCF0aGlzT2JqZWN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZFNsb3RCYXNl
RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZFNsb3RC
YXNlRnVuY3Rpb24uY3BwCmluZGV4IDFmMzM1NjI2N2ZhZmI3ZDMwNWQ5NjNhYWE5MDdmZTJmNGJl
NjRlMGUuLjJkNjdlNDMxNzFlMmRkNmM5NDUwODc2YzlmMjJkMjFkMzVlZGI0NGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRTbG90QmFzZUZ1bmN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kU2xvdEJhc2VG
dW5jdGlvbi5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBib3VuZFNsb3RCYXNlRnVuY3Rpb25DYWxsKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAogICAgIGNvbnN0IFN0cmluZyYg
bmFtZSA9IGJvdW5kU2xvdEJhc2VGdW5jdGlvbi0+bmFtZSgpOwotICAgIHJldHVybiBnZXR0ZXIo
ZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNWYWx1ZSgpKSwgUHJvcGVydHlOYW1lKElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgbmFtZSkpKTsKKyAgICByZXR1cm4gZ2V0dGVyKGV4
ZWMsIEpTVmFsdWU6OmVuY29kZShleGVjLT50aGlzVmFsdWUoKSksIFByb3BlcnR5TmFtZShJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIG5hbWUpKSwgYmFzZU9iamVjdCk7CiB9CiAKIEpTQm91
bmRTbG90QmFzZUZ1bmN0aW9uOjpKU0JvdW5kU2xvdEJhc2VGdW5jdGlvbihWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBUeXBl
IHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCmlu
ZGV4IDYzOGU3MDUyNmZjMDBjYmIzMGM1M2U1OWZhN2M3NzYxNWM2YjVhMDIuLmFlMzBkY2M2MDQ1
YmY2ZmE3MjkxYjI4ZDY5NmVlNTJiMGQ2YTljMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgc3RhdGljIEpTVmFs
dWUgcmV0cmlldmVBcmd1bWVudHMoRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9uKiBmdW5jdGlv
bk9iaikKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjph
cmd1bWVudHNHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBq
c0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NF
UlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwpAQCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRp
YyBHZXR0ZXJTZXR0ZXIqIGdldFRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKEpTRnVuY3Rpb24q
IGZ1bmN0aW9uKQogICAgICAgICA6IGZ1bmN0aW9uLT5nbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBl
RXJyb3JBcmd1bWVudHNBbmRDYWxsZXJJblN0cmljdE1vZGVHZXR0ZXJTZXR0ZXIoKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
U0Z1bmN0aW9uOjpjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIEpTRnVuY3Rpb24qIHRo
aXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDMwMDcwZDBkNjFkN2UyYjZhZDhiYWRj
YmZkMTk3MWFjNzc1N2IyNDguLjMwN2RlYzEzYzU1ZGYxYWQyMTM5YTI4MDk4MGRkZjJiMzc0MTQ3
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTE5
OCwxMCArMTk4LDggQEAgY2xhc3MgSlNGdW5jdGlvbiA6IHB1YmxpYyBKU0NhbGxlZSB7CiAKICAg
ICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogCi0gICAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIGFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGVyR2V0dGVyKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIG5hbWVHZXR0ZXIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
LCBKU09iamVjdCopOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKIAogICAg
IFdyaXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gbV9leGVjdXRhYmxlOwogICAgIFdyaXRlQmFy
cmllcjxGdW5jdGlvblJhcmVEYXRhPiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwCmluZGV4
IDQwZGRhNzMzM2ZmNzIwYWRmNjA5OGZmNDc3NTcyZjFlYjE4NmFlYTAuLjllOTk0MzI0Njk1NGYz
MDJjZjBmZTgwODc0MGQ2ZTExNDc2NzZhMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZU5hbWVzcGFjZU9iamVjdC5jcHAKQEAgLTk3LDcg
Kzk3LDcgQEAgdm9pZCBKU01vZHVsZU5hbWVzcGFjZU9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlz
T2JqZWN0LT5tX21vZHVsZVJlY29yZCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxs
YmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIEpTTW9kdWxlTmFtZXNwYWNlT2Jq
ZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0Kj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQg
PSB0aGlzT2JqZWN0LT5tb2R1bGVSZWNvcmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCmluZGV4IDA0MTAxMzk0MzhiNTRjZGQ5MjhmMDEzMjdl
NjdmODgyMjA1MGU4NjYuLjA5ZjkwMjBmMjMyY2M3NGFiZjEzOTg4NjI1NmZkNzI1NTdjMGNkNjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcApA
QCAtMzYsNyArMzYsNyBAQCBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6ZnVuY3Rpb25HZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjKSBjb25zdAogSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmN1c3RvbUdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIGNvbnN0CiB7CiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBtX2F0dHJpYnV0ZXMgJiBDdXN0b21BY2Nlc3NvciA/IG1fdGhp
c1ZhbHVlIDogSlNWYWx1ZShzbG90QmFzZSgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2Rl
KG1fZGF0YS5jdXN0b20uZ2V0VmFsdWUoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSks
IHByb3BlcnR5TmFtZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3Rv
bS5nZXRWYWx1ZShleGVjLCBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1l
LCBzbG90QmFzZSgpKSk7CiB9CiAKIEpTVmFsdWUgUHJvcGVydHlTbG90OjpnZXRQdXJlUmVzdWx0
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3Bl
cnR5U2xvdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgK
aW5kZXggMTU0MDNjZGM3ZGE3MzgyMzVmNzAxNDIyOTViNDE2ZDg5NDRiN2JlZC4uYzJlY2M2ZTAz
YzBlYjM2NGE3ODAyYjI3NWU3MmQyN2E5OTE1NmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKQEAgLTk0LDcgKzk0LDcgQEAgY2xhc3MgUHJvcGVy
dHlTbG90IHsKICAgICB7CiAgICAgfQogCi0gICAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoKkdl
dFZhbHVlRnVuYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpOworICAgIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCog
c2xvdEJhc2UpOwogCiAgICAgSlNWYWx1ZSBnZXRWYWx1ZShFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWUpIGNvbnN0OwogICAgIEpTVmFsdWUgZ2V0VmFsdWUoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3h5T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5
T2JqZWN0LmNwcAppbmRleCA1MzkxODVmMzRmNzQ5NjUyYTYwNWVhMTJlYWI4MGE0Y2VjOTc5Mzhj
Li45OTgzMzNjZDU0MzlmNTlkZTVhMzcwYmIwM2U5MWM1ZjI0YjM1N2ZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCkBAIC05Miw3ICs5Miw3IEBA
IHZvaWQgUHJveHlPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHRhcmdldCwgSlNWYWx1CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBzX3Byb3h5QWxy
ZWFkeVJldm9rZWRFcnJvck1lc3NhZ2UgPSAiUHJveHkgaGFzIGFscmVhZHkgYmVlbiByZXZva2Vk
LiBObyBtb3JlIG9wZXJhdGlvbnMgYXJlIGFsbG93ZWQgdG8gYmUgcGVyZm9ybWVkIG9uIGl0IjsK
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHBlcmZvcm1Qcm94eUdldChFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBwZXJmb3JtUHJveHlHZXQoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KiBzbG90QmFzZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGlmICghdm0uaXNT
YWZlVG9SZWN1cnNlKCkpIHsKQEAgLTEwMCwyMCArMTAwLDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHBlcmZvcm1Qcm94eUdldChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwogICAgIH0K
IAotICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTT2JqZWN0Kj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOyAvLyBUaGlzIG1pZ2h0IGJlIGEgdmFsdWUgd2hlcmUgc29tZXdo
ZXJlIGluIF9fcHJvdG9fXyBjaGFpbiBsaXZlcyBhIFByb3h5T2JqZWN0LgotICAgIEpTT2JqZWN0
KiBwcm94eU9iamVjdEFzT2JqZWN0ID0gdGhpc09iamVjdDsKLSAgICAvLyBGSVhNRTogbWFrZSBp
dCBzbyB0aGF0IGN1c3RvbSBnZXR0ZXJzIHRha2UgYm90aCB0aGUgfHRoaXN8IHZhbHVlIGFuZCB0
aGUgc2xvdEJhc2UgKHByb3BlcnR5IGhvbGRlcikuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDMyMAotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAg
IGlmIChMSUtFTFkocHJveHlPYmplY3RBc09iamVjdC0+dHlwZSgpID09IFByb3h5T2JqZWN0VHlw
ZSkpCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHBy
b3h5T2JqZWN0QXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwotICAgICAgICBSRUxFQVNF
X0FTU0VSVChwcm90b3R5cGUuaXNPYmplY3QoKSk7Ci0gICAgICAgIHByb3h5T2JqZWN0QXNPYmpl
Y3QgPSBhc09iamVjdChwcm90b3R5cGUpOwotICAgIH0KLQotICAgIFByb3h5T2JqZWN0KiBwcm94
eU9iamVjdCA9IGpzQ2FzdDxQcm94eU9iamVjdCo+KHByb3h5T2JqZWN0QXNPYmplY3QpOworICAg
IFByb3h5T2JqZWN0KiBwcm94eU9iamVjdCA9IGpzQ2FzdDxQcm94eU9iamVjdCo+KHNsb3RCYXNl
KTsKICAgICBKU09iamVjdCogdGFyZ2V0ID0gcHJveHlPYmplY3QtPnRhcmdldCgpOwogCiAgICAg
aWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT51bmRlcnNjb3JlUHJvdG8pCkBA
IC0xNDMsNyArMTMwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHBlcmZvcm1Qcm94eUdldChF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwKICAgICBNYXJrZWRBcmd1
bWVudEJ1ZmZlciBhcmd1bWVudHM7CiAgICAgYXJndW1lbnRzLmFwcGVuZCh0YXJnZXQpOwogICAg
IGFyZ3VtZW50cy5hcHBlbmQoaWRlbnRpZmllclRvU2FmZVB1YmxpY0pTVmFsdWUodm0sIElkZW50
aWZpZXI6OmZyb21VaWQoJnZtLCBwcm9wZXJ0eU5hbWUudWlkKCkpKSk7Ci0gICAgYXJndW1lbnRz
LmFwcGVuZCh0aGlzT2JqZWN0KTsKKyAgICBhcmd1bWVudHMuYXBwZW5kKEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBKU1ZhbHVlIHRyYXBSZXN1bHQgPSBjYWxsKGV4ZWMsIGdldEhh
bmRsZXIsIGNhbGxUeXBlLCBjYWxsRGF0YSwgaGFuZGxlciwgYXJndW1lbnRzKTsKICAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMTk1NmVjOTBjYzI0NjBlOTM5OGJmZmRjNmU5NzExMWIy
NTU3MjAyYy4uNzVhNTUwZDcwMDIzZmIzY2Y1Yzg1ZDcxYzZmNzdiYjIyMjhiNDE5YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cApAQCAtMzEsMjEgKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ck11bHRpbGluZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRD
b250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyMShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyNChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXI2KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyhF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjgoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI5KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4
cENvbnN0cnVjdG9yTGFzdE1hdGNoKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0Kik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNP
YmplY3QqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250
ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7
CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKK3RlbXBs
YXRlPGludCBOPgorc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CiAK
IHN0YXRpYyBib29sIHNldFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHN0YXRpYyBib29sIHNldFJlZ0V4cENvbnN0cnVj
dG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7
CkBAIC03MiwxNSArNjUsMTUgQEAgY29uc3QgQ2xhc3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKICAgICAkYCAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCAgICBEb250RGVsZXRlfFJlYWRP
bmx5fERvbnRFbnVtCiAgICAgcmlnaHRDb250ZXh0ICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRD
b250ZXh0ICAgRG9udERlbGV0ZXxSZWFkT25seQogICAgICQnICAgICAgICAgICAgICByZWdFeHBD
b25zdHJ1Y3RvclJpZ2h0Q29udGV4dCAgIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAg
ICAkMSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxICAgICAgICBEb250RGVs
ZXRlfFJlYWRPbmx5Ci0gICAgJDIgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
MiAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAgICQzICAgICAgICAgICAgICByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjMgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkNCAgICAg
ICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0ICAgICAgICBEb250RGVsZXRlfFJlYWRP
bmx5Ci0gICAgJDUgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSAgICAgICAg
RG9udERlbGV0ZXxSZWFkT25seQotICAgICQ2ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjYgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkNyAgICAgICAgICAgICAg
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI3ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAg
JDggICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCAgICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQotICAgICQ5ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjkg
ICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKKyAgICAkMSAgICAgICAgICAgICAgcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXI8MT4gICAgICBEb250RGVsZXRlfFJlYWRPbmx5CisgICAgJDIgICAgICAg
ICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyPDI+ICAgICAgRG9udERlbGV0ZXxSZWFkT25s
eQorICAgICQzICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjwzPiAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKKyAgICAkNCAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI8ND4gICAgICBEb250RGVsZXRlfFJlYWRPbmx5CisgICAgJDUgICAgICAgICAgICAgIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyPDU+ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICAgICQ2
ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjw2PiAgICAgIERvbnREZWxldGV8
UmVhZE9ubHkKKyAgICAkNyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI8Nz4g
ICAgICBEb250RGVsZXRlfFJlYWRPbmx5CisgICAgJDggICAgICAgICAgICAgIHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyPDg+ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICAgICQ5ICAgICAgICAg
ICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjw5PiAgICAgIERvbnREZWxldGV8UmVhZE9ubHkK
IEBlbmQKICovCiAKQEAgLTE1Nyw3OCArMTUwLDM5IEBAIGJvb2wgUmVnRXhwQ29uc3RydWN0b3I6
OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFBy
CiB7CiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxSZWdFeHBDb25zdHJ1Y3RvciwgSW50
ZXJuYWxGdW5jdGlvbj4oZXhlYywgcmVnRXhwQ29uc3RydWN0b3JUYWJsZSwganNDYXN0PFJlZ0V4
cENvbnN0cnVjdG9yKj4ob2JqZWN0KSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KLSAgICAKLUVu
Y29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMShFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSktPmdldEJhY2tyZWYoZXhlYywgMSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29u
c3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDIp
KTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKS0+Z2V0QmFja3JlZihleGVjLCAzKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVl
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
YXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2ty
ZWYoZXhlYywgNCkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDUpKTsKLX0KLQotRW5j
b2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2KEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KS0+Z2V0QmFja3JlZihleGVjLCA2KSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyNyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25z
dHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhlYywgNykp
OwotfQotCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjgoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDgpKTsKLX0KIAotRW5jb2RlZEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCit0ZW1wbGF0ZTxpbnQgTj4KK0VuY29kZWRKU1ZhbHVl
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKIHsKLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
LT5nZXRCYWNrcmVmKGV4ZWMsIDkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVn
RXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4
ZWMsIE4pKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKIHsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
LT5pbnB1dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxp
bmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5tdWx0aWxpbmUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3Ry
dWN0b3JMYXN0TWF0Y2goRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
YXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2ty
ZWYoZXhlYywgMCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQ
YXJlbihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3Qq
KQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldExhc3RQYXJlbihleGVjKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJl
Z0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSktPmdldExlZnRDb250ZXh0KGV4ZWMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29u
c3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmln
aHRDb250ZXh0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVn
RXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRSaWdodENvbnRl
eHQoZXhlYykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9wcm94eS1nZXQtd2l0aC1wcmltaXRpdmUtcmVjZWl2ZXIuanMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWdldC13aXRoLXByaW1pdGl2ZS1yZWNlaXZlci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYjNkM2JkZWM4NTQ0MjI2ZWI0NTVkMjQ1MjhkODdlYzBjOTBkNWZkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94
eS1nZXQtd2l0aC1wcmltaXRpdmUtcmVjZWl2ZXIuanMKQEAgLTAsMCArMSwyMiBAQAorZnVuY3Rp
b24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVj
dGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9
CisKKworc2hvdWxkQmUoUmVmbGVjdC5nZXQobmV3IFByb3h5KHt9LCB7fSksIDAsIDEpLCB1bmRl
ZmluZWQpOworc2hvdWxkQmUoUmVmbGVjdC5nZXQobmV3IFByb3h5KHt9LCB7fSksICdoZWxsbycs
IDEpLCB1bmRlZmluZWQpOworCit7CisgICAgbGV0IHRhcmdldCA9IHt9OworICAgIGxldCBoYW5k
bGVycyA9IHsKKyAgICAgICAgZ2V0OiBmdW5jdGlvbih0aGVUYXJnZXQsIHByb3BOYW1lLCByZWNl
aXZlcikgeworICAgICAgICAgICAgLy8gUmVjZWl2ZXIgY2FuIGJlIGEgcHJpbWl0aXZlIHZhbHVl
LgorICAgICAgICAgICAgc2hvdWxkQmUocmVjZWl2ZXIsIDEpOworICAgICAgICAgICAgcmV0dXJu
IDQyOworICAgICAgICB9CisgICAgfTsKKyAgICBsZXQgcHJveHkgPSBuZXcgUHJveHkodGFyZ2V0
LCBoYW5kbGVycyk7CisgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocHJveHksIDAsIDEpLCA0Mik7
CisgICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocHJveHksICdoZWxsbycsIDEpLCA0Mik7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IGI4OGYwNjA4ODU2
ZmQwZjU3MzNlM2NhYThkNWMzNWViMTMzMTVkNDQuLmI2NDkwMTdhNzgyM2Q5NDlhMGVhMmVkOWJk
Y2YyYzRlYjRiMWFjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oCkBAIC0zMDYsNyArMzA2LDcgQEAgU3RyaW5nIHByb3BlcnR5TmFtZVRvU3RyaW5nKEpTQzo6
UHJvcGVydHlOYW1lKTsKIEF0b21pY1N0cmluZyBwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhK
U0M6OlByb3BlcnR5TmFtZSk7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERPTUNsYXNzPiBjb25zdCBK
U0M6Okhhc2hUYWJsZVZhbHVlKiBnZXRTdGF0aWNWYWx1ZVNsb3RFbnRyeVdpdGhvdXRDYWNoaW5n
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdGVtcGxhdGU8SlNDOjpOYXRp
dmVGdW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBub25DYWNoaW5nU3Rh
dGljRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Cit0ZW1wbGF0ZTxKU0M6Ok5hdGl2ZUZ1bmN0aW9uLCBpbnQgbGVu
Z3RoPiBKU0M6OkVuY29kZWRKU1ZhbHVlIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBK
U0M6OkpTT2JqZWN0Kik7CiAKIC8vIElubGluZSBmdW5jdGlvbnMgYW5kIHRlbXBsYXRlIGRlZmlu
aXRpb25zLgogCkBAIC04MDksNyArODA5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgY29uc3QgSlND
OjpIYXNoVGFibGVWYWx1ZSogZ2V0U3RhdGljVmFsdWVTbG90RW50cnlXaXRob3V0Q2FjaGkKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdGVtcGxhdGU8SlNDOjpOYXRpdmVGdW5jdGlvbiBuYXRp
dmVGdW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBub25DYWNoaW5nU3Rh
dGljRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3RlbXBsYXRlPEpTQzo6TmF0aXZl
RnVuY3Rpb24gbmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+IEpTQzo6RW5jb2RlZEpTVmFsdWUg
bm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNP
YmplY3QqKQogewogICAgIHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZShKU0M6OkpTRnVuY3Rp
b246OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGxlbmd0
aCwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSwgbmF0aXZlRnVuY3Rpb24pKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA2
ZDRiZTNlYjQwM2M4Y2ViMzJmNzAzZGM1MzMxODFjZmFjY2FmMWY4Li5hYzYxZmJiYmQ3YmFhZTJj
NDkzMzA3MDNkY2IwNmRiMTYyYTI5ZGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgSlNET01X
aW5kb3c6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogfQog
CiAjaWYgRU5BQkxFKFVTRVJfTUVTU0FHRV9IQU5ETEVSUykKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBqc0RPTVdpbmRvd1dlYktpdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93V2Vi
S2l0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUsIEpTT2JqZWN0KikKIHsKICAgICBKU0RPTVdpbmRvdyogY2FzdGVkVGhpcyA9IHRvSlNET01X
aW5kb3coSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghQmluZGluZ1NlY3Vy
aXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPndyYXBw
ZWQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVs
ZW1lbnRGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5F
bGVtZW50RnVuY3Rpb25zLmNwcAppbmRleCAyODY1MzcyZTlhZTcxZjRhNWNhNTA0ZWUwODQ5NTVh
YjVlYjE0ZGFlLi4zMGVkYWY3ZWNjOTg3MmQ0ZWQyOWVjY2IzYmNkMjcwZGExMDY3OTYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlv
bnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1
bmN0aW9ucy5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgSlNPYmplY3QqIHBsdWdpblNjcmlwdE9iamVj
dChFeGVjU3RhdGUqIGV4ZWMsIEpTSFRNTEVsZW1lbnQqIGpzSFRNTEVsZW1lbnQpCiAgICAgcmV0
dXJuIGluc3RhbmNlLT5jcmVhdGVSdW50aW1lT2JqZWN0KGV4ZWMpOwogfQogICAgIAotRW5jb2Rl
ZEpTVmFsdWUgcGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgcGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVj
dCopCiB7CiAKICAgICBKU0hUTUxFbGVtZW50KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxK
U0hUTUxFbGVtZW50Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaAppbmRl
eCA3YTNmODMyZDlkYWE1ZTc5NjA3YmQxYjI3MWIzOTZjYzI4OGM3MDIyLi5jNjRlZGJmMWUyMWE1
MjAyZDM3NWYxNDc1YzM1NmFjNzJjMjg2OGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaApAQCAtMzgsOCArMzgsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgSlNDOjpCaW5kaW5nczo6SW5zdGFuY2UqIHBsdWdp
bkluc3RhbmNlKEhUTUxFbGVtZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNDOjpKU09iamVj
dCogcGx1Z2luU2NyaXB0T2JqZWN0KEpTQzo6RXhlY1N0YXRlKiwgSlNIVE1MRWxlbWVudCopOwog
Ci0gICAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0ZXIoSlND
OjpFeGVjU3RhdGUqLAotICAgIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKKyAgICBKU0M6OkVuY29kZWRKU1ZhbHVlIHBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRlcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBK
U0M6OkpTT2JqZWN0Kik7CiAgICAgYm9vbCBwbHVnaW5FbGVtZW50Q3VzdG9tR2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlT
bG90JiwgSlNIVE1MRWxlbWVudCopOwogICAgIGJvb2wgcGx1Z2luRWxlbWVudEN1c3RvbVB1dChK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTSFRNTEVs
ZW1lbnQqLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYsIGJvb2wmIHB1dFJlc3VsdCk7CiAgICAgSlND
OjpDYWxsVHlwZSBwbHVnaW5FbGVtZW50R2V0Q2FsbERhdGEoSlNIVE1MRWxlbWVudCosIEpTQzo6
Q2FsbERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KaW5kZXggYzdjNWJhMTdlOTZlNmQ3YTdjZmMxYzg3ZjJmY2QyN2EzYWQx
ZWIwZS4uNDkxYWU1YjY2ODM2ODQ0NDM5OGNhYWJjZjU5MDBhZGMzNTJiOWUxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAg
LTE1MzIsNyArMTUzMiw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAgbXkgJGNv
bmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJp
bmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsK
ICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZh
Y2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpK
U09iamVjdCopO1xuIik7CiAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkp
IHsKICAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgk
aW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKICAgICAgICAgICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiYm9vbCAke3NldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwpAQCAtMjA5MCw3ICsyMDkw
LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRjb25kaXRp
b25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRh
dHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNp
ZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAg
ICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNs
YXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpT
Qzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTtc
biIpOwogICAgICAgICAgICAgaWYgKCFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CiAgICAgICAg
ICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwg
JGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJib29sICR7c2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CkBAIC0yMTAwLDcgKzIxMDAsNyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAKICAgICAgICAgaWYgKE5lZWRzQ29uc3RydWN0
b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkgewogICAgICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIg
LiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6
SlNPYmplY3QqKTtcbiIpOwogICAgICAgICB9CiAKICAgICAgICAgbXkgJGNvbnN0cnVjdG9yRnVu
Y3Rpb25OYW1lID0gInNldEpTIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKQEAg
LTI1NjAsMTEgKzI1NjAsMTIgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
ICAgIG15ICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5l
cmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nfVxu
IikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nOwogCi0gICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2dldEZ1bmN0aW9u
TmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0KiBzbG90QmFzZSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ7XG4iKTsKIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5V
U0VEX1BBUkFNKHN0YXRlKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7XG4iKTsKIAogICAgICAgICAgICAg
aWYgKCEkYXR0cmlidXRlLT5pc1N0YXRpYyB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUg
PX4gL0NvbnN0cnVjdG9yJC8pIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBKU1ZhbHVlIGRlY29kZWRUaGlzVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KTtcbiIpOwpAQCAtMjc2Myw3ICsyNzY0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgaWYgKE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkgewogICAg
ICAgICAgICAgbXkgJGNvbnN0cnVjdG9yRnVuY3Rpb25OYW1lID0gImpzIiAuICRpbnRlcmZhY2VO
YW1lIC4gIkNvbnN0cnVjdG9yIjsKIAotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJF
bmNvZGVkSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rp
b25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSwgSlNPYmplY3QqKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IntcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9
UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlw
ZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKVxuIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggYzViM2M0ZjdlN2EyMTc5MjcxMjFi
M2M3ZTdjMGYxYTQ5NjcxYjY1Yy4uNzU2MTFlNDI5MmQ4NmRhMjE1ZTVkZGYwZGRkZWU0ZTMxNzJj
NjQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtNjAsNyAr
NjAsNyBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAgICAgc3Rh
dGljX2Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCktPlJ1bnRpbWVBcnJheTo6flJ1bnRpbWVBcnJh
eSgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgUnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAg
IFJ1bnRpbWVBcnJheSogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8UnVudGltZUFycmF5Kj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghdGhpc09iamVjdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IDAxOGMxMzI3OGRiYTNkZDAzMTcxZTUz
ZWZjMGFkN2RmMGUxMDdlOTIuLmRhNTE2MDViZDU2MjRkNzQwZjVkMDEwMmYyMzRmZWU1MjFjZGEw
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtODMsNyArODMsNyBA
QCBjbGFzcyBSdW50aW1lQXJyYXkgOiBwdWJsaWMgSlNBcnJheSB7CiAKIHByaXZhdGU6CiAgICAg
UnVudGltZUFycmF5KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwogCiAgICAgQmluZGlu
Z3NBcnJheSogbV9hcnJheTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9tZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmNwcAppbmRleCBhZTJiMmI5YmM5M2U5MjczY2ZhYjJkMWY3ZDdlZDQwZWExM2IwMmI3Li5hMzdj
ODhkMDljNzgyZWYxMWM1ODA2NWExYTIzZDNjNmU0ZWFlODZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBSdW50aW1lTWV0
aG9kOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIGNvbnN0IFN0cmluZyYgaWRlbnQpCiAgICAgQVNT
RVJUKGluaGVyaXRzKGluZm8oKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lTWV0aG9k
OjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVNZXRob2Q6Omxlbmd0aEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
LCBKU09iamVjdCopCiB7CiAgICAgUnVudGltZU1ldGhvZCogdGhpc09iamVjdCA9IGpzRHluYW1p
Y0Nhc3Q8UnVudGltZU1ldGhvZCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoIXRoaXNPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9tZXRob2QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCmluZGV4
IGQ4NmQ1OTQ3NWUwYTk3NTE3YzAxMzZiYWIxMDZmMmEwN2MxOTI0ZTEuLjIzNDIyM2UzZWZiMzBm
NjRmNzEyNGY3YjczMjk2NWY5ZmFhZjZiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X21ldGhvZC5oCkBAIC02Niw3ICs2Niw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVN
ZXRob2QgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0
dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKIAogICAgIEJpbmRpbmdzOjpNZXRob2QqIG1fbWV0
aG9kOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IGE1
NzNlMDVkNzU5YjA3NTcwZDI2MjFkOGU2MjYwMzY0MWNiYjRlYjkuLjQ2YWE0OWNiZmYxZmNkY2E0
MjNhYWY1MmEyMmYxNjBhNmViOTdhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6OmludmFsaWRh
dGUoKQogICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50
aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09i
amVjdCopCiB7CiAgICAgUnVudGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2Jq
ZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4g
aW5zdGFuY2UgPSB0aGlzT2JqLT5tX2luc3RhbmNlOwpAQCAtODAsNyArODAsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwg
SlNPYmplY3QqKQogeyAgICAKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1
bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVmUHRyPElu
c3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7CkBAIC05OSw3ICs5OSw3IEBA
IEVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKIHsKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganND
YXN0PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVm
UHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDgxZDRlYmQzYjRkYmI3MDk5MTE1ZGExMDI4
MmIyOWZiZmZiMTg2ZjUuLmNjYTc0NmViZWU1MjZhZTEwMzkzZmM1NTc0MmFjNDRhY2VkMzQ2MzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC03OCw5ICs3OCw5IEBA
IGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNEZXN0cnVjdGli
bGVPYmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKIAogcHJpdmF0ZToKLSAg
ICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwot
ICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZhbGxi
YWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUs
IEpTT2JqZWN0Kik7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZpZWxkR2V0dGVyKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CisgICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIG1ldGhvZEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwogCiAgICAgUmVmUHRyPEluc3RhbmNlPiBtX2lu
c3RhbmNlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAppbmRleCBkNTYxYWUxNDhjMjJmNTk3ZDdmMWFl
ODRjYjdkMGRmOTFjMGNhMGFlLi5iNWE0NjA0MTAwZjM0MWFiNjc2M2VlNTAxODAwZGI5ZWJmZTk2
MTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCkBAIC00MzUsNyArNDM1LDcgQEAgdm9pZCBKU05QT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHkKICAgICBucG5NZW1GcmVlKGlkZW50aWZpZXJzKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNOUE9iamVjdDo6cHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKU05QT2JqZWN0Ojpwcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQog
ewogICAgIEpTTlBPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8SlNOUE9iamVjdCo+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNP
YmosIGluZm8oKSk7CkBAIC00NzUsNyArNDc1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVj
dDo6cHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmEK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3BlcnR5VmFsdWUpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU05QT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKU05QT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKIHsK
ICAgICBKU05QT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PEpTTlBPYmplY3QqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
LCBpbmZvKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggOGJhZmViMDYwYTIxMDY2ZDhlYWE2MDg3NGMw
M2FjOTlmMGNmNGJlNy4uMzg1NzgyYzhlNjhiZGM1YTEzZjc4NTQyOTMxNWY2OTkyZjRlNDMyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5oCkBAIC05NCw4ICs5NCw4IEBAIGNsYXNzIEpTTlBPYmplY3QgOiBwdWJs
aWMgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKICAgICBzdGF0aWMgdm9pZCBnZXRPd25Q
cm9wZXJ0eU5hbWVzKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVy
dHlOYW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0aW9uTW9kZSk7CiAKLSAgICBzdGF0aWMgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBtZXRob2RHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgcHJvcGVy
dHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVl
IG1ldGhvZEdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3Qq
IHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKEpTQzo6RXhlY1N0YXRlKik7CiAKICAgICBOUFJ1bnRp
bWVPYmplY3RNYXAqIG1fb2JqZWN0TWFwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278951</attachid>
            <date>2016-05-14 16:43:00 -0700</date>
            <delta_ts>2016-05-28 00:09:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157080-20160515084353.patch</filename>
            <type>text/plain</type>
            <size>47207</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwOTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MmE2YWQyNmExZDRmMTZjMmJlMjAzMWJjZWRkOWFkMjAwNTYxZmRkLi4xMjdjMTU0YTcwMmRiY2Rj
OWY2M2FjMzQ5NDRkMjFkNWIwYjI2NGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAxNi0wNS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBc3NlcnRpb24gZmFpbHVyZSBmb3IgUmVmbGVjdC5nZXQgd2l0aCBQ
cm94eSBhbmQgcHJpbWl0aXZlIHZhbHVlIGFzIGV4cGxpY2l0IHJlY2VpdmVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcwODAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBjdXN0b20gYWNjZXNzb3Ig
Z2V0dGVyLCB0aGUgYXJndW1lbnQgInRoaXNWYWx1ZSIgY2FuIGJlIGFsdGVyZWQgYnkgdXNpbmcg
YFJlZmxlY3QuZ2V0YC4KKyAgICAgICAgSW4gdGhpcyBwYXRjaCwgd2UgYWRkIGEgbmV3IHBhcmFt
ZXRlciwgInNsb3RCYXNlIi4gVGhpcyByZXByZXNlbnRzIHRoZSBiYXNlIHZhbHVlIG9mZmVyaW5n
CisgICAgICAgIHRoaXMgY3VzdG9tIGdldHRlci4gQW5kIHVzZSBpdCBpbiBQcm94eU9iamVjdCdz
IHBlcmZvcm1HZXQgY3VzdG9tIGFjY2Vzc29yIGdldHRlci4KKworICAgICAgICAqIEFQSS9KU0Nh
bGxiYWNrT2JqZWN0Lmg6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMu
aDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5jdGlv
bkdldHRlcik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2FsbGJh
Y2tHZXR0ZXIpOgorICAgICAgICAqIGJ5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcDoKKyAg
ICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKToKKyAgICAgICAgSW4gUG9seW1v
cnBoaWNBY2Nlc3MgY2FzZSwgdGhlIHRoaXNWYWx1ZSBhbmQgdGhlIHNsb3RCYXNlIGFyZSBhbHdh
eXMgY2VsbHMuCisgICAgICAgIFRoaXMgaXMgYmVjYXVzZSBJQyBpcyBlbmFibGVkIGluIHRoZSBj
YXNlIHRoYXQgdGhlIGJhc2UgdmFsdWUgaXMgYSBjZWxsLgorICAgICAgICBBbmQgc2xvdEJhc2Ug
aXMgYWx3YXlzIG9uIHRoZSBwcm90b3R5cGUgY2hhaW4gZnJvbSB0aGlzIGJhc2UgdmFsdWUuCisK
KyAgICAgICAgKiBqaXQvQ0NhbGxIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkNDYWxsSGVscGVy
czo6c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAg
ICAgICAoV1RGOjpDdXN0b21HZXR0ZXI6OmN1c3RvbUdldHRlcik6CisgICAgICAgIChXVEY6OlJ1
bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRTbG90
QmFzZUZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6Ym91bmRTbG90QmFzZUZ1bmN0aW9uQ2Fs
bCk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNG
dW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Y2Fs
bGVyR2V0dGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTTW9kdWxlTmFtZXNwYWNlT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Y2FsbGJh
Y2tHZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90LmNwcDoKKyAgICAgICAg
KEpTQzo6UHJvcGVydHlTbG90OjpjdXN0b21HZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvUHJv
cGVydHlTbG90Lmg6CisgICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OnBlcmZvcm1Qcm94eUdldCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKToKKyAgICAg
ICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JJbnB1dCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENv
bnN0cnVjdG9yTXVsdGlsaW5lKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JMYXN0
TWF0Y2gpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbik6CisgICAg
ICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQpOgorICAgICAgICAoSlNDOjpy
ZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyMSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
Myk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyOSk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNz
L3Byb3h5LWdldC13aXRoLXByaW1pdGl2ZS1yZWNlaXZlci5qczogQWRkZWQuCisgICAgICAgIChz
aG91bGRCZSk6CisKIDIwMTYtMDUtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KIAogICAgICAgICBqc2M6IHNhbXBsaW5nUHJvZmlsZXJTdGFja1RyYWNlcygpIHdpdGhv
dXQgc3RhcnRpbmcgc2FtcGxpbmcgc2hvdWxkIG5vdCBjYXVzZSBqc2MgdG8gY3Jhc2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAyNTgxOWQ5YmNmMDI0ODc5MWZhMzUwZDg2MmQyMWNhNTBiNzEwZTk2Li42NzlmMTk0
MGFiYzVlZjdjODdiZDZiNmZlOTM5ZGFiNjIxZDdmZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzIgQEAKKzIwMTYtMDUtMTQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKKyAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmUgZm9yIFJlZmxlY3QuZ2V0IHdpdGggUHJveHkg
YW5kIHByaW1pdGl2ZSB2YWx1ZSBhcyBleHBsaWNpdCByZWNlaXZlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MDgwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaDoKKyAgICAgICAgKFdlYkNvcmU6Om5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6anNET01XaW5kb3dXZWJLaXQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5FbGVtZW50
UHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1
bmN0aW9ucy5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
OgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAoSlND
OjpSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVf
YXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAo
SlNDOjpSdW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9ydW50
aW1lX21ldGhvZC5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcik6
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRlcik6Cisg
ICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIpOgorICAg
ICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDE2LTA1LTEzICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFRvVCBXZWJLaXQgZG9lc24ndCBzaG93
IHRvb2x0aXAgb24gcGVyZiBkYXNoYm9hcmQncyBzdW1tYXJ5IHBhZ2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAx
YTBhMWVmOWY5NWZhMDMxNjAwYTlmMTJmYWRkOWM5MWQ3ZWUwYWFiLi5iMWU1ODJmYTdiOGRmOGJl
YjNjYTY4Y2NhYzFlZGRiNTQzNGEzMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTYtMDUtMTQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgQXNzZXJ0aW9uIGZhaWx1cmUgZm9yIFJlZmxlY3QuZ2V0IHdpdGggUHJveHkgYW5kIHByaW1p
dGl2ZSB2YWx1ZSBhcyBleHBsaWNpdCByZWNlaXZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6OnByb3BlcnR5R2V0dGVy
KToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6bWV0aG9kR2V0dGVyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oOgorCiAyMDE2LTA1LTEz
ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggaU9TIEJ1aWxk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCBl
OTU2M2Y1NGNlYThiMjYzYjE0MzM1NjcyMWQ0Y2RkZDc5YzVlNDA2Li41ZTAzM2Y4ZTNjMmVkZmM1
MzE4M2I4MWMxMzVlMGNmNWVjOGU0NTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMjExLDggKzIxMSw4IEBAIGNsYXNzIEpTQ2FsbGJhY2tP
YmplY3QgOiBwdWJsaWMgUGFyZW50IHsKICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3QoRXhlY1N0YXRlKik7CiAgICAKICAgICBKU1ZhbHVlIGdldFN0YXRp
Y1ZhbHVlKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2Fs
bGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNP
YmplY3QqKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0NhbGxiYWNrT2JqZWN0RGF0YT4gbV9j
YWxsYmFja09iamVjdERhdGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCBhNTUzNzIzNGJiMzJjYTY4NmRk
MDZiMmFmZTlhMDdhOWQwMjU3ZjM0Li5iMmJjZjQ1M2E2YjE4Yjk1NzY3NmY3ZmIwNGQzMTcwMTI2
YTZlN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tP
YmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tPYmplY3RGdW5jdGlvbnMuaApAQCAtNTk5LDcgKzU5OSw3IEBAIEpTVmFsdWUgSlNDYWxsYmFj
a09iamVjdDxQYXJlbnQ+OjpnZXRTdGF0aWNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZSBwCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nh
bGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5jdGlvbkdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRo
aXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHRoaXNWYWx1ZSk7CiAgICAgCkBAIC02MjcsNyArNjI3
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5j
dGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEUKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVu
dD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2FsbGJhY2tHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46
OmNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVjdCopCiB7CiAgICAgSlNDYWxsYmFj
a09iamVjdCogdGhpc09iaiA9IGFzQ2FsbGJhY2tPYmplY3QodGhpc1ZhbHVlKTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vz
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3Mu
Y3BwCmluZGV4IDcwNjdjNDliYTRhYmZmNDYxZWI1NDhjNGQyZTVhMmU4ODBlYWJjMzUuLjY4NGVk
ZTg1MzUxMDk4NmNiMTA2NjBiYTVmMDYyMzljNjcyYjhiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcApAQCAtMTA5Miw3
ICsxMDkyLDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJhdGlv
blN0YXRlJiBzdGF0ZSkKICAgICAgICAgICAgIC8vIHRvIG1ha2Ugc29tZSBzcGFjZSBoZXJlLgog
ICAgICAgICAgICAgaml0Lm1ha2VTcGFjZU9uU3RhY2tGb3JDQ2FsbCgpOwogCi0gICAgICAgICAg
ICAvLyBnZXR0ZXI6IEVuY29kZWRKU1ZhbHVlICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgICAgICAgICAvLyBn
ZXR0ZXI6IEVuY29kZWRKU1ZhbHVlICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqIHNsb3RCYXNlKTsKICAg
ICAgICAgICAgIC8vIHNldHRlcjogdm9pZCAoKlB1dFZhbHVlRnVuYykoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUgdGhpc09iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpOwogICAgICAgICAg
ICAgLy8gQ3VzdG9tIHZhbHVlcyBhcmUgcGFzc2VkIHRoZSBzbG90QmFzZSAodGhlIHByb3BlcnR5
IGhvbGRlciksIGN1c3RvbSBhY2Nlc3NvcnMgYXJlIHBhc3NlZCB0aGUgdGhpc1ZhdWxlIChyZWNp
ZXZlcikuCiAgICAgICAgICAgICBHUFJSZWcgYmFzZUZvckN1c3RvbVZhbHVlID0gbV90eXBlID09
IEN1c3RvbVZhbHVlR2V0dGVyIHx8IG1fdHlwZSA9PSBDdXN0b21WYWx1ZVNldHRlciA/IGJhc2VG
b3JBY2Nlc3NHUFIgOiBiYXNlRm9yR2V0R1BSOwpAQCAtMTEwMCw3ICsxMTAwLDggQEAgdm9pZCBB
Y2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAg
ICAgICAgICAgIGlmIChtX3R5cGUgPT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1
c3RvbUFjY2Vzc29yR2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgYmFzZUZvckN1c3RvbVZhbHVlLAot
ICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1w
bCgpKSk7CisgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihp
ZGVudC5pbXBsKCkpLAorICAgICAgICAgICAgICAgICAgICBiYXNlRm9yQWNjZXNzR1BSKTsKICAg
ICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYmFzZUZvckN1c3RvbVZhbHVlLCB2YWx1ZVJlZ3MuZ3ByKCkpOwogI2Vsc2UKQEAg
LTExMDgsNyArMTEwOSw4IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dl
bmVyYXRpb25TdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgRUFCSV8zMkJJVF9EVU1NWV9BUkcg
YmFzZUZvckN1c3RvbVZhbHVlLAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAgICAgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSkpOworICAgICAgICAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSwKKyAgICAgICAgICAg
ICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCiAgICAgICAgICAgICAg
ICAgICAgIEVBQklfMzJCSVRfRFVNTVlfQVJHIGJhc2VGb3JDdXN0b21WYWx1ZSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCmluZGV4IDI0MjZhYmQxMjE1YmRiNDYzZDFj
NWIwOTg3MjYzYWRhOTE2MTRhMTMuLmNmNjcwNjM1MGQ4MjYyZmI3OGUzYjA5YWI1ZGEwNDQxNjJm
NWVmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtNzE2
LDYgKzcxNiwxNiBAQCBjbGFzcyBDQ2FsbEhlbHBlcnMgOiBwdWJsaWMgQXNzZW1ibHlIZWxwZXJz
IHsKICAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzQpOwogICAgIH0KIAorICAgIEFMV0FZU19J
TkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIFRydXN0
ZWRJbW0zMiBhcmcyLCBUcnVzdGVkSW1tUHRyIGFyZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAg
ICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcxKTsK
KyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzIpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQo
YXJnMyk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmc0KTsKKyAgICB9CisKICAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBU
cnVzdGVkSW1tUHRyIGFyZzIsIEdQUlJlZyBhcmczLCBHUFJSZWcgYXJnNCkKICAgICB7CiAgICAg
ICAgIHJlc2V0Q2FsbEFyZ3VtZW50cygpOwpAQCAtMTY4NCw2ICsxNjk0LDEyIEBAIGNsYXNzIEND
YWxsSGVscGVycyA6IHB1YmxpYyBBc3NlbWJseUhlbHBlcnMgewogICAgICAgICBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CiAgICAgfQogCisgICAgQUxXQVlT
X0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgVHJ1
c3RlZEltbTMyIGFyZzIsIFRydXN0ZWRJbW1QdHIgYXJnMywgR1BSUmVnIGFyZzQpCisgICAgewor
ICAgICAgICBwb2tlKGFyZzQsIFBPS0VfQVJHVU1FTlRfT0ZGU0VUKTsKKyAgICAgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKwogICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEs
IEdQUlJlZyBhcmcyLCBUcnVzdGVkSW1tMzIgYXJnMywgVHJ1c3RlZEltbTMyIGFyZzQsIFRydXN0
ZWRJbW0zMiBhcmc1KQogICAgIHsKICAgICAgICAgcG9rZShhcmc1LCBQT0tFX0FSR1VNRU5UX09G
RlNFVCArIDEpOwpAQCAtMjAzOSw2ICsyMDU1LDEzIEBAIGNsYXNzIENDYWxsSGVscGVycyA6IHB1
YmxpYyBBc3NlbWJseUhlbHBlcnMgewogICAgICAgICBwb2tlKGFyZzQsIFBPS0VfQVJHVU1FTlRf
T0ZGU0VUKTsKICAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIs
IGFyZzMpOwogICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyIGFyZzEsIEdQUlJlZyBhcmcyLCBUcnVzdGVkSW1tMzIg
YXJnMywgVHJ1c3RlZEltbVB0ciBhcmc0LCBHUFJSZWcgYXJnNSkKKyAgICB7CisgICAgICAgIHBv
a2UoYXJnNSwgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAxKTsKKyAgICAgICAgcG9rZShhcmc0LCBQ
T0tFX0FSR1VNRU5UX09GRlNFVCk7CisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CiAjZW5kaWYgLy8gTlVNQkVSX09GX0FSR1VNRU5U
X1JFR0lTVEVSUyA9PSA0CiAKICNpZiBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTID49IDUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggYjMyNjhmZTlhNjVmMjYzOWQ1OWM2ZTBmYjA1ZTQ0OTBj
NzE2YmM2NC4uNDA3NzEyNjZmMGI1N2ZjZWVjOTY0ZTI5Mjc0N2I0MjMyNzZhMTg5MiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKQEAgLTM1OCw3ICszNTgsNyBAQCBjbGFzcyBDdXN0b21HZXR0ZXIgOiBw
dWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgfQogCiBwcml2YXRlOgotICAgIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3Vz
dG9tR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKICAgICB7CiAgICAgICAgIEN1c3RvbUdldHRlciogdGhpc09i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8Q3VzdG9tR2V0dGVyKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgICAgICBpZiAoIXRoaXNPYmplY3QpCkBAIC00NjMsNyArNDYzLDcgQEAgY2xh
c3MgUnVudGltZUFycmF5IDogcHVibGljIEpTQXJyYXkgewogICAgIHsKICAgICB9CiAKLSAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCisgICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCiAgICAgewogICAgICAgICBSdW50aW1lQXJyYXkq
IHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJ1bnRpbWVBcnJheSo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICAgICAgaWYgKCF0aGlzT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24uY3Bw
CmluZGV4IDFmMzM1NjI2N2ZhZmI3ZDMwNWQ5NjNhYWE5MDdmZTJmNGJlNjRlMGUuLjJkNjdlNDMx
NzFlMmRkNmM5NDUwODc2YzlmMjJkMjFkMzVlZGI0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRTbG90QmFzZUZ1bmN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHAKQEAg
LTUxLDcgKzUxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZFNsb3RCYXNl
RnVuY3Rpb25DYWxsKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZSA9IGJvdW5kU2xv
dEJhc2VGdW5jdGlvbi0+bmFtZSgpOwotICAgIHJldHVybiBnZXR0ZXIoZXhlYywgSlNWYWx1ZTo6
ZW5jb2RlKGV4ZWMtPnRoaXNWYWx1ZSgpKSwgUHJvcGVydHlOYW1lKElkZW50aWZpZXI6OmZyb21T
dHJpbmcoZXhlYywgbmFtZSkpKTsKKyAgICByZXR1cm4gZ2V0dGVyKGV4ZWMsIEpTVmFsdWU6OmVu
Y29kZShleGVjLT50aGlzVmFsdWUoKSksIFByb3BlcnR5TmFtZShJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKGV4ZWMsIG5hbWUpKSwgYmFzZU9iamVjdCk7CiB9CiAKIEpTQm91bmRTbG90QmFzZUZ1bmN0
aW9uOjpKU0JvdW5kU2xvdEJhc2VGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBUeXBlIHR5cGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IDYzOGU3MDUyNmZj
MDBjYmIzMGM1M2U1OWZhN2M3NzYxNWM2YjVhMDIuLmFlMzBkY2M2MDQ1YmY2ZmE3MjkxYjI4ZDY5
NmVlNTJiMGQ2YTljMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgc3RhdGljIEpTVmFsdWUgcmV0cmlldmVBcmd1
bWVudHMoRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKICAgICByZXR1
cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6YXJn
dW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjphcmd1bWVudHNHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwg
SlNPYmplY3QqKQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlv
bio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlQoIXRoaXNPYmotPmlz
SG9zdEZ1bmN0aW9uKCkpOwpAQCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRpYyBHZXR0ZXJTZXR0ZXIq
IGdldFRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKEpTRnVuY3Rpb24qIGZ1bmN0aW9uKQogICAg
ICAgICA6IGZ1bmN0aW9uLT5nbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JBcmd1bWVudHNB
bmRDYWxsZXJJblN0cmljdE1vZGVHZXR0ZXJTZXR0ZXIoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpjYWxs
ZXJHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8
SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlQoIXRo
aXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5oCmluZGV4IDMwMDcwZDBkNjFkN2UyYjZhZDhiYWRjYmZkMTk3MWFjNzc1N2Iy
NDguLjMwN2RlYzEzYzU1ZGYxYWQyMTM5YTI4MDk4MGRkZjJiMzc0MTQ3MzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTE5OCwxMCArMTk4LDggQEAg
Y2xhc3MgSlNGdW5jdGlvbiA6IHB1YmxpYyBKU0NhbGxlZSB7CiAKICAgICBmcmllbmQgY2xhc3Mg
TExJbnRPZmZzZXRzRXh0cmFjdG9yOwogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGFyZ3Vt
ZW50c0dldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAg
ICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhH
ZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIG5hbWVHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50c0dldHRl
cihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwor
ICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKIAogICAgIFdyaXRlQmFycmllcjxF
eGVjdXRhYmxlQmFzZT4gbV9leGVjdXRhYmxlOwogICAgIFdyaXRlQmFycmllcjxGdW5jdGlvblJh
cmVEYXRhPiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwCmluZGV4IDQwZGRhNzMzM2ZmNzIw
YWRmNjA5OGZmNDc3NTcyZjFlYjE4NmFlYTAuLjllOTk0MzI0Njk1NGYzMDJjZjBmZTgwODc0MGQ2
ZTExNDc2NzZhMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TW9kdWxlTmFtZXNwYWNlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU01vZHVsZU5hbWVzcGFjZU9iamVjdC5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBK
U01vZHVsZU5hbWVzcGFjZU9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX21vZHVs
ZVJlY29yZCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgSlNPYmplY3QqKQogewogICAgIEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0KiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSB0aGlzT2JqZWN0LT5t
b2R1bGVSZWNvcmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3BlcnR5U2xvdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eVNsb3QuY3BwCmluZGV4IDA0MTAxMzk0MzhiNTRjZGQ5MjhmMDEzMjdlNjdmODgyMjA1MGU4NjYu
LjA5ZjkwMjBmMjMyY2M3NGFiZjEzOTg4NjI1NmZkNzI1NTdjMGNkNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcApAQCAtMzYsNyArMzYsNyBA
QCBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6ZnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjKSBj
b25zdAogSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmN1c3RvbUdldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIGNvbnN0CiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBtX2F0dHJpYnV0ZXMgJiBDdXN0b21BY2Nlc3NvciA/IG1fdGhpc1ZhbHVlIDogSlNWYWx1
ZShzbG90QmFzZSgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS5jdXN0b20u
Z2V0VmFsdWUoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSksIHByb3BlcnR5TmFtZSkp
OworICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbS5nZXRWYWx1ZShleGVj
LCBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1lLCBzbG90QmFzZSgpKSk7
CiB9CiAKIEpTVmFsdWUgUHJvcGVydHlTbG90OjpnZXRQdXJlUmVzdWx0KCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKaW5kZXggMTU0MDNjZGM3
ZGE3MzgyMzVmNzAxNDIyOTViNDE2ZDg5NDRiN2JlZC4uYzJlY2M2ZTAzYzBlYjM2NGE3ODAyYjI3
NWU3MmQyN2E5OTE1NmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlTbG90LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
cGVydHlTbG90LmgKQEAgLTk0LDcgKzk0LDcgQEAgY2xhc3MgUHJvcGVydHlTbG90IHsKICAgICB7
CiAgICAgfQogCi0gICAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHR5
cGVkZWYgRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCogc2xvdEJhc2UpOwogCiAg
ICAgSlNWYWx1ZSBnZXRWYWx1ZShFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUpIGNvbnN0OwogICAg
IEpTVmFsdWUgZ2V0VmFsdWUoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAppbmRl
eCA1MzkxODVmMzRmNzQ5NjUyYTYwNWVhMTJlYWI4MGE0Y2VjOTc5MzhjLi45OTgzMzNjZDU0Mzlm
NTlkZTVhMzcwYmIwM2U5MWM1ZjI0YjM1N2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgUHJveHlPYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHRhcmdl
dCwgSlNWYWx1CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBzX3Byb3h5QWxyZWFkeVJldm9rZWRFcnJv
ck1lc3NhZ2UgPSAiUHJveHkgaGFzIGFscmVhZHkgYmVlbiByZXZva2VkLiBObyBtb3JlIG9wZXJh
dGlvbnMgYXJlIGFsbG93ZWQgdG8gYmUgcGVyZm9ybWVkIG9uIGl0IjsKIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIHBlcmZvcm1Qcm94eUdldChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBwZXJmb3JtUHJveHlHZXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBzbG90QmFzZSkKIHsK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGlmICghdm0uaXNTYWZlVG9SZWN1cnNlKCkp
IHsKQEAgLTEwMCwyMCArMTAwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHBlcmZvcm1Qcm94
eUdldChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwogICAgIH0KIAotICAgIEpTT2JqZWN0
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOyAvLyBUaGlzIG1pZ2h0IGJlIGEgdmFsdWUgd2hlcmUgc29tZXdoZXJlIGluIF9fcHJvdG9f
XyBjaGFpbiBsaXZlcyBhIFByb3h5T2JqZWN0LgotICAgIEpTT2JqZWN0KiBwcm94eU9iamVjdEFz
T2JqZWN0ID0gdGhpc09iamVjdDsKLSAgICAvLyBGSVhNRTogbWFrZSBpdCBzbyB0aGF0IGN1c3Rv
bSBnZXR0ZXJzIHRha2UgYm90aCB0aGUgfHRoaXN8IHZhbHVlIGFuZCB0aGUgc2xvdEJhc2UgKHBy
b3BlcnR5IGhvbGRlcikuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NDMyMAotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlmIChMSUtFTFkocHJv
eHlPYmplY3RBc09iamVjdC0+dHlwZSgpID09IFByb3h5T2JqZWN0VHlwZSkpCi0gICAgICAgICAg
ICBicmVhazsKLQotICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHByb3h5T2JqZWN0QXNPYmpl
Y3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVChwcm90b3R5
cGUuaXNPYmplY3QoKSk7Ci0gICAgICAgIHByb3h5T2JqZWN0QXNPYmplY3QgPSBhc09iamVjdChw
cm90b3R5cGUpOwotICAgIH0KLQotICAgIFByb3h5T2JqZWN0KiBwcm94eU9iamVjdCA9IGpzQ2Fz
dDxQcm94eU9iamVjdCo+KHByb3h5T2JqZWN0QXNPYmplY3QpOworICAgIFByb3h5T2JqZWN0KiBw
cm94eU9iamVjdCA9IGpzQ2FzdDxQcm94eU9iamVjdCo+KHNsb3RCYXNlKTsKICAgICBKU09iamVj
dCogdGFyZ2V0ID0gcHJveHlPYmplY3QtPnRhcmdldCgpOwogCiAgICAgaWYgKHByb3BlcnR5TmFt
ZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT51bmRlcnNjb3JlUHJvdG8pCkBAIC0xNDMsNyArMTMwLDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHBlcmZvcm1Qcm94eUdldChFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1
bWVudHM7CiAgICAgYXJndW1lbnRzLmFwcGVuZCh0YXJnZXQpOwogICAgIGFyZ3VtZW50cy5hcHBl
bmQoaWRlbnRpZmllclRvU2FmZVB1YmxpY0pTVmFsdWUodm0sIElkZW50aWZpZXI6OmZyb21VaWQo
JnZtLCBwcm9wZXJ0eU5hbWUudWlkKCkpKSk7Ci0gICAgYXJndW1lbnRzLmFwcGVuZCh0aGlzT2Jq
ZWN0KTsKKyAgICBhcmd1bWVudHMuYXBwZW5kKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBKU1ZhbHVlIHRyYXBSZXN1bHQgPSBjYWxsKGV4ZWMsIGdldEhhbmRsZXIsIGNhbGxUeXBl
LCBjYWxsRGF0YSwgaGFuZGxlciwgYXJndW1lbnRzKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggMTk1NmVjOTBjYzI0NjBlOTM5OGJmZmRjNmU5NzExMWIyNTU3MjAyYy4uNzVhNTUw
ZDcwMDIzZmIzY2Y1Yzg1ZDcxYzZmNzdiYjIyMjhiNDE5YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMzEsMjEgKzMx
LDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhw
Q29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ckxhc3RQYXJlbihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyMShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhw
Q29uc3RydWN0b3JEb2xsYXIzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNChFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI2KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyhFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjgoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5KEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
LCBKU09iamVjdCopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFz
dE1hdGNoKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
Kik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKK3N0YXRp
YyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CitzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKK3RlbXBsYXRlPGludCBOPgorc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CiAKIHN0YXRpYyBib29sIHNl
dFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlKTsKIHN0YXRpYyBib29sIHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CkBAIC03MiwxNSArNjUs
MTUgQEAgY29uc3QgQ2xhc3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5j
dGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKICAgICAkYCAgICAgICAgICAgICAgcmVnRXhw
Q29uc3RydWN0b3JMZWZ0Q29udGV4dCAgICBEb250RGVsZXRlfFJlYWRPbmx5fERvbnRFbnVtCiAg
ICAgcmlnaHRDb250ZXh0ICAgIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0ICAgRG9udERl
bGV0ZXxSZWFkT25seQogICAgICQnICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0
Q29udGV4dCAgIERvbnREZWxldGV8UmVhZE9ubHl8RG9udEVudW0KLSAgICAkMSAgICAgICAgICAg
ICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0g
ICAgJDIgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMiAgICAgICAgRG9udERl
bGV0ZXxSZWFkT25seQotICAgICQzICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxh
cjMgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkNCAgICAgICAgICAgICAgcmVnRXhw
Q29uc3RydWN0b3JEb2xsYXI0ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDUgICAg
ICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNSAgICAgICAgRG9udERlbGV0ZXxSZWFk
T25seQotICAgICQ2ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjYgICAgICAg
IERvbnREZWxldGV8UmVhZE9ubHkKLSAgICAkNyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI3ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gICAgJDggICAgICAgICAgICAg
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOCAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICAg
ICQ5ICAgICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjkgICAgICAgIERvbnREZWxl
dGV8UmVhZE9ubHkKKyAgICAkMSAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI8
MT4gICAgICBEb250RGVsZXRlfFJlYWRPbmx5CisgICAgJDIgICAgICAgICAgICAgIHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyPDI+ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICAgICQzICAgICAg
ICAgICAgICByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjwzPiAgICAgIERvbnREZWxldGV8UmVhZE9u
bHkKKyAgICAkNCAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI8ND4gICAgICBE
b250RGVsZXRlfFJlYWRPbmx5CisgICAgJDUgICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyPDU+ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICAgICQ2ICAgICAgICAgICAgICBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjw2PiAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKKyAgICAk
NyAgICAgICAgICAgICAgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI8Nz4gICAgICBEb250RGVsZXRl
fFJlYWRPbmx5CisgICAgJDggICAgICAgICAgICAgIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyPDg+
ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQorICAgICQ5ICAgICAgICAgICAgICByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjw5PiAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKIEBlbmQKICovCiAKQEAg
LTE1Nyw3OCArMTUwLDM5IEBAIGJvb2wgUmVnRXhwQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5
U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByCiB7CiAgICAgcmV0dXJu
IGdldFN0YXRpY1ZhbHVlU2xvdDxSZWdFeHBDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbj4o
ZXhlYywgcmVnRXhwQ29uc3RydWN0b3JUYWJsZSwganNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4o
b2JqZWN0KSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KLSAgICAKLUVuY29kZWRKU1ZhbHVlIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyMShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNS
ZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYo
ZXhlYywgMSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
LXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDIpKTsKLX0KLQotRW5jb2Rl
ZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+
Z2V0QmFja3JlZihleGVjLCAzKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyNChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQotewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1
Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhlYywgNCkpOwot
fQotCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDUpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXI2KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1Jl
Z0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2V0QmFja3JlZihl
eGVjLCA2KSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyhF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQot
ewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhlYywgNykpOwotfQotCi1FbmNvZGVk
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjgoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5n
ZXRCYWNrcmVmKGV4ZWMsIDgpKTsKLX0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI5KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCit0ZW1wbGF0ZTxpbnQgTj4KK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVn
RXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4
ZWMsIDkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3Io
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIE4pKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVn
RXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5pbnB1dCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpLT5tdWx0aWxpbmUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2go
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwg
SlNPYmplY3QqKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1
Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhlYywgMCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSktPmdldExhc3RQYXJlbihleGVjKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4
cENvbnN0cnVjdG9yTGVmdENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9y
TGVmdENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNS
ZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldExlZnRDb250
ZXh0KGV4ZWMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JSaWdodENv
bnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KikKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3Io
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRSaWdodENvbnRleHQoZXhlYykpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1nZXQt
d2l0aC1wcmltaXRpdmUtcmVjZWl2ZXIuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3Byb3h5LWdldC13aXRoLXByaW1pdGl2ZS1yZWNlaXZlci5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
YjNkM2JkZWM4NTQ0MjI2ZWI0NTVkMjQ1MjhkODdlYzBjOTBkNWZkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1nZXQtd2l0aC1wcmlt
aXRpdmUtcmVjZWl2ZXIuanMKQEAgLTAsMCArMSwyMiBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0
dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKKworc2hvdWxkQmUo
UmVmbGVjdC5nZXQobmV3IFByb3h5KHt9LCB7fSksIDAsIDEpLCB1bmRlZmluZWQpOworc2hvdWxk
QmUoUmVmbGVjdC5nZXQobmV3IFByb3h5KHt9LCB7fSksICdoZWxsbycsIDEpLCB1bmRlZmluZWQp
OworCit7CisgICAgbGV0IHRhcmdldCA9IHt9OworICAgIGxldCBoYW5kbGVycyA9IHsKKyAgICAg
ICAgZ2V0OiBmdW5jdGlvbih0aGVUYXJnZXQsIHByb3BOYW1lLCByZWNlaXZlcikgeworICAgICAg
ICAgICAgLy8gUmVjZWl2ZXIgY2FuIGJlIGEgcHJpbWl0aXZlIHZhbHVlLgorICAgICAgICAgICAg
c2hvdWxkQmUocmVjZWl2ZXIsIDEpOworICAgICAgICAgICAgcmV0dXJuIDQyOworICAgICAgICB9
CisgICAgfTsKKyAgICBsZXQgcHJveHkgPSBuZXcgUHJveHkodGFyZ2V0LCBoYW5kbGVycyk7Cisg
ICAgc2hvdWxkQmUoUmVmbGVjdC5nZXQocHJveHksIDAsIDEpLCA0Mik7CisgICAgc2hvdWxkQmUo
UmVmbGVjdC5nZXQocHJveHksICdoZWxsbycsIDEpLCA0Mik7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IGI4OGYwNjA4ODU2ZmQwZjU3MzNlM2NhYThk
NWMzNWViMTMzMTVkNDQuLmI2NDkwMTdhNzgyM2Q5NDlhMGVhMmVkOWJkY2YyYzRlYjRiMWFjMDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC0zMDYsNyAr
MzA2LDcgQEAgU3RyaW5nIHByb3BlcnR5TmFtZVRvU3RyaW5nKEpTQzo6UHJvcGVydHlOYW1lKTsK
IEF0b21pY1N0cmluZyBwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhKU0M6OlByb3BlcnR5TmFt
ZSk7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERPTUNsYXNzPiBjb25zdCBKU0M6Okhhc2hUYWJsZVZh
bHVlKiBnZXRTdGF0aWNWYWx1ZVNsb3RFbnRyeVdpdGhvdXRDYWNoaW5nKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdGVtcGxhdGU8SlNDOjpOYXRpdmVGdW5jdGlvbiwgaW50
IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0
ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Cit0ZW1wbGF0ZTxKU0M6Ok5hdGl2ZUZ1bmN0aW9uLCBpbnQgbGVuZ3RoPiBKU0M6OkVuY29k
ZWRKU1ZhbHVlIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7
CiAKIC8vIElubGluZSBmdW5jdGlvbnMgYW5kIHRlbXBsYXRlIGRlZmluaXRpb25zLgogCkBAIC04
MDksNyArODA5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgY29uc3QgSlNDOjpIYXNoVGFibGVWYWx1
ZSogZ2V0U3RhdGljVmFsdWVTbG90RW50cnlXaXRob3V0Q2FjaGkKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotdGVtcGxhdGU8SlNDOjpOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbiwgaW50
IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0
ZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkKK3RlbXBsYXRlPEpTQzo6TmF0aXZlRnVuY3Rpb24gbmF0aXZl
RnVuY3Rpb24sIGludCBsZW5ndGg+IEpTQzo6RW5jb2RlZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRp
Y0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKQogewogICAg
IHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZShKU0M6OkpTRnVuY3Rpb246OmNyZWF0ZShleGVj
LT52bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGxlbmd0aCwgcHJvcGVydHlOYW1l
LnB1YmxpY05hbWUoKSwgbmF0aXZlRnVuY3Rpb24pKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA2ZDRiZTNlYjQwM2M4Y2Vi
MzJmNzAzZGM1MzMxODFjZmFjY2FmMWY4Li5hYzYxZmJiYmQ3YmFhZTJjNDkzMzA3MDNkY2IwNmRi
MTYyYTI5ZGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgSlNET01XaW5kb3c6OnZpc2l0QWRk
aXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogfQogCiAjaWYgRU5BQkxFKFVT
RVJfTUVTU0FHRV9IQU5ETEVSUykKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1dl
YktpdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93V2ViS2l0KEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikK
IHsKICAgICBKU0RPTVdpbmRvdyogY2FzdGVkVGhpcyA9IHRvSlNET01XaW5kb3coSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxv
d0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPndyYXBwZWQoKSkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmNwcAppbmRleCAyODY1MzcyZTlhZTcxZjRhNWNhNTA0ZWUwODQ5NTVhYjVlYjE0ZGFlLi4zMGVk
YWY3ZWNjOTg3MmQ0ZWQyOWVjY2IzYmNkMjcwZGExMDY3OTYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKQEAg
LTk0LDcgKzk0LDcgQEAgSlNPYmplY3QqIHBsdWdpblNjcmlwdE9iamVjdChFeGVjU3RhdGUqIGV4
ZWMsIEpTSFRNTEVsZW1lbnQqIGpzSFRNTEVsZW1lbnQpCiAgICAgcmV0dXJuIGluc3RhbmNlLT5j
cmVhdGVSdW50aW1lT2JqZWN0KGV4ZWMpOwogfQogICAgIAotRW5jb2RlZEpTVmFsdWUgcGx1Z2lu
RWxlbWVudFByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcGx1Z2lu
RWxlbWVudFByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVjdCopCiB7CiAKICAgICBK
U0hUTUxFbGVtZW50KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0hUTUxFbGVtZW50Kj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaAppbmRleCA3YTNmODMyZDlkYWE1
ZTc5NjA3YmQxYjI3MWIzOTZjYzI4OGM3MDIyLi5jNjRlZGJmMWUyMWE1MjAyZDM3NWYxNDc1YzM1
NmFjNzJjMjg2OGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaApAQCAtMzgsOCArMzgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgSlNDOjpCaW5kaW5nczo6SW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKEhUTUxF
bGVtZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNDOjpKU09iamVjdCogcGx1Z2luU2NyaXB0
T2JqZWN0KEpTQzo6RXhlY1N0YXRlKiwgSlNIVE1MRWxlbWVudCopOwogCi0gICAgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLAot
ICAgIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKKyAgICBKU0M6OkVu
Y29kZWRKU1ZhbHVlIHBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7
CiAgICAgYm9vbCBwbHVnaW5FbGVtZW50Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90JiwgSlNIVE1MRWxl
bWVudCopOwogICAgIGJvb2wgcGx1Z2luRWxlbWVudEN1c3RvbVB1dChKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTSFRNTEVsZW1lbnQqLCBKU0M6OlB1
dFByb3BlcnR5U2xvdCYsIGJvb2wmIHB1dFJlc3VsdCk7CiAgICAgSlNDOjpDYWxsVHlwZSBwbHVn
aW5FbGVtZW50R2V0Q2FsbERhdGEoSlNIVE1MRWxlbWVudCosIEpTQzo6Q2FsbERhdGEmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
aW5kZXggYzdjNWJhMTdlOTZlNmQ3YTdjZmMxYzg3ZjJmY2QyN2EzYWQxZWIwZS4uNDkxYWU1YjY2
ODM2ODQ0NDM5OGNhYWJjZjU5MDBhZGMzNTJiOWUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE1MzIsNyArMTUzMiw3
IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5n
ID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWYgJHtjb25k
aXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIG15
ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUs
ICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5j
b2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopO1xuIik7
CiAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKICAgICAgICAgICAg
ICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xh
c3NOYW1lLCAkYXR0cmlidXRlKTsKICAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiYm9vbCAke3NldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwpAQCAtMjA5MCw3ICsyMDkwLDcgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRj
b2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25h
dHVyZSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFs
U3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICAgICAgbXkgJGdldHRl
ciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJp
YnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFs
dWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6
RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTtcbiIpOwogICAgICAgICAg
ICAgaWYgKCFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CiAgICAgICAgICAgICAgICAgbXkgJHNl
dHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0
dHJpYnV0ZSk7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7c2V0
dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpO1xuIik7CkBAIC0yMTAwLDcgKzIxMDAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICAKICAgICAgICAgaWYgKE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSgkaW50
ZXJmYWNlKSkgewogICAgICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFt
ZSAuICJDb25zdHJ1Y3RvciI7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6
RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTtcbiIp
OwogICAgICAgICB9CiAKICAgICAgICAgbXkgJGNvbnN0cnVjdG9yRnVuY3Rpb25OYW1lID0gInNl
dEpTIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKQEAgLTI1NjAsMTEgKzI1NjAs
MTIgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRhdHRyaWJ1
dGVDb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFs
U3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiNpZiAke2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGF0dHJpYnV0
ZUNvbmRpdGlvbmFsU3RyaW5nOwogCi0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVu
Y29kZWRKU1ZhbHVlICR7Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KiBzbG90QmFzZSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsK
IAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKHN0YXRl
KTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFN
KHRoaXNWYWx1ZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVO
VVNFRF9QQVJBTShzbG90QmFzZSk7XG4iKTsKIAogICAgICAgICAgICAgaWYgKCEkYXR0cmlidXRl
LT5pc1N0YXRpYyB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVjdG9y
JC8pIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU1ZhbHVlIGRl
Y29kZWRUaGlzVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKTtcbiIpOwpAQCAtMjc2
Myw3ICsyNzY0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgaWYgKE5l
ZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkgewogICAgICAgICAgICAgbXkgJGNv
bnN0cnVjdG9yRnVuY3Rpb25OYW1lID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVj
dG9yIjsKIAotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAk
e2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKiBkb21P
YmplY3QgPSBqc0R5bmFtaWNDYXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKVxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9hcnJheS5jcHAKaW5kZXggYzViM2M0ZjdlN2EyMTc5MjcxMjFiM2M3ZTdjMGYxYTQ5Njcx
YjY1Yy4uNzU2MTFlNDI5MmQ4NmRhMjE1ZTVkZGYwZGRkZWU0ZTMxNzJjNjQ0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lkIFJ1
bnRpbWVBcnJheTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAgICAgc3RhdGljX2Nhc3Q8UnVudGlt
ZUFycmF5Kj4oY2VsbCktPlJ1bnRpbWVBcnJheTo6flJ1bnRpbWVBcnJheSgpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgUnVu
dGltZUFycmF5OjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIFJ1bnRpbWVBcnJheSog
dGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8UnVudGltZUFycmF5Kj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmICghdGhpc09iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9hcnJheS5oCmluZGV4IDAxOGMxMzI3OGRiYTNkZDAzMTcxZTUzZWZjMGFkN2RmMGUxMDdl
OTIuLmRhNTE2MDViZDU2MjRkNzQwZjVkMDEwMmYyMzRmZWU1MjFjZGEwNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtODMsNyArODMsNyBAQCBjbGFzcyBSdW50aW1l
QXJyYXkgOiBwdWJsaWMgSlNBcnJheSB7CiAKIHByaXZhdGU6CiAgICAgUnVudGltZUFycmF5KEV4
ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhH
ZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwogCiAgICAgQmluZGluZ3NBcnJheSogbV9hcnJh
eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAppbmRleCBhZTJi
MmI5YmM5M2U5MjczY2ZhYjJkMWY3ZDdlZDQwZWExM2IwMmI3Li5hMzdjODhkMDljNzgyZWYxMWM1
ODA2NWExYTIzZDNjNmU0ZWFlODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBSdW50aW1lTWV0aG9kOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIGNvbnN0IFN0cmluZyYgaWRlbnQpCiAgICAgQVNTRVJUKGluaGVyaXRzKGlu
Zm8oKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVNZXRob2Q6Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCiB7
CiAgICAgUnVudGltZU1ldGhvZCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8UnVudGltZU1l
dGhvZCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIXRoaXNPYmplY3Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCmluZGV4IGQ4NmQ1OTQ3NWUwYTk3
NTE3YzAxMzZiYWIxMDZmMmEwN2MxOTI0ZTEuLjIzNDIyM2UzZWZiMzBmNjRmNzEyNGY3YjczMjk2
NWY5ZmFhZjZiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCkBAIC02
Niw3ICs2Niw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVNZXRob2QgOiBwdWJsaWMg
SW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
T2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIAogcHJp
dmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwg
SlNPYmplY3QqKTsKIAogICAgIEJpbmRpbmdzOjpNZXRob2QqIG1fbWV0aG9kOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IGE1NzNlMDVkNzU5YjA3NTcw
ZDI2MjFkOGU2MjYwMzY0MWNiYjRlYjkuLjQ2YWE0OWNiZmYxZmNkY2E0MjNhYWY1MmEyMmYxNjBh
NmViOTdhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAt
NjIsNyArNjIsNyBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6OmludmFsaWRhdGUoKQogICAgIG1faW5z
dGFuY2UgPSBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxs
YmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmpl
Y3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVjdCopCiB7CiAgICAg
UnVudGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlz
T2JqLT5tX2luc3RhbmNlOwpAQCAtODAsNyArODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBSdW50aW1l
T2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgUnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogeyAg
ICAKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5j
ZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7CkBAIC05OSw3ICs5OSw3IEBAIEVuY29kZWRKU1ZhbHVl
IFJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KikKIHsKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmpl
Y3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVmUHRyPEluc3RhbmNlPiBp
bnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5oCmluZGV4IDgxZDRlYmQzYjRkYmI3MDk5MTE1ZGExMDI4MmIyOWZiZmZiMTg2ZjUu
LmNjYTc0NmViZWU1MjZhZTEwMzkzZmM1NTc0MmFjNDRhY2VkMzQ2MzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC03OCw5ICs3OCw5IEBAIGNsYXNzIFdFQkNPUkVf
RVhQT1JUIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZpZWxkR2V0dGVyKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZhbGxiYWNrT2JqZWN0R2V0dGVy
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Cisg
ICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CisgICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIG1ldGhvZEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
LCBKU09iamVjdCopOwogCiAgICAgUmVmUHRyPEluc3RhbmNlPiBtX2luc3RhbmNlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmNwcAppbmRleCBkNTYxYWUxNDhjMjJmNTk3ZDdmMWFlODRjYjdkMGRmOTFjMGNh
MGFlLi5iNWE0NjA0MTAwZjM0MWFiNjc2M2VlNTAxODAwZGI5ZWJmZTk2MTA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuY3BwCkBAIC00MzUsNyArNDM1LDcgQEAgdm9pZCBKU05QT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHkKICAg
ICBucG5NZW1GcmVlKGlkZW50aWZpZXJzKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVj
dDo6cHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0
Ojpwcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQogewogICAgIEpTTlBPYmpl
Y3QqIHRoaXNPYmogPSBqc0Nhc3Q8SlNOUE9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmosIGluZm8oKSk7CkBA
IC00NzUsNyArNDc1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6cHJvcGVydHlHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmEKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHByb3BlcnR5VmFsdWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU05QT2Jq
ZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0
OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKIHsKICAgICBKU05QT2JqZWN0
KiB0aGlzT2JqID0ganNDYXN0PEpTTlBPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqLCBpbmZvKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmgKaW5kZXggOGJhZmViMDYwYTIxMDY2ZDhlYWE2MDg3NGMwM2FjOTlmMGNmNGJlNy4u
Mzg1NzgyYzhlNjhiZGM1YTEzZjc4NTQyOTMxNWY2OTkyZjRlNDMyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5o
CkBAIC05NCw4ICs5NCw4IEBAIGNsYXNzIEpTTlBPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0Rlc3Ry
dWN0aWJsZU9iamVjdCB7CiAKICAgICBzdGF0aWMgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBK
U0M6OkVudW1lcmF0aW9uTW9kZSk7CiAKLSAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBw
cm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0
ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CisgICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgcHJvcGVydHlHZXR0ZXIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpK
U09iamVjdCopOworICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIG1ldGhvZEdldHRlcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBK
U0M6OkpTT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHRocm93SW52YWxpZEFj
Y2Vzc0Vycm9yKEpTQzo6RXhlY1N0YXRlKik7CiAKICAgICBOUFJ1bnRpbWVPYmplY3RNYXAqIG1f
b2JqZWN0TWFwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280026</attachid>
            <date>2016-05-28 00:09:34 -0700</date>
            <delta_ts>2016-05-28 01:09:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157080-20160528161044.patch</filename>
            <type>text/plain</type>
            <size>53067</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
OTEyZTlhN2Q2OWU4YTZjMzQ5YjUzZmQ4Zjc2M2JjNzQ5MDliMjY0Li41NzJiYmQzZjAyMmY3NjRh
NDc0ZjExMmQ1MTBjY2Q4MmRjNjE3ZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxNi0wNS0yOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBDaGFuZ2UgUHJveHlPYmplY3QuW1tHZXRdXSBub3QgdG8gdXNlIGN1
c3RvbSBhY2Nlc3NvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU3MDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6c3RhdGljRnVuY3Rpb25HZXR0ZXIpOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0
PFBhcmVudD46OmNhbGxiYWNrR2V0dGVyKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhp
Y0FjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbCk6Cisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAg
ICAoV1RGOjpDdXN0b21HZXR0ZXI6OmN1c3RvbUdldHRlcik6CisgICAgICAgIChXVEY6OlJ1bnRp
bWVBcnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5j
cHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAg
ICogcnVudGltZS9KU0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmJv
dW5kU2xvdEJhc2VGdW5jdGlvbkNhbGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcik6CisgICAgICAg
IChKU0M6OkpTRnVuY3Rpb246OmNhbGxlckdldHRlcik6CisgICAgICAgICogcnVudGltZS9KU0Z1
bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJh
eVZpZXdXaXRoQXJndW1lbnRzKToKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNl
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Y2FsbGJhY2tHZXR0ZXIpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xkZXI6
OmFwcGVuZE5leHRQcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUu
Y3BwOgorICAgICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICog
cnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6OmN1
c3RvbUdldHRlcik6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuaDoKKyAgICAgICAg
KEpTQzo6UHJvcGVydHlTbG90Ojp0aGlzVmFsdWUpOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpwZXJmb3JtUHJveHlHZXQpOgorICAgICAgICAoSlND
OjpQcm94eU9iamVjdDo6cGVyZm9ybUdldCk6CisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RDb21tb24pOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3Qu
aDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1
Y3RvcklucHV0KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUpOgor
ICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCk6CisgICAgICAgIChKU0M6
OnJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3Ry
dWN0b3JMZWZ0Q29udGV4dCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yUmlnaHRD
b250ZXh0KToKKwogMjAxNi0wNS0yNyAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtKU0NdIGltcGxlbWVudCBhc3luYyBmdW5jdGlvbnMgcHJvcG9zYWwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA0MTM3OTJmODE4YzhiM2EzZjk5NGU3YTllMTQwYTM4YzA2Zjk1ZTcxLi4wZmNl
NGY5YWRmYTVkMGQxMjg2YzFmZTAxNzY5OGI2MTM2ZmExYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzggQEAKKzIwMTYtMDUtMjggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CisKKyAgICAgICAgQ2hhbmdlIFByb3h5T2JqZWN0LltbR2V0XV0gbm90IHRvIHVzZSBjdXN0
b20gYWNjZXNzb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NzA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDcnlw
dG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFByb3BlcnR5
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKFdlYkNv
cmU6Om5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcik6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNET01XaW5kb3dX
ZWJLaXQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0RpY3Rpb25hcnk6OnRyeUdldFByb3BlcnR5KToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVy
YXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoK
KyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIpOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNw
cDoKKyAgICAgICAgKEpTQzo6UnVudGltZU1ldGhvZDo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAg
KiBicmlkZ2UvcnVudGltZV9tZXRob2QuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmpl
Y3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6ZmFsbGJhY2tP
YmplY3RHZXR0ZXIpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6Zmll
bGRHZXR0ZXIpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6bWV0aG9k
R2V0dGVyKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKwogMjAxNi0wNS0y
NyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMTkwNTc0KTogU3dpcGUgc25hcHNob3RzIGFyZSBhbHdheXMgYmxhY2sgb24gaVBo
b25lIDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCBlYTBjYzkwMjE4NDU5N2E3Mjc1YjE0M2YyNGVhZTcxOGRhMGUz
ZDA4Li4zYTMwYjdjY2U3OTc5ZTk0MDE1OGJiY2M4NWJiMzJlNWNkOWNkZTU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDUtMjggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CisKKyAgICAgICAgQ2hhbmdlIFByb3h5T2JqZWN0LltbR2V0XV0gbm90IHRv
IHVzZSBjdXN0b20gYWNjZXNzb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0Ojpwcm9wZXJ0eUdldHRlcik6CisgICAgICAg
IChXZWJLaXQ6OkpTTlBPYmplY3Q6Om1ldGhvZEdldHRlcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaDoKKwogMjAxNi0wNS0yNyAgQ2FpdGxpbiBQ
b3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdIGltcGxlbWVudCBhc3lu
YyBmdW5jdGlvbnMgcHJvcG9zYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmgKaW5kZXggNWUwMzNmOGUzYzJlZGZjNTMxODNiODFjMTM1ZTBjZjVlYzhlNDUw
Yy4uZTk1NjNmNTRjZWE4YjI2M2IxNDMzNTY3MjFkNGNkZGQ3OWM1ZTQwNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTIxMSw4ICsyMTEsOCBA
QCBjbGFzcyBKU0NhbGxiYWNrT2JqZWN0IDogcHVibGljIFBhcmVudCB7CiAgICAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0KEV4ZWNTdGF0ZSopOwogICAgCiAg
ICAgSlNWYWx1ZSBnZXRTdGF0aWNWYWx1ZShFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUpOwotICAg
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzdGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lLCBKU09iamVjdCopOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzdGF0aWNG
dW5jdGlvbkdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
KyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDYWxs
YmFja09iamVjdERhdGE+IG1fY2FsbGJhY2tPYmplY3REYXRhOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKaW5kZXgg
YjJiY2Y0NTNhNmIxOGI5NTc2NzZmN2ZiMDRkMzE3MDEyNmE2ZTdmZC4uYTU1MzcyMzRiYjMyY2E2
ODZkZDA2YjJhZmU5YTA3YTlkMDI1N2YzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTU5OSw3ICs1OTksNyBA
QCBKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0U3RhdGljVmFsdWUoRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcAogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50Pgot
RW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5jdGlvbkdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09i
amVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBK
U0NhbGxiYWNrT2JqZWN0KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdCh0aGlzVmFsdWUpOwog
ICAgIApAQCAtNjI3LDcgKzYyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8
UGFyZW50Pjo6c3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFCiB9CiAKIHRl
bXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBh
cmVudD46OmNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNW
YWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KQogewogICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHRo
aXNWYWx1ZSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1BvbHltb3JwaGljQWNjZXNzLmNwcAppbmRleCA0YWFlZDhlOWE2ZDVjMmIwMDliZWU5NzczNzhi
N2UxMDdhMjAyNTEwLi5hYzUyMGNkMzNlOTEzOWRjM2Q1ZjRlMGMxYTg4Y2MzYWRiY2U2NmUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0Fj
Y2Vzcy5jcHAKQEAgLTEwODQsNyArMTA4NCw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJ
bXBsKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICAvLyB0byBtYWtl
IHNvbWUgc3BhY2UgaGVyZS4KICAgICAgICAgICAgIGppdC5tYWtlU3BhY2VPblN0YWNrRm9yQ0Nh
bGwoKTsKIAotICAgICAgICAgICAgLy8gZ2V0dGVyOiBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVl
RnVuYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUs
IEpTT2JqZWN0KiBzbG90QmFzZSk7CisgICAgICAgICAgICAvLyBnZXR0ZXI6IEVuY29kZWRKU1Zh
bHVlICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICAvLyBzZXR0ZXI6IHZvaWQgKCpQdXRWYWx1ZUZ1
bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHZhbHVlKTsKICAgICAgICAgICAgIC8vIEN1c3RvbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aGUgc2xv
dEJhc2UgKHRoZSBwcm9wZXJ0eSBob2xkZXIpLCBjdXN0b20gYWNjZXNzb3JzIGFyZSBwYXNzZWQg
dGhlIHRoaXNWYXVsZSAocmVjaWV2ZXIpLgogICAgICAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB0
aGlzIGRpZmZlcmVuY2VzIGluIGN1c3RvbSB2YWx1ZXMgYW5kIGN1c3RvbSBhY2Nlc3NvcnMuCkBA
IC0xMDk0LDggKzEwOTQsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NH
ZW5lcmF0aW9uU3RhdGUmIHN0YXRlKQogICAgICAgICAgICAgaWYgKG1fdHlwZSA9PSBDdXN0b21W
YWx1ZUdldHRlciB8fCBtX3R5cGUgPT0gQ3VzdG9tQWNjZXNzb3JHZXR0ZXIpIHsKICAgICAgICAg
ICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKAogICAgICAgICAgICAgICAg
ICAgICBiYXNlRm9yQ3VzdG9tVmFsdWUsCi0gICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpLAotICAgICAgICAgICAgICAgICAgICBiYXNl
Rm9yQWNjZXNzR1BSKTsKKyAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKGlkZW50LmltcGwoKSkpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAg
ICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShiYXNlRm9yQ3VzdG9tVmFsdWUsIHZh
bHVlUmVncy5ncHIoKSk7CiAjZWxzZQpAQCAtMTEwMyw4ICsxMTAyLDcgQEAgdm9pZCBBY2Nlc3ND
YXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAgICAgICAg
ICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKAogICAgICAgICAgICAgICAg
ICAgICBFQUJJXzMyQklUX0RVTU1ZX0FSRyBiYXNlRm9yQ3VzdG9tVmFsdWUsCiAgICAgICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAot
ICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1w
bCgpKSwKLSAgICAgICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUik7CisgICAgICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpKTsKICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgRUFCSV8zMkJJVF9EVU1NWV9BUkcgYmFz
ZUZvckN1c3RvbVZhbHVlLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5jcHAKaW5kZXggYTVkMGQwNDE0ZGQ5YWQ3OTEwMjBiM2QwNTZmMzJjOWM3Mzc5YjMyYi4uMGQ5
OWQ3MzVlN2Q0Y2VjMmFlODU4OWM3YWU4MTkzZjQxMDgxYjdkMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNjI3LDYgKzE2MjcsOCBAQCBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldER5bmFtaWNWYXIoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogcwogCiAgICAgUHJvcGVydHlTbG90IHNsb3Qoc2NvcGUsIFByb3Bl
cnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwogICAgIGlmICghc2NvcGUtPmdldFBy
b3BlcnR5U2xvdChleGVjLCBpZGVudCwgc2xvdCkpIHsKKyAgICAgICAgaWYgKHZtLmV4Y2VwdGlv
bigpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICAgICAgaWYgKGdldFB1dEluZm8ucmVzb2x2ZU1vZGUoKSA9PSBUaHJvd0lmTm90Rm91bmQp
CiAgICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVVbmRlZmluZWRWYXJp
YWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0ludGVycHJldGVyLmNwcAppbmRleCA4NGIxMjEwMzgyYWE1ZTdiYjgxYTk5NTlkNGU0Y2ZhNmZk
MWI2OTQzLi5kYjExZmRkOTQ2MTA1NjkwYmU0MzRmZTM2YTk4ODhlMTAwMDU4MjY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAg
LTg2MCw2ICs4NjAsOCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKFByb2dyYW1FeGVj
dXRhYmxlKiBwcm9ncmFtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSgogICAgICAgICAgICAgICAg
ICAgICBpZiAoaSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qg
c2xvdChnbG9iYWxPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQp
OwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFnbG9iYWxPYmplY3QtPmdldFByb3BlcnR5
U2xvdChjYWxsRnJhbWUsIEpTT05QUGF0aFtpXS5tX3BhdGhFbnRyeU5hbWUsIHNsb3QpKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS0+aGFkRXhjZXB0aW9uKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxs
RnJhbWUsIGNyZWF0ZVVuZGVmaW5lZFZhcmlhYmxlRXJyb3IoY2FsbEZyYW1lLCBKU09OUFBhdGhb
aV0ubV9wYXRoRW50cnlOYW1lKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBm
YWlsZWRKU09OUDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3Bw
CmluZGV4IDZlOGEwODk5ZmQyNDg5ZjQ4ZTNhYjRhZGQ1ZDg1ZGYyNjBjNDhjMzUuLmZlNTA1NWNm
OTMzZWQ3MjgxMjRjNWY0ZjBmM2VhZWE0Y2I4MzQ3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMjQ0LDExICsyNDQsMTIgQEAgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUoRXhlY1N0YXRlKiBl
eGVjLCBTdHJ1Y3R1cmUKICAgICBMT0dfSUMoKElDRXZlbnQ6Ok9wZXJhdGlvbkdldEJ5SWRPcHRp
bWl6ZSwgYmFzZVZhbHVlLmNsYXNzSW5mb09yTnVsbCgpLCBpZGVudCkpOwogICAgIFByb3BlcnR5
U2xvdCBzbG90KGJhc2VWYWx1ZSwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okdl
dCk7CiAgICAgCi0gICAgYm9vbCBoYXNSZXN1bHQgPSBiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90
KGV4ZWMsIGlkZW50LCBzbG90KTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGJhc2VWYWx1ZS5nZXQo
ZXhlYywgaWRlbnQsIHNsb3QpOworICAgIGlmICh2bS5leGNlcHRpb24oKSkKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpZiAoc3R1YkluZm8tPmNv
bnNpZGVyQ2FjaGluZyhiYXNlVmFsdWUuc3RydWN0dXJlT3JOdWxsKCkpKQogICAgICAgICByZXBh
dGNoR2V0QnlJRChleGVjLCBiYXNlVmFsdWUsIGlkZW50LCBzbG90LCAqc3R1YkluZm8sIEdldEJ5
SURLaW5kOjpOb3JtYWwpOwotICAgIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaGFzUmVz
dWx0PyBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50KSA6IGpzVW5kZWZpbmVkKCkpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Jbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvLCBKU0NlbGwqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKiBrZXkpCkBA
IC0yMDI3LDYgKzIwMjgsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkdldEZyb21TY29wZShFeGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0aW9uKgogCiAgICAgUHJvcGVy
dHlTbG90IHNsb3Qoc2NvcGUsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQp
OwogICAgIGlmICghc2NvcGUtPmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudCwgc2xvdCkpIHsK
KyAgICAgICAgaWYgKHZtLmV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgaWYgKGdldFB1dEluZm8ucmVzb2x2ZU1v
ZGUoKSA9PSBUaHJvd0lmTm90Rm91bmQpCiAgICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihl
eGVjLCBjcmVhdGVVbmRlZmluZWRWYXJpYWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7CiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CmluZGV4IGJhODVhMmZiYjBlOWExOWYxMGE3MTM4ZDU1ZDI5OTA0MmE4NjczYjkuLjMzM2ZkZTI1
Y2VkMjk2ZTNiNzAwNTc0OWE3MmEwM2E0MzQ1ZjQ1OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBA
IC0zNTgsNyArMzU4LDcgQEAgY2xhc3MgQ3VzdG9tR2V0dGVyIDogcHVibGljIEpTTm9uRmluYWxP
YmplY3QgewogICAgIH0KIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3Vz
dG9tR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiAgICAgewogICAgICAgICBDdXN0b21HZXR0ZXIqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWND
YXN0PEN1c3RvbUdldHRlcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICAgICAg
aWYgKCF0aGlzT2JqZWN0KQpAQCAtNDYzLDcgKzQ2Myw3IEBAIGNsYXNzIFJ1bnRpbWVBcnJheSA6
IHB1YmxpYyBKU0FycmF5IHsKICAgICB7CiAgICAgfQogCi0gICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxl
bmd0aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogICAgIHsKICAgICAgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0ganNE
eW5hbWljQ2FzdDxSdW50aW1lQXJyYXkqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgICAgIGlmICghdGhpc09iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwCmluZGV4IGViYTIwNWIyYjZmODJkOTI5OGM3OTM3OTk2MGU2YzAz
ODNjMGNhNzYuLjdkMDNlMDZhYjZkMDU1YTk0YTYyZDhkZTg3N2ZlMmI2Njc0ZGUwZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtMTUy
Miw2ICsxNTIyLDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2dldF9mcm9tX3Nj
b3BlKQogCiAgICAgUHJvcGVydHlTbG90IHNsb3Qoc2NvcGUsIFByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpHZXQpOwogICAgIGlmICghc2NvcGUtPmdldFByb3BlcnR5U2xvdChleGVj
LCBpZGVudCwgc2xvdCkpIHsKKyAgICAgICAgTExJTlRfQ0hFQ0tfRVhDRVBUSU9OKCk7CiAgICAg
ICAgIGlmIChnZXRQdXRJbmZvLnJlc29sdmVNb2RlKCkgPT0gVGhyb3dJZk5vdEZvdW5kKQogICAg
ICAgICAgICAgTExJTlRfUkVUVVJOKGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3Jl
YXRlVW5kZWZpbmVkVmFyaWFibGVFcnJvcihleGVjLCBpZGVudCkpKTsKICAgICAgICAgTExJTlRf
UkVUVVJOKGpzVW5kZWZpbmVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24uY3BwCmluZGV4IDJkNjdlNDMxNzFl
MmRkNmM5NDUwODc2YzlmMjJkMjFkMzVlZGI0NGUuLjFmMzM1NjI2N2ZhZmI3ZDMwNWQ5NjNhYWE5
MDdmZTJmNGJlNjRlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQm91bmRTbG90QmFzZUZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZFNsb3RCYXNlRnVuY3Rpb25DYWxsKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZSA9IGJvdW5kU2xvdEJhc2VGdW5jdGlvbi0+bmFt
ZSgpOwotICAgIHJldHVybiBnZXR0ZXIoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNW
YWx1ZSgpKSwgUHJvcGVydHlOYW1lKElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgbmFtZSkp
LCBiYXNlT2JqZWN0KTsKKyAgICByZXR1cm4gZ2V0dGVyKGV4ZWMsIEpTVmFsdWU6OmVuY29kZShl
eGVjLT50aGlzVmFsdWUoKSksIFByb3BlcnR5TmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4
ZWMsIG5hbWUpKSk7CiB9CiAKIEpTQm91bmRTbG90QmFzZUZ1bmN0aW9uOjpKU0JvdW5kU2xvdEJh
c2VGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBjb25zdCBUeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IDMxNzRhYmM4NzlkNjI4NjllZDAwOWViZWFmODMw
NjA3MDRkYzhjMjYuLjllNTkyNzhhMGVkOTYyMDk1NDZlYWMxMjk3MTgzODRmODkyYjI1NGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0yNjQs
NyArMjY0LDcgQEAgc3RhdGljIEpTVmFsdWUgcmV0cmlldmVBcmd1bWVudHMoRXhlY1N0YXRlKiBl
eGVjLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQo
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KikKK0VuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IEpTRnVuY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwpA
QCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRpYyBHZXR0ZXJTZXR0ZXIqIGdldFRocm93VHlwZUVycm9y
R2V0dGVyU2V0dGVyKEpTRnVuY3Rpb24qIGZ1bmN0aW9uKQogICAgICAgICA6IGZ1bmN0aW9uLT5n
bG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JBcmd1bWVudHNBbmRDYWxsZXJJblN0cmljdE1v
ZGVHZXR0ZXJTZXR0ZXIoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVy
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmNhbGxlckdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0
aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4
IDMwN2RlYzEzYzU1ZGYxYWQyMTM5YTI4MDk4MGRkZjJiMzc0MTQ3MzQuLjMwMDcwZDBkNjFkN2Uy
YjZhZDhiYWRjYmZkMTk3MWFjNzc1N2IyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmgKQEAgLTE5OCw4ICsxOTgsMTAgQEAgY2xhc3MgSlNGdW5jdGlvbiA6
IHB1YmxpYyBKU0NhbGxlZSB7CiAKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFj
dG9yOwogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50c0dldHRlcihFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotICAgIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgYXJn
dW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwor
ICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0
aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgbmFtZUdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKTsKIAogICAgIFdyaXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gbV9l
eGVjdXRhYmxlOwogICAgIFdyaXRlQmFycmllcjxGdW5jdGlvblJhcmVEYXRhPiBtX3JhcmVEYXRh
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXgg
ZjNjN2M2ODA4NGU4ZjNmZGYxYjFiZjJjNmVlOGU4YjQyYzA1MThjMi4uNmU0NTk4MzM3Zjc2ZTUx
YWRkOGNiOTNkMjVmOTEyZTg1ZTQyODg1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0NvbnN0cnVjdG9ySW5saW5lcy5oCkBAIC0xNTIsNiArMTUyLDggQEAgaW5saW5lIEpTT2JqZWN0
KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzKEV4ZWNTdGF0ZSog
ZXhlYywgU3QKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBQcm9wZXJ0eVNsb3QgbGVuZ3Ro
U2xvdChvYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwogICAg
ICAgICAgICAgb2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBsZW5ndGhTbG90KTsKKyAgICAgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICAgICAgSlNWYWx1
ZSBpdGVyYXRvckZ1bmMgPSBvYmplY3QtPmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVy
YXRvclN5bWJvbCk7CiAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZU5hbWVzcGFjZU9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZU5hbWVzcGFj
ZU9iamVjdC5jcHAKaW5kZXggOWU5OTQzMjQ2OTU0ZjMwMmNmMGZlODA4NzQwZDZlMTE0NzY3NmEz
My4uNDBkZGE3MzMzZmY3MjBhZGY2MDk4ZmY0Nzc1NzJmMWViMTg2YWVhMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNlT2Jq
ZWN0LmNwcApAQCAtOTcsNyArOTcsNyBAQCB2b2lkIEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0Ojp2
aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlz
aXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fbW9kdWxlUmVjb3JkKTsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIGNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVjdCopCitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNN
b2R1bGVOYW1lc3BhY2VPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNNb2R1bGVOYW1lc3Bh
Y2VPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgSlNNb2R1bGVSZWNv
cmQqIG1vZHVsZVJlY29yZCA9IHRoaXNPYmplY3QtPm1vZHVsZVJlY29yZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCBhMDgxMzIxY2M5Y2Ex
YjA1MzBlNThlMWMwOGZlYTllN2IyMDM2YjllLi41MDJlZDMwMzY1ZGE2ZTVmYzA1NGU2YjcwMTRl
MWY1N2Y5MWU3MGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcApAQCAtNDc4LDEwICs0NzgsMTAgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjph
cHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkKICAg
ICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KG1fb2JqZWN0LmdldCgpLCBQcm9wZXJ0eVNsb3Q6
OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKICAgICAgICAgICAgIGlmIChtX29iamVjdC0+bWV0
aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChtX29iamVjdC5nZXQoKSwgZXhl
YywgaW5kZXgsIHNsb3QpKSB7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBzbG90LmdldFZhbHVl
KGV4ZWMsIGluZGV4KTsKLSAgICAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0gZWxzZQog
ICAgICAgICAgICAgICAgIHZhbHVlID0ganNVbmRlZmluZWQoKTsKKyAgICAgICAgICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KIAogICAgICAgICAvLyBBcHBlbmQgdGhlIHNlcGFyYXRvciBzdHJpbmcuCkBAIC00OTUs
OCArNDk1LDExIEBAIGJvb2wgU3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5
KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgU3RyaW5nQnVpCiAgICAgICAgIC8vIEdldCB0aGUg
dmFsdWUuCiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KG1fb2JqZWN0LmdldCgpLCBQcm9wZXJ0
eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKICAgICAgICAgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKVtpbmRleF07
Ci0gICAgICAgIGlmICghbV9vYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldE93blByb3BlcnR5U2xv
dChtX29iamVjdC5nZXQoKSwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAgaWYg
KCFtX29iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90KG1fb2JqZWN0Lmdl
dCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CisgICAgICAgICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHNsb3Qu
Z2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5kZXggNTVjZjVlMjdlYWQzMDBi
NDAzZjgzZjYxNGM5MmIzZDA2MWUzODFlOS4uZjhkMzRmZDExOGVkM2Y3NzUxNzcxMjY3OTk2ZTA4
ZTc2Zjk2NjA5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuY3BwCkBAIC0yOTMsNiArMjkzLDggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CisgICAgICAgIGlmICh2bS5leGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKIAogICAgICAgICBTdHJpbmcgbmV3U3RyaW5n
ID0gV1RGOjp0cnlNYWtlU3RyaW5nKCJbb2JqZWN0ICIsIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxl
KGV4ZWMtPnZtKCkpLT5jbGFzc05hbWUodGhpc09iamVjdCksICJdIik7CiAgICAgICAgIGlmICgh
bmV3U3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
cGVydHlTbG90LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xv
dC5jcHAKaW5kZXggYzY4ODI0NDVmMGJkYWI1MzNhOTRlNmMxMDQ4N2EzN2UxMmUyZDUwNS4uNDk2
ZDBhYzRjZWU0MGI5ZjMxMjQ4MDJmMDk4NTNjODI3MzZjZTFiMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCkBAIC0zOCw3ICszOCw3IEBAIEpT
VmFsdWUgUHJvcGVydHlTbG90OjpjdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lKSBjCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGRpZmZlcmVu
Y2VzIGluIGN1c3RvbSB2YWx1ZXMgYW5kIGN1c3RvbSBhY2Nlc3NvcnMuCiAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODAxNAogICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gbV9hdHRyaWJ1dGVzICYgQ3VzdG9tQWNjZXNzb3IgPyBtX3RoaXNWYWx1ZSA6IEpT
VmFsdWUoc2xvdEJhc2UoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZShtX2RhdGEuY3Vz
dG9tLmdldFZhbHVlKGV4ZWMsIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpLCBwcm9wZXJ0eU5h
bWUsIHNsb3RCYXNlKCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS5jdXN0
b20uZ2V0VmFsdWUoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSksIHByb3BlcnR5TmFt
ZSkpOwogfQogCiBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6Z2V0UHVyZVJlc3VsdCgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCmluZGV4IGVhNWNj
OWRmZjc5MDRjZjBkYTE5ZWM5OTgxODE1NWQ3YjNkODE3Y2UuLmQ3ZDc2YzdlM2NhNjVmZGFmZTVh
YzI5MzVkNTE4ODlkZmI1NWQyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5U2xvdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3BlcnR5U2xvdC5oCkBAIC05NCwxMiArOTQsOSBAQCBjbGFzcyBQcm9wZXJ0eVNsb3Qgewog
ICAgIHsKICAgICB9CiAKLSAgICAvLyBUaGVyZSBhcmUgdHdvIHR5cGVzIG9mIGN1c3RvbSBwcm9w
ZXJ0aWVzOiBjdXN0b20gdmFsdWVzIGFuZCBjdXN0b20gYWNjZXNzb3JzLgotICAgIC8vIEZvciB0
aGUgc2Vjb25kIGFyZ3VtZW50LCBjdXN0b20gdmFsdWVzIGFyZSBwYXNzZWQgdGhlIHNsb3RCYXNl
ICh0aGUgcHJvcGVydHkgaG9sZGVyKSwgY3VzdG9tIGFjY2Vzc29ycyBhcmUgcGFzc2VkIHRoZSB0
aGlzVmF1bGUgKHJlY2lldmVyKS4KLSAgICAvLyBBbmQgd2hlbiBnZXR0aW5nIHRoZSBwcm9wZXJ0
eSBkZXNjcmlwdG9yIGZyb20gdGhlc2UgcHJvcGVydGllcywgY3VzdG9tIHZhbHVlcyByZXR1cm4g
dGhlIGRhdGEgZGVzY3JpcHRvciB3aGlsZSBjdXN0b20gYWNjZXNzb3JzIHJldHVybiB0aGUgYWNj
ZXNzb3IgZGVzY3JpcHRvci4KICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgc2xvdEJhc2UgLyBy
ZWNlaXZlciBiZWhhdmlvciBkaWZmZXJlbmNlIGluIGN1c3RvbSB2YWx1ZXMgYW5kIGN1c3RvbSBh
Y2Nlc3NvcnMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1ODAxNAotICAgIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCog
c2xvdEJhc2UpOworICAgIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogICAg
IEpTVmFsdWUgZ2V0VmFsdWUoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKSBjb25zdDsKICAgICBK
U1ZhbHVlIGdldFZhbHVlKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkgY29uc3Q7
CkBAIC0yNDksNiArMjQ2LDExIEBAIGNsYXNzIFByb3BlcnR5U2xvdCB7CiAgICAgICAgIG1fb2Zm
c2V0ID0gb2Zmc2V0OwogICAgIH0KIAorICAgIEpTVmFsdWUgdGhpc1ZhbHVlKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX3RoaXNWYWx1ZTsKKyAgICB9CisKICAgICB2b2lkIHNldFRo
aXNWYWx1ZShKU1ZhbHVlIHRoaXNWYWx1ZSkKICAgICB7CiAgICAgICAgIG1fdGhpc1ZhbHVlID0g
dGhpc1ZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3Qu
Y3BwCmluZGV4IDk5ODMzM2NkNTQzOWY1OWRlNWEzNzBiYjAzZTkxYzVmMjRiMzU3ZmYuLmM0YzU0
YjYzMzI0MmM0MmFmMWZhZDViYTc0Zjc4NWRjNmU3MTBhYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKQEAgLTkyLDIyICs5MiwyMSBAQCB2b2lk
IFByb3h5T2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB0YXJnZXQsIEpTVmFsdQogCiBzdGF0aWMgY29uc3QgY2hhciogc19wcm94eUFscmVhZHlS
ZXZva2VkRXJyb3JNZXNzYWdlID0gIlByb3h5IGhhcyBhbHJlYWR5IGJlZW4gcmV2b2tlZC4gTm8g
bW9yZSBvcGVyYXRpb25zIGFyZSBhbGxvd2VkIHRvIGJlIHBlcmZvcm1lZCBvbiBpdCI7CiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBwZXJmb3JtUHJveHlHZXQoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KiBzbG90QmFzZSkKK3N0YXRpYyBKU1ZhbHVlIHBlcmZvcm1Qcm94eUdldChFeGVjU3RhdGUqIGV4
ZWMsIFByb3h5T2JqZWN0KiBwcm94eU9iamVjdCwgSlNWYWx1ZSByZWNlaXZlciwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGlmICgh
dm0uaXNTYWZlVG9SZWN1cnNlKCkpIHsKICAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3Io
ZXhlYyk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICB9CiAKLSAgICBQcm94eU9iamVjdCogcHJveHlPYmpl
Y3QgPSBqc0Nhc3Q8UHJveHlPYmplY3QqPihzbG90QmFzZSk7CiAgICAgSlNPYmplY3QqIHRhcmdl
dCA9IHByb3h5T2JqZWN0LT50YXJnZXQoKTsKIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gdm0u
cHJvcGVydHlOYW1lcy0+dW5kZXJzY29yZVByb3RvKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHByb3h5T2JqZWN0LT5wZXJmb3JtR2V0UHJvdG90eXBlKGV4ZWMpKTsKKyAgICAgICAg
cmV0dXJuIHByb3h5T2JqZWN0LT5wZXJmb3JtR2V0UHJvdG90eXBlKGV4ZWMpOwogCiAgICAgYXV0
byBwZXJmb3JtRGVmYXVsdEdldCA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodGFyZ2V0LT5nZXQoZXhlYywgcHJvcGVydHlOYW1lKSk7CisgICAgICAgIHJldHVybiB0YXJn
ZXQtPmdldChleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIH07CiAKICAgICBpZiAodm0ucHJvcGVy
dHlOYW1lcy0+aXNQcml2YXRlTmFtZShJZGVudGlmaWVyOjpmcm9tVWlkKCZ2bSwgcHJvcGVydHlO
YW1lLnVpZCgpKSkpCkBAIC0xMTUsMTQgKzExNCwxNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
cGVyZm9ybVByb3h5R2V0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LAogCiAgICAgSlNWYWx1ZSBoYW5kbGVyVmFsdWUgPSBwcm94eU9iamVjdC0+aGFuZGxlcigpOwog
ICAgIGlmIChoYW5kbGVyVmFsdWUuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbChzX3Byb3h5QWxyZWFkeVJldm9rZWRFcnJvck1lc3Nh
Z2UpKTsKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbChz
X3Byb3h5QWxyZWFkeVJldm9rZWRFcnJvck1lc3NhZ2UpKTsKIAogICAgIEpTT2JqZWN0KiBoYW5k
bGVyID0ganNDYXN0PEpTT2JqZWN0Kj4oaGFuZGxlclZhbHVlKTsKICAgICBDYWxsRGF0YSBjYWxs
RGF0YTsKICAgICBDYWxsVHlwZSBjYWxsVHlwZTsKICAgICBKU1ZhbHVlIGdldEhhbmRsZXIgPSBo
YW5kbGVyLT5nZXRNZXRob2QoZXhlYywgY2FsbERhdGEsIGNhbGxUeXBlLCB2bS5wcm9wZXJ0eU5h
bWVzLT5nZXQsIEFTQ0lJTGl0ZXJhbCgiJ2dldCcgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRs
ZXIgb2JqZWN0IHNob3VsZCBiZSBjYWxsYWJsZSIpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cisg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgaWYgKGdldEhhbmRsZXIuaXNVbmRl
ZmluZWQoKSkKICAgICAgICAgcmV0dXJuIHBlcmZvcm1EZWZhdWx0R2V0KCk7CkBAIC0xMzAsMjYg
KzEyOSwzNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcGVyZm9ybVByb3h5R2V0KEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLAogICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIGFyZ3VtZW50czsKICAgICBhcmd1bWVudHMuYXBwZW5kKHRhcmdldCk7CiAgICAgYXJndW1l
bnRzLmFwcGVuZChpZGVudGlmaWVyVG9TYWZlUHVibGljSlNWYWx1ZSh2bSwgSWRlbnRpZmllcjo6
ZnJvbVVpZCgmdm0sIHByb3BlcnR5TmFtZS51aWQoKSkpKTsKLSAgICBhcmd1bWVudHMuYXBwZW5k
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBhcmd1bWVudHMuYXBwZW5kKHJlY2Vp
dmVyKTsKICAgICBKU1ZhbHVlIHRyYXBSZXN1bHQgPSBjYWxsKGV4ZWMsIGdldEhhbmRsZXIsIGNh
bGxUeXBlLCBjYWxsRGF0YSwgaGFuZGxlciwgYXJndW1lbnRzKTsKICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgUHJvcGVydHlEZXNjcmlw
dG9yIGRlc2NyaXB0b3I7CiAgICAgaWYgKHRhcmdldC0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikpIHsKICAgICAgICAgaWYgKGRlc2NyaXB0
b3IuaXNEYXRhRGVzY3JpcHRvcigpICYmICFkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSgpICYmICFk
ZXNjcmlwdG9yLndyaXRhYmxlKCkpIHsKICAgICAgICAgICAgIGlmICghc2FtZVZhbHVlKGV4ZWMs
IGRlc2NyaXB0b3IudmFsdWUoKSwgdHJhcFJlc3VsdCkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJQcm94eSBoYW5kbGVyJ3MgJ2dl
dCcgcmVzdWx0IG9mIGEgbm9uLWNvbmZpZ3VyYWJsZSBhbmQgbm9uLXdyaXRhYmxlIHByb3BlcnR5
IHNob3VsZCBiZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgdGFyZ2V0J3MgcHJvcGVydHkiKSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgi
UHJveHkgaGFuZGxlcidzICdnZXQnIHJlc3VsdCBvZiBhIG5vbi1jb25maWd1cmFibGUgYW5kIG5v
bi13cml0YWJsZSBwcm9wZXJ0eSBzaG91bGQgYmUgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIHRhcmdl
dCdzIHByb3BlcnR5IikpOwogICAgICAgICB9IGVsc2UgaWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3Nv
ckRlc2NyaXB0b3IoKSAmJiAhZGVzY3JpcHRvci5jb25maWd1cmFibGUoKSAmJiBkZXNjcmlwdG9y
LmdldHRlcigpLmlzVW5kZWZpbmVkKCkpIHsKICAgICAgICAgICAgIGlmICghdHJhcFJlc3VsdC5p
c1VuZGVmaW5lZCgpKQotICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIEFTQ0lJTGl0ZXJhbCgiUHJveHkgaGFuZGxlcidzICdnZXQnIHJlc3VsdCBvZiBhIG5vbi1j
b25maWd1cmFibGUgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldHRlciBzaG91bGQgYmUg
dW5kZWZpbmVkIikpOworICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVj
LCBBU0NJSUxpdGVyYWwoIlByb3h5IGhhbmRsZXIncyAnZ2V0JyByZXN1bHQgb2YgYSBub24tY29u
ZmlndXJhYmxlIGFjY2Vzc29yIHByb3BlcnR5IHdpdGhvdXQgYSBnZXR0ZXIgc2hvdWxkIGJlIHVu
ZGVmaW5lZCIpKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRp
b24oKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHRyYXBSZXN1bHQpOworICAgIHJldHVybiB0cmFwUmVzdWx0OworfQorCitib29sIFByb3h5T2Jq
ZWN0OjpwZXJmb3JtR2V0KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIEpTVmFsdWUgcmVzdWx0ID0gcGVyZm9ybVBy
b3h5R2V0KGV4ZWMsIHRoaXMsIHNsb3QudGhpc1ZhbHVlKCksIHByb3BlcnR5TmFtZSk7CisgICAg
aWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgdW5z
aWduZWQgaWdub3JlZEF0dHJpYnV0ZXMgPSAwOworICAgIHNsb3Quc2V0VmFsdWUodGhpcywgaWdu
b3JlZEF0dHJpYnV0ZXMsIHJlc3VsdCk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgUHJv
eHlPYmplY3Q6OnBlcmZvcm1JbnRlcm5hbE1ldGhvZEdldE93blByb3BlcnR5KEV4ZWNTdGF0ZSog
ZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpAQCAt
MzIyLDggKzMzMSw3IEBAIGJvb2wgUHJveHlPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdENvbW1v
bihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0CiAgICAgc2xvdC5zZXRJc1Rh
aW50ZWRCeVByb3h5KCk7CiAgICAgc3dpdGNoIChzbG90LmludGVybmFsTWV0aG9kVHlwZSgpKSB7
CiAgICAgY2FzZSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0OgotICAgICAg
ICBzbG90LnNldEN1c3RvbSh0aGlzLCBDdXN0b21BY2Nlc3NvciwgcGVyZm9ybVByb3h5R2V0KTsK
LSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBwZXJmb3JtR2V0KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgY2FzZSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9k
VHlwZTo6R2V0T3duUHJvcGVydHk6CiAgICAgICAgIHJldHVybiBwZXJmb3JtSW50ZXJuYWxNZXRo
b2RHZXRPd25Qcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIGNhc2UgUHJv
cGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okhhc1Byb3BlcnR5OgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgKaW5kZXggNmQxMWFiZmRmMWFlNjUxNDky
ZTQ5Zjk5ZDlhNTY3YTdhMGQ3ODcwYi4uZmMxYThlOTVkNmZhYjY2YTJlMzAzNDQyMzIyOTM2NTJj
ZTJhNjBjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5o
CkBAIC05Niw2ICs5Niw3IEBAIGNsYXNzIFByb3h5T2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxP
YmplY3QgewogCiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RDb21tb24oRXhlY1N0YXRlKiwg
UHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBib29sIHBlcmZvcm1JbnRlcm5hbE1l
dGhvZEdldE93blByb3BlcnR5KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CisgICAgYm9vbCBwZXJmb3JtR2V0KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CiAgICAgYm9vbCBwZXJmb3JtSGFzUHJvcGVydHkoRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVmYXVsdERl
bGV0ZUZ1bmN0aW9uPgogICAgIGJvb2wgcGVyZm9ybURlbGV0ZShFeGVjU3RhdGUqLCBQcm9wZXJ0
eU5hbWUsIERlZmF1bHREZWxldGVGdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMjQzYTM1ZjYxOTg0ZDAx
NDRiYjE2YTRhN2Q1Yjk0YWNjMWNjOGZhNi4uZDIzNzg5YmMwMzk1NmY0OGNkYThiYmU3M2M5NjNl
MTBjZDgyMmY1MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMzEsMTQgKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2goRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBD
b25zdHJ1Y3Rvckxhc3RQYXJlbihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lLCBKU09iamVjdCopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9y
TGVmdENvbnRleHQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNP
YmplY3QqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29u
dGV4dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCop
Oworc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0
TWF0Y2goRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhw
Q29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29u
dGV4dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIHRlbXBsYXRl
PGludCBOPgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAKIHN0YXRpYyBib29sIHNldFJlZ0V4cENvbnN0
cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsK
IHN0YXRpYyBib29sIHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CkBAIC0xNDcsMzcgKzE0NywzNyBAQCBKU1Zh
bHVlIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjKQog
fQogCiB0ZW1wbGF0ZTxpbnQgTj4KLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9s
bGFyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2V0QmFja3JlZihleGVjLCBOKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4
cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0
cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+aW5wdXQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1
ZSByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
Qm9vbGVhbihhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+
bXVsdGlsaW5lKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0
TWF0Y2goRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0
Y2goRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDApKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2Rl
ZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
LT5nZXRMYXN0UGFyZW4oZXhlYykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3RvckxlZnRDb250ZXh0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVj
dG9yTGVmdENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29u
c3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRMZWZ0Q29udGV4dChleGVj
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpT
T2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2V0UmlnaHRDb250ZXh0KGV4ZWMpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rp
b25hcnkuY3BwCmluZGV4IGRmZjNkZmZmNzk4ODRmMDA3Y2E2OTY1ZjQ1MDQzMjFjNGM3M2U0NTYu
LjYyY2NkMTc4ZGIzYmUyMWFhYjNiYWJjZDc0MzI4YTFkYzFkY2JkNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5LmNwcApAQCAtOTUsMTMgKzk1LDcgQEAgYm9vbCBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25h
cnk6OmdldEFsZ29yaXRobUlkZW50aWZpZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHUKIAogc3Rh
dGljIEpTVmFsdWUgZ2V0UHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0
LCBjb25zdCBjaGFyKiBuYW1lKQogewotICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50
aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgbmFtZSk7Ci0gICAgUHJvcGVydHlTbG90IHNsb3Qob2Jq
ZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKLQotICAgIGlmIChv
YmplY3QtPmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudGlmaWVyLCBzbG90KSkKLSAgICAgICAg
cmV0dXJuIHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnRpZmllcik7Ci0KLSAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKKyAgICByZXR1cm4gb2JqZWN0LT5nZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyhleGVjLCBuYW1lKSk7CiB9CiAKIHN0YXRpYyBib29sIGdldEhhc2hBbGdvcml0aG0o
SlNEaWN0aW9uYXJ5JiBkaWN0aW9uYXJ5LCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyJiByZXN1
bHQsIEhhc2hSZXF1aXJlbWVudCBpc1JlcXVpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaAppbmRleCBmOWNhM2JmMmYwMjlkZWFhYjFhZDhkMjFiN2E2OWYyOGU3
YzZjMDZmLi45MDMyNmYxN2I0ODBlNTMwMWM0Y2IyZmI1YWVjYzIwMjQwMDE1NjI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtMzA1LDcgKzMwNSw3IEBA
IFN0cmluZyBwcm9wZXJ0eU5hbWVUb1N0cmluZyhKU0M6OlByb3BlcnR5TmFtZSk7CiBBdG9taWNT
dHJpbmcgcHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcoSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBET01DbGFzcz4gY29uc3QgSlNDOjpIYXNoVGFibGVWYWx1ZSogZ2V0
U3RhdGljVmFsdWVTbG90RW50cnlXaXRob3V0Q2FjaGluZyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
UHJvcGVydHlOYW1lKTsKLXRlbXBsYXRlPEpTQzo6TmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+
IEpTQzo6RW5jb2RlZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6
SlNPYmplY3QqKTsKK3RlbXBsYXRlPEpTQzo6TmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+IEpT
Qzo6RW5jb2RlZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiAvLyBJ
bmxpbmUgZnVuY3Rpb25zIGFuZCB0ZW1wbGF0ZSBkZWZpbml0aW9ucy4KIApAQCAtNzg0LDcgKzc4
NCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIGNvbnN0IEpTQzo6SGFzaFRhYmxlVmFsdWUqIGdldFN0
YXRpY1ZhbHVlU2xvdEVudHJ5V2l0aG91dENhY2hpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LXRlbXBsYXRlPEpTQzo6TmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+
IEpTQzo6RW5jb2RlZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKQordGVtcGxhdGU8SlNDOjpOYXRpdmVGdW5jdGlv
biBuYXRpdmVGdW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBub25DYWNo
aW5nU3RhdGljRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SlNDOjpKU1ZhbHVlOjplbmNvZGUoSlNDOjpKU0Z1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBsZW5ndGgsIHByb3BlcnR5TmFtZS5wdWJsaWNO
YW1lKCksIG5hdGl2ZUZ1bmN0aW9uKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggYWM2MWZiYmJkN2JhYWUyYzQ5MzMwNzAz
ZGNiMDZkYjE2MmEyOWRkZC4uNmQ0YmUzZWI0MDNjOGNlYjMyZjcwM2RjNTMzMTgxY2ZhY2NhZjFm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIEpTRE9NV2luZG93Ojp2aXNpdEFkZGl0aW9uYWxD
aGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIH0KIAogI2lmIEVOQUJMRShVU0VSX01FU1NB
R0VfSEFORExFUlMpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dXZWJLaXQoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNP
YmplY3QqKQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93V2ViS2l0KEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
SlNET01XaW5kb3cqIGNhc3RlZFRoaXMgPSB0b0pTRE9NV2luZG93KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NU
b0RPTVdpbmRvdyhleGVjLCBjYXN0ZWRUaGlzLT53cmFwcGVkKCkpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKaW5kZXggZjI3YjBjNjAxNDRiNGMwZDdiNjU3
NDczYzY2MmQzMzI0YWVmNjE5Mi4uZTliZGI4ODljMDk5NTZkYTIzOGNmOGNkMWI3YzNkNTk5OWU4
MjI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCkBA
IC03NSw4ICs3NSwxMSBAQCBKU0RpY3Rpb25hcnk6OkdldFByb3BlcnR5UmVzdWx0IEpTRGljdGlv
bmFyeTo6dHJ5R2V0UHJvcGVydHkoY29uc3QgY2hhciogcHJvcGVydAogICAgIElkZW50aWZpZXIg
aWRlbnRpZmllciA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcobV9leGVjLCBwcm9wZXJ0eU5hbWUp
OwogICAgIFByb3BlcnR5U2xvdCBzbG90KG1faW5pdGlhbGl6ZXJPYmplY3QuZ2V0KCksIFByb3Bl
cnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwogCi0gICAgaWYgKCFtX2luaXRpYWxp
emVyT2JqZWN0LmdldCgpLT5nZXRQcm9wZXJ0eVNsb3QobV9leGVjLCBpZGVudGlmaWVyLCBzbG90
KSkKKyAgICBpZiAoIW1faW5pdGlhbGl6ZXJPYmplY3QuZ2V0KCktPmdldFByb3BlcnR5U2xvdCht
X2V4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKSB7CisgICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvblRocm93bjsKICAgICAgICAgcmV0
dXJuIE5vUHJvcGVydHlGb3VuZDsKKyAgICB9CiAKICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRp
b24oKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvblRocm93bjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4
IDMwZWRhZjdlY2M5ODcyZDRlZDI5ZWNjYjNiY2QyNzBkYTEwNjc5NjAuLjI4NjUzNzJlOWFlNzFm
NGE1Y2E1MDRlZTA4NDk1NWFiNWViMTRkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAtOTQsNyArOTQs
NyBAQCBKU09iamVjdCogcGx1Z2luU2NyaXB0T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNIVE1M
RWxlbWVudCoganNIVE1MRWxlbWVudCkKICAgICByZXR1cm4gaW5zdGFuY2UtPmNyZWF0ZVJ1bnRp
bWVPYmplY3QoZXhlYyk7CiB9CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBwbHVnaW5FbGVtZW50UHJv
cGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIHBsdWdp
bkVsZW1lbnRQcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKIAogICAgIEpTSFRNTEVsZW1l
bnQqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTSFRNTEVsZW1lbnQqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oCmluZGV4IGM2NGVkYmYxZTIxYTUyMDJkMzc1ZjE0
NzVjMzU2YWM3MmMyODY4YWMuLjE4NTEyYmQ0NGQ2YjNmN2VmN2JkODA5YzdmMDMwZmM4ZGZiOTA2
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVu
dEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxl
bWVudEZ1bmN0aW9ucy5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZSogcGx1Z2luSW5zdGFuY2UoSFRNTEVsZW1lbnQmKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTT2JqZWN0KiBwbHVnaW5TY3JpcHRPYmplY3QoSlND
OjpFeGVjU3RhdGUqLCBKU0hUTUxFbGVtZW50Kik7CiAKLSAgICBKU0M6OkVuY29kZWRKU1ZhbHVl
IHBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CisgICAgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAgICAgYm9vbCBwbHVn
aW5FbGVtZW50Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQ
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90JiwgSlNIVE1MRWxlbWVudCopOwogICAgIGJv
b2wgcGx1Z2luRWxlbWVudEN1c3RvbVB1dChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlO
YW1lLCBKU0M6OkpTVmFsdWUsIEpTSFRNTEVsZW1lbnQqLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYs
IGJvb2wmIHB1dFJlc3VsdCk7CiAgICAgSlNDOjpDYWxsVHlwZSBwbHVnaW5FbGVtZW50R2V0Q2Fs
bERhdGEoSlNIVE1MRWxlbWVudCosIEpTQzo6Q2FsbERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMDE5ZmY2MTRh
YmZkYWRlYWVkZjkwMTkzZTEwYWZhYjg3ZjYxZmI3MS4uYWRkOWExZmQzMmMxY2RhN2Y4Nzk5MmFh
ZTRiZjBjNzJjNTFiMDQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTE1MDcsNyArMTUwNyw3IEBAIHN1YiBHZW5lcmF0
ZUhlYWRlcgogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0
b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAg
ICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31c
biIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRB
dHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwot
ICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtn
ZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6SlNPYmplY3QqKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBp
ZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKICAgICAgICAgICAgICAgICBteSAkc2V0dGVy
ID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmli
dXRlKTsKICAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiYm9vbCAke3NldHRl
cn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTtcbiIpOwpAQCAtMjA2OCw3ICsyMDY4LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5H
ZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYg
JGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0
ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpT
Qzo6SlNPYmplY3QqKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6
OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIpOwogICAgICAgICAgICAgaWYgKCFJc1JlYWRv
bmx5KCRhdHRyaWJ1dGUpKSB7CiAgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJp
YnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7c2V0dGVyfShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CkBA
IC0yMDc4LDcgKzIwNzgsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAK
ICAgICAgICAgaWYgKE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkgewogICAg
ICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3Rv
ciI7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUg
JHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIpOwogICAgICAgICB9CiAK
ICAgICAgICAgbXkgJGNvbnN0cnVjdG9yRnVuY3Rpb25OYW1lID0gInNldEpTIiAuICRpbnRlcmZh
Y2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKQEAgLTI1MzgsNyArMjUzOCw3IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJp
bmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRl
LT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHthdHRy
aWJ1dGVDb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmlu
ZzsKIAotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2dl
dEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KilcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7XG4iKTsKQEAgLTI3NDEsNyArMjc0MSw3
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIGlmIChOZWVkc0NvbnN0cnVj
dG9yUHJvcGVydHkoJGludGVyZmFjZSkpIHsKICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvckZ1
bmN0aW9uTmFtZSA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAKLSAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgJHtjb25zdHJ1Y3Rv
ckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KilcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNE
eW5hbWljQ2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChVTkxJ
S0VMWSghZG9tT2JqZWN0KSlcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXku
Y3BwCmluZGV4IDc1NjExZTQyOTJkODZkYTIxNWU1ZGRmMGRkZGVlNGUzMTcyYzY0NGUuLmM1YjNj
NGY3ZTdhMjE3OTI3MTIxYjNjN2U3YzBmMWE0OTY3MWI2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBSdW50aW1lQXJyYXk6
OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQogICAgIHN0YXRpY19jYXN0PFJ1bnRpbWVBcnJheSo+KGNl
bGwpLT5SdW50aW1lQXJyYXk6On5SdW50aW1lQXJyYXkoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
UnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgUnVu
dGltZUFycmF5OjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3Qg
PSBqc0R5bmFtaWNDYXN0PFJ1bnRpbWVBcnJheSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoIXRoaXNPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXku
aAppbmRleCBkYTUxNjA1YmQ1NjI0ZDc0MGY1ZDAxMDJmMjM0ZmVlNTIxY2RhMDRhLi4wMThjMTMy
NzhkYmEzZGQwMzE3MWU1M2VmYzBhZDdkZjBlMTA3ZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX2FycmF5LmgKQEAgLTgzLDcgKzgzLDcgQEAgY2xhc3MgUnVudGltZUFycmF5IDogcHVi
bGljIEpTQXJyYXkgewogCiBwcml2YXRlOgogICAgIFJ1bnRpbWVBcnJheShFeGVjU3RhdGUqLCBT
dHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CisgICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKTsKIAogICAgIEJpbmRpbmdzQXJyYXkqIG1fYXJyYXk7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKaW5kZXggYTM3Yzg4ZDA5Yzc4MmVm
MTFjNTgwNjVhMWEyM2QzYzZlNGVhZTg2Yy4uYWUyYjJiOWJjOTNlOTI3M2NmYWIyZDFmN2Q3ZWQ0
MGVhMTNiMDJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0
aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCkBA
IC01NCw3ICs1NCw3IEBAIHZvaWQgUnVudGltZU1ldGhvZDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBjb25zdCBTdHJpbmcmIGlkZW50KQogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU1ldGhvZDo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikK
K0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVNZXRob2Q6Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFJ1bnRp
bWVNZXRob2QqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJ1bnRpbWVNZXRob2QqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCF0aGlzT2JqZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAppbmRleCAyMzQyMjNlM2VmYjMwZjY0ZjcxMjRmN2I3
MzI5NjVmOWZhYWY2YjJkLi5kODZkNTk0NzVlMGE5NzUxN2MwMTM2YmFiMTA2ZjJhMDdjMTkyNGUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApAQCAtNjYsNyArNjYsNyBA
QCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1lTWV0aG9kIDogcHVibGljIEludGVybmFsRnVu
Y3Rpb24gewogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAKIHByaXZhdGU6Ci0gICAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7
CiAKICAgICBCaW5kaW5nczo6TWV0aG9kKiBtX21ldGhvZDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCA0NmFhNDljYmZmMWZjZGNhNDIzYWFmNTJhMjJm
MTYwYTZlYjk3YTZiLi5hNTczZTA1ZDc1OWIwNzU3MGQyNjIxZDhlNjI2MDM2NDFjYmI0ZWI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTYyLDcgKzYyLDcg
QEAgdm9pZCBSdW50aW1lT2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBtX2luc3RhbmNlID0gbnVs
bHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RH
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmpl
Y3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIFJ1bnRpbWVPYmpl
Y3QqIHRoaXNPYmogPSBqc0Nhc3Q8UnVudGltZU9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlID0gdGhpc09iai0+bV9pbnN0
YW5jZTsKQEAgLTgwLDcgKzgwLDcgQEAgRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmFs
bGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWwKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVP
YmplY3Q6OmZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1
ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsgICAgCiAgICAgUnVu
dGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2Jq
LT5tX2luc3RhbmNlOwpAQCAtOTksNyArOTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2Jq
ZWN0OjpmaWVsZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
UnVudGltZU9iamVjdDo6bWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNv
ZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgUnVudGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0
aGlzT2JqLT5tX2luc3RhbmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApp
bmRleCBjY2E3NDZlYmVlNTI2YWUxMDM5M2ZjNTU3NDJhYzQ0YWNlZDM0NjM0Li44MWQ0ZWJkM2I0
ZGJiNzA5OTExNWRhMTAyODJiMjlmYmZmYjE4NmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9vYmplY3QuaApAQCAtNzgsOSArNzgsOSBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50
aW1lT2JqZWN0IDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKFZNJik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZh
bGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUsIEpTT2JqZWN0Kik7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZpZWxkR2V0dGVyKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Ci0gICAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIG1ldGhvZEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZmllbGRHZXR0ZXIoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIG1ldGhvZEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
KTsKIAogICAgIFJlZlB0cjxJbnN0YW5jZT4gbV9pbnN0YW5jZTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5j
cHAKaW5kZXggYjVhNDYwNDEwMGYzNDFhYjY3NjNlZTUwMTgwMGRiOWViZmU5NjEwNy4uZDU2MWFl
MTQ4YzIyZjU5N2Q3ZjFhZTg0Y2I3ZDBkZjkxYzBjYTBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApA
QCAtNDM1LDcgKzQzNSw3IEBAIHZvaWQgSlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5CiAgICAgbnBuTWVtRnJl
ZShpZGVudGlmaWVycyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTTlBPYmplY3Q6OnByb3BlcnR5
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0
Ojpwcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU05QT2JqZWN0KiB0aGlzT2Jq
ID0ganNDYXN0PEpTTlBPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqLCBpbmZvKCkpOwpAQCAtNDc1LDcgKzQ3
NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTTlBPYmplY3Q6OnByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShwcm9wZXJ0eVZhbHVlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6bWV0aG9k
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0
OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNOUE9iamVjdCogdGhpc09iaiA9
IGpzQ2FzdDxKU05QT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iaiwgaW5mbygpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCmlu
ZGV4IDM4NTc4MmM4ZTY4YmRjNWExM2Y3ODU0MjkzMTVmNjk5MmY0ZTQzMjAuLjhiYWZlYjA2MGEy
MTA2NmQ4ZWFhNjA4NzRjMDNhYzk5ZjBjZjRiZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaApAQCAtOTQsOCAr
OTQsOCBAQCBjbGFzcyBKU05QT2JqZWN0IDogcHVibGljIEpTQzo6SlNEZXN0cnVjdGlibGVPYmpl
Y3QgewogCiAgICAgc3RhdGljIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJh
dGlvbk1vZGUpOwogCi0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgcHJvcGVydHlHZXR0
ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSwgSlNDOjpKU09iamVjdCopOwotICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIG1ldGhv
ZEdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CisgICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUg
cHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0
dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiB0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihK
U0M6OkV4ZWNTdGF0ZSopOwogCiAgICAgTlBSdW50aW1lT2JqZWN0TWFwKiBtX29iamVjdE1hcDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280032</attachid>
            <date>2016-05-28 01:09:50 -0700</date>
            <delta_ts>2016-06-03 12:16:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157080-20160528171101.patch</filename>
            <type>text/plain</type>
            <size>56175</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
OTEyZTlhN2Q2OWU4YTZjMzQ5YjUzZmQ4Zjc2M2JjNzQ5MDliMjY0Li43NjEyZDUyYzhiNjAwYzk1
Njk1OGI4NTRlNGM4NjdjNTU4NzIyNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAxNi0wNS0yOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBDaGFuZ2UgUHJveHlPYmplY3QuW1tHZXRdXSBub3QgdG8gdXNlIGN1
c3RvbSBhY2Nlc3NvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU3MDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6c3RhdGljRnVuY3Rpb25HZXR0ZXIpOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0
PFBhcmVudD46OmNhbGxiYWNrR2V0dGVyKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhp
Y0FjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbCk6Cisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAg
ICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAg
ICAoV1RGOjpDdXN0b21HZXR0ZXI6OmN1c3RvbUdldHRlcik6CisgICAgICAgIChXVEY6OlJ1bnRp
bWVBcnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5j
cHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAg
ICogcnVudGltZS9KU0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmJv
dW5kU2xvdEJhc2VGdW5jdGlvbkNhbGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcik6CisgICAgICAg
IChKU0M6OkpTRnVuY3Rpb246OmNhbGxlckdldHRlcik6CisgICAgICAgICogcnVudGltZS9KU0Z1
bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJh
eVZpZXdXaXRoQXJndW1lbnRzKToKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNl
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Y2FsbGJhY2tHZXR0ZXIpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xkZXI6
OmFwcGVuZE5leHRQcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUu
Y3BwOgorICAgICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICog
cnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6OmN1
c3RvbUdldHRlcik6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuaDoKKyAgICAgICAg
KEpTQzo6UHJvcGVydHlTbG90Ojp0aGlzVmFsdWUpOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpwZXJmb3JtUHJveHlHZXQpOgorICAgICAgICAoSlND
OjpQcm94eU9iamVjdDo6cGVyZm9ybUdldCk6CisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RDb21tb24pOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3Qu
aDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1
Y3RvcklucHV0KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUpOgor
ICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaCk6CisgICAgICAgIChKU0M6
OnJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3Ry
dWN0b3JMZWZ0Q29udGV4dCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yUmlnaHRD
b250ZXh0KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWZyb20tc2NvcGUtZHluYW1pYy1v
bnRvLXByb3h5LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3Vs
ZFRocm93LmhhbmRsZXIuaGFzKToKKyAgICAgICAgKGhhbmRsZXIuaGFzKToKKyAgICAgICAgKHRy
eS5oYW5kbGVyLmhhcyk6CisKIDIwMTYtMDUtMjcgIENhaXRsaW4gUG90dGVyICA8Y2FpdHBAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbSlNDXSBpbXBsZW1lbnQgYXN5bmMgZnVuY3Rpb25zIHByb3Bv
c2FsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNDEzNzkyZjgxOGM4YjNhM2Y5OTRlN2E5ZTE0MGEzOGMwNmY5NWU3
MS4uOTU1NzE5ODRiYzZkYzhiOTk0MTAxYjIzN2Y3NjIwYmE4MjkzMDg5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM2IEBACisyMDE2LTA1LTI4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIENoYW5nZSBQcm94eU9iamVjdC5bW0dldF1dIG5vdCB0byB1
c2UgY3VzdG9tIGFjY2Vzc29yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTcwODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpnZXRQcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpub25DYWNoaW5nU3RhdGljRnVuY3Rp
b25HZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93V2ViS2l0KToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEaWN0aW9uYXJ5Ojp0
cnlHZXRQcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVu
Y3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRl
cik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAg
ICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJh
eTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAg
ICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVN
ZXRob2Q6Omxlbmd0aEdldHRlcik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6
CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKToKKyAgICAgICAgKEpT
Qzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0dGVyKToKKyAgICAgICAgKEpTQzo6
QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6Om1ldGhvZEdldHRlcik6CisgICAgICAgICogYnJpZGdl
L3J1bnRpbWVfb2JqZWN0Lmg6CisKIDIwMTYtMDUtMjcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE5MDU3NCk6IFN3aXBlIHNu
YXBzaG90cyBhcmUgYWx3YXlzIGJsYWNrIG9uIGlQaG9uZSA1CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWEwY2M5
MDIxODQ1OTdhNzI3NWIxNDNmMjRlYWU3MThkYTBlM2QwOC4uM2EzMGI3Y2NlNzk3OWU5NDAxNThi
YmNjODViYjMyZTVjZDljZGU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA1
LTI4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENo
YW5nZSBQcm94eU9iamVjdC5bW0dldF1dIG5vdCB0byB1c2UgY3VzdG9tIGFjY2Vzc29yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcwODAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE9i
amVjdDo6cHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjptZXRo
b2RHZXR0ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0Lmg6CisKIDIwMTYtMDUtMjcgIENhaXRsaW4gUG90dGVyICA8Y2FpdHBAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbSlNDXSBpbXBsZW1lbnQgYXN5bmMgZnVuY3Rpb25zIHByb3Bvc2FsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDVlMDMzZjhl
M2MyZWRmYzUzMTgzYjgxYzEzNWUwY2Y1ZWM4ZTQ1MGMuLmU5NTYzZjU0Y2VhOGIyNjNiMTQzMzU2
NzIxZDRjZGRkNzljNWU0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5oCkBAIC0yMTEsOCArMjExLDggQEAgY2xhc3MgSlNDYWxsYmFja09iamVjdCA6
IHB1YmxpYyBQYXJlbnQgewogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdChFeGVjU3RhdGUqKTsKICAgIAogICAgIEpTVmFsdWUgZ2V0U3RhdGljVmFsdWUo
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3Rh
dGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSwgSlNPYmplY3QqKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKKyAg
ICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJhY2tPYmplY3REYXRhPiBtX2NhbGxiYWNr
T2JqZWN0RGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
YWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGIyYmNmNDUzYTZiMThiOTU3Njc2ZjdmYjA0
ZDMxNzAxMjZhNmU3ZmQuLmE1NTM3MjM0YmIzMmNhNjg2ZGQwNmIyYWZlOWEwN2E5ZDAyNTdmMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oCkBAIC01OTksNyArNTk5LDcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0
PFBhcmVudD46OmdldFN0YXRpY1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHAK
IH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tP
YmplY3Q8UGFyZW50Pjo6c3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KikKK0VuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6c3RhdGljRnVuY3Rp
b25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNDYWxsYmFja09iamVjdCogdGhpc09iaiA9
IGFzQ2FsbGJhY2tPYmplY3QodGhpc1ZhbHVlKTsKICAgICAKQEAgLTYyNyw3ICs2MjcsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgRQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotRW5j
b2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsYmFja0dldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJl
bnQ+OjpjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU0NhbGxiYWNrT2JqZWN0
KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdCh0aGlzVmFsdWUpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKaW5k
ZXggNGFhZWQ4ZTlhNmQ1YzJiMDA5YmVlOTc3Mzc4YjdlMTA3YTIwMjUxMC4uYWM1MjBjZDMzZTkx
MzlkYzNkNWY0ZTBjMWE4OGNjM2FkYmNlNjZlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCkBAIC0xMDg0LDcgKzEwODQs
NyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NHZW5lcmF0aW9uU3RhdGUm
IHN0YXRlKQogICAgICAgICAgICAgLy8gdG8gbWFrZSBzb21lIHNwYWNlIGhlcmUuCiAgICAgICAg
ICAgICBqaXQubWFrZVNwYWNlT25TdGFja0ZvckNDYWxsKCk7CiAKLSAgICAgICAgICAgIC8vIGdl
dHRlcjogRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCogc2xvdEJhc2UpOworICAg
ICAgICAgICAgLy8gZ2V0dGVyOiBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogICAgICAgICAg
ICAgLy8gc2V0dGVyOiB2b2lkICgqUHV0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSk7CiAgICAgICAgICAgICAvLyBD
dXN0b20gdmFsdWVzIGFyZSBwYXNzZWQgdGhlIHNsb3RCYXNlICh0aGUgcHJvcGVydHkgaG9sZGVy
KSwgY3VzdG9tIGFjY2Vzc29ycyBhcmUgcGFzc2VkIHRoZSB0aGlzVmF1bGUgKHJlY2lldmVyKS4K
ICAgICAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBkaWZmZXJlbmNlcyBpbiBjdXN0b20g
dmFsdWVzIGFuZCBjdXN0b20gYWNjZXNzb3JzLgpAQCAtMTA5NCw4ICsxMDk0LDcgQEAgdm9pZCBB
Y2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAg
ICAgICAgICAgIGlmIChtX3R5cGUgPT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1
c3RvbUFjY2Vzc29yR2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgYmFzZUZvckN1c3RvbVZhbHVlLAot
ICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1w
bCgpKSwKLSAgICAgICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUik7CisgICAgICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpKTsKICAg
ICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYmFzZUZvckN1c3RvbVZhbHVlLCB2YWx1ZVJlZ3MuZ3ByKCkpOwogI2Vsc2UKQEAg
LTExMDMsOCArMTEwMiw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dl
bmVyYXRpb25TdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgRUFCSV8zMkJJVF9EVU1NWV9BUkcg
YmFzZUZvckN1c3RvbVZhbHVlLAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAgICAgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSksCi0gICAgICAgICAgICAgICAgICAg
IGJhc2VGb3JBY2Nlc3NHUFIpOworICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCiAgICAgICAgICAgICAg
ICAgICAgIEVBQklfMzJCSVRfRFVNTVlfQVJHIGJhc2VGb3JDdXN0b21WYWx1ZSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGE1ZDBkMDQxNGRkOWFk
NzkxMDIwYjNkMDU2ZjMyYzljNzM3OWIzMmIuLjBkOTlkNzM1ZTdkNGNlYzJhZTg1ODljN2FlODE5
M2Y0MTA4MWI3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcApAQCAtMTYyNyw2ICsxNjI3LDggQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25HZXREeW5hbWljVmFyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHMKIAogICAg
IFByb3BlcnR5U2xvdCBzbG90KHNjb3BlLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlw
ZTo6R2V0KTsKICAgICBpZiAoIXNjb3BlLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQsIHNs
b3QpKSB7CisgICAgICAgIGlmICh2bS5leGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIGlmIChnZXRQdXRJbmZvLnJl
c29sdmVNb2RlKCkgPT0gVGhyb3dJZk5vdEZvdW5kKQogICAgICAgICAgICAgdm0udGhyb3dFeGNl
cHRpb24oZXhlYywgY3JlYXRlVW5kZWZpbmVkVmFyaWFibGVFcnJvcihleGVjLCBpZGVudCkpOwog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXggODRi
MTIxMDM4MmFhNWU3YmI4MWE5OTU5ZDRlNGNmYTZmZDFiNjk0My4uZGIxMWZkZDk0NjEwNTY5MGJl
NDM0ZmUzNmE5ODg4ZTEwMDA1ODI2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC04NjAsNiArODYwLDggQEAgSlNWYWx1ZSBJ
bnRlcnByZXRlcjo6ZXhlY3V0ZShQcm9ncmFtRXhlY3V0YWJsZSogcHJvZ3JhbSwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEoKICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QoZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0
eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICghZ2xvYmFsT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoY2FsbEZyYW1lLCBKU09OUFBhdGhb
aV0ubV9wYXRoRW50cnlOYW1lLCBzbG90KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoZW50cnkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxs
RnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBjcmVhdGVVbmRlZmluZWRWYXJp
YWJsZUVycm9yKGNhbGxGcmFtZSwgSlNPTlBQYXRoW2ldLm1fcGF0aEVudHJ5TmFtZSkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkSlNPTlA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCA2ZThhMDg5OWZkMjQ4OWY0OGUz
YWI0YWRkNWQ4NWRmMjYwYzQ4YzM1Li4wODliMTFhYjkyNGVjMWY5YWRjYjI4YWJkYTVhNjg5OTA2
NTRkZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAK
QEAgLTI0NCwxMSArMjQ0LDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0QnlJZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlCiAgICAgTE9HX0lD
KChJQ0V2ZW50OjpPcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGJhc2VWYWx1ZS5jbGFzc0luZm9P
ck51bGwoKSwgaWRlbnQpKTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUsIFByb3Bl
cnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwogICAgIAotICAgIGJvb2wgaGFzUmVz
dWx0ID0gYmFzZVZhbHVlLmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudCwgc2xvdCk7CisgICAg
SlNWYWx1ZSByZXN1bHQgPSBiYXNlVmFsdWUuZ2V0KGV4ZWMsIGlkZW50LCBzbG90KTsKKyAgICBp
ZiAodm0tPmV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJDYWNoaW5nKGJhc2VWYWx1ZS5z
dHJ1Y3R1cmVPck51bGwoKSkpCiAgICAgICAgIHJlcGF0Y2hHZXRCeUlEKGV4ZWMsIGJhc2VWYWx1
ZSwgaWRlbnQsIHNsb3QsICpzdHViSW5mbywgR2V0QnlJREtpbmQ6Ok5vcm1hbCk7Ci0gICAgCi0g
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShoYXNSZXN1bHQ/IHNsb3QuZ2V0VmFsdWUoZXhlYywg
aWRlbnQpIDoganNVbmRlZmluZWQoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluT3B0aW1p
emUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEpTQ2VsbCog
YmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGtleSkKQEAgLTIwMjcsNiArMjAyOCw4IEBAIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0RnJvbVNjb3BlKEV4ZWNTdGF0ZSog
ZXhlYywgSW5zdHJ1Y3Rpb24qCiAKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChzY29wZSwgUHJvcGVy
dHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7CiAgICAgaWYgKCFzY29wZS0+Z2V0UHJv
cGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KSkgeworICAgICAgICBpZiAodm0uZXhjZXB0aW9u
KCkpCisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgICAgICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgpID09IFRocm93SWZOb3RGb3VuZCkK
ICAgICAgICAgICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVVuZGVmaW5lZFZhcmlh
YmxlRXJyb3IoZXhlYywgaWRlbnQpKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggYmE4NWEyZmJiMGU5YTE5ZjEw
YTcxMzhkNTVkMjk5MDQyYTg2NzNiOS4uMzMzZmRlMjVjZWQyOTZlM2I3MDA1NzQ5YTcyYTAzYTQz
NDVmNDU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTM1OCw3ICszNTgsNyBAQCBjbGFzcyBD
dXN0b21HZXR0ZXIgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgfQogCiBwcml2YXRl
OgotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorICAg
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAgICAgIEN1c3Rv
bUdldHRlciogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8Q3VzdG9tR2V0dGVyKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgICAgICBpZiAoIXRoaXNPYmplY3QpCkBAIC00NjMs
NyArNDYzLDcgQEAgY2xhc3MgUnVudGltZUFycmF5IDogcHVibGljIEpTQXJyYXkgewogICAgIHsK
ICAgICB9CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KikKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAg
ICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJ1bnRpbWVBcnJheSo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICAgICAgaWYgKCF0aGlzT2JqZWN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXgg
ZWJhMjA1YjJiNmY4MmQ5Mjk4Yzc5Mzc5OTYwZTZjMDM4M2MwY2E3Ni4uN2QwM2UwNmFiNmQwNTVh
OTRhNjJkOGRlODc3ZmUyYjY2NzRkZTBmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC0xNTIyLDYgKzE1MjIsNyBAQCBMTElOVF9TTE9X
X1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X2Zyb21fc2NvcGUpCiAKICAgICBQcm9wZXJ0eVNsb3Qg
c2xvdChzY29wZSwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7CiAgICAg
aWYgKCFzY29wZS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KSkgeworICAgICAg
ICBMTElOVF9DSEVDS19FWENFUFRJT04oKTsKICAgICAgICAgaWYgKGdldFB1dEluZm8ucmVzb2x2
ZU1vZGUoKSA9PSBUaHJvd0lmTm90Rm91bmQpCiAgICAgICAgICAgICBMTElOVF9SRVRVUk4oZXhl
Yy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVVbmRlZmluZWRWYXJpYWJsZUVycm9y
KGV4ZWMsIGlkZW50KSkpOwogICAgICAgICBMTElOVF9SRVRVUk4oanNVbmRlZmluZWQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kU2xvdEJhc2VG
dW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kU2xvdEJh
c2VGdW5jdGlvbi5jcHAKaW5kZXggMmQ2N2U0MzE3MWUyZGQ2Yzk0NTA4NzZjOWYyMmQyMWQzNWVk
YjQ0ZS4uMWYzMzU2MjY3ZmFmYjdkMzA1ZDk2M2FhYTkwN2ZlMmY0YmU2NGUwZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRTbG90QmFzZUZ1
bmN0aW9uLmNwcApAQCAtNTEsNyArNTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGJvdW5kU2xvdEJhc2VGdW5jdGlvbkNhbGwoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCiAgICAgY29uc3QgU3RyaW5nJiBu
YW1lID0gYm91bmRTbG90QmFzZUZ1bmN0aW9uLT5uYW1lKCk7Ci0gICAgcmV0dXJuIGdldHRlcihl
eGVjLCBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dGhpc1ZhbHVlKCkpLCBQcm9wZXJ0eU5hbWUoSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBuYW1lKSksIGJhc2VPYmplY3QpOworICAgIHJldHVy
biBnZXR0ZXIoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNWYWx1ZSgpKSwgUHJvcGVy
dHlOYW1lKElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgbmFtZSkpKTsKIH0KIAogSlNCb3Vu
ZFNsb3RCYXNlRnVuY3Rpb246OkpTQm91bmRTbG90QmFzZUZ1bmN0aW9uKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFR5cGUg
dHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5k
ZXggMzE3NGFiYzg3OWQ2Mjg2OWVkMDA5ZWJlYWY4MzA2MDcwNGRjOGMyNi4uOWU1OTI3OGEwZWQ5
NjIwOTU0NmVhYzEyOTcxODM4NGY4OTJiMjU0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTI2NCw3ICsyNjQsNyBAQCBzdGF0aWMgSlNWYWx1
ZSByZXRyaWV2ZUFyZ3VtZW50cyhFeGVjU3RhdGUqIGV4ZWMsIEpTRnVuY3Rpb24qIGZ1bmN0aW9u
T2JqKQogICAgIHJldHVybiBmdW5jdG9yLnJlc3VsdCgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0Z1bmN0aW9uOjphcmd1bWVudHNHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgSlNG
dW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGpz
Q2FzdDxKU0Z1bmN0aW9uKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIEFTU0VS
VCghdGhpc09iai0+aXNIb3N0RnVuY3Rpb24oKSk7CkBAIC0zMjYsNyArMzI2LDcgQEAgc3RhdGlj
IEdldHRlclNldHRlciogZ2V0VGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoSlNGdW5jdGlvbiog
ZnVuY3Rpb24pCiAgICAgICAgIDogZnVuY3Rpb24tPmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVF
cnJvckFyZ3VtZW50c0FuZENhbGxlckluU3RyaWN0TW9kZUdldHRlclNldHRlcigpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2Rl
ZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNGdW5jdGlvbiogdGhp
c09iaiA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIEFTU0VSVCghdGhpc09iai0+aXNIb3N0RnVuY3Rpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggMzA3ZGVjMTNjNTVkZjFhZDIxMzlhMjgw
OTgwZGRmMmIzNzQxNDczNC4uMzAwNzBkMGQ2MWQ3ZTJiNmFkOGJhZGNiZmQxOTcxYWM3NzU3YjI0
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtMTk4
LDggKzE5OCwxMCBAQCBjbGFzcyBKU0Z1bmN0aW9uIDogcHVibGljIEpTQ2FsbGVlIHsKIAogICAg
IGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAKLSAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgYXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNhbGxlckdl
dHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCop
OworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHNHZXR0ZXIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGNhbGxlckdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
KyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBuYW1l
R2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogCiAgICAg
V3JpdGVCYXJyaWVyPEV4ZWN1dGFibGVCYXNlPiBtX2V4ZWN1dGFibGU7CiAgICAgV3JpdGVCYXJy
aWVyPEZ1bmN0aW9uUmFyZURhdGE+IG1fcmFyZURhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5s
aW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAppbmRleCBmM2M3YzY4MDg0ZThmM2ZkZjFiMWJmMmM2
ZWU4ZThiNDJjMDUxOGMyLi42ZTQ1OTgzMzdmNzZlNTFhZGQ4Y2I5M2QyNWY5MTJlODVlNDI4ODVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBl
ZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKQEAg
LTE1Miw2ICsxNTIsOCBAQCBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFy
cmF5Vmlld1dpdGhBcmd1bWVudHMoRXhlY1N0YXRlKiBleGVjLCBTdAogICAgICAgICBlbHNlIHsK
ICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBsZW5ndGhTbG90KG9iamVjdCwgUHJvcGVydHlTbG90
OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7CiAgICAgICAgICAgICBvYmplY3QtPmdldFByb3Bl
cnR5U2xvdChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGxlbmd0aFNsb3QpOworICAg
ICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgICAgICAgICBKU1ZhbHVlIGl0ZXJhdG9yRnVuYyA9IG9iamVjdC0+
Z2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sKTsKICAgICAgICAgICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNlT2JqZWN0LmNwcAppbmRleCA5ZTk5NDMy
NDY5NTRmMzAyY2YwZmU4MDg3NDBkNmUxMTQ3Njc2YTMzLi40MGRkYTczMzNmZjcyMGFkZjYwOThm
ZjQ3NzU3MmYxZWIxODZhZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU01vZHVsZU5hbWVzcGFjZU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwCkBAIC05Nyw3ICs5Nyw3IEBA
IHZvaWQgSlNNb2R1bGVOYW1lc3BhY2VPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxs
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+
bV9tb2R1bGVSZWNvcmQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFj
a0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU01vZHVsZU5hbWVzcGFjZU9iamVjdCogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU01vZHVsZU5hbWVzcGFjZU9iamVjdCo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gdGhpc09i
amVjdC0+bW9kdWxlUmVjb3JkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuY3BwCmluZGV4IGEwODEzMjFjYzljYTFiMDUzMGU1OGUxYzA4ZmVhOWU3YjIwMzZi
OWUuLjUwMmVkMzAzNjVkYTZlNWZjMDU0ZTZiNzAxNGUxZjU3ZjkxZTcwYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC00NzgsMTAgKzQ3OCwx
MCBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdp
ZmllciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1aQogICAgICAgICAgICAgUHJvcGVydHlTbG90IHNs
b3QobV9vYmplY3QuZ2V0KCksIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQp
OwogICAgICAgICAgICAgaWYgKG1fb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4KG1fb2JqZWN0LmdldCgpLCBleGVjLCBpbmRleCwgc2xvdCkpIHsKICAgICAg
ICAgICAgICAgICB2YWx1ZSA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgaW5kZXgpOwotICAgICAgICAg
ICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdmFsdWUgPSBq
c1VuZGVmaW5lZCgpOworICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIEFwcGVu
ZCB0aGUgc2VwYXJhdG9yIHN0cmluZy4KQEAgLTQ5NSw4ICs0OTUsMTEgQEAgYm9vbCBTdHJpbmdp
Zmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVy
LCBTdHJpbmdCdWkKICAgICAgICAgLy8gR2V0IHRoZSB2YWx1ZS4KICAgICAgICAgUHJvcGVydHlT
bG90IHNsb3QobV9vYmplY3QuZ2V0KCksIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBl
OjpHZXQpOwogICAgICAgICBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUgPSBtX3Byb3BlcnR5TmFt
ZXMtPnByb3BlcnR5TmFtZVZlY3RvcigpW2luZGV4XTsKLSAgICAgICAgaWYgKCFtX29iamVjdC0+
bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90KG1fb2JqZWN0LmdldCgpLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICBpZiAoIW1fb2JqZWN0LT5tZXRob2RUYWJsZSgp
LT5nZXRPd25Qcm9wZXJ0eVNsb3QobV9vYmplY3QuZ2V0KCksIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCkpIHsKKyAgICAgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
fQogICAgICAgICBKU1ZhbHVlIHZhbHVlID0gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJv
dG90eXBlLmNwcAppbmRleCA1NWNmNWUyN2VhZDMwMGI0MDNmODNmNjE0YzkyYjNkMDYxZTM4MWU5
Li5mOGQzNGZkMTE4ZWQzZjc3NTE3NzEyNjc5OTZlMDhlNzZmOTY2MDk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAgLTI5Myw2
ICsyOTMsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1Rv
U3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAgICAgaWYgKHZt
LmV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVl
KCkpOwogCiAgICAgICAgIFN0cmluZyBuZXdTdHJpbmcgPSBXVEY6OnRyeU1ha2VTdHJpbmcoIltv
YmplY3QgIiwgdGhpc09iamVjdC0+bWV0aG9kVGFibGUoZXhlYy0+dm0oKSktPmNsYXNzTmFtZSh0
aGlzT2JqZWN0KSwgIl0iKTsKICAgICAgICAgaWYgKCFuZXdTdHJpbmcpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAppbmRleCBjNjg4MjQ0NWYwYmRh
YjUzM2E5NGU2YzEwNDg3YTM3ZTEyZTJkNTA1Li40OTZkMGFjNGNlZTQwYjlmMzEyNDgwMmYwOTg1
M2M4MjczNmNlMWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm9wZXJ0eVNsb3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3Bl
cnR5U2xvdC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmN1c3Rv
bUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIGMKICAg
ICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgZGlmZmVyZW5jZXMgaW4gY3VzdG9tIHZhbHVlcyBhbmQg
Y3VzdG9tIGFjY2Vzc29ycy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU4MDE0CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBtX2F0dHJpYnV0ZXMgJiBD
dXN0b21BY2Nlc3NvciA/IG1fdGhpc1ZhbHVlIDogSlNWYWx1ZShzbG90QmFzZSgpKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS5jdXN0b20uZ2V0VmFsdWUoZXhlYywgSlNWYWx1
ZTo6ZW5jb2RlKHRoaXNWYWx1ZSksIHByb3BlcnR5TmFtZSwgc2xvdEJhc2UoKSkpOworICAgIHJl
dHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbS5nZXRWYWx1ZShleGVjLCBKU1ZhbHVl
OjplbmNvZGUodGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1lKSk7CiB9CiAKIEpTVmFsdWUgUHJvcGVy
dHlTbG90OjpnZXRQdXJlUmVzdWx0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvcGVydHlTbG90LmgKaW5kZXggZWE1Y2M5ZGZmNzkwNGNmMGRhMTllYzk5ODE4MTU1
ZDdiM2Q4MTdjZS4uZDdkNzZjN2UzY2E2NWZkYWZlNWFjMjkzNWQ1MTg4OWRmYjU1ZDI2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKQEAgLTk0LDEy
ICs5NCw5IEBAIGNsYXNzIFByb3BlcnR5U2xvdCB7CiAgICAgewogICAgIH0KIAotICAgIC8vIFRo
ZXJlIGFyZSB0d28gdHlwZXMgb2YgY3VzdG9tIHByb3BlcnRpZXM6IGN1c3RvbSB2YWx1ZXMgYW5k
IGN1c3RvbSBhY2Nlc3NvcnMuCi0gICAgLy8gRm9yIHRoZSBzZWNvbmQgYXJndW1lbnQsIGN1c3Rv
bSB2YWx1ZXMgYXJlIHBhc3NlZCB0aGUgc2xvdEJhc2UgKHRoZSBwcm9wZXJ0eSBob2xkZXIpLCBj
dXN0b20gYWNjZXNzb3JzIGFyZSBwYXNzZWQgdGhlIHRoaXNWYXVsZSAocmVjaWV2ZXIpLgotICAg
IC8vIEFuZCB3aGVuIGdldHRpbmcgdGhlIHByb3BlcnR5IGRlc2NyaXB0b3IgZnJvbSB0aGVzZSBw
cm9wZXJ0aWVzLCBjdXN0b20gdmFsdWVzIHJldHVybiB0aGUgZGF0YSBkZXNjcmlwdG9yIHdoaWxl
IGN1c3RvbSBhY2Nlc3NvcnMgcmV0dXJuIHRoZSBhY2Nlc3NvciBkZXNjcmlwdG9yLgogICAgIC8v
IEZJWE1FOiBSZW1vdmUgdGhpcyBzbG90QmFzZSAvIHJlY2VpdmVyIGJlaGF2aW9yIGRpZmZlcmVu
Y2UgaW4gY3VzdG9tIHZhbHVlcyBhbmQgY3VzdG9tIGFjY2Vzc29ycy4KICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MDE0Ci0gICAgdHlwZWRlZiBFbmNv
ZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBzbG90QmFzZSk7CisgICAgdHlwZWRlZiBF
bmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogCiAgICAgSlNWYWx1ZSBnZXRWYWx1ZShFeGVjU3Rh
dGUqLCBQcm9wZXJ0eU5hbWUpIGNvbnN0OwogICAgIEpTVmFsdWUgZ2V0VmFsdWUoRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25zdDsKQEAgLTI0OSw2ICsyNDYsMTEgQEAgY2xh
c3MgUHJvcGVydHlTbG90IHsKICAgICAgICAgbV9vZmZzZXQgPSBvZmZzZXQ7CiAgICAgfQogCisg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdGhp
c1ZhbHVlOworICAgIH0KKwogICAgIHZvaWQgc2V0VGhpc1ZhbHVlKEpTVmFsdWUgdGhpc1ZhbHVl
KQogICAgIHsKICAgICAgICAgbV90aGlzVmFsdWUgPSB0aGlzVmFsdWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKaW5kZXggOTk4MzMzY2Q1NDM5ZjU5
ZGU1YTM3MGJiMDNlOTFjNWYyNGIzNTdmZi4uYzRjNTRiNjMzMjQyYzQyYWYxZmFkNWJhNzRmNzg1
ZGM2ZTcxMGFjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2Jq
ZWN0LmNwcApAQCAtOTIsMjIgKzkyLDIxIEBAIHZvaWQgUHJveHlPYmplY3Q6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHRhcmdldCwgSlNWYWx1CiAKIHN0
YXRpYyBjb25zdCBjaGFyKiBzX3Byb3h5QWxyZWFkeVJldm9rZWRFcnJvck1lc3NhZ2UgPSAiUHJv
eHkgaGFzIGFscmVhZHkgYmVlbiByZXZva2VkLiBObyBtb3JlIG9wZXJhdGlvbnMgYXJlIGFsbG93
ZWQgdG8gYmUgcGVyZm9ybWVkIG9uIGl0IjsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHBlcmZv
cm1Qcm94eUdldChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIHNsb3RCYXNlKQorc3RhdGljIEpTVmFs
dWUgcGVyZm9ybVByb3h5R2V0KEV4ZWNTdGF0ZSogZXhlYywgUHJveHlPYmplY3QqIHByb3h5T2Jq
ZWN0LCBKU1ZhbHVlIHJlY2VpdmVyLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgaWYgKCF2bS5pc1NhZmVUb1JlY3Vyc2UoKSkgewog
ICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihleGVjKTsKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAg
IH0KIAotICAgIFByb3h5T2JqZWN0KiBwcm94eU9iamVjdCA9IGpzQ2FzdDxQcm94eU9iamVjdCo+
KHNsb3RCYXNlKTsKICAgICBKU09iamVjdCogdGFyZ2V0ID0gcHJveHlPYmplY3QtPnRhcmdldCgp
OwogCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT51bmRlcnNjb3Jl
UHJvdG8pCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJveHlPYmplY3QtPnBlcmZv
cm1HZXRQcm90b3R5cGUoZXhlYykpOworICAgICAgICByZXR1cm4gcHJveHlPYmplY3QtPnBlcmZv
cm1HZXRQcm90b3R5cGUoZXhlYyk7CiAKICAgICBhdXRvIHBlcmZvcm1EZWZhdWx0R2V0ID0gWyZd
IHsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0YXJnZXQtPmdldChleGVjLCBwcm9w
ZXJ0eU5hbWUpKTsKKyAgICAgICAgcmV0dXJuIHRhcmdldC0+Z2V0KGV4ZWMsIHByb3BlcnR5TmFt
ZSk7CiAgICAgfTsKIAogICAgIGlmICh2bS5wcm9wZXJ0eU5hbWVzLT5pc1ByaXZhdGVOYW1lKElk
ZW50aWZpZXI6OmZyb21VaWQoJnZtLCBwcm9wZXJ0eU5hbWUudWlkKCkpKSkKQEAgLTExNSwxNCAr
MTE0LDE0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwZXJmb3JtUHJveHlHZXQoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsCiAKICAgICBKU1ZhbHVlIGhhbmRsZXJW
YWx1ZSA9IHByb3h5T2JqZWN0LT5oYW5kbGVyKCk7CiAgICAgaWYgKGhhbmRsZXJWYWx1ZS5pc051
bGwoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFs
KHNfcHJveHlBbHJlYWR5UmV2b2tlZEVycm9yTWVzc2FnZSkpOworICAgICAgICByZXR1cm4gdGhy
b3dUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKHNfcHJveHlBbHJlYWR5UmV2b2tlZEVycm9y
TWVzc2FnZSkpOwogCiAgICAgSlNPYmplY3QqIGhhbmRsZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPiho
YW5kbGVyVmFsdWUpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAgIENhbGxUeXBlIGNhbGxU
eXBlOwogICAgIEpTVmFsdWUgZ2V0SGFuZGxlciA9IGhhbmRsZXItPmdldE1ldGhvZChleGVjLCBj
YWxsRGF0YSwgY2FsbFR5cGUsIHZtLnByb3BlcnR5TmFtZXMtPmdldCwgQVNDSUlMaXRlcmFsKCIn
Z2V0JyBwcm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBvYmplY3Qgc2hvdWxkIGJlIGNhbGxh
YmxlIikpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CiAKICAgICBpZiAoZ2V0SGFuZGxlci5pc1VuZGVmaW5lZCgpKQogICAgICAgICByZXR1cm4g
cGVyZm9ybURlZmF1bHRHZXQoKTsKQEAgLTEzMCwyNiArMTI5LDM2IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBwZXJmb3JtUHJveHlHZXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsCiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOwogICAgIGFyZ3Vt
ZW50cy5hcHBlbmQodGFyZ2V0KTsKICAgICBhcmd1bWVudHMuYXBwZW5kKGlkZW50aWZpZXJUb1Nh
ZmVQdWJsaWNKU1ZhbHVlKHZtLCBJZGVudGlmaWVyOjpmcm9tVWlkKCZ2bSwgcHJvcGVydHlOYW1l
LnVpZCgpKSkpOwotICAgIGFyZ3VtZW50cy5hcHBlbmQoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOworICAgIGFyZ3VtZW50cy5hcHBlbmQocmVjZWl2ZXIpOwogICAgIEpTVmFsdWUgdHJhcFJl
c3VsdCA9IGNhbGwoZXhlYywgZ2V0SGFuZGxlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBoYW5kbGVy
LCBhcmd1bWVudHMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgZGVzY3JpcHRvcjsKICAgICBpZiAo
dGFyZ2V0LT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yKSkgewogICAgICAgICBpZiAoZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkgJiYg
IWRlc2NyaXB0b3IuY29uZmlndXJhYmxlKCkgJiYgIWRlc2NyaXB0b3Iud3JpdGFibGUoKSkgewog
ICAgICAgICAgICAgaWYgKCFzYW1lVmFsdWUoZXhlYywgZGVzY3JpcHRvci52YWx1ZSgpLCB0cmFw
UmVzdWx0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBB
U0NJSUxpdGVyYWwoIlByb3h5IGhhbmRsZXIncyAnZ2V0JyByZXN1bHQgb2YgYSBub24tY29uZmln
dXJhYmxlIGFuZCBub24td3JpdGFibGUgcHJvcGVydHkgc2hvdWxkIGJlIHRoZSBzYW1lIHZhbHVl
IGFzIHRoZSB0YXJnZXQncyBwcm9wZXJ0eSIpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhy
b3dUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJQcm94eSBoYW5kbGVyJ3MgJ2dldCcgcmVz
dWx0IG9mIGEgbm9uLWNvbmZpZ3VyYWJsZSBhbmQgbm9uLXdyaXRhYmxlIHByb3BlcnR5IHNob3Vs
ZCBiZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgdGFyZ2V0J3MgcHJvcGVydHkiKSk7CiAgICAgICAg
IH0gZWxzZSBpZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpICYmICFkZXNjcmlw
dG9yLmNvbmZpZ3VyYWJsZSgpICYmIGRlc2NyaXB0b3IuZ2V0dGVyKCkuaXNVbmRlZmluZWQoKSkg
ewogICAgICAgICAgICAgaWYgKCF0cmFwUmVzdWx0LmlzVW5kZWZpbmVkKCkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJQcm94eSBo
YW5kbGVyJ3MgJ2dldCcgcmVzdWx0IG9mIGEgbm9uLWNvbmZpZ3VyYWJsZSBhY2Nlc3NvciBwcm9w
ZXJ0eSB3aXRob3V0IGEgZ2V0dGVyIHNob3VsZCBiZSB1bmRlZmluZWQiKSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUHJveHkgaGFu
ZGxlcidzICdnZXQnIHJlc3VsdCBvZiBhIG5vbi1jb25maWd1cmFibGUgYWNjZXNzb3IgcHJvcGVy
dHkgd2l0aG91dCBhIGdldHRlciBzaG91bGQgYmUgdW5kZWZpbmVkIikpOwogICAgICAgICB9CiAg
ICAgfQogCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodHJhcFJlc3VsdCk7CisgICAgcmV0dXJu
IHRyYXBSZXN1bHQ7Cit9CisKK2Jvb2wgUHJveHlPYmplY3Q6OnBlcmZvcm1HZXQoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7
CisgICAgSlNWYWx1ZSByZXN1bHQgPSBwZXJmb3JtUHJveHlHZXQoZXhlYywgdGhpcywgc2xvdC50
aGlzVmFsdWUoKSwgcHJvcGVydHlOYW1lKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB1bnNpZ25lZCBpZ25vcmVkQXR0cmlidXRlcyA9
IDA7CisgICAgc2xvdC5zZXRWYWx1ZSh0aGlzLCBpZ25vcmVkQXR0cmlidXRlcywgcmVzdWx0KTsK
KyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBQcm94eU9iamVjdDo6cGVyZm9ybUludGVybmFs
TWV0aG9kR2V0T3duUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC0zMjIsOCArMzMxLDcgQEAgYm9vbCBQcm94
eU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90Q29tbW9uKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVy
dHlOYW1lIHByb3BlcnQKICAgICBzbG90LnNldElzVGFpbnRlZEJ5UHJveHkoKTsKICAgICBzd2l0
Y2ggKHNsb3QuaW50ZXJuYWxNZXRob2RUeXBlKCkpIHsKICAgICBjYXNlIFByb3BlcnR5U2xvdDo6
SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQ6Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIEN1
c3RvbUFjY2Vzc29yLCBwZXJmb3JtUHJveHlHZXQpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgcmV0dXJuIHBlcmZvcm1HZXQoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICBj
YXNlIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eToKICAg
ICAgICAgcmV0dXJuIHBlcmZvcm1JbnRlcm5hbE1ldGhvZEdldE93blByb3BlcnR5KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgY2FzZSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9k
VHlwZTo6SGFzUHJvcGVydHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm94eU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlP
YmplY3QuaAppbmRleCA2ZDExYWJmZGYxYWU2NTE0OTJlNDlmOTlkOWE1NjdhN2EwZDc4NzBiLi5m
YzFhOGU5NWQ2ZmFiNjZhMmUzMDM0NDIzMjI5MzY1MmNlMmE2MGM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgKQEAgLTk2LDYgKzk2LDcgQEAgY2xhc3Mg
UHJveHlPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAKICAgICBib29sIGdldE93
blByb3BlcnR5U2xvdENvbW1vbihFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYpOwogICAgIGJvb2wgcGVyZm9ybUludGVybmFsTWV0aG9kR2V0T3duUHJvcGVydHkoRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBib29sIHBlcmZvcm1HZXQo
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBib29sIHBlcmZv
cm1IYXNQcm9wZXJ0eShFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBEZWZhdWx0RGVsZXRlRnVuY3Rpb24+CiAgICAgYm9vbCBw
ZXJmb3JtRGVsZXRlKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgRGVmYXVsdERlbGV0ZUZ1bmN0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmNwcAppbmRleCAyNDNhMzVmNjE5ODRkMDE0NGJiMTZhNGE3ZDViOTRhY2MxY2M4ZmE2
Li5kMjM3ODliYzAzOTU2ZjQ4Y2RhOGJiZTczYzk2M2UxMGNkODIyZjUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0z
MSwxNCArMzEsMTQgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSByZWdFeHBDb25zdHJ1Y3RvcklucHV0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3Ry
dWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwg
SlNPYmplY3QqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RN
YXRjaChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGlu
ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3Rvckxhc3RQYXJlbihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
KTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogdGVtcGxhdGU8aW50IE4+Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
KTsKIAogc3RhdGljIGJvb2wgc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogc3RhdGljIGJvb2wgc2V0UmVnRXhwQ29u
c3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlKTsKQEAgLTE0NywzNyArMTQ3LDM3IEBAIEpTVmFsdWUgUmVnRXhwQ29uc3RydWN0b3I6Omdl
dFJpZ2h0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMpCiB9CiAKIHRlbXBsYXRlPGludCBOPgotRW5j
b2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpT
VmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRC
YWNrcmVmKGV4ZWMsIE4pKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJ
bnB1dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwg
SlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpLT5pbnB1dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGls
aW5lKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwQ29uc3RydWN0
b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5tdWx0aWxpbmUoKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVk
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkt
PmdldEJhY2tyZWYoZXhlYywgMCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3Rvckxhc3RQYXJlbihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ckxhc3RQYXJlbihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1
Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldExhc3RQYXJlbihleGVjKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3Qq
KQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSktPmdldExlZnRDb250ZXh0KGV4ZWMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRS
aWdodENvbnRleHQoZXhlYykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9nZXQtZnJvbS1zY29wZS1keW5hbWljLW9udG8tcHJveHkuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1mcm9tLXNjb3BlLWR5bmFtaWMtb250
by1wcm94eS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTcxNTYxZWYyYjYxZjVmOGIzNzQ4YzhiODg1MDU5NDUy
NDdjNTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9nZXQtZnJvbS1zY29wZS1keW5hbWljLW9udG8tcHJveHkuanMKQEAgLTAsMCArMSwxMDYg
QEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFs
ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgdmFsdWU6ICR7U3Ry
aW5nKGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yTWVz
c2FnZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAgIHZhciBlcnJvciA9IG51
bGw7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
ICAgZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlm
ICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicpOwor
ICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7Cit9CisKKy8vIExMSW50IHNs
b3cgcGF0aCBvcGVyYXRpb24uCitzaG91bGRUaHJvdyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIHRh
cmdldCA9IHt9OworICAgIHZhciBoYW5kbGVyID0geworICAgICAgICBoYXM6IGZ1bmN0aW9uIChy
ZWNlaXZlciwgbmFtZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdp
JzsKKyAgICAgICAgfSwKKyAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNl
aXZlcikKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdpJykKKyAgICAgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk5HIik7CisgICAgICAgICAgICByZXR1cm4gNDI7Cisg
ICAgICAgIH0KKyAgICB9OworICAgIHZhciBwcm94eSA9IG5ldyBQcm94eSh0YXJnZXQsIGhhbmRs
ZXIpOworICAgIHdpdGggKHByb3h5KSB7CisgICAgICAgIGk7CisgICAgfQorfSwgYEVycm9yOiBO
R2ApOworCisvLyBCYXNlbGluZSBKSVQgb3BlcmF0aW9uLgorc2hvdWxkVGhyb3coZnVuY3Rpb24g
KCkgeworICAgIHZhciBmbGFnID0gZmFsc2U7CisgICAgdmFyIHRhcmdldCA9IHt9OworICAgIHZh
ciBoYW5kbGVyID0geworICAgICAgICBoYXM6IGZ1bmN0aW9uIChyZWNlaXZlciwgbmFtZSkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdpJzsKKyAgICAgICAgfSwKKyAg
ICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZlcikKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdpJyAmJiBmbGFnKQorICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiTkciKTsKKyAgICAgICAgICAgIHJldHVybiA0MjsKKyAgICAgICAgfQor
ICAgIH07CisgICAgdmFyIHByb3h5ID0gbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAgICB3aXRoIChwcm94eSkgewor
ICAgICAgICAgICAgaTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PT0gMWUzKQorICAgICAg
ICAgICAgZmxhZyA9IHRydWU7CisgICAgfQorfSwgYEVycm9yOiBOR2ApOworCisvLyBERkcgSklU
IG9wZXJhdGlvbi4KK3ZhciB0aHJvd24gPSBudWxsOwordHJ5IHsKKyAgICAoKCkgPT4geworICAg
ICAgICB2YXIgZmxhZyA9IGZhbHNlOworICAgICAgICB2YXIgdGFyZ2V0ID0geworICAgICAgICAg
ICAgX19wcm90b19fOiBudWxsCisgICAgICAgIH07CisgICAgICAgIHZhciBoYW5kbGVyID0gewor
ICAgICAgICAgICAgaGFzOiBmdW5jdGlvbiAocmVjZWl2ZXIsIG5hbWUpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdhcmd1bWVudHMnOworICAgICAgICAg
ICAgfSwKKworICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZl
cikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2FyZ3VtZW50
cycgJiYgZmxhZykKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJORyIpOwor
ICAgICAgICAgICAgICAgIHJldHVybiA0MjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAg
ICAgICAgdmFyIHByb3h5ID0gbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7CisgICAgICAgIHBy
b3h5Ll9fcHJvdG9fXyA9IG51bGw7CisgICAgICAgIE9iamVjdC5wcm90b3R5cGUuX19wcm90b19f
ID0geworICAgICAgICAgICAgX19wcm90b19fOiBwcm94eSwKKyAgICAgICAgfTsKKyAgICAgICAg
KCgpID0+IHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAg
ICAgICAgICAgICAgICBhcmd1bWVudHM7CisgICAgICAgICAgICAgICAgaWYgKGkgPT09ICgxZTQg
LSAyKSkKKyAgICAgICAgICAgICAgICAgICAgZmxhZyA9IHRydWU7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0pKCk7CisgICAgfSkoKTsKK30gY2F0Y2ggKGUpIHsKKyAgICB0aHJvd24gPSBlOwor
fQorT2JqZWN0LnByb3RvdHlwZS5fX3Byb3RvX18gPSBudWxsOworc2hvdWxkQmUoU3RyaW5nKHRo
cm93biksIGBFcnJvcjogTkdgKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCmluZGV4IGRmZjNkZmZmNzk4
ODRmMDA3Y2E2OTY1ZjQ1MDQzMjFjNGM3M2U0NTYuLjYyY2NkMTc4ZGIzYmUyMWFhYjNiYWJjZDc0
MzI4YTFkYzFkY2JkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcApAQCAtOTUsMTMgKzk1LDcgQEAg
Ym9vbCBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmdldEFsZ29yaXRobUlkZW50aWZpZXIo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHUKIAogc3RhdGljIEpTVmFsdWUgZ2V0UHJvcGVydHkoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBjb25zdCBjaGFyKiBuYW1lKQogewotICAg
IElkZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgbmFt
ZSk7Ci0gICAgUHJvcGVydHlTbG90IHNsb3Qob2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFs
TWV0aG9kVHlwZTo6R2V0KTsKLQotICAgIGlmIChvYmplY3QtPmdldFByb3BlcnR5U2xvdChleGVj
LCBpZGVudGlmaWVyLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUoZXhlYywg
aWRlbnRpZmllcik7Ci0KLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICByZXR1cm4gb2Jq
ZWN0LT5nZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBuYW1lKSk7CiB9CiAK
IHN0YXRpYyBib29sIGdldEhhc2hBbGdvcml0aG0oSlNEaWN0aW9uYXJ5JiBkaWN0aW9uYXJ5LCBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyJiByZXN1bHQsIEhhc2hSZXF1aXJlbWVudCBpc1JlcXVp
cmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5n
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCBmOWNh
M2JmMmYwMjlkZWFhYjFhZDhkMjFiN2E2OWYyOGU3YzZjMDZmLi45MDMyNmYxN2I0ODBlNTMwMWM0
Y2IyZmI1YWVjYzIwMjQwMDE1NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaApAQCAtMzA1LDcgKzMwNSw3IEBAIFN0cmluZyBwcm9wZXJ0eU5hbWVUb1N0cmlu
ZyhKU0M6OlByb3BlcnR5TmFtZSk7CiBBdG9taWNTdHJpbmcgcHJvcGVydHlOYW1lVG9BdG9taWNT
dHJpbmcoSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBET01DbGFzcz4g
Y29uc3QgSlNDOjpIYXNoVGFibGVWYWx1ZSogZ2V0U3RhdGljVmFsdWVTbG90RW50cnlXaXRob3V0
Q2FjaGluZyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lKTsKLXRlbXBsYXRlPEpT
Qzo6TmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+IEpTQzo6RW5jb2RlZEpTVmFsdWUgbm9uQ2Fj
aGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK3RlbXBsYXRlPEpTQzo6
TmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+IEpTQzo6RW5jb2RlZEpTVmFsdWUgbm9uQ2FjaGlu
Z1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiAvLyBJbmxpbmUgZnVuY3Rpb25zIGFuZCB0ZW1wbGF0
ZSBkZWZpbml0aW9ucy4KIApAQCAtNzg0LDcgKzc4NCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIGNv
bnN0IEpTQzo6SGFzaFRhYmxlVmFsdWUqIGdldFN0YXRpY1ZhbHVlU2xvdEVudHJ5V2l0aG91dENh
Y2hpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXRlbXBsYXRlPEpTQzo6TmF0aXZlRnVuY3Rp
b24gbmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+IEpTQzo6RW5jb2RlZEpTVmFsdWUgbm9uQ2Fj
aGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3Qq
KQordGVtcGxhdGU8SlNDOjpOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbiwgaW50IGxlbmd0
aD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXIoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNDOjpKU1ZhbHVlOjplbmNvZGUoSlNDOjpK
U0Z1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LCBsZW5ndGgsIHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCksIG5hdGl2ZUZ1bmN0aW9uKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAK
aW5kZXggYWM2MWZiYmJkN2JhYWUyYzQ5MzMwNzAzZGNiMDZkYjE2MmEyOWRkZC4uNmQ0YmUzZWI0
MDNjOGNlYjMyZjcwM2RjNTMzMTgxY2ZhY2NhZjFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lk
IEpTRE9NV2luZG93Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRv
cikKIH0KIAogI2lmIEVOQUJMRShVU0VSX01FU1NBR0VfSEFORExFUlMpCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUganNET01XaW5kb3dXZWJLaXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorc3RhdGljIEVuY29kZWRKU1Zh
bHVlIGpzRE9NV2luZG93V2ViS2l0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNET01XaW5kb3cqIGNhc3RlZFRoaXMgPSB0
b0pTRE9NV2luZG93KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIUJpbmRp
bmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhleGVjLCBjYXN0ZWRUaGlz
LT53cmFwcGVkKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
aWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5j
cHAKaW5kZXggZjI3YjBjNjAxNDRiNGMwZDdiNjU3NDczYzY2MmQzMzI0YWVmNjE5Mi4uZTliZGI4
ODljMDk5NTZkYTIzOGNmOGNkMWI3YzNkNTk5OWU4MjI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCkBAIC03NSw4ICs3NSwxMSBAQCBKU0RpY3Rpb25h
cnk6OkdldFByb3BlcnR5UmVzdWx0IEpTRGljdGlvbmFyeTo6dHJ5R2V0UHJvcGVydHkoY29uc3Qg
Y2hhciogcHJvcGVydAogICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50aWZpZXI6OmZy
b21TdHJpbmcobV9leGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIFByb3BlcnR5U2xvdCBzbG90KG1f
aW5pdGlhbGl6ZXJPYmplY3QuZ2V0KCksIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBl
OjpHZXQpOwogCi0gICAgaWYgKCFtX2luaXRpYWxpemVyT2JqZWN0LmdldCgpLT5nZXRQcm9wZXJ0
eVNsb3QobV9leGVjLCBpZGVudGlmaWVyLCBzbG90KSkKKyAgICBpZiAoIW1faW5pdGlhbGl6ZXJP
YmplY3QuZ2V0KCktPmdldFByb3BlcnR5U2xvdChtX2V4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKSB7
CisgICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvblRocm93bjsKICAgICAgICAgcmV0dXJuIE5vUHJvcGVydHlGb3VuZDsKKyAgICB9
CiAKICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvblRocm93bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IDMwZWRhZjdlY2M5ODcyZDRlZDI5ZWNjYjNi
Y2QyNzBkYTEwNjc5NjAuLjI4NjUzNzJlOWFlNzFmNGE1Y2E1MDRlZTA4NDk1NWFiNWViMTRkYWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1
bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVt
ZW50RnVuY3Rpb25zLmNwcApAQCAtOTQsNyArOTQsNyBAQCBKU09iamVjdCogcGx1Z2luU2NyaXB0
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNIVE1MRWxlbWVudCoganNIVE1MRWxlbWVudCkKICAg
ICByZXR1cm4gaW5zdGFuY2UtPmNyZWF0ZVJ1bnRpbWVPYmplY3QoZXhlYyk7CiB9CiAgICAgCi1F
bmNvZGVkSlNWYWx1ZSBwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpT
T2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIHBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSkKIHsKIAogICAgIEpTSFRNTEVsZW1lbnQqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWND
YXN0PEpTSFRNTEVsZW1lbnQqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5o
CmluZGV4IGM2NGVkYmYxZTIxYTUyMDJkMzc1ZjE0NzVjMzU2YWM3MmMyODY4YWMuLjE4NTEyYmQ0
NGQ2YjNmN2VmN2JkODA5YzdmMDMwZmM4ZGZiOTA2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oCkBAIC0zOCw3ICsz
OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZSog
cGx1Z2luSW5zdGFuY2UoSFRNTEVsZW1lbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBKU0M6OkpT
T2JqZWN0KiBwbHVnaW5TY3JpcHRPYmplY3QoSlNDOjpFeGVjU3RhdGUqLCBKU0hUTUxFbGVtZW50
Kik7CiAKLSAgICBKU0M6OkVuY29kZWRKU1ZhbHVlIHBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRl
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
LCBKU0M6OkpTT2JqZWN0Kik7CisgICAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBwbHVnaW5FbGVtZW50
UHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CiAgICAgYm9vbCBwbHVnaW5FbGVtZW50Q3VzdG9tR2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlT
bG90JiwgSlNIVE1MRWxlbWVudCopOwogICAgIGJvb2wgcGx1Z2luRWxlbWVudEN1c3RvbVB1dChK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTSFRNTEVs
ZW1lbnQqLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYsIGJvb2wmIHB1dFJlc3VsdCk7CiAgICAgSlND
OjpDYWxsVHlwZSBwbHVnaW5FbGVtZW50R2V0Q2FsbERhdGEoSlNIVE1MRWxlbWVudCosIEpTQzo6
Q2FsbERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KaW5kZXggMDE5ZmY2MTRhYmZkYWRlYWVkZjkwMTkzZTEwYWZhYjg3ZjYx
ZmI3MS4uYWRkOWExZmQzMmMxY2RhN2Y4Nzk5MmFhZTRiZjBjNzJjNTFiMDQxOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAg
LTE1MDcsNyArMTUwNyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAgbXkgJGNv
bmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJp
bmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsK
ICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZh
Y2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUg
JHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkp
IHsKICAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgk
aW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKICAgICAgICAgICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiYm9vbCAke3NldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwpAQCAtMjA2OCw3ICsyMDY4
LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRjb25kaXRp
b25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRh
dHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNp
ZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAg
ICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNs
YXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpT
Qzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTtcbiIpOworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtc
biIpOwogICAgICAgICAgICAgaWYgKCFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CiAgICAgICAg
ICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwg
JGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJib29sICR7c2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CkBAIC0yMDc4LDcgKzIwNzgsNyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAKICAgICAgICAgaWYgKE5lZWRzQ29uc3RydWN0
b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkgewogICAgICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIg
LiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTtc
biIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVl
ICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTtcbiIpOwogICAgICAgICB9CiAKICAgICAgICAgbXkgJGNvbnN0cnVjdG9yRnVu
Y3Rpb25OYW1lID0gInNldEpTIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKQEAg
LTI1MzgsNyArMjUzOCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAg
ICBteSAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJh
dGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHthdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZ31cbiIp
IGlmICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsKIAotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kilc
biIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2dl
dEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7CiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7XG4iKTsKQEAgLTI3NDEsNyArMjc0MSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgIGlmIChOZWVkc0NvbnN0cnVjdG9yUHJvcGVydHkoJGludGVyZmFjZSkpIHsK
ICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZSA9ICJqcyIgLiAkaW50ZXJm
YWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiRW5jb2RlZEpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kilc
biIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2Nv
bnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NO
YW1lfVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDwke2NsYXNzTmFtZX1Qcm90
b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSlcbiIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IDc1NjExZTQyOTJkODZkYTIx
NWU1ZGRmMGRkZGVlNGUzMTcyYzY0NGUuLmM1YjNjNGY3ZTdhMjE3OTI3MTIxYjNjN2U3YzBmMWE0
OTY3MWI2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTYw
LDcgKzYwLDcgQEAgdm9pZCBSdW50aW1lQXJyYXk6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQogICAg
IHN0YXRpY19jYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpLT5SdW50aW1lQXJyYXk6On5SdW50aW1l
QXJyYXkoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwg
SlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgUnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJ1bnRpbWVBcnJh
eSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIXRoaXNPYmplY3QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBkYTUxNjA1YmQ1NjI0ZDc0MGY1
ZDAxMDJmMjM0ZmVlNTIxY2RhMDRhLi4wMThjMTMyNzhkYmEzZGQwMzE3MWU1M2VmYzBhZDdkZjBl
MTA3ZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTgzLDcgKzgz
LDcgQEAgY2xhc3MgUnVudGltZUFycmF5IDogcHVibGljIEpTQXJyYXkgewogCiBwcml2YXRlOgog
ICAgIFJ1bnRpbWVBcnJheShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKLSAgICBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdl
dHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogICAgIEJp
bmRpbmdzQXJyYXkqIG1fYXJyYXk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5jcHAKaW5kZXggYTM3Yzg4ZDA5Yzc4MmVmMTFjNTgwNjVhMWEyM2QzYzZlNGVhZTg2Yy4u
YWUyYjJiOWJjOTNlOTI3M2NmYWIyZDFmN2Q3ZWQ0MGVhMTNiMDJiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgUnVudGlt
ZU1ldGhvZDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBjb25zdCBTdHJpbmcmIGlkZW50KQogICAg
IEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU1l
dGhvZDo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVNZXRo
b2Q6Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFJ1bnRpbWVNZXRob2QqIHRoaXNPYmplY3QgPSBqc0R5
bmFtaWNDYXN0PFJ1bnRpbWVNZXRob2QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKCF0aGlzT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApp
bmRleCAyMzQyMjNlM2VmYjMwZjY0ZjcxMjRmN2I3MzI5NjVmOWZhYWY2YjJkLi5kODZkNTk0NzVl
MGE5NzUxN2MwMTM2YmFiMTA2ZjJhMDdjMTkyNGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuaApAQCAtNjYsNyArNjYsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50
aW1lTWV0aG9kIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0
aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVj
dCopOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAKICAgICBCaW5kaW5nczo6TWV0aG9kKiBt
X21ldGhvZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9v
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRl
eCA0NmFhNDljYmZmMWZjZGNhNDIzYWFmNTJhMjJmMTYwYTZlYjk3YTZiLi5hNTczZTA1ZDc1OWIw
NzU3MGQyNjIxZDhlNjI2MDM2NDFjYmI0ZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBSdW50aW1lT2JqZWN0OjppbnZh
bGlkYXRlKCkKICAgICBtX2luc3RhbmNlID0gbnVsbHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
UnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KikKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lKQogewogICAgIFJ1bnRpbWVPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8UnVudGlt
ZU9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBSZWZQdHI8SW5zdGFu
Y2U+IGluc3RhbmNlID0gdGhpc09iai0+bV9pbnN0YW5jZTsKQEAgLTgwLDcgKzgwLDcgQEAgRW5j
b2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkKIHsgICAgCiAgICAgUnVudGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2Fz
dDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIFJlZlB0
cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqLT5tX2luc3RhbmNlOwpAQCAtOTksNyArOTks
NyBAQCBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6bWV0aG9kR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0Ojpt
ZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgUnVudGltZU9iamVjdCogdGhpc09iaiA9
IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqLT5tX2luc3RhbmNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCBjY2E3NDZlYmVlNTI2YWUxMDM5M2Zj
NTU3NDJhYzQ0YWNlZDM0NjM0Li44MWQ0ZWJkM2I0ZGJiNzA5OTExNWRhMTAyODJiMjlmYmZmYjE4
NmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApAQCAtNzgsOSArNzgs
OSBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1lT2JqZWN0IDogcHVibGljIEpTRGVzdHJ1
Y3RpYmxlT2JqZWN0IHsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CiAKIHByaXZhdGU6
Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Ci0gICAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIGZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIG1ldGhv
ZEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVj
dCopOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBmYWxsYmFja09iamVjdEdldHRlcihFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgZmllbGRHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIG1ldGhvZEdldHRlcihFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogICAgIFJlZlB0cjxJbnN0YW5jZT4g
bV9pbnN0YW5jZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXggYjVhNDYwNDEwMGYzNDFhYjY3
NjNlZTUwMTgwMGRiOWViZmU5NjEwNy4uZDU2MWFlMTQ4YzIyZjU5N2Q3ZjFhZTg0Y2I3ZDBkZjkx
YzBjYTBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAtNDM1LDcgKzQzNSw3IEBAIHZvaWQgSlNO
UE9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IGV4ZWMsIFByb3BlcnR5CiAgICAgbnBuTWVtRnJlZShpZGVudGlmaWVycyk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTTlBPYmplY3Q6OnByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVj
dCopCitFbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0Ojpwcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSkKIHsKICAgICBKU05QT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PEpTTlBPYmplY3QqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0
aGlzT2JqLCBpbmZvKCkpOwpAQCAtNDc1LDcgKzQ3NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTTlBP
YmplY3Q6OnByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShwcm9wZXJ0eVZhbHVlKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6bWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVj
dCopCitFbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
CiB7CiAgICAgSlNOUE9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxKU05QT2JqZWN0Kj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
c09iaiwgaW5mbygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IDM4NTc4MmM4ZTY4YmRjNWExM2Y3ODU0
MjkzMTVmNjk5MmY0ZTQzMjAuLjhiYWZlYjA2MGEyMTA2NmQ4ZWFhNjA4NzRjMDNhYzk5ZjBjZjRi
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuaApAQCAtOTQsOCArOTQsOCBAQCBjbGFzcyBKU05QT2JqZWN0IDog
cHVibGljIEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QgewogCiAgICAgc3RhdGljIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlBy
b3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUpOwogCi0gICAgc3RhdGljIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgcHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOwotICAgIHN0
YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIG1ldGhvZEdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7Cisg
ICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgcHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CisgICAgc3RhdGlj
IEpTQzo6RW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiB0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihKU0M6OkV4ZWNTdGF0ZSopOwogCiAgICAgTlBS
dW50aW1lT2JqZWN0TWFwKiBtX29iamVjdE1hcDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280451</attachid>
            <date>2016-06-03 12:16:35 -0700</date>
            <delta_ts>2016-06-05 08:22:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157080-20160604041755.patch</filename>
            <type>text/plain</type>
            <size>80393</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MTQyM2E5ZWQzMjkyNTA0Mzg4ZWE1NzI3ODVlNDc0NTE3NDk3YjVlLi44ZDJhZGUyMjJiMjYxZTgw
ZjVjYzZlMWVlNmZlODA5OGExMDgzMTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTIgQEAKKzIwMTYtMDYtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgQ2hhbmdlIFByb3h5T2JqZWN0LltbR2V0XV0gbm90IHRvIHVzZSBj
dXN0b20gYWNjZXNzb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NzA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggbWFpbmx5IGludHJvZHVjZXMgdGhlIHNlY29uZCBwYXJ0IG9mIHRo
ZSBmb2xsb3dpbmdzLgorICAgICAgICBCdXQgdG8gaW50cm9kdWNlIGl0LCBmaXJzdCBhbmQgdGhp
cmQgcGFydHMgYXJlIG5lY2Vzc2FyeS4KKworICAgICAgICAxLiBJbnNlcnQgbWlzc2luZyBleGNl
cHRpb24gY2hlY2tzIGZvciBnZXRQcm9wZXJ0eVNsb3QuCisKKyAgICAgICAgICAgIFdoaWxlIGdl
dFByb3BlcnR5U2xvdCBjYW4gcGVyZm9ybSB1c2VyLW9ic2VydmFibGUgYmVoYXZpb3IgaWYgdGhl
IHNsb3QgaXMgbm90IFZNSW5xdWlyeSwKKyAgICAgICAgICAgIHNldmVyYWwgcGxhY2VzIG1pc3Mg
ZXhlcHRpb24gY2hlY2tzLiBGb3IgZXhhbXBsZSwgUHJveHlPYmplY3QncyBoYXNQcm9wZXJ0eSBh
bHJlYWR5IGNhbgorICAgICAgICAgICAgdGhyb3cgYW55IGVycm9ycy4gTG9va2luZyB0aHJvdWdo
IHRoZSBjb2RlLCB3ZSBmb3VuZCBzZXZlcmFsIG1pc3NpbmcgZXJyb3IgY2hlY2tzIGFmdGVyCisg
ICAgICAgICAgICBoYXNQcm9wZXJ0eSwgYnV0IHRoaXMgd2lsbCBiZSBmaXhlZCBpbiB0aGUgc2Vw
YXJhdGVkIHBhdGNoLgorCisgICAgICAgIDIuIERvIG5vdCB1c2UgY3VzdG9tIGFjY2Vzc29yIHRv
IGltcGxlbWVudCBQcm94eU9iamVjdCdzIFtbR2V0XV0uCisKKyAgICAgICAgICAgIFRoZSBjYWxs
ZXIgYWxyZWFkeSBhbGxvd3MgZ2V0T3duUHJvcGVydHlTbG90IHRvIHRocm93IGFuIGV4Y2VwdGlv
biBpZiB0aGUgdHlwZQorICAgICAgICAgICAgaXMgbm90IFZNSW5xdWlyeS4gU28gaW5zdGVhZCBv
ZiB1c2luZyBjdXN0b20gYWNjZXNzb3IsIHdlIHNpbXBseSBpbXBsZW1lbnQgaXQKKyAgICAgICAg
ICAgIGRpcmVjdGx5IGluIHRoZSBQcm94eU9iamVjdCdzIG1ldGhvZC4KKworICAgICAgICAzLiBT
dHJpcCBzbG90QmFzZSBmcm9tIGN1c3RvbSBhY2Nlc3Nvci4KKworICAgICAgICAgICAgVGhlIGN1
c3RvbSBhY2Nlc3NvciBzaG91bGQgbm90IGJlIGJvdW5kIHRvIHRoZSBzcGVjaWZpYyBzbG90IGJh
c2VbMV0sIHNpbmNlIGl0CisgICAgICAgICAgICBpcyBqdXN0IGFuIGFjY2Vzc29yLiBUaGVyZSBp
cyBhbiBhbHRlcm5hdGl2ZSBkZXNpZ246IG1ha2VpbmcgdGhpcyBjdXN0b20gYWNjZXNzb3IKKyAg
ICAgICAgICAgIHRvIGN1c3RvbSB2YWx1ZSBhY2Nlc3NvciBhbmQgYWNjZXB0IGJvdGggdGhlIHNs
b3QgYmFzZSBhbmQgdGhlIHJlY2VpdmVyIGluc3RlYWQKKyAgICAgICAgICAgIG9mIGFsbG93aW5n
IHRocm93aW5nIGFuIGVycm9yIGZyb20gZ2V0T3duUHJvcGVydHlTbG90LiBCdXQgd2UgdGFrZSB0
aGUgZmlyc3QgZGVzaWduCisgICAgICAgICAgICB0aGF0IGFsbG93cyBnZXRQcm9wZXJ0eVNsb3Qg
dG8gdGhyb3cgYW4gZXJyb3IsIHNpbmNlIGhhc1Byb3BlcnR5ICh0aGF0IGRvZXMgbm90IGNhbGwK
KyAgICAgICAgICAgIGdldFZhbHVlIG9mIHRoZSBjdXN0b20gZ2V0dGVycykgY2FuIGFscmVhZHkg
dGhyb3cgYW55IGVycm9ycy4KKyAgICAgICAgICAgIFRvIHF1ZXJ5IHRoZSBwcm9wZXJ0eSB3aXRo
IHRoZSBub24tdXNlci1vYnNlcnZhYmxlIHdheSwgdXNlIFZNSW5xdWlyeSBhbmQKKyAgICAgICAg
ICAgIGlzVGFpbnRlZEJ5UHJveHkoKSBpbnN0ZWFkLgorCisgICAgICAgIFRlc3RzIGp1c3QgZW5z
dXJlIHRoYXQgdGhlIGN1cnJlbnQgc2VtYW50aWNzIHdvcmtzIGNvcnJlY3RseSBhZnRlciB0aGlz
IHBhdGNoLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1Nzk3OAorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAg
ICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjpKU0Nh
bGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKEpT
Qzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsYmFja0dldHRlcik6CisgICAgICAgICog
Ynl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNl
OjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJl
dGVyOjpleGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAg
ICoganNjLmNwcDoKKyAgICAgICAgKFdURjo6SW1wdXJlR2V0dGVyOjpnZXRPd25Qcm9wZXJ0eVNs
b3QpOgorICAgICAgICAoV1RGOjpDdXN0b21HZXR0ZXI6OmN1c3RvbUdldHRlcik6CisgICAgICAg
IChXVEY6OlJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKEdsb2JhbE9iamVj
dDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoZnVuY3Rpb25Mb2FkU3RyaW5nKToKKyAgICAg
ICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElO
VF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
OgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9KU0Jv
dW5kU2xvdEJhc2VGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmJvdW5kU2xvdEJhc2VGdW5j
dGlvbkNhbGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0UHJv
cGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAo
SlNDOjpKU0Z1bmN0aW9uOjphcmd1bWVudHNHZXR0ZXIpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0
aW9uOjpjYWxsZXJHZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3Vt
ZW50cyk6CisgICAgICAgICogcnVudGltZS9KU01vZHVsZU5hbWVzcGFjZU9iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OmNhbGxiYWNrR2V0dGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmpl
Y3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJv
cGVydHkpOgorICAgICAgICAoSlNDOjpXYWxrZXI6OndhbGspOgorICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdCk6Cisg
ICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpvYmpl
Y3RQcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3Bw
OgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6OmN1c3RvbUdldHRlcik6CisgICAgICAgICog
cnVudGltZS9Qcm9wZXJ0eVNsb3QuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90Ojp0aGlz
VmFsdWUpOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpwZXJmb3JtUHJveHlHZXQpOgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6cGVyZm9ybUdl
dCk6CisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RDb21tb24p
OgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xs
YXIpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3RvcklucHV0KToKKyAgICAgICAgKEpT
Qzo6cmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25z
dHJ1Y3Rvckxhc3RNYXRjaCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTGFzdFBh
cmVuKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dCk6CisgICAg
ICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KToKKyAgICAgICAgKiB0ZXN0
cy9zdHJlc3MvZ2V0LWZyb20tc2NvcGUtZHluYW1pYy1vbnRvLXByb3h5LmpzOiBBZGRlZC4KKyAg
ICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3VsZFRocm93LmhhbmRsZXIuaGFzKToKKyAg
ICAgICAgKGhhbmRsZXIuaGFzKToKKyAgICAgICAgKHRyeS5oYW5kbGVyLmhhcyk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL29wZXJhdGlvbi1pbi10aHJvdy1lcnJvci5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0Q2FzZS5oYW5kbGVyLmhhcyk6CisgICAgICAgICh0ZXN0Q2FzZSk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL3Byb3h5LWFuZC1qc29uLXN0cmluZ2lmeS5qczogQWRkZWQuCisgICAg
ICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Byb3h5LWFuZC10eXBl
ZC1hcnJheS5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL3Byb3h5LWpzb24tcGF0
aC5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL3Byb3h5LXdpdGgtc3RhdGVtZW50
LmpzOiBBZGRlZC4KKwogMjAxNi0wNi0wMiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBnbG9iYWwgbGV4aWNhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIG5v
dCBhY2Nlc3NpYmxlIHRocm91Z2ggZnVuY3Rpb25zIGNyZWF0ZWQgdXNpbmcgdGhlIGZ1bmN0aW9u
IGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjg0MzBkNWY4NDJhYzcyOGU1YzU1MDE2ZGM2NjRl
NGM1YjNlMmNiNy4uODZlZGRmZTJmNjY0Mjk1YzE4ZGFjNTY4ZjVlOGM0MWM2NzA5Y2YwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA2LTAzICBZdXN1a2UgU3V6dWtpICA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENoYW5nZSBQcm94eU9iamVjdC5bW0dldF1d
IG5vdCB0byB1c2UgY3VzdG9tIGFjY2Vzc29yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcwODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlv
bmFyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQcm9wZXJ0eSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpub25DYWNoaW5nU3Rh
dGljRnVuY3Rpb25HZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93V2ViS2l0KToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEaWN0
aW9uYXJ5Ojp0cnlHZXRQcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNQbHVnaW5F
bGVtZW50RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsdWdpbkVsZW1lbnRQcm9w
ZXJ0eUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rp
b25zLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06Cisg
ICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9u
KToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1
bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJh
eS5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5jcHA6CisgICAgICAgIChKU0M6
OlJ1bnRpbWVNZXRob2Q6Omxlbmd0aEdldHRlcik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKToKKyAg
ICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0dGVyKToKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6Om1ldGhvZEdldHRlcik6CisgICAgICAg
ICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisKIDIwMTYtMDYtMDMgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBXZWJHTCBkb2Vzbid0
IHNob3cgdXAgaW4gQ1NTIHJlZmxlY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmMwOTRjYTFlYWNmMzgz
ODFjM2EyMjBmOTVkMWM1YmEyYjA4YmJhMi4uNDU0OTkxNWQ3MmMyMjI3OTJkMWUyNzRjM2QzMzkw
NTcxYjI3YWRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA2LTAzICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIENoYW5nZSBQcm94
eU9iamVjdC5bW0dldF1dIG5vdCB0byB1c2UgY3VzdG9tIGFjY2Vzc29yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcwODAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6cHJv
cGVydHlHZXR0ZXIpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjptZXRob2RHZXR0ZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisK
IDIwMTYtMDYtMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBD
cmFzaCB1bmRlciBXZWJQcm9jZXNzOjpyZWdpc3RlcldpdGhTdGF0ZUR1bXBlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDVlMDMzZjhlM2My
ZWRmYzUzMTgzYjgxYzEzNWUwY2Y1ZWM4ZTQ1MGMuLmU5NTYzZjU0Y2VhOGIyNjNiMTQzMzU2NzIx
ZDRjZGRkNzljNWU0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
YWxsYmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFj
a09iamVjdC5oCkBAIC0yMTEsOCArMjExLDggQEAgY2xhc3MgSlNDYWxsYmFja09iamVjdCA6IHB1
YmxpYyBQYXJlbnQgewogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdChFeGVjU3RhdGUqKTsKICAgIAogICAgIEpTVmFsdWUgZ2V0U3RhdGljVmFsdWUoRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RhdGlj
RnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwg
SlNPYmplY3QqKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKKyAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNh
bGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJhY2tPYmplY3REYXRhPiBtX2NhbGxiYWNrT2Jq
ZWN0RGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGIyYmNmNDUzYTZiMThiOTU3Njc2ZjdmYjA0ZDMx
NzAxMjZhNmU3ZmQuLmE1NTM3MjM0YmIzMmNhNjg2ZGQwNmIyYWZlOWEwN2E5ZDAyNTdmMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCkBAIC01OTksNyArNTk5LDcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBh
cmVudD46OmdldFN0YXRpY1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHAKIH0K
IAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmpl
Y3Q8UGFyZW50Pjo6c3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikK
K0VuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6c3RhdGljRnVuY3Rpb25H
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNDYWxsYmFja09iamVjdCogdGhpc09iaiA9IGFz
Q2FsbGJhY2tPYmplY3QodGhpc1ZhbHVlKTsKICAgICAKQEAgLTYyNyw3ICs2MjcsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgRQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotRW5jb2Rl
ZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsYmFja0dldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+
OjpjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU0NhbGxiYWNrT2JqZWN0KiB0
aGlzT2JqID0gYXNDYWxsYmFja09iamVjdCh0aGlzVmFsdWUpOwogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKaW5kZXgg
NGFhZWQ4ZTlhNmQ1YzJiMDA5YmVlOTc3Mzc4YjdlMTA3YTIwMjUxMC4uYWM1MjBjZDMzZTkxMzlk
YzNkNWY0ZTBjMWE4OGNjM2FkYmNlNjZlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCkBAIC0xMDg0LDcgKzEwODQsNyBA
QCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NHZW5lcmF0aW9uU3RhdGUmIHN0
YXRlKQogICAgICAgICAgICAgLy8gdG8gbWFrZSBzb21lIHNwYWNlIGhlcmUuCiAgICAgICAgICAg
ICBqaXQubWFrZVNwYWNlT25TdGFja0ZvckNDYWxsKCk7CiAKLSAgICAgICAgICAgIC8vIGdldHRl
cjogRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCogc2xvdEJhc2UpOworICAgICAg
ICAgICAgLy8gZ2V0dGVyOiBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogICAgICAgICAgICAg
Ly8gc2V0dGVyOiB2b2lkICgqUHV0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSk7CiAgICAgICAgICAgICAvLyBDdXN0
b20gdmFsdWVzIGFyZSBwYXNzZWQgdGhlIHNsb3RCYXNlICh0aGUgcHJvcGVydHkgaG9sZGVyKSwg
Y3VzdG9tIGFjY2Vzc29ycyBhcmUgcGFzc2VkIHRoZSB0aGlzVmF1bGUgKHJlY2lldmVyKS4KICAg
ICAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBkaWZmZXJlbmNlcyBpbiBjdXN0b20gdmFs
dWVzIGFuZCBjdXN0b20gYWNjZXNzb3JzLgpAQCAtMTA5NCw4ICsxMDk0LDcgQEAgdm9pZCBBY2Nl
c3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAgICAg
ICAgICAgIGlmIChtX3R5cGUgPT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1c3Rv
bUFjY2Vzc29yR2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgYmFzZUZvckN1c3RvbVZhbHVlLAotICAg
ICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgp
KSwKLSAgICAgICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUik7CisgICAgICAgICAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpKTsKICAgICAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoYmFzZUZvckN1c3RvbVZhbHVlLCB2YWx1ZVJlZ3MuZ3ByKCkpOwogI2Vsc2UKQEAgLTEx
MDMsOCArMTEwMiw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmVy
YXRpb25TdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgRUFCSV8zMkJJVF9EVU1NWV9BUkcgYmFz
ZUZvckN1c3RvbVZhbHVlLAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSksCi0gICAgICAgICAgICAgICAgICAgIGJh
c2VGb3JBY2Nlc3NHUFIpOworICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCiAgICAgICAgICAgICAgICAg
ICAgIEVBQklfMzJCSVRfRFVNTVlfQVJHIGJhc2VGb3JDdXN0b21WYWx1ZSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGE1ZDBkMDQxNGRkOWFkNzkx
MDIwYjNkMDU2ZjMyYzljNzM3OWIzMmIuLjk1NjAwYjVlOTVkZjNmNDgwNDBmNDI1NTk5ZDZjZGYw
NWMyYWI3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cApAQCAtMTYyMiwyNyArMTYyMiwyOCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldER5bmFtaWNWYXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogcwogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0s
IGV4ZWMpOwogCi0gICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBJZGVudGlmaWVyOjpmcm9t
VWlkKGV4ZWMsIGltcGwpOwotICAgIEdldFB1dEluZm8gZ2V0UHV0SW5mbyhnZXRQdXRJbmZvQml0
cyk7Ci0KLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChzY29wZSwgUHJvcGVydHlTbG90OjpJbnRlcm5h
bE1ldGhvZFR5cGU6OkdldCk7Ci0gICAgaWYgKCFzY29wZS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMs
IGlkZW50LCBzbG90KSkgewotICAgICAgICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgpID09
IFRocm93SWZOb3RGb3VuZCkKLSAgICAgICAgICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNy
ZWF0ZVVuZGVmaW5lZFZhcmlhYmxlRXJyb3IoZXhlYywgaWRlbnQpKTsKLSAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9CisgICAgSWRlbnRpZmllciBp
ZGVudCA9IElkZW50aWZpZXI6OmZyb21VaWQoZXhlYywgaW1wbCk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShzY29wZS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBbJl0gKGJvb2wg
Zm91bmQsIFByb3BlcnR5U2xvdCYgc2xvdCkgLT4gSlNWYWx1ZSB7CisgICAgICAgIGlmICghZm91
bmQpIHsKKyAgICAgICAgICAgIEdldFB1dEluZm8gZ2V0UHV0SW5mbyhnZXRQdXRJbmZvQml0cyk7
CisgICAgICAgICAgICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgpID09IFRocm93SWZOb3RG
b3VuZCkKKyAgICAgICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVVbmRl
ZmluZWRWYXJpYWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7CisgICAgICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKKyAgICAgICAgfQogCi0gICAgaWYgKHNjb3BlLT5pc0dsb2JhbExleGljYWxF
bnZpcm9ubWVudCgpKSB7Ci0gICAgICAgIC8vIFdoZW4gd2UgY2FuJ3Qgc3RhdGljYWxseSBwcm92
ZSB3ZSBuZWVkIGEgVERaIGNoZWNrLCB3ZSBtdXN0IHBlcmZvcm0gdGhlIGNoZWNrIG9uIHRoZSBz
bG93IHBhdGguCi0gICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShleGVjLCBp
ZGVudCk7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0ganNURFpWYWx1ZSgpKSB7Ci0gICAgICAgICAg
ICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVREWkVycm9yKGV4ZWMpKTsK
LSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAg
ICAgIGlmIChzY29wZS0+aXNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQoKSkgeworICAgICAgICAg
ICAgLy8gV2hlbiB3ZSBjYW4ndCBzdGF0aWNhbGx5IHByb3ZlIHdlIG5lZWQgYSBURFogY2hlY2ss
IHdlIG11c3QgcGVyZm9ybSB0aGUgY2hlY2sgb24gdGhlIHNsb3cgcGF0aC4KKyAgICAgICAgICAg
IEpTVmFsdWUgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudCk7CisgICAgICAgICAg
ICBpZiAocmVzdWx0ID09IGpzVERaVmFsdWUoKSkgeworICAgICAgICAgICAgICAgIGV4ZWMtPnZt
KCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVERaRXJyb3IoZXhlYykpOworICAgICAgICAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7Ci0gICAgfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzbG90LmdldFZh
bHVlKGV4ZWMsIGlkZW50KSk7CisgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKGV4ZWMsIGlk
ZW50KTsKKworICAgIH0pKTsKIH0KIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dER5
bmFtaWNWYXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRKU1ZhbHVl
IHZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCogaW1wbCwgdW5zaWduZWQgZ2V0UHV0SW5mb0JpdHMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNw
cAppbmRleCBhMGFlMmQ2YTFmMzBjOGMzMzFhNzJlNzQ3NzUwN2ZjNTAxM2FhMzFlLi45NzFmMmVm
NTIxNjI5MDA2Yjg0NDQ5NjFjZTk3NzA1YmQ5OGJiYTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTg2Myw2ICs4NjMsOCBA
QCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKFByb2dyYW1FeGVjdXRhYmxlKiBwcm9ncmFt
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSgogICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSAw
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChnbG9iYWxPYmpl
Y3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFnbG9iYWxPYmplY3QtPmdldFByb3BlcnR5U2xvdChjYWxsRnJhbWUs
IEpTT05QUGF0aFtpXS5tX3BhdGhFbnRyeU5hbWUsIHNsb3QpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChlbnRyeSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGNyZWF0ZVVu
ZGVmaW5lZFZhcmlhYmxlRXJyb3IoY2FsbEZyYW1lLCBKU09OUFBhdGhbaV0ubV9wYXRoRW50cnlO
YW1lKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWRKU09OUDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDM5MzA0YmYx
ZjViYzQ2MDFkY2RmYzZmNDI5NzQ3ZGRmMWMwNTQ4N2YuLjQ4NTU3MDg4MjhlNzkwYzQ3YjQwMmRl
NmJlNjg0MWMyMmE2NjhhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcApAQCAtMjQxLDEzICsyNDEsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUK
IAogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGJhc2UpOwogICAgIExP
R19JQygoSUNFdmVudDo6T3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBiYXNlVmFsdWUuY2xhc3NJ
bmZvT3JOdWxsKCksIGlkZW50KSk7Ci0gICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlLCBQ
cm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKLSAgICAKLSAgICBib29sIGhh
c1Jlc3VsdCA9IGJhc2VWYWx1ZS5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQsIHNsb3QpOwot
ICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJDYWNoaW5nKGJhc2VWYWx1ZS5zdHJ1Y3R1cmVPck51
bGwoKSkpCi0gICAgICAgIHJlcGF0Y2hHZXRCeUlEKGV4ZWMsIGJhc2VWYWx1ZSwgaWRlbnQsIHNs
b3QsICpzdHViSW5mbywgR2V0QnlJREtpbmQ6Ok5vcm1hbCk7Ci0gICAgCi0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShoYXNSZXN1bHQ/IHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnQpIDoganNV
bmRlZmluZWQoKSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJhc2VWYWx1ZS5nZXRQ
cm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQsIFsmXSAoYm9vbCBmb3VuZCwgUHJvcGVydHlTbG90JiBz
bG90KSAtPiBKU1ZhbHVlIHsKKyAgICAgICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmco
YmFzZVZhbHVlLnN0cnVjdHVyZU9yTnVsbCgpKSkKKyAgICAgICAgICAgIHJlcGF0Y2hHZXRCeUlE
KGV4ZWMsIGJhc2VWYWx1ZSwgaWRlbnQsIHNsb3QsICpzdHViSW5mbywgR2V0QnlJREtpbmQ6Ok5v
cm1hbCk7CisgICAgICAgIHJldHVybiBmb3VuZCA/IHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnQp
IDoganNVbmRlZmluZWQoKTsKKyAgICB9KSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uSW5PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZVN0dWJJ
bmZvKiBzdHViSW5mbywgSlNDZWxsKiBiYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCoga2V5KQpAQCAt
MjY3LDE0ICsyNjYsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25J
bk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlU3R1YkkKICAgICBJZGVudGlmaWVy
IGlkZW50ID0gSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwga2V5KTsKICAgICBMT0dfSUMoKElDRXZl
bnQ6Ok9wZXJhdGlvbkluT3B0aW1pemUsIGJhc2UtPmNsYXNzSW5mbygpLCBpZGVudCkpOwogICAg
IFByb3BlcnR5U2xvdCBzbG90KGJhc2UsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBl
OjpIYXNQcm9wZXJ0eSk7Ci0gICAgYm9vbCByZXN1bHQgPSBhc09iamVjdChiYXNlKS0+Z2V0UHJv
cGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KTsKLSAgICAKLSAgICBSRUxFQVNFX0FTU0VSVChh
Y2Nlc3NUeXBlID09IHN0dWJJbmZvLT5hY2Nlc3NUeXBlKTsKLSAgICAKLSAgICBpZiAoc3R1Yklu
Zm8tPmNvbnNpZGVyQ2FjaGluZyhhc09iamVjdChiYXNlKS0+c3RydWN0dXJlKCkpKQotICAgICAg
ICByZXBhdGNoSW4oZXhlYywgYmFzZSwgaWRlbnQsIHJlc3VsdCwgc2xvdCwgKnN0dWJJbmZvKTsK
LSAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZXN1bHQpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc09iamVjdChiYXNlKS0+Z2V0UHJv
cGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90LCBbJl0gKGJvb2wgZm91bmQsIFByb3BlcnR5U2xv
dCYgc2xvdCkgLT4gYm9vbCB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGFjY2Vzc1R5cGUgPT0g
c3R1YkluZm8tPmFjY2Vzc1R5cGUpOworCisgICAgICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJD
YWNoaW5nKGFzT2JqZWN0KGJhc2UpLT5zdHJ1Y3R1cmUoKSkpCisgICAgICAgICAgICByZXBhdGNo
SW4oZXhlYywgYmFzZSwgaWRlbnQsIGZvdW5kLCBzbG90LCAqc3R1YkluZm8pOworCisgICAgICAg
IHJldHVybiBmb3VuZDsKKyAgICB9KSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkluKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvLCBKU0NlbGwqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKiBrZXkpCkBAIC0yMDE0LDI4ICsy
MDEzLDI5IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0RnJvbVNj
b3BlKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rpb24qCiAgICAgLy8gTW9kdWxlVmFyIGlzIGFs
d2F5cyBjb252ZXJ0ZWQgdG8gQ2xvc3VyZVZhciBmb3IgZ2V0X2Zyb21fc2NvcGUuCiAgICAgQVNT
RVJUKGdldFB1dEluZm8ucmVzb2x2ZVR5cGUoKSAhPSBNb2R1bGVWYXIpOwogCi0gICAgUHJvcGVy
dHlTbG90IHNsb3Qoc2NvcGUsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQp
OwotICAgIGlmICghc2NvcGUtPmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudCwgc2xvdCkpIHsK
LSAgICAgICAgaWYgKGdldFB1dEluZm8ucmVzb2x2ZU1vZGUoKSA9PSBUaHJvd0lmTm90Rm91bmQp
Ci0gICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVVbmRlZmluZWRWYXJp
YWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Ci0gICAgfQorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2NvcGUt
PmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudCwgWyZdIChib29sIGZvdW5kLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpIC0+IEpTVmFsdWUgeworICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAg
ICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgpID09IFRocm93SWZOb3RGb3VuZCkKKyAgICAg
ICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVVbmRlZmluZWRWYXJpYWJs
ZUVycm9yKGV4ZWMsIGlkZW50KSk7CisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
KyAgICAgICAgfQogCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBKU1ZhbHVlKCk7Ci0gICAgaWYgKHNj
b3BlLT5pc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpKSB7Ci0gICAgICAgIC8vIFdoZW4gd2Ug
Y2FuJ3Qgc3RhdGljYWxseSBwcm92ZSB3ZSBuZWVkIGEgVERaIGNoZWNrLCB3ZSBtdXN0IHBlcmZv
cm0gdGhlIGNoZWNrIG9uIHRoZSBzbG93IHBhdGguCi0gICAgICAgIHJlc3VsdCA9IHNsb3QuZ2V0
VmFsdWUoZXhlYywgaWRlbnQpOwotICAgICAgICBpZiAocmVzdWx0ID09IGpzVERaVmFsdWUoKSkg
ewotICAgICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVURFpF
cnJvcihleGVjKSk7Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOworICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWUoKTsKKyAgICAgICAgaWYg
KHNjb3BlLT5pc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpKSB7CisgICAgICAgICAgICAvLyBX
aGVuIHdlIGNhbid0IHN0YXRpY2FsbHkgcHJvdmUgd2UgbmVlZCBhIFREWiBjaGVjaywgd2UgbXVz
dCBwZXJmb3JtIHRoZSBjaGVjayBvbiB0aGUgc2xvdyBwYXRoLgorICAgICAgICAgICAgcmVzdWx0
ID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09
IGpzVERaVmFsdWUoKSkgeworICAgICAgICAgICAgICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMs
IGNyZWF0ZVREWkVycm9yKGV4ZWMpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0KIAotICAgIENvbW1vblNsb3dQ
YXRoczo6dHJ5Q2FjaGVHZXRGcm9tU2NvcGVHbG9iYWwoZXhlYywgdm0sIHBjLCBzY29wZSwgc2xv
dCwgaWRlbnQpOworICAgICAgICBDb21tb25TbG93UGF0aHM6OnRyeUNhY2hlR2V0RnJvbVNjb3Bl
R2xvYmFsKGV4ZWMsIHZtLCBwYywgc2NvcGUsIHNsb3QsIGlkZW50KTsKIAotICAgIGlmICghcmVz
dWx0KQotICAgICAgICByZXN1bHQgPSBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50KTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgICAgIGlmICghcmVzdWx0KQorICAg
ICAgICAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnQpOworICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgIH0pKTsKIH0KIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dFRvU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiogYnl0ZWNvZGVQQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKaW5kZXggYjAyMWQxMDFmMzNjYjc2MmFhNDJmYWZmMWJkZDVmM2FlOTU1OTZi
Yy4uODYyMTk0NzdhZWZhNTFjYzVmYWU0ZjdiZDMyZmMyMjgwZDc2ZmI3YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKQEAgLTMwMiw4ICszMDIsMTIgQEAgY2xhc3MgSW1wdXJlR2V0dGVyIDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgewogICAgIHsKICAgICAgICAgSW1wdXJlR2V0dGVyKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEltcHVyZUdldHRlcio+KG9iamVjdCk7CiAgICAgICAgIAotICAgICAgICBp
ZiAodGhpc09iamVjdC0+bV9kZWxlZ2F0ZSAmJiB0aGlzT2JqZWN0LT5tX2RlbGVnYXRlLT5nZXRQ
cm9wZXJ0eVNsb3QoZXhlYywgbmFtZSwgc2xvdCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgaWYgKHRoaXNPYmplY3QtPm1fZGVsZWdhdGUpIHsKKyAgICAgICAgICAgIGlmICh0
aGlzT2JqZWN0LT5tX2RlbGVnYXRlLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgbmFtZSwgc2xvdCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAK
ICAgICAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIGV4ZWMsIG5h
bWUsIHNsb3QpOwogICAgIH0KQEAgLTM1OCw3ICszNjIsNyBAQCBjbGFzcyBDdXN0b21HZXR0ZXIg
OiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgfQogCiBwcml2YXRlOgotICAgIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAgICAgIEN1c3RvbUdldHRlciogdGhp
c09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8Q3VzdG9tR2V0dGVyKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgICAgICBpZiAoIXRoaXNPYmplY3QpCkBAIC00NjMsNyArNDY3LDcgQEAg
Y2xhc3MgUnVudGltZUFycmF5IDogcHVibGljIEpTQXJyYXkgewogICAgIHsKICAgICB9CiAKLSAg
ICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKKyAgICBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBSdW50aW1lQXJy
YXkqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJ1bnRpbWVBcnJheSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICAgICAgaWYgKCF0aGlzT2JqZWN0KQpAQCAtNTg1LDYgKzU4
OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcENh
bGxGcmFtZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uVmVyc2lvbihFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uUnVuKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkU3RyaW5nKEV4ZWNTdGF0ZSopOwogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZWFkRmlsZShFeGVjU3Rh
dGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2hlY2tT
eW50YXgoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvblJlYWRsaW5lKEV4ZWNTdGF0ZSopOwpAQCAtNzY1LDYgKzc3MCw3IEBAIGNsYXNzIEds
b2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiAgICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAidmVyc2lvbiIsIGZ1bmN0aW9uVmVyc2lvbiwgMSk7CiAgICAgICAgIGFkZEZ1bmN0aW9u
KHZtLCAicnVuIiwgZnVuY3Rpb25SdW4sIDEpOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImxv
YWQiLCBmdW5jdGlvbkxvYWQsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImxvYWRTdHJp
bmciLCBmdW5jdGlvbkxvYWRTdHJpbmcsIDEpOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgInJl
YWRGaWxlIiwgZnVuY3Rpb25SZWFkRmlsZSwgMSk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Y2hlY2tTeW50YXgiLCBmdW5jdGlvbkNoZWNrU3ludGF4LCAxKTsKICAgICAgICAgYWRkRnVuY3Rp
b24odm0sICJqc2NTdGFjayIsIGZ1bmN0aW9uSlNDU3RhY2ssIDEpOwpAQCAtMTQ0MSw2ICsxNDQ3
LDIwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkKEV4ZWNTdGF0
ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkU3RyaW5nKEV4ZWNTdGF0ZSogZXhl
YykKK3sKKyAgICBTdHJpbmcgc291cmNlQ29kZSA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5n
KGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKKworICAg
IE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsKKyAgICBKU1ZhbHVlIHJl
c3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBtYWtlU291cmNlKHNv
dXJjZUNvZGUpLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRpb24pOworICAgIGlmIChldmFs
dWF0aW9uRXhjZXB0aW9uKQorICAgICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMs
IGV2YWx1YXRpb25FeGNlcHRpb24pOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlYWRGaWxlKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICBTdHJpbmcgZmlsZU5hbWUgPSBleGVjLT5hcmd1bWVudCgw
KS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCA3NzljMWYwZTZmNTYyMDc0NDE2YjY2MmQ3
NmVjMTE5YTE0YTYyMDhjLi40MGY1MWExYWI2ZWE2ZDZmMGY4YmM0NmU5YWVmNjdlZTA1NjcxMTRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAK
QEAgLTE0OTIsMjYgKzE0OTIsMjcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2dl
dF9mcm9tX3Njb3BlKQogICAgIC8vIE1vZHVsZVZhciBpcyBhbHdheXMgY29udmVydGVkIHRvIENs
b3N1cmVWYXIgZm9yIGdldF9mcm9tX3Njb3BlLgogICAgIEFTU0VSVChnZXRQdXRJbmZvLnJlc29s
dmVUeXBlKCkgIT0gTW9kdWxlVmFyKTsKIAotICAgIFByb3BlcnR5U2xvdCBzbG90KHNjb3BlLCBQ
cm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKLSAgICBpZiAoIXNjb3BlLT5n
ZXRQcm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQsIHNsb3QpKSB7Ci0gICAgICAgIGlmIChnZXRQdXRJ
bmZvLnJlc29sdmVNb2RlKCkgPT0gVGhyb3dJZk5vdEZvdW5kKQotICAgICAgICAgICAgTExJTlRf
UkVUVVJOKGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVW5kZWZpbmVkVmFy
aWFibGVFcnJvcihleGVjLCBpZGVudCkpKTsKLSAgICAgICAgTExJTlRfUkVUVVJOKGpzVW5kZWZp
bmVkKCkpOwotICAgIH0KKyAgICBMTElOVF9SRVRVUk4oc2NvcGUtPmdldFByb3BlcnR5U2xvdChl
eGVjLCBpZGVudCwgWyZdIChib29sIGZvdW5kLCBQcm9wZXJ0eVNsb3QmIHNsb3QpIC0+IEpTVmFs
dWUgeworICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgICBpZiAoZ2V0UHV0SW5mby5y
ZXNvbHZlTW9kZSgpID09IFRocm93SWZOb3RGb3VuZCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVVbmRlZmluZWRWYXJpYWJsZUVy
cm9yKGV4ZWMsIGlkZW50KSk7CisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAg
ICAgICAgfQogCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBKU1ZhbHVlKCk7Ci0gICAgaWYgKHNjb3Bl
LT5pc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpKSB7Ci0gICAgICAgIC8vIFdoZW4gd2UgY2Fu
J3Qgc3RhdGljYWxseSBwcm92ZSB3ZSBuZWVkIGEgVERaIGNoZWNrLCB3ZSBtdXN0IHBlcmZvcm0g
dGhlIGNoZWNrIG9uIHRoZSBzbG93IHBhdGguCi0gICAgICAgIHJlc3VsdCA9IHNsb3QuZ2V0VmFs
dWUoZXhlYywgaWRlbnQpOwotICAgICAgICBpZiAocmVzdWx0ID09IGpzVERaVmFsdWUoKSkKLSAg
ICAgICAgICAgIExMSU5UX1RIUk9XKGNyZWF0ZVREWkVycm9yKGV4ZWMpKTsKLSAgICB9CisgICAg
ICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZSgpOworICAgICAgICBpZiAoc2NvcGUtPmlzR2xv
YmFsTGV4aWNhbEVudmlyb25tZW50KCkpIHsKKyAgICAgICAgICAgIC8vIFdoZW4gd2UgY2FuJ3Qg
c3RhdGljYWxseSBwcm92ZSB3ZSBuZWVkIGEgVERaIGNoZWNrLCB3ZSBtdXN0IHBlcmZvcm0gdGhl
IGNoZWNrIG9uIHRoZSBzbG93IHBhdGguCisgICAgICAgICAgICByZXN1bHQgPSBzbG90LmdldFZh
bHVlKGV4ZWMsIGlkZW50KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0ganNURFpWYWx1ZSgp
KQorICAgICAgICAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMs
IGNyZWF0ZVREWkVycm9yKGV4ZWMpKTsKKyAgICAgICAgfQogCi0gICAgQ29tbW9uU2xvd1BhdGhz
Ojp0cnlDYWNoZUdldEZyb21TY29wZUdsb2JhbChleGVjLCB2bSwgcGMsIHNjb3BlLCBzbG90LCBp
ZGVudCk7CisgICAgICAgIENvbW1vblNsb3dQYXRoczo6dHJ5Q2FjaGVHZXRGcm9tU2NvcGVHbG9i
YWwoZXhlYywgdm0sIHBjLCBzY29wZSwgc2xvdCwgaWRlbnQpOwogCi0gICAgaWYgKCFyZXN1bHQp
Ci0gICAgICAgIHJlc3VsdCA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnQpOwotICAgIExMSU5U
X1JFVFVSTihyZXN1bHQpOworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVy
biBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICB9KSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfdG9fc2NvcGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0
aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNw
cAppbmRleCAwOWExNzA0Nzc2NGJhMGMxZDc0ODdkYzQ4ZjY4N2EwNzk1Mzc3OWNiLi5kYjk2ODZl
YjgzN2I1Mjg5Njc1MTZmNzk5MmRhMTllNDA0OGYyMjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTc3MSw2ICs3NzEsOCBA
QCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcmVzb2x2ZV9zY29wZSkKICAgICBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudCA9IGV4ZWMtPmNvZGVCbG9jaygpLT5pZGVudGlmaWVyKHBjWzNdLnUub3Bl
cmFuZCk7CiAgICAgSlNTY29wZSogc2NvcGUgPSBleGVjLT51bmNoZWNrZWRSKHBjWzJdLnUub3Bl
cmFuZCkuUmVnaXN0ZXI6OnNjb3BlKCk7CiAgICAgSlNPYmplY3QqIHJlc29sdmVkU2NvcGUgPSBK
U1Njb3BlOjpyZXNvbHZlKGV4ZWMsIHNjb3BlLCBpZGVudCk7CisgICAgLy8gUHJveHkgY2FuIHRo
cm93IGFuIGVycm9yIGhlcmUsIGUuZy4gUHJveHkgaW4gd2l0aCBzdGF0ZW1lbnQncyBAdW5zY29w
YWJsZXMuCisgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CiAKICAgICBSZXNvbHZlVHlwZSByZXNvbHZl
VHlwZSA9IHN0YXRpY19jYXN0PFJlc29sdmVUeXBlPihwY1s0XS51Lm9wZXJhbmQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kU2xvdEJhc2VGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kU2xvdEJhc2VG
dW5jdGlvbi5jcHAKaW5kZXggMmQ2N2U0MzE3MWUyZGQ2Yzk0NTA4NzZjOWYyMmQyMWQzNWVkYjQ0
ZS4uMWYzMzU2MjY3ZmFmYjdkMzA1ZDk2M2FhYTkwN2ZlMmY0YmU2NGUwZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRTbG90QmFzZUZ1bmN0
aW9uLmNwcApAQCAtNTEsNyArNTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJv
dW5kU2xvdEJhc2VGdW5jdGlvbkNhbGwoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1l
ID0gYm91bmRTbG90QmFzZUZ1bmN0aW9uLT5uYW1lKCk7Ci0gICAgcmV0dXJuIGdldHRlcihleGVj
LCBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dGhpc1ZhbHVlKCkpLCBQcm9wZXJ0eU5hbWUoSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyhleGVjLCBuYW1lKSksIGJhc2VPYmplY3QpOworICAgIHJldHVybiBn
ZXR0ZXIoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNWYWx1ZSgpKSwgUHJvcGVydHlO
YW1lKElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgbmFtZSkpKTsKIH0KIAogSlNCb3VuZFNs
b3RCYXNlRnVuY3Rpb246OkpTQm91bmRTbG90QmFzZUZ1bmN0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFR5cGUgdHlw
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAppbmRleCA5MGFh
ZTEwMjM0M2YwOGQyNzRlYmQzYzFhMmQyODE3Zjc5YjdiYWM5Li5jNDczYzRmMWM5NWI1ZjAwNDhk
MGY0ZjA4Yjk0YmJkZGI1ZmVmZDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDSlNWYWx1ZS5oCkBAIC0yODcsNiArMjg3LDEwIEBAIGNsYXNzIEpTVmFsdWUgewogICAgIEpT
VmFsdWUgZ2V0KEV4ZWNTdGF0ZSosIHVpbnQ2NF90IHByb3BlcnR5TmFtZSkgY29uc3Q7CiAKICAg
ICBib29sIGdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CisgICAgdHlwZW5hbWUg
c3RkOjpyZXN1bHRfb2Y8RnVuYyhib29sLCBQcm9wZXJ0eVNsb3QmKT46OnR5cGUgZ2V0UHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgRnVuYykgY29uc3Q7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRnVuYz4KKyAgICB0eXBlbmFtZSBzdGQ6OnJlc3VsdF9vZjxGdW5jKGJvb2ws
IFByb3BlcnR5U2xvdCYpPjo6dHlwZSBnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmLCBGdW5jKSBjb25zdDsKIAogICAgIGJvb2wgcHV0KEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgYm9v
bCBwdXRJbmxpbmUoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
SW5saW5lcy5oCmluZGV4IGJlZGM2MjIyN2YwZTI3MGExYTU2MTZjMjA4YWUwYmVkMWUwZWM5MWQu
LjVhZTljYWIxZjE3NmQwMjNkMmIzODNhYzgxZGJjZDAyY2QyMGIwMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaApAQCAtNzY4LDYg
Kzc2OCwyMiBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEV4ZWNTdGF0ZSog
ZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUAogICAgICAgICBzbG90LmdldFZhbHVl
KGV4ZWMsIHByb3BlcnR5TmFtZSkgOiBqc1VuZGVmaW5lZCgpOwogfQogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBGdW5jPgorQUxXQVlTX0lOTElORSB0eXBlbmFtZSBzdGQ6OnJlc3VsdF9vZjxGdW5jKGJv
b2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBKU1ZhbHVlOjpnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBGdW5jIGZ1bmN0aW9uKSBjb25z
dAoreworICAgIFByb3BlcnR5U2xvdCBzbG90KGFzVmFsdWUoKSwgUHJvcGVydHlTbG90OjpJbnRl
cm5hbE1ldGhvZFR5cGU6OkdldCk7CisgICAgcmV0dXJuIGdldFByb3BlcnR5U2xvdChleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QsIGZ1bmN0aW9uKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgRnVu
Yz4KK0FMV0FZU19JTkxJTkUgdHlwZW5hbWUgc3RkOjpyZXN1bHRfb2Y8RnVuYyhib29sLCBQcm9w
ZXJ0eVNsb3QmKT46OnR5cGUgSlNWYWx1ZTo6Z2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90LCBGdW5jIGZ1
bmN0aW9uKSBjb25zdAoreworICAgIGJvb2wgZm91bmQgPSBnZXRQcm9wZXJ0eVNsb3QoZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAg
ICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGZ1bmN0aW9uKGZvdW5kLCBzbG90KTsKK30KKwog
QUxXQVlTX0lOTElORSBib29sIEpTVmFsdWU6OmdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkgY29uc3QK
IHsKICAgICAvLyBJZiB0aGlzIGlzIGEgcHJpbWl0aXZlLCB3ZSdsbCBuZWVkIHRvIHN5bnRoZXNp
emUgdGhlIHByb3RvdHlwZSAtCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uY3BwCmluZGV4IDg3ODY0MjhhODJlN2Q3NGRjYmRhZmY1YWQ4YWZlOGMxMjBmMjdiYzgu
LjAyZTA2YzIxMTZhYmIwZjU3Y2M1NDM4MTVlZWFhY2Y5ZjFjNTExYjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAg
c3RhdGljIEpTVmFsdWUgcmV0cmlldmVBcmd1bWVudHMoRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0
aW9uKiBmdW5jdGlvbk9iaikKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29k
ZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTRnVuY3Rpb24q
IHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwpAQCAtMzE5LDcgKzMx
OSw3IEBAIHN0YXRpYyBKU1ZhbHVlIHJldHJpZXZlQ2FsbGVyRnVuY3Rpb24oRXhlY1N0YXRlKiBl
eGVjLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQo
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KikKK0VuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmNhbGxlckdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTRnVu
Y3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDMwN2RlYzEzYzU1ZGYx
YWQyMTM5YTI4MDk4MGRkZjJiMzc0MTQ3MzQuLjMwMDcwZDBkNjFkN2UyYjZhZDhiYWRjYmZkMTk3
MWFjNzc1N2IyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmgKQEAgLTE5OCw4ICsxOTgsMTAgQEAgY2xhc3MgSlNGdW5jdGlvbiA6IHB1YmxpYyBKU0NhbGxl
ZSB7CiAKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogCi0gICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwg
SlNPYmplY3QqKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzR2V0dGVyKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgbmFtZUdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
KTsKIAogICAgIFdyaXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gbV9leGVjdXRhYmxlOwogICAg
IFdyaXRlQmFycmllcjxGdW5jdGlvblJhcmVEYXRhPiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3RvcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXggZjNjN2M2ODA4NGU4ZjNm
ZGYxYjFiZjJjNmVlOGU4YjQyYzA1MThjMi4uNmViMDg5MjEzN2ZkODMxNDJiZDYwZTgxMWM0NTI4
MGQ1MDcwY2UwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5s
aW5lcy5oCkBAIC0xNTAsNyArMTUwLDkgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5l
cmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzKEV4ZWNTdGF0ZSogZXhlYywgU3QKICAgICAg
ICAgaWYgKGlzVHlwZWRWaWV3KG9iamVjdC0+Y2xhc3NJbmZvKCktPnR5cGVkQXJyYXlTdG9yYWdl
VHlwZSkpCiAgICAgICAgICAgICBsZW5ndGggPSBqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPihv
YmplY3QpLT5sZW5ndGgoKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBQcm9wZXJ0eVNs
b3QgbGVuZ3RoU2xvdChvYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpH
ZXQpOworICAgICAgICAgICAgLy8gVGhpcyBnZXRQcm9wZXJ0eVNsb3Qgb3BlcmF0aW9uIHNob3Vs
ZCBub3QgYmUgb2JzZXJ2ZWQgYnkgdGhlIFByb3h5LgorICAgICAgICAgICAgLy8gU28gd2UgdXNl
IFZNSW5xdWlyeS4gQW5kIHB1cmdlIHRoZSBwcm94eSBjYXNlIGJ5IGlzVGFpbnRlZEJ5UHJveHko
KSBndWFyZC4KKyAgICAgICAgICAgIFByb3BlcnR5U2xvdCBsZW5ndGhTbG90KG9iamVjdCwgUHJv
cGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSk7CiAgICAgICAgICAgICBv
YmplY3QtPmdldFByb3BlcnR5U2xvdChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGxl
bmd0aFNsb3QpOwogCiAgICAgICAgICAgICBKU1ZhbHVlIGl0ZXJhdG9yRnVuYyA9IG9iamVjdC0+
Z2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sKTsKQEAgLTE2NSw3ICsx
NjcsNyBAQCBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dp
dGhBcmd1bWVudHMoRXhlY1N0YXRlKiBleGVjLCBTdAogCiAgICAgICAgICAgICBpZiAoIWl0ZXJh
dG9yRnVuYy5pc1VuZGVmaW5lZCgpCiAgICAgICAgICAgICAgICAgJiYgKGl0ZXJhdG9yRnVuYyAh
PSBvYmplY3QtPmdsb2JhbE9iamVjdCgpLT5hcnJheVByb3RvVmFsdWVzRnVuY3Rpb24oKQotICAg
ICAgICAgICAgICAgICAgICB8fCBsZW5ndGhTbG90LmlzQWNjZXNzb3IoKSB8fCBsZW5ndGhTbG90
LmlzQ3VzdG9tKCkKKyAgICAgICAgICAgICAgICAgICAgfHwgbGVuZ3RoU2xvdC5pc0FjY2Vzc29y
KCkgfHwgbGVuZ3RoU2xvdC5pc0N1c3RvbSgpIHx8IGxlbmd0aFNsb3QuaXNUYWludGVkQnlQcm94
eSgpCiAgICAgICAgICAgICAgICAgICAgIHx8IGhhc0FueUFycmF5U3RvcmFnZShvYmplY3QtPmlu
ZGV4aW5nVHlwZSgpKSkpIHsKIAogICAgICAgICAgICAgICAgICAgICBDYWxsRGF0YSBjYWxsRGF0
YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFt
ZXNwYWNlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxl
TmFtZXNwYWNlT2JqZWN0LmNwcAppbmRleCA5ZTk5NDMyNDY5NTRmMzAyY2YwZmU4MDg3NDBkNmUx
MTQ3Njc2YTMzLi40MGRkYTczMzNmZjcyMGFkZjYwOThmZjQ3NzU3MmYxZWIxODZhZWEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZU5hbWVzcGFjZU9i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1l
c3BhY2VPYmplY3QuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgSlNNb2R1bGVOYW1lc3BhY2VP
YmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
ICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9tb2R1bGVSZWNvcmQpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KikKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsK
ICAgICBKU01vZHVsZU5hbWVzcGFjZU9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU01vZHVs
ZU5hbWVzcGFjZU9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBKU01v
ZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gdGhpc09iamVjdC0+bW9kdWxlUmVjb3JkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IGEwODEz
MjFjYzljYTFiMDUzMGU1OGUxYzA4ZmVhOWU3YjIwMzZiOWUuLjViZTlmMDYxYTE3OGNkZjRmZDNm
NzUwNmU3MmQ4MTBhODhjZWE4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuY3BwCkBAIC00NzgsMTAgKzQ3OCwxMCBAQCBib29sIFN0cmluZ2lmaWVyOjpI
b2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmlu
Z0J1aQogICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QobV9vYmplY3QuZ2V0KCksIFByb3Bl
cnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwogICAgICAgICAgICAgaWYgKG1fb2Jq
ZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG1fb2JqZWN0Lmdl
dCgpLCBleGVjLCBpbmRleCwgc2xvdCkpIHsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNsb3Qu
Z2V0VmFsdWUoZXhlYywgaW5kZXgpOwotICAgICAgICAgICAgICAgIGlmIChleGVjLT5oYWRFeGNl
cHRpb24oKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICAgICAgdmFsdWUgPSBqc1VuZGVmaW5lZCgpOworICAgICAgICAg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIEFwcGVuZCB0aGUgc2VwYXJhdG9yIHN0cmluZy4K
QEAgLTQ5NSw4ICs0OTUsMTEgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0
UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkKICAgICAgICAgLy8g
R2V0IHRoZSB2YWx1ZS4KICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QobV9vYmplY3QuZ2V0KCks
IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwogICAgICAgICBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUgPSBtX3Byb3BlcnR5TmFtZXMtPnByb3BlcnR5TmFtZVZlY3Rvcigp
W2luZGV4XTsKLSAgICAgICAgaWYgKCFtX29iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJv
cGVydHlTbG90KG1fb2JqZWN0LmdldCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAg
ICAgICBpZiAoIW1fb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNsb3QobV9v
YmplY3QuZ2V0KCksIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgICAgIGlm
IChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgICAgICBKU1ZhbHVlIHZhbHVl
ID0gc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC02MjcsNiArNjMw
LDggQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJl
ZCkKICAgICAgICAgICAgICAgICAgICAgICAgIGluVmFsdWUgPSBzbG90LmdldFZhbHVlKG1fZXhl
YywgaW5kZXgpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
ICAgICBpblZhbHVlID0ganNVbmRlZmluZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVO
TElLRUxZKG1fZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQorICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGpzTnVsbCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgaWYgKGluVmFsdWUuaXNPYmplY3QoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggYzRkMzI5Y2MzNTkyMDU2YTI1ZDk2MTRm
NzJjZDk0NzlkYjBmY2MxOS4uYTU1YzJmNTBlZTI4OGFmOGRiY2QzODJlODdhOGE3Mzg5NTVjNTk0
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNTEsNiAr
MTUxLDEwIEBAIGNsYXNzIEpTT2JqZWN0IDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBib29sIGdl
dFByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgIGJvb2wgZ2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KKyAgICB0eXBl
bmFtZSBzdGQ6OnJlc3VsdF9vZjxGdW5jKGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBnZXRQ
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBGdW5jKSBjb25zdDsKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorICAgIHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPEZ1bmMo
Ym9vbCwgUHJvcGVydHlTbG90Jik+Ojp0eXBlIGdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBQ
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYsIEZ1bmMpIGNvbnN0OwogCiAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTEzNjEsNiArMTM2NSwyMiBAQCBpbmxpbmUg
SlNWYWx1ZSBKU09iamVjdDo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlO
YW1lKSBjb25zdAogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBGdW5jPgoraW5saW5lIHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPEZ1bmMoYm9vbCwgUHJv
cGVydHlTbG90Jik+Ojp0eXBlIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBGdW5jIGZ1bmN0aW9uKSBjb25zdAorewor
ICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXMsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RU
eXBlOjpHZXQpOworICAgIHJldHVybiBnZXRQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90LCBmdW5jdGlvbik7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CitpbmxpbmUg
dHlwZW5hbWUgc3RkOjpyZXN1bHRfb2Y8RnVuYyhib29sLCBQcm9wZXJ0eVNsb3QmKT46OnR5cGUg
SlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCwgRnVuYyBmdW5jdGlvbikgY29uc3QKK3sK
KyAgICBib29sIGZvdW5kID0gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRQcm9wZXJ0
eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGZ1bmN0aW9uKGZvdW5kLCBz
bG90KTsKK30KKwogdGVtcGxhdGU8SlNPYmplY3Q6OlB1dE1vZGUgbW9kZT4KIEFMV0FZU19JTkxJ
TkUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwoVk0mIHZtLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCA2ODcwNThiYThkNjcxMTc1OWVjZTIxZGM0ZjNiMTEw
YTk5ZmI3NDk0Li43MGNlY2Q4MDc3YWJhYWVmMGNjODNkMTIzZmEzNDI3ZjcyOWFlN2JlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAK
QEAgLTI3NywzNCArMjc3LDM1IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
UHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CiAKICAgICBKU1N0cmluZyogcmVzdWx0ID0gdGhpc09iamVj
dC0+c3RydWN0dXJlKHZtKS0+b2JqZWN0VG9TdHJpbmdWYWx1ZSgpOwotICAgIGlmICghcmVzdWx0
KSB7Ci0gICAgICAgIFByb3BlcnR5TmFtZSB0b1N0cmluZ1RhZ1N5bWJvbCA9IGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS50b1N0cmluZ1RhZ1N5bWJvbDsKLSAgICAgICAgUHJvcGVydHlTbG90IHRvU3Ry
aW5nVGFnU2xvdCh0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6
R2V0KTsKLSAgICAgICAgaWYgKHRoaXNPYmplY3QtPmdldFByb3BlcnR5U2xvdChleGVjLCB0b1N0
cmluZ1RhZ1N5bWJvbCwgdG9TdHJpbmdUYWdTbG90KSkgeworICAgIGlmIChyZXN1bHQpCisgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKworICAgIFByb3BlcnR5TmFtZSB0
b1N0cmluZ1RhZ1N5bWJvbCA9IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0cmluZ1RhZ1N5bWJv
bDsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QtPmdldFByb3BlcnR5U2xv
dChleGVjLCB0b1N0cmluZ1RhZ1N5bWJvbCwgWyZdIChib29sIGZvdW5kLCBQcm9wZXJ0eVNsb3Qm
IHRvU3RyaW5nVGFnU2xvdCkgLT4gSlNWYWx1ZSB7CisgICAgICAgIGlmIChmb3VuZCkgewogICAg
ICAgICAgICAgSlNWYWx1ZSBzdHJpbmdUYWcgPSB0b1N0cmluZ1RhZ1Nsb3QuZ2V0VmFsdWUoZXhl
YywgdG9TdHJpbmdUYWdTeW1ib2wpOwogICAgICAgICAgICAgaWYgKFVOTElLRUxZKHZtLmV4Y2Vw
dGlvbigpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUo
KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAgICAgICAgIGlmIChz
dHJpbmdUYWcuaXNTdHJpbmcoKSkgewogICAgICAgICAgICAgICAgIEpTUm9wZVN0cmluZzo6Um9w
ZUJ1aWxkZXIgcm9wZUJ1aWxkZXIodm0pOwogICAgICAgICAgICAgICAgIHJvcGVCdWlsZGVyLmFw
cGVuZCh2bS5zbWFsbFN0cmluZ3Mub2JqZWN0U3RyaW5nU3RhcnQoKSk7CiAgICAgICAgICAgICAg
ICAgcm9wZUJ1aWxkZXIuYXBwZW5kKGpzQ2FzdDxKU1N0cmluZyo+KHN0cmluZ1RhZykpOwogICAg
ICAgICAgICAgICAgIHJvcGVCdWlsZGVyLmFwcGVuZCh2bS5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hh
cmFjdGVyU3RyaW5nKCddJykpOwotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJvcGVCdWlsZGVy
LnJlbGVhc2UoKTsKKyAgICAgICAgICAgICAgICBKU1N0cmluZyogcmVzdWx0ID0gcm9wZUJ1aWxk
ZXIucmVsZWFzZSgpOwogCiAgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+c3RydWN0dXJlKHZt
KS0+c2V0T2JqZWN0VG9TdHJpbmdWYWx1ZShleGVjLCB2bSwgcmVzdWx0LCB0b1N0cmluZ1RhZ1Ns
b3QpOwotICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAK
ICAgICAgICAgU3RyaW5nIG5ld1N0cmluZyA9IFdURjo6dHJ5TWFrZVN0cmluZygiW29iamVjdCAi
LCB0aGlzT2JqZWN0LT5tZXRob2RUYWJsZShleGVjLT52bSgpKS0+Y2xhc3NOYW1lKHRoaXNPYmpl
Y3QpLCAiXSIpOwogICAgICAgICBpZiAoIW5ld1N0cmluZykKLSAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUodGhyb3dPdXRPZk1lbW9yeUVycm9yKGV4ZWMpKTsKKyAgICAgICAgICAg
IHJldHVybiB0aHJvd091dE9mTWVtb3J5RXJyb3IoZXhlYyk7CiAKLSAgICAgICAgcmVzdWx0ID0g
anNOb250cml2aWFsU3RyaW5nKCZ2bSwgbmV3U3RyaW5nKTsKKyAgICAgICAgSlNTdHJpbmcqIHJl
c3VsdCA9IGpzTm9udHJpdmlhbFN0cmluZygmdm0sIG5ld1N0cmluZyk7CiAgICAgICAgIHRoaXNP
YmplY3QtPnN0cnVjdHVyZSh2bSktPnNldE9iamVjdFRvU3RyaW5nVmFsdWUoZXhlYywgdm0sIHJl
c3VsdCwgdG9TdHJpbmdUYWdTbG90KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3BlcnR5U2xvdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eVNsb3QuY3BwCmluZGV4IGM2ODgyNDQ1ZjBiZGFiNTMzYTk0ZTZjMTA0ODdhMzdlMTJlMmQ1MDUu
LjQ5NmQwYWM0Y2VlNDBiOWYzMTI0ODAyZjA5ODUzYzgyNzM2Y2UxYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcApAQCAtMzgsNyArMzgsNyBA
QCBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6Y3VzdG9tR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSkgYwogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBkaWZm
ZXJlbmNlcyBpbiBjdXN0b20gdmFsdWVzIGFuZCBjdXN0b20gYWNjZXNzb3JzLgogICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMTQKICAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IG1fYXR0cmlidXRlcyAmIEN1c3RvbUFjY2Vzc29yID8gbV90aGlzVmFsdWUg
OiBKU1ZhbHVlKHNsb3RCYXNlKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRh
LmN1c3RvbS5nZXRWYWx1ZShleGVjLCBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKSwgcHJvcGVy
dHlOYW1lLCBzbG90QmFzZSgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZShtX2RhdGEu
Y3VzdG9tLmdldFZhbHVlKGV4ZWMsIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpLCBwcm9wZXJ0
eU5hbWUpKTsKIH0KIAogSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmdldFB1cmVSZXN1bHQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAppbmRleCBl
YTVjYzlkZmY3OTA0Y2YwZGExOWVjOTk4MTgxNTVkN2IzZDgxN2NlLi5kN2Q3NmM3ZTNjYTY1ZmRh
ZmU1YWMyOTM1ZDUxODg5ZGZiNTVkMjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm9wZXJ0eVNsb3QuaApAQCAtOTQsMTIgKzk0LDkgQEAgY2xhc3MgUHJvcGVydHlTbG90
IHsKICAgICB7CiAgICAgfQogCi0gICAgLy8gVGhlcmUgYXJlIHR3byB0eXBlcyBvZiBjdXN0b20g
cHJvcGVydGllczogY3VzdG9tIHZhbHVlcyBhbmQgY3VzdG9tIGFjY2Vzc29ycy4KLSAgICAvLyBG
b3IgdGhlIHNlY29uZCBhcmd1bWVudCwgY3VzdG9tIHZhbHVlcyBhcmUgcGFzc2VkIHRoZSBzbG90
QmFzZSAodGhlIHByb3BlcnR5IGhvbGRlciksIGN1c3RvbSBhY2Nlc3NvcnMgYXJlIHBhc3NlZCB0
aGUgdGhpc1ZhdWxlIChyZWNpZXZlcikuCi0gICAgLy8gQW5kIHdoZW4gZ2V0dGluZyB0aGUgcHJv
cGVydHkgZGVzY3JpcHRvciBmcm9tIHRoZXNlIHByb3BlcnRpZXMsIGN1c3RvbSB2YWx1ZXMgcmV0
dXJuIHRoZSBkYXRhIGRlc2NyaXB0b3Igd2hpbGUgY3VzdG9tIGFjY2Vzc29ycyByZXR1cm4gdGhl
IGFjY2Vzc29yIGRlc2NyaXB0b3IuCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHNsb3RCYXNl
IC8gcmVjZWl2ZXIgYmVoYXZpb3IgZGlmZmVyZW5jZSBpbiBjdXN0b20gdmFsdWVzIGFuZCBjdXN0
b20gYWNjZXNzb3JzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTgwMTQKLSAgICB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlICgqR2V0VmFsdWVGdW5jKShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqIHNsb3RCYXNlKTsKKyAgICB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlICgqR2V0VmFsdWVGdW5j
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAK
ICAgICBKU1ZhbHVlIGdldFZhbHVlKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSkgY29uc3Q7CiAg
ICAgSlNWYWx1ZSBnZXRWYWx1ZShFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpIGNv
bnN0OwpAQCAtMjQ5LDYgKzI0NiwxMSBAQCBjbGFzcyBQcm9wZXJ0eVNsb3QgewogICAgICAgICBt
X29mZnNldCA9IG9mZnNldDsKICAgICB9CiAKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSgpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gbV90aGlzVmFsdWU7CisgICAgfQorCiAgICAgdm9pZCBz
ZXRUaGlzVmFsdWUoSlNWYWx1ZSB0aGlzVmFsdWUpCiAgICAgewogICAgICAgICBtX3RoaXNWYWx1
ZSA9IHRoaXNWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3h5T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2Jq
ZWN0LmNwcAppbmRleCA4OGU2MzRkMzQ3ZTBiYjdhOTk5M2RhMjVkYmNkNDNkNTVkMzE4OTJlLi4w
NDYwYjcwODZjZTI0ZTM2NGEyYTlhMzc5ZGNhZDQ1ZjJhNmU1YzQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCkBAIC05NSwyMiArOTUsMjEgQEAg
dm9pZCBQcm94eU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgdGFyZ2V0LCBKU1ZhbHUKIAogc3RhdGljIGNvbnN0IGNoYXIqIHNfcHJveHlBbHJl
YWR5UmV2b2tlZEVycm9yTWVzc2FnZSA9ICJQcm94eSBoYXMgYWxyZWFkeSBiZWVuIHJldm9rZWQu
IE5vIG1vcmUgb3BlcmF0aW9ucyBhcmUgYWxsb3dlZCB0byBiZSBwZXJmb3JtZWQgb24gaXQiOwog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcGVyZm9ybVByb3h5R2V0KEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09i
amVjdCogc2xvdEJhc2UpCitzdGF0aWMgSlNWYWx1ZSBwZXJmb3JtUHJveHlHZXQoRXhlY1N0YXRl
KiBleGVjLCBQcm94eU9iamVjdCogcHJveHlPYmplY3QsIEpTVmFsdWUgcmVjZWl2ZXIsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBp
ZiAoVU5MSUtFTFkoIXZtLmlzU2FmZVRvUmVjdXJzZSgpKSkgewogICAgICAgICB0aHJvd1N0YWNr
T3ZlcmZsb3dFcnJvcihleGVjKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Zh
bHVlKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAgIH0KIAotICAgIFByb3h5T2Jq
ZWN0KiBwcm94eU9iamVjdCA9IGpzQ2FzdDxQcm94eU9iamVjdCo+KHNsb3RCYXNlKTsKICAgICBK
U09iamVjdCogdGFyZ2V0ID0gcHJveHlPYmplY3QtPnRhcmdldCgpOwogCiAgICAgaWYgKHByb3Bl
cnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT51bmRlcnNjb3JlUHJvdG8pCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocHJveHlPYmplY3QtPnBlcmZvcm1HZXRQcm90b3R5cGUoZXhl
YykpOworICAgICAgICByZXR1cm4gcHJveHlPYmplY3QtPnBlcmZvcm1HZXRQcm90b3R5cGUoZXhl
Yyk7CiAKICAgICBhdXRvIHBlcmZvcm1EZWZhdWx0R2V0ID0gWyZdIHsKLSAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh0YXJnZXQtPmdldChleGVjLCBwcm9wZXJ0eU5hbWUpKTsKKyAgICAg
ICAgcmV0dXJuIHRhcmdldC0+Z2V0KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgfTsKIAogICAg
IGlmICh2bS5wcm9wZXJ0eU5hbWVzLT5pc1ByaXZhdGVOYW1lKElkZW50aWZpZXI6OmZyb21VaWQo
JnZtLCBwcm9wZXJ0eU5hbWUudWlkKCkpKSkKQEAgLTExOCwxNCArMTE3LDE0IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBwZXJmb3JtUHJveHlHZXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsCiAKICAgICBKU1ZhbHVlIGhhbmRsZXJWYWx1ZSA9IHByb3h5T2JqZWN0
LT5oYW5kbGVyKCk7CiAgICAgaWYgKGhhbmRsZXJWYWx1ZS5pc051bGwoKSkKLSAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKHNfcHJveHlBbHJlYWR5UmV2
b2tlZEVycm9yTWVzc2FnZSkpOworICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYywg
QVNDSUlMaXRlcmFsKHNfcHJveHlBbHJlYWR5UmV2b2tlZEVycm9yTWVzc2FnZSkpOwogCiAgICAg
SlNPYmplY3QqIGhhbmRsZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPihoYW5kbGVyVmFsdWUpOwogICAg
IENhbGxEYXRhIGNhbGxEYXRhOwogICAgIENhbGxUeXBlIGNhbGxUeXBlOwogICAgIEpTVmFsdWUg
Z2V0SGFuZGxlciA9IGhhbmRsZXItPmdldE1ldGhvZChleGVjLCBjYWxsRGF0YSwgY2FsbFR5cGUs
IHZtLnByb3BlcnR5TmFtZXMtPmdldCwgQVNDSUlMaXRlcmFsKCInZ2V0JyBwcm9wZXJ0eSBvZiBh
IFByb3h5J3MgaGFuZGxlciBvYmplY3Qgc2hvdWxkIGJlIGNhbGxhYmxlIikpOwogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKICAgICBpZiAoZ2V0
SGFuZGxlci5pc1VuZGVmaW5lZCgpKQogICAgICAgICByZXR1cm4gcGVyZm9ybURlZmF1bHRHZXQo
KTsKQEAgLTEzMywyNiArMTMyLDM2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwZXJmb3JtUHJv
eHlHZXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsCiAgICAgTWFy
a2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOwogICAgIGFyZ3VtZW50cy5hcHBlbmQodGFyZ2V0
KTsKICAgICBhcmd1bWVudHMuYXBwZW5kKGlkZW50aWZpZXJUb1NhZmVQdWJsaWNKU1ZhbHVlKHZt
LCBJZGVudGlmaWVyOjpmcm9tVWlkKCZ2bSwgcHJvcGVydHlOYW1lLnVpZCgpKSkpOwotICAgIGFy
Z3VtZW50cy5hcHBlbmQoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGFyZ3VtZW50
cy5hcHBlbmQocmVjZWl2ZXIpOwogICAgIEpTVmFsdWUgdHJhcFJlc3VsdCA9IGNhbGwoZXhlYywg
Z2V0SGFuZGxlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBoYW5kbGVyLCBhcmd1bWVudHMpOwogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKICAgICBQ
cm9wZXJ0eURlc2NyaXB0b3IgZGVzY3JpcHRvcjsKICAgICBpZiAodGFyZ2V0LT5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKSkgewogICAgICAg
ICBpZiAoZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkgJiYgIWRlc2NyaXB0b3IuY29uZmln
dXJhYmxlKCkgJiYgIWRlc2NyaXB0b3Iud3JpdGFibGUoKSkgewogICAgICAgICAgICAgaWYgKCFz
YW1lVmFsdWUoZXhlYywgZGVzY3JpcHRvci52YWx1ZSgpLCB0cmFwUmVzdWx0KSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlByb3h5
IGhhbmRsZXIncyAnZ2V0JyByZXN1bHQgb2YgYSBub24tY29uZmlndXJhYmxlIGFuZCBub24td3Jp
dGFibGUgcHJvcGVydHkgc2hvdWxkIGJlIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSB0YXJnZXQncyBw
cm9wZXJ0eSIpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYywg
QVNDSUlMaXRlcmFsKCJQcm94eSBoYW5kbGVyJ3MgJ2dldCcgcmVzdWx0IG9mIGEgbm9uLWNvbmZp
Z3VyYWJsZSBhbmQgbm9uLXdyaXRhYmxlIHByb3BlcnR5IHNob3VsZCBiZSB0aGUgc2FtZSB2YWx1
ZSBhcyB0aGUgdGFyZ2V0J3MgcHJvcGVydHkiKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoZGVzY3Jp
cHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpICYmICFkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSgp
ICYmIGRlc2NyaXB0b3IuZ2V0dGVyKCkuaXNVbmRlZmluZWQoKSkgewogICAgICAgICAgICAgaWYg
KCF0cmFwUmVzdWx0LmlzVW5kZWZpbmVkKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJQcm94eSBoYW5kbGVyJ3MgJ2dldCcgcmVz
dWx0IG9mIGEgbm9uLWNvbmZpZ3VyYWJsZSBhY2Nlc3NvciBwcm9wZXJ0eSB3aXRob3V0IGEgZ2V0
dGVyIHNob3VsZCBiZSB1bmRlZmluZWQiKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93
VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUHJveHkgaGFuZGxlcidzICdnZXQnIHJlc3Vs
dCBvZiBhIG5vbi1jb25maWd1cmFibGUgYWNjZXNzb3IgcHJvcGVydHkgd2l0aG91dCBhIGdldHRl
ciBzaG91bGQgYmUgdW5kZWZpbmVkIikpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIHJldHVybiB0
cmFwUmVzdWx0OworfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0cmFwUmVzdWx0KTsK
K2Jvb2wgUHJveHlPYmplY3Q6OnBlcmZvcm1HZXQoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNWYWx1ZSByZXN1
bHQgPSBwZXJmb3JtUHJveHlHZXQoZXhlYywgdGhpcywgc2xvdC50aGlzVmFsdWUoKSwgcHJvcGVy
dHlOYW1lKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB1bnNpZ25lZCBpZ25vcmVkQXR0cmlidXRlcyA9IDA7CisgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzLCBpZ25vcmVkQXR0cmlidXRlcywgcmVzdWx0KTsKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogYm9vbCBQcm94eU9iamVjdDo6cGVyZm9ybUludGVybmFsTWV0aG9kR2V0T3duUHJvcGVy
dHkoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCkBAIC0zMzcsOCArMzQ2LDcgQEAgYm9vbCBQcm94eU9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90Q29tbW9uKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnQKICAg
ICBzbG90LnNldElzVGFpbnRlZEJ5UHJveHkoKTsKICAgICBzd2l0Y2ggKHNsb3QuaW50ZXJuYWxN
ZXRob2RUeXBlKCkpIHsKICAgICBjYXNlIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBl
OjpHZXQ6Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIEN1c3RvbUFjY2Vzc29yLCBwZXJm
b3JtUHJveHlHZXQpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHBlcmZv
cm1HZXQoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICBjYXNlIFByb3BlcnR5U2xvdDo6
SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eToKICAgICAgICAgcmV0dXJuIHBlcmZv
cm1JbnRlcm5hbE1ldGhvZEdldE93blByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiAgICAgY2FzZSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6SGFzUHJvcGVydHk6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaAppbmRleCAxMWRl
NmY2ZmZlMGY2MjliZDQ1NmM3MjgyZmUzMjkxZDU3MTg1YzIwLi5hODJlMzVjMzJkZjk2MWJjZGY4
M2FlODMyYmQ2NTc4MDM5MzlkZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm94eU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3h5T2JqZWN0LmgKQEAgLTk1LDYgKzk1LDcgQEAgY2xhc3MgUHJveHlPYmplY3QgOiBwdWJs
aWMgSlNOb25GaW5hbE9iamVjdCB7CiAKICAgICBib29sIGdldE93blByb3BlcnR5U2xvdENvbW1v
bihFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgIGJvb2wgcGVy
Zm9ybUludGVybmFsTWV0aG9kR2V0T3duUHJvcGVydHkoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBib29sIHBlcmZvcm1HZXQoRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBib29sIHBlcmZvcm1IYXNQcm9wZXJ0eShFeGVj
U3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBEZWZhdWx0RGVsZXRlRnVuY3Rpb24+CiAgICAgYm9vbCBwZXJmb3JtRGVsZXRlKEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZSwgRGVmYXVsdERlbGV0ZUZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCAy
NDNhMzVmNjE5ODRkMDE0NGJiMTZhNGE3ZDViOTRhY2MxY2M4ZmE2Li5kMjM3ODliYzAzOTU2ZjQ4
Y2RhOGJiZTczYzk2M2UxMGNkODIyZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0zMSwxNCArMzEsMTQgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
cklucHV0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lLCBKU09iamVjdCopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0
cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUsIEpTT2JqZWN0Kik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJ
bnB1dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBF
bmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBD
b25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbihF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0
cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOwogdGVtcGxhdGU8aW50IE4+Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNP
YmplY3QqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcihF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogc3RhdGljIGJvb2wg
c2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpOwogc3RhdGljIGJvb2wgc2V0UmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKQEAgLTE0NywzNyAr
MTQ3LDM3IEBAIEpTVmFsdWUgUmVnRXhwQ29uc3RydWN0b3I6OmdldFJpZ2h0Q29udGV4dChFeGVj
U3RhdGUqIGV4ZWMpCiB9CiAKIHRlbXBsYXRlPGludCBOPgotRW5jb2RlZEpTVmFsdWUgcmVnRXhw
Q29uc3RydWN0b3JEb2xsYXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3Ry
dWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIE4pKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2Rl
ZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5pbnB1dCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikK
K0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpLT5tdWx0aWxpbmUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBD
b25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBD
b25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhlYywg
MCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbihFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09i
amVjdCopCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbihFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSktPmdldExhc3RQYXJlbihleGVjKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldExl
ZnRDb250ZXh0KGV4ZWMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JS
aWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JS
aWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3Ry
dWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRSaWdodENvbnRleHQoZXhlYykp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
ZnJvbS1zY29wZS1keW5hbWljLW9udG8tcHJveHkuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2dldC1mcm9tLXNjb3BlLWR5bmFtaWMtb250by1wcm94eS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jYTcxNTYxZWYyYjYxZjVmOGIzNzQ4YzhiODg1MDU5NDUyNDdjNTkyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtZnJvbS1zY29w
ZS1keW5hbWljLW9udG8tcHJveHkuanMKQEAgLTAsMCArMSwxMDYgQEAKK2Z1bmN0aW9uIHNob3Vs
ZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgdmFsdWU6ICR7U3RyaW5nKGFjdHVhbCl9YCk7Cit9
CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yTWVzc2FnZSkgeworICAgIHZhciBl
cnJvclRocm93biA9IGZhbHNlOworICAgIHZhciBlcnJvciA9IG51bGw7CisgICAgdHJ5IHsKKyAg
ICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3JUaHJvd24gPSB0
cnVlOworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3JUaHJvd24pCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicpOworICAgIGlmIChTdHJpbmcoZXJy
b3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIGVycm9y
OiAke1N0cmluZyhlcnJvcil9YCk7Cit9CisKKy8vIExMSW50IHNsb3cgcGF0aCBvcGVyYXRpb24u
CitzaG91bGRUaHJvdyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIHRhcmdldCA9IHt9OworICAgIHZh
ciBoYW5kbGVyID0geworICAgICAgICBoYXM6IGZ1bmN0aW9uIChyZWNlaXZlciwgbmFtZSkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdpJzsKKyAgICAgICAgfSwKKyAg
ICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZlcikKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdpJykKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIk5HIik7CisgICAgICAgICAgICByZXR1cm4gNDI7CisgICAgICAgIH0KKyAgICB9Owor
ICAgIHZhciBwcm94eSA9IG5ldyBQcm94eSh0YXJnZXQsIGhhbmRsZXIpOworICAgIHdpdGggKHBy
b3h5KSB7CisgICAgICAgIGk7CisgICAgfQorfSwgYEVycm9yOiBOR2ApOworCisvLyBCYXNlbGlu
ZSBKSVQgb3BlcmF0aW9uLgorc2hvdWxkVGhyb3coZnVuY3Rpb24gKCkgeworICAgIHZhciBmbGFn
ID0gZmFsc2U7CisgICAgdmFyIHRhcmdldCA9IHt9OworICAgIHZhciBoYW5kbGVyID0geworICAg
ICAgICBoYXM6IGZ1bmN0aW9uIChyZWNlaXZlciwgbmFtZSkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIG5hbWUgPT09ICdpJzsKKyAgICAgICAgfSwKKyAgICAgICAgZ2V0OiBmdW5jdGlv
biAodGFyZ2V0LCBuYW1lLCByZWNlaXZlcikKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG5h
bWUgPT09ICdpJyAmJiBmbGFnKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTkci
KTsKKyAgICAgICAgICAgIHJldHVybiA0MjsKKyAgICAgICAgfQorICAgIH07CisgICAgdmFyIHBy
b3h5ID0gbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxZTQ7ICsraSkgeworICAgICAgICB3aXRoIChwcm94eSkgeworICAgICAgICAgICAgaTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoaSA9PT0gMWUzKQorICAgICAgICAgICAgZmxhZyA9IHRydWU7
CisgICAgfQorfSwgYEVycm9yOiBOR2ApOworCisvLyBERkcgSklUIG9wZXJhdGlvbi4KK3ZhciB0
aHJvd24gPSBudWxsOwordHJ5IHsKKyAgICAoKCkgPT4geworICAgICAgICB2YXIgZmxhZyA9IGZh
bHNlOworICAgICAgICB2YXIgdGFyZ2V0ID0geworICAgICAgICAgICAgX19wcm90b19fOiBudWxs
CisgICAgICAgIH07CisgICAgICAgIHZhciBoYW5kbGVyID0geworICAgICAgICAgICAgaGFzOiBm
dW5jdGlvbiAocmVjZWl2ZXIsIG5hbWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIG5hbWUgPT09ICdhcmd1bWVudHMnOworICAgICAgICAgICAgfSwKKworICAgICAgICAg
ICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZlcikKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2FyZ3VtZW50cycgJiYgZmxhZykKKyAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJORyIpOworICAgICAgICAgICAgICAgIHJl
dHVybiA0MjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgdmFyIHByb3h5ID0g
bmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7CisgICAgICAgIHByb3h5Ll9fcHJvdG9fXyA9IG51
bGw7CisgICAgICAgIE9iamVjdC5wcm90b3R5cGUuX19wcm90b19fID0geworICAgICAgICAgICAg
X19wcm90b19fOiBwcm94eSwKKyAgICAgICAgfTsKKyAgICAgICAgKCgpID0+IHsKKyAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBhcmd1
bWVudHM7CisgICAgICAgICAgICAgICAgaWYgKGkgPT09ICgxZTQgLSAyKSkKKyAgICAgICAgICAg
ICAgICAgICAgZmxhZyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0pKCk7CisgICAg
fSkoKTsKK30gY2F0Y2ggKGUpIHsKKyAgICB0aHJvd24gPSBlOworfQorT2JqZWN0LnByb3RvdHlw
ZS5fX3Byb3RvX18gPSBudWxsOworc2hvdWxkQmUoU3RyaW5nKHRocm93biksIGBFcnJvcjogTkdg
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3BlcmF0
aW9uLWluLXRocm93LWVycm9yLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9vcGVyYXRpb24taW4tdGhyb3ctZXJyb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNhM2QwMjRlZjhhZjUy
NDRkYWQ3MWMxNWVjY2M0ZGYwZmJiZjQ2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3BlcmF0aW9uLWluLXRocm93LWVycm9yLmpzCkBAIC0w
LDAgKzEsMjggQEAKKyhmdW5jdGlvbiB0ZXN0Q2FzZSgpIHsKKyAgICB2YXIgdGFyZ2V0ID0ge307
CisgICAgdmFyIGhhbmRsZXIgPSB7CisgICAgICAgIGhhczogZnVuY3Rpb24gKHRhcmdldCwgbmFt
ZSkgeworICAgICAgICAgICAgaWYgKG5hbWUgPT09ICduZycpCisgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCduZycpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
CisgICAgfTsKKyAgICB2YXIgcHJveHkgPSBuZXcgUHJveHkodGFyZ2V0LCBoYW5kbGVyKTsKKyAg
ICB2YXIgYmFzZSA9IHsKKyAgICAgICAgX19wcm90b19fOiBwcm94eQorICAgIH07CisgICAgKGZ1
bmN0aW9uIGEoKSB7CisgICAgICAgIHZhciB0aHJvd247CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgICAgIHRocm93biA9IG51bGw7CisgICAgICAgICAg
ICB0cnkgeworICAgICAgICAgICAgICAgICduZycgaW4gYmFzZTsKKyAgICAgICAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvd24gPSBlOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBpZiAodGhyb3duID09PSBudWxsKQorICAgICAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcihgbm90IHRocm93biAke2l9YCk7CisgICAgICAgIH0KKyAgICB9KCkpOworfSgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHktYW5k
LWpzb24tc3RyaW5naWZ5LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9w
cm94eS1hbmQtanNvbi1zdHJpbmdpZnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQzN2ViYzM3ZDk4ZGNmYWU3
ZDMyYzM2OGQxZjllNTAwZjNlYjU0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHktYW5kLWpzb24tc3RyaW5naWZ5LmpzCkBAIC0wLDAg
KzEsMjggQEAKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yTWVzc2FnZSkgeworICAg
IHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAgIHZhciBlcnJvciA9IG51bGw7CisgICAgdHJ5
IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3JUaHJv
d24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3JUaHJv
d24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicpOworICAgIGlmIChTdHJp
bmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFk
IGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7Cit9CisKKy8vIFRoaXMgdGVzdCBqdXN0IGVuc3Vy
ZSB0aGF0IHByb3h5LltbR2V0XV0ncyB0aHJvd2luZyB3b3JrcyBjb3JyZWN0bHkgd2l0aCBKU09O
LnN0cmluZ2lmeS4KK3ZhciBwcm94eSA9IG5ldyBQcm94eShbMCwgMSwgMiwgM10sIHsKKyAgICBn
ZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpCisgICAgeworICAgICAgICBpZiAobmFtZSA9PT0g
JzInKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCduZycpOworICAgICAgICByZXR1cm4g
dGFyZ2V0W25hbWVdOworICAgIH0KK30pOworCitzaG91bGRUaHJvdygoKSA9PiB7CisgICAgSlNP
Ti5zdHJpbmdpZnkocHJveHkpOworfSwgYEVycm9yOiBuZ2ApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1hbmQtdHlwZWQtYXJyYXkuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWFuZC10eXBlZC1hcnJheS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xNDVjMGQ2N2NjZDk1ZGZmYjE1OTMyM2NiYTgwNGM3MjgzMzA1MjY2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94
eS1hbmQtdHlwZWQtYXJyYXkuanMKQEAgLTAsMCArMSwxNyBAQAordmFyIGFycmF5ID0gWzAsIDEs
IDIsIDNdOwordmFyIHByb3h5ID0gbmV3IFByb3h5KGFycmF5LCB7CisgICAgZ2V0OiBmdW5jdGlv
biAodGFyZ2V0LCBuYW1lLCByZWNlaXZlcikKKyAgICB7CisgICAgICAgIHRocm93IG5ldyBFcnJv
cihTdHJpbmcobmFtZSkpOworICAgIH0KK30pOwordmFyIHRocm93biA9IG51bGw7Cit0cnkgewor
ICAgIHZhciB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkocHJveHkpOworfSBjYXRjaCAoZXJy
b3IpIHsKKyAgICB0aHJvd24gPSBlcnJvcjsKK30KK2lmICh0aHJvd24gPT09IG51bGwpCisgICAg
dGhyb3cgbmV3IEVycm9yKGBub3QgdGhyb3duYCk7CitpZiAoU3RyaW5nKHRocm93bikgIT09IGBF
cnJvcjogU3ltYm9sKFN5bWJvbC5pdGVyYXRvcilgKQorICAgIHRocm93IG5ldyBFcnJvcihgYmFk
IGVycm9yOiAke1N0cmluZyh0aHJvd24pfWApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1qc29uLXBhdGguanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWpzb24tcGF0aC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWRiOTE1
MjQ5MWY0MzUxNTliMzFjNWQ1NjBmZGVkZWY3MTEwYzE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1qc29uLXBhdGguanMKQEAgLTAs
MCArMSwyNSBAQAordmFyIHRhcmdldCA9IHsgX19wcm90b19fOiBudWxsIH07Cit2YXIgaGFuZGxl
ciA9IHsKKyAgICBnZXQ6IGZ1bmN0aW9uICgpCisgICAgeworICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoYG5nYCk7CisgICAgfQorfTsKKwordmFyIHRocm93biA9IG51bGw7Cit2YXIgaGVsbG8gPSA0
MjsKKy8vIEFzIGEgcmVzdWx0LCBnbG9iYWwgb2JqZWN0IGF1dG9tYXRpY2FsbHkgaW5oZXJpdCB0
aGlzIHByb3h5LgorT2JqZWN0LnByb3RvdHlwZS5fX3Byb3RvX18gPSB7CisgICAgX19wcm90b19f
OiBuZXcgUHJveHkodGFyZ2V0LCBoYW5kbGVyKQorfTsKKwordHJ5IHsKKyAgICBsb2FkU3RyaW5n
KGBoZWxsbyA9IHsiaGVsbG8iOiJ3b3JsZCJ9O3Byb3h5Lm9rID0ge31gKTsKK30gY2F0Y2ggKGVy
cm9yKSB7CisgICAgdGhyb3duID0gZXJyb3I7Cit9CitPYmplY3QucHJvdG90eXBlLl9fcHJvdG9f
XyA9IG51bGw7CitpZiAodGhyb3duID09PSBudWxsKQorICAgIHRocm93IG5ldyBFcnJvcihgbm90
IHRocm93bmApOworaWYgKFN0cmluZyh0aHJvd24pICE9PSBgRXJyb3I6IG5nYCkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcodGhyb3duKX1gKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHktd2l0aC1zdGF0ZW1lbnQu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LXdpdGgtc3RhdGVt
ZW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk5MjAxMzNmYjNiNGYwNjJlM2U3ZDJhMDdjNjE2M2RjMDcyNmEx
MzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3Byb3h5LXdpdGgtc3RhdGVtZW50LmpzCkBAIC0wLDAgKzEsMjYgQEAKKyhmdW5jdGlvbiAoKSB7
CisgICAgdmFyIHRhcmdldCA9IHt9OworICAgIHZhciBoYW5kbGVyID0geworICAgICAgICBnZXQ6
IGZ1bmN0aW9uICgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbmcn
KTsKKyAgICAgICAgfQorICAgIH07CisgICAgdmFyIGFycmF5ID0geworICAgICAgICBoZWxsbzog
NDIKKyAgICB9OworICAgIHZhciBwcm94eSA9IG5ldyBQcm94eSh0YXJnZXQsIGhhbmRsZXIpOwor
ICAgIGFycmF5W1N5bWJvbC51bnNjb3BhYmxlc10gPSBwcm94eTsKKyAgICB2YXIgdGhyb3duID0g
bnVsbDsKKyAgICB0cnkgeworICAgICAgICB3aXRoIChhcnJheSkgeworICAgICAgICAgICAgaGVs
bG87CisgICAgICAgIH0KKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICB0aHJvd24gPSBl
cnJvcjsKKyAgICB9CisgICAgaWYgKHRocm93biA9PT0gbnVsbCkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKGBub3QgdGhyb3duYCk7CisgICAgaWYgKFN0cmluZyh0aHJvd24pICE9PSBgRXJyb3I6
IG5nYCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6ICR7U3RyaW5nKHRocm93
bil9YCk7Cit9KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
cnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKaW5kZXggZGZmM2RmZmY3OTg4NGYwMDdj
YTY5NjVmNDUwNDMyMWM0YzczZTQ1Ni4uNjJjY2QxNzhkYjNiZTIxYWFiM2JhYmNkNzQzMjhhMWRj
MWRjYmQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9B
bGdvcml0aG1EaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCkBAIC05NSwxMyArOTUsNyBAQCBib29sIEpT
Q3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Z2V0QWxnb3JpdGhtSWRlbnRpZmllcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdQogCiBzdGF0aWMgSlNWYWx1ZSBnZXRQcm9wZXJ0eShFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIGNvbnN0IGNoYXIqIG5hbWUpCiB7Ci0gICAgSWRlbnRp
ZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBuYW1lKTsKLSAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdChvYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RU
eXBlOjpHZXQpOwotCi0gICAgaWYgKG9iamVjdC0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50
aWZpZXIsIHNsb3QpKQotICAgICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudGlm
aWVyKTsKLQotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIHJldHVybiBvYmplY3QtPmdl
dChleGVjLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIG5hbWUpKTsKIH0KIAogc3RhdGlj
IGJvb2wgZ2V0SGFzaEFsZ29yaXRobShKU0RpY3Rpb25hcnkmIGRpY3Rpb25hcnksIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXImIHJlc3VsdCwgSGFzaFJlcXVpcmVtZW50IGlzUmVxdWlyZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IGY5Y2EzYmYyZjAy
OWRlYWFiMWFkOGQyMWI3YTY5ZjI4ZTdjNmMwNmYuLjkwMzI2ZjE3YjQ4MGU1MzAxYzRjYjJmYjVh
ZWNjMjAyNDAwMTU2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oCkBAIC0zMDUsNyArMzA1LDcgQEAgU3RyaW5nIHByb3BlcnR5TmFtZVRvU3RyaW5nKEpTQzo6
UHJvcGVydHlOYW1lKTsKIEF0b21pY1N0cmluZyBwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhK
U0M6OlByb3BlcnR5TmFtZSk7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERPTUNsYXNzPiBjb25zdCBK
U0M6Okhhc2hUYWJsZVZhbHVlKiBnZXRTdGF0aWNWYWx1ZVNsb3RFbnRyeVdpdGhvdXRDYWNoaW5n
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdGVtcGxhdGU8SlNDOjpOYXRp
dmVGdW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBub25DYWNoaW5nU3Rh
dGljRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOwordGVtcGxhdGU8SlNDOjpOYXRpdmVG
dW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBub25DYWNoaW5nU3RhdGlj
RnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CiAKIC8vIElubGluZSBmdW5jdGlvbnMgYW5kIHRlbXBsYXRlIGRlZmlu
aXRpb25zLgogCkBAIC03ODQsNyArNzg0LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgY29uc3QgSlND
OjpIYXNoVGFibGVWYWx1ZSogZ2V0U3RhdGljVmFsdWVTbG90RW50cnlXaXRob3V0Q2FjaGkKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdGVtcGxhdGU8SlNDOjpOYXRpdmVGdW5jdGlvbiBuYXRp
dmVGdW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBub25DYWNoaW5nU3Rh
dGljRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopCit0ZW1w
bGF0ZTxKU0M6Ok5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uLCBpbnQgbGVuZ3RoPiBKU0M6
OkVuY29kZWRKU1ZhbHVlIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcihKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZShKU0M6OkpTRnVuY3Rp
b246OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGxlbmd0
aCwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSwgbmF0aXZlRnVuY3Rpb24pKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA3
ZDAyYmMxZDg4OGQ3MzllMzM2MTFmODc1YWYxMjc5YWVkM2IyYzdiLi42YzhmYTQzZTVhYTUwYzQx
NjA3NzExNjBmODY5NjA1YzZhZTcyNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgSlNET01X
aW5kb3c6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogfQog
CiAjaWYgRU5BQkxFKFVTRVJfTUVTU0FHRV9IQU5ETEVSUykKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBqc0RPTVdpbmRvd1dlYktpdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUganNE
T01XaW5kb3dXZWJLaXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBKU0RPTVdpbmRvdyogY2FzdGVkVGhpcyA9IHRvSlNET01X
aW5kb3coSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghQmluZGluZ1NlY3Vy
aXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPndyYXBw
ZWQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25h
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcAppbmRl
eCBmMjdiMGM2MDE0NGI0YzBkN2I2NTc0NzNjNjYyZDMzMjRhZWY2MTkyLi5lOWJkYjg4OWMwOTk1
NmRhMjM4Y2Y4Y2QxYjdjM2Q1OTk5ZTgyMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRGljdGlvbmFyeS5jcHAKQEAgLTc1LDggKzc1LDExIEBAIEpTRGljdGlvbmFyeTo6R2V0
UHJvcGVydHlSZXN1bHQgSlNEaWN0aW9uYXJ5Ojp0cnlHZXRQcm9wZXJ0eShjb25zdCBjaGFyKiBw
cm9wZXJ0CiAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
ZyhtX2V4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgUHJvcGVydHlTbG90IHNsb3QobV9pbml0aWFs
aXplck9iamVjdC5nZXQoKSwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7
CiAKLSAgICBpZiAoIW1faW5pdGlhbGl6ZXJPYmplY3QuZ2V0KCktPmdldFByb3BlcnR5U2xvdCht
X2V4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKQorICAgIGlmICghbV9pbml0aWFsaXplck9iamVjdC5n
ZXQoKS0+Z2V0UHJvcGVydHlTbG90KG1fZXhlYywgaWRlbnRpZmllciwgc2xvdCkpIHsKKyAgICAg
ICAgaWYgKG1fZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uVGhyb3duOwogICAgICAgICByZXR1cm4gTm9Qcm9wZXJ0eUZvdW5kOworICAgIH0KIAogICAg
IGlmIChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uVGhy
b3duOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVt
ZW50RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxl
bWVudEZ1bmN0aW9ucy5jcHAKaW5kZXggMzBlZGFmN2VjYzk4NzJkNGVkMjllY2NiM2JjZDI3MGRh
MTA2Nzk2MC4uMjg2NTM3MmU5YWU3MWY0YTVjYTUwNGVlMDg0OTU1YWI1ZWIxNGRhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5j
dGlvbnMuY3BwCkBAIC05NCw3ICs5NCw3IEBAIEpTT2JqZWN0KiBwbHVnaW5TY3JpcHRPYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBKU0hUTUxFbGVtZW50KiBqc0hUTUxFbGVtZW50KQogICAgIHJldHVy
biBpbnN0YW5jZS0+Y3JlYXRlUnVudGltZU9iamVjdChleGVjKTsKIH0KICAgICAKLUVuY29kZWRK
U1ZhbHVlIHBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNPYmplY3Qq
KQorRW5jb2RlZEpTVmFsdWUgcGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KQogewogCiAgICAgSlNIVE1MRWxlbWVudCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNI
VE1MRWxlbWVudCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgKaW5kZXgg
YzY0ZWRiZjFlMjFhNTIwMmQzNzVmMTQ3NWMzNTZhYzcyYzI4NjhhYy4uMTg1MTJiZDQ0ZDZiM2Y3
ZWY3YmQ4MDljN2YwMzBmYzhkZmI5MDYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgKQEAgLTM4LDcgKzM4LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIEpTQzo6QmluZGluZ3M6Okluc3RhbmNlKiBwbHVnaW5J
bnN0YW5jZShIVE1MRWxlbWVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNPYmplY3Qq
IHBsdWdpblNjcmlwdE9iamVjdChKU0M6OkV4ZWNTdGF0ZSosIEpTSFRNTEVsZW1lbnQqKTsKIAot
ICAgIEpTQzo6RW5jb2RlZEpTVmFsdWUgcGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6
SlNPYmplY3QqKTsKKyAgICBKU0M6OkVuY29kZWRKU1ZhbHVlIHBsdWdpbkVsZW1lbnRQcm9wZXJ0
eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKICAgICBib29sIHBsdWdpbkVsZW1lbnRDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmLCBK
U0hUTUxFbGVtZW50Kik7CiAgICAgYm9vbCBwbHVnaW5FbGVtZW50Q3VzdG9tUHV0KEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNIVE1MRWxlbWVudCos
IEpTQzo6UHV0UHJvcGVydHlTbG90JiwgYm9vbCYgcHV0UmVzdWx0KTsKICAgICBKU0M6OkNhbGxU
eXBlIHBsdWdpbkVsZW1lbnRHZXRDYWxsRGF0YShKU0hUTUxFbGVtZW50KiwgSlNDOjpDYWxsRGF0
YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQppbmRleCA4ZmVjM2RlZmJiNzJiMDBhYTI1NWE4NzE3MTc1MTQ2NzYwZGVmZDBhLi42
MzY0NDJkZWU1ZDNmNWEwMTVlMzA5MDVkMzZjNTMxMjg4MTMxNmM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTUxNyw3
ICsxNTE3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAgICBteSAkY29uZGl0aW9u
YWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0
cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNp
ZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAg
ICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNs
YXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
SlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopO1xuIik7CisgICAg
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRl
cn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7XG4iKTsKICAgICAgICAgICAgIGlmICghSXNSZWFkb25seSgkYXR0cmlidXRlKSkgewogICAg
ICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZh
Y2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJib29sICR7c2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CkBAIC0yMDc3LDcgKzIwNzcsNyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3Ry
aW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29u
ZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICBt
eSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1l
LCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpFbmNv
ZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CiAg
ICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKICAgICAgICAgICAgICAg
ICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NO
YW1lLCAkYXR0cmlidXRlKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJv
b2wgJHtzZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7XG4iKTsKQEAgLTIwODcsNyArMjA4Nyw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgIAogICAgICAgICBpZiAoTmVlZHNDb25zdHJ1Y3RvclByb3Bl
cnR5KCRpbnRlcmZhY2UpKSB7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAuICRpbnRl
cmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopO1xuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0
ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpO1xuIik7CiAgICAgICAgIH0KIAogICAgICAgICBteSAkY29uc3RydWN0b3JGdW5jdGlvbk5h
bWUgPSAic2V0SlMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwpAQCAtMjU0Nyw3
ICsyNTQ3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRh
dHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRp
dGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiNpZiAke2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGF0
dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nOwogCi0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIkVuY29kZWRKU1ZhbHVlICR7Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKVxuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Z2V0RnVuY3Rp
b25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKIAog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTtc
biIpOwpAQCAtMjc1MCw3ICsyNzUwLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICAgICAgaWYgKE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkgewogICAgICAg
ICAgICAgbXkgJGNvbnN0cnVjdG9yRnVuY3Rpb25OYW1lID0gImpzIiAuICRpbnRlcmZhY2VOYW1l
IC4gIkNvbnN0cnVjdG9yIjsKIAotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNv
ZGVkSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKVxuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Y29uc3RydWN0
b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJv
dG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKVxuIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggNzU2MTFlNDI5MmQ4NmRhMjE1ZTVkZGYw
ZGRkZWU0ZTMxNzJjNjQ0ZS4uYzViM2M0ZjdlN2EyMTc5MjcxMjFiM2M3ZTdjMGYxYTQ5NjcxYjY1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtNjAsNyArNjAs
NyBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAgICAgc3RhdGlj
X2Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCktPlJ1bnRpbWVBcnJheTo6flJ1bnRpbWVBcnJheSgp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVj
dCopCitFbmNvZGVkSlNWYWx1ZSBSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFJ1
bnRpbWVBcnJheSogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8UnVudGltZUFycmF5Kj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghdGhpc09iamVjdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IGRhNTE2MDViZDU2MjRkNzQwZjVkMDEwMmYy
MzRmZWU1MjFjZGEwNGEuLjAxOGMxMzI3OGRiYTNkZDAzMTcxZTUzZWZjMGFkN2RmMGUxMDdlOTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtODMsNyArODMsNyBAQCBj
bGFzcyBSdW50aW1lQXJyYXkgOiBwdWJsaWMgSlNBcnJheSB7CiAKIHByaXZhdGU6CiAgICAgUnVu
dGltZUFycmF5KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSwgSlNPYmplY3QqKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogCiAgICAgQmluZGluZ3NB
cnJheSogbV9hcnJheTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNw
cAppbmRleCBhMzdjODhkMDljNzgyZWYxMWM1ODA2NWExYTIzZDNjNmU0ZWFlODZjLi5hZTJiMmI5
YmM5M2U5MjczY2ZhYjJkMWY3ZDdlZDQwZWExM2IwMmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX21ldGhvZC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBSdW50aW1lTWV0aG9k
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIGNvbnN0IFN0cmluZyYgaWRlbnQpCiAgICAgQVNTRVJU
KGluaGVyaXRzKGluZm8oKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lTWV0aG9kOjps
ZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgUnVudGltZU1ldGhvZDo6bGVu
Z3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgUnVudGltZU1ldGhvZCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nh
c3Q8UnVudGltZU1ldGhvZCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
IXRoaXNPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCmluZGV4IDIz
NDIyM2UzZWZiMzBmNjRmNzEyNGY3YjczMjk2NWY5ZmFhZjZiMmQuLmQ4NmQ1OTQ3NWUwYTk3NTE3
YzAxMzZiYWIxMDZmMmEwN2MxOTI0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX21ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5oCkBAIC02Niw3ICs2Niw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVNZXRo
b2QgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVy
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Cisg
ICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogICAgIEJpbmRpbmdzOjpNZXRob2QqIG1fbWV0aG9k
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDQ2YWE0
OWNiZmYxZmNkY2E0MjNhYWY1MmEyMmYxNjBhNmViOTdhNmIuLmE1NzNlMDVkNzU5YjA3NTcwZDI2
MjFkOGU2MjYwMzY0MWNiYjRlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6OmludmFsaWRhdGUo
KQogICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1l
T2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5j
b2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUpCiB7CiAgICAgUnVudGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5z
dGFuY2UgPSB0aGlzT2JqLT5tX2luc3RhbmNlOwpAQCAtODAsNyArODAsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpT
T2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lKQogeyAgICAKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRp
bWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVmUHRyPEluc3Rh
bmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7CkBAIC05OSw3ICs5OSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6Om1ldGhvZEdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0
PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVmUHRy
PEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IGNjYTc0NmViZWU1MjZhZTEwMzkzZmM1NTc0MmFj
NDRhY2VkMzQ2MzQuLjgxZDRlYmQzYjRkYmI3MDk5MTE1ZGExMDI4MmIyOWZiZmZiMTg2ZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC03OCw5ICs3OCw5IEBAIGNs
YXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVP
YmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKIAogcHJpdmF0ZToKLSAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKLSAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgZmllbGRHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSwgSlNPYmplY3QqKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVy
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Cisg
ICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBmaWVsZEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
KyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogCiAgICAgUmVmUHRyPEluc3RhbmNlPiBtX2luc3Rh
bmNlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAppbmRleCBiNWE0NjA0MTAwZjM0MWFiNjc2M2VlNTAx
ODAwZGI5ZWJmZTk2MTA3Li5kNTYxYWUxNDhjMjJmNTk3ZDdmMWFlODRjYjdkMGRmOTFjMGNhMGFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuY3BwCkBAIC00MzUsNyArNDM1LDcgQEAgdm9pZCBKU05QT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywg
UHJvcGVydHkKICAgICBucG5NZW1GcmVlKGlkZW50aWZpZXJzKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNOUE9iamVjdDo6cHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0Vu
Y29kZWRKU1ZhbHVlIEpTTlBPYmplY3Q6OnByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewog
ICAgIEpTTlBPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8SlNOUE9iamVjdCo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmos
IGluZm8oKSk7CkBAIC00NzUsNyArNDc1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6
cHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmEKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3BlcnR5VmFsdWUpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU05QT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0Vu
Y29kZWRKU1ZhbHVlIEpTTlBPYmplY3Q6Om1ldGhvZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAg
ICBKU05QT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PEpTTlBPYmplY3QqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqLCBp
bmZvKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggMzg1NzgyYzhlNjhiZGM1YTEzZjc4NTQyOTMxNWY2
OTkyZjRlNDMyMC4uOGJhZmViMDYwYTIxMDY2ZDhlYWE2MDg3NGMwM2FjOTlmMGNmNGJlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE9iamVjdC5oCkBAIC05NCw4ICs5NCw4IEBAIGNsYXNzIEpTTlBPYmplY3QgOiBwdWJsaWMg
SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKICAgICBzdGF0aWMgdm9pZCBnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlO
YW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0aW9uTW9kZSk7CiAKLSAgICBzdGF0aWMgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBwcm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7Ci0gICAgc3RhdGljIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKKyAgICBzdGF0
aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHRo
cm93SW52YWxpZEFjY2Vzc0Vycm9yKEpTQzo6RXhlY1N0YXRlKik7CiAKICAgICBOUFJ1bnRpbWVP
YmplY3RNYXAqIG1fb2JqZWN0TWFwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280548</attachid>
            <date>2016-06-05 08:22:28 -0700</date>
            <delta_ts>2016-06-05 08:59:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157080-20160606002351.patch</filename>
            <type>text/plain</type>
            <size>80971</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MmYxMGQ2NjE3YTQyNGUwMTU5OTI4NDdjYTEwNjIxZDA3ZjNhNTc5Li5hZDUxNzk2ZjVjNzZiNjUx
OTlkZDI1MTE3ODBmOWU4MzVkM2RhYWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjUgQEAKKzIwMTYtMDYtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgQ2hhbmdlIFByb3h5T2JqZWN0LltbR2V0XV0gbm90IHRvIHVzZSBj
dXN0b20gYWNjZXNzb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NzA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggZm9jdXNlcyBvbiBpbnRyb2R1Y2luZyB0aGUgc2Vjb25kIHBhcnQg
b2YgdGhlIGZvbGxvd2luZ3MuCisgICAgICAgIEJ1dCB0byBkbyBzbywgZmlyc3QgYW5kIHRoaXJk
IHBhcnRzIGFyZSBuZWNlc3NhcnkuCisKKyAgICAgICAgMS4gSW5zZXJ0IG1pc3NpbmcgZXhjZXB0
aW9uIGNoZWNrcyBmb3IgZ2V0UHJvcGVydHlTbG90LgorCisgICAgICAgICAgICBXaGlsZSBnZXRQ
cm9wZXJ0eVNsb3QgY2FuIHBlcmZvcm0gdXNlci1vYnNlcnZhYmxlIGJlaGF2aW9yIGlmIHRoZSBz
bG90IGlzIG5vdCBWTUlucXVpcnksCisgICAgICAgICAgICBzZXZlcmFsIHBsYWNlcyBtaXNzIGV4
ZXB0aW9uIGNoZWNrcy4gRm9yIGV4YW1wbGUsIFByb3h5T2JqZWN0J3MgaGFzUHJvcGVydHkgYWxy
ZWFkeSBjYW4KKyAgICAgICAgICAgIHRocm93IGFueSBlcnJvcnMuIExvb2tpbmcgdGhyb3VnaCB0
aGUgY29kZSwgd2UgZm91bmQgc2V2ZXJhbCBtaXNzaW5nIGVycm9yIGNoZWNrcyBhZnRlcgorICAg
ICAgICAgICAgaGFzUHJvcGVydHksIGJ1dCB0aGlzIHdpbGwgYmUgZml4ZWQgaW4gdGhlIHNlcGFy
YXRlZCBwYXRjaFsxXS4KKworICAgICAgICAyLiBEbyBub3QgdXNlIGN1c3RvbSBhY2Nlc3NvciB0
byBpbXBsZW1lbnQgUHJveHlPYmplY3QncyBbW0dldF1dLgorCisgICAgICAgICAgICBUaGUgY2Fs
bGVyIGFscmVhZHkgYWxsb3dzIGdldE93blByb3BlcnR5U2xvdCB0byB0aHJvdyBhbiBleGNlcHRp
b24gaWYgdGhlIHR5cGUKKyAgICAgICAgICAgIGlzIG5vdCBWTUlucXVpcnkuIFNvIGluc3RlYWQg
b2YgdXNpbmcgY3VzdG9tIGFjY2Vzc29yLCB3ZSBzaW1wbHkgaW1wbGVtZW50IGl0CisgICAgICAg
ICAgICBkaXJlY3RseSBpbiB0aGUgUHJveHlPYmplY3QncyBtZXRob2QuCisKKyAgICAgICAgMy4g
U3RyaXAgc2xvdEJhc2UgZnJvbSBjdXN0b20gYWNjZXNzb3IuCisKKyAgICAgICAgICAgIFRoZSBj
dXN0b20gYWNjZXNzb3Igc2hvdWxkIG5vdCBiZSBib3VuZCB0byB0aGUgc3BlY2lmaWMgc2xvdCBi
YXNlWzJdLCBzaW5jZSBpdAorICAgICAgICAgICAgaXMganVzdCBhbiBhY2Nlc3Nvci4gVGhlcmUg
aXMgYW4gYWx0ZXJuYXRpdmUgZGVzaWduOiBtYWtlaW5nIHRoaXMgY3VzdG9tIGFjY2Vzc29yCisg
ICAgICAgICAgICB0byBjdXN0b20gdmFsdWUgYWNjZXNzb3IgYW5kIGFjY2VwdCBib3RoIHRoZSBz
bG90IGJhc2UgYW5kIHRoZSByZWNlaXZlciBpbnN0ZWFkCisgICAgICAgICAgICBvZiBhbGxvd2lu
ZyB0aHJvd2luZyBhbiBlcnJvciBmcm9tIGdldE93blByb3BlcnR5U2xvdC4gQnV0IHdlIHRha2Ug
dGhlIGZpcnN0IGRlc2lnbgorICAgICAgICAgICAgdGhhdCBhbGxvd3MgZ2V0UHJvcGVydHlTbG90
IHRvIHRocm93IGFuIGVycm9yLCBzaW5jZSBoYXNQcm9wZXJ0eSAodGhhdCBkb2VzIG5vdCBjYWxs
CisgICAgICAgICAgICBnZXRWYWx1ZSBvZiB0aGUgY3VzdG9tIGdldHRlcnMpIGNhbiBhbHJlYWR5
IHRocm93IGFueSBlcnJvcnMuCisKKyAgICAgICAgICAgIFRvIHF1ZXJ5IHRoZSBwcm9wZXJ0eSB3
aXRoIHRoZSBub24tdXNlci1vYnNlcnZhYmxlIHdheSwgd2UgYWxyZWFkeSBwcm92aWRlZCB0aGUg
d2F5IGZvciB0aGF0OgorICAgICAgICAgICAgdXNlIFZNSW5xdWlyeSBhbmQgaXNUYWludGVkQnlQ
cm94eSgpIGluc3RlYWQuCisKKyAgICAgICAgVGVzdHMganVzdCBlbnN1cmUgdGhhdCB0aGUgY3Vy
cmVudCBzZW1hbnRpY3Mgd29ya3MgY29ycmVjdGx5IGFmdGVyIHRoaXMgcGF0Y2guCisgICAgICAg
IEFuZCB0aGlzIHBhdGNoIGlzIHBlcmZvcm1hbmNlIG5ldXRyYWwuCisKKyAgICAgICAgTGF0ZXIs
IHdlIHdpbGwgYXR0ZW1wdCB0byByZW5hbWUgInRoaXNWYWx1ZSIgdG8gInJlY2VpdmVyIlszXS4K
KworICAgICAgICBbMV06IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTgzOTgKKyAgICAgICAgWzJdOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU3OTc4CisgICAgICAgIFszXTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1ODM5NworCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAg
ICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjpKU0Nh
bGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKEpT
Qzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsYmFja0dldHRlcik6CisgICAgICAgICog
Ynl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNl
OjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJl
dGVyOjpleGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAg
ICoganNjLmNwcDoKKyAgICAgICAgKFdURjo6SW1wdXJlR2V0dGVyOjpnZXRPd25Qcm9wZXJ0eVNs
b3QpOgorICAgICAgICAoV1RGOjpDdXN0b21HZXR0ZXI6OmN1c3RvbUdldHRlcik6CisgICAgICAg
IChXVEY6OlJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKEdsb2JhbE9iamVj
dDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoZnVuY3Rpb25Mb2FkU3RyaW5nKToKKyAgICAg
ICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElO
VF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
OgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9KU0Jv
dW5kU2xvdEJhc2VGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmJvdW5kU2xvdEJhc2VGdW5j
dGlvbkNhbGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0UHJv
cGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbElubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6RXhlY1N0YXRlOjp2bSk6CisgICAgICAgIFRoaXMgY2hhbmdlIGlzIHN1cGVyIGltcG9y
dGFudCBmb3IgcGVyZm9ybWFuY2UuIFdlIGFkZCBzZXZlcmFsIGBleGVjLT5oYWRFeGNlcHRpb24o
KWAgY2FsbHMgaW50byB0aGUgc3VwZXIgaG90IHBhdGgsIGxpa2UgSlNDOjpvcGVyYXRpb25HZXRC
eUlkT3B0aW1pemUuCisgICAgICAgIFdpdGhvdXQgdGhpcyBjaGFuZ2UsIHdlIGNhbGwgRXhlY1N0
YXRlOjp2bSgpIGFuZCBpdCBpcyBub3QgaW5saW5lZC4gVGhpcyBjYXVzZXMgMSAtIDIlIHBlcmZv
cm1hbmNlIHJlZ3Jlc3Npb24gaW4gT2N0YW5lIFBERkpTLgorCisgICAgICAgICogcnVudGltZS9K
U0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVy
KToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKToKKyAgICAgICAgKiBy
dW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEdlbmVy
aWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1
bGVOYW1lc3BhY2VPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpjYWxsYmFja0dldHRlcik6Cisg
ICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5naWZp
ZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KToKKyAgICAgICAgSGVyZSdzIFVOTElLRUxZ
IGlzIGltcG9ydGFudCBmb3IgS3Jha2VuJ3MganNvbi1zdHJpbmdpZnktdGluZGVyYm94LiBXaXRo
b3V0IGl0LCB3ZSBjYW4gb2JzZXJ2ZSAwLjUlIHJlZ3Jlc3Npb24uCisKKyAgICAgICAgKEpTQzo6
V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcpOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90LmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVy
dHlTbG90OjpjdXN0b21HZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6
CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6dGhpc1ZhbHVlKToKKyAgICAgICAgKiBydW50
aW1lL1Byb3h5T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6cGVyZm9ybVByb3h5R2V0KToKKyAg
ICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OnBlcmZvcm1HZXQpOgorICAgICAgICAoSlNDOjpQcm94
eU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90Q29tbW9uKToKKyAgICAgICAgKiBydW50aW1lL1By
b3h5T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKToKKyAgICAgICAgKEpTQzo6cmVn
RXhwQ29uc3RydWN0b3JJbnB1dCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTXVs
dGlsaW5lKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gpOgorICAg
ICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbik6CisgICAgICAgIChKU0M6OnJl
Z0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1
Y3RvclJpZ2h0Q29udGV4dCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1mcm9tLXNjb3Bl
LWR5bmFtaWMtb250by1wcm94eS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAg
ICAgIChzaG91bGRUaHJvdy5oYW5kbGVyLmhhcyk6CisgICAgICAgIChoYW5kbGVyLmhhcyk6Cisg
ICAgICAgICh0cnkuaGFuZGxlci5oYXMpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9vcGVyYXRp
b24taW4tdGhyb3ctZXJyb3IuanM6IEFkZGVkLgorICAgICAgICAodGVzdENhc2UuaGFuZGxlci5o
YXMpOgorICAgICAgICAodGVzdENhc2UpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wcm94eS1h
bmQtanNvbi1zdHJpbmdpZnkuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9wcm94eS1hbmQtdHlwZWQtYXJyYXkuanM6IEFkZGVkLgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9wcm94eS1qc29uLXBhdGguanM6IEFkZGVkLgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9wcm94eS13aXRoLXN0YXRlbWVudC5qczogQWRkZWQuCisKIDIwMTYtMDYt
MDMgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRWFn
ZXIgRlRMIGZhaWx1cmUgZm9yIHN0cmljdCBjb21wYXJpc29uIG9mIE5hTiB3aXRoIG51bWJlciBj
aGVjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGU1MTE5YmMzZTEzM2E1MmMxZjg0ZTcyZjdlOWQxNGM5YzhkMzUy
NGEuLjM4OTc4ZDBhYzBhZGE1MzUxYWVmZDA2NTczYWUxZTc3M2EzZmM3MTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNiBAQAorMjAxNi0wNi0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KKworICAgICAgICBDaGFuZ2UgUHJveHlPYmplY3QuW1tHZXRdXSBub3QgdG8g
dXNlIGN1c3RvbSBhY2Nlc3NvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU3MDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0UHJvcGVydHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6bm9uQ2FjaGluZ1N0YXRpY0Z1bmN0
aW9uR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdpbmRvd1dlYktpdCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlvbmFyeTo6
dHJ5R2V0UHJvcGVydHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1
bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0
ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAo
R2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAg
ICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJy
YXk6Omxlbmd0aEdldHRlcik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAg
ICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1l
TWV0aG9kOjpsZW5ndGhHZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5o
OgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJp
bmRpbmdzOjpSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcik6CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRlcik6CisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIpOgorICAgICAgICAqIGJyaWRn
ZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDE2LTA2LTA0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb2Rlcm4gSURCOiBDcmFzaCBzZWVuIGluIElEQkNvbm5l
Y3Rpb25Qcm94eTo6cHV0T3JBZGQgb24gR3VhcmRNYWxsb2MgYm90CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWZm
OGE5ZTA4MGE4NjIxOTVhZGE4YjNkYTM1YjMyNDczOTkzYWJjOC4uMGQ4OWUxZWE5MmZjOTI3MzY4
Y2FkNTZkMTNmYmMxMjIzZGU5OGY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2
LTA2LTA1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAg
IENoYW5nZSBQcm94eU9iamVjdC5bW0dldF1dIG5vdCB0byB1c2UgY3VzdG9tIGFjY2Vzc29yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcwODAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNO
UE9iamVjdDo6cHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0Ojpt
ZXRob2RHZXR0ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0Lmg6CisKIDIwMTYtMDYtMDMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDE2NjMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDVlMDMzZjhl
M2MyZWRmYzUzMTgzYjgxYzEzNWUwY2Y1ZWM4ZTQ1MGMuLmU5NTYzZjU0Y2VhOGIyNjNiMTQzMzU2
NzIxZDRjZGRkNzljNWU0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5oCkBAIC0yMTEsOCArMjExLDggQEAgY2xhc3MgSlNDYWxsYmFja09iamVjdCA6
IHB1YmxpYyBQYXJlbnQgewogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdChFeGVjU3RhdGUqKTsKICAgIAogICAgIEpTVmFsdWUgZ2V0U3RhdGljVmFsdWUo
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3Rh
dGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSwgSlNPYmplY3QqKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKKyAg
ICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJhY2tPYmplY3REYXRhPiBtX2NhbGxiYWNr
T2JqZWN0RGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
YWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGIyYmNmNDUzYTZiMThiOTU3Njc2ZjdmYjA0
ZDMxNzAxMjZhNmU3ZmQuLmE1NTM3MjM0YmIzMmNhNjg2ZGQwNmIyYWZlOWEwN2E5ZDAyNTdmMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oCkBAIC01OTksNyArNTk5LDcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0
PFBhcmVudD46OmdldFN0YXRpY1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHAK
IH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tP
YmplY3Q8UGFyZW50Pjo6c3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KikKK0VuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6c3RhdGljRnVuY3Rp
b25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNDYWxsYmFja09iamVjdCogdGhpc09iaiA9
IGFzQ2FsbGJhY2tPYmplY3QodGhpc1ZhbHVlKTsKICAgICAKQEAgLTYyNyw3ICs2MjcsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgRQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotRW5j
b2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsYmFja0dldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJl
bnQ+OjpjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU0NhbGxiYWNrT2JqZWN0
KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdCh0aGlzVmFsdWUpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKaW5k
ZXggNDNkYWI3NjhhMGYyNjA0MTUyNDAzZjQwNDUxZWIxODI0NTNjMjZjNC4uOWIzZTdhMTVmYzA3
ZTcyNmQzZTkzZTM3Yzc1OTBmMTE1ZTY3MDY5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCkBAIC0xMDg0LDcgKzEwODQs
NyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NHZW5lcmF0aW9uU3RhdGUm
IHN0YXRlKQogICAgICAgICAgICAgLy8gdG8gbWFrZSBzb21lIHNwYWNlIGhlcmUuCiAgICAgICAg
ICAgICBqaXQubWFrZVNwYWNlT25TdGFja0ZvckNDYWxsKCk7CiAKLSAgICAgICAgICAgIC8vIGdl
dHRlcjogRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCogc2xvdEJhc2UpOworICAg
ICAgICAgICAgLy8gZ2V0dGVyOiBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogICAgICAgICAg
ICAgLy8gc2V0dGVyOiB2b2lkICgqUHV0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSk7CiAgICAgICAgICAgICAvLyBD
dXN0b20gdmFsdWVzIGFyZSBwYXNzZWQgdGhlIHNsb3RCYXNlICh0aGUgcHJvcGVydHkgaG9sZGVy
KSwgY3VzdG9tIGFjY2Vzc29ycyBhcmUgcGFzc2VkIHRoZSB0aGlzVmF1bGUgKHJlY2lldmVyKS4K
ICAgICAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBkaWZmZXJlbmNlcyBpbiBjdXN0b20g
dmFsdWVzIGFuZCBjdXN0b20gYWNjZXNzb3JzLgpAQCAtMTA5NCw4ICsxMDk0LDcgQEAgdm9pZCBB
Y2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAg
ICAgICAgICAgIGlmIChtX3R5cGUgPT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1
c3RvbUFjY2Vzc29yR2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgYmFzZUZvckN1c3RvbVZhbHVlLAot
ICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1w
bCgpKSwKLSAgICAgICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUik7CisgICAgICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpKTsKICAg
ICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYmFzZUZvckN1c3RvbVZhbHVlLCB2YWx1ZVJlZ3MuZ3ByKCkpOwogI2Vsc2UKQEAg
LTExMDMsOCArMTEwMiw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dl
bmVyYXRpb25TdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgRUFCSV8zMkJJVF9EVU1NWV9BUkcg
YmFzZUZvckN1c3RvbVZhbHVlLAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAgICAgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSksCi0gICAgICAgICAgICAgICAgICAg
IGJhc2VGb3JBY2Nlc3NHUFIpOworICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCiAgICAgICAgICAgICAg
ICAgICAgIEVBQklfMzJCSVRfRFVNTVlfQVJHIGJhc2VGb3JDdXN0b21WYWx1ZSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGE1ZDBkMDQxNGRkOWFk
NzkxMDIwYjNkMDU2ZjMyYzljNzM3OWIzMmIuLmVhOTY3Yjg2NjJmZjM2YzU5NzExZTM1N2FlYjk1
NDk5MGMzZGI3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcApAQCAtMTYyMiwyNyArMTYyMiwyNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkdldER5bmFtaWNWYXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogcwogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigm
dm0sIGV4ZWMpOwogCi0gICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBJZGVudGlmaWVyOjpm
cm9tVWlkKGV4ZWMsIGltcGwpOwotICAgIEdldFB1dEluZm8gZ2V0UHV0SW5mbyhnZXRQdXRJbmZv
Qml0cyk7Ci0KLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChzY29wZSwgUHJvcGVydHlTbG90OjpJbnRl
cm5hbE1ldGhvZFR5cGU6OkdldCk7Ci0gICAgaWYgKCFzY29wZS0+Z2V0UHJvcGVydHlTbG90KGV4
ZWMsIGlkZW50LCBzbG90KSkgewotICAgICAgICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgp
ID09IFRocm93SWZOb3RGb3VuZCkKLSAgICAgICAgICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMs
IGNyZWF0ZVVuZGVmaW5lZFZhcmlhYmxlRXJyb3IoZXhlYywgaWRlbnQpKTsKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9CisgICAgSWRlbnRpZmll
ciBpZGVudCA9IElkZW50aWZpZXI6OmZyb21VaWQoZXhlYywgaW1wbCk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShzY29wZS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBbJl0gKGJv
b2wgZm91bmQsIFByb3BlcnR5U2xvdCYgc2xvdCkgLT4gSlNWYWx1ZSB7CisgICAgICAgIGlmICgh
Zm91bmQpIHsKKyAgICAgICAgICAgIEdldFB1dEluZm8gZ2V0UHV0SW5mbyhnZXRQdXRJbmZvQml0
cyk7CisgICAgICAgICAgICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgpID09IFRocm93SWZO
b3RGb3VuZCkKKyAgICAgICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVV
bmRlZmluZWRWYXJpYWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7CisgICAgICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKKyAgICAgICAgfQogCi0gICAgaWYgKHNjb3BlLT5pc0dsb2JhbExleGlj
YWxFbnZpcm9ubWVudCgpKSB7Ci0gICAgICAgIC8vIFdoZW4gd2UgY2FuJ3Qgc3RhdGljYWxseSBw
cm92ZSB3ZSBuZWVkIGEgVERaIGNoZWNrLCB3ZSBtdXN0IHBlcmZvcm0gdGhlIGNoZWNrIG9uIHRo
ZSBzbG93IHBhdGguCi0gICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShleGVj
LCBpZGVudCk7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0ganNURFpWYWx1ZSgpKSB7Ci0gICAgICAg
ICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVREWkVycm9yKGV4ZWMp
KTsKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cisg
ICAgICAgIGlmIChzY29wZS0+aXNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQoKSkgeworICAgICAg
ICAgICAgLy8gV2hlbiB3ZSBjYW4ndCBzdGF0aWNhbGx5IHByb3ZlIHdlIG5lZWQgYSBURFogY2hl
Y2ssIHdlIG11c3QgcGVyZm9ybSB0aGUgY2hlY2sgb24gdGhlIHNsb3cgcGF0aC4KKyAgICAgICAg
ICAgIEpTVmFsdWUgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudCk7CisgICAgICAg
ICAgICBpZiAocmVzdWx0ID09IGpzVERaVmFsdWUoKSkgeworICAgICAgICAgICAgICAgIGV4ZWMt
PnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVERaRXJyb3IoZXhlYykpOworICAgICAg
ICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7Ci0gICAgfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzbG90Lmdl
dFZhbHVlKGV4ZWMsIGlkZW50KSk7CisgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKGV4ZWMs
IGlkZW50KTsKKyAgICB9KSk7CiB9CiAKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRE
eW5hbWljVmFyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1
ZSB2YWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdldFB1dEluZm9CaXRz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5j
cHAKaW5kZXggYTBhZTJkNmExZjMwYzhjMzMxYTcyZTc0Nzc1MDdmYzUwMTNhYTMxZS4uOTcxZjJl
ZjUyMTYyOTAwNmI4NDQ0OTYxY2U5NzcwNWJkOThiYmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC04NjMsNiArODYzLDgg
QEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShQcm9ncmFtRXhlY3V0YWJsZSogcHJvZ3Jh
bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEoKICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0g
MCkgewogICAgICAgICAgICAgICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QoZ2xvYmFsT2Jq
ZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghZ2xvYmFsT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoY2FsbEZyYW1l
LCBKU09OUFBhdGhbaV0ubV9wYXRoRW50cnlOYW1lLCBzbG90KSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoZW50cnkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBjcmVhdGVV
bmRlZmluZWRWYXJpYWJsZUVycm9yKGNhbGxGcmFtZSwgSlNPTlBQYXRoW2ldLm1fcGF0aEVudHJ5
TmFtZSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkSlNPTlA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCAzOTMwNGJm
MWY1YmM0NjAxZGNkZmM2ZjQyOTc0N2RkZjFjMDU0ODdmLi4xNzQ1ZDZlMjM3Y2MwMDkyZDM2NmQz
ZjE3YjBlODVjNjQxNmZlYmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKQEAgLTI0MSwxMyArMjQxLDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJl
CiAKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShiYXNlKTsKICAgICBM
T0dfSUMoKElDRXZlbnQ6Ok9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgYmFzZVZhbHVlLmNsYXNz
SW5mb09yTnVsbCgpLCBpZGVudCkpOwotICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSwg
UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7Ci0gICAgCi0gICAgYm9vbCBo
YXNSZXN1bHQgPSBiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KTsK
LSAgICBpZiAoc3R1YkluZm8tPmNvbnNpZGVyQ2FjaGluZyhiYXNlVmFsdWUuc3RydWN0dXJlT3JO
dWxsKCkpKQotICAgICAgICByZXBhdGNoR2V0QnlJRChleGVjLCBiYXNlVmFsdWUsIGlkZW50LCBz
bG90LCAqc3R1YkluZm8sIEdldEJ5SURLaW5kOjpOb3JtYWwpOwotICAgIAotICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoaGFzUmVzdWx0PyBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50KSA6IGpz
VW5kZWZpbmVkKCkpOworCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0
UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBbJl0gKGJvb2wgZm91bmQsIFByb3BlcnR5U2xvdCYg
c2xvdCkgLT4gSlNWYWx1ZSB7CisgICAgICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJDYWNoaW5n
KGJhc2VWYWx1ZS5zdHJ1Y3R1cmVPck51bGwoKSkpCisgICAgICAgICAgICByZXBhdGNoR2V0QnlJ
RChleGVjLCBiYXNlVmFsdWUsIGlkZW50LCBzbG90LCAqc3R1YkluZm8sIEdldEJ5SURLaW5kOjpO
b3JtYWwpOworICAgICAgICByZXR1cm4gZm91bmQgPyBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50
KSA6IGpzVW5kZWZpbmVkKCk7CisgICAgfSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkluT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8sIEpTQ2VsbCogYmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGtleSkKQEAg
LTI2OCw2ICsyNjcsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklu
T3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmVTdHViSQogICAgIExPR19JQygoSUNF
dmVudDo6T3BlcmF0aW9uSW5PcHRpbWl6ZSwgYmFzZS0+Y2xhc3NJbmZvKCksIGlkZW50KSk7CiAg
ICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZSwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5
cGU6Okhhc1Byb3BlcnR5KTsKICAgICBib29sIHJlc3VsdCA9IGFzT2JqZWN0KGJhc2UpLT5nZXRQ
cm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQsIHNsb3QpOworICAgIGlmICh2bS0+ZXhjZXB0aW9uKCkp
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgCiAg
ICAgUkVMRUFTRV9BU1NFUlQoYWNjZXNzVHlwZSA9PSBzdHViSW5mby0+YWNjZXNzVHlwZSk7CiAg
ICAgCkBAIC0yMDE0LDI4ICsyMDE1LDI5IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0RnJvbVNjb3BlKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rpb24qCiAgICAg
Ly8gTW9kdWxlVmFyIGlzIGFsd2F5cyBjb252ZXJ0ZWQgdG8gQ2xvc3VyZVZhciBmb3IgZ2V0X2Zy
b21fc2NvcGUuCiAgICAgQVNTRVJUKGdldFB1dEluZm8ucmVzb2x2ZVR5cGUoKSAhPSBNb2R1bGVW
YXIpOwogCi0gICAgUHJvcGVydHlTbG90IHNsb3Qoc2NvcGUsIFByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpHZXQpOwotICAgIGlmICghc2NvcGUtPmdldFByb3BlcnR5U2xvdChleGVj
LCBpZGVudCwgc2xvdCkpIHsKLSAgICAgICAgaWYgKGdldFB1dEluZm8ucmVzb2x2ZU1vZGUoKSA9
PSBUaHJvd0lmTm90Rm91bmQpCi0gICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBj
cmVhdGVVbmRlZmluZWRWYXJpYWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7Ci0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQorICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoc2NvcGUtPmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudCwgWyZdIChib29s
IGZvdW5kLCBQcm9wZXJ0eVNsb3QmIHNsb3QpIC0+IEpTVmFsdWUgeworICAgICAgICBpZiAoIWZv
dW5kKSB7CisgICAgICAgICAgICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgpID09IFRocm93
SWZOb3RGb3VuZCkKKyAgICAgICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVh
dGVVbmRlZmluZWRWYXJpYWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7CisgICAgICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgfQogCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBKU1Zh
bHVlKCk7Ci0gICAgaWYgKHNjb3BlLT5pc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpKSB7Ci0g
ICAgICAgIC8vIFdoZW4gd2UgY2FuJ3Qgc3RhdGljYWxseSBwcm92ZSB3ZSBuZWVkIGEgVERaIGNo
ZWNrLCB3ZSBtdXN0IHBlcmZvcm0gdGhlIGNoZWNrIG9uIHRoZSBzbG93IHBhdGguCi0gICAgICAg
IHJlc3VsdCA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnQpOwotICAgICAgICBpZiAocmVzdWx0
ID09IGpzVERaVmFsdWUoKSkgewotICAgICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlv
bihleGVjLCBjcmVhdGVURFpFcnJvcihleGVjKSk7Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFs
dWUoKTsKKyAgICAgICAgaWYgKHNjb3BlLT5pc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpKSB7
CisgICAgICAgICAgICAvLyBXaGVuIHdlIGNhbid0IHN0YXRpY2FsbHkgcHJvdmUgd2UgbmVlZCBh
IFREWiBjaGVjaywgd2UgbXVzdCBwZXJmb3JtIHRoZSBjaGVjayBvbiB0aGUgc2xvdyBwYXRoLgor
ICAgICAgICAgICAgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudCk7CisgICAgICAg
ICAgICBpZiAocmVzdWx0ID09IGpzVERaVmFsdWUoKSkgeworICAgICAgICAgICAgICAgIHZtLnRo
cm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVREWkVycm9yKGV4ZWMpKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0K
IAotICAgIENvbW1vblNsb3dQYXRoczo6dHJ5Q2FjaGVHZXRGcm9tU2NvcGVHbG9iYWwoZXhlYywg
dm0sIHBjLCBzY29wZSwgc2xvdCwgaWRlbnQpOworICAgICAgICBDb21tb25TbG93UGF0aHM6OnRy
eUNhY2hlR2V0RnJvbVNjb3BlR2xvYmFsKGV4ZWMsIHZtLCBwYywgc2NvcGUsIHNsb3QsIGlkZW50
KTsKIAotICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXN1bHQgPSBzbG90LmdldFZhbHVlKGV4
ZWMsIGlkZW50KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgICAg
IGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRl
bnQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0pKTsKIH0KIAogdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dFRvU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiog
Ynl0ZWNvZGVQQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggYjAyMWQxMDFmMzNjYjc2MmFhNDJm
YWZmMWJkZDVmM2FlOTU1OTZiYy4uODYyMTk0NzdhZWZhNTFjYzVmYWU0ZjdiZDMyZmMyMjgwZDc2
ZmI3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTMwMiw4ICszMDIsMTIgQEAgY2xhc3MgSW1w
dXJlR2V0dGVyIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHsKICAgICAgICAgSW1w
dXJlR2V0dGVyKiB0aGlzT2JqZWN0ID0ganNDYXN0PEltcHVyZUdldHRlcio+KG9iamVjdCk7CiAg
ICAgICAgIAotICAgICAgICBpZiAodGhpc09iamVjdC0+bV9kZWxlZ2F0ZSAmJiB0aGlzT2JqZWN0
LT5tX2RlbGVnYXRlLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgbmFtZSwgc2xvdCkpCi0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKHRoaXNPYmplY3QtPm1fZGVsZWdhdGUpIHsK
KyAgICAgICAgICAgIGlmICh0aGlzT2JqZWN0LT5tX2RlbGVnYXRlLT5nZXRQcm9wZXJ0eVNsb3Qo
ZXhlYywgbmFtZSwgc2xvdCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xv
dChvYmplY3QsIGV4ZWMsIG5hbWUsIHNsb3QpOwogICAgIH0KQEAgLTM1OCw3ICszNjIsNyBAQCBj
bGFzcyBDdXN0b21HZXR0ZXIgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgfQogCiBw
cml2YXRlOgotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3Qq
KQorICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAgICAg
IEN1c3RvbUdldHRlciogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8Q3VzdG9tR2V0dGVyKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgICAgICBpZiAoIXRoaXNPYmplY3QpCkBA
IC00NjMsNyArNDY3LDcgQEAgY2xhc3MgUnVudGltZUFycmF5IDogcHVibGljIEpTQXJyYXkgewog
ICAgIHsKICAgICB9CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpT
T2JqZWN0KikKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewog
ICAgICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJ1bnRpbWVB
cnJheSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICAgICAgaWYgKCF0aGlzT2Jq
ZWN0KQpAQCAtNTg1LDYgKzU4OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uRHVtcENhbGxGcmFtZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVmVyc2lvbihFeGVjU3RhdGUqKTsKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUnVuKEV4ZWNTdGF0ZSopOwogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkKEV4ZWNTdGF0ZSop
Oworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkU3RyaW5n
KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25SZWFkRmlsZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uQ2hlY2tTeW50YXgoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlYWRsaW5lKEV4ZWNTdGF0ZSopOwpAQCAtNzY1LDYg
Kzc3MCw3IEBAIGNsYXNzIEdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiAg
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAidmVyc2lvbiIsIGZ1bmN0aW9uVmVyc2lvbiwgMSk7CiAg
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicnVuIiwgZnVuY3Rpb25SdW4sIDEpOwogICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgImxvYWQiLCBmdW5jdGlvbkxvYWQsIDEpOworICAgICAgICBhZGRGdW5j
dGlvbih2bSwgImxvYWRTdHJpbmciLCBmdW5jdGlvbkxvYWRTdHJpbmcsIDEpOwogICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgInJlYWRGaWxlIiwgZnVuY3Rpb25SZWFkRmlsZSwgMSk7CiAgICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAiY2hlY2tTeW50YXgiLCBmdW5jdGlvbkNoZWNrU3ludGF4LCAxKTsK
ICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJqc2NTdGFjayIsIGZ1bmN0aW9uSlNDU3RhY2ssIDEp
OwpAQCAtMTQ0MSw2ICsxNDQ3LDIwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25Mb2FkKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkU3Ry
aW5nKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBTdHJpbmcgc291cmNlQ29kZSA9IGV4ZWMtPmFy
Z3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKTsKKworICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlv
bjsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhl
YygpLCBtYWtlU291cmNlKHNvdXJjZUNvZGUpLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRp
b24pOworICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKQorICAgICAgICBleGVjLT52bSgpLnRo
cm93RXhjZXB0aW9uKGV4ZWMsIGV2YWx1YXRpb25FeGNlcHRpb24pOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvblJlYWRGaWxlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBTdHJpbmcgZmlsZU5hbWUg
PSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCA3NzljMWYw
ZTZmNTYyMDc0NDE2YjY2MmQ3NmVjMTE5YTE0YTYyMDhjLi40MGY1MWExYWI2ZWE2ZDZmMGY4YmM0
NmU5YWVmNjdlZTA1NjcxMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAKQEAgLTE0OTIsMjYgKzE0OTIsMjcgQEAgTExJTlRfU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX2dldF9mcm9tX3Njb3BlKQogICAgIC8vIE1vZHVsZVZhciBpcyBhbHdh
eXMgY29udmVydGVkIHRvIENsb3N1cmVWYXIgZm9yIGdldF9mcm9tX3Njb3BlLgogICAgIEFTU0VS
VChnZXRQdXRJbmZvLnJlc29sdmVUeXBlKCkgIT0gTW9kdWxlVmFyKTsKIAotICAgIFByb3BlcnR5
U2xvdCBzbG90KHNjb3BlLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsK
LSAgICBpZiAoIXNjb3BlLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQsIHNsb3QpKSB7Ci0g
ICAgICAgIGlmIChnZXRQdXRJbmZvLnJlc29sdmVNb2RlKCkgPT0gVGhyb3dJZk5vdEZvdW5kKQot
ICAgICAgICAgICAgTExJTlRfUkVUVVJOKGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywg
Y3JlYXRlVW5kZWZpbmVkVmFyaWFibGVFcnJvcihleGVjLCBpZGVudCkpKTsKLSAgICAgICAgTExJ
TlRfUkVUVVJOKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KKyAgICBMTElOVF9SRVRVUk4oc2NvcGUt
PmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudCwgWyZdIChib29sIGZvdW5kLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpIC0+IEpTVmFsdWUgeworICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAg
ICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgpID09IFRocm93SWZOb3RGb3VuZCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVV
bmRlZmluZWRWYXJpYWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7CisgICAgICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKKyAgICAgICAgfQogCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBKU1ZhbHVl
KCk7Ci0gICAgaWYgKHNjb3BlLT5pc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpKSB7Ci0gICAg
ICAgIC8vIFdoZW4gd2UgY2FuJ3Qgc3RhdGljYWxseSBwcm92ZSB3ZSBuZWVkIGEgVERaIGNoZWNr
LCB3ZSBtdXN0IHBlcmZvcm0gdGhlIGNoZWNrIG9uIHRoZSBzbG93IHBhdGguCi0gICAgICAgIHJl
c3VsdCA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnQpOwotICAgICAgICBpZiAocmVzdWx0ID09
IGpzVERaVmFsdWUoKSkKLSAgICAgICAgICAgIExMSU5UX1RIUk9XKGNyZWF0ZVREWkVycm9yKGV4
ZWMpKTsKLSAgICB9CisgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZSgpOworICAgICAg
ICBpZiAoc2NvcGUtPmlzR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KCkpIHsKKyAgICAgICAgICAg
IC8vIFdoZW4gd2UgY2FuJ3Qgc3RhdGljYWxseSBwcm92ZSB3ZSBuZWVkIGEgVERaIGNoZWNrLCB3
ZSBtdXN0IHBlcmZvcm0gdGhlIGNoZWNrIG9uIHRoZSBzbG93IHBhdGguCisgICAgICAgICAgICBy
ZXN1bHQgPSBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50KTsKKyAgICAgICAgICAgIGlmIChyZXN1
bHQgPT0ganNURFpWYWx1ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRo
cm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVREWkVycm9yKGV4ZWMpKTsKKyAgICAgICAgfQogCi0g
ICAgQ29tbW9uU2xvd1BhdGhzOjp0cnlDYWNoZUdldEZyb21TY29wZUdsb2JhbChleGVjLCB2bSwg
cGMsIHNjb3BlLCBzbG90LCBpZGVudCk7CisgICAgICAgIENvbW1vblNsb3dQYXRoczo6dHJ5Q2Fj
aGVHZXRGcm9tU2NvcGVHbG9iYWwoZXhlYywgdm0sIHBjLCBzY29wZSwgc2xvdCwgaWRlbnQpOwog
Ci0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIHJlc3VsdCA9IHNsb3QuZ2V0VmFsdWUoZXhlYywg
aWRlbnQpOwotICAgIExMSU5UX1JFVFVSTihyZXN1bHQpOworICAgICAgICBpZiAoIXJlc3VsdCkK
KyAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50KTsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9KSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9wdXRfdG9fc2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uU2xvd1BhdGhzLmNwcAppbmRleCAwOWExNzA0Nzc2NGJhMGMxZDc0ODdkYzQ4ZjY4N2Ew
Nzk1Mzc3OWNiLi5kYjk2ODZlYjgzN2I1Mjg5Njc1MTZmNzk5MmRhMTllNDA0OGYyMjQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAK
QEAgLTc3MSw2ICs3NzEsOCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcmVzb2x2ZV9zY29w
ZSkKICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IGV4ZWMtPmNvZGVCbG9jaygpLT5pZGVu
dGlmaWVyKHBjWzNdLnUub3BlcmFuZCk7CiAgICAgSlNTY29wZSogc2NvcGUgPSBleGVjLT51bmNo
ZWNrZWRSKHBjWzJdLnUub3BlcmFuZCkuUmVnaXN0ZXI6OnNjb3BlKCk7CiAgICAgSlNPYmplY3Qq
IHJlc29sdmVkU2NvcGUgPSBKU1Njb3BlOjpyZXNvbHZlKGV4ZWMsIHNjb3BlLCBpZGVudCk7Cisg
ICAgLy8gUHJveHkgY2FuIHRocm93IGFuIGVycm9yIGhlcmUsIGUuZy4gUHJveHkgaW4gd2l0aCBz
dGF0ZW1lbnQncyBAdW5zY29wYWJsZXMuCisgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CiAKICAgICBS
ZXNvbHZlVHlwZSByZXNvbHZlVHlwZSA9IHN0YXRpY19jYXN0PFJlc29sdmVUeXBlPihwY1s0XS51
Lm9wZXJhbmQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHAKaW5kZXggMmQ2N2U0MzE3MWUyZGQ2Yzk0NTA4
NzZjOWYyMmQyMWQzNWVkYjQ0ZS4uMWYzMzU2MjY3ZmFmYjdkMzA1ZDk2M2FhYTkwN2ZlMmY0YmU2
NGUwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZFNs
b3RCYXNlRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Qm91bmRTbG90QmFzZUZ1bmN0aW9uLmNwcApAQCAtNTEsNyArNTEsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGJvdW5kU2xvdEJhc2VGdW5jdGlvbkNhbGwoRXhlY1N0YXRlKiBleGVj
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCiAgICAg
Y29uc3QgU3RyaW5nJiBuYW1lID0gYm91bmRTbG90QmFzZUZ1bmN0aW9uLT5uYW1lKCk7Ci0gICAg
cmV0dXJuIGdldHRlcihleGVjLCBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dGhpc1ZhbHVlKCkpLCBQ
cm9wZXJ0eU5hbWUoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBuYW1lKSksIGJhc2VPYmpl
Y3QpOworICAgIHJldHVybiBnZXR0ZXIoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNW
YWx1ZSgpKSwgUHJvcGVydHlOYW1lKElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgbmFtZSkp
KTsKIH0KIAogSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb246OkpTQm91bmRTbG90QmFzZUZ1bmN0aW9u
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIGNvbnN0IFR5cGUgdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWUuaAppbmRleCA5MGFhZTEwMjM0M2YwOGQyNzRlYmQzYzFhMmQyODE3Zjc5YjdiYWM5Li5j
NDczYzRmMWM5NWI1ZjAwNDhkMGY0ZjA4Yjk0YmJkZGI1ZmVmZDE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC0yODcsNiArMjg3LDEwIEBAIGNsYXNz
IEpTVmFsdWUgewogICAgIEpTVmFsdWUgZ2V0KEV4ZWNTdGF0ZSosIHVpbnQ2NF90IHByb3BlcnR5
TmFtZSkgY29uc3Q7CiAKICAgICBib29sIGdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBQcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1
bmM+CisgICAgdHlwZW5hbWUgc3RkOjpyZXN1bHRfb2Y8RnVuYyhib29sLCBQcm9wZXJ0eVNsb3Qm
KT46OnR5cGUgZ2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgRnVuYykg
Y29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KKyAgICB0eXBlbmFtZSBzdGQ6OnJl
c3VsdF9vZjxGdW5jKGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBnZXRQcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmLCBGdW5jKSBjb25zdDsKIAog
ICAgIGJvb2wgcHV0KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CiAgICAgYm9vbCBwdXRJbmxpbmUoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCmluZGV4IGJlZGM2MjIyN2YwZTI3MGExYTU2MTZj
MjA4YWUwYmVkMWUwZWM5MWQuLjI2ZTY1MzIxODE5MTI3MmFjNzE4ZTU5ZWIyN2IzMjAyMWZhZTFh
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlu
bGluZXMuaApAQCAtNzY4LDYgKzc2OCwyMiBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgSlNWYWx1
ZTo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUAogICAg
ICAgICBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSkgOiBqc1VuZGVmaW5lZCgpOwog
fQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorQUxXQVlTX0lOTElORSB0eXBlbmFtZSBzdGQ6
OnJlc3VsdF9vZjxGdW5jKGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBKU1ZhbHVlOjpnZXRQ
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBG
dW5jIGZ1bmN0aW9uKSBjb25zdAoreworICAgIFByb3BlcnR5U2xvdCBzbG90KGFzVmFsdWUoKSwg
UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7CisgICAgcmV0dXJuIGdldFBy
b3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QsIGZ1bmN0aW9uKTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgRnVuYz4KK0FMV0FZU19JTkxJTkUgdHlwZW5hbWUgc3RkOjpyZXN1bHRf
b2Y8RnVuYyhib29sLCBQcm9wZXJ0eVNsb3QmKT46OnR5cGUgSlNWYWx1ZTo6Z2V0UHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90LCBGdW5jIGZ1bmN0aW9uKSBjb25zdAoreworICAgIGJvb2wgZm91bmQgPSBnZXRQ
cm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICBpZiAoVU5MSUtFTFko
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBm
dW5jdGlvbihmb3VuZCwgc2xvdCk7Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBKU1ZhbHVlOjpn
ZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhpcyBpcyBhIHByaW1p
dGl2ZSwgd2UnbGwgbmVlZCB0byBzeW50aGVzaXplIHRoZSBwcm90b3R5cGUgLQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCmluZGV4IDQyNzRjMjE2ZmI4
YTcwOWIwNjc0NGFmOWE4MzViODRjN2FlM2IzMDAuLjU4MDdlNWVkNDNjZjNhMDA3NjYzMDFmMzY0
YmIyMThhNTlmMmNiZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGxJbmxpbmVzLmgKQEAgLTExOCw3ICsxMTgsNyBAQCBpbmxpbmUgVk0qIEpTQ2VsbDo6dm0oKSBj
b25zdAogICAgIHJldHVybiBNYXJrZWRCbG9jazo6YmxvY2tGb3IodGhpcyktPnZtKCk7CiB9CiAK
LWlubGluZSBWTSYgRXhlY1N0YXRlOjp2bSgpIGNvbnN0CitBTFdBWVNfSU5MSU5FIFZNJiBFeGVj
U3RhdGU6OnZtKCkgY29uc3QKIHsKICAgICBBU1NFUlQoY2FsbGVlKCkpOwogICAgIEFTU0VSVChj
YWxsZWUoKS0+dm0oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uY3BwCmluZGV4IDI2YWE3ZjY3MGJiM2M0Y2NlZDYwMmRiMjNkMGJiMDBiMTliMDhkNjcuLmNh
Y2MxZWJmZjY1NGU0NDBiOGQ4MzQ5ODdkMjljZjAyMjkxMmE0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgc3Rh
dGljIEpTVmFsdWUgcmV0cmlldmVBcmd1bWVudHMoRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9u
KiBmdW5jdGlvbk9iaikKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRK
U1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTRnVuY3Rpb24qIHRo
aXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwpAQCAtMzE5LDcgKzMxOSw3
IEBAIHN0YXRpYyBKU1ZhbHVlIHJldHJpZXZlQ2FsbGVyRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVj
LCBKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikK
K0VuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmNhbGxlckdldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTRnVuY3Rp
b24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDMwN2RlYzEzYzU1ZGYxYWQy
MTM5YTI4MDk4MGRkZjJiMzc0MTQ3MzQuLjMwMDcwZDBkNjFkN2UyYjZhZDhiYWRjYmZkMTk3MWFj
Nzc1N2IyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgK
QEAgLTE5OCw4ICsxOTgsMTAgQEAgY2xhc3MgSlNGdW5jdGlvbiA6IHB1YmxpYyBKU0NhbGxlZSB7
CiAKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogCi0gICAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBj
YWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNP
YmplY3QqKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzR2V0dGVyKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgbmFtZUdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
IAogICAgIFdyaXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gbV9leGVjdXRhYmxlOwogICAgIFdy
aXRlQmFycmllcjxGdW5jdGlvblJhcmVEYXRhPiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1
Y3RvcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXggZjNjN2M2ODA4NGU4ZjNmZGYx
YjFiZjJjNmVlOGU4YjQyYzA1MThjMi4uNmViMDg5MjEzN2ZkODMxNDJiZDYwZTgxMWM0NTI4MGQ1
MDcwY2UwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5l
cy5oCkBAIC0xNTAsNyArMTUwLDkgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmlj
VHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzKEV4ZWNTdGF0ZSogZXhlYywgU3QKICAgICAgICAg
aWYgKGlzVHlwZWRWaWV3KG9iamVjdC0+Y2xhc3NJbmZvKCktPnR5cGVkQXJyYXlTdG9yYWdlVHlw
ZSkpCiAgICAgICAgICAgICBsZW5ndGggPSBqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPihvYmpl
Y3QpLT5sZW5ndGgoKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBQcm9wZXJ0eVNsb3Qg
bGVuZ3RoU2xvdChvYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQp
OworICAgICAgICAgICAgLy8gVGhpcyBnZXRQcm9wZXJ0eVNsb3Qgb3BlcmF0aW9uIHNob3VsZCBu
b3QgYmUgb2JzZXJ2ZWQgYnkgdGhlIFByb3h5LgorICAgICAgICAgICAgLy8gU28gd2UgdXNlIFZN
SW5xdWlyeS4gQW5kIHB1cmdlIHRoZSBwcm94eSBjYXNlIGJ5IGlzVGFpbnRlZEJ5UHJveHkoKSBn
dWFyZC4KKyAgICAgICAgICAgIFByb3BlcnR5U2xvdCBsZW5ndGhTbG90KG9iamVjdCwgUHJvcGVy
dHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSk7CiAgICAgICAgICAgICBvYmpl
Y3QtPmdldFByb3BlcnR5U2xvdChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGxlbmd0
aFNsb3QpOwogCiAgICAgICAgICAgICBKU1ZhbHVlIGl0ZXJhdG9yRnVuYyA9IG9iamVjdC0+Z2V0
KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sKTsKQEAgLTE2NSw3ICsxNjcs
NyBAQCBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhB
cmd1bWVudHMoRXhlY1N0YXRlKiBleGVjLCBTdAogCiAgICAgICAgICAgICBpZiAoIWl0ZXJhdG9y
RnVuYy5pc1VuZGVmaW5lZCgpCiAgICAgICAgICAgICAgICAgJiYgKGl0ZXJhdG9yRnVuYyAhPSBv
YmplY3QtPmdsb2JhbE9iamVjdCgpLT5hcnJheVByb3RvVmFsdWVzRnVuY3Rpb24oKQotICAgICAg
ICAgICAgICAgICAgICB8fCBsZW5ndGhTbG90LmlzQWNjZXNzb3IoKSB8fCBsZW5ndGhTbG90Lmlz
Q3VzdG9tKCkKKyAgICAgICAgICAgICAgICAgICAgfHwgbGVuZ3RoU2xvdC5pc0FjY2Vzc29yKCkg
fHwgbGVuZ3RoU2xvdC5pc0N1c3RvbSgpIHx8IGxlbmd0aFNsb3QuaXNUYWludGVkQnlQcm94eSgp
CiAgICAgICAgICAgICAgICAgICAgIHx8IGhhc0FueUFycmF5U3RvcmFnZShvYmplY3QtPmluZGV4
aW5nVHlwZSgpKSkpIHsKIAogICAgICAgICAgICAgICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFtZXNw
YWNlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFt
ZXNwYWNlT2JqZWN0LmNwcAppbmRleCA5ZTk5NDMyNDY5NTRmMzAyY2YwZmU4MDg3NDBkNmUxMTQ3
Njc2YTMzLi40MGRkYTczMzNmZjcyMGFkZjYwOThmZjQ3NzU3MmYxZWIxODZhZWEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZU5hbWVzcGFjZU9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3Bh
Y2VPYmplY3QuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgSlNNb2R1bGVOYW1lc3BhY2VPYmpl
Y3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAg
ICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9tb2R1bGVSZWNvcmQpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikK
K3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAg
ICBKU01vZHVsZU5hbWVzcGFjZU9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU01vZHVsZU5h
bWVzcGFjZU9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBKU01vZHVs
ZVJlY29yZCogbW9kdWxlUmVjb3JkID0gdGhpc09iamVjdC0+bW9kdWxlUmVjb3JkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IGNiYTVhMzgz
ZGUwNmIxNzZmOTI0NjYxYjkxZjQzNzZiMzRjMTMxMjEuLjFiODIwYWY1MmQ4Njc5Yzg5MDE0NDZl
OGViYmJhODIxYzJiZGQ1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuY3BwCkBAIC00ODAsMTIgKzQ4MCwxMiBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xk
ZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1
aQogICAgICAgICAgICAgdmFsdWUgPSBhc0FycmF5KG1fb2JqZWN0LmdldCgpKS0+Z2V0SW5kZXhR
dWlja2x5KGluZGV4KTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qg
c2xvdChtX29iamVjdC5nZXQoKSwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okdl
dCk7Ci0gICAgICAgICAgICBpZiAobV9vYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXgobV9vYmplY3QuZ2V0KCksIGV4ZWMsIGluZGV4LCBzbG90KSkgeworICAg
ICAgICAgICAgaWYgKG1fb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KG1fb2JqZWN0LmdldCgpLCBleGVjLCBpbmRleCwgc2xvdCkpCiAgICAgICAgICAgICAg
ICAgdmFsdWUgPSBzbG90LmdldFZhbHVlKGV4ZWMsIGluZGV4KTsKLSAgICAgICAgICAgICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IHZhbHVlID0ganNVbmRlZmluZWQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9
CiAKICAgICAgICAgLy8gQXBwZW5kIHRoZSBzZXBhcmF0b3Igc3RyaW5nLgpAQCAtNjMxLDYgKzYz
MSw4IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVy
ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICBpblZhbHVlID0gc2xvdC5nZXRWYWx1ZShtX2V4
ZWMsIGluZGV4KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAg
ICAgICAgaW5WYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICht
X2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpz
TnVsbCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgaWYgKGluVmFsdWUuaXNPYmplY3QoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmgKaW5kZXggNjQ3YWVkNjU1MGIwOGFhMWQ5NzkzMDIwYmIyMTQ2Nzcz
YTk2NzVmOS4uMTE2NDZiNTI2ZmU1OTFjNjg3NmU4YzBlNWJkNWYzNmNhM2Y0NzNmNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNTEsNiArMTUxLDEwIEBA
IGNsYXNzIEpTT2JqZWN0IDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBib29sIGdldFByb3BlcnR5
U2xvdChFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgIGJvb2wg
Z2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KKyAgICB0eXBlbmFtZSBzdGQ6
OnJlc3VsdF9vZjxGdW5jKGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBnZXRQcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBGdW5jKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jPgorICAgIHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPEZ1bmMoYm9vbCwgUHJv
cGVydHlTbG90Jik+Ojp0eXBlIGdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYsIEZ1bmMpIGNvbnN0OwogCiAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTEzNjEsNiArMTM2NSwyMiBAQCBpbmxpbmUgSlNWYWx1ZSBK
U09iamVjdDo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25z
dAogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
PgorQUxXQVlTX0lOTElORSB0eXBlbmFtZSBzdGQ6OnJlc3VsdF9vZjxGdW5jKGJvb2wsIFByb3Bl
cnR5U2xvdCYpPjo6dHlwZSBKU09iamVjdDo6Z2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgRnVuYyBmdW5jdGlvbikgY29uc3QKK3sKKyAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlw
ZTo6R2V0KTsKKyAgICByZXR1cm4gZ2V0UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCwgZnVuY3Rpb24pOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorQUxXQVlTX0lO
TElORSB0eXBlbmFtZSBzdGQ6OnJlc3VsdF9vZjxGdW5jKGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6
dHlwZSBKU09iamVjdDo6Z2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90LCBGdW5jIGZ1bmN0aW9uKSBjb25z
dAoreworICAgIGJvb2wgZm91bmQgPSBjb25zdF9jYXN0PEpTT2JqZWN0Kj4odGhpcyktPmdldFBy
b3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGZ1
bmN0aW9uKGZvdW5kLCBzbG90KTsKK30KKwogdGVtcGxhdGU8SlNPYmplY3Q6OlB1dE1vZGUgbW9k
ZT4KIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwoVk0mIHZt
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRy
aWJ1dGVzLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCA2ODcwNThiYThkNjcxMTc1
OWVjZTIxZGM0ZjNiMTEwYTk5ZmI3NDk0Li43MGNlY2Q4MDc3YWJhYWVmMGNjODNkMTIzZmEzNDI3
ZjcyOWFlN2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dFByb3RvdHlwZS5jcHAKQEAgLTI3NywzNCArMjc3LDM1IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CiAKICAgICBKU1N0cmluZyogcmVz
dWx0ID0gdGhpc09iamVjdC0+c3RydWN0dXJlKHZtKS0+b2JqZWN0VG9TdHJpbmdWYWx1ZSgpOwot
ICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIFByb3BlcnR5TmFtZSB0b1N0cmluZ1RhZ1N5bWJv
bCA9IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0cmluZ1RhZ1N5bWJvbDsKLSAgICAgICAgUHJv
cGVydHlTbG90IHRvU3RyaW5nVGFnU2xvdCh0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVy
bmFsTWV0aG9kVHlwZTo6R2V0KTsKLSAgICAgICAgaWYgKHRoaXNPYmplY3QtPmdldFByb3BlcnR5
U2xvdChleGVjLCB0b1N0cmluZ1RhZ1N5bWJvbCwgdG9TdHJpbmdUYWdTbG90KSkgeworICAgIGlm
IChyZXN1bHQpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKworICAg
IFByb3BlcnR5TmFtZSB0b1N0cmluZ1RhZ1N5bWJvbCA9IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50
b1N0cmluZ1RhZ1N5bWJvbDsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3Qt
PmdldFByb3BlcnR5U2xvdChleGVjLCB0b1N0cmluZ1RhZ1N5bWJvbCwgWyZdIChib29sIGZvdW5k
LCBQcm9wZXJ0eVNsb3QmIHRvU3RyaW5nVGFnU2xvdCkgLT4gSlNWYWx1ZSB7CisgICAgICAgIGlm
IChmb3VuZCkgewogICAgICAgICAgICAgSlNWYWx1ZSBzdHJpbmdUYWcgPSB0b1N0cmluZ1RhZ1Ns
b3QuZ2V0VmFsdWUoZXhlYywgdG9TdHJpbmdUYWdTeW1ib2wpOwogICAgICAgICAgICAgaWYgKFVO
TElLRUxZKHZtLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAg
ICAgICAgICAgIGlmIChzdHJpbmdUYWcuaXNTdHJpbmcoKSkgewogICAgICAgICAgICAgICAgIEpT
Um9wZVN0cmluZzo6Um9wZUJ1aWxkZXIgcm9wZUJ1aWxkZXIodm0pOwogICAgICAgICAgICAgICAg
IHJvcGVCdWlsZGVyLmFwcGVuZCh2bS5zbWFsbFN0cmluZ3Mub2JqZWN0U3RyaW5nU3RhcnQoKSk7
CiAgICAgICAgICAgICAgICAgcm9wZUJ1aWxkZXIuYXBwZW5kKGpzQ2FzdDxKU1N0cmluZyo+KHN0
cmluZ1RhZykpOwogICAgICAgICAgICAgICAgIHJvcGVCdWlsZGVyLmFwcGVuZCh2bS5zbWFsbFN0
cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKCddJykpOwotICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IHJvcGVCdWlsZGVyLnJlbGVhc2UoKTsKKyAgICAgICAgICAgICAgICBKU1N0cmluZyogcmVz
dWx0ID0gcm9wZUJ1aWxkZXIucmVsZWFzZSgpOwogCiAgICAgICAgICAgICAgICAgdGhpc09iamVj
dC0+c3RydWN0dXJlKHZtKS0+c2V0T2JqZWN0VG9TdHJpbmdWYWx1ZShleGVjLCB2bSwgcmVzdWx0
LCB0b1N0cmluZ1RhZ1Nsb3QpOwotICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAKICAgICAgICAgU3RyaW5nIG5ld1N0cmluZyA9IFdURjo6dHJ5TWFrZVN0
cmluZygiW29iamVjdCAiLCB0aGlzT2JqZWN0LT5tZXRob2RUYWJsZShleGVjLT52bSgpKS0+Y2xh
c3NOYW1lKHRoaXNPYmplY3QpLCAiXSIpOwogICAgICAgICBpZiAoIW5ld1N0cmluZykKLSAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dPdXRPZk1lbW9yeUVycm9yKGV4ZWMp
KTsKKyAgICAgICAgICAgIHJldHVybiB0aHJvd091dE9mTWVtb3J5RXJyb3IoZXhlYyk7CiAKLSAg
ICAgICAgcmVzdWx0ID0ganNOb250cml2aWFsU3RyaW5nKCZ2bSwgbmV3U3RyaW5nKTsKKyAgICAg
ICAgSlNTdHJpbmcqIHJlc3VsdCA9IGpzTm9udHJpdmlhbFN0cmluZygmdm0sIG5ld1N0cmluZyk7
CiAgICAgICAgIHRoaXNPYmplY3QtPnN0cnVjdHVyZSh2bSktPnNldE9iamVjdFRvU3RyaW5nVmFs
dWUoZXhlYywgdm0sIHJlc3VsdCwgdG9TdHJpbmdUYWdTbG90KTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
fSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCmluZGV4IGM2ODgyNDQ1ZjBiZGFiNTMzYTk0ZTZjMTA0
ODdhMzdlMTJlMmQ1MDUuLjQ5NmQwYWM0Y2VlNDBiOWYzMTI0ODAyZjA5ODUzYzgyNzM2Y2UxYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcApA
QCAtMzgsNyArMzgsNyBAQCBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6Y3VzdG9tR2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgYwogICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBkaWZmZXJlbmNlcyBpbiBjdXN0b20gdmFsdWVzIGFuZCBjdXN0b20gYWNjZXNz
b3JzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgw
MTQKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IG1fYXR0cmlidXRlcyAmIEN1c3RvbUFjY2Vzc29y
ID8gbV90aGlzVmFsdWUgOiBKU1ZhbHVlKHNsb3RCYXNlKCkpOwotICAgIHJldHVybiBKU1ZhbHVl
OjpkZWNvZGUobV9kYXRhLmN1c3RvbS5nZXRWYWx1ZShleGVjLCBKU1ZhbHVlOjplbmNvZGUodGhp
c1ZhbHVlKSwgcHJvcGVydHlOYW1lLCBzbG90QmFzZSgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmRlY29kZShtX2RhdGEuY3VzdG9tLmdldFZhbHVlKGV4ZWMsIEpTVmFsdWU6OmVuY29kZSh0aGlz
VmFsdWUpLCBwcm9wZXJ0eU5hbWUpKTsKIH0KIAogSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmdldFB1
cmVSZXN1bHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlTbG90LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eVNsb3QuaAppbmRleCBlYTVjYzlkZmY3OTA0Y2YwZGExOWVjOTk4MTgxNTVkN2IzZDgxN2NlLi5k
N2Q3NmM3ZTNjYTY1ZmRhZmU1YWMyOTM1ZDUxODg5ZGZiNTVkMjZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaApAQCAtOTQsMTIgKzk0LDkgQEAgY2xh
c3MgUHJvcGVydHlTbG90IHsKICAgICB7CiAgICAgfQogCi0gICAgLy8gVGhlcmUgYXJlIHR3byB0
eXBlcyBvZiBjdXN0b20gcHJvcGVydGllczogY3VzdG9tIHZhbHVlcyBhbmQgY3VzdG9tIGFjY2Vz
c29ycy4KLSAgICAvLyBGb3IgdGhlIHNlY29uZCBhcmd1bWVudCwgY3VzdG9tIHZhbHVlcyBhcmUg
cGFzc2VkIHRoZSBzbG90QmFzZSAodGhlIHByb3BlcnR5IGhvbGRlciksIGN1c3RvbSBhY2Nlc3Nv
cnMgYXJlIHBhc3NlZCB0aGUgdGhpc1ZhdWxlIChyZWNpZXZlcikuCi0gICAgLy8gQW5kIHdoZW4g
Z2V0dGluZyB0aGUgcHJvcGVydHkgZGVzY3JpcHRvciBmcm9tIHRoZXNlIHByb3BlcnRpZXMsIGN1
c3RvbSB2YWx1ZXMgcmV0dXJuIHRoZSBkYXRhIGRlc2NyaXB0b3Igd2hpbGUgY3VzdG9tIGFjY2Vz
c29ycyByZXR1cm4gdGhlIGFjY2Vzc29yIGRlc2NyaXB0b3IuCiAgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGlzIHNsb3RCYXNlIC8gcmVjZWl2ZXIgYmVoYXZpb3IgZGlmZmVyZW5jZSBpbiBjdXN0b20g
dmFsdWVzIGFuZCBjdXN0b20gYWNjZXNzb3JzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMTQKLSAgICB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlICgq
R2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSwgSlNPYmplY3QqIHNsb3RCYXNlKTsKKyAgICB0eXBlZGVmIEVuY29kZWRKU1ZhbHVl
ICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSk7CiAKICAgICBKU1ZhbHVlIGdldFZhbHVlKEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZSkgY29uc3Q7CiAgICAgSlNWYWx1ZSBnZXRWYWx1ZShFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUpIGNvbnN0OwpAQCAtMjQ5LDYgKzI0NiwxMSBAQCBjbGFzcyBQcm9wZXJ0eVNs
b3QgewogICAgICAgICBtX29mZnNldCA9IG9mZnNldDsKICAgICB9CiAKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV90aGlzVmFsdWU7CisgICAg
fQorCiAgICAgdm9pZCBzZXRUaGlzVmFsdWUoSlNWYWx1ZSB0aGlzVmFsdWUpCiAgICAgewogICAg
ICAgICBtX3RoaXNWYWx1ZSA9IHRoaXNWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3h5T2JqZWN0LmNwcAppbmRleCAwNzUwZjU3ZmNlZWU1YWMwYTUzZDlmYmU3MDhj
ZDUzYTlmOWM0M2QxLi5hMTJjYzE3MzcyZDI1NGI1YWFjZGU2NGNkZmM0YzRjMGVkZjc1OTQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCkBAIC05
NSwyMiArOTUsMjEgQEAgdm9pZCBQcm94eU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdGFyZ2V0LCBKU1ZhbHUKIAogc3RhdGljIGNvbnN0IGNo
YXIqIHNfcHJveHlBbHJlYWR5UmV2b2tlZEVycm9yTWVzc2FnZSA9ICJQcm94eSBoYXMgYWxyZWFk
eSBiZWVuIHJldm9rZWQuIE5vIG1vcmUgb3BlcmF0aW9ucyBhcmUgYWxsb3dlZCB0byBiZSBwZXJm
b3JtZWQgb24gaXQiOwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcGVyZm9ybVByb3h5R2V0KEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBKU09iamVjdCogc2xvdEJhc2UpCitzdGF0aWMgSlNWYWx1ZSBwZXJmb3JtUHJv
eHlHZXQoRXhlY1N0YXRlKiBleGVjLCBQcm94eU9iamVjdCogcHJveHlPYmplY3QsIEpTVmFsdWUg
cmVjZWl2ZXIsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBpZiAoVU5MSUtFTFkoIXZtLmlzU2FmZVRvUmVjdXJzZSgpKSkgewogICAg
ICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihleGVjKTsKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAgIH0K
IAotICAgIFByb3h5T2JqZWN0KiBwcm94eU9iamVjdCA9IGpzQ2FzdDxQcm94eU9iamVjdCo+KHNs
b3RCYXNlKTsKICAgICBKU09iamVjdCogdGFyZ2V0ID0gcHJveHlPYmplY3QtPnRhcmdldCgpOwog
CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT51bmRlcnNjb3JlUHJv
dG8pCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJveHlPYmplY3QtPnBlcmZvcm1H
ZXRQcm90b3R5cGUoZXhlYykpOworICAgICAgICByZXR1cm4gcHJveHlPYmplY3QtPnBlcmZvcm1H
ZXRQcm90b3R5cGUoZXhlYyk7CiAKICAgICBhdXRvIHBlcmZvcm1EZWZhdWx0R2V0ID0gWyZdIHsK
LSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0YXJnZXQtPmdldChleGVjLCBwcm9wZXJ0
eU5hbWUpKTsKKyAgICAgICAgcmV0dXJuIHRhcmdldC0+Z2V0KGV4ZWMsIHByb3BlcnR5TmFtZSk7
CiAgICAgfTsKIAogICAgIGlmICh2bS5wcm9wZXJ0eU5hbWVzLT5pc1ByaXZhdGVOYW1lKElkZW50
aWZpZXI6OmZyb21VaWQoJnZtLCBwcm9wZXJ0eU5hbWUudWlkKCkpKSkKQEAgLTExOCwxNCArMTE3
LDE0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwZXJmb3JtUHJveHlHZXQoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsCiAKICAgICBKU1ZhbHVlIGhhbmRsZXJWYWx1
ZSA9IHByb3h5T2JqZWN0LT5oYW5kbGVyKCk7CiAgICAgaWYgKGhhbmRsZXJWYWx1ZS5pc051bGwo
KSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKHNf
cHJveHlBbHJlYWR5UmV2b2tlZEVycm9yTWVzc2FnZSkpOworICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKHNfcHJveHlBbHJlYWR5UmV2b2tlZEVycm9yTWVz
c2FnZSkpOwogCiAgICAgSlNPYmplY3QqIGhhbmRsZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPihoYW5k
bGVyVmFsdWUpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAgIENhbGxUeXBlIGNhbGxUeXBl
OwogICAgIEpTVmFsdWUgZ2V0SGFuZGxlciA9IGhhbmRsZXItPmdldE1ldGhvZChleGVjLCBjYWxs
RGF0YSwgY2FsbFR5cGUsIHZtLnByb3BlcnR5TmFtZXMtPmdldCwgQVNDSUlMaXRlcmFsKCInZ2V0
JyBwcm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBvYmplY3Qgc2hvdWxkIGJlIGNhbGxhYmxl
IikpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiAKICAgICBpZiAoZ2V0SGFuZGxlci5pc1VuZGVmaW5lZCgpKQogICAgICAgICByZXR1cm4gcGVy
Zm9ybURlZmF1bHRHZXQoKTsKQEAgLTEzMywyNiArMTMyLDM2IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBwZXJmb3JtUHJveHlHZXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsCiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOwogICAgIGFyZ3VtZW50
cy5hcHBlbmQodGFyZ2V0KTsKICAgICBhcmd1bWVudHMuYXBwZW5kKGlkZW50aWZpZXJUb1NhZmVQ
dWJsaWNKU1ZhbHVlKHZtLCBJZGVudGlmaWVyOjpmcm9tVWlkKCZ2bSwgcHJvcGVydHlOYW1lLnVp
ZCgpKSkpOwotICAgIGFyZ3VtZW50cy5hcHBlbmQoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OworICAgIGFyZ3VtZW50cy5hcHBlbmQocmVjZWl2ZXIpOwogICAgIEpTVmFsdWUgdHJhcFJlc3Vs
dCA9IGNhbGwoZXhlYywgZ2V0SGFuZGxlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBoYW5kbGVyLCBh
cmd1bWVudHMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgZGVzY3JpcHRvcjsKICAgICBpZiAodGFy
Z2V0LT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yKSkgewogICAgICAgICBpZiAoZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkgJiYgIWRl
c2NyaXB0b3IuY29uZmlndXJhYmxlKCkgJiYgIWRlc2NyaXB0b3Iud3JpdGFibGUoKSkgewogICAg
ICAgICAgICAgaWYgKCFzYW1lVmFsdWUoZXhlYywgZGVzY3JpcHRvci52YWx1ZSgpLCB0cmFwUmVz
dWx0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJ
SUxpdGVyYWwoIlByb3h5IGhhbmRsZXIncyAnZ2V0JyByZXN1bHQgb2YgYSBub24tY29uZmlndXJh
YmxlIGFuZCBub24td3JpdGFibGUgcHJvcGVydHkgc2hvdWxkIGJlIHRoZSBzYW1lIHZhbHVlIGFz
IHRoZSB0YXJnZXQncyBwcm9wZXJ0eSIpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJQcm94eSBoYW5kbGVyJ3MgJ2dldCcgcmVzdWx0
IG9mIGEgbm9uLWNvbmZpZ3VyYWJsZSBhbmQgbm9uLXdyaXRhYmxlIHByb3BlcnR5IHNob3VsZCBi
ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgdGFyZ2V0J3MgcHJvcGVydHkiKSk7CiAgICAgICAgIH0g
ZWxzZSBpZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpICYmICFkZXNjcmlwdG9y
LmNvbmZpZ3VyYWJsZSgpICYmIGRlc2NyaXB0b3IuZ2V0dGVyKCkuaXNVbmRlZmluZWQoKSkgewog
ICAgICAgICAgICAgaWYgKCF0cmFwUmVzdWx0LmlzVW5kZWZpbmVkKCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJQcm94eSBoYW5k
bGVyJ3MgJ2dldCcgcmVzdWx0IG9mIGEgbm9uLWNvbmZpZ3VyYWJsZSBhY2Nlc3NvciBwcm9wZXJ0
eSB3aXRob3V0IGEgZ2V0dGVyIHNob3VsZCBiZSB1bmRlZmluZWQiKSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUHJveHkgaGFuZGxl
cidzICdnZXQnIHJlc3VsdCBvZiBhIG5vbi1jb25maWd1cmFibGUgYWNjZXNzb3IgcHJvcGVydHkg
d2l0aG91dCBhIGdldHRlciBzaG91bGQgYmUgdW5kZWZpbmVkIikpOwogICAgICAgICB9CiAgICAg
fQogCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
KworICAgIHJldHVybiB0cmFwUmVzdWx0OworfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZSh0cmFwUmVzdWx0KTsKK2Jvb2wgUHJveHlPYmplY3Q6OnBlcmZvcm1HZXQoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7Cisg
ICAgSlNWYWx1ZSByZXN1bHQgPSBwZXJmb3JtUHJveHlHZXQoZXhlYywgdGhpcywgc2xvdC50aGlz
VmFsdWUoKSwgcHJvcGVydHlOYW1lKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB1bnNpZ25lZCBpZ25vcmVkQXR0cmlidXRlcyA9IDA7
CisgICAgc2xvdC5zZXRWYWx1ZSh0aGlzLCBpZ25vcmVkQXR0cmlidXRlcywgcmVzdWx0KTsKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBQcm94eU9iamVjdDo6cGVyZm9ybUludGVybmFsTWV0
aG9kR2V0T3duUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC0zMzcsOCArMzQ2LDcgQEAgYm9vbCBQcm94eU9i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90Q29tbW9uKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lIHByb3BlcnQKICAgICBzbG90LnNldElzVGFpbnRlZEJ5UHJveHkoKTsKICAgICBzd2l0Y2gg
KHNsb3QuaW50ZXJuYWxNZXRob2RUeXBlKCkpIHsKICAgICBjYXNlIFByb3BlcnR5U2xvdDo6SW50
ZXJuYWxNZXRob2RUeXBlOjpHZXQ6Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIEN1c3Rv
bUFjY2Vzc29yLCBwZXJmb3JtUHJveHlHZXQpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgcmV0dXJuIHBlcmZvcm1HZXQoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICBjYXNl
IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eToKICAgICAg
ICAgcmV0dXJuIHBlcmZvcm1JbnRlcm5hbE1ldGhvZEdldE93blByb3BlcnR5KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiAgICAgY2FzZSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlw
ZTo6SGFzUHJvcGVydHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmpl
Y3QuaAppbmRleCAxMWRlNmY2ZmZlMGY2MjliZDQ1NmM3MjgyZmUzMjkxZDU3MTg1YzIwLi5hODJl
MzVjMzJkZjk2MWJjZGY4M2FlODMyYmQ2NTc4MDM5MzlkZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgKQEAgLTk1LDYgKzk1LDcgQEAgY2xhc3MgUHJv
eHlPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAKICAgICBib29sIGdldE93blBy
b3BlcnR5U2xvdENvbW1vbihFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYp
OwogICAgIGJvb2wgcGVyZm9ybUludGVybmFsTWV0aG9kR2V0T3duUHJvcGVydHkoRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBib29sIHBlcmZvcm1HZXQoRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBib29sIHBlcmZvcm1I
YXNQcm9wZXJ0eShFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBEZWZhdWx0RGVsZXRlRnVuY3Rpb24+CiAgICAgYm9vbCBwZXJm
b3JtRGVsZXRlKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgRGVmYXVsdERlbGV0ZUZ1bmN0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmNwcAppbmRleCAyNDNhMzVmNjE5ODRkMDE0NGJiMTZhNGE3ZDViOTRhY2MxY2M4ZmE2Li5k
MjM3ODliYzAzOTU2ZjQ4Y2RhOGJiZTczYzk2M2UxMGNkODIyZjUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0zMSwx
NCArMzEsMTQgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3RvcklucHV0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNP
YmplY3QqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRj
aChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3Rvckxhc3RQYXJlbihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
K3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpOwogdGVtcGxhdGU8aW50IE4+Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
IAogc3RhdGljIGJvb2wgc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogc3RhdGljIGJvb2wgc2V0UmVnRXhwQ29uc3Ry
dWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
KTsKQEAgLTE0NywzNyArMTQ3LDM3IEBAIEpTVmFsdWUgUmVnRXhwQ29uc3RydWN0b3I6OmdldFJp
Z2h0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMpCiB9CiAKIHRlbXBsYXRlPGludCBOPgotRW5jb2Rl
ZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFs
dWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNr
cmVmKGV4ZWMsIE4pKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1
dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNP
YmplY3QqKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpLT5pbnB1dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JN
dWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5l
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwQ29uc3RydWN0b3Io
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5tdWx0aWxpbmUoKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdl
dEJhY2tyZWYoZXhlYywgMCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ckxhc3RQYXJlbihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxh
c3RQYXJlbihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3Rv
cihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldExhc3RQYXJlbihleGVjKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQor
RW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSktPmdldExlZnRDb250ZXh0KGV4ZWMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRSaWdo
dENvbnRleHQoZXhlYykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9nZXQtZnJvbS1zY29wZS1keW5hbWljLW9udG8tcHJveHkuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1mcm9tLXNjb3BlLWR5bmFtaWMtb250by1w
cm94eS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jYTcxNTYxZWYyYjYxZjVmOGIzNzQ4YzhiODg1MDU5NDUyNDdj
NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtZnJvbS1zY29wZS1keW5hbWljLW9udG8tcHJveHkuanMKQEAgLTAsMCArMSwxMDYgQEAK
K2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9
PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgdmFsdWU6ICR7U3RyaW5n
KGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yTWVzc2Fn
ZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAgIHZhciBlcnJvciA9IG51bGw7
CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICgh
ZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicpOworICAg
IGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7Cit9CisKKy8vIExMSW50IHNsb3cg
cGF0aCBvcGVyYXRpb24uCitzaG91bGRUaHJvdyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIHRhcmdl
dCA9IHt9OworICAgIHZhciBoYW5kbGVyID0geworICAgICAgICBoYXM6IGZ1bmN0aW9uIChyZWNl
aXZlciwgbmFtZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdpJzsK
KyAgICAgICAgfSwKKyAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZl
cikKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdpJykKKyAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIk5HIik7CisgICAgICAgICAgICByZXR1cm4gNDI7CisgICAg
ICAgIH0KKyAgICB9OworICAgIHZhciBwcm94eSA9IG5ldyBQcm94eSh0YXJnZXQsIGhhbmRsZXIp
OworICAgIHdpdGggKHByb3h5KSB7CisgICAgICAgIGk7CisgICAgfQorfSwgYEVycm9yOiBOR2Ap
OworCisvLyBCYXNlbGluZSBKSVQgb3BlcmF0aW9uLgorc2hvdWxkVGhyb3coZnVuY3Rpb24gKCkg
eworICAgIHZhciBmbGFnID0gZmFsc2U7CisgICAgdmFyIHRhcmdldCA9IHt9OworICAgIHZhciBo
YW5kbGVyID0geworICAgICAgICBoYXM6IGZ1bmN0aW9uIChyZWNlaXZlciwgbmFtZSkKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdpJzsKKyAgICAgICAgfSwKKyAgICAg
ICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZlcikKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKG5hbWUgPT09ICdpJyAmJiBmbGFnKQorICAgICAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiTkciKTsKKyAgICAgICAgICAgIHJldHVybiA0MjsKKyAgICAgICAgfQorICAg
IH07CisgICAgdmFyIHByb3h5ID0gbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAgICB3aXRoIChwcm94eSkgeworICAg
ICAgICAgICAgaTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PT0gMWUzKQorICAgICAgICAg
ICAgZmxhZyA9IHRydWU7CisgICAgfQorfSwgYEVycm9yOiBOR2ApOworCisvLyBERkcgSklUIG9w
ZXJhdGlvbi4KK3ZhciB0aHJvd24gPSBudWxsOwordHJ5IHsKKyAgICAoKCkgPT4geworICAgICAg
ICB2YXIgZmxhZyA9IGZhbHNlOworICAgICAgICB2YXIgdGFyZ2V0ID0geworICAgICAgICAgICAg
X19wcm90b19fOiBudWxsCisgICAgICAgIH07CisgICAgICAgIHZhciBoYW5kbGVyID0geworICAg
ICAgICAgICAgaGFzOiBmdW5jdGlvbiAocmVjZWl2ZXIsIG5hbWUpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdhcmd1bWVudHMnOworICAgICAgICAgICAg
fSwKKworICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZlcikK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2FyZ3VtZW50cycg
JiYgZmxhZykKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJORyIpOworICAg
ICAgICAgICAgICAgIHJldHVybiA0MjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAg
ICAgdmFyIHByb3h5ID0gbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7CisgICAgICAgIHByb3h5
Ll9fcHJvdG9fXyA9IG51bGw7CisgICAgICAgIE9iamVjdC5wcm90b3R5cGUuX19wcm90b19fID0g
eworICAgICAgICAgICAgX19wcm90b19fOiBwcm94eSwKKyAgICAgICAgfTsKKyAgICAgICAgKCgp
ID0+IHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAg
ICAgICAgICAgICBhcmd1bWVudHM7CisgICAgICAgICAgICAgICAgaWYgKGkgPT09ICgxZTQgLSAy
KSkKKyAgICAgICAgICAgICAgICAgICAgZmxhZyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0pKCk7CisgICAgfSkoKTsKK30gY2F0Y2ggKGUpIHsKKyAgICB0aHJvd24gPSBlOworfQor
T2JqZWN0LnByb3RvdHlwZS5fX3Byb3RvX18gPSBudWxsOworc2hvdWxkQmUoU3RyaW5nKHRocm93
biksIGBFcnJvcjogTkdgKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3Mvb3BlcmF0aW9uLWluLXRocm93LWVycm9yLmpzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9vcGVyYXRpb24taW4tdGhyb3ctZXJyb3IuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjNhM2QwMjRlZjhhZjUyNDRkYWQ3MWMxNWVjY2M0ZGYwZmJiZjQ2OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3BlcmF0aW9uLWluLXRocm93
LWVycm9yLmpzCkBAIC0wLDAgKzEsMjggQEAKKyhmdW5jdGlvbiB0ZXN0Q2FzZSgpIHsKKyAgICB2
YXIgdGFyZ2V0ID0ge307CisgICAgdmFyIGhhbmRsZXIgPSB7CisgICAgICAgIGhhczogZnVuY3Rp
b24gKHRhcmdldCwgbmFtZSkgeworICAgICAgICAgICAgaWYgKG5hbWUgPT09ICduZycpCisgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCduZycpOworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgfTsKKyAgICB2YXIgcHJveHkgPSBuZXcgUHJveHkodGFyZ2V0
LCBoYW5kbGVyKTsKKyAgICB2YXIgYmFzZSA9IHsKKyAgICAgICAgX19wcm90b19fOiBwcm94eQor
ICAgIH07CisgICAgKGZ1bmN0aW9uIGEoKSB7CisgICAgICAgIHZhciB0aHJvd247CisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgICAgIHRocm93biA9IG51
bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICduZycgaW4gYmFzZTsKKyAg
ICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvd24gPSBlOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGhyb3duID09PSBudWxsKQorICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcihgbm90IHRocm93biAke2l9YCk7CisgICAgICAgIH0KKyAg
ICB9KCkpOworfSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvcHJveHktYW5kLWpzb24tc3RyaW5naWZ5LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9wcm94eS1hbmQtanNvbi1zdHJpbmdpZnkuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQz
N2ViYzM3ZDk4ZGNmYWU3ZDMyYzM2OGQxZjllNTAwZjNlYjU0YwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHktYW5kLWpzb24tc3RyaW5n
aWZ5LmpzCkBAIC0wLDAgKzEsMjggQEAKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9y
TWVzc2FnZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAgIHZhciBlcnJvciA9
IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAg
IGlmICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicp
OworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7Cit9CisKKy8vIFRoaXMg
dGVzdCBqdXN0IGVuc3VyZSB0aGF0IHByb3h5LltbR2V0XV0ncyB0aHJvd2luZyB3b3JrcyBjb3Jy
ZWN0bHkgd2l0aCBKU09OLnN0cmluZ2lmeS4KK3ZhciBwcm94eSA9IG5ldyBQcm94eShbMCwgMSwg
MiwgM10sIHsKKyAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpCisgICAgeworICAgICAg
ICBpZiAobmFtZSA9PT0gJzInKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCduZycpOwor
ICAgICAgICByZXR1cm4gdGFyZ2V0W25hbWVdOworICAgIH0KK30pOworCitzaG91bGRUaHJvdygo
KSA9PiB7CisgICAgSlNPTi5zdHJpbmdpZnkocHJveHkpOworfSwgYEVycm9yOiBuZ2ApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1hbmQtdHlw
ZWQtYXJyYXkuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWFu
ZC10eXBlZC1hcnJheS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDVjMGQ2N2NjZDk1ZGZmYjE1OTMyM2NiYTgw
NGM3MjgzMzA1MjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9wcm94eS1hbmQtdHlwZWQtYXJyYXkuanMKQEAgLTAsMCArMSwxNyBAQAordmFy
IGFycmF5ID0gWzAsIDEsIDIsIDNdOwordmFyIHByb3h5ID0gbmV3IFByb3h5KGFycmF5LCB7Cisg
ICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZlcikKKyAgICB7CisgICAgICAg
IHRocm93IG5ldyBFcnJvcihTdHJpbmcobmFtZSkpOworICAgIH0KK30pOwordmFyIHRocm93biA9
IG51bGw7Cit0cnkgeworICAgIHZhciB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkocHJveHkp
OworfSBjYXRjaCAoZXJyb3IpIHsKKyAgICB0aHJvd24gPSBlcnJvcjsKK30KK2lmICh0aHJvd24g
PT09IG51bGwpCisgICAgdGhyb3cgbmV3IEVycm9yKGBub3QgdGhyb3duYCk7CitpZiAoU3RyaW5n
KHRocm93bikgIT09IGBFcnJvcjogU3ltYm9sKFN5bWJvbC5pdGVyYXRvcilgKQorICAgIHRocm93
IG5ldyBFcnJvcihgYmFkIGVycm9yOiAke1N0cmluZyh0aHJvd24pfWApOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1qc29uLXBhdGguanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWpzb24tcGF0aC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMWRiOTE1MjQ5MWY0MzUxNTliMzFjNWQ1NjBmZGVkZWY3MTEwYzE3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1qc29u
LXBhdGguanMKQEAgLTAsMCArMSwyNSBAQAordmFyIHRhcmdldCA9IHsgX19wcm90b19fOiBudWxs
IH07Cit2YXIgaGFuZGxlciA9IHsKKyAgICBnZXQ6IGZ1bmN0aW9uICgpCisgICAgeworICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoYG5nYCk7CisgICAgfQorfTsKKwordmFyIHRocm93biA9IG51bGw7
Cit2YXIgaGVsbG8gPSA0MjsKKy8vIEFzIGEgcmVzdWx0LCBnbG9iYWwgb2JqZWN0IGF1dG9tYXRp
Y2FsbHkgaW5oZXJpdCB0aGlzIHByb3h5LgorT2JqZWN0LnByb3RvdHlwZS5fX3Byb3RvX18gPSB7
CisgICAgX19wcm90b19fOiBuZXcgUHJveHkodGFyZ2V0LCBoYW5kbGVyKQorfTsKKwordHJ5IHsK
KyAgICBsb2FkU3RyaW5nKGBoZWxsbyA9IHsiaGVsbG8iOiJ3b3JsZCJ9O3Byb3h5Lm9rID0ge31g
KTsKK30gY2F0Y2ggKGVycm9yKSB7CisgICAgdGhyb3duID0gZXJyb3I7Cit9CitPYmplY3QucHJv
dG90eXBlLl9fcHJvdG9fXyA9IG51bGw7CitpZiAodGhyb3duID09PSBudWxsKQorICAgIHRocm93
IG5ldyBFcnJvcihgbm90IHRocm93bmApOworaWYgKFN0cmluZyh0aHJvd24pICE9PSBgRXJyb3I6
IG5nYCkKKyAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcodGhyb3duKX1g
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHkt
d2l0aC1zdGF0ZW1lbnQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3By
b3h5LXdpdGgtc3RhdGVtZW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MjAxMzNmYjNiNGYwNjJlM2U3ZDJh
MDdjNjE2M2RjMDcyNmExMzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3Byb3h5LXdpdGgtc3RhdGVtZW50LmpzCkBAIC0wLDAgKzEsMjYgQEAK
KyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIHRhcmdldCA9IHt9OworICAgIHZhciBoYW5kbGVyID0g
eworICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcignbmcnKTsKKyAgICAgICAgfQorICAgIH07CisgICAgdmFyIGFycmF5ID0gewor
ICAgICAgICBoZWxsbzogNDIKKyAgICB9OworICAgIHZhciBwcm94eSA9IG5ldyBQcm94eSh0YXJn
ZXQsIGhhbmRsZXIpOworICAgIGFycmF5W1N5bWJvbC51bnNjb3BhYmxlc10gPSBwcm94eTsKKyAg
ICB2YXIgdGhyb3duID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB3aXRoIChhcnJheSkgewor
ICAgICAgICAgICAgaGVsbG87CisgICAgICAgIH0KKyAgICB9IGNhdGNoIChlcnJvcikgeworICAg
ICAgICB0aHJvd24gPSBlcnJvcjsKKyAgICB9CisgICAgaWYgKHRocm93biA9PT0gbnVsbCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKGBub3QgdGhyb3duYCk7CisgICAgaWYgKFN0cmluZyh0aHJv
d24pICE9PSBgRXJyb3I6IG5nYCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6
ICR7U3RyaW5nKHRocm93bil9YCk7Cit9KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKaW5kZXggZGZm
M2RmZmY3OTg4NGYwMDdjYTY5NjVmNDUwNDMyMWM0YzczZTQ1Ni4uNjJjY2QxNzhkYjNiZTIxYWFi
M2JhYmNkNzQzMjhhMWRjMWRjYmQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCkBAIC05NSwxMyAr
OTUsNyBAQCBib29sIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Z2V0QWxnb3JpdGhtSWRl
bnRpZmllcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdQogCiBzdGF0aWMgSlNWYWx1ZSBnZXRQcm9w
ZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIGNvbnN0IGNoYXIqIG5hbWUp
CiB7Ci0gICAgSWRlbnRpZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhl
eGVjLCBuYW1lKTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChvYmplY3QsIFByb3BlcnR5U2xvdDo6
SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwotCi0gICAgaWYgKG9iamVjdC0+Z2V0UHJvcGVydHlT
bG90KGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKQotICAgICAgICByZXR1cm4gc2xvdC5nZXRWYWx1
ZShleGVjLCBpZGVudGlmaWVyKTsKLQotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIHJl
dHVybiBvYmplY3QtPmdldChleGVjLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIG5hbWUp
KTsKIH0KIAogc3RhdGljIGJvb2wgZ2V0SGFzaEFsZ29yaXRobShKU0RpY3Rpb25hcnkmIGRpY3Rp
b25hcnksIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXImIHJlc3VsdCwgSGFzaFJlcXVpcmVtZW50
IGlzUmVxdWlyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmlu
ZGV4IGY5Y2EzYmYyZjAyOWRlYWFiMWFkOGQyMWI3YTY5ZjI4ZTdjNmMwNmYuLjkwMzI2ZjE3YjQ4
MGU1MzAxYzRjYjJmYjVhZWNjMjAyNDAwMTU2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5oCkBAIC0zMDUsNyArMzA1LDcgQEAgU3RyaW5nIHByb3BlcnR5TmFt
ZVRvU3RyaW5nKEpTQzo6UHJvcGVydHlOYW1lKTsKIEF0b21pY1N0cmluZyBwcm9wZXJ0eU5hbWVU
b0F0b21pY1N0cmluZyhKU0M6OlByb3BlcnR5TmFtZSk7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERP
TUNsYXNzPiBjb25zdCBKU0M6Okhhc2hUYWJsZVZhbHVlKiBnZXRTdGF0aWNWYWx1ZVNsb3RFbnRy
eVdpdGhvdXRDYWNoaW5nKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdGVt
cGxhdGU8SlNDOjpOYXRpdmVGdW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1
ZSBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOwordGVtcGxh
dGU8SlNDOjpOYXRpdmVGdW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBu
b25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIC8vIElubGluZSBmdW5jdGlvbnMgYW5k
IHRlbXBsYXRlIGRlZmluaXRpb25zLgogCkBAIC03ODQsNyArNzg0LDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgY29uc3QgSlNDOjpIYXNoVGFibGVWYWx1ZSogZ2V0U3RhdGljVmFsdWVTbG90RW50cnlX
aXRob3V0Q2FjaGkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdGVtcGxhdGU8SlNDOjpOYXRp
dmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1
ZSBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNDOjpK
U09iamVjdCopCit0ZW1wbGF0ZTxKU0M6Ok5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uLCBp
bnQgbGVuZ3RoPiBKU0M6OkVuY29kZWRKU1ZhbHVlIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdl
dHRlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29k
ZShKU0M6OkpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCksIGxlbmd0aCwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSwgbmF0aXZlRnVuY3Rp
b24pKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcAppbmRleCA3ZDAyYmMxZDg4OGQ3MzllMzM2MTFmODc1YWYxMjc5YWVkM2IyYzdiLi42
YzhmYTQzZTVhYTUwYzQxNjA3NzExNjBmODY5NjA1YzZhZTcyNzA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02NCw3ICs2NCw3
IEBAIHZvaWQgSlNET01XaW5kb3c6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogfQogCiAjaWYgRU5BQkxFKFVTRVJfTUVTU0FHRV9IQU5ETEVSUykKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1dlYktpdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUganNET01XaW5kb3dXZWJLaXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU0RPTVdpbmRvdyogY2FzdGVk
VGhpcyA9IHRvSlNET01XaW5kb3coSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
ICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNh
c3RlZFRoaXMtPndyYXBwZWQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0
aW9uYXJ5LmNwcAppbmRleCBmMjdiMGM2MDE0NGI0YzBkN2I2NTc0NzNjNjYyZDMzMjRhZWY2MTky
Li43NTA3NDIwNTMyNDBlNTg2OGFlZmE0YmQ5ZjQ2ODBkNTM1YTg3YzAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKQEAgLTczLDE5ICs3MywxNSBAQCBK
U0RpY3Rpb25hcnk6OkdldFByb3BlcnR5UmVzdWx0IEpTRGljdGlvbmFyeTo6dHJ5R2V0UHJvcGVy
dHkoY29uc3QgY2hhciogcHJvcGVydAogewogICAgIEFTU0VSVChpc1ZhbGlkKCkpOwogICAgIElk
ZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcobV9leGVjLCBwcm9w
ZXJ0eU5hbWUpOwotICAgIFByb3BlcnR5U2xvdCBzbG90KG1faW5pdGlhbGl6ZXJPYmplY3QuZ2V0
KCksIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwotCi0gICAgaWYgKCFt
X2luaXRpYWxpemVyT2JqZWN0LmdldCgpLT5nZXRQcm9wZXJ0eVNsb3QobV9leGVjLCBpZGVudGlm
aWVyLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIE5vUHJvcGVydHlGb3VuZDsKLQotICAgIGlmICht
X2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uVGhyb3duOwot
Ci0gICAgZmluYWxSZXN1bHQgPSBzbG90LmdldFZhbHVlKG1fZXhlYywgaWRlbnRpZmllcik7Cisg
ICAgYm9vbCBwcm9wZXJ0eUZvdW5kID0gbV9pbml0aWFsaXplck9iamVjdC5nZXQoKS0+Z2V0UHJv
cGVydHlTbG90KG1fZXhlYywgaWRlbnRpZmllciwgWyZdIChib29sIHByb3BlcnR5Rm91bmQsIFBy
b3BlcnR5U2xvdCYgc2xvdCkgLT4gYm9vbCB7CisgICAgICAgIGlmICghcHJvcGVydHlGb3VuZCkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZQorICAgICAgICBmaW5hbFJlc3VsdCA9IHNsb3QuZ2V0
VmFsdWUobV9leGVjLCBpZGVudGlmaWVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSk7
CiAgICAgaWYgKG1fZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b25UaHJvd247Ci0KLSAgICByZXR1cm4gUHJvcGVydHlGb3VuZDsKKyAgICByZXR1cm4gcHJvcGVy
dHlGb3VuZCA/IFByb3BlcnR5Rm91bmQgOiBOb1Byb3BlcnR5Rm91bmQ7CiB9CiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBi
b29sJiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAppbmRleCAzMGVkYWY3ZWNjOTg3MmQ0ZWQyOWVjY2Iz
YmNkMjcwZGExMDY3OTYwLi4yODY1MzcyZTlhZTcxZjRhNWNhNTA0ZWUwODQ5NTVhYjVlYjE0ZGFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxl
bWVudEZ1bmN0aW9ucy5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgSlNPYmplY3QqIHBsdWdpblNjcmlw
dE9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTSFRNTEVsZW1lbnQqIGpzSFRNTEVsZW1lbnQpCiAg
ICAgcmV0dXJuIGluc3RhbmNlLT5jcmVhdGVSdW50aW1lT2JqZWN0KGV4ZWMpOwogfQogICAgIAot
RW5jb2RlZEpTVmFsdWUgcGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBK
U09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUpCiB7CiAKICAgICBKU0hUTUxFbGVtZW50KiB0aGlzT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU0hUTUxFbGVtZW50Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
aAppbmRleCBjNjRlZGJmMWUyMWE1MjAyZDM3NWYxNDc1YzM1NmFjNzJjMjg2OGFjLi4xODUxMmJk
NDRkNmIzZjdlZjdiZDgwOWM3ZjAzMGZjOGRmYjkwNjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaApAQCAtMzgsNyAr
MzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgSlNDOjpCaW5kaW5nczo6SW5zdGFuY2Uq
IHBsdWdpbkluc3RhbmNlKEhUTUxFbGVtZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNDOjpK
U09iamVjdCogcGx1Z2luU2NyaXB0T2JqZWN0KEpTQzo6RXhlY1N0YXRlKiwgSlNIVE1MRWxlbWVu
dCopOwogCi0gICAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0
ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSwgSlNDOjpKU09iamVjdCopOworICAgIEpTQzo6RW5jb2RlZEpTVmFsdWUgcGx1Z2luRWxlbWVu
dFByb3BlcnR5R2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwogICAgIGJvb2wgcGx1Z2luRWxlbWVudEN1c3RvbUdldE93blByb3Bl
cnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYsIEpTSFRNTEVsZW1lbnQqKTsKICAgICBib29sIHBsdWdpbkVsZW1lbnRDdXN0b21QdXQo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0hUTUxF
bGVtZW50KiwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmLCBib29sJiBwdXRSZXN1bHQpOwogICAgIEpT
Qzo6Q2FsbFR5cGUgcGx1Z2luRWxlbWVudEdldENhbGxEYXRhKEpTSFRNTEVsZW1lbnQqLCBKU0M6
OkNhbGxEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IGYzZGM5NTI0MWE3ODkyODU0M2I4ZjYwOTYzNzMzN2Y3NTBj
ODJhOTYuLjUyYTdiYjU4ZGZlNjRjZGQzNmNkMzc3NTMwZmQ3MDBiNDFmZWYwYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBA
IC0xNTE3LDcgKzE1MTcsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgIG15ICRj
b25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3Ry
aW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7
CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJm
YWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVl
ICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTtcbiIpOwogICAgICAgICAgICAgaWYgKCFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUp
KSB7CiAgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUo
JGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgImJvb2wgJHtzZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4iKTsKQEAgLTIwNzksNyArMjA3
OSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAkY29uZGl0
aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygk
YXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIj
aWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAg
ICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRj
bGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJK
U0M6OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0o
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
XG4iKTsKICAgICAgICAgICAgIGlmICghSXNSZWFkb25seSgkYXR0cmlidXRlKSkgewogICAgICAg
ICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2Us
ICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiYm9vbCAke3NldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwpAQCAtMjA4OSw3ICsyMDg5LDcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgCiAgICAgICAgIGlmIChOZWVkc0NvbnN0cnVj
dG9yUHJvcGVydHkoJGludGVyZmFjZSkpIHsKICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAianMi
IC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7
XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1
ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7XG4iKTsKICAgICAgICAgfQogCiAgICAgICAgIG15ICRjb25zdHJ1Y3RvckZ1
bmN0aW9uTmFtZSA9ICJzZXRKUyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CkBA
IC0yNTQ5LDcgKzI1NDksNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAg
ICAgbXkgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVy
YXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7YXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmd9XG4i
KSBpZiAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmc7CiAKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgJHtnZXRGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCop
XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgJHtn
ZXRGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0o
c3RhdGUpO1xuIik7CkBAIC0yNzUyLDcgKzI3NTIsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICBpZiAoTmVlZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2UpKSB7
CiAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JGdW5jdGlvbk5hbWUgPSAianMiIC4gJGludGVy
ZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwogCi0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIkVuY29kZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCop
XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgJHtj
b25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNz
TmFtZX1Qcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05hbWV9UHJv
dG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpXG4iKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCA3NTYxMWU0MjkyZDg2ZGEy
MTVlNWRkZjBkZGRlZTRlMzE3MmM2NDRlLi5jNWIzYzRmN2U3YTIxNzkyNzEyMWIzYzdlN2MwZjFh
NDk2NzFiNjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC02
MCw3ICs2MCw3IEBAIHZvaWQgUnVudGltZUFycmF5OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKICAg
ICBzdGF0aWNfY2FzdDxSdW50aW1lQXJyYXkqPihjZWxsKS0+UnVudGltZUFycmF5Ojp+UnVudGlt
ZUFycmF5KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUs
IEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxSdW50aW1lQXJy
YXkqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCF0aGlzT2JqZWN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKaW5kZXggZGE1MTYwNWJkNTYyNGQ3NDBm
NWQwMTAyZjIzNGZlZTUyMWNkYTA0YS4uMDE4YzEzMjc4ZGJhM2RkMDMxNzFlNTNlZmMwYWQ3ZGYw
ZTEwN2U5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCkBAIC04Myw3ICs4
Myw3IEBAIGNsYXNzIFJ1bnRpbWVBcnJheSA6IHB1YmxpYyBKU0FycmF5IHsKIAogcHJpdmF0ZToK
ICAgICBSdW50aW1lQXJyYXkoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7Ci0gICAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lLCBKU09iamVjdCopOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhH
ZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAKICAgICBC
aW5kaW5nc0FycmF5KiBtX2FycmF5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuY3BwCmluZGV4IGEzN2M4OGQwOWM3ODJlZjExYzU4MDY1YTFhMjNkM2M2ZTRlYWU4NmMu
LmFlMmIyYjliYzkzZTkyNzNjZmFiMmQxZjdkN2VkNDBlYTEzYjAyYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lkIFJ1bnRp
bWVNZXRob2Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgY29uc3QgU3RyaW5nJiBpZGVudCkKICAg
ICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVN
ZXRob2Q6Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBSdW50aW1lTWV0
aG9kOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBSdW50aW1lTWV0aG9kKiB0aGlzT2JqZWN0ID0ganNE
eW5hbWljQ2FzdDxSdW50aW1lTWV0aG9kKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmICghdGhpc09iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX21ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgK
aW5kZXggMjM0MjIzZTNlZmIzMGY2NGY3MTI0ZjdiNzMyOTY1ZjlmYWFmNmIyZC4uZDg2ZDU5NDc1
ZTBhOTc1MTdjMDEzNmJhYjEwNmYyYTA3YzE5MjRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmgKQEAgLTY2LDcgKzY2LDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgUnVu
dGltZU1ldGhvZCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5n
dGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogCiAgICAgQmluZGluZ3M6Ok1ldGhvZCog
bV9tZXRob2Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5k
ZXggNDZhYTQ5Y2JmZjFmY2RjYTQyM2FhZjUyYTIyZjE2MGE2ZWI5N2E2Yi4uYTU3M2UwNWQ3NTli
MDc1NzBkMjYyMWQ4ZTYyNjAzNjQxY2JiNGViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9vYmplY3QuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgUnVudGltZU9iamVjdDo6aW52
YWxpZGF0ZSgpCiAgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IFJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU09iamVj
dCopCitFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSkKIHsKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRp
bWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVmUHRyPEluc3Rh
bmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7CkBAIC04MCw3ICs4MCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmllbGRHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUpCiB7ICAgIAogICAgIFJ1bnRpbWVPYmplY3QqIHRoaXNPYmogPSBqc0Nh
c3Q8UnVudGltZU9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBSZWZQ
dHI8SW5zdGFuY2U+IGluc3RhbmNlID0gdGhpc09iai0+bV9pbnN0YW5jZTsKQEAgLTk5LDcgKzk5
LDcgQEAgRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6Om1ldGhvZEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6
bWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIFJ1bnRpbWVPYmplY3QqIHRoaXNPYmog
PSBqc0Nhc3Q8UnVudGltZU9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlID0gdGhpc09iai0+bV9pbnN0YW5jZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXggY2NhNzQ2ZWJlZTUyNmFlMTAzOTNm
YzU1NzQyYWM0NGFjZWQzNDYzNC4uODFkNGViZDNiNGRiYjcwOTkxMTVkYTEwMjgyYjI5ZmJmZmIx
ODZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKQEAgLTc4LDkgKzc4
LDkgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgUnVudGltZU9iamVjdCA6IHB1YmxpYyBKU0Rlc3Ry
dWN0aWJsZU9iamVjdCB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogCiBwcml2YXRl
OgotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotICAgIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBmaWVsZEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBtZXRo
b2RHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIGZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAKICAgICBSZWZQdHI8SW5zdGFuY2U+
IG1faW5zdGFuY2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IGI1YTQ2MDQxMDBmMzQxYWI2
NzYzZWU1MDE4MDBkYjllYmZlOTYxMDcuLmQ1NjFhZTE0OGMyMmY1OTdkN2YxYWU4NGNiN2QwZGY5
MWMwY2EwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTQzNSw3ICs0MzUsNyBAQCB2b2lkIEpT
TlBPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eQogICAgIG5wbk1lbUZyZWUoaWRlbnRpZmllcnMpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU05QT2JqZWN0Ojpwcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqKQorRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6cHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUpCiB7CiAgICAgSlNOUE9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxKU05QT2JqZWN0Kj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iaiwgaW5mbygpKTsKQEAgLTQ3NSw3ICs0NzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU05Q
T2JqZWN0Ojpwcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJvcGVydHlWYWx1ZSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTTlBPYmplY3Q6Om1ldGhvZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqKQorRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6bWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KQogewogICAgIEpTTlBPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8SlNOUE9iamVjdCo+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXNPYmosIGluZm8oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAppbmRleCAzODU3ODJjOGU2OGJkYzVhMTNmNzg1
NDI5MzE1ZjY5OTJmNGU0MzIwLi44YmFmZWIwNjBhMjEwNjZkOGVhYTYwODc0YzAzYWM5OWYwY2Y0
YmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmgKQEAgLTk0LDggKzk0LDggQEAgY2xhc3MgSlNOUE9iamVjdCA6
IHB1YmxpYyBKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIAogICAgIHN0YXRpYyB2b2lkIGdl
dE93blByb3BlcnR5TmFtZXMoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQ
cm9wZXJ0eU5hbWVBcnJheSYsIEpTQzo6RW51bWVyYXRpb25Nb2RlKTsKIAotICAgIHN0YXRpYyBK
U0M6OkVuY29kZWRKU1ZhbHVlIHByb3BlcnR5R2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKLSAgICBz
dGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOwor
ICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIHByb3BlcnR5R2V0dGVyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRp
YyBKU0M6OkVuY29kZWRKU1ZhbHVlIG1ldGhvZEdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoSlNDOjpFeGVjU3RhdGUqKTsKIAogICAgIE5Q
UnVudGltZU9iamVjdE1hcCogbV9vYmplY3RNYXA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280550</attachid>
            <date>2016-06-05 08:59:28 -0700</date>
            <delta_ts>2016-06-05 10:02:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157080-20160606010050.patch</filename>
            <type>text/plain</type>
            <size>80972</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MmYxMGQ2NjE3YTQyNGUwMTU5OTI4NDdjYTEwNjIxZDA3ZjNhNTc5Li5hZDUxNzk2ZjVjNzZiNjUx
OTlkZDI1MTE3ODBmOWU4MzVkM2RhYWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjUgQEAKKzIwMTYtMDYtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgQ2hhbmdlIFByb3h5T2JqZWN0LltbR2V0XV0gbm90IHRvIHVzZSBj
dXN0b20gYWNjZXNzb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NzA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggZm9jdXNlcyBvbiBpbnRyb2R1Y2luZyB0aGUgc2Vjb25kIHBhcnQg
b2YgdGhlIGZvbGxvd2luZ3MuCisgICAgICAgIEJ1dCB0byBkbyBzbywgZmlyc3QgYW5kIHRoaXJk
IHBhcnRzIGFyZSBuZWNlc3NhcnkuCisKKyAgICAgICAgMS4gSW5zZXJ0IG1pc3NpbmcgZXhjZXB0
aW9uIGNoZWNrcyBmb3IgZ2V0UHJvcGVydHlTbG90LgorCisgICAgICAgICAgICBXaGlsZSBnZXRQ
cm9wZXJ0eVNsb3QgY2FuIHBlcmZvcm0gdXNlci1vYnNlcnZhYmxlIGJlaGF2aW9yIGlmIHRoZSBz
bG90IGlzIG5vdCBWTUlucXVpcnksCisgICAgICAgICAgICBzZXZlcmFsIHBsYWNlcyBtaXNzIGV4
ZXB0aW9uIGNoZWNrcy4gRm9yIGV4YW1wbGUsIFByb3h5T2JqZWN0J3MgaGFzUHJvcGVydHkgYWxy
ZWFkeSBjYW4KKyAgICAgICAgICAgIHRocm93IGFueSBlcnJvcnMuIExvb2tpbmcgdGhyb3VnaCB0
aGUgY29kZSwgd2UgZm91bmQgc2V2ZXJhbCBtaXNzaW5nIGVycm9yIGNoZWNrcyBhZnRlcgorICAg
ICAgICAgICAgaGFzUHJvcGVydHksIGJ1dCB0aGlzIHdpbGwgYmUgZml4ZWQgaW4gdGhlIHNlcGFy
YXRlZCBwYXRjaFsxXS4KKworICAgICAgICAyLiBEbyBub3QgdXNlIGN1c3RvbSBhY2Nlc3NvciB0
byBpbXBsZW1lbnQgUHJveHlPYmplY3QncyBbW0dldF1dLgorCisgICAgICAgICAgICBUaGUgY2Fs
bGVyIGFscmVhZHkgYWxsb3dzIGdldE93blByb3BlcnR5U2xvdCB0byB0aHJvdyBhbiBleGNlcHRp
b24gaWYgdGhlIHR5cGUKKyAgICAgICAgICAgIGlzIG5vdCBWTUlucXVpcnkuIFNvIGluc3RlYWQg
b2YgdXNpbmcgY3VzdG9tIGFjY2Vzc29yLCB3ZSBzaW1wbHkgaW1wbGVtZW50IGl0CisgICAgICAg
ICAgICBkaXJlY3RseSBpbiB0aGUgUHJveHlPYmplY3QncyBtZXRob2QuCisKKyAgICAgICAgMy4g
U3RyaXAgc2xvdEJhc2UgZnJvbSBjdXN0b20gYWNjZXNzb3IuCisKKyAgICAgICAgICAgIFRoZSBj
dXN0b20gYWNjZXNzb3Igc2hvdWxkIG5vdCBiZSBib3VuZCB0byB0aGUgc3BlY2lmaWMgc2xvdCBi
YXNlWzJdLCBzaW5jZSBpdAorICAgICAgICAgICAgaXMganVzdCBhbiBhY2Nlc3Nvci4gVGhlcmUg
aXMgYW4gYWx0ZXJuYXRpdmUgZGVzaWduOiBtYWtlaW5nIHRoaXMgY3VzdG9tIGFjY2Vzc29yCisg
ICAgICAgICAgICB0byBjdXN0b20gdmFsdWUgYWNjZXNzb3IgYW5kIGFjY2VwdCBib3RoIHRoZSBz
bG90IGJhc2UgYW5kIHRoZSByZWNlaXZlciBpbnN0ZWFkCisgICAgICAgICAgICBvZiBhbGxvd2lu
ZyB0aHJvd2luZyBhbiBlcnJvciBmcm9tIGdldE93blByb3BlcnR5U2xvdC4gQnV0IHdlIHRha2Ug
dGhlIGZpcnN0IGRlc2lnbgorICAgICAgICAgICAgdGhhdCBhbGxvd3MgZ2V0UHJvcGVydHlTbG90
IHRvIHRocm93IGFuIGVycm9yLCBzaW5jZSBoYXNQcm9wZXJ0eSAodGhhdCBkb2VzIG5vdCBjYWxs
CisgICAgICAgICAgICBnZXRWYWx1ZSBvZiB0aGUgY3VzdG9tIGdldHRlcnMpIGNhbiBhbHJlYWR5
IHRocm93IGFueSBlcnJvcnMuCisKKyAgICAgICAgICAgIFRvIHF1ZXJ5IHRoZSBwcm9wZXJ0eSB3
aXRoIHRoZSBub24tdXNlci1vYnNlcnZhYmxlIHdheSwgd2UgYWxyZWFkeSBwcm92aWRlZCB0aGUg
d2F5IGZvciB0aGF0OgorICAgICAgICAgICAgdXNlIFZNSW5xdWlyeSBhbmQgaXNUYWludGVkQnlQ
cm94eSgpIGluc3RlYWQuCisKKyAgICAgICAgVGVzdHMganVzdCBlbnN1cmUgdGhhdCB0aGUgY3Vy
cmVudCBzZW1hbnRpY3Mgd29ya3MgY29ycmVjdGx5IGFmdGVyIHRoaXMgcGF0Y2guCisgICAgICAg
IEFuZCB0aGlzIHBhdGNoIGlzIHBlcmZvcm1hbmNlIG5ldXRyYWwuCisKKyAgICAgICAgTGF0ZXIs
IHdlIHdpbGwgYXR0ZW1wdCB0byByZW5hbWUgInRoaXNWYWx1ZSIgdG8gInJlY2VpdmVyIlszXS4K
KworICAgICAgICBbMV06IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTgzOTgKKyAgICAgICAgWzJdOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU3OTc4CisgICAgICAgIFszXTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1ODM5NworCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAg
ICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjpKU0Nh
bGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKEpT
Qzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsYmFja0dldHRlcik6CisgICAgICAgICog
Ynl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNl
OjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJl
dGVyOjpleGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAg
ICoganNjLmNwcDoKKyAgICAgICAgKFdURjo6SW1wdXJlR2V0dGVyOjpnZXRPd25Qcm9wZXJ0eVNs
b3QpOgorICAgICAgICAoV1RGOjpDdXN0b21HZXR0ZXI6OmN1c3RvbUdldHRlcik6CisgICAgICAg
IChXVEY6OlJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKEdsb2JhbE9iamVj
dDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoZnVuY3Rpb25Mb2FkU3RyaW5nKToKKyAgICAg
ICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElO
VF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
OgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9KU0Jv
dW5kU2xvdEJhc2VGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmJvdW5kU2xvdEJhc2VGdW5j
dGlvbkNhbGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0UHJv
cGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbElubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6RXhlY1N0YXRlOjp2bSk6CisgICAgICAgIFRoaXMgY2hhbmdlIGlzIHN1cGVyIGltcG9y
dGFudCBmb3IgcGVyZm9ybWFuY2UuIFdlIGFkZCBzZXZlcmFsIGBleGVjLT5oYWRFeGNlcHRpb24o
KWAgY2FsbHMgaW50byB0aGUgc3VwZXIgaG90IHBhdGgsIGxpa2UgSlNDOjpvcGVyYXRpb25HZXRC
eUlkT3B0aW1pemUuCisgICAgICAgIFdpdGhvdXQgdGhpcyBjaGFuZ2UsIHdlIGNhbGwgRXhlY1N0
YXRlOjp2bSgpIGFuZCBpdCBpcyBub3QgaW5saW5lZC4gVGhpcyBjYXVzZXMgMSAtIDIlIHBlcmZv
cm1hbmNlIHJlZ3Jlc3Npb24gaW4gT2N0YW5lIFBERkpTLgorCisgICAgICAgICogcnVudGltZS9K
U0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVy
KToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKToKKyAgICAgICAgKiBy
dW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEdlbmVy
aWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1
bGVOYW1lc3BhY2VPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpjYWxsYmFja0dldHRlcik6Cisg
ICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5naWZp
ZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KToKKyAgICAgICAgSGVyZSdzIFVOTElLRUxZ
IGlzIGltcG9ydGFudCBmb3IgS3Jha2VuJ3MganNvbi1zdHJpbmdpZnktdGluZGVyYm94LiBXaXRo
b3V0IGl0LCB3ZSBjYW4gb2JzZXJ2ZSAwLjUlIHJlZ3Jlc3Npb24uCisKKyAgICAgICAgKEpTQzo6
V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcpOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90LmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVy
dHlTbG90OjpjdXN0b21HZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6
CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6dGhpc1ZhbHVlKToKKyAgICAgICAgKiBydW50
aW1lL1Byb3h5T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6cGVyZm9ybVByb3h5R2V0KToKKyAg
ICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OnBlcmZvcm1HZXQpOgorICAgICAgICAoSlNDOjpQcm94
eU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90Q29tbW9uKToKKyAgICAgICAgKiBydW50aW1lL1By
b3h5T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKToKKyAgICAgICAgKEpTQzo6cmVn
RXhwQ29uc3RydWN0b3JJbnB1dCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTXVs
dGlsaW5lKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gpOgorICAg
ICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbik6CisgICAgICAgIChKU0M6OnJl
Z0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1
Y3RvclJpZ2h0Q29udGV4dCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1mcm9tLXNjb3Bl
LWR5bmFtaWMtb250by1wcm94eS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAg
ICAgIChzaG91bGRUaHJvdy5oYW5kbGVyLmhhcyk6CisgICAgICAgIChoYW5kbGVyLmhhcyk6Cisg
ICAgICAgICh0cnkuaGFuZGxlci5oYXMpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9vcGVyYXRp
b24taW4tdGhyb3ctZXJyb3IuanM6IEFkZGVkLgorICAgICAgICAodGVzdENhc2UuaGFuZGxlci5o
YXMpOgorICAgICAgICAodGVzdENhc2UpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wcm94eS1h
bmQtanNvbi1zdHJpbmdpZnkuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9wcm94eS1hbmQtdHlwZWQtYXJyYXkuanM6IEFkZGVkLgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9wcm94eS1qc29uLXBhdGguanM6IEFkZGVkLgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9wcm94eS13aXRoLXN0YXRlbWVudC5qczogQWRkZWQuCisKIDIwMTYtMDYt
MDMgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRWFn
ZXIgRlRMIGZhaWx1cmUgZm9yIHN0cmljdCBjb21wYXJpc29uIG9mIE5hTiB3aXRoIG51bWJlciBj
aGVjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGU1MTE5YmMzZTEzM2E1MmMxZjg0ZTcyZjdlOWQxNGM5YzhkMzUy
NGEuLjM4OTc4ZDBhYzBhZGE1MzUxYWVmZDA2NTczYWUxZTc3M2EzZmM3MTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNiBAQAorMjAxNi0wNi0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KKworICAgICAgICBDaGFuZ2UgUHJveHlPYmplY3QuW1tHZXRdXSBub3QgdG8g
dXNlIGN1c3RvbSBhY2Nlc3NvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU3MDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0UHJvcGVydHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6bm9uQ2FjaGluZ1N0YXRpY0Z1bmN0
aW9uR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdpbmRvd1dlYktpdCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlvbmFyeTo6
dHJ5R2V0UHJvcGVydHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1
bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0
ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAo
R2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAg
ICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJy
YXk6Omxlbmd0aEdldHRlcik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAg
ICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1l
TWV0aG9kOjpsZW5ndGhHZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5o
OgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJp
bmRpbmdzOjpSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcik6CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRlcik6CisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIpOgorICAgICAgICAqIGJyaWRn
ZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDE2LTA2LTA0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb2Rlcm4gSURCOiBDcmFzaCBzZWVuIGluIElEQkNvbm5l
Y3Rpb25Qcm94eTo6cHV0T3JBZGQgb24gR3VhcmRNYWxsb2MgYm90CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWZm
OGE5ZTA4MGE4NjIxOTVhZGE4YjNkYTM1YjMyNDczOTkzYWJjOC4uMGQ4OWUxZWE5MmZjOTI3MzY4
Y2FkNTZkMTNmYmMxMjIzZGU5OGY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2
LTA2LTA1ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAg
IENoYW5nZSBQcm94eU9iamVjdC5bW0dldF1dIG5vdCB0byB1c2UgY3VzdG9tIGFjY2Vzc29yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcwODAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNO
UE9iamVjdDo6cHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0Ojpt
ZXRob2RHZXR0ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0Lmg6CisKIDIwMTYtMDYtMDMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDE2NjMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDVlMDMzZjhl
M2MyZWRmYzUzMTgzYjgxYzEzNWUwY2Y1ZWM4ZTQ1MGMuLmU5NTYzZjU0Y2VhOGIyNjNiMTQzMzU2
NzIxZDRjZGRkNzljNWU0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5oCkBAIC0yMTEsOCArMjExLDggQEAgY2xhc3MgSlNDYWxsYmFja09iamVjdCA6
IHB1YmxpYyBQYXJlbnQgewogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdChFeGVjU3RhdGUqKTsKICAgIAogICAgIEpTVmFsdWUgZ2V0U3RhdGljVmFsdWUo
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3Rh
dGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSwgSlNPYmplY3QqKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKKyAg
ICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJhY2tPYmplY3REYXRhPiBtX2NhbGxiYWNr
T2JqZWN0RGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
YWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGIyYmNmNDUzYTZiMThiOTU3Njc2ZjdmYjA0
ZDMxNzAxMjZhNmU3ZmQuLmE1NTM3MjM0YmIzMmNhNjg2ZGQwNmIyYWZlOWEwN2E5ZDAyNTdmMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oCkBAIC01OTksNyArNTk5LDcgQEAgSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0
PFBhcmVudD46OmdldFN0YXRpY1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHAK
IH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tP
YmplY3Q8UGFyZW50Pjo6c3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KikKK0VuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6c3RhdGljRnVuY3Rp
b25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNDYWxsYmFja09iamVjdCogdGhpc09iaiA9
IGFzQ2FsbGJhY2tPYmplY3QodGhpc1ZhbHVlKTsKICAgICAKQEAgLTYyNyw3ICs2MjcsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgRQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotRW5j
b2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsYmFja0dldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJl
bnQ+OjpjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU0NhbGxiYWNrT2JqZWN0
KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdCh0aGlzVmFsdWUpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKaW5k
ZXggNDNkYWI3NjhhMGYyNjA0MTUyNDAzZjQwNDUxZWIxODI0NTNjMjZjNC4uOWIzZTdhMTVmYzA3
ZTcyNmQzZTkzZTM3Yzc1OTBmMTE1ZTY3MDY5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCkBAIC0xMDg0LDcgKzEwODQs
NyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1wbChBY2Nlc3NHZW5lcmF0aW9uU3RhdGUm
IHN0YXRlKQogICAgICAgICAgICAgLy8gdG8gbWFrZSBzb21lIHNwYWNlIGhlcmUuCiAgICAgICAg
ICAgICBqaXQubWFrZVNwYWNlT25TdGFja0ZvckNDYWxsKCk7CiAKLSAgICAgICAgICAgIC8vIGdl
dHRlcjogRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCogc2xvdEJhc2UpOworICAg
ICAgICAgICAgLy8gZ2V0dGVyOiBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogICAgICAgICAg
ICAgLy8gc2V0dGVyOiB2b2lkICgqUHV0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSk7CiAgICAgICAgICAgICAvLyBD
dXN0b20gdmFsdWVzIGFyZSBwYXNzZWQgdGhlIHNsb3RCYXNlICh0aGUgcHJvcGVydHkgaG9sZGVy
KSwgY3VzdG9tIGFjY2Vzc29ycyBhcmUgcGFzc2VkIHRoZSB0aGlzVmF1bGUgKHJlY2lldmVyKS4K
ICAgICAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBkaWZmZXJlbmNlcyBpbiBjdXN0b20g
dmFsdWVzIGFuZCBjdXN0b20gYWNjZXNzb3JzLgpAQCAtMTA5NCw4ICsxMDk0LDcgQEAgdm9pZCBB
Y2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJhdGlvblN0YXRlJiBzdGF0ZSkKICAg
ICAgICAgICAgIGlmIChtX3R5cGUgPT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1
c3RvbUFjY2Vzc29yR2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgYmFzZUZvckN1c3RvbVZhbHVlLAot
ICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1w
bCgpKSwKLSAgICAgICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUik7CisgICAgICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpKTsKICAg
ICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYmFzZUZvckN1c3RvbVZhbHVlLCB2YWx1ZVJlZ3MuZ3ByKCkpOwogI2Vsc2UKQEAg
LTExMDMsOCArMTEwMiw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dl
bmVyYXRpb25TdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgRUFCSV8zMkJJVF9EVU1NWV9BUkcg
YmFzZUZvckN1c3RvbVZhbHVlLAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAgICAgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSksCi0gICAgICAgICAgICAgICAgICAg
IGJhc2VGb3JBY2Nlc3NHUFIpOworICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCiAgICAgICAgICAgICAg
ICAgICAgIEVBQklfMzJCSVRfRFVNTVlfQVJHIGJhc2VGb3JDdXN0b21WYWx1ZSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGE1ZDBkMDQxNGRkOWFk
NzkxMDIwYjNkMDU2ZjMyYzljNzM3OWIzMmIuLmVhOTY3Yjg2NjJmZjM2YzU5NzExZTM1N2FlYjk1
NDk5MGMzZGI3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcApAQCAtMTYyMiwyNyArMTYyMiwyNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkdldER5bmFtaWNWYXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogcwogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigm
dm0sIGV4ZWMpOwogCi0gICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBJZGVudGlmaWVyOjpm
cm9tVWlkKGV4ZWMsIGltcGwpOwotICAgIEdldFB1dEluZm8gZ2V0UHV0SW5mbyhnZXRQdXRJbmZv
Qml0cyk7Ci0KLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChzY29wZSwgUHJvcGVydHlTbG90OjpJbnRl
cm5hbE1ldGhvZFR5cGU6OkdldCk7Ci0gICAgaWYgKCFzY29wZS0+Z2V0UHJvcGVydHlTbG90KGV4
ZWMsIGlkZW50LCBzbG90KSkgewotICAgICAgICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgp
ID09IFRocm93SWZOb3RGb3VuZCkKLSAgICAgICAgICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMs
IGNyZWF0ZVVuZGVmaW5lZFZhcmlhYmxlRXJyb3IoZXhlYywgaWRlbnQpKTsKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9CisgICAgSWRlbnRpZmll
ciBpZGVudCA9IElkZW50aWZpZXI6OmZyb21VaWQoZXhlYywgaW1wbCk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShzY29wZS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBbJl0gKGJv
b2wgZm91bmQsIFByb3BlcnR5U2xvdCYgc2xvdCkgLT4gSlNWYWx1ZSB7CisgICAgICAgIGlmICgh
Zm91bmQpIHsKKyAgICAgICAgICAgIEdldFB1dEluZm8gZ2V0UHV0SW5mbyhnZXRQdXRJbmZvQml0
cyk7CisgICAgICAgICAgICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgpID09IFRocm93SWZO
b3RGb3VuZCkKKyAgICAgICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVV
bmRlZmluZWRWYXJpYWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7CisgICAgICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKKyAgICAgICAgfQogCi0gICAgaWYgKHNjb3BlLT5pc0dsb2JhbExleGlj
YWxFbnZpcm9ubWVudCgpKSB7Ci0gICAgICAgIC8vIFdoZW4gd2UgY2FuJ3Qgc3RhdGljYWxseSBw
cm92ZSB3ZSBuZWVkIGEgVERaIGNoZWNrLCB3ZSBtdXN0IHBlcmZvcm0gdGhlIGNoZWNrIG9uIHRo
ZSBzbG93IHBhdGguCi0gICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShleGVj
LCBpZGVudCk7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0ganNURFpWYWx1ZSgpKSB7Ci0gICAgICAg
ICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVREWkVycm9yKGV4ZWMp
KTsKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cisg
ICAgICAgIGlmIChzY29wZS0+aXNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQoKSkgeworICAgICAg
ICAgICAgLy8gV2hlbiB3ZSBjYW4ndCBzdGF0aWNhbGx5IHByb3ZlIHdlIG5lZWQgYSBURFogY2hl
Y2ssIHdlIG11c3QgcGVyZm9ybSB0aGUgY2hlY2sgb24gdGhlIHNsb3cgcGF0aC4KKyAgICAgICAg
ICAgIEpTVmFsdWUgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudCk7CisgICAgICAg
ICAgICBpZiAocmVzdWx0ID09IGpzVERaVmFsdWUoKSkgeworICAgICAgICAgICAgICAgIGV4ZWMt
PnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVERaRXJyb3IoZXhlYykpOworICAgICAg
ICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7Ci0gICAgfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzbG90Lmdl
dFZhbHVlKGV4ZWMsIGlkZW50KSk7CisgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKGV4ZWMs
IGlkZW50KTsKKyAgICB9KSk7CiB9CiAKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRE
eW5hbWljVmFyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNjb3BlLCBFbmNvZGVkSlNWYWx1
ZSB2YWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwsIHVuc2lnbmVkIGdldFB1dEluZm9CaXRz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5j
cHAKaW5kZXggYTBhZTJkNmExZjMwYzhjMzMxYTcyZTc0Nzc1MDdmYzUwMTNhYTMxZS4uOTcxZjJl
ZjUyMTYyOTAwNmI4NDQ0OTYxY2U5NzcwNWJkOThiYmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC04NjMsNiArODYzLDgg
QEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShQcm9ncmFtRXhlY3V0YWJsZSogcHJvZ3Jh
bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEoKICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0g
MCkgewogICAgICAgICAgICAgICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QoZ2xvYmFsT2Jq
ZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghZ2xvYmFsT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoY2FsbEZyYW1l
LCBKU09OUFBhdGhbaV0ubV9wYXRoRW50cnlOYW1lLCBzbG90KSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoZW50cnkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBjcmVhdGVV
bmRlZmluZWRWYXJpYWJsZUVycm9yKGNhbGxGcmFtZSwgSlNPTlBQYXRoW2ldLm1fcGF0aEVudHJ5
TmFtZSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkSlNPTlA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCAzOTMwNGJm
MWY1YmM0NjAxZGNkZmM2ZjQyOTc0N2RkZjFjMDU0ODdmLi4xNzQ1ZDZlMjM3Y2MwMDkyZDM2NmQz
ZjE3YjBlODVjNjQxNmZlYmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKQEAgLTI0MSwxMyArMjQxLDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJl
CiAKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShiYXNlKTsKICAgICBM
T0dfSUMoKElDRXZlbnQ6Ok9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgYmFzZVZhbHVlLmNsYXNz
SW5mb09yTnVsbCgpLCBpZGVudCkpOwotICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSwg
UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7Ci0gICAgCi0gICAgYm9vbCBo
YXNSZXN1bHQgPSBiYXNlVmFsdWUuZ2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KTsK
LSAgICBpZiAoc3R1YkluZm8tPmNvbnNpZGVyQ2FjaGluZyhiYXNlVmFsdWUuc3RydWN0dXJlT3JO
dWxsKCkpKQotICAgICAgICByZXBhdGNoR2V0QnlJRChleGVjLCBiYXNlVmFsdWUsIGlkZW50LCBz
bG90LCAqc3R1YkluZm8sIEdldEJ5SURLaW5kOjpOb3JtYWwpOwotICAgIAotICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoaGFzUmVzdWx0PyBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50KSA6IGpz
VW5kZWZpbmVkKCkpOworCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0
UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBbJl0gKGJvb2wgZm91bmQsIFByb3BlcnR5U2xvdCYg
c2xvdCkgLT4gSlNWYWx1ZSB7CisgICAgICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJDYWNoaW5n
KGJhc2VWYWx1ZS5zdHJ1Y3R1cmVPck51bGwoKSkpCisgICAgICAgICAgICByZXBhdGNoR2V0QnlJ
RChleGVjLCBiYXNlVmFsdWUsIGlkZW50LCBzbG90LCAqc3R1YkluZm8sIEdldEJ5SURLaW5kOjpO
b3JtYWwpOworICAgICAgICByZXR1cm4gZm91bmQgPyBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50
KSA6IGpzVW5kZWZpbmVkKCk7CisgICAgfSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkluT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmVTdHVi
SW5mbyogc3R1YkluZm8sIEpTQ2VsbCogYmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGtleSkKQEAg
LTI2OCw2ICsyNjcsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklu
T3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmVTdHViSQogICAgIExPR19JQygoSUNF
dmVudDo6T3BlcmF0aW9uSW5PcHRpbWl6ZSwgYmFzZS0+Y2xhc3NJbmZvKCksIGlkZW50KSk7CiAg
ICAgUHJvcGVydHlTbG90IHNsb3QoYmFzZSwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5
cGU6Okhhc1Byb3BlcnR5KTsKICAgICBib29sIHJlc3VsdCA9IGFzT2JqZWN0KGJhc2UpLT5nZXRQ
cm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQsIHNsb3QpOworICAgIGlmICh2bS0+ZXhjZXB0aW9uKCkp
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgCiAg
ICAgUkVMRUFTRV9BU1NFUlQoYWNjZXNzVHlwZSA9PSBzdHViSW5mby0+YWNjZXNzVHlwZSk7CiAg
ICAgCkBAIC0yMDE0LDI4ICsyMDE1LDI5IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0RnJvbVNjb3BlKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rpb24qCiAgICAg
Ly8gTW9kdWxlVmFyIGlzIGFsd2F5cyBjb252ZXJ0ZWQgdG8gQ2xvc3VyZVZhciBmb3IgZ2V0X2Zy
b21fc2NvcGUuCiAgICAgQVNTRVJUKGdldFB1dEluZm8ucmVzb2x2ZVR5cGUoKSAhPSBNb2R1bGVW
YXIpOwogCi0gICAgUHJvcGVydHlTbG90IHNsb3Qoc2NvcGUsIFByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpHZXQpOwotICAgIGlmICghc2NvcGUtPmdldFByb3BlcnR5U2xvdChleGVj
LCBpZGVudCwgc2xvdCkpIHsKLSAgICAgICAgaWYgKGdldFB1dEluZm8ucmVzb2x2ZU1vZGUoKSA9
PSBUaHJvd0lmTm90Rm91bmQpCi0gICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBj
cmVhdGVVbmRlZmluZWRWYXJpYWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7Ci0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQorICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoc2NvcGUtPmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudCwgWyZdIChib29s
IGZvdW5kLCBQcm9wZXJ0eVNsb3QmIHNsb3QpIC0+IEpTVmFsdWUgeworICAgICAgICBpZiAoIWZv
dW5kKSB7CisgICAgICAgICAgICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgpID09IFRocm93
SWZOb3RGb3VuZCkKKyAgICAgICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVh
dGVVbmRlZmluZWRWYXJpYWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7CisgICAgICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgfQogCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBKU1Zh
bHVlKCk7Ci0gICAgaWYgKHNjb3BlLT5pc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpKSB7Ci0g
ICAgICAgIC8vIFdoZW4gd2UgY2FuJ3Qgc3RhdGljYWxseSBwcm92ZSB3ZSBuZWVkIGEgVERaIGNo
ZWNrLCB3ZSBtdXN0IHBlcmZvcm0gdGhlIGNoZWNrIG9uIHRoZSBzbG93IHBhdGguCi0gICAgICAg
IHJlc3VsdCA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnQpOwotICAgICAgICBpZiAocmVzdWx0
ID09IGpzVERaVmFsdWUoKSkgewotICAgICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlv
bihleGVjLCBjcmVhdGVURFpFcnJvcihleGVjKSk7Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFs
dWUoKTsKKyAgICAgICAgaWYgKHNjb3BlLT5pc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpKSB7
CisgICAgICAgICAgICAvLyBXaGVuIHdlIGNhbid0IHN0YXRpY2FsbHkgcHJvdmUgd2UgbmVlZCBh
IFREWiBjaGVjaywgd2UgbXVzdCBwZXJmb3JtIHRoZSBjaGVjayBvbiB0aGUgc2xvdyBwYXRoLgor
ICAgICAgICAgICAgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudCk7CisgICAgICAg
ICAgICBpZiAocmVzdWx0ID09IGpzVERaVmFsdWUoKSkgeworICAgICAgICAgICAgICAgIHZtLnRo
cm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVREWkVycm9yKGV4ZWMpKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0K
IAotICAgIENvbW1vblNsb3dQYXRoczo6dHJ5Q2FjaGVHZXRGcm9tU2NvcGVHbG9iYWwoZXhlYywg
dm0sIHBjLCBzY29wZSwgc2xvdCwgaWRlbnQpOworICAgICAgICBDb21tb25TbG93UGF0aHM6OnRy
eUNhY2hlR2V0RnJvbVNjb3BlR2xvYmFsKGV4ZWMsIHZtLCBwYywgc2NvcGUsIHNsb3QsIGlkZW50
KTsKIAotICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXN1bHQgPSBzbG90LmdldFZhbHVlKGV4
ZWMsIGlkZW50KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgICAg
IGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRl
bnQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0pKTsKIH0KIAogdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dFRvU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiog
Ynl0ZWNvZGVQQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggYjAyMWQxMDFmMzNjYjc2MmFhNDJm
YWZmMWJkZDVmM2FlOTU1OTZiYy4uODYyMTk0NzdhZWZhNTFjYzVmYWU0ZjdiZDMyZmMyMjgwZDc2
ZmI3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTMwMiw4ICszMDIsMTIgQEAgY2xhc3MgSW1w
dXJlR2V0dGVyIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHsKICAgICAgICAgSW1w
dXJlR2V0dGVyKiB0aGlzT2JqZWN0ID0ganNDYXN0PEltcHVyZUdldHRlcio+KG9iamVjdCk7CiAg
ICAgICAgIAotICAgICAgICBpZiAodGhpc09iamVjdC0+bV9kZWxlZ2F0ZSAmJiB0aGlzT2JqZWN0
LT5tX2RlbGVnYXRlLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgbmFtZSwgc2xvdCkpCi0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKHRoaXNPYmplY3QtPm1fZGVsZWdhdGUpIHsK
KyAgICAgICAgICAgIGlmICh0aGlzT2JqZWN0LT5tX2RlbGVnYXRlLT5nZXRQcm9wZXJ0eVNsb3Qo
ZXhlYywgbmFtZSwgc2xvdCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xv
dChvYmplY3QsIGV4ZWMsIG5hbWUsIHNsb3QpOwogICAgIH0KQEAgLTM1OCw3ICszNjIsNyBAQCBj
bGFzcyBDdXN0b21HZXR0ZXIgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgfQogCiBw
cml2YXRlOgotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3Qq
KQorICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAgICAg
IEN1c3RvbUdldHRlciogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8Q3VzdG9tR2V0dGVyKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgICAgICBpZiAoIXRoaXNPYmplY3QpCkBA
IC00NjMsNyArNDY3LDcgQEAgY2xhc3MgUnVudGltZUFycmF5IDogcHVibGljIEpTQXJyYXkgewog
ICAgIHsKICAgICB9CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpT
T2JqZWN0KikKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewog
ICAgICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJ1bnRpbWVB
cnJheSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICAgICAgaWYgKCF0aGlzT2Jq
ZWN0KQpAQCAtNTg1LDYgKzU4OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uRHVtcENhbGxGcmFtZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVmVyc2lvbihFeGVjU3RhdGUqKTsKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUnVuKEV4ZWNTdGF0ZSopOwogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkKEV4ZWNTdGF0ZSop
Oworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkU3RyaW5n
KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25SZWFkRmlsZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uQ2hlY2tTeW50YXgoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlYWRsaW5lKEV4ZWNTdGF0ZSopOwpAQCAtNzY1LDYg
Kzc3MCw3IEBAIGNsYXNzIEdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiAg
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAidmVyc2lvbiIsIGZ1bmN0aW9uVmVyc2lvbiwgMSk7CiAg
ICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicnVuIiwgZnVuY3Rpb25SdW4sIDEpOwogICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgImxvYWQiLCBmdW5jdGlvbkxvYWQsIDEpOworICAgICAgICBhZGRGdW5j
dGlvbih2bSwgImxvYWRTdHJpbmciLCBmdW5jdGlvbkxvYWRTdHJpbmcsIDEpOwogICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgInJlYWRGaWxlIiwgZnVuY3Rpb25SZWFkRmlsZSwgMSk7CiAgICAgICAg
IGFkZEZ1bmN0aW9uKHZtLCAiY2hlY2tTeW50YXgiLCBmdW5jdGlvbkNoZWNrU3ludGF4LCAxKTsK
ICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJqc2NTdGFjayIsIGZ1bmN0aW9uSlNDU3RhY2ssIDEp
OwpAQCAtMTQ0MSw2ICsxNDQ3LDIwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25Mb2FkKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkU3Ry
aW5nKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBTdHJpbmcgc291cmNlQ29kZSA9IGV4ZWMtPmFy
Z3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKTsKKworICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlv
bjsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhl
YygpLCBtYWtlU291cmNlKHNvdXJjZUNvZGUpLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRp
b24pOworICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKQorICAgICAgICBleGVjLT52bSgpLnRo
cm93RXhjZXB0aW9uKGV4ZWMsIGV2YWx1YXRpb25FeGNlcHRpb24pOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvblJlYWRGaWxlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBTdHJpbmcgZmlsZU5hbWUg
PSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCA3NzljMWYw
ZTZmNTYyMDc0NDE2YjY2MmQ3NmVjMTE5YTE0YTYyMDhjLi40MGY1MWExYWI2ZWE2ZDZmMGY4YmM0
NmU5YWVmNjdlZTA1NjcxMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAKQEAgLTE0OTIsMjYgKzE0OTIsMjcgQEAgTExJTlRfU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX2dldF9mcm9tX3Njb3BlKQogICAgIC8vIE1vZHVsZVZhciBpcyBhbHdh
eXMgY29udmVydGVkIHRvIENsb3N1cmVWYXIgZm9yIGdldF9mcm9tX3Njb3BlLgogICAgIEFTU0VS
VChnZXRQdXRJbmZvLnJlc29sdmVUeXBlKCkgIT0gTW9kdWxlVmFyKTsKIAotICAgIFByb3BlcnR5
U2xvdCBzbG90KHNjb3BlLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsK
LSAgICBpZiAoIXNjb3BlLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQsIHNsb3QpKSB7Ci0g
ICAgICAgIGlmIChnZXRQdXRJbmZvLnJlc29sdmVNb2RlKCkgPT0gVGhyb3dJZk5vdEZvdW5kKQot
ICAgICAgICAgICAgTExJTlRfUkVUVVJOKGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywg
Y3JlYXRlVW5kZWZpbmVkVmFyaWFibGVFcnJvcihleGVjLCBpZGVudCkpKTsKLSAgICAgICAgTExJ
TlRfUkVUVVJOKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KKyAgICBMTElOVF9SRVRVUk4oc2NvcGUt
PmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudCwgWyZdIChib29sIGZvdW5kLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpIC0+IEpTVmFsdWUgeworICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAg
ICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgpID09IFRocm93SWZOb3RGb3VuZCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVV
bmRlZmluZWRWYXJpYWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7CisgICAgICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKKyAgICAgICAgfQogCi0gICAgSlNWYWx1ZSByZXN1bHQgPSBKU1ZhbHVl
KCk7Ci0gICAgaWYgKHNjb3BlLT5pc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpKSB7Ci0gICAg
ICAgIC8vIFdoZW4gd2UgY2FuJ3Qgc3RhdGljYWxseSBwcm92ZSB3ZSBuZWVkIGEgVERaIGNoZWNr
LCB3ZSBtdXN0IHBlcmZvcm0gdGhlIGNoZWNrIG9uIHRoZSBzbG93IHBhdGguCi0gICAgICAgIHJl
c3VsdCA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnQpOwotICAgICAgICBpZiAocmVzdWx0ID09
IGpzVERaVmFsdWUoKSkKLSAgICAgICAgICAgIExMSU5UX1RIUk9XKGNyZWF0ZVREWkVycm9yKGV4
ZWMpKTsKLSAgICB9CisgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZSgpOworICAgICAg
ICBpZiAoc2NvcGUtPmlzR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KCkpIHsKKyAgICAgICAgICAg
IC8vIFdoZW4gd2UgY2FuJ3Qgc3RhdGljYWxseSBwcm92ZSB3ZSBuZWVkIGEgVERaIGNoZWNrLCB3
ZSBtdXN0IHBlcmZvcm0gdGhlIGNoZWNrIG9uIHRoZSBzbG93IHBhdGguCisgICAgICAgICAgICBy
ZXN1bHQgPSBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50KTsKKyAgICAgICAgICAgIGlmIChyZXN1
bHQgPT0ganNURFpWYWx1ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRo
cm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVREWkVycm9yKGV4ZWMpKTsKKyAgICAgICAgfQogCi0g
ICAgQ29tbW9uU2xvd1BhdGhzOjp0cnlDYWNoZUdldEZyb21TY29wZUdsb2JhbChleGVjLCB2bSwg
cGMsIHNjb3BlLCBzbG90LCBpZGVudCk7CisgICAgICAgIENvbW1vblNsb3dQYXRoczo6dHJ5Q2Fj
aGVHZXRGcm9tU2NvcGVHbG9iYWwoZXhlYywgdm0sIHBjLCBzY29wZSwgc2xvdCwgaWRlbnQpOwog
Ci0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIHJlc3VsdCA9IHNsb3QuZ2V0VmFsdWUoZXhlYywg
aWRlbnQpOwotICAgIExMSU5UX1JFVFVSTihyZXN1bHQpOworICAgICAgICBpZiAoIXJlc3VsdCkK
KyAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50KTsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9KSk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9wdXRfdG9fc2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uU2xvd1BhdGhzLmNwcAppbmRleCAwOWExNzA0Nzc2NGJhMGMxZDc0ODdkYzQ4ZjY4N2Ew
Nzk1Mzc3OWNiLi5kYjk2ODZlYjgzN2I1Mjg5Njc1MTZmNzk5MmRhMTllNDA0OGYyMjQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAK
QEAgLTc3MSw2ICs3NzEsOCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcmVzb2x2ZV9zY29w
ZSkKICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IGV4ZWMtPmNvZGVCbG9jaygpLT5pZGVu
dGlmaWVyKHBjWzNdLnUub3BlcmFuZCk7CiAgICAgSlNTY29wZSogc2NvcGUgPSBleGVjLT51bmNo
ZWNrZWRSKHBjWzJdLnUub3BlcmFuZCkuUmVnaXN0ZXI6OnNjb3BlKCk7CiAgICAgSlNPYmplY3Qq
IHJlc29sdmVkU2NvcGUgPSBKU1Njb3BlOjpyZXNvbHZlKGV4ZWMsIHNjb3BlLCBpZGVudCk7Cisg
ICAgLy8gUHJveHkgY2FuIHRocm93IGFuIGVycm9yIGhlcmUsIGUuZy4gUHJveHkgaW4gd2l0aCBz
dGF0ZW1lbnQncyBAdW5zY29wYWJsZXMuCisgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CiAKICAgICBS
ZXNvbHZlVHlwZSByZXNvbHZlVHlwZSA9IHN0YXRpY19jYXN0PFJlc29sdmVUeXBlPihwY1s0XS51
Lm9wZXJhbmQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHAKaW5kZXggMmQ2N2U0MzE3MWUyZGQ2Yzk0NTA4
NzZjOWYyMmQyMWQzNWVkYjQ0ZS4uMWYzMzU2MjY3ZmFmYjdkMzA1ZDk2M2FhYTkwN2ZlMmY0YmU2
NGUwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZFNs
b3RCYXNlRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Qm91bmRTbG90QmFzZUZ1bmN0aW9uLmNwcApAQCAtNTEsNyArNTEsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGJvdW5kU2xvdEJhc2VGdW5jdGlvbkNhbGwoRXhlY1N0YXRlKiBleGVj
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCiAgICAg
Y29uc3QgU3RyaW5nJiBuYW1lID0gYm91bmRTbG90QmFzZUZ1bmN0aW9uLT5uYW1lKCk7Ci0gICAg
cmV0dXJuIGdldHRlcihleGVjLCBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+dGhpc1ZhbHVlKCkpLCBQ
cm9wZXJ0eU5hbWUoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBuYW1lKSksIGJhc2VPYmpl
Y3QpOworICAgIHJldHVybiBnZXR0ZXIoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNW
YWx1ZSgpKSwgUHJvcGVydHlOYW1lKElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgbmFtZSkp
KTsKIH0KIAogSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb246OkpTQm91bmRTbG90QmFzZUZ1bmN0aW9u
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIGNvbnN0IFR5cGUgdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWUuaAppbmRleCA5MGFhZTEwMjM0M2YwOGQyNzRlYmQzYzFhMmQyODE3Zjc5YjdiYWM5Li5j
NDczYzRmMWM5NWI1ZjAwNDhkMGY0ZjA4Yjk0YmJkZGI1ZmVmZDE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC0yODcsNiArMjg3LDEwIEBAIGNsYXNz
IEpTVmFsdWUgewogICAgIEpTVmFsdWUgZ2V0KEV4ZWNTdGF0ZSosIHVpbnQ2NF90IHByb3BlcnR5
TmFtZSkgY29uc3Q7CiAKICAgICBib29sIGdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBQcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1
bmM+CisgICAgdHlwZW5hbWUgc3RkOjpyZXN1bHRfb2Y8RnVuYyhib29sLCBQcm9wZXJ0eVNsb3Qm
KT46OnR5cGUgZ2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgRnVuYykg
Y29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KKyAgICB0eXBlbmFtZSBzdGQ6OnJl
c3VsdF9vZjxGdW5jKGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBnZXRQcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmLCBGdW5jKSBjb25zdDsKIAog
ICAgIGJvb2wgcHV0KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CiAgICAgYm9vbCBwdXRJbmxpbmUoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCmluZGV4IGJlZGM2MjIyN2YwZTI3MGExYTU2MTZj
MjA4YWUwYmVkMWUwZWM5MWQuLjI2ZTY1MzIxODE5MTI3MmFjNzE4ZTU5ZWIyN2IzMjAyMWZhZTFh
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlu
bGluZXMuaApAQCAtNzY4LDYgKzc2OCwyMiBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgSlNWYWx1
ZTo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUAogICAg
ICAgICBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSkgOiBqc1VuZGVmaW5lZCgpOwog
fQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorQUxXQVlTX0lOTElORSB0eXBlbmFtZSBzdGQ6
OnJlc3VsdF9vZjxGdW5jKGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBKU1ZhbHVlOjpnZXRQ
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBG
dW5jIGZ1bmN0aW9uKSBjb25zdAoreworICAgIFByb3BlcnR5U2xvdCBzbG90KGFzVmFsdWUoKSwg
UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7CisgICAgcmV0dXJuIGdldFBy
b3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QsIGZ1bmN0aW9uKTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgRnVuYz4KK0FMV0FZU19JTkxJTkUgdHlwZW5hbWUgc3RkOjpyZXN1bHRf
b2Y8RnVuYyhib29sLCBQcm9wZXJ0eVNsb3QmKT46OnR5cGUgSlNWYWx1ZTo6Z2V0UHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90LCBGdW5jIGZ1bmN0aW9uKSBjb25zdAoreworICAgIGJvb2wgZm91bmQgPSBnZXRQ
cm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICBpZiAoVU5MSUtFTFko
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBm
dW5jdGlvbihmb3VuZCwgc2xvdCk7Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBKU1ZhbHVlOjpn
ZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhpcyBpcyBhIHByaW1p
dGl2ZSwgd2UnbGwgbmVlZCB0byBzeW50aGVzaXplIHRoZSBwcm90b3R5cGUgLQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCmluZGV4IDQyNzRjMjE2ZmI4
YTcwOWIwNjc0NGFmOWE4MzViODRjN2FlM2IzMDAuLjU4MDdlNWVkNDNjZjNhMDA3NjYzMDFmMzY0
YmIyMThhNTlmMmNiZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGxJbmxpbmVzLmgKQEAgLTExOCw3ICsxMTgsNyBAQCBpbmxpbmUgVk0qIEpTQ2VsbDo6dm0oKSBj
b25zdAogICAgIHJldHVybiBNYXJrZWRCbG9jazo6YmxvY2tGb3IodGhpcyktPnZtKCk7CiB9CiAK
LWlubGluZSBWTSYgRXhlY1N0YXRlOjp2bSgpIGNvbnN0CitBTFdBWVNfSU5MSU5FIFZNJiBFeGVj
U3RhdGU6OnZtKCkgY29uc3QKIHsKICAgICBBU1NFUlQoY2FsbGVlKCkpOwogICAgIEFTU0VSVChj
YWxsZWUoKS0+dm0oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uY3BwCmluZGV4IDI2YWE3ZjY3MGJiM2M0Y2NlZDYwMmRiMjNkMGJiMDBiMTliMDhkNjcuLmNh
Y2MxZWJmZjY1NGU0NDBiOGQ4MzQ5ODdkMjljZjAyMjkxMmE0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgc3Rh
dGljIEpTVmFsdWUgcmV0cmlldmVBcmd1bWVudHMoRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9u
KiBmdW5jdGlvbk9iaikKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRK
U1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTRnVuY3Rpb24qIHRo
aXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwpAQCAtMzE5LDcgKzMxOSw3
IEBAIHN0YXRpYyBKU1ZhbHVlIHJldHJpZXZlQ2FsbGVyRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVj
LCBKU0Z1bmN0aW9uKiBmdW5jdGlvbk9iaikKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikK
K0VuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmNhbGxlckdldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTRnVuY3Rp
b24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDMwN2RlYzEzYzU1ZGYxYWQy
MTM5YTI4MDk4MGRkZjJiMzc0MTQ3MzQuLjMwMDcwZDBkNjFkN2UyYjZhZDhiYWRjYmZkMTk3MWFj
Nzc1N2IyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgK
QEAgLTE5OCw4ICsxOTgsMTAgQEAgY2xhc3MgSlNGdW5jdGlvbiA6IHB1YmxpYyBKU0NhbGxlZSB7
CiAKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogCi0gICAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBj
YWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNP
YmplY3QqKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzR2V0dGVyKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgbmFtZUdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
IAogICAgIFdyaXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gbV9leGVjdXRhYmxlOwogICAgIFdy
aXRlQmFycmllcjxGdW5jdGlvblJhcmVEYXRhPiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1
Y3RvcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKaW5kZXggZjNjN2M2ODA4NGU4ZjNmZGYx
YjFiZjJjNmVlOGU4YjQyYzA1MThjMi4uNmViMDg5MjEzN2ZkODMxNDJiZDYwZTgxMWM0NTI4MGQ1
MDcwY2UwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5l
cy5oCkBAIC0xNTAsNyArMTUwLDkgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmlj
VHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzKEV4ZWNTdGF0ZSogZXhlYywgU3QKICAgICAgICAg
aWYgKGlzVHlwZWRWaWV3KG9iamVjdC0+Y2xhc3NJbmZvKCktPnR5cGVkQXJyYXlTdG9yYWdlVHlw
ZSkpCiAgICAgICAgICAgICBsZW5ndGggPSBqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPihvYmpl
Y3QpLT5sZW5ndGgoKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBQcm9wZXJ0eVNsb3Qg
bGVuZ3RoU2xvdChvYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQp
OworICAgICAgICAgICAgLy8gVGhpcyBnZXRQcm9wZXJ0eVNsb3Qgb3BlcmF0aW9uIHNob3VsZCBu
b3QgYmUgb2JzZXJ2ZWQgYnkgdGhlIFByb3h5LgorICAgICAgICAgICAgLy8gU28gd2UgdXNlIFZN
SW5xdWlyeS4gQW5kIHB1cmdlIHRoZSBwcm94eSBjYXNlIGJ5IGlzVGFpbnRlZEJ5UHJveHkoKSBn
dWFyZC4KKyAgICAgICAgICAgIFByb3BlcnR5U2xvdCBsZW5ndGhTbG90KG9iamVjdCwgUHJvcGVy
dHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSk7CiAgICAgICAgICAgICBvYmpl
Y3QtPmdldFByb3BlcnR5U2xvdChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGxlbmd0
aFNsb3QpOwogCiAgICAgICAgICAgICBKU1ZhbHVlIGl0ZXJhdG9yRnVuYyA9IG9iamVjdC0+Z2V0
KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sKTsKQEAgLTE2NSw3ICsxNjcs
NyBAQCBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhB
cmd1bWVudHMoRXhlY1N0YXRlKiBleGVjLCBTdAogCiAgICAgICAgICAgICBpZiAoIWl0ZXJhdG9y
RnVuYy5pc1VuZGVmaW5lZCgpCiAgICAgICAgICAgICAgICAgJiYgKGl0ZXJhdG9yRnVuYyAhPSBv
YmplY3QtPmdsb2JhbE9iamVjdCgpLT5hcnJheVByb3RvVmFsdWVzRnVuY3Rpb24oKQotICAgICAg
ICAgICAgICAgICAgICB8fCBsZW5ndGhTbG90LmlzQWNjZXNzb3IoKSB8fCBsZW5ndGhTbG90Lmlz
Q3VzdG9tKCkKKyAgICAgICAgICAgICAgICAgICAgfHwgbGVuZ3RoU2xvdC5pc0FjY2Vzc29yKCkg
fHwgbGVuZ3RoU2xvdC5pc0N1c3RvbSgpIHx8IGxlbmd0aFNsb3QuaXNUYWludGVkQnlQcm94eSgp
CiAgICAgICAgICAgICAgICAgICAgIHx8IGhhc0FueUFycmF5U3RvcmFnZShvYmplY3QtPmluZGV4
aW5nVHlwZSgpKSkpIHsKIAogICAgICAgICAgICAgICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFtZXNw
YWNlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFt
ZXNwYWNlT2JqZWN0LmNwcAppbmRleCA5ZTk5NDMyNDY5NTRmMzAyY2YwZmU4MDg3NDBkNmUxMTQ3
Njc2YTMzLi40MGRkYTczMzNmZjcyMGFkZjYwOThmZjQ3NzU3MmYxZWIxODZhZWEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZU5hbWVzcGFjZU9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3Bh
Y2VPYmplY3QuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgSlNNb2R1bGVOYW1lc3BhY2VPYmpl
Y3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAg
ICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9tb2R1bGVSZWNvcmQpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikK
K3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAg
ICBKU01vZHVsZU5hbWVzcGFjZU9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU01vZHVsZU5h
bWVzcGFjZU9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBKU01vZHVs
ZVJlY29yZCogbW9kdWxlUmVjb3JkID0gdGhpc09iamVjdC0+bW9kdWxlUmVjb3JkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IGNiYTVhMzgz
ZGUwNmIxNzZmOTI0NjYxYjkxZjQzNzZiMzRjMTMxMjEuLjFiODIwYWY1MmQ4Njc5Yzg5MDE0NDZl
OGViYmJhODIxYzJiZGQ1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuY3BwCkBAIC00ODAsMTIgKzQ4MCwxMiBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xk
ZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3RyaW5naWZpZXIsIFN0cmluZ0J1
aQogICAgICAgICAgICAgdmFsdWUgPSBhc0FycmF5KG1fb2JqZWN0LmdldCgpKS0+Z2V0SW5kZXhR
dWlja2x5KGluZGV4KTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qg
c2xvdChtX29iamVjdC5nZXQoKSwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okdl
dCk7Ci0gICAgICAgICAgICBpZiAobV9vYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXgobV9vYmplY3QuZ2V0KCksIGV4ZWMsIGluZGV4LCBzbG90KSkgeworICAg
ICAgICAgICAgaWYgKG1fb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KG1fb2JqZWN0LmdldCgpLCBleGVjLCBpbmRleCwgc2xvdCkpCiAgICAgICAgICAgICAg
ICAgdmFsdWUgPSBzbG90LmdldFZhbHVlKGV4ZWMsIGluZGV4KTsKLSAgICAgICAgICAgICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IHZhbHVlID0ganNVbmRlZmluZWQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9
CiAKICAgICAgICAgLy8gQXBwZW5kIHRoZSBzZXBhcmF0b3Igc3RyaW5nLgpAQCAtNjMxLDYgKzYz
MSw4IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVy
ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICBpblZhbHVlID0gc2xvdC5nZXRWYWx1ZShtX2V4
ZWMsIGluZGV4KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAg
ICAgICAgaW5WYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICht
X2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpz
TnVsbCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgaWYgKGluVmFsdWUuaXNPYmplY3QoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmgKaW5kZXggNjQ3YWVkNjU1MGIwOGFhMWQ5NzkzMDIwYmIyMTQ2Nzcz
YTk2NzVmOS4uMTE2NDZiNTI2ZmU1OTFjNjg3NmU4YzBlNWJkNWYzNmNhM2Y0NzNmNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNTEsNiArMTUxLDEwIEBA
IGNsYXNzIEpTT2JqZWN0IDogcHVibGljIEpTQ2VsbCB7CiAKICAgICBib29sIGdldFByb3BlcnR5
U2xvdChFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgIGJvb2wg
Z2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KKyAgICB0eXBlbmFtZSBzdGQ6
OnJlc3VsdF9vZjxGdW5jKGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBnZXRQcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBGdW5jKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jPgorICAgIHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPEZ1bmMoYm9vbCwgUHJv
cGVydHlTbG90Jik+Ojp0eXBlIGdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYsIEZ1bmMpIGNvbnN0OwogCiAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTEzNjEsNiArMTM2NSwyMiBAQCBpbmxpbmUgSlNWYWx1ZSBK
U09iamVjdDo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25z
dAogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
PgorQUxXQVlTX0lOTElORSB0eXBlbmFtZSBzdGQ6OnJlc3VsdF9vZjxGdW5jKGJvb2wsIFByb3Bl
cnR5U2xvdCYpPjo6dHlwZSBKU09iamVjdDo6Z2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgRnVuYyBmdW5jdGlvbikgY29uc3QKK3sKKyAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlw
ZTo6R2V0KTsKKyAgICByZXR1cm4gZ2V0UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCwgZnVuY3Rpb24pOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorQUxXQVlTX0lO
TElORSB0eXBlbmFtZSBzdGQ6OnJlc3VsdF9vZjxGdW5jKGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6
dHlwZSBKU09iamVjdDo6Z2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90LCBGdW5jIGZ1bmN0aW9uKSBjb25z
dAoreworICAgIGJvb2wgZm91bmQgPSBjb25zdF9jYXN0PEpTT2JqZWN0Kj4odGhpcyktPmdldFBy
b3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGZ1
bmN0aW9uKGZvdW5kLCBzbG90KTsKK30KKwogdGVtcGxhdGU8SlNPYmplY3Q6OlB1dE1vZGUgbW9k
ZT4KIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0SW50ZXJuYWwoVk0mIHZt
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRy
aWJ1dGVzLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCA2ODcwNThiYThkNjcxMTc1
OWVjZTIxZGM0ZjNiMTEwYTk5ZmI3NDk0Li43MGNlY2Q4MDc3YWJhYWVmMGNjODNkMTIzZmEzNDI3
ZjcyOWFlN2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dFByb3RvdHlwZS5jcHAKQEAgLTI3NywzNCArMjc3LDM1IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CiAKICAgICBKU1N0cmluZyogcmVz
dWx0ID0gdGhpc09iamVjdC0+c3RydWN0dXJlKHZtKS0+b2JqZWN0VG9TdHJpbmdWYWx1ZSgpOwot
ICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIFByb3BlcnR5TmFtZSB0b1N0cmluZ1RhZ1N5bWJv
bCA9IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0cmluZ1RhZ1N5bWJvbDsKLSAgICAgICAgUHJv
cGVydHlTbG90IHRvU3RyaW5nVGFnU2xvdCh0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVy
bmFsTWV0aG9kVHlwZTo6R2V0KTsKLSAgICAgICAgaWYgKHRoaXNPYmplY3QtPmdldFByb3BlcnR5
U2xvdChleGVjLCB0b1N0cmluZ1RhZ1N5bWJvbCwgdG9TdHJpbmdUYWdTbG90KSkgeworICAgIGlm
IChyZXN1bHQpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKworICAg
IFByb3BlcnR5TmFtZSB0b1N0cmluZ1RhZ1N5bWJvbCA9IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50
b1N0cmluZ1RhZ1N5bWJvbDsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3Qt
PmdldFByb3BlcnR5U2xvdChleGVjLCB0b1N0cmluZ1RhZ1N5bWJvbCwgWyZdIChib29sIGZvdW5k
LCBQcm9wZXJ0eVNsb3QmIHRvU3RyaW5nVGFnU2xvdCkgLT4gSlNWYWx1ZSB7CisgICAgICAgIGlm
IChmb3VuZCkgewogICAgICAgICAgICAgSlNWYWx1ZSBzdHJpbmdUYWcgPSB0b1N0cmluZ1RhZ1Ns
b3QuZ2V0VmFsdWUoZXhlYywgdG9TdHJpbmdUYWdTeW1ib2wpOwogICAgICAgICAgICAgaWYgKFVO
TElLRUxZKHZtLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAg
ICAgICAgICAgIGlmIChzdHJpbmdUYWcuaXNTdHJpbmcoKSkgewogICAgICAgICAgICAgICAgIEpT
Um9wZVN0cmluZzo6Um9wZUJ1aWxkZXIgcm9wZUJ1aWxkZXIodm0pOwogICAgICAgICAgICAgICAg
IHJvcGVCdWlsZGVyLmFwcGVuZCh2bS5zbWFsbFN0cmluZ3Mub2JqZWN0U3RyaW5nU3RhcnQoKSk7
CiAgICAgICAgICAgICAgICAgcm9wZUJ1aWxkZXIuYXBwZW5kKGpzQ2FzdDxKU1N0cmluZyo+KHN0
cmluZ1RhZykpOwogICAgICAgICAgICAgICAgIHJvcGVCdWlsZGVyLmFwcGVuZCh2bS5zbWFsbFN0
cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKCddJykpOwotICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IHJvcGVCdWlsZGVyLnJlbGVhc2UoKTsKKyAgICAgICAgICAgICAgICBKU1N0cmluZyogcmVz
dWx0ID0gcm9wZUJ1aWxkZXIucmVsZWFzZSgpOwogCiAgICAgICAgICAgICAgICAgdGhpc09iamVj
dC0+c3RydWN0dXJlKHZtKS0+c2V0T2JqZWN0VG9TdHJpbmdWYWx1ZShleGVjLCB2bSwgcmVzdWx0
LCB0b1N0cmluZ1RhZ1Nsb3QpOwotICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAKICAgICAgICAgU3RyaW5nIG5ld1N0cmluZyA9IFdURjo6dHJ5TWFrZVN0
cmluZygiW29iamVjdCAiLCB0aGlzT2JqZWN0LT5tZXRob2RUYWJsZShleGVjLT52bSgpKS0+Y2xh
c3NOYW1lKHRoaXNPYmplY3QpLCAiXSIpOwogICAgICAgICBpZiAoIW5ld1N0cmluZykKLSAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dPdXRPZk1lbW9yeUVycm9yKGV4ZWMp
KTsKKyAgICAgICAgICAgIHJldHVybiB0aHJvd091dE9mTWVtb3J5RXJyb3IoZXhlYyk7CiAKLSAg
ICAgICAgcmVzdWx0ID0ganNOb250cml2aWFsU3RyaW5nKCZ2bSwgbmV3U3RyaW5nKTsKKyAgICAg
ICAgSlNTdHJpbmcqIHJlc3VsdCA9IGpzTm9udHJpdmlhbFN0cmluZygmdm0sIG5ld1N0cmluZyk7
CiAgICAgICAgIHRoaXNPYmplY3QtPnN0cnVjdHVyZSh2bSktPnNldE9iamVjdFRvU3RyaW5nVmFs
dWUoZXhlYywgdm0sIHJlc3VsdCwgdG9TdHJpbmdUYWdTbG90KTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAg
fSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCmluZGV4IGM2ODgyNDQ1ZjBiZGFiNTMzYTk0ZTZjMTA0
ODdhMzdlMTJlMmQ1MDUuLjQ5NmQwYWM0Y2VlNDBiOWYzMTI0ODAyZjA5ODUzYzgyNzM2Y2UxYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcApA
QCAtMzgsNyArMzgsNyBAQCBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6Y3VzdG9tR2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgYwogICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBkaWZmZXJlbmNlcyBpbiBjdXN0b20gdmFsdWVzIGFuZCBjdXN0b20gYWNjZXNz
b3JzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgw
MTQKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IG1fYXR0cmlidXRlcyAmIEN1c3RvbUFjY2Vzc29y
ID8gbV90aGlzVmFsdWUgOiBKU1ZhbHVlKHNsb3RCYXNlKCkpOwotICAgIHJldHVybiBKU1ZhbHVl
OjpkZWNvZGUobV9kYXRhLmN1c3RvbS5nZXRWYWx1ZShleGVjLCBKU1ZhbHVlOjplbmNvZGUodGhp
c1ZhbHVlKSwgcHJvcGVydHlOYW1lLCBzbG90QmFzZSgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmRlY29kZShtX2RhdGEuY3VzdG9tLmdldFZhbHVlKGV4ZWMsIEpTVmFsdWU6OmVuY29kZSh0aGlz
VmFsdWUpLCBwcm9wZXJ0eU5hbWUpKTsKIH0KIAogSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmdldFB1
cmVSZXN1bHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlTbG90LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eVNsb3QuaAppbmRleCBlYTVjYzlkZmY3OTA0Y2YwZGExOWVjOTk4MTgxNTVkN2IzZDgxN2NlLi5k
N2Q3NmM3ZTNjYTY1ZmRhZmU1YWMyOTM1ZDUxODg5ZGZiNTVkMjZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaApAQCAtOTQsMTIgKzk0LDkgQEAgY2xh
c3MgUHJvcGVydHlTbG90IHsKICAgICB7CiAgICAgfQogCi0gICAgLy8gVGhlcmUgYXJlIHR3byB0
eXBlcyBvZiBjdXN0b20gcHJvcGVydGllczogY3VzdG9tIHZhbHVlcyBhbmQgY3VzdG9tIGFjY2Vz
c29ycy4KLSAgICAvLyBGb3IgdGhlIHNlY29uZCBhcmd1bWVudCwgY3VzdG9tIHZhbHVlcyBhcmUg
cGFzc2VkIHRoZSBzbG90QmFzZSAodGhlIHByb3BlcnR5IGhvbGRlciksIGN1c3RvbSBhY2Nlc3Nv
cnMgYXJlIHBhc3NlZCB0aGUgdGhpc1ZhdWxlIChyZWNpZXZlcikuCi0gICAgLy8gQW5kIHdoZW4g
Z2V0dGluZyB0aGUgcHJvcGVydHkgZGVzY3JpcHRvciBmcm9tIHRoZXNlIHByb3BlcnRpZXMsIGN1
c3RvbSB2YWx1ZXMgcmV0dXJuIHRoZSBkYXRhIGRlc2NyaXB0b3Igd2hpbGUgY3VzdG9tIGFjY2Vz
c29ycyByZXR1cm4gdGhlIGFjY2Vzc29yIGRlc2NyaXB0b3IuCiAgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGlzIHNsb3RCYXNlIC8gcmVjZWl2ZXIgYmVoYXZpb3IgZGlmZmVyZW5jZSBpbiBjdXN0b20g
dmFsdWVzIGFuZCBjdXN0b20gYWNjZXNzb3JzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMTQKLSAgICB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlICgq
R2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSwgSlNPYmplY3QqIHNsb3RCYXNlKTsKKyAgICB0eXBlZGVmIEVuY29kZWRKU1ZhbHVl
ICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSk7CiAKICAgICBKU1ZhbHVlIGdldFZhbHVlKEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZSkgY29uc3Q7CiAgICAgSlNWYWx1ZSBnZXRWYWx1ZShFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUpIGNvbnN0OwpAQCAtMjQ5LDYgKzI0NiwxMSBAQCBjbGFzcyBQcm9wZXJ0eVNs
b3QgewogICAgICAgICBtX29mZnNldCA9IG9mZnNldDsKICAgICB9CiAKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV90aGlzVmFsdWU7CisgICAg
fQorCiAgICAgdm9pZCBzZXRUaGlzVmFsdWUoSlNWYWx1ZSB0aGlzVmFsdWUpCiAgICAgewogICAg
ICAgICBtX3RoaXNWYWx1ZSA9IHRoaXNWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3h5T2JqZWN0LmNwcAppbmRleCAwNzUwZjU3ZmNlZWU1YWMwYTUzZDlmYmU3MDhj
ZDUzYTlmOWM0M2QxLi5hMTJjYzE3MzcyZDI1NGI1YWFjZGU2NGNkZmM0YzRjMGVkZjc1OTQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCkBAIC05
NSwyMiArOTUsMjEgQEAgdm9pZCBQcm94eU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdGFyZ2V0LCBKU1ZhbHUKIAogc3RhdGljIGNvbnN0IGNo
YXIqIHNfcHJveHlBbHJlYWR5UmV2b2tlZEVycm9yTWVzc2FnZSA9ICJQcm94eSBoYXMgYWxyZWFk
eSBiZWVuIHJldm9rZWQuIE5vIG1vcmUgb3BlcmF0aW9ucyBhcmUgYWxsb3dlZCB0byBiZSBwZXJm
b3JtZWQgb24gaXQiOwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcGVyZm9ybVByb3h5R2V0KEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBKU09iamVjdCogc2xvdEJhc2UpCitzdGF0aWMgSlNWYWx1ZSBwZXJmb3JtUHJv
eHlHZXQoRXhlY1N0YXRlKiBleGVjLCBQcm94eU9iamVjdCogcHJveHlPYmplY3QsIEpTVmFsdWUg
cmVjZWl2ZXIsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBpZiAoVU5MSUtFTFkoIXZtLmlzU2FmZVRvUmVjdXJzZSgpKSkgewogICAg
ICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihleGVjKTsKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAgIH0K
IAotICAgIFByb3h5T2JqZWN0KiBwcm94eU9iamVjdCA9IGpzQ2FzdDxQcm94eU9iamVjdCo+KHNs
b3RCYXNlKTsKICAgICBKU09iamVjdCogdGFyZ2V0ID0gcHJveHlPYmplY3QtPnRhcmdldCgpOwog
CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT51bmRlcnNjb3JlUHJv
dG8pCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJveHlPYmplY3QtPnBlcmZvcm1H
ZXRQcm90b3R5cGUoZXhlYykpOworICAgICAgICByZXR1cm4gcHJveHlPYmplY3QtPnBlcmZvcm1H
ZXRQcm90b3R5cGUoZXhlYyk7CiAKICAgICBhdXRvIHBlcmZvcm1EZWZhdWx0R2V0ID0gWyZdIHsK
LSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0YXJnZXQtPmdldChleGVjLCBwcm9wZXJ0
eU5hbWUpKTsKKyAgICAgICAgcmV0dXJuIHRhcmdldC0+Z2V0KGV4ZWMsIHByb3BlcnR5TmFtZSk7
CiAgICAgfTsKIAogICAgIGlmICh2bS5wcm9wZXJ0eU5hbWVzLT5pc1ByaXZhdGVOYW1lKElkZW50
aWZpZXI6OmZyb21VaWQoJnZtLCBwcm9wZXJ0eU5hbWUudWlkKCkpKSkKQEAgLTExOCwxNCArMTE3
LDE0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwZXJmb3JtUHJveHlHZXQoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsCiAKICAgICBKU1ZhbHVlIGhhbmRsZXJWYWx1
ZSA9IHByb3h5T2JqZWN0LT5oYW5kbGVyKCk7CiAgICAgaWYgKGhhbmRsZXJWYWx1ZS5pc051bGwo
KSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKHNf
cHJveHlBbHJlYWR5UmV2b2tlZEVycm9yTWVzc2FnZSkpOworICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKHNfcHJveHlBbHJlYWR5UmV2b2tlZEVycm9yTWVz
c2FnZSkpOwogCiAgICAgSlNPYmplY3QqIGhhbmRsZXIgPSBqc0Nhc3Q8SlNPYmplY3QqPihoYW5k
bGVyVmFsdWUpOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAgIENhbGxUeXBlIGNhbGxUeXBl
OwogICAgIEpTVmFsdWUgZ2V0SGFuZGxlciA9IGhhbmRsZXItPmdldE1ldGhvZChleGVjLCBjYWxs
RGF0YSwgY2FsbFR5cGUsIHZtLnByb3BlcnR5TmFtZXMtPmdldCwgQVNDSUlMaXRlcmFsKCInZ2V0
JyBwcm9wZXJ0eSBvZiBhIFByb3h5J3MgaGFuZGxlciBvYmplY3Qgc2hvdWxkIGJlIGNhbGxhYmxl
IikpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiAKICAgICBpZiAoZ2V0SGFuZGxlci5pc1VuZGVmaW5lZCgpKQogICAgICAgICByZXR1cm4gcGVy
Zm9ybURlZmF1bHRHZXQoKTsKQEAgLTEzMywyNiArMTMyLDM2IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBwZXJmb3JtUHJveHlHZXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsCiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOwogICAgIGFyZ3VtZW50
cy5hcHBlbmQodGFyZ2V0KTsKICAgICBhcmd1bWVudHMuYXBwZW5kKGlkZW50aWZpZXJUb1NhZmVQ
dWJsaWNKU1ZhbHVlKHZtLCBJZGVudGlmaWVyOjpmcm9tVWlkKCZ2bSwgcHJvcGVydHlOYW1lLnVp
ZCgpKSkpOwotICAgIGFyZ3VtZW50cy5hcHBlbmQoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OworICAgIGFyZ3VtZW50cy5hcHBlbmQocmVjZWl2ZXIpOwogICAgIEpTVmFsdWUgdHJhcFJlc3Vs
dCA9IGNhbGwoZXhlYywgZ2V0SGFuZGxlciwgY2FsbFR5cGUsIGNhbGxEYXRhLCBoYW5kbGVyLCBh
cmd1bWVudHMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgZGVzY3JpcHRvcjsKICAgICBpZiAodGFy
Z2V0LT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yKSkgewogICAgICAgICBpZiAoZGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkgJiYgIWRl
c2NyaXB0b3IuY29uZmlndXJhYmxlKCkgJiYgIWRlc2NyaXB0b3Iud3JpdGFibGUoKSkgewogICAg
ICAgICAgICAgaWYgKCFzYW1lVmFsdWUoZXhlYywgZGVzY3JpcHRvci52YWx1ZSgpLCB0cmFwUmVz
dWx0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBBU0NJ
SUxpdGVyYWwoIlByb3h5IGhhbmRsZXIncyAnZ2V0JyByZXN1bHQgb2YgYSBub24tY29uZmlndXJh
YmxlIGFuZCBub24td3JpdGFibGUgcHJvcGVydHkgc2hvdWxkIGJlIHRoZSBzYW1lIHZhbHVlIGFz
IHRoZSB0YXJnZXQncyBwcm9wZXJ0eSIpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJQcm94eSBoYW5kbGVyJ3MgJ2dldCcgcmVzdWx0
IG9mIGEgbm9uLWNvbmZpZ3VyYWJsZSBhbmQgbm9uLXdyaXRhYmxlIHByb3BlcnR5IHNob3VsZCBi
ZSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgdGFyZ2V0J3MgcHJvcGVydHkiKSk7CiAgICAgICAgIH0g
ZWxzZSBpZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpICYmICFkZXNjcmlwdG9y
LmNvbmZpZ3VyYWJsZSgpICYmIGRlc2NyaXB0b3IuZ2V0dGVyKCkuaXNVbmRlZmluZWQoKSkgewog
ICAgICAgICAgICAgaWYgKCF0cmFwUmVzdWx0LmlzVW5kZWZpbmVkKCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJQcm94eSBoYW5k
bGVyJ3MgJ2dldCcgcmVzdWx0IG9mIGEgbm9uLWNvbmZpZ3VyYWJsZSBhY2Nlc3NvciBwcm9wZXJ0
eSB3aXRob3V0IGEgZ2V0dGVyIHNob3VsZCBiZSB1bmRlZmluZWQiKSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUHJveHkgaGFuZGxl
cidzICdnZXQnIHJlc3VsdCBvZiBhIG5vbi1jb25maWd1cmFibGUgYWNjZXNzb3IgcHJvcGVydHkg
d2l0aG91dCBhIGdldHRlciBzaG91bGQgYmUgdW5kZWZpbmVkIikpOwogICAgICAgICB9CiAgICAg
fQogCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
KworICAgIHJldHVybiB0cmFwUmVzdWx0OworfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZSh0cmFwUmVzdWx0KTsKK2Jvb2wgUHJveHlPYmplY3Q6OnBlcmZvcm1HZXQoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7Cisg
ICAgSlNWYWx1ZSByZXN1bHQgPSBwZXJmb3JtUHJveHlHZXQoZXhlYywgdGhpcywgc2xvdC50aGlz
VmFsdWUoKSwgcHJvcGVydHlOYW1lKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB1bnNpZ25lZCBpZ25vcmVkQXR0cmlidXRlcyA9IDA7
CisgICAgc2xvdC5zZXRWYWx1ZSh0aGlzLCBpZ25vcmVkQXR0cmlidXRlcywgcmVzdWx0KTsKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBQcm94eU9iamVjdDo6cGVyZm9ybUludGVybmFsTWV0
aG9kR2V0T3duUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC0zMzcsOCArMzQ2LDcgQEAgYm9vbCBQcm94eU9i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90Q29tbW9uKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lIHByb3BlcnQKICAgICBzbG90LnNldElzVGFpbnRlZEJ5UHJveHkoKTsKICAgICBzd2l0Y2gg
KHNsb3QuaW50ZXJuYWxNZXRob2RUeXBlKCkpIHsKICAgICBjYXNlIFByb3BlcnR5U2xvdDo6SW50
ZXJuYWxNZXRob2RUeXBlOjpHZXQ6Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIEN1c3Rv
bUFjY2Vzc29yLCBwZXJmb3JtUHJveHlHZXQpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgcmV0dXJuIHBlcmZvcm1HZXQoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICBjYXNl
IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eToKICAgICAg
ICAgcmV0dXJuIHBlcmZvcm1JbnRlcm5hbE1ldGhvZEdldE93blByb3BlcnR5KGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiAgICAgY2FzZSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlw
ZTo6SGFzUHJvcGVydHk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmpl
Y3QuaAppbmRleCAxMWRlNmY2ZmZlMGY2MjliZDQ1NmM3MjgyZmUzMjkxZDU3MTg1YzIwLi5hODJl
MzVjMzJkZjk2MWJjZGY4M2FlODMyYmQ2NTc4MDM5MzlkZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgKQEAgLTk1LDYgKzk1LDcgQEAgY2xhc3MgUHJv
eHlPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAKICAgICBib29sIGdldE93blBy
b3BlcnR5U2xvdENvbW1vbihFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYp
OwogICAgIGJvb2wgcGVyZm9ybUludGVybmFsTWV0aG9kR2V0T3duUHJvcGVydHkoRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBib29sIHBlcmZvcm1HZXQoRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBib29sIHBlcmZvcm1I
YXNQcm9wZXJ0eShFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBEZWZhdWx0RGVsZXRlRnVuY3Rpb24+CiAgICAgYm9vbCBwZXJm
b3JtRGVsZXRlKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgRGVmYXVsdERlbGV0ZUZ1bmN0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmNwcAppbmRleCAyNDNhMzVmNjE5ODRkMDE0NGJiMTZhNGE3ZDViOTRhY2MxY2M4ZmE2Li5k
MjM3ODliYzAzOTU2ZjQ4Y2RhOGJiZTczYzk2M2UxMGNkODIyZjUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0zMSwx
NCArMzEsMTQgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3RvcklucHV0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNP
YmplY3QqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRj
aChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFzdFBhcmVuKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3Rvckxhc3RQYXJlbihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
K3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpOwogdGVtcGxhdGU8aW50IE4+Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
IAogc3RhdGljIGJvb2wgc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogc3RhdGljIGJvb2wgc2V0UmVnRXhwQ29uc3Ry
dWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
KTsKQEAgLTE0NywzNyArMTQ3LDM3IEBAIEpTVmFsdWUgUmVnRXhwQ29uc3RydWN0b3I6OmdldFJp
Z2h0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMpCiB9CiAKIHRlbXBsYXRlPGludCBOPgotRW5jb2Rl
ZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFs
dWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNr
cmVmKGV4ZWMsIE4pKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1
dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNP
YmplY3QqKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpLT5pbnB1dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JN
dWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5l
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwQ29uc3RydWN0b3Io
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5tdWx0aWxpbmUoKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdl
dEJhY2tyZWYoZXhlYywgMCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ckxhc3RQYXJlbihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxh
c3RQYXJlbihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3Rv
cihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldExhc3RQYXJlbihleGVjKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQor
RW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSktPmdldExlZnRDb250ZXh0KGV4ZWMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRSaWdo
dENvbnRleHQoZXhlYykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9nZXQtZnJvbS1zY29wZS1keW5hbWljLW9udG8tcHJveHkuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1mcm9tLXNjb3BlLWR5bmFtaWMtb250by1w
cm94eS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jYTcxNTYxZWYyYjYxZjVmOGIzNzQ4YzhiODg1MDU5NDUyNDdj
NTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtZnJvbS1zY29wZS1keW5hbWljLW9udG8tcHJveHkuanMKQEAgLTAsMCArMSwxMDYgQEAK
K2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9
PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgdmFsdWU6ICR7U3RyaW5n
KGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yTWVzc2Fn
ZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAgIHZhciBlcnJvciA9IG51bGw7
CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICgh
ZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicpOworICAg
IGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7Cit9CisKKy8vIExMSW50IHNsb3cg
cGF0aCBvcGVyYXRpb24uCitzaG91bGRUaHJvdyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIHRhcmdl
dCA9IHt9OworICAgIHZhciBoYW5kbGVyID0geworICAgICAgICBoYXM6IGZ1bmN0aW9uIChyZWNl
aXZlciwgbmFtZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdpJzsK
KyAgICAgICAgfSwKKyAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZl
cikKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdpJykKKyAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIk5HIik7CisgICAgICAgICAgICByZXR1cm4gNDI7CisgICAg
ICAgIH0KKyAgICB9OworICAgIHZhciBwcm94eSA9IG5ldyBQcm94eSh0YXJnZXQsIGhhbmRsZXIp
OworICAgIHdpdGggKHByb3h5KSB7CisgICAgICAgIGk7CisgICAgfQorfSwgYEVycm9yOiBOR2Ap
OworCisvLyBCYXNlbGluZSBKSVQgb3BlcmF0aW9uLgorc2hvdWxkVGhyb3coZnVuY3Rpb24gKCkg
eworICAgIHZhciBmbGFnID0gZmFsc2U7CisgICAgdmFyIHRhcmdldCA9IHt9OworICAgIHZhciBo
YW5kbGVyID0geworICAgICAgICBoYXM6IGZ1bmN0aW9uIChyZWNlaXZlciwgbmFtZSkKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdpJzsKKyAgICAgICAgfSwKKyAgICAg
ICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZlcikKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKG5hbWUgPT09ICdpJyAmJiBmbGFnKQorICAgICAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiTkciKTsKKyAgICAgICAgICAgIHJldHVybiA0MjsKKyAgICAgICAgfQorICAg
IH07CisgICAgdmFyIHByb3h5ID0gbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAgICB3aXRoIChwcm94eSkgeworICAg
ICAgICAgICAgaTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PT0gMWUzKQorICAgICAgICAg
ICAgZmxhZyA9IHRydWU7CisgICAgfQorfSwgYEVycm9yOiBOR2ApOworCisvLyBERkcgSklUIG9w
ZXJhdGlvbi4KK3ZhciB0aHJvd24gPSBudWxsOwordHJ5IHsKKyAgICAoKCkgPT4geworICAgICAg
ICB2YXIgZmxhZyA9IGZhbHNlOworICAgICAgICB2YXIgdGFyZ2V0ID0geworICAgICAgICAgICAg
X19wcm90b19fOiBudWxsCisgICAgICAgIH07CisgICAgICAgIHZhciBoYW5kbGVyID0geworICAg
ICAgICAgICAgaGFzOiBmdW5jdGlvbiAocmVjZWl2ZXIsIG5hbWUpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdhcmd1bWVudHMnOworICAgICAgICAgICAg
fSwKKworICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZlcikK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2FyZ3VtZW50cycg
JiYgZmxhZykKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJORyIpOworICAg
ICAgICAgICAgICAgIHJldHVybiA0MjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAg
ICAgdmFyIHByb3h5ID0gbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7CisgICAgICAgIHByb3h5
Ll9fcHJvdG9fXyA9IG51bGw7CisgICAgICAgIE9iamVjdC5wcm90b3R5cGUuX19wcm90b19fID0g
eworICAgICAgICAgICAgX19wcm90b19fOiBwcm94eSwKKyAgICAgICAgfTsKKyAgICAgICAgKCgp
ID0+IHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAg
ICAgICAgICAgICBhcmd1bWVudHM7CisgICAgICAgICAgICAgICAgaWYgKGkgPT09ICgxZTQgLSAy
KSkKKyAgICAgICAgICAgICAgICAgICAgZmxhZyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0pKCk7CisgICAgfSkoKTsKK30gY2F0Y2ggKGUpIHsKKyAgICB0aHJvd24gPSBlOworfQor
T2JqZWN0LnByb3RvdHlwZS5fX3Byb3RvX18gPSBudWxsOworc2hvdWxkQmUoU3RyaW5nKHRocm93
biksIGBFcnJvcjogTkdgKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3Mvb3BlcmF0aW9uLWluLXRocm93LWVycm9yLmpzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9vcGVyYXRpb24taW4tdGhyb3ctZXJyb3IuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjNhM2QwMjRlZjhhZjUyNDRkYWQ3MWMxNWVjY2M0ZGYwZmJiZjQ2OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3BlcmF0aW9uLWluLXRocm93
LWVycm9yLmpzCkBAIC0wLDAgKzEsMjggQEAKKyhmdW5jdGlvbiB0ZXN0Q2FzZSgpIHsKKyAgICB2
YXIgdGFyZ2V0ID0ge307CisgICAgdmFyIGhhbmRsZXIgPSB7CisgICAgICAgIGhhczogZnVuY3Rp
b24gKHRhcmdldCwgbmFtZSkgeworICAgICAgICAgICAgaWYgKG5hbWUgPT09ICduZycpCisgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCduZycpOworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgfTsKKyAgICB2YXIgcHJveHkgPSBuZXcgUHJveHkodGFyZ2V0
LCBoYW5kbGVyKTsKKyAgICB2YXIgYmFzZSA9IHsKKyAgICAgICAgX19wcm90b19fOiBwcm94eQor
ICAgIH07CisgICAgKGZ1bmN0aW9uIGEoKSB7CisgICAgICAgIHZhciB0aHJvd247CisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgICAgIHRocm93biA9IG51
bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICduZycgaW4gYmFzZTsKKyAg
ICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvd24gPSBlOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGhyb3duID09PSBudWxsKQorICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcihgbm90IHRocm93biAke2l9YCk7CisgICAgICAgIH0KKyAg
ICB9KCkpOworfSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvcHJveHktYW5kLWpzb24tc3RyaW5naWZ5LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9wcm94eS1hbmQtanNvbi1zdHJpbmdpZnkuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQz
N2ViYzM3ZDk4ZGNmYWU3ZDMyYzM2OGQxZjllNTAwZjNlYjU0YwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHktYW5kLWpzb24tc3RyaW5n
aWZ5LmpzCkBAIC0wLDAgKzEsMjggQEAKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9y
TWVzc2FnZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAgIHZhciBlcnJvciA9
IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAg
IGlmICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicp
OworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7Cit9CisKKy8vIFRoaXMg
dGVzdCBqdXN0IGVuc3VyZSB0aGF0IHByb3h5LltbR2V0XV0ncyB0aHJvd2luZyB3b3JrcyBjb3Jy
ZWN0bHkgd2l0aCBKU09OLnN0cmluZ2lmeS4KK3ZhciBwcm94eSA9IG5ldyBQcm94eShbMCwgMSwg
MiwgM10sIHsKKyAgICBnZXQ6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpCisgICAgeworICAgICAg
ICBpZiAobmFtZSA9PT0gJzInKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCduZycpOwor
ICAgICAgICByZXR1cm4gdGFyZ2V0W25hbWVdOworICAgIH0KK30pOworCitzaG91bGRUaHJvdygo
KSA9PiB7CisgICAgSlNPTi5zdHJpbmdpZnkocHJveHkpOworfSwgYEVycm9yOiBuZ2ApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1hbmQtdHlw
ZWQtYXJyYXkuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWFu
ZC10eXBlZC1hcnJheS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDVjMGQ2N2NjZDk1ZGZmYjE1OTMyM2NiYTgw
NGM3MjgzMzA1MjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9wcm94eS1hbmQtdHlwZWQtYXJyYXkuanMKQEAgLTAsMCArMSwxNyBAQAordmFy
IGFycmF5ID0gWzAsIDEsIDIsIDNdOwordmFyIHByb3h5ID0gbmV3IFByb3h5KGFycmF5LCB7Cisg
ICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCByZWNlaXZlcikKKyAgICB7CisgICAgICAg
IHRocm93IG5ldyBFcnJvcihTdHJpbmcobmFtZSkpOworICAgIH0KK30pOwordmFyIHRocm93biA9
IG51bGw7Cit0cnkgeworICAgIHZhciB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkocHJveHkp
OworfSBjYXRjaCAoZXJyb3IpIHsKKyAgICB0aHJvd24gPSBlcnJvcjsKK30KK2lmICh0aHJvd24g
PT09IG51bGwpCisgICAgdGhyb3cgbmV3IEVycm9yKGBub3QgdGhyb3duYCk7CitpZiAoU3RyaW5n
KHRocm93bikgIT09IGBFcnJvcjogU3ltYm9sKFN5bWJvbC5pdGVyYXRvcilgKQorICAgIHRocm93
IG5ldyBFcnJvcihgYmFkIGVycm9yOiAke1N0cmluZyh0aHJvd24pfWApOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1qc29uLXBhdGguanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWpzb24tcGF0aC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMWRiOTE1MjQ5MWY0MzUxNTliMzFjNWQ1NjBmZGVkZWY3MTEwYzE3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1qc29u
LXBhdGguanMKQEAgLTAsMCArMSwyNSBAQAordmFyIHRhcmdldCA9IHsgX19wcm90b19fOiBudWxs
IH07Cit2YXIgaGFuZGxlciA9IHsKKyAgICBnZXQ6IGZ1bmN0aW9uICgpCisgICAgeworICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoYG5nYCk7CisgICAgfQorfTsKKwordmFyIHRocm93biA9IG51bGw7
Cit2YXIgaGVsbG8gPSA0MjsKKy8vIEFzIGEgcmVzdWx0LCBnbG9iYWwgb2JqZWN0IGF1dG9tYXRp
Y2FsbHkgaW5oZXJpdCB0aGlzIHByb3h5LgorT2JqZWN0LnByb3RvdHlwZS5fX3Byb3RvX18gPSB7
CisgICAgX19wcm90b19fOiBuZXcgUHJveHkodGFyZ2V0LCBoYW5kbGVyKQorfTsKKwordHJ5IHsK
KyAgICBsb2FkU3RyaW5nKGBoZWxsbyA9IHsiaGVsbG8iOiJ3b3JsZCJ9O3Byb3h5Lm9rID0ge31g
KTsKK30gY2F0Y2ggKGVycm9yKSB7CisgICAgdGhyb3duID0gZXJyb3I7Cit9CitPYmplY3QucHJv
dG90eXBlLl9fcHJvdG9fXyA9IG51bGw7CitpZiAodGhyb3duID09PSBudWxsKQorICAgIHRocm93
IG5ldyBFcnJvcihgbm90IHRocm93bmApOworaWYgKFN0cmluZyh0aHJvd24pICE9PSBgRXJyb3I6
IG5nYCkKKyAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcodGhyb3duKX1g
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHkt
d2l0aC1zdGF0ZW1lbnQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3By
b3h5LXdpdGgtc3RhdGVtZW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MjAxMzNmYjNiNGYwNjJlM2U3ZDJh
MDdjNjE2M2RjMDcyNmExMzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3Byb3h5LXdpdGgtc3RhdGVtZW50LmpzCkBAIC0wLDAgKzEsMjYgQEAK
KyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIHRhcmdldCA9IHt9OworICAgIHZhciBoYW5kbGVyID0g
eworICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcignbmcnKTsKKyAgICAgICAgfQorICAgIH07CisgICAgdmFyIGFycmF5ID0gewor
ICAgICAgICBoZWxsbzogNDIKKyAgICB9OworICAgIHZhciBwcm94eSA9IG5ldyBQcm94eSh0YXJn
ZXQsIGhhbmRsZXIpOworICAgIGFycmF5W1N5bWJvbC51bnNjb3BhYmxlc10gPSBwcm94eTsKKyAg
ICB2YXIgdGhyb3duID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB3aXRoIChhcnJheSkgewor
ICAgICAgICAgICAgaGVsbG87CisgICAgICAgIH0KKyAgICB9IGNhdGNoIChlcnJvcikgeworICAg
ICAgICB0aHJvd24gPSBlcnJvcjsKKyAgICB9CisgICAgaWYgKHRocm93biA9PT0gbnVsbCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKGBub3QgdGhyb3duYCk7CisgICAgaWYgKFN0cmluZyh0aHJv
d24pICE9PSBgRXJyb3I6IG5nYCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6
ICR7U3RyaW5nKHRocm93bil9YCk7Cit9KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKaW5kZXggZGZm
M2RmZmY3OTg4NGYwMDdjYTY5NjVmNDUwNDMyMWM0YzczZTQ1Ni4uNjJjY2QxNzhkYjNiZTIxYWFi
M2JhYmNkNzQzMjhhMWRjMWRjYmQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCkBAIC05NSwxMyAr
OTUsNyBAQCBib29sIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Z2V0QWxnb3JpdGhtSWRl
bnRpZmllcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdQogCiBzdGF0aWMgSlNWYWx1ZSBnZXRQcm9w
ZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIGNvbnN0IGNoYXIqIG5hbWUp
CiB7Ci0gICAgSWRlbnRpZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhl
eGVjLCBuYW1lKTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChvYmplY3QsIFByb3BlcnR5U2xvdDo6
SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwotCi0gICAgaWYgKG9iamVjdC0+Z2V0UHJvcGVydHlT
bG90KGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKQotICAgICAgICByZXR1cm4gc2xvdC5nZXRWYWx1
ZShleGVjLCBpZGVudGlmaWVyKTsKLQotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIHJl
dHVybiBvYmplY3QtPmdldChleGVjLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIG5hbWUp
KTsKIH0KIAogc3RhdGljIGJvb2wgZ2V0SGFzaEFsZ29yaXRobShKU0RpY3Rpb25hcnkmIGRpY3Rp
b25hcnksIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXImIHJlc3VsdCwgSGFzaFJlcXVpcmVtZW50
IGlzUmVxdWlyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmlu
ZGV4IGY5Y2EzYmYyZjAyOWRlYWFiMWFkOGQyMWI3YTY5ZjI4ZTdjNmMwNmYuLjkwMzI2ZjE3YjQ4
MGU1MzAxYzRjYjJmYjVhZWNjMjAyNDAwMTU2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5oCkBAIC0zMDUsNyArMzA1LDcgQEAgU3RyaW5nIHByb3BlcnR5TmFt
ZVRvU3RyaW5nKEpTQzo6UHJvcGVydHlOYW1lKTsKIEF0b21pY1N0cmluZyBwcm9wZXJ0eU5hbWVU
b0F0b21pY1N0cmluZyhKU0M6OlByb3BlcnR5TmFtZSk7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERP
TUNsYXNzPiBjb25zdCBKU0M6Okhhc2hUYWJsZVZhbHVlKiBnZXRTdGF0aWNWYWx1ZVNsb3RFbnRy
eVdpdGhvdXRDYWNoaW5nKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdGVt
cGxhdGU8SlNDOjpOYXRpdmVGdW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1
ZSBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOwordGVtcGxh
dGU8SlNDOjpOYXRpdmVGdW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBu
b25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIC8vIElubGluZSBmdW5jdGlvbnMgYW5k
IHRlbXBsYXRlIGRlZmluaXRpb25zLgogCkBAIC03ODQsNyArNzg0LDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgY29uc3QgSlNDOjpIYXNoVGFibGVWYWx1ZSogZ2V0U3RhdGljVmFsdWVTbG90RW50cnlX
aXRob3V0Q2FjaGkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdGVtcGxhdGU8SlNDOjpOYXRp
dmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1
ZSBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNDOjpK
U09iamVjdCopCit0ZW1wbGF0ZTxKU0M6Ok5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uLCBp
bnQgbGVuZ3RoPiBKU0M6OkVuY29kZWRKU1ZhbHVlIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdl
dHRlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29k
ZShKU0M6OkpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCksIGxlbmd0aCwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSwgbmF0aXZlRnVuY3Rp
b24pKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcAppbmRleCA3ZDAyYmMxZDg4OGQ3MzllMzM2MTFmODc1YWYxMjc5YWVkM2IyYzdiLi42
YzhmYTQzZTVhYTUwYzQxNjA3NzExNjBmODY5NjA1YzZhZTcyNzA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02NCw3ICs2NCw3
IEBAIHZvaWQgSlNET01XaW5kb3c6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogfQogCiAjaWYgRU5BQkxFKFVTRVJfTUVTU0FHRV9IQU5ETEVSUykKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1dlYktpdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUganNET01XaW5kb3dXZWJLaXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU0RPTVdpbmRvdyogY2FzdGVk
VGhpcyA9IHRvSlNET01XaW5kb3coSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
ICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNh
c3RlZFRoaXMtPndyYXBwZWQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0
aW9uYXJ5LmNwcAppbmRleCBmMjdiMGM2MDE0NGI0YzBkN2I2NTc0NzNjNjYyZDMzMjRhZWY2MTky
Li5kMGRiNDQwZjQ5YmIxZTViN2I1YjhlNzUzNTM1ZDI4ODU0ZDdiNDgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKQEAgLTczLDE5ICs3MywxNSBAQCBK
U0RpY3Rpb25hcnk6OkdldFByb3BlcnR5UmVzdWx0IEpTRGljdGlvbmFyeTo6dHJ5R2V0UHJvcGVy
dHkoY29uc3QgY2hhciogcHJvcGVydAogewogICAgIEFTU0VSVChpc1ZhbGlkKCkpOwogICAgIElk
ZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcobV9leGVjLCBwcm9w
ZXJ0eU5hbWUpOwotICAgIFByb3BlcnR5U2xvdCBzbG90KG1faW5pdGlhbGl6ZXJPYmplY3QuZ2V0
KCksIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwotCi0gICAgaWYgKCFt
X2luaXRpYWxpemVyT2JqZWN0LmdldCgpLT5nZXRQcm9wZXJ0eVNsb3QobV9leGVjLCBpZGVudGlm
aWVyLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIE5vUHJvcGVydHlGb3VuZDsKLQotICAgIGlmICht
X2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uVGhyb3duOwot
Ci0gICAgZmluYWxSZXN1bHQgPSBzbG90LmdldFZhbHVlKG1fZXhlYywgaWRlbnRpZmllcik7Cisg
ICAgYm9vbCBwcm9wZXJ0eUZvdW5kID0gbV9pbml0aWFsaXplck9iamVjdC5nZXQoKS0+Z2V0UHJv
cGVydHlTbG90KG1fZXhlYywgaWRlbnRpZmllciwgWyZdIChib29sIHByb3BlcnR5Rm91bmQsIFBy
b3BlcnR5U2xvdCYgc2xvdCkgLT4gYm9vbCB7CisgICAgICAgIGlmICghcHJvcGVydHlGb3VuZCkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZmluYWxSZXN1bHQgPSBzbG90Lmdl
dFZhbHVlKG1fZXhlYywgaWRlbnRpZmllcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0p
OwogICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gRXhjZXB0
aW9uVGhyb3duOwotCi0gICAgcmV0dXJuIFByb3BlcnR5Rm91bmQ7CisgICAgcmV0dXJuIHByb3Bl
cnR5Rm91bmQgPyBQcm9wZXJ0eUZvdW5kIDogTm9Qcm9wZXJ0eUZvdW5kOwogfQogCiB2b2lkIEpT
RGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwg
Ym9vbCYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKaW5kZXggMzBlZGFmN2VjYzk4NzJkNGVkMjllY2Ni
M2JjZDI3MGRhMTA2Nzk2MC4uMjg2NTM3MmU5YWU3MWY0YTVjYTUwNGVlMDg0OTU1YWI1ZWIxNGRh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVs
ZW1lbnRGdW5jdGlvbnMuY3BwCkBAIC05NCw3ICs5NCw3IEBAIEpTT2JqZWN0KiBwbHVnaW5TY3Jp
cHRPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0hUTUxFbGVtZW50KiBqc0hUTUxFbGVtZW50KQog
ICAgIHJldHVybiBpbnN0YW5jZS0+Y3JlYXRlUnVudGltZU9iamVjdChleGVjKTsKIH0KICAgICAK
LUVuY29kZWRKU1ZhbHVlIHBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwg
SlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgcGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lKQogewogCiAgICAgSlNIVE1MRWxlbWVudCogdGhpc09iamVjdCA9IGpzRHluYW1p
Y0Nhc3Q8SlNIVE1MRWxlbWVudCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9u
cy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmgKaW5kZXggYzY0ZWRiZjFlMjFhNTIwMmQzNzVmMTQ3NWMzNTZhYzcyYzI4NjhhYy4uMTg1MTJi
ZDQ0ZDZiM2Y3ZWY3YmQ4MDljN2YwMzBmYzhkZmI5MDYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgKQEAgLTM4LDcg
KzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIEpTQzo6QmluZGluZ3M6Okluc3RhbmNl
KiBwbHVnaW5JbnN0YW5jZShIVE1MRWxlbWVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIEpTQzo6
SlNPYmplY3QqIHBsdWdpblNjcmlwdE9iamVjdChKU0M6OkV4ZWNTdGF0ZSosIEpTSFRNTEVsZW1l
bnQqKTsKIAotICAgIEpTQzo6RW5jb2RlZEpTVmFsdWUgcGx1Z2luRWxlbWVudFByb3BlcnR5R2V0
dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUsIEpTQzo6SlNPYmplY3QqKTsKKyAgICBKU0M6OkVuY29kZWRKU1ZhbHVlIHBsdWdpbkVsZW1l
bnRQcm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKICAgICBib29sIHBsdWdpbkVsZW1lbnRDdXN0b21HZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eVNsb3QmLCBKU0hUTUxFbGVtZW50Kik7CiAgICAgYm9vbCBwbHVnaW5FbGVtZW50Q3VzdG9tUHV0
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNIVE1M
RWxlbWVudCosIEpTQzo6UHV0UHJvcGVydHlTbG90JiwgYm9vbCYgcHV0UmVzdWx0KTsKICAgICBK
U0M6OkNhbGxUeXBlIHBsdWdpbkVsZW1lbnRHZXRDYWxsRGF0YShKU0hUTUxFbGVtZW50KiwgSlND
OjpDYWxsRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQppbmRleCBmM2RjOTUyNDFhNzg5Mjg1NDNiOGY2MDk2MzczMzdmNzUw
YzgyYTk2Li41MmE3YmI1OGRmZTY0Y2RkMzZjZDM3NzUzMGZkNzAwYjQxZmVmMGM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpA
QCAtMTUxNyw3ICsxNTE3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAgICBteSAk
Y29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0
cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5n
OwogICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVy
ZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopO1xu
Iik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1
ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7XG4iKTsKICAgICAgICAgICAgIGlmICghSXNSZWFkb25seSgkYXR0cmlidXRl
KSkgewogICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1l
KCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICJib29sICR7c2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CkBAIC0yMDc5LDcgKzIw
NzksNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGNvbmRp
dGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmco
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
I2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAg
ICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAk
Y2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
SlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopO1xuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
O1xuIik7CiAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKICAgICAg
ICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNl
LCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgImJvb2wgJHtzZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4iKTsKQEAgLTIwODksNyArMjA4OSw3IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIAogICAgICAgICBpZiAoTmVlZHNDb25zdHJ1
Y3RvclByb3BlcnR5KCRpbnRlcmZhY2UpKSB7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gImpz
IiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCop
O1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFs
dWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgIH0KIAogICAgICAgICBteSAkY29uc3RydWN0b3JG
dW5jdGlvbk5hbWUgPSAic2V0SlMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwpA
QCAtMjU0OSw3ICsyNTQ5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
ICAgIG15ICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5l
cmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nfVxu
IikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nOwogCi0gICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3Qq
KVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7
Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7
XG4iKTsKIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFN
KHN0YXRlKTtcbiIpOwpAQCAtMjc1Miw3ICsyNzUyLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgaWYgKE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkg
ewogICAgICAgICAgICAgbXkgJGNvbnN0cnVjdG9yRnVuY3Rpb25OYW1lID0gImpzIiAuICRpbnRl
cmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKIAotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJFbmNvZGVkSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3Qq
KVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7
Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIntcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFz
c05hbWV9UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PCR7Y2xhc3NOYW1lfVBy
b3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKVxuIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggNzU2MTFlNDI5MmQ4NmRh
MjE1ZTVkZGYwZGRkZWU0ZTMxNzJjNjQ0ZS4uYzViM2M0ZjdlN2EyMTc5MjcxMjFiM2M3ZTdjMGYx
YTQ5NjcxYjY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJy
YXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAt
NjAsNyArNjAsNyBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAg
ICAgc3RhdGljX2Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCktPlJ1bnRpbWVBcnJheTo6flJ1bnRp
bWVBcnJheSgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
LCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFJ1bnRpbWVBcnJheSogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8UnVudGltZUFy
cmF5Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghdGhpc09iamVjdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IGRhNTE2MDViZDU2MjRkNzQw
ZjVkMDEwMmYyMzRmZWU1MjFjZGEwNGEuLjAxOGMxMzI3OGRiYTNkZDAzMTcxZTUzZWZjMGFkN2Rm
MGUxMDdlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtODMsNyAr
ODMsNyBAQCBjbGFzcyBSdW50aW1lQXJyYXkgOiBwdWJsaWMgSlNBcnJheSB7CiAKIHByaXZhdGU6
CiAgICAgUnVudGltZUFycmF5KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwotICAgIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3Ro
R2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogCiAgICAg
QmluZGluZ3NBcnJheSogbV9hcnJheTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9tZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmNwcAppbmRleCBhMzdjODhkMDljNzgyZWYxMWM1ODA2NWExYTIzZDNjNmU0ZWFlODZj
Li5hZTJiMmI5YmM5M2U5MjczY2ZhYjJkMWY3ZDdlZDQwZWExM2IwMmI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBSdW50
aW1lTWV0aG9kOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIGNvbnN0IFN0cmluZyYgaWRlbnQpCiAg
ICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1l
TWV0aG9kOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgUnVudGltZU1l
dGhvZDo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgUnVudGltZU1ldGhvZCogdGhpc09iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8UnVudGltZU1ldGhvZCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoIXRoaXNPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9tZXRob2QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5o
CmluZGV4IDIzNDIyM2UzZWZiMzBmNjRmNzEyNGY3YjczMjk2NWY5ZmFhZjZiMmQuLmQ4NmQ1OTQ3
NWUwYTk3NTE3YzAxMzZiYWIxMDZmMmEwN2MxOTI0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX21ldGhvZC5oCkBAIC02Niw3ICs2Niw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1
bnRpbWVNZXRob2QgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVu
Z3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0Kik7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogICAgIEJpbmRpbmdzOjpNZXRob2Qq
IG1fbWV0aG9kOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmlu
ZGV4IDQ2YWE0OWNiZmYxZmNkY2E0MjNhYWY1MmEyMmYxNjBhNmViOTdhNmIuLmE1NzNlMDVkNzU5
YjA3NTcwZDI2MjFkOGU2MjYwMzY0MWNiYjRlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6Omlu
dmFsaWRhdGUoKQogICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqKQorRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUpCiB7CiAgICAgUnVudGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50
aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIFJlZlB0cjxJbnN0
YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqLT5tX2luc3RhbmNlOwpAQCAtODAsNyArODAsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lKQogeyAgICAKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganND
YXN0PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVm
UHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7CkBAIC05OSw3ICs5
OSw3IEBAIEVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjptZXRob2RHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6
Om1ldGhvZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2Jq
ID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IGNjYTc0NmViZWU1MjZhZTEwMzkz
ZmM1NTc0MmFjNDRhY2VkMzQ2MzQuLjgxZDRlYmQzYjRkYmI3MDk5MTE1ZGExMDI4MmIyOWZiZmZi
MTg2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC03OCw5ICs3
OCw5IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNEZXN0
cnVjdGlibGVPYmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKIAogcHJpdmF0
ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKLSAgICBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgZmllbGRHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbWV0
aG9kR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0Kik7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBmaWVsZEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVyKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogCiAgICAgUmVmUHRyPEluc3RhbmNl
PiBtX2luc3RhbmNlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAppbmRleCBiNWE0NjA0MTAwZjM0MWFi
Njc2M2VlNTAxODAwZGI5ZWJmZTk2MTA3Li5kNTYxYWUxNDhjMjJmNTk3ZDdmMWFlODRjYjdkMGRm
OTFjMGNhMGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCkBAIC00MzUsNyArNDM1LDcgQEAgdm9pZCBK
U05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHkKICAgICBucG5NZW1GcmVlKGlkZW50aWZpZXJzKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6cHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KikKK0VuY29kZWRKU1ZhbHVlIEpTTlBPYmplY3Q6OnByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lKQogewogICAgIEpTTlBPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8SlNOUE9iamVjdCo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXNPYmosIGluZm8oKSk7CkBAIC00NzUsNyArNDc1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNO
UE9iamVjdDo6cHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3BlcnR5VmFsdWUpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KikKK0VuY29kZWRKU1ZhbHVlIEpTTlBPYmplY3Q6Om1ldGhvZEdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSkKIHsKICAgICBKU05QT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PEpTTlBPYmplY3QqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0
aGlzT2JqLCBpbmZvKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggMzg1NzgyYzhlNjhiZGM1YTEzZjc4
NTQyOTMxNWY2OTkyZjRlNDMyMC4uOGJhZmViMDYwYTIxMDY2ZDhlYWE2MDg3NGMwM2FjOTlmMGNm
NGJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5oCkBAIC05NCw4ICs5NCw4IEBAIGNsYXNzIEpTTlBPYmplY3Qg
OiBwdWJsaWMgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKICAgICBzdGF0aWMgdm9pZCBn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0aW9uTW9kZSk7CiAKLSAgICBzdGF0aWMg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7Ci0gICAg
c3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsK
KyAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKKyAgICBzdGF0
aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIEpTQzo6SlNP
YmplY3QqIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKEpTQzo6RXhlY1N0YXRlKik7CiAKICAgICBO
UFJ1bnRpbWVPYmplY3RNYXAqIG1fb2JqZWN0TWFwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280553</attachid>
            <date>2016-06-05 10:02:31 -0700</date>
            <delta_ts>2016-06-05 10:58:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157080-20160606020353.patch</filename>
            <type>text/plain</type>
            <size>213920</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxNjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MmYxMGQ2NjE3YTQyNGUwMTU5OTI4NDdjYTEwNjIxZDA3ZjNhNTc5Li5hZDUxNzk2ZjVjNzZiNjUx
OTlkZDI1MTE3ODBmOWU4MzVkM2RhYWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjUgQEAKKzIwMTYtMDYtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgQ2hhbmdlIFByb3h5T2JqZWN0LltbR2V0XV0gbm90IHRvIHVzZSBj
dXN0b20gYWNjZXNzb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NzA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggZm9jdXNlcyBvbiBpbnRyb2R1Y2luZyB0aGUgc2Vjb25kIHBhcnQg
b2YgdGhlIGZvbGxvd2luZ3MuCisgICAgICAgIEJ1dCB0byBkbyBzbywgZmlyc3QgYW5kIHRoaXJk
IHBhcnRzIGFyZSBuZWNlc3NhcnkuCisKKyAgICAgICAgMS4gSW5zZXJ0IG1pc3NpbmcgZXhjZXB0
aW9uIGNoZWNrcyBmb3IgZ2V0UHJvcGVydHlTbG90LgorCisgICAgICAgICAgICBXaGlsZSBnZXRQ
cm9wZXJ0eVNsb3QgY2FuIHBlcmZvcm0gdXNlci1vYnNlcnZhYmxlIGJlaGF2aW9yIGlmIHRoZSBz
bG90IGlzIG5vdCBWTUlucXVpcnksCisgICAgICAgICAgICBzZXZlcmFsIHBsYWNlcyBtaXNzIGV4
ZXB0aW9uIGNoZWNrcy4gRm9yIGV4YW1wbGUsIFByb3h5T2JqZWN0J3MgaGFzUHJvcGVydHkgYWxy
ZWFkeSBjYW4KKyAgICAgICAgICAgIHRocm93IGFueSBlcnJvcnMuIExvb2tpbmcgdGhyb3VnaCB0
aGUgY29kZSwgd2UgZm91bmQgc2V2ZXJhbCBtaXNzaW5nIGVycm9yIGNoZWNrcyBhZnRlcgorICAg
ICAgICAgICAgaGFzUHJvcGVydHksIGJ1dCB0aGlzIHdpbGwgYmUgZml4ZWQgaW4gdGhlIHNlcGFy
YXRlZCBwYXRjaFsxXS4KKworICAgICAgICAyLiBEbyBub3QgdXNlIGN1c3RvbSBhY2Nlc3NvciB0
byBpbXBsZW1lbnQgUHJveHlPYmplY3QncyBbW0dldF1dLgorCisgICAgICAgICAgICBUaGUgY2Fs
bGVyIGFscmVhZHkgYWxsb3dzIGdldE93blByb3BlcnR5U2xvdCB0byB0aHJvdyBhbiBleGNlcHRp
b24gaWYgdGhlIHR5cGUKKyAgICAgICAgICAgIGlzIG5vdCBWTUlucXVpcnkuIFNvIGluc3RlYWQg
b2YgdXNpbmcgY3VzdG9tIGFjY2Vzc29yLCB3ZSBzaW1wbHkgaW1wbGVtZW50IGl0CisgICAgICAg
ICAgICBkaXJlY3RseSBpbiB0aGUgUHJveHlPYmplY3QncyBtZXRob2QuCisKKyAgICAgICAgMy4g
U3RyaXAgc2xvdEJhc2UgZnJvbSBjdXN0b20gYWNjZXNzb3IuCisKKyAgICAgICAgICAgIFRoZSBj
dXN0b20gYWNjZXNzb3Igc2hvdWxkIG5vdCBiZSBib3VuZCB0byB0aGUgc3BlY2lmaWMgc2xvdCBi
YXNlWzJdLCBzaW5jZSBpdAorICAgICAgICAgICAgaXMganVzdCBhbiBhY2Nlc3Nvci4gVGhlcmUg
aXMgYW4gYWx0ZXJuYXRpdmUgZGVzaWduOiBtYWtlaW5nIHRoaXMgY3VzdG9tIGFjY2Vzc29yCisg
ICAgICAgICAgICB0byBjdXN0b20gdmFsdWUgYWNjZXNzb3IgYW5kIGFjY2VwdCBib3RoIHRoZSBz
bG90IGJhc2UgYW5kIHRoZSByZWNlaXZlciBpbnN0ZWFkCisgICAgICAgICAgICBvZiBhbGxvd2lu
ZyB0aHJvd2luZyBhbiBlcnJvciBmcm9tIGdldE93blByb3BlcnR5U2xvdC4gQnV0IHdlIHRha2Ug
dGhlIGZpcnN0IGRlc2lnbgorICAgICAgICAgICAgdGhhdCBhbGxvd3MgZ2V0UHJvcGVydHlTbG90
IHRvIHRocm93IGFuIGVycm9yLCBzaW5jZSBoYXNQcm9wZXJ0eSAodGhhdCBkb2VzIG5vdCBjYWxs
CisgICAgICAgICAgICBnZXRWYWx1ZSBvZiB0aGUgY3VzdG9tIGdldHRlcnMpIGNhbiBhbHJlYWR5
IHRocm93IGFueSBlcnJvcnMuCisKKyAgICAgICAgICAgIFRvIHF1ZXJ5IHRoZSBwcm9wZXJ0eSB3
aXRoIHRoZSBub24tdXNlci1vYnNlcnZhYmxlIHdheSwgd2UgYWxyZWFkeSBwcm92aWRlZCB0aGUg
d2F5IGZvciB0aGF0OgorICAgICAgICAgICAgdXNlIFZNSW5xdWlyeSBhbmQgaXNUYWludGVkQnlQ
cm94eSgpIGluc3RlYWQuCisKKyAgICAgICAgVGVzdHMganVzdCBlbnN1cmUgdGhhdCB0aGUgY3Vy
cmVudCBzZW1hbnRpY3Mgd29ya3MgY29ycmVjdGx5IGFmdGVyIHRoaXMgcGF0Y2guCisgICAgICAg
IEFuZCB0aGlzIHBhdGNoIGlzIHBlcmZvcm1hbmNlIG5ldXRyYWwuCisKKyAgICAgICAgTGF0ZXIs
IHdlIHdpbGwgYXR0ZW1wdCB0byByZW5hbWUgInRoaXNWYWx1ZSIgdG8gInJlY2VpdmVyIlszXS4K
KworICAgICAgICBbMV06IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTgzOTgKKyAgICAgICAgWzJdOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU3OTc4CisgICAgICAgIFszXTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1ODM5NworCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAg
ICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjpKU0Nh
bGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKEpT
Qzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsYmFja0dldHRlcik6CisgICAgICAgICog
Ynl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNl
OjpnZW5lcmF0ZUltcGwpOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJl
dGVyOjpleGVjdXRlKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAg
ICoganNjLmNwcDoKKyAgICAgICAgKFdURjo6SW1wdXJlR2V0dGVyOjpnZXRPd25Qcm9wZXJ0eVNs
b3QpOgorICAgICAgICAoV1RGOjpDdXN0b21HZXR0ZXI6OmN1c3RvbUdldHRlcik6CisgICAgICAg
IChXVEY6OlJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKEdsb2JhbE9iamVj
dDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoZnVuY3Rpb25Mb2FkU3RyaW5nKToKKyAgICAg
ICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElO
VF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
OgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9KU0Jv
dW5kU2xvdEJhc2VGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmJvdW5kU2xvdEJhc2VGdW5j
dGlvbkNhbGwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0UHJv
cGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbElubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6RXhlY1N0YXRlOjp2bSk6CisgICAgICAgIFRoaXMgY2hhbmdlIGlzIHN1cGVyIGltcG9y
dGFudCBmb3IgcGVyZm9ybWFuY2UuIFdlIGFkZCBzZXZlcmFsIGBleGVjLT5oYWRFeGNlcHRpb24o
KWAgY2FsbHMgaW50byB0aGUgc3VwZXIgaG90IHBhdGgsIGxpa2UgSlNDOjpvcGVyYXRpb25HZXRC
eUlkT3B0aW1pemUuCisgICAgICAgIFdpdGhvdXQgdGhpcyBjaGFuZ2UsIHdlIGNhbGwgRXhlY1N0
YXRlOjp2bSgpIGFuZCBpdCBpcyBub3QgaW5saW5lZC4gVGhpcyBjYXVzZXMgMSAtIDIlIHBlcmZv
cm1hbmNlIHJlZ3Jlc3Npb24gaW4gT2N0YW5lIFBERkpTLgorCisgICAgICAgICogcnVudGltZS9K
U0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVy
KToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKToKKyAgICAgICAgKiBy
dW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEdlbmVy
aWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1
bGVOYW1lc3BhY2VPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpjYWxsYmFja0dldHRlcik6Cisg
ICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5naWZp
ZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KToKKyAgICAgICAgSGVyZSdzIFVOTElLRUxZ
IGlzIGltcG9ydGFudCBmb3IgS3Jha2VuJ3MganNvbi1zdHJpbmdpZnktdGluZGVyYm94LiBXaXRo
b3V0IGl0LCB3ZSBjYW4gb2JzZXJ2ZSAwLjUlIHJlZ3Jlc3Npb24uCisKKyAgICAgICAgKEpTQzo6
V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcpOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90LmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVy
dHlTbG90OjpjdXN0b21HZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6
CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6dGhpc1ZhbHVlKToKKyAgICAgICAgKiBydW50
aW1lL1Byb3h5T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6cGVyZm9ybVByb3h5R2V0KToKKyAg
ICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OnBlcmZvcm1HZXQpOgorICAgICAgICAoSlNDOjpQcm94
eU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90Q29tbW9uKToKKyAgICAgICAgKiBydW50aW1lL1By
b3h5T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKToKKyAgICAgICAgKEpTQzo6cmVn
RXhwQ29uc3RydWN0b3JJbnB1dCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTXVs
dGlsaW5lKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gpOgorICAg
ICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbik6CisgICAgICAgIChKU0M6OnJl
Z0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1
Y3RvclJpZ2h0Q29udGV4dCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1mcm9tLXNjb3Bl
LWR5bmFtaWMtb250by1wcm94eS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAg
ICAgIChzaG91bGRUaHJvdy5oYW5kbGVyLmhhcyk6CisgICAgICAgIChoYW5kbGVyLmhhcyk6Cisg
ICAgICAgICh0cnkuaGFuZGxlci5oYXMpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9vcGVyYXRp
b24taW4tdGhyb3ctZXJyb3IuanM6IEFkZGVkLgorICAgICAgICAodGVzdENhc2UuaGFuZGxlci5o
YXMpOgorICAgICAgICAodGVzdENhc2UpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wcm94eS1h
bmQtanNvbi1zdHJpbmdpZnkuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9wcm94eS1hbmQtdHlwZWQtYXJyYXkuanM6IEFkZGVkLgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9wcm94eS1qc29uLXBhdGguanM6IEFkZGVkLgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9wcm94eS13aXRoLXN0YXRlbWVudC5qczogQWRkZWQuCisKIDIwMTYtMDYt
MDMgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRWFn
ZXIgRlRMIGZhaWx1cmUgZm9yIHN0cmljdCBjb21wYXJpc29uIG9mIE5hTiB3aXRoIG51bWJlciBj
aGVjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGU1MTE5YmMzZTEzM2E1MmMxZjg0ZTcyZjdlOWQxNGM5YzhkMzUy
NGEuLjk4OWE0NWNiOWE4Mjk3YzYzMDEyNzI3YTBmZWE5MGM1Yzk3ZTkxMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMDUgQEAKKzIwMTYtMDYtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CisKKyAgICAgICAgQ2hhbmdlIFByb3h5T2JqZWN0LltbR2V0XV0gbm90IHRv
IHVzZSBjdXN0b20gYWNjZXNzb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1NzA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFByb3BlcnR5KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6Om5vbkNhY2hpbmdTdGF0aWNGdW5j
dGlvbkdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6anNET01XaW5kb3dXZWJLaXQpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRGljdGlvbmFyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RpY3Rpb25hcnk6
OnRyeUdldFByb3BlcnR5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGx1Z2luRWxlbWVudFByb3BlcnR5R2V0
dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAg
KEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6anNJbnRlcmZhY2VOYW1lQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3Ry
dWN0b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29u
c3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0
b21OYW1lZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDdXN0b21OYW1lZEdl
dHRlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFdmVudENv
bnN0cnVjdG9yQXR0cjEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckF0dHIyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMyk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEV4Y2VwdGlvbk5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3RhdGljUmVhZE9ubHlBdHRy
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW1wbGVtZW50
c1N0YXRpY0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlSW1wbGVtZW50
c1N0cjEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjMpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFk
T25seUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JT
dXBwbGVtZW50YWxTdGF0aWNBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbFN0cjEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VTdXBwbGVt
ZW50YWxTdHIzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRl
c3RBdHRyaWJ1dGVDdXN0b20pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE5vZGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5v
ZGVDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5vbmRldGVybWluaXN0aWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9uZGV0ZXJt
aW5pc3RpY05vbmRldGVybWluaXN0aWNSZWFkb25seUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNXcml0ZWFibGVBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhj
ZXB0aW9uQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9u
ZGV0ZXJtaW5pc3RpY0dldHRlckV4Y2VwdGlvbkF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNTZXR0ZXJFeGNlcHRpb25BdHRyKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpSZWFkT25seVRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0
cnVjdG9yU3RhdGljUmVhZE9ubHlMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialRl
c3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqRW51bUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQnl0ZUF0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqT2N0ZXRBdHRyKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialNob3J0QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDbGFt
cGVkU2hvcnRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakVuZm9yY2VSYW5nZVNo
b3J0QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpMb25nQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqVW5z
aWduZWRMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqU3RyaW5nQXR0
cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpUZXN0T2JqQXR0cik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpVbmZvcmdlYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqU3RyaW5nQXR0
clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
WE1MT2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqUmVmbGVjdGVkVVJMQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUmVm
bGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUmVm
bGVjdGVkQ3VzdG9tVVJMQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpFbmFibGVk
QXRSdW50aW1lQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialR5cGVkQXJy
YXlBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
V2l0aE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNl
cHRpb25XaXRoTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJpbmdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJpbmdB
dHRyV2l0aFNldHRlckV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJp
Y3RUeXBlQ2hlY2tpbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ3Vz
dG9tQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpPbmZvbyk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpPbndlYmtpdGZvbyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
V2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmli
dXRlUmFpc2VzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJh
aXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpDb25kaXRpb25hbEF0dHIzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI1Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNh
Y2hlZEF0dHJpYnV0ZTEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ2FjaGVkQXR0cmli
dXRlMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqQ29udGVudERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9iak11dGFibGVQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpJbW11
dGFibGVQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJhd2JlcnJ5KToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialN0cmljdEZsb2F0KToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9iakRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iaklkKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
TnVsbGFibGVEb3VibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTnVs
bGFibGVMb25nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxhYmxl
Qm9vbGVhbkF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxsYWJsZVN0
cmluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxsYWJsZUxvbmdT
ZXR0YWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxsYWJsZVN0
cmluZ1NldHRhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxh
YmxlU3RyaW5nVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRp
bnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVj
dG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
UG9ydHMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmopOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0VHlwZWRlZnNBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aFNldHRlckV4
Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6anNhdHRyaWJ1dGVSZWFkb25seSk6CisgICAgICAgIChXZWJDb3JlOjpq
c2F0dHJpYnV0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNyZWFkb25seS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc3JlYWRvbmx5Q29uc3RydWN0
b3IpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6
UnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2Fy
cmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcDoKKyAgICAgICAgKEpT
Qzo6UnVudGltZU1ldGhvZDo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGlt
ZV9tZXRob2QuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIpOgor
ICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZXIpOgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6bWV0aG9kR2V0dGVyKToKKyAgICAg
ICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKwogMjAxNi0wNi0wNCAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9kZXJuIElEQjogQ3Jhc2ggc2VlbiBp
biBJREJDb25uZWN0aW9uUHJveHk6OnB1dE9yQWRkIG9uIEd1YXJkTWFsbG9jIGJvdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDFmZjhhOWUwODBhODYyMTk1YWRhOGIzZGEzNWIzMjQ3Mzk5M2FiYzguLjBkODllMWVh
OTJmYzkyNzM2OGNhZDU2ZDEzZmJjMTIyM2RlOThmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxNi0wNi0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4K
KworICAgICAgICBDaGFuZ2UgUHJveHlPYmplY3QuW1tHZXRdXSBub3QgdG8gdXNlIGN1c3RvbSBh
Y2Nlc3NvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU3MDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkpTTlBPYmplY3Q6OnByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKFdlYktpdDo6SlNO
UE9iamVjdDo6bWV0aG9kR2V0dGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5oOgorCiAyMDE2LTA2LTAzICBDb21taXQgUXVldWUgIDxjb21taXQt
cXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjAx
NjYzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAppbmRl
eCA1ZTAzM2Y4ZTNjMmVkZmM1MzE4M2I4MWMxMzVlMGNmNWVjOGU0NTBjLi5lOTU2M2Y1NGNlYThi
MjYzYjE0MzM1NjcyMWQ0Y2RkZDc5YzVlNDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMjExLDggKzIxMSw4IEBAIGNsYXNzIEpTQ2FsbGJh
Y2tPYmplY3QgOiBwdWJsaWMgUGFyZW50IHsKICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zdHJ1Y3QoRXhlY1N0YXRlKik7CiAgICAKICAgICBKU1ZhbHVlIGdldFN0
YXRpY1ZhbHVlKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIHN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNhbGxi
YWNrR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0Kik7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0NhbGxiYWNrT2JqZWN0RGF0YT4g
bV9jYWxsYmFja09iamVjdERhdGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCBiMmJjZjQ1M2E2YjE4Yjk1
NzY3NmY3ZmIwNGQzMTcwMTI2YTZlN2ZkLi5hNTUzNzIzNGJiMzJjYTY4NmRkMDZiMmFmZTlhMDdh
OWQwMjU3ZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtNTk5LDcgKzU5OSw3IEBAIEpTVmFsdWUgSlNDYWxs
YmFja09iamVjdDxQYXJlbnQ+OjpnZXRTdGF0aWNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZSBwCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1FbmNvZGVkSlNWYWx1ZSBK
U0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
LCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnN0
YXRpY0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIEpTQ2FsbGJhY2tPYmplY3Qq
IHRoaXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHRoaXNWYWx1ZSk7CiAgICAgCkBAIC02MjcsNyAr
NjI3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpzdGF0aWNG
dW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEUKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBh
cmVudD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2FsbGJhY2tH
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tP
YmplY3Q8UGFyZW50Pjo6Y2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNDYWxs
YmFja09iamVjdCogdGhpc09iaiA9IGFzQ2FsbGJhY2tPYmplY3QodGhpc1ZhbHVlKTsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0Fj
Y2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nl
c3MuY3BwCmluZGV4IDQzZGFiNzY4YTBmMjYwNDE1MjQwM2Y0MDQ1MWViMTgyNDUzYzI2YzQuLjli
M2U3YTE1ZmMwN2U3MjZkM2U5M2UzN2M3NTkwZjExNWU2NzA2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcApAQCAtMTA4
NCw3ICsxMDg0LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNzR2VuZXJh
dGlvblN0YXRlJiBzdGF0ZSkKICAgICAgICAgICAgIC8vIHRvIG1ha2Ugc29tZSBzcGFjZSBoZXJl
LgogICAgICAgICAgICAgaml0Lm1ha2VTcGFjZU9uU3RhY2tGb3JDQ2FsbCgpOwogCi0gICAgICAg
ICAgICAvLyBnZXR0ZXI6IEVuY29kZWRKU1ZhbHVlICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqIHNsb3RC
YXNlKTsKKyAgICAgICAgICAgIC8vIGdldHRlcjogRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1
bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
ICAgICAgICAgICAgIC8vIHNldHRlcjogdm9pZCAoKlB1dFZhbHVlRnVuYykoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUgdGhpc09iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpOwogICAgICAg
ICAgICAgLy8gQ3VzdG9tIHZhbHVlcyBhcmUgcGFzc2VkIHRoZSBzbG90QmFzZSAodGhlIHByb3Bl
cnR5IGhvbGRlciksIGN1c3RvbSBhY2Nlc3NvcnMgYXJlIHBhc3NlZCB0aGUgdGhpc1ZhdWxlIChy
ZWNpZXZlcikuCiAgICAgICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgZGlmZmVyZW5jZXMg
aW4gY3VzdG9tIHZhbHVlcyBhbmQgY3VzdG9tIGFjY2Vzc29ycy4KQEAgLTEwOTQsOCArMTA5NCw3
IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYg
c3RhdGUpCiAgICAgICAgICAgICBpZiAobV90eXBlID09IEN1c3RvbVZhbHVlR2V0dGVyIHx8IG1f
dHlwZSA9PSBDdXN0b21BY2Nlc3NvckdldHRlcikgewogICAgICAgICAgICAgICAgIGppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCiAgICAgICAgICAgICAgICAgICAgIGJhc2VGb3JDdXN0
b21WYWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KGlkZW50LmltcGwoKSksCi0gICAgICAgICAgICAgICAgICAgIGJhc2VGb3JBY2Nlc3NHUFIpOwor
ICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1w
bCgpKSk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKGJhc2VGb3JDdXN0b21WYWx1ZSwgdmFsdWVSZWdzLmdwcigpKTsK
ICNlbHNlCkBAIC0xMTAzLDggKzExMDIsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlSW1w
bChBY2Nlc3NHZW5lcmF0aW9uU3RhdGUmIHN0YXRlKQogICAgICAgICAgICAgICAgIGppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCiAgICAgICAgICAgICAgICAgICAgIEVBQklfMzJCSVRf
RFVNTVlfQVJHIGJhc2VGb3JDdXN0b21WYWx1ZSwKICAgICAgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0gICAgICAgICAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkpLAotICAgICAgICAg
ICAgICAgICAgICBiYXNlRm9yQWNjZXNzR1BSKTsKKyAgICAgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSkpOwogICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKAogICAg
ICAgICAgICAgICAgICAgICBFQUJJXzMyQklUX0RVTU1ZX0FSRyBiYXNlRm9yQ3VzdG9tVmFsdWUs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCBhNWQw
ZDA0MTRkZDlhZDc5MTAyMGIzZDA1NmYzMmM5YzczNzliMzJiLi5lYTk2N2I4NjYyZmYzNmM1OTcx
MWUzNTdhZWI5NTQ5OTBjM2RiNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAKQEAgLTE2MjIsMjcgKzE2MjIsMjcgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25HZXREeW5hbWljVmFyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIHMKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIoJnZtLCBleGVjKTsKIAotICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gSWRl
bnRpZmllcjo6ZnJvbVVpZChleGVjLCBpbXBsKTsKLSAgICBHZXRQdXRJbmZvIGdldFB1dEluZm8o
Z2V0UHV0SW5mb0JpdHMpOwotCi0gICAgUHJvcGVydHlTbG90IHNsb3Qoc2NvcGUsIFByb3BlcnR5
U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwotICAgIGlmICghc2NvcGUtPmdldFByb3Bl
cnR5U2xvdChleGVjLCBpZGVudCwgc2xvdCkpIHsKLSAgICAgICAgaWYgKGdldFB1dEluZm8ucmVz
b2x2ZU1vZGUoKSA9PSBUaHJvd0lmTm90Rm91bmQpCi0gICAgICAgICAgICB2bS50aHJvd0V4Y2Vw
dGlvbihleGVjLCBjcmVhdGVVbmRlZmluZWRWYXJpYWJsZUVycm9yKGV4ZWMsIGlkZW50KSk7Ci0g
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgfQorICAg
IElkZW50aWZpZXIgaWRlbnQgPSBJZGVudGlmaWVyOjpmcm9tVWlkKGV4ZWMsIGltcGwpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2NvcGUtPmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVu
dCwgWyZdIChib29sIGZvdW5kLCBQcm9wZXJ0eVNsb3QmIHNsb3QpIC0+IEpTVmFsdWUgeworICAg
ICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgICBHZXRQdXRJbmZvIGdldFB1dEluZm8oZ2V0
UHV0SW5mb0JpdHMpOworICAgICAgICAgICAgaWYgKGdldFB1dEluZm8ucmVzb2x2ZU1vZGUoKSA9
PSBUaHJvd0lmTm90Rm91bmQpCisgICAgICAgICAgICAgICAgdm0udGhyb3dFeGNlcHRpb24oZXhl
YywgY3JlYXRlVW5kZWZpbmVkVmFyaWFibGVFcnJvcihleGVjLCBpZGVudCkpOworICAgICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIH0KIAotICAgIGlmIChzY29wZS0+aXNH
bG9iYWxMZXhpY2FsRW52aXJvbm1lbnQoKSkgewotICAgICAgICAvLyBXaGVuIHdlIGNhbid0IHN0
YXRpY2FsbHkgcHJvdmUgd2UgbmVlZCBhIFREWiBjaGVjaywgd2UgbXVzdCBwZXJmb3JtIHRoZSBj
aGVjayBvbiB0aGUgc2xvdyBwYXRoLgotICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IHNsb3QuZ2V0
VmFsdWUoZXhlYywgaWRlbnQpOwotICAgICAgICBpZiAocmVzdWx0ID09IGpzVERaVmFsdWUoKSkg
ewotICAgICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVURFpF
cnJvcihleGVjKSk7Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOworICAgICAgICBpZiAoc2NvcGUtPmlzR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KCkp
IHsKKyAgICAgICAgICAgIC8vIFdoZW4gd2UgY2FuJ3Qgc3RhdGljYWxseSBwcm92ZSB3ZSBuZWVk
IGEgVERaIGNoZWNrLCB3ZSBtdXN0IHBlcmZvcm0gdGhlIGNoZWNrIG9uIHRoZSBzbG93IHBhdGgu
CisgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnQp
OworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBqc1REWlZhbHVlKCkpIHsKKyAgICAgICAgICAg
ICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVREWkVycm9yKGV4ZWMp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOwotICAgIH0KIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudCkpOworICAgICAgICByZXR1cm4gc2xvdC5nZXRW
YWx1ZShleGVjLCBpZGVudCk7CisgICAgfSkpOwogfQogCiB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0RHluYW1pY1ZhcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzY29wZSwgRW5j
b2RlZEpTVmFsdWUgdmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiBpbXBsLCB1bnNpZ25lZCBnZXRQ
dXRJbmZvQml0cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwCmluZGV4IGEwYWUyZDZhMWYzMGM4YzMzMWE3MmU3NDc3NTA3ZmM1MDEzYWEz
MWUuLjk3MWYyZWY1MjE2MjkwMDZiODQ0NDk2MWNlOTc3MDViZDk4YmJhNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtODYz
LDYgKzg2Myw4IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoUHJvZ3JhbUV4ZWN1dGFi
bGUqIHByb2dyYW0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKCiAgICAgICAgICAgICAgICAgICAg
IGlmIChpID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90
KGdsb2JhbE9iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdsb2JhbE9iamVjdC0+Z2V0UHJvcGVydHlTbG90
KGNhbGxGcmFtZSwgSlNPTlBQYXRoW2ldLm1fcGF0aEVudHJ5TmFtZSwgc2xvdCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5KQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFt
ZSwgY3JlYXRlVW5kZWZpbmVkVmFyaWFibGVFcnJvcihjYWxsRnJhbWUsIEpTT05QUGF0aFtpXS5t
X3BhdGhFbnRyeU5hbWUpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxl
ZEpTT05QOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5k
ZXggMzkzMDRiZjFmNWJjNDYwMWRjZGZjNmY0Mjk3NDdkZGYxYzA1NDg3Zi4uMTc0NWQ2ZTIzN2Nj
MDA5MmQzNjZkM2YxN2IwZTg1YzY0MTZmZWJhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0yNDEsMTMgKzI0MSwxMiBAQCBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMs
IFN0cnVjdHVyZQogCiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoYmFz
ZSk7CiAgICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGJhc2VW
YWx1ZS5jbGFzc0luZm9Pck51bGwoKSwgaWRlbnQpKTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChi
YXNlVmFsdWUsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwotICAgIAot
ICAgIGJvb2wgaGFzUmVzdWx0ID0gYmFzZVZhbHVlLmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVu
dCwgc2xvdCk7Ci0gICAgaWYgKHN0dWJJbmZvLT5jb25zaWRlckNhY2hpbmcoYmFzZVZhbHVlLnN0
cnVjdHVyZU9yTnVsbCgpKSkKLSAgICAgICAgcmVwYXRjaEdldEJ5SUQoZXhlYywgYmFzZVZhbHVl
LCBpZGVudCwgc2xvdCwgKnN0dWJJbmZvLCBHZXRCeUlES2luZDo6Tm9ybWFsKTsKLSAgICAKLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGhhc1Jlc3VsdD8gc2xvdC5nZXRWYWx1ZShleGVjLCBp
ZGVudCkgOiBqc1VuZGVmaW5lZCgpKTsKKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYmFz
ZVZhbHVlLmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudCwgWyZdIChib29sIGZvdW5kLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpIC0+IEpTVmFsdWUgeworICAgICAgICBpZiAoc3R1YkluZm8tPmNvbnNp
ZGVyQ2FjaGluZyhiYXNlVmFsdWUuc3RydWN0dXJlT3JOdWxsKCkpKQorICAgICAgICAgICAgcmVw
YXRjaEdldEJ5SUQoZXhlYywgYmFzZVZhbHVlLCBpZGVudCwgc2xvdCwgKnN0dWJJbmZvLCBHZXRC
eUlES2luZDo6Tm9ybWFsKTsKKyAgICAgICAgcmV0dXJuIGZvdW5kID8gc2xvdC5nZXRWYWx1ZShl
eGVjLCBpZGVudCkgOiBqc1VuZGVmaW5lZCgpOworICAgIH0pKTsKIH0KIAogRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Jbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBKU0NlbGwqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBs
KiBrZXkpCkBAIC0yNjgsNiArMjY3LDggQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Jbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlU3R1YkkKICAgICBM
T0dfSUMoKElDRXZlbnQ6Ok9wZXJhdGlvbkluT3B0aW1pemUsIGJhc2UtPmNsYXNzSW5mbygpLCBp
ZGVudCkpOwogICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2UsIFByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpIYXNQcm9wZXJ0eSk7CiAgICAgYm9vbCByZXN1bHQgPSBhc09iamVjdChi
YXNlKS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KTsKKyAgICBpZiAodm0tPmV4
Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogICAgIAogICAgIFJFTEVBU0VfQVNTRVJUKGFjY2Vzc1R5cGUgPT0gc3R1YkluZm8tPmFjY2Vz
c1R5cGUpOwogICAgIApAQCAtMjAxNCwyOCArMjAxNSwyOSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkdldEZyb21TY29wZShFeGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0
aW9uKgogICAgIC8vIE1vZHVsZVZhciBpcyBhbHdheXMgY29udmVydGVkIHRvIENsb3N1cmVWYXIg
Zm9yIGdldF9mcm9tX3Njb3BlLgogICAgIEFTU0VSVChnZXRQdXRJbmZvLnJlc29sdmVUeXBlKCkg
IT0gTW9kdWxlVmFyKTsKIAotICAgIFByb3BlcnR5U2xvdCBzbG90KHNjb3BlLCBQcm9wZXJ0eVNs
b3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKLSAgICBpZiAoIXNjb3BlLT5nZXRQcm9wZXJ0
eVNsb3QoZXhlYywgaWRlbnQsIHNsb3QpKSB7Ci0gICAgICAgIGlmIChnZXRQdXRJbmZvLnJlc29s
dmVNb2RlKCkgPT0gVGhyb3dJZk5vdEZvdW5kKQotICAgICAgICAgICAgdm0udGhyb3dFeGNlcHRp
b24oZXhlYywgY3JlYXRlVW5kZWZpbmVkVmFyaWFibGVFcnJvcihleGVjLCBpZGVudCkpOwotICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNjb3BlLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQs
IFsmXSAoYm9vbCBmb3VuZCwgUHJvcGVydHlTbG90JiBzbG90KSAtPiBKU1ZhbHVlIHsKKyAgICAg
ICAgaWYgKCFmb3VuZCkgeworICAgICAgICAgICAgaWYgKGdldFB1dEluZm8ucmVzb2x2ZU1vZGUo
KSA9PSBUaHJvd0lmTm90Rm91bmQpCisgICAgICAgICAgICAgICAgdm0udGhyb3dFeGNlcHRpb24o
ZXhlYywgY3JlYXRlVW5kZWZpbmVkVmFyaWFibGVFcnJvcihleGVjLCBpZGVudCkpOworICAgICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIH0KIAotICAgIEpTVmFsdWUgcmVz
dWx0ID0gSlNWYWx1ZSgpOwotICAgIGlmIChzY29wZS0+aXNHbG9iYWxMZXhpY2FsRW52aXJvbm1l
bnQoKSkgewotICAgICAgICAvLyBXaGVuIHdlIGNhbid0IHN0YXRpY2FsbHkgcHJvdmUgd2UgbmVl
ZCBhIFREWiBjaGVjaywgd2UgbXVzdCBwZXJmb3JtIHRoZSBjaGVjayBvbiB0aGUgc2xvdyBwYXRo
LgotICAgICAgICByZXN1bHQgPSBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50KTsKLSAgICAgICAg
aWYgKHJlc3VsdCA9PSBqc1REWlZhbHVlKCkpIHsKLSAgICAgICAgICAgIGV4ZWMtPnZtKCkudGhy
b3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVERaRXJyb3IoZXhlYykpOwotICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgSlNWYWx1ZSByZXN1
bHQgPSBKU1ZhbHVlKCk7CisgICAgICAgIGlmIChzY29wZS0+aXNHbG9iYWxMZXhpY2FsRW52aXJv
bm1lbnQoKSkgeworICAgICAgICAgICAgLy8gV2hlbiB3ZSBjYW4ndCBzdGF0aWNhbGx5IHByb3Zl
IHdlIG5lZWQgYSBURFogY2hlY2ssIHdlIG11c3QgcGVyZm9ybSB0aGUgY2hlY2sgb24gdGhlIHNs
b3cgcGF0aC4KKyAgICAgICAgICAgIHJlc3VsdCA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnQp
OworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBqc1REWlZhbHVlKCkpIHsKKyAgICAgICAgICAg
ICAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVURFpFcnJvcihleGVjKSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KLSAgICB9CiAKLSAgICBDb21tb25TbG93UGF0aHM6OnRyeUNhY2hlR2V0RnJvbVNjb3BlR2xv
YmFsKGV4ZWMsIHZtLCBwYywgc2NvcGUsIHNsb3QsIGlkZW50KTsKKyAgICAgICAgQ29tbW9uU2xv
d1BhdGhzOjp0cnlDYWNoZUdldEZyb21TY29wZUdsb2JhbChleGVjLCB2bSwgcGMsIHNjb3BlLCBz
bG90LCBpZGVudCk7CiAKLSAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmVzdWx0ID0gc2xvdC5n
ZXRWYWx1ZShleGVjLCBpZGVudCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVl
KGV4ZWMsIGlkZW50KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9KSk7CiB9CiAKIHZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRUb1Njb3BlKEV4ZWNTdGF0ZSogZXhlYywgSW5z
dHJ1Y3Rpb24qIGJ5dGVjb2RlUEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IGIwMjFkMTAxZjMz
Y2I3NjJhYTQyZmFmZjFiZGQ1ZjNhZTk1NTk2YmMuLjg2MjE5NDc3YWVmYTUxY2M1ZmFlNGY3YmQz
MmZjMjI4MGQ3NmZiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0zMDIsOCArMzAyLDEyIEBA
IGNsYXNzIEltcHVyZUdldHRlciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICB7CiAg
ICAgICAgIEltcHVyZUdldHRlciogdGhpc09iamVjdCA9IGpzQ2FzdDxJbXB1cmVHZXR0ZXIqPihv
YmplY3QpOwogICAgICAgICAKLSAgICAgICAgaWYgKHRoaXNPYmplY3QtPm1fZGVsZWdhdGUgJiYg
dGhpc09iamVjdC0+bV9kZWxlZ2F0ZS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIG5hbWUsIHNsb3Qp
KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmICh0aGlzT2JqZWN0LT5tX2Rl
bGVnYXRlKSB7CisgICAgICAgICAgICBpZiAodGhpc09iamVjdC0+bV9kZWxlZ2F0ZS0+Z2V0UHJv
cGVydHlTbG90KGV4ZWMsIG5hbWUsIHNsb3QpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBCYXNlOjpnZXRPd25Q
cm9wZXJ0eVNsb3Qob2JqZWN0LCBleGVjLCBuYW1lLCBzbG90KTsKICAgICB9CkBAIC0zNTgsNyAr
MzYyLDcgQEAgY2xhc3MgQ3VzdG9tR2V0dGVyIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
ICAgIH0KIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUs
IEpTT2JqZWN0KikKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAg
ewogICAgICAgICBDdXN0b21HZXR0ZXIqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEN1c3Rv
bUdldHRlcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICAgICAgaWYgKCF0aGlz
T2JqZWN0KQpAQCAtNDYzLDcgKzQ2Nyw3IEBAIGNsYXNzIFJ1bnRpbWVBcnJheSA6IHB1YmxpYyBK
U0FycmF5IHsKICAgICB7CiAgICAgfQogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0
aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lLCBKU09iamVjdCopCisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogICAgIHsKICAgICAgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2Fz
dDxSdW50aW1lQXJyYXkqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgICAgIGlm
ICghdGhpc09iamVjdCkKQEAgLTU4NSw2ICs1ODksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBDYWxsRnJhbWUoRXhlY1N0YXRlKik7CiBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblZlcnNpb24oRXhlY1N0YXRlKik7
CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJ1bihFeGVjU3Rh
dGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZChF
eGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
TG9hZFN0cmluZyhFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uUmVhZEZpbGUoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNoZWNrU3ludGF4KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZWFkbGluZShFeGVjU3RhdGUqKTsK
QEAgLTc2NSw2ICs3NzAsNyBAQCBjbGFzcyBHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNHbG9iYWxP
YmplY3QgewogICAgICAgICBhZGRGdW5jdGlvbih2bSwgInZlcnNpb24iLCBmdW5jdGlvblZlcnNp
b24sIDEpOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgInJ1biIsIGZ1bmN0aW9uUnVuLCAxKTsK
ICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJsb2FkIiwgZnVuY3Rpb25Mb2FkLCAxKTsKKyAgICAg
ICAgYWRkRnVuY3Rpb24odm0sICJsb2FkU3RyaW5nIiwgZnVuY3Rpb25Mb2FkU3RyaW5nLCAxKTsK
ICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJyZWFkRmlsZSIsIGZ1bmN0aW9uUmVhZEZpbGUsIDEp
OwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNoZWNrU3ludGF4IiwgZnVuY3Rpb25DaGVja1N5
bnRheCwgMSk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAianNjU3RhY2siLCBmdW5jdGlvbkpT
Q1N0YWNrLCAxKTsKQEAgLTE0NDEsNiArMTQ0NywyMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uTG9hZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uTG9hZFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgU3RyaW5nIHNvdXJjZUNvZGUg
PSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOworICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCk7CisKKyAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRp
b25FeGNlcHRpb247CisgICAgSlNWYWx1ZSByZXN1bHQgPSBldmFsdWF0ZShnbG9iYWxPYmplY3Qt
Pmdsb2JhbEV4ZWMoKSwgbWFrZVNvdXJjZShzb3VyY2VDb2RlKSwgSlNWYWx1ZSgpLCBldmFsdWF0
aW9uRXhjZXB0aW9uKTsKKyAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikKKyAgICAgICAgZXhl
Yy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25SZWFkRmlsZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgU3RyaW5n
IGZpbGVOYW1lID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5k
ZXggNzc5YzFmMGU2ZjU2MjA3NDQxNmI2NjJkNzZlYzExOWExNGE2MjA4Yy4uNDBmNTFhMWFiNmVh
NmQ2ZjBmOGJjNDZlOWFlZjY3ZWUwNTY3MTE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC0xNDkyLDI2ICsxNDkyLDI3IEBAIExMSU5U
X1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfZnJvbV9zY29wZSkKICAgICAvLyBNb2R1bGVW
YXIgaXMgYWx3YXlzIGNvbnZlcnRlZCB0byBDbG9zdXJlVmFyIGZvciBnZXRfZnJvbV9zY29wZS4K
ICAgICBBU1NFUlQoZ2V0UHV0SW5mby5yZXNvbHZlVHlwZSgpICE9IE1vZHVsZVZhcik7CiAKLSAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdChzY29wZSwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5
cGU6OkdldCk7Ci0gICAgaWYgKCFzY29wZS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBz
bG90KSkgewotICAgICAgICBpZiAoZ2V0UHV0SW5mby5yZXNvbHZlTW9kZSgpID09IFRocm93SWZO
b3RGb3VuZCkKLSAgICAgICAgICAgIExMSU5UX1JFVFVSTihleGVjLT52bSgpLnRocm93RXhjZXB0
aW9uKGV4ZWMsIGNyZWF0ZVVuZGVmaW5lZFZhcmlhYmxlRXJyb3IoZXhlYywgaWRlbnQpKSk7Ci0g
ICAgICAgIExMSU5UX1JFVFVSTihqc1VuZGVmaW5lZCgpKTsKLSAgICB9CisgICAgTExJTlRfUkVU
VVJOKHNjb3BlLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQsIFsmXSAoYm9vbCBmb3VuZCwg
UHJvcGVydHlTbG90JiBzbG90KSAtPiBKU1ZhbHVlIHsKKyAgICAgICAgaWYgKCFmb3VuZCkgewor
ICAgICAgICAgICAgaWYgKGdldFB1dEluZm8ucmVzb2x2ZU1vZGUoKSA9PSBUaHJvd0lmTm90Rm91
bmQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhl
YywgY3JlYXRlVW5kZWZpbmVkVmFyaWFibGVFcnJvcihleGVjLCBpZGVudCkpOworICAgICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIH0KIAotICAgIEpTVmFsdWUgcmVzdWx0
ID0gSlNWYWx1ZSgpOwotICAgIGlmIChzY29wZS0+aXNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQo
KSkgewotICAgICAgICAvLyBXaGVuIHdlIGNhbid0IHN0YXRpY2FsbHkgcHJvdmUgd2UgbmVlZCBh
IFREWiBjaGVjaywgd2UgbXVzdCBwZXJmb3JtIHRoZSBjaGVjayBvbiB0aGUgc2xvdyBwYXRoLgot
ICAgICAgICByZXN1bHQgPSBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50KTsKLSAgICAgICAgaWYg
KHJlc3VsdCA9PSBqc1REWlZhbHVlKCkpCi0gICAgICAgICAgICBMTElOVF9USFJPVyhjcmVhdGVU
RFpFcnJvcihleGVjKSk7Ci0gICAgfQorICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWUo
KTsKKyAgICAgICAgaWYgKHNjb3BlLT5pc0dsb2JhbExleGljYWxFbnZpcm9ubWVudCgpKSB7Cisg
ICAgICAgICAgICAvLyBXaGVuIHdlIGNhbid0IHN0YXRpY2FsbHkgcHJvdmUgd2UgbmVlZCBhIFRE
WiBjaGVjaywgd2UgbXVzdCBwZXJmb3JtIHRoZSBjaGVjayBvbiB0aGUgc2xvdyBwYXRoLgorICAg
ICAgICAgICAgcmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudCk7CisgICAgICAgICAg
ICBpZiAocmVzdWx0ID09IGpzVERaVmFsdWUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZXhl
Yy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVURFpFcnJvcihleGVjKSk7CisgICAg
ICAgIH0KIAotICAgIENvbW1vblNsb3dQYXRoczo6dHJ5Q2FjaGVHZXRGcm9tU2NvcGVHbG9iYWwo
ZXhlYywgdm0sIHBjLCBzY29wZSwgc2xvdCwgaWRlbnQpOworICAgICAgICBDb21tb25TbG93UGF0
aHM6OnRyeUNhY2hlR2V0RnJvbVNjb3BlR2xvYmFsKGV4ZWMsIHZtLCBwYywgc2NvcGUsIHNsb3Qs
IGlkZW50KTsKIAotICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXN1bHQgPSBzbG90LmdldFZh
bHVlKGV4ZWMsIGlkZW50KTsKLSAgICBMTElOVF9SRVRVUk4ocmVzdWx0KTsKKyAgICAgICAgaWYg
KCFyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudCk7
CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSkpOwogfQogCiBMTElOVF9TTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfcHV0X3RvX3Njb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggMDlhMTcwNDc3NjRiYTBjMWQ3NDg3
ZGM0OGY2ODdhMDc5NTM3NzljYi4uZGI5Njg2ZWI4MzdiNTI4OTY3NTE2Zjc5OTJkYTE5ZTQwNDhm
MjI0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93
UGF0aHMuY3BwCkBAIC03NzEsNiArNzcxLDggQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3Jl
c29sdmVfc2NvcGUpCiAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBleGVjLT5jb2RlQmxv
Y2soKS0+aWRlbnRpZmllcihwY1szXS51Lm9wZXJhbmQpOwogICAgIEpTU2NvcGUqIHNjb3BlID0g
ZXhlYy0+dW5jaGVja2VkUihwY1syXS51Lm9wZXJhbmQpLlJlZ2lzdGVyOjpzY29wZSgpOwogICAg
IEpTT2JqZWN0KiByZXNvbHZlZFNjb3BlID0gSlNTY29wZTo6cmVzb2x2ZShleGVjLCBzY29wZSwg
aWRlbnQpOworICAgIC8vIFByb3h5IGNhbiB0aHJvdyBhbiBlcnJvciBoZXJlLCBlLmcuIFByb3h5
IGluIHdpdGggc3RhdGVtZW50J3MgQHVuc2NvcGFibGVzLgorICAgIENIRUNLX0VYQ0VQVElPTigp
OwogCiAgICAgUmVzb2x2ZVR5cGUgcmVzb2x2ZVR5cGUgPSBzdGF0aWNfY2FzdDxSZXNvbHZlVHlw
ZT4ocGNbNF0udS5vcGVyYW5kKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24uY3BwCmluZGV4IDJkNjdlNDMxNzFl
MmRkNmM5NDUwODc2YzlmMjJkMjFkMzVlZGI0NGUuLjFmMzM1NjI2N2ZhZmI3ZDMwNWQ5NjNhYWE5
MDdmZTJmNGJlNjRlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQm91bmRTbG90QmFzZUZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZFNsb3RCYXNlRnVuY3Rpb25DYWxsKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZSA9IGJvdW5kU2xvdEJhc2VGdW5jdGlvbi0+bmFt
ZSgpOwotICAgIHJldHVybiBnZXR0ZXIoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNW
YWx1ZSgpKSwgUHJvcGVydHlOYW1lKElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgbmFtZSkp
LCBiYXNlT2JqZWN0KTsKKyAgICByZXR1cm4gZ2V0dGVyKGV4ZWMsIEpTVmFsdWU6OmVuY29kZShl
eGVjLT50aGlzVmFsdWUoKSksIFByb3BlcnR5TmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4
ZWMsIG5hbWUpKSk7CiB9CiAKIEpTQm91bmRTbG90QmFzZUZ1bmN0aW9uOjpKU0JvdW5kU2xvdEJh
c2VGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBjb25zdCBUeXBlIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggOTBhYWUxMDIzNDNmMDhkMjc0ZWJkM2MxYTJkMjgxN2Y3
OWI3YmFjOS4uYzQ3M2M0ZjFjOTViNWYwMDQ4ZDBmNGYwOGI5NGJiZGRiNWZlZmQxNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaApAQCAtMjg3LDYgKzI4Nywx
MCBAQCBjbGFzcyBKU1ZhbHVlIHsKICAgICBKU1ZhbHVlIGdldChFeGVjU3RhdGUqLCB1aW50NjRf
dCBwcm9wZXJ0eU5hbWUpIGNvbnN0OwogCiAgICAgYm9vbCBnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jPgorICAgIHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPEZ1bmMoYm9vbCwgUHJv
cGVydHlTbG90Jik+Ojp0eXBlIGdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWUsIEZ1bmMpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CisgICAgdHlwZW5h
bWUgc3RkOjpyZXN1bHRfb2Y8RnVuYyhib29sLCBQcm9wZXJ0eVNsb3QmKT46OnR5cGUgZ2V0UHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiwgRnVuYykg
Y29uc3Q7CiAKICAgICBib29sIHB1dChFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwogICAgIGJvb2wgcHV0SW5saW5lKEV4ZWNTdGF0ZSosIFByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAppbmRleCBiZWRjNjIyMjdmMGUy
NzBhMWE1NjE2YzIwOGFlMGJlZDFlMGVjOTFkLi4yNmU2NTMyMTgxOTEyNzJhYzcxOGU1OWViMjdi
MzIwMjFmYWUxYWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NKU1ZhbHVlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0pTVmFsdWVJbmxpbmVzLmgKQEAgLTc2OCw2ICs3NjgsMjIgQEAgQUxXQVlTX0lOTElORSBKU1Zh
bHVlIEpTVmFsdWU6OmdldChFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIFAKICAgICAgICAgc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpIDoganNVbmRl
ZmluZWQoKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KK0FMV0FZU19JTkxJTkUgdHlw
ZW5hbWUgc3RkOjpyZXN1bHRfb2Y8RnVuYyhib29sLCBQcm9wZXJ0eVNsb3QmKT46OnR5cGUgSlNW
YWx1ZTo6Z2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgRnVuYyBmdW5jdGlvbikgY29uc3QKK3sKKyAgICBQcm9wZXJ0eVNsb3Qgc2xvdChh
c1ZhbHVlKCksIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOworICAgIHJl
dHVybiBnZXRQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90LCBmdW5jdGlvbik7
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CitBTFdBWVNfSU5MSU5FIHR5cGVuYW1lIHN0
ZDo6cmVzdWx0X29mPEZ1bmMoYm9vbCwgUHJvcGVydHlTbG90Jik+Ojp0eXBlIEpTVmFsdWU6Omdl
dFByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCwgRnVuYyBmdW5jdGlvbikgY29uc3QKK3sKKyAgICBib29sIGZv
dW5kID0gZ2V0UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgaWYg
KFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICByZXR1cm4gZnVuY3Rpb24oZm91bmQsIHNsb3QpOworfQorCiBBTFdBWVNfSU5MSU5FIGJvb2wg
SlNWYWx1ZTo6Z2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KSBjb25zdAogewogICAgIC8vIElmIHRoaXMg
aXMgYSBwcmltaXRpdmUsIHdlJ2xsIG5lZWQgdG8gc3ludGhlc2l6ZSB0aGUgcHJvdG90eXBlIC0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAppbmRleCA0
Mjc0YzIxNmZiOGE3MDliMDY3NDRhZjlhODM1Yjg0YzdhZTNiMzAwLi41ODA3ZTVlZDQzY2YzYTAw
NzY2MzAxZjM2NGJiMjE4YTU5ZjJjYmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsSW5saW5lcy5oCkBAIC0xMTgsNyArMTE4LDcgQEAgaW5saW5lIFZNKiBKU0Nl
bGw6OnZtKCkgY29uc3QKICAgICByZXR1cm4gTWFya2VkQmxvY2s6OmJsb2NrRm9yKHRoaXMpLT52
bSgpOwogfQogCi1pbmxpbmUgVk0mIEV4ZWNTdGF0ZTo6dm0oKSBjb25zdAorQUxXQVlTX0lOTElO
RSBWTSYgRXhlY1N0YXRlOjp2bSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGNhbGxlZSgpKTsKICAg
ICBBU1NFUlQoY2FsbGVlKCktPnZtKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAyNmFhN2Y2NzBiYjNjNGNjZWQ2MDJkYjIzZDBiYjAwYjE5
YjA4ZDY3Li5jYWNjMWViZmY2NTRlNDQwYjhkODM0OTg3ZDI5Y2YwMjI5MTJhNDRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMjY0LDcgKzI2
NCw3IEBAIHN0YXRpYyBKU1ZhbHVlIHJldHJpZXZlQXJndW1lbnRzKEV4ZWNTdGF0ZSogZXhlYywg
SlNGdW5jdGlvbiogZnVuY3Rpb25PYmopCiAgICAgcmV0dXJuIGZ1bmN0b3IucmVzdWx0KCk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCop
CitFbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjphcmd1bWVudHNHZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU0Z1
bmN0aW9uKiB0aGlzT2JqID0ganNDYXN0PEpTRnVuY3Rpb24qPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgQVNTRVJUKCF0aGlzT2JqLT5pc0hvc3RGdW5jdGlvbigpKTsKQEAgLTMx
OSw3ICszMTksNyBAQCBzdGF0aWMgSlNWYWx1ZSByZXRyaWV2ZUNhbGxlckZ1bmN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNGdW5jdGlvbiogZnVuY3Rpb25PYmopCiAgICAgcmV0dXJuIGZ1bmN0b3Iu
cmVzdWx0KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmNhbGxlckdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBK
U09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpjYWxsZXJHZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0ganNDYXN0PEpTRnVuY3Rpb24qPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUKCF0aGlzT2JqLT5pc0hvc3RGdW5jdGlvbigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCAzMDdkZWMx
M2M1NWRmMWFkMjEzOWEyODA5ODBkZGYyYjM3NDE0NzM0Li4zMDA3MGQwZDYxZDdlMmI2YWQ4YmFk
Y2JmZDE5NzFhYzc3NTdiMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5oCkBAIC0xOTgsOCArMTk4LDEwIEBAIGNsYXNzIEpTRnVuY3Rpb24gOiBwdWJsaWMg
SlNDYWxsZWUgewogCiAgICAgZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIAot
ICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHNHZXR0ZXIoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKLSAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgY2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0Kik7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50c0dl
dHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIG5hbWVHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7CiAKICAgICBXcml0ZUJhcnJpZXI8RXhlY3V0YWJsZUJhc2U+IG1fZXhlY3V0YWJs
ZTsKICAgICBXcml0ZUJhcnJpZXI8RnVuY3Rpb25SYXJlRGF0YT4gbV9yYXJlRGF0YTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3Q29uc3RydWN0b3JJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCmluZGV4IGYzYzdjNjgw
ODRlOGYzZmRmMWIxYmYyYzZlZThlOGI0MmMwNTE4YzIuLjZlYjA4OTIxMzdmZDgzMTQyYmQ2MGU4
MTFjNDUyODBkNTA3MGNlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1
Y3RvcklubGluZXMuaApAQCAtMTUwLDcgKzE1MCw5IEBAIGlubGluZSBKU09iamVjdCogY29uc3Ry
dWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50cyhFeGVjU3RhdGUqIGV4ZWMsIFN0
CiAgICAgICAgIGlmIChpc1R5cGVkVmlldyhvYmplY3QtPmNsYXNzSW5mbygpLT50eXBlZEFycmF5
U3RvcmFnZVR5cGUpKQogICAgICAgICAgICAgbGVuZ3RoID0ganNDYXN0PEpTQXJyYXlCdWZmZXJW
aWV3Kj4ob2JqZWN0KS0+bGVuZ3RoKCk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgUHJv
cGVydHlTbG90IGxlbmd0aFNsb3Qob2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9k
VHlwZTo6R2V0KTsKKyAgICAgICAgICAgIC8vIFRoaXMgZ2V0UHJvcGVydHlTbG90IG9wZXJhdGlv
biBzaG91bGQgbm90IGJlIG9ic2VydmVkIGJ5IHRoZSBQcm94eS4KKyAgICAgICAgICAgIC8vIFNv
IHdlIHVzZSBWTUlucXVpcnkuIEFuZCBwdXJnZSB0aGUgcHJveHkgY2FzZSBieSBpc1RhaW50ZWRC
eVByb3h5KCkgZ3VhcmQuCisgICAgICAgICAgICBQcm9wZXJ0eVNsb3QgbGVuZ3RoU2xvdChvYmpl
Y3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkpOwogICAgICAg
ICAgICAgb2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+bGVu
Z3RoLCBsZW5ndGhTbG90KTsKIAogICAgICAgICAgICAgSlNWYWx1ZSBpdGVyYXRvckZ1bmMgPSBv
YmplY3QtPmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCk7CkBAIC0x
NjUsNyArMTY3LDcgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJh
eVZpZXdXaXRoQXJndW1lbnRzKEV4ZWNTdGF0ZSogZXhlYywgU3QKIAogICAgICAgICAgICAgaWYg
KCFpdGVyYXRvckZ1bmMuaXNVbmRlZmluZWQoKQogICAgICAgICAgICAgICAgICYmIChpdGVyYXRv
ckZ1bmMgIT0gb2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+YXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9u
KCkKLSAgICAgICAgICAgICAgICAgICAgfHwgbGVuZ3RoU2xvdC5pc0FjY2Vzc29yKCkgfHwgbGVu
Z3RoU2xvdC5pc0N1c3RvbSgpCisgICAgICAgICAgICAgICAgICAgIHx8IGxlbmd0aFNsb3QuaXNB
Y2Nlc3NvcigpIHx8IGxlbmd0aFNsb3QuaXNDdXN0b20oKSB8fCBsZW5ndGhTbG90LmlzVGFpbnRl
ZEJ5UHJveHkoKQogICAgICAgICAgICAgICAgICAgICB8fCBoYXNBbnlBcnJheVN0b3JhZ2Uob2Jq
ZWN0LT5pbmRleGluZ1R5cGUoKSkpKSB7CiAKICAgICAgICAgICAgICAgICAgICAgQ2FsbERhdGEg
Y2FsbERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01v
ZHVsZU5hbWVzcGFjZU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U01vZHVsZU5hbWVzcGFjZU9iamVjdC5jcHAKaW5kZXggOWU5OTQzMjQ2OTU0ZjMwMmNmMGZlODA4
NzQwZDZlMTE0NzY3NmEzMy4uNDBkZGE3MzMzZmY3MjBhZGY2MDk4ZmY0Nzc1NzJmMWViMTg2YWVh
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1l
c3BhY2VPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9k
dWxlTmFtZXNwYWNlT2JqZWN0LmNwcApAQCAtOTcsNyArOTcsNyBAQCB2b2lkIEpTTW9kdWxlTmFt
ZXNwYWNlT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fbW9kdWxlUmVjb3JkKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBK
U09iamVjdCopCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUpCiB7CiAgICAgSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNNb2R1bGVOYW1lc3BhY2VPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9IHRoaXNPYmplY3QtPm1vZHVsZVJlY29y
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVj
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRl
eCBjYmE1YTM4M2RlMDZiMTc2ZjkyNDY2MWI5MWY0Mzc2YjM0YzEzMTIxLi4xYjgyMGFmNTJkODY3
OWM4OTAxNDQ2ZThlYmJiYTgyMWMyYmRkNTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtNDgwLDEyICs0ODAsMTIgQEAgYm9vbCBTdHJpbmdp
Zmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVy
LCBTdHJpbmdCdWkKICAgICAgICAgICAgIHZhbHVlID0gYXNBcnJheShtX29iamVjdC5nZXQoKSkt
PmdldEluZGV4UXVpY2tseShpbmRleCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgUHJv
cGVydHlTbG90IHNsb3QobV9vYmplY3QuZ2V0KCksIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRo
b2RUeXBlOjpHZXQpOwotICAgICAgICAgICAgaWYgKG1fb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5n
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG1fb2JqZWN0LmdldCgpLCBleGVjLCBpbmRleCwgc2xv
dCkpIHsKKyAgICAgICAgICAgIGlmIChtX29iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJv
cGVydHlTbG90QnlJbmRleChtX29iamVjdC5nZXQoKSwgZXhlYywgaW5kZXgsIHNsb3QpKQogICAg
ICAgICAgICAgICAgIHZhbHVlID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpbmRleCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICB2YWx1ZSA9IGpzVW5kZWZpbmVkKCk7CisgICAgICAgICAgICBpZiAoVU5MSUtF
TFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgfQogCiAgICAgICAgIC8vIEFwcGVuZCB0aGUgc2VwYXJhdG9yIHN0cmluZy4KQEAg
LTYzMSw2ICs2MzEsOCBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1
ZSB1bmZpbHRlcmVkKQogICAgICAgICAgICAgICAgICAgICAgICAgaW5WYWx1ZSA9IHNsb3QuZ2V0
VmFsdWUobV9leGVjLCBpbmRleCk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgIGluVmFsdWUgPSBqc1VuZGVmaW5lZCgpOworICAgICAgICAgICAgICAg
ICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBqc051bGwoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgIGlmIChpblZhbHVlLmlzT2JqZWN0KCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDY0N2FlZDY1NTBiMDhhYTFkOTc5MzAy
MGJiMjE0Njc3M2E5Njc1ZjkuLjExNjQ2YjUyNmZlNTkxYzY4NzZlOGMwZTViZDVmMzZjYTNmNDcz
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTUxLDYg
KzE1MSwxMCBAQCBjbGFzcyBKU09iamVjdCA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgYm9vbCBn
ZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICBib29sIGdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CisgICAgdHlw
ZW5hbWUgc3RkOjpyZXN1bHRfb2Y8RnVuYyhib29sLCBQcm9wZXJ0eVNsb3QmKT46OnR5cGUgZ2V0
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgRnVuYykgY29uc3Q7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KKyAgICB0eXBlbmFtZSBzdGQ6OnJlc3VsdF9vZjxGdW5j
KGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
UHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmLCBGdW5jKSBjb25zdDsKIAogICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CkBAIC0xMzYxLDYgKzEzNjUsMjIgQEAgaW5saW5l
IEpTVmFsdWUgSlNPYmplY3Q6OmdldChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSkgY29uc3QKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAordGVtcGxhdGU8dHlw
ZW5hbWUgRnVuYz4KK0FMV0FZU19JTkxJTkUgdHlwZW5hbWUgc3RkOjpyZXN1bHRfb2Y8RnVuYyhi
b29sLCBQcm9wZXJ0eVNsb3QmKT46OnR5cGUgSlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEZ1bmMgZnVuY3Rpb24pIGNv
bnN0Cit7CisgICAgUHJvcGVydHlTbG90IHNsb3QodGhpcywgUHJvcGVydHlTbG90OjpJbnRlcm5h
bE1ldGhvZFR5cGU6OkdldCk7CisgICAgcmV0dXJuIGdldFByb3BlcnR5U2xvdChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QsIGZ1bmN0aW9uKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4K
K0FMV0FZU19JTkxJTkUgdHlwZW5hbWUgc3RkOjpyZXN1bHRfb2Y8RnVuYyhib29sLCBQcm9wZXJ0
eVNsb3QmKT46OnR5cGUgSlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCwgRnVuYyBmdW5j
dGlvbikgY29uc3QKK3sKKyAgICBib29sIGZvdW5kID0gY29uc3RfY2FzdDxKU09iamVjdCo+KHRo
aXMpLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICBpZiAo
VU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQorICAgICAgICByZXR1cm4geyB9OworICAg
IHJldHVybiBmdW5jdGlvbihmb3VuZCwgc2xvdCk7Cit9CisKIHRlbXBsYXRlPEpTT2JqZWN0OjpQ
dXRNb2RlIG1vZGU+CiBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdEludGVy
bmFsKFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5z
aWduZWQgYXR0cmlidXRlcywgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5kZXggNjg3MDU4
YmE4ZDY3MTE3NTllY2UyMWRjNGYzYjExMGE5OWZiNzQ5NC4uNzBjZWNkODA3N2FiYWFlZjBjYzgz
ZDEyM2ZhMzQyN2Y3MjlhZTdiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC0yNzcsMzQgKzI3NywzNSBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwogCiAgICAgSlNT
dHJpbmcqIHJlc3VsdCA9IHRoaXNPYmplY3QtPnN0cnVjdHVyZSh2bSktPm9iamVjdFRvU3RyaW5n
VmFsdWUoKTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBQcm9wZXJ0eU5hbWUgdG9TdHJp
bmdUYWdTeW1ib2wgPSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudG9TdHJpbmdUYWdTeW1ib2w7Ci0g
ICAgICAgIFByb3BlcnR5U2xvdCB0b1N0cmluZ1RhZ1Nsb3QodGhpc09iamVjdCwgUHJvcGVydHlT
bG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7Ci0gICAgICAgIGlmICh0aGlzT2JqZWN0LT5n
ZXRQcm9wZXJ0eVNsb3QoZXhlYywgdG9TdHJpbmdUYWdTeW1ib2wsIHRvU3RyaW5nVGFnU2xvdCkp
IHsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CisKKyAgICBQcm9wZXJ0eU5hbWUgdG9TdHJpbmdUYWdTeW1ib2wgPSBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkudG9TdHJpbmdUYWdTeW1ib2w7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aGlzT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgdG9TdHJpbmdUYWdTeW1ib2wsIFsmXSAo
Ym9vbCBmb3VuZCwgUHJvcGVydHlTbG90JiB0b1N0cmluZ1RhZ1Nsb3QpIC0+IEpTVmFsdWUgewor
ICAgICAgICBpZiAoZm91bmQpIHsKICAgICAgICAgICAgIEpTVmFsdWUgc3RyaW5nVGFnID0gdG9T
dHJpbmdUYWdTbG90LmdldFZhbHVlKGV4ZWMsIHRvU3RyaW5nVGFnU3ltYm9sKTsKICAgICAgICAg
ICAgIGlmIChVTkxJS0VMWSh2bS5leGNlcHRpb24oKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlKCk7CiAgICAgICAgICAgICBpZiAoc3RyaW5nVGFnLmlzU3RyaW5nKCkpIHsKICAgICAgICAg
ICAgICAgICBKU1JvcGVTdHJpbmc6OlJvcGVCdWlsZGVyIHJvcGVCdWlsZGVyKHZtKTsKICAgICAg
ICAgICAgICAgICByb3BlQnVpbGRlci5hcHBlbmQodm0uc21hbGxTdHJpbmdzLm9iamVjdFN0cmlu
Z1N0YXJ0KCkpOwogICAgICAgICAgICAgICAgIHJvcGVCdWlsZGVyLmFwcGVuZChqc0Nhc3Q8SlNT
dHJpbmcqPihzdHJpbmdUYWcpKTsKICAgICAgICAgICAgICAgICByb3BlQnVpbGRlci5hcHBlbmQo
dm0uc21hbGxTdHJpbmdzLnNpbmdsZUNoYXJhY3RlclN0cmluZygnXScpKTsKLSAgICAgICAgICAg
ICAgICByZXN1bHQgPSByb3BlQnVpbGRlci5yZWxlYXNlKCk7CisgICAgICAgICAgICAgICAgSlNT
dHJpbmcqIHJlc3VsdCA9IHJvcGVCdWlsZGVyLnJlbGVhc2UoKTsKIAogICAgICAgICAgICAgICAg
IHRoaXNPYmplY3QtPnN0cnVjdHVyZSh2bSktPnNldE9iamVjdFRvU3RyaW5nVmFsdWUoZXhlYywg
dm0sIHJlc3VsdCwgdG9TdHJpbmdUYWdTbG90KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIFN0cmluZyBuZXdTdHJpbmcgPSBXVEY6
OnRyeU1ha2VTdHJpbmcoIltvYmplY3QgIiwgdGhpc09iamVjdC0+bWV0aG9kVGFibGUoZXhlYy0+
dm0oKSktPmNsYXNzTmFtZSh0aGlzT2JqZWN0KSwgIl0iKTsKICAgICAgICAgaWYgKCFuZXdTdHJp
bmcpCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93T3V0T2ZNZW1vcnlF
cnJvcihleGVjKSk7CisgICAgICAgICAgICByZXR1cm4gdGhyb3dPdXRPZk1lbW9yeUVycm9yKGV4
ZWMpOwogCi0gICAgICAgIHJlc3VsdCA9IGpzTm9udHJpdmlhbFN0cmluZygmdm0sIG5ld1N0cmlu
Zyk7CisgICAgICAgIEpTU3RyaW5nKiByZXN1bHQgPSBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBu
ZXdTdHJpbmcpOwogICAgICAgICB0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT5zZXRPYmplY3RU
b1N0cmluZ1ZhbHVlKGV4ZWMsIHZtLCByZXN1bHQsIHRvU3RyaW5nVGFnU2xvdCk7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0pKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAppbmRleCBjNjg4MjQ0NWYwYmRhYjUz
M2E5NGU2YzEwNDg3YTM3ZTEyZTJkNTA1Li40OTZkMGFjNGNlZTQwYjlmMzEyNDgwMmYwOTg1M2M4
MjczNmNlMWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eVNsb3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
U2xvdC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmN1c3RvbUdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIGMKICAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgZGlmZmVyZW5jZXMgaW4gY3VzdG9tIHZhbHVlcyBhbmQgY3Vz
dG9tIGFjY2Vzc29ycy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU4MDE0CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBtX2F0dHJpYnV0ZXMgJiBDdXN0
b21BY2Nlc3NvciA/IG1fdGhpc1ZhbHVlIDogSlNWYWx1ZShzbG90QmFzZSgpKTsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS5jdXN0b20uZ2V0VmFsdWUoZXhlYywgSlNWYWx1ZTo6
ZW5jb2RlKHRoaXNWYWx1ZSksIHByb3BlcnR5TmFtZSwgc2xvdEJhc2UoKSkpOworICAgIHJldHVy
biBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbS5nZXRWYWx1ZShleGVjLCBKU1ZhbHVlOjpl
bmNvZGUodGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1lKSk7CiB9CiAKIEpTVmFsdWUgUHJvcGVydHlT
bG90OjpnZXRQdXJlUmVzdWx0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvcGVydHlTbG90LmgKaW5kZXggZWE1Y2M5ZGZmNzkwNGNmMGRhMTllYzk5ODE4MTU1ZDdi
M2Q4MTdjZS4uZDdkNzZjN2UzY2E2NWZkYWZlNWFjMjkzNWQ1MTg4OWRmYjU1ZDI2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKQEAgLTk0LDEyICs5
NCw5IEBAIGNsYXNzIFByb3BlcnR5U2xvdCB7CiAgICAgewogICAgIH0KIAotICAgIC8vIFRoZXJl
IGFyZSB0d28gdHlwZXMgb2YgY3VzdG9tIHByb3BlcnRpZXM6IGN1c3RvbSB2YWx1ZXMgYW5kIGN1
c3RvbSBhY2Nlc3NvcnMuCi0gICAgLy8gRm9yIHRoZSBzZWNvbmQgYXJndW1lbnQsIGN1c3RvbSB2
YWx1ZXMgYXJlIHBhc3NlZCB0aGUgc2xvdEJhc2UgKHRoZSBwcm9wZXJ0eSBob2xkZXIpLCBjdXN0
b20gYWNjZXNzb3JzIGFyZSBwYXNzZWQgdGhlIHRoaXNWYXVsZSAocmVjaWV2ZXIpLgotICAgIC8v
IEFuZCB3aGVuIGdldHRpbmcgdGhlIHByb3BlcnR5IGRlc2NyaXB0b3IgZnJvbSB0aGVzZSBwcm9w
ZXJ0aWVzLCBjdXN0b20gdmFsdWVzIHJldHVybiB0aGUgZGF0YSBkZXNjcmlwdG9yIHdoaWxlIGN1
c3RvbSBhY2Nlc3NvcnMgcmV0dXJuIHRoZSBhY2Nlc3NvciBkZXNjcmlwdG9yLgogICAgIC8vIEZJ
WE1FOiBSZW1vdmUgdGhpcyBzbG90QmFzZSAvIHJlY2VpdmVyIGJlaGF2aW9yIGRpZmZlcmVuY2Ug
aW4gY3VzdG9tIHZhbHVlcyBhbmQgY3VzdG9tIGFjY2Vzc29ycy4KICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MDE0Ci0gICAgdHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBzbG90QmFzZSk7CisgICAgdHlwZWRlZiBFbmNv
ZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogCiAgICAgSlNWYWx1ZSBnZXRWYWx1ZShFeGVjU3RhdGUq
LCBQcm9wZXJ0eU5hbWUpIGNvbnN0OwogICAgIEpTVmFsdWUgZ2V0VmFsdWUoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25zdDsKQEAgLTI0OSw2ICsyNDYsMTEgQEAgY2xhc3Mg
UHJvcGVydHlTbG90IHsKICAgICAgICAgbV9vZmZzZXQgPSBvZmZzZXQ7CiAgICAgfQogCisgICAg
SlNWYWx1ZSB0aGlzVmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdGhpc1Zh
bHVlOworICAgIH0KKwogICAgIHZvaWQgc2V0VGhpc1ZhbHVlKEpTVmFsdWUgdGhpc1ZhbHVlKQog
ICAgIHsKICAgICAgICAgbV90aGlzVmFsdWUgPSB0aGlzVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKaW5kZXggMDc1MGY1N2ZjZWVlNWFjMGE1
M2Q5ZmJlNzA4Y2Q1M2E5ZjljNDNkMS4uYTEyY2MxNzM3MmQyNTRiNWFhY2RlNjRjZGZjNGM0YzBl
ZGY3NTk0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0
LmNwcApAQCAtOTUsMjIgKzk1LDIxIEBAIHZvaWQgUHJveHlPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHRhcmdldCwgSlNWYWx1CiAKIHN0YXRp
YyBjb25zdCBjaGFyKiBzX3Byb3h5QWxyZWFkeVJldm9rZWRFcnJvck1lc3NhZ2UgPSAiUHJveHkg
aGFzIGFscmVhZHkgYmVlbiByZXZva2VkLiBObyBtb3JlIG9wZXJhdGlvbnMgYXJlIGFsbG93ZWQg
dG8gYmUgcGVyZm9ybWVkIG9uIGl0IjsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHBlcmZvcm1Q
cm94eUdldChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIHNsb3RCYXNlKQorc3RhdGljIEpTVmFsdWUg
cGVyZm9ybVByb3h5R2V0KEV4ZWNTdGF0ZSogZXhlYywgUHJveHlPYmplY3QqIHByb3h5T2JqZWN0
LCBKU1ZhbHVlIHJlY2VpdmVyLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgaWYgKFVOTElLRUxZKCF2bS5pc1NhZmVUb1JlY3Vyc2Uo
KSkpIHsKICAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoZXhlYyk7Ci0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWUo
KTsKICAgICB9CiAKLSAgICBQcm94eU9iamVjdCogcHJveHlPYmplY3QgPSBqc0Nhc3Q8UHJveHlP
YmplY3QqPihzbG90QmFzZSk7CiAgICAgSlNPYmplY3QqIHRhcmdldCA9IHByb3h5T2JqZWN0LT50
YXJnZXQoKTsKIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+dW5k
ZXJzY29yZVByb3RvKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3h5T2JqZWN0
LT5wZXJmb3JtR2V0UHJvdG90eXBlKGV4ZWMpKTsKKyAgICAgICAgcmV0dXJuIHByb3h5T2JqZWN0
LT5wZXJmb3JtR2V0UHJvdG90eXBlKGV4ZWMpOwogCiAgICAgYXV0byBwZXJmb3JtRGVmYXVsdEdl
dCA9IFsmXSB7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGFyZ2V0LT5nZXQoZXhl
YywgcHJvcGVydHlOYW1lKSk7CisgICAgICAgIHJldHVybiB0YXJnZXQtPmdldChleGVjLCBwcm9w
ZXJ0eU5hbWUpOwogICAgIH07CiAKICAgICBpZiAodm0ucHJvcGVydHlOYW1lcy0+aXNQcml2YXRl
TmFtZShJZGVudGlmaWVyOjpmcm9tVWlkKCZ2bSwgcHJvcGVydHlOYW1lLnVpZCgpKSkpCkBAIC0x
MTgsMTQgKzExNywxNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcGVyZm9ybVByb3h5R2V0KEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLAogCiAgICAgSlNWYWx1ZSBo
YW5kbGVyVmFsdWUgPSBwcm94eU9iamVjdC0+aGFuZGxlcigpOwogICAgIGlmIChoYW5kbGVyVmFs
dWUuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbChzX3Byb3h5QWxyZWFkeVJldm9rZWRFcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgcmV0
dXJuIHRocm93VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbChzX3Byb3h5QWxyZWFkeVJldm9r
ZWRFcnJvck1lc3NhZ2UpKTsKIAogICAgIEpTT2JqZWN0KiBoYW5kbGVyID0ganNDYXN0PEpTT2Jq
ZWN0Kj4oaGFuZGxlclZhbHVlKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAgICBDYWxsVHlw
ZSBjYWxsVHlwZTsKICAgICBKU1ZhbHVlIGdldEhhbmRsZXIgPSBoYW5kbGVyLT5nZXRNZXRob2Qo
ZXhlYywgY2FsbERhdGEsIGNhbGxUeXBlLCB2bS5wcm9wZXJ0eU5hbWVzLT5nZXQsIEFTQ0lJTGl0
ZXJhbCgiJ2dldCcgcHJvcGVydHkgb2YgYSBQcm94eSdzIGhhbmRsZXIgb2JqZWN0IHNob3VsZCBi
ZSBjYWxsYWJsZSIpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogCiAgICAgaWYgKGdldEhhbmRsZXIuaXNVbmRlZmluZWQoKSkKICAgICAgICAg
cmV0dXJuIHBlcmZvcm1EZWZhdWx0R2V0KCk7CkBAIC0xMzMsMjYgKzEzMiwzNiBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgcGVyZm9ybVByb3h5R2V0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLAogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKICAg
ICBhcmd1bWVudHMuYXBwZW5kKHRhcmdldCk7CiAgICAgYXJndW1lbnRzLmFwcGVuZChpZGVudGlm
aWVyVG9TYWZlUHVibGljSlNWYWx1ZSh2bSwgSWRlbnRpZmllcjo6ZnJvbVVpZCgmdm0sIHByb3Bl
cnR5TmFtZS51aWQoKSkpKTsKLSAgICBhcmd1bWVudHMuYXBwZW5kKEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKKyAgICBhcmd1bWVudHMuYXBwZW5kKHJlY2VpdmVyKTsKICAgICBKU1ZhbHVl
IHRyYXBSZXN1bHQgPSBjYWxsKGV4ZWMsIGdldEhhbmRsZXIsIGNhbGxUeXBlLCBjYWxsRGF0YSwg
aGFuZGxlciwgYXJndW1lbnRzKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIGRlc2NyaXB0b3I7CiAg
ICAgaWYgKHRhcmdldC0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcikpIHsKICAgICAgICAgaWYgKGRlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRv
cigpICYmICFkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSgpICYmICFkZXNjcmlwdG9yLndyaXRhYmxl
KCkpIHsKICAgICAgICAgICAgIGlmICghc2FtZVZhbHVlKGV4ZWMsIGRlc2NyaXB0b3IudmFsdWUo
KSwgdHJhcFJlc3VsdCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgQVNDSUlMaXRlcmFsKCJQcm94eSBoYW5kbGVyJ3MgJ2dldCcgcmVzdWx0IG9mIGEgbm9u
LWNvbmZpZ3VyYWJsZSBhbmQgbm9uLXdyaXRhYmxlIHByb3BlcnR5IHNob3VsZCBiZSB0aGUgc2Ft
ZSB2YWx1ZSBhcyB0aGUgdGFyZ2V0J3MgcHJvcGVydHkiKSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIHRocm93VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUHJveHkgaGFuZGxlcidzICdn
ZXQnIHJlc3VsdCBvZiBhIG5vbi1jb25maWd1cmFibGUgYW5kIG5vbi13cml0YWJsZSBwcm9wZXJ0
eSBzaG91bGQgYmUgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIHRhcmdldCdzIHByb3BlcnR5IikpOwog
ICAgICAgICB9IGVsc2UgaWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSAmJiAh
ZGVzY3JpcHRvci5jb25maWd1cmFibGUoKSAmJiBkZXNjcmlwdG9yLmdldHRlcigpLmlzVW5kZWZp
bmVkKCkpIHsKICAgICAgICAgICAgIGlmICghdHJhcFJlc3VsdC5pc1VuZGVmaW5lZCgpKQotICAg
ICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgi
UHJveHkgaGFuZGxlcidzICdnZXQnIHJlc3VsdCBvZiBhIG5vbi1jb25maWd1cmFibGUgYWNjZXNz
b3IgcHJvcGVydHkgd2l0aG91dCBhIGdldHRlciBzaG91bGQgYmUgdW5kZWZpbmVkIikpOworICAg
ICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlBy
b3h5IGhhbmRsZXIncyAnZ2V0JyByZXN1bHQgb2YgYSBub24tY29uZmlndXJhYmxlIGFjY2Vzc29y
IHByb3BlcnR5IHdpdGhvdXQgYSBnZXR0ZXIgc2hvdWxkIGJlIHVuZGVmaW5lZCIpKTsKICAgICAg
ICAgfQogICAgIH0KIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CisKKyAgICByZXR1cm4gdHJhcFJlc3VsdDsKK30KIAotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUodHJhcFJlc3VsdCk7Citib29sIFByb3h5T2JqZWN0OjpwZXJmb3JtR2V0KEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQoreworICAgIEpTVmFsdWUgcmVzdWx0ID0gcGVyZm9ybVByb3h5R2V0KGV4ZWMsIHRoaXMs
IHNsb3QudGhpc1ZhbHVlKCksIHByb3BlcnR5TmFtZSk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgdW5zaWduZWQgaWdub3JlZEF0dHJp
YnV0ZXMgPSAwOworICAgIHNsb3Quc2V0VmFsdWUodGhpcywgaWdub3JlZEF0dHJpYnV0ZXMsIHJl
c3VsdCk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgUHJveHlPYmplY3Q6OnBlcmZvcm1J
bnRlcm5hbE1ldGhvZEdldE93blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpAQCAtMzM3LDggKzM0Niw3IEBAIGJv
b2wgUHJveHlPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdENvbW1vbihFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0CiAgICAgc2xvdC5zZXRJc1RhaW50ZWRCeVByb3h5KCk7CiAg
ICAgc3dpdGNoIChzbG90LmludGVybmFsTWV0aG9kVHlwZSgpKSB7CiAgICAgY2FzZSBQcm9wZXJ0
eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0OgotICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzLCBDdXN0b21BY2Nlc3NvciwgcGVyZm9ybVByb3h5R2V0KTsKLSAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIHJldHVybiBwZXJmb3JtR2V0KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiAgICAgY2FzZSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0T3duUHJvcGVy
dHk6CiAgICAgICAgIHJldHVybiBwZXJmb3JtSW50ZXJuYWxNZXRob2RHZXRPd25Qcm9wZXJ0eShl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIGNhc2UgUHJvcGVydHlTbG90OjpJbnRlcm5h
bE1ldGhvZFR5cGU6Okhhc1Byb3BlcnR5OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3h5T2JqZWN0LmgKaW5kZXggMTFkZTZmNmZmZTBmNjI5YmQ0NTZjNzI4MmZlMzI5MWQ1NzE4
NWMyMC4uYTgyZTM1YzMyZGY5NjFiY2RmODNhZTgzMmJkNjU3ODAzOTM5ZGZjZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCkBAIC05NSw2ICs5NSw3IEBA
IGNsYXNzIFByb3h5T2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogCiAgICAgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RDb21tb24oRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICBib29sIHBlcmZvcm1JbnRlcm5hbE1ldGhvZEdldE93blByb3BlcnR5
KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgYm9vbCBwZXJm
b3JtR2V0KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgYm9v
bCBwZXJmb3JtSGFzUHJvcGVydHkoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVmYXVsdERlbGV0ZUZ1bmN0aW9uPgogICAg
IGJvb2wgcGVyZm9ybURlbGV0ZShFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIERlZmF1bHREZWxl
dGVGdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMjQzYTM1ZjYxOTg0ZDAxNDRiYjE2YTRhN2Q1Yjk0YWNj
MWNjOGZhNi4uZDIzNzg5YmMwMzk1NmY0OGNkYThiYmU3M2M5NjNlMTBjZDgyMmY1MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cApAQCAtMzEsMTQgKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4
cENvbnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JMYXN0TWF0Y2goRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNP
YmplY3QqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJl
bihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopOworc3RhdGljIEVuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JN
dWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2goRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMZWZ0Q29u
dGV4dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBF
bmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIHRlbXBsYXRlPGludCBOPgotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7CiAKIHN0YXRpYyBib29sIHNldFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHN0YXRpYyBib29sIHNldFJl
Z0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSk7CkBAIC0xNDcsMzcgKzE0NywzNyBAQCBKU1ZhbHVlIFJlZ0V4cENvbnN0cnVj
dG9yOjpnZXRSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjKQogfQogCiB0ZW1wbGF0ZTxpbnQg
Tj4KLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0Vu
Y29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KS0+Z2V0QmFja3JlZihleGVjLCBOKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0
cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKS0+aW5wdXQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ck11bHRpbGluZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1JlZ0V4cENv
bnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+bXVsdGlsaW5lKCkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2goRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQor
RW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2goRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDApKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhw
Q29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29u
c3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhw
Q29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRMYXN0UGFyZW4oZXhl
YykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpT
T2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRMZWZ0Q29udGV4dChleGVjKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KS0+Z2V0UmlnaHRDb250ZXh0KGV4ZWMpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWZyb20tc2NvcGUtZHluYW1pYy1vbnRvLXByb3h5Lmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtZnJvbS1zY29wZS1keW5h
bWljLW9udG8tcHJveHkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E3MTU2MWVmMmI2MWY1ZjhiMzc0OGM4Yjg4
NTA1OTQ1MjQ3YzU5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZ2V0LWZyb20tc2NvcGUtZHluYW1pYy1vbnRvLXByb3h5LmpzCkBAIC0wLDAg
KzEsMTA2IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYg
KGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIHZhbHVl
OiAke1N0cmluZyhhY3R1YWwpfWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBl
cnJvck1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3JUaHJvd24gPSBmYWxzZTsKKyAgICB2YXIgZXJy
b3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0K
KyAgICBpZiAoIWVycm9yVGhyb3duKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCB0aHJv
d24nKTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gZXJyb3JNZXNzYWdlKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcoZXJyb3IpfWApOworfQorCisvLyBM
TEludCBzbG93IHBhdGggb3BlcmF0aW9uLgorc2hvdWxkVGhyb3coZnVuY3Rpb24gKCkgeworICAg
IHZhciB0YXJnZXQgPSB7fTsKKyAgICB2YXIgaGFuZGxlciA9IHsKKyAgICAgICAgaGFzOiBmdW5j
dGlvbiAocmVjZWl2ZXIsIG5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBuYW1l
ID09PSAnaSc7CisgICAgICAgIH0sCisgICAgICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwgbmFt
ZSwgcmVjZWl2ZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChuYW1lID09PSAnaScpCisg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJORyIpOworICAgICAgICAgICAgcmV0dXJu
IDQyOworICAgICAgICB9CisgICAgfTsKKyAgICB2YXIgcHJveHkgPSBuZXcgUHJveHkodGFyZ2V0
LCBoYW5kbGVyKTsKKyAgICB3aXRoIChwcm94eSkgeworICAgICAgICBpOworICAgIH0KK30sIGBF
cnJvcjogTkdgKTsKKworLy8gQmFzZWxpbmUgSklUIG9wZXJhdGlvbi4KK3Nob3VsZFRocm93KGZ1
bmN0aW9uICgpIHsKKyAgICB2YXIgZmxhZyA9IGZhbHNlOworICAgIHZhciB0YXJnZXQgPSB7fTsK
KyAgICB2YXIgaGFuZGxlciA9IHsKKyAgICAgICAgaGFzOiBmdW5jdGlvbiAocmVjZWl2ZXIsIG5h
bWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBuYW1lID09PSAnaSc7CisgICAgICAg
IH0sCisgICAgICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwgbmFtZSwgcmVjZWl2ZXIpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmIChuYW1lID09PSAnaScgJiYgZmxhZykKKyAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIk5HIik7CisgICAgICAgICAgICByZXR1cm4gNDI7CisgICAg
ICAgIH0KKyAgICB9OworICAgIHZhciBwcm94eSA9IG5ldyBQcm94eSh0YXJnZXQsIGhhbmRsZXIp
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgd2l0aCAocHJv
eHkpIHsKKyAgICAgICAgICAgIGk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT09IDFlMykK
KyAgICAgICAgICAgIGZsYWcgPSB0cnVlOworICAgIH0KK30sIGBFcnJvcjogTkdgKTsKKworLy8g
REZHIEpJVCBvcGVyYXRpb24uCit2YXIgdGhyb3duID0gbnVsbDsKK3RyeSB7CisgICAgKCgpID0+
IHsKKyAgICAgICAgdmFyIGZsYWcgPSBmYWxzZTsKKyAgICAgICAgdmFyIHRhcmdldCA9IHsKKyAg
ICAgICAgICAgIF9fcHJvdG9fXzogbnVsbAorICAgICAgICB9OworICAgICAgICB2YXIgaGFuZGxl
ciA9IHsKKyAgICAgICAgICAgIGhhczogZnVuY3Rpb24gKHJlY2VpdmVyLCBuYW1lKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBuYW1lID09PSAnYXJndW1lbnRzJzsKKyAg
ICAgICAgICAgIH0sCisKKyAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwgbmFtZSwg
cmVjZWl2ZXIpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdh
cmd1bWVudHMnICYmIGZsYWcpCisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
TkciKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gNDI7CisgICAgICAgICAgICB9CisgICAgICAg
IH07CisgICAgICAgIHZhciBwcm94eSA9IG5ldyBQcm94eSh0YXJnZXQsIGhhbmRsZXIpOworICAg
ICAgICBwcm94eS5fX3Byb3RvX18gPSBudWxsOworICAgICAgICBPYmplY3QucHJvdG90eXBlLl9f
cHJvdG9fXyA9IHsKKyAgICAgICAgICAgIF9fcHJvdG9fXzogcHJveHksCisgICAgICAgIH07Cisg
ICAgICAgICgoKSA9PiB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytp
KSB7CisgICAgICAgICAgICAgICAgYXJndW1lbnRzOworICAgICAgICAgICAgICAgIGlmIChpID09
PSAoMWU0IC0gMikpCisgICAgICAgICAgICAgICAgICAgIGZsYWcgPSB0cnVlOworICAgICAgICAg
ICAgfQorICAgICAgICB9KSgpOworICAgIH0pKCk7Cit9IGNhdGNoIChlKSB7CisgICAgdGhyb3du
ID0gZTsKK30KK09iamVjdC5wcm90b3R5cGUuX19wcm90b19fID0gbnVsbDsKK3Nob3VsZEJlKFN0
cmluZyh0aHJvd24pLCBgRXJyb3I6IE5HYCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL29wZXJhdGlvbi1pbi10aHJvdy1lcnJvci5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvb3BlcmF0aW9uLWluLXRocm93LWVycm9yLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYzYTNkMDI0ZWY4YWY1MjQ0ZGFkNzFjMTVlY2NjNGRmMGZiYmY0NjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL29wZXJhdGlv
bi1pbi10aHJvdy1lcnJvci5qcwpAQCAtMCwwICsxLDI4IEBACisoZnVuY3Rpb24gdGVzdENhc2Uo
KSB7CisgICAgdmFyIHRhcmdldCA9IHt9OworICAgIHZhciBoYW5kbGVyID0geworICAgICAgICBo
YXM6IGZ1bmN0aW9uICh0YXJnZXQsIG5hbWUpIHsKKyAgICAgICAgICAgIGlmIChuYW1lID09PSAn
bmcnKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbmcnKTsKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH07CisgICAgdmFyIHByb3h5ID0gbmV3IFBy
b3h5KHRhcmdldCwgaGFuZGxlcik7CisgICAgdmFyIGJhc2UgPSB7CisgICAgICAgIF9fcHJvdG9f
XzogcHJveHkKKyAgICB9OworICAgIChmdW5jdGlvbiBhKCkgeworICAgICAgICB2YXIgdGhyb3du
OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgICAgICAgICB0
aHJvd24gPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAnbmcnIGlu
IGJhc2U7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgdGhyb3du
ID0gZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRocm93biA9PT0gbnVsbCkK
KyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYG5vdCB0aHJvd24gJHtpfWApOworICAg
ICAgICB9CisgICAgfSgpKTsKK30oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3Byb3h5LWFuZC1qc29uLXN0cmluZ2lmeS5qcyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHktYW5kLWpzb24tc3RyaW5naWZ5LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE0MzdlYmMzN2Q5OGRjZmFlN2QzMmMzNjhkMWY5ZTUwMGYzZWI1NGMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Byb3h5LWFuZC1q
c29uLXN0cmluZ2lmeS5qcwpAQCAtMCwwICsxLDI4IEBACitmdW5jdGlvbiBzaG91bGRUaHJvdyhm
dW5jLCBlcnJvck1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3JUaHJvd24gPSBmYWxzZTsKKyAgICB2
YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKKyAgICAgICAgZXJyb3IgPSBlOwor
ICAgIH0KKyAgICBpZiAoIWVycm9yVGhyb3duKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25v
dCB0aHJvd24nKTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gZXJyb3JNZXNzYWdlKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcoZXJyb3IpfWApOworfQor
CisvLyBUaGlzIHRlc3QganVzdCBlbnN1cmUgdGhhdCBwcm94eS5bW0dldF1dJ3MgdGhyb3dpbmcg
d29ya3MgY29ycmVjdGx5IHdpdGggSlNPTi5zdHJpbmdpZnkuCit2YXIgcHJveHkgPSBuZXcgUHJv
eHkoWzAsIDEsIDIsIDNdLCB7CisgICAgZ2V0OiBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lKQorICAg
IHsKKyAgICAgICAgaWYgKG5hbWUgPT09ICcyJykKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cignbmcnKTsKKyAgICAgICAgcmV0dXJuIHRhcmdldFtuYW1lXTsKKyAgICB9Cit9KTsKKworc2hv
dWxkVGhyb3coKCkgPT4geworICAgIEpTT04uc3RyaW5naWZ5KHByb3h5KTsKK30sIGBFcnJvcjog
bmdgKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJv
eHktYW5kLXR5cGVkLWFycmF5LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9wcm94eS1hbmQtdHlwZWQtYXJyYXkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ1YzBkNjdjY2Q5NWRmZmIx
NTkzMjNjYmE4MDRjNzI4MzMwNTI2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHktYW5kLXR5cGVkLWFycmF5LmpzCkBAIC0wLDAgKzEs
MTcgQEAKK3ZhciBhcnJheSA9IFswLCAxLCAyLCAzXTsKK3ZhciBwcm94eSA9IG5ldyBQcm94eShh
cnJheSwgeworICAgIGdldDogZnVuY3Rpb24gKHRhcmdldCwgbmFtZSwgcmVjZWl2ZXIpCisgICAg
eworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoU3RyaW5nKG5hbWUpKTsKKyAgICB9Cit9KTsKK3Zh
ciB0aHJvd24gPSBudWxsOwordHJ5IHsKKyAgICB2YXIgdHlwZWRBcnJheSA9IG5ldyBVaW50OEFy
cmF5KHByb3h5KTsKK30gY2F0Y2ggKGVycm9yKSB7CisgICAgdGhyb3duID0gZXJyb3I7Cit9Citp
ZiAodGhyb3duID09PSBudWxsKQorICAgIHRocm93IG5ldyBFcnJvcihgbm90IHRocm93bmApOwor
aWYgKFN0cmluZyh0aHJvd24pICE9PSBgRXJyb3I6IFN5bWJvbChTeW1ib2wuaXRlcmF0b3IpYCkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcodGhyb3duKX1gKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcHJveHktanNvbi1w
YXRoLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS1qc29uLXBh
dGguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTFkYjkxNTI0OTFmNDM1MTU5YjMxYzVkNTYwZmRlZGVmNzExMGMx
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
cHJveHktanNvbi1wYXRoLmpzCkBAIC0wLDAgKzEsMjUgQEAKK3ZhciB0YXJnZXQgPSB7IF9fcHJv
dG9fXzogbnVsbCB9OwordmFyIGhhbmRsZXIgPSB7CisgICAgZ2V0OiBmdW5jdGlvbiAoKQorICAg
IHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBuZ2ApOworICAgIH0KK307CisKK3ZhciB0aHJv
d24gPSBudWxsOwordmFyIGhlbGxvID0gNDI7CisvLyBBcyBhIHJlc3VsdCwgZ2xvYmFsIG9iamVj
dCBhdXRvbWF0aWNhbGx5IGluaGVyaXQgdGhpcyBwcm94eS4KK09iamVjdC5wcm90b3R5cGUuX19w
cm90b19fID0geworICAgIF9fcHJvdG9fXzogbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcikKK307
CisKK3RyeSB7CisgICAgbG9hZFN0cmluZyhgaGVsbG8gPSB7ImhlbGxvIjoid29ybGQifTtwcm94
eS5vayA9IHt9YCk7Cit9IGNhdGNoIChlcnJvcikgeworICAgIHRocm93biA9IGVycm9yOworfQor
T2JqZWN0LnByb3RvdHlwZS5fX3Byb3RvX18gPSBudWxsOworaWYgKHRocm93biA9PT0gbnVsbCkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoYG5vdCB0aHJvd25gKTsKK2lmIChTdHJpbmcodGhyb3duKSAh
PT0gYEVycm9yOiBuZ2ApCisgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6ICR7U3RyaW5n
KHRocm93bil9YCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3Byb3h5LXdpdGgtc3RhdGVtZW50LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9wcm94eS13aXRoLXN0YXRlbWVudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTIwMTMzZmIzYjRm
MDYyZTNlN2QyYTA3YzYxNjNkYzA3MjZhMTM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wcm94eS13aXRoLXN0YXRlbWVudC5qcwpAQCAtMCww
ICsxLDI2IEBACisoZnVuY3Rpb24gKCkgeworICAgIHZhciB0YXJnZXQgPSB7fTsKKyAgICB2YXIg
aGFuZGxlciA9IHsKKyAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKQorICAgICAgICB7CisgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoJ25nJyk7CisgICAgICAgIH0KKyAgICB9OworICAgIHZhciBh
cnJheSA9IHsKKyAgICAgICAgaGVsbG86IDQyCisgICAgfTsKKyAgICB2YXIgcHJveHkgPSBuZXcg
UHJveHkodGFyZ2V0LCBoYW5kbGVyKTsKKyAgICBhcnJheVtTeW1ib2wudW5zY29wYWJsZXNdID0g
cHJveHk7CisgICAgdmFyIHRocm93biA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgd2l0aCAo
YXJyYXkpIHsKKyAgICAgICAgICAgIGhlbGxvOworICAgICAgICB9CisgICAgfSBjYXRjaCAoZXJy
b3IpIHsKKyAgICAgICAgdGhyb3duID0gZXJyb3I7CisgICAgfQorICAgIGlmICh0aHJvd24gPT09
IG51bGwpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgbm90IHRocm93bmApOworICAgIGlmIChT
dHJpbmcodGhyb3duKSAhPT0gYEVycm9yOiBuZ2ApCisgICAgICAgIHRocm93IG5ldyBFcnJvcihg
YmFkIGVycm9yOiAke1N0cmluZyh0aHJvd24pfWApOworfSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3Bw
CmluZGV4IGRmZjNkZmZmNzk4ODRmMDA3Y2E2OTY1ZjQ1MDQzMjFjNGM3M2U0NTYuLjYyY2NkMTc4
ZGIzYmUyMWFhYjNiYWJjZDc0MzI4YTFkYzFkY2JkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcApA
QCAtOTUsMTMgKzk1LDcgQEAgYm9vbCBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmdldEFs
Z29yaXRobUlkZW50aWZpZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHUKIAogc3RhdGljIEpTVmFs
dWUgZ2V0UHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBjb25zdCBj
aGFyKiBuYW1lKQogewotICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50aWZpZXI6OmZy
b21TdHJpbmcoZXhlYywgbmFtZSk7Ci0gICAgUHJvcGVydHlTbG90IHNsb3Qob2JqZWN0LCBQcm9w
ZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKLQotICAgIGlmIChvYmplY3QtPmdl
dFByb3BlcnR5U2xvdChleGVjLCBpZGVudGlmaWVyLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIHNs
b3QuZ2V0VmFsdWUoZXhlYywgaWRlbnRpZmllcik7Ci0KLSAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKKyAgICByZXR1cm4gb2JqZWN0LT5nZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhl
eGVjLCBuYW1lKSk7CiB9CiAKIHN0YXRpYyBib29sIGdldEhhc2hBbGdvcml0aG0oSlNEaWN0aW9u
YXJ5JiBkaWN0aW9uYXJ5LCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyJiByZXN1bHQsIEhhc2hS
ZXF1aXJlbWVudCBpc1JlcXVpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmcuaAppbmRleCBmOWNhM2JmMmYwMjlkZWFhYjFhZDhkMjFiN2E2OWYyOGU3YzZjMDZmLi45
MDMyNmYxN2I0ODBlNTMwMWM0Y2IyZmI1YWVjYzIwMjQwMDE1NjI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtMzA1LDcgKzMwNSw3IEBAIFN0cmluZyBw
cm9wZXJ0eU5hbWVUb1N0cmluZyhKU0M6OlByb3BlcnR5TmFtZSk7CiBBdG9taWNTdHJpbmcgcHJv
cGVydHlOYW1lVG9BdG9taWNTdHJpbmcoSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBET01DbGFzcz4gY29uc3QgSlNDOjpIYXNoVGFibGVWYWx1ZSogZ2V0U3RhdGljVmFs
dWVTbG90RW50cnlXaXRob3V0Q2FjaGluZyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlO
YW1lKTsKLXRlbXBsYXRlPEpTQzo6TmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+IEpTQzo6RW5j
b2RlZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3Qq
KTsKK3RlbXBsYXRlPEpTQzo6TmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+IEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiAvLyBJbmxpbmUgZnVu
Y3Rpb25zIGFuZCB0ZW1wbGF0ZSBkZWZpbml0aW9ucy4KIApAQCAtNzg0LDcgKzc4NCw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIGNvbnN0IEpTQzo6SGFzaFRhYmxlVmFsdWUqIGdldFN0YXRpY1ZhbHVl
U2xvdEVudHJ5V2l0aG91dENhY2hpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXRlbXBsYXRl
PEpTQzo6TmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+IEpTQzo6RW5j
b2RlZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIEpTQzo6SlNPYmplY3QqKQordGVtcGxhdGU8SlNDOjpOYXRpdmVGdW5jdGlvbiBuYXRpdmVG
dW5jdGlvbiwgaW50IGxlbmd0aD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBub25DYWNoaW5nU3RhdGlj
RnVuY3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNDOjpKU1Zh
bHVlOjplbmNvZGUoSlNDOjpKU0Z1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLCBsZW5ndGgsIHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCksIG5h
dGl2ZUZ1bmN0aW9uKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggN2QwMmJjMWQ4ODhkNzM5ZTMzNjExZjg3NWFmMTI3OWFl
ZDNiMmM3Yi4uNmM4ZmE0M2U1YWE1MGM0MTYwNzcxMTYwZjg2OTYwNWM2YWU3MjcwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAt
NjQsNyArNjQsNyBAQCB2b2lkIEpTRE9NV2luZG93Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihT
bG90VmlzaXRvciYgdmlzaXRvcikKIH0KIAogI2lmIEVOQUJMRShVU0VSX01FU1NBR0VfSEFORExF
UlMpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dXZWJLaXQoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93V2ViS2l0KEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNET01XaW5k
b3cqIGNhc3RlZFRoaXMgPSB0b0pTRE9NV2luZG93KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRv
dyhleGVjLCBjYXN0ZWRUaGlzLT53cmFwcGVkKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRGljdGlvbmFyeS5jcHAKaW5kZXggZjI3YjBjNjAxNDRiNGMwZDdiNjU3NDczYzY2MmQz
MzI0YWVmNjE5Mi4uZDBkYjQ0MGY0OWJiMWU1YjdiNWI4ZTc1MzUzNWQyODg1NGQ3YjQ4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCkBAIC03MywxOSAr
NzMsMTUgQEAgSlNEaWN0aW9uYXJ5OjpHZXRQcm9wZXJ0eVJlc3VsdCBKU0RpY3Rpb25hcnk6OnRy
eUdldFByb3BlcnR5KGNvbnN0IGNoYXIqIHByb3BlcnQKIHsKICAgICBBU1NFUlQoaXNWYWxpZCgp
KTsKICAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKG1f
ZXhlYywgcHJvcGVydHlOYW1lKTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChtX2luaXRpYWxpemVy
T2JqZWN0LmdldCgpLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKLQot
ICAgIGlmICghbV9pbml0aWFsaXplck9iamVjdC5nZXQoKS0+Z2V0UHJvcGVydHlTbG90KG1fZXhl
YywgaWRlbnRpZmllciwgc2xvdCkpCi0gICAgICAgIHJldHVybiBOb1Byb3BlcnR5Rm91bmQ7Ci0K
LSAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
blRocm93bjsKLQotICAgIGZpbmFsUmVzdWx0ID0gc2xvdC5nZXRWYWx1ZShtX2V4ZWMsIGlkZW50
aWZpZXIpOworICAgIGJvb2wgcHJvcGVydHlGb3VuZCA9IG1faW5pdGlhbGl6ZXJPYmplY3QuZ2V0
KCktPmdldFByb3BlcnR5U2xvdChtX2V4ZWMsIGlkZW50aWZpZXIsIFsmXSAoYm9vbCBwcm9wZXJ0
eUZvdW5kLCBQcm9wZXJ0eVNsb3QmIHNsb3QpIC0+IGJvb2wgeworICAgICAgICBpZiAoIXByb3Bl
cnR5Rm91bmQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGZpbmFsUmVzdWx0
ID0gc2xvdC5nZXRWYWx1ZShtX2V4ZWMsIGlkZW50aWZpZXIpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9KTsKICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvblRocm93bjsKLQotICAgIHJldHVybiBQcm9wZXJ0eUZvdW5kOworICAgIHJl
dHVybiBwcm9wZXJ0eUZvdW5kID8gUHJvcGVydHlGb3VuZCA6IE5vUHJvcGVydHlGb3VuZDsKIH0K
IAogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgdmFsdWUsIGJvb2wmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IDMwZWRhZjdlY2M5ODcy
ZDRlZDI5ZWNjYjNiY2QyNzBkYTEwNjc5NjAuLjI4NjUzNzJlOWFlNzFmNGE1Y2E1MDRlZTA4NDk1
NWFiNWViMTRkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAtOTQsNyArOTQsNyBAQCBKU09iamVjdCog
cGx1Z2luU2NyaXB0T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNIVE1MRWxlbWVudCoganNIVE1M
RWxlbWVudCkKICAgICByZXR1cm4gaW5zdGFuY2UtPmNyZWF0ZVJ1bnRpbWVPYmplY3QoZXhlYyk7
CiB9CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIHBsdWdpbkVsZW1lbnRQcm9wZXJ0
eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKIAogICAgIEpTSFRNTEVsZW1lbnQqIHRoaXNPYmplY3Qg
PSBqc0R5bmFtaWNDYXN0PEpTSFRNTEVsZW1lbnQqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1l
bnRGdW5jdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVu
dEZ1bmN0aW9ucy5oCmluZGV4IGM2NGVkYmYxZTIxYTUyMDJkMzc1ZjE0NzVjMzU2YWM3MmMyODY4
YWMuLjE4NTEyYmQ0NGQ2YjNmN2VmN2JkODA5YzdmMDMwZmM4ZGZiOTA2MDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5o
CkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBKU0M6OkJpbmRpbmdz
OjpJbnN0YW5jZSogcGx1Z2luSW5zdGFuY2UoSFRNTEVsZW1lbnQmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBKU0M6OkpTT2JqZWN0KiBwbHVnaW5TY3JpcHRPYmplY3QoSlNDOjpFeGVjU3RhdGUqLCBK
U0hUTUxFbGVtZW50Kik7CiAKLSAgICBKU0M6OkVuY29kZWRKU1ZhbHVlIHBsdWdpbkVsZW1lbnRQ
cm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CisgICAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBw
bHVnaW5FbGVtZW50UHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAgICAgYm9vbCBwbHVnaW5FbGVtZW50Q3VzdG9t
R2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlTbG90JiwgSlNIVE1MRWxlbWVudCopOwogICAgIGJvb2wgcGx1Z2luRWxlbWVu
dEN1c3RvbVB1dChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFs
dWUsIEpTSFRNTEVsZW1lbnQqLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYsIGJvb2wmIHB1dFJlc3Vs
dCk7CiAgICAgSlNDOjpDYWxsVHlwZSBwbHVnaW5FbGVtZW50R2V0Q2FsbERhdGEoSlNIVE1MRWxl
bWVudCosIEpTQzo6Q2FsbERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZjNkYzk1MjQxYTc4OTI4NTQzYjhmNjA5
NjM3MzM3Zjc1MGM4MmE5Ni4uNTJhN2JiNThkZmU2NGNkZDM2Y2QzNzc1MzBmZDcwMGI0MWZlZjBj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KQEAgLTE1MTcsNyArMTUxNyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAg
ICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29u
ZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRp
b25hbFN0cmluZzsKICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJO
YW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNP
YmplY3QqKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5j
b2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHko
JGF0dHJpYnV0ZSkpIHsKICAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRl
U2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKICAgICAgICAg
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiYm9vbCAke3NldHRlcn0oSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwpAQCAt
MjA3OSw3ICsyMDc5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
IG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlv
bmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3Ry
aW5nOwogICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGlu
dGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTtc
biIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVl
ICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTtcbiIpOwogICAgICAgICAgICAgaWYgKCFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUp
KSB7CiAgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUo
JGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJib29sICR7c2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CkBAIC0yMDg5LDcgKzIwODks
NyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAKICAgICAgICAgaWYgKE5l
ZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkgewogICAgICAgICAgICAgbXkgJGdl
dHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7Ci0gICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6
SlNPYmplY3QqKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkVu
Y29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIpOwogICAgICAgICB9CiAKICAgICAgICAgbXkgJGNv
bnN0cnVjdG9yRnVuY3Rpb25OYW1lID0gInNldEpTIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0
cnVjdG9yIjsKQEAgLTI1NDksNyArMjU0OSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgICAgICBteSAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVy
YXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHthdHRyaWJ1dGVDb25kaXRpb25h
bFN0cmluZ31cbiIpIGlmICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsKIAotICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0o
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUs
IEpTT2JqZWN0KilcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVk
SlNWYWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAie1xuIik7CiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVO
VVNFRF9QQVJBTShzdGF0ZSk7XG4iKTsKQEAgLTI3NTIsNyArMjc1Miw3IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIGlmIChOZWVkc0NvbnN0cnVjdG9yUHJvcGVydHkoJGlu
dGVyZmFjZSkpIHsKICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZSA9ICJq
cyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0o
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUs
IEpTT2JqZWN0KilcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVk
SlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDwke2Ns
YXNzTmFtZX1Qcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0
KSlcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTSW50ZXJmYWNlTmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcAppbmRleCA3MmY3NDlhM2QwMTZlNzM5ZmE2ZmJl
NDZhYjk3MzVkYzNlNWYxOWJkLi40YTJiYzU1Yjk2NzIwMDE2MWUxZDRmODllMDU3YTA0MmE5YjNh
ZjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNJbnRlcmZhY2VOYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc0ludGVy
ZmFjZU5hbWVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzSW50ZXJmYWNlTmFtZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU0ludGVyZmFjZU5hbWVDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwogCiBjbGFzcyBKU0ludGVyZmFjZU5hbWVQcm90b3R5cGUgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHsKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIEpTSW50ZXJmYWNl
TmFtZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKICAgICB0aGlzT2JqZWN0LT5KU0ludGVy
ZmFjZU5hbWU6On5KU0ludGVyZmFjZU5hbWUoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNJbnRl
cmZhY2VOYW1lQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzSW50ZXJm
YWNlTmFtZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTSW50ZXJmYWNlTmFtZVByb3RvdHlwZSogZG9t
T2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0ludGVyZmFjZU5hbWVQcm90b3R5cGUqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFj
dGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCA0NWM3ZWI5MTQ1OWFmOWMyYmM2MTg0
OGU1MjA5YTZkOTI3NThkNGY1Li45MjAzM2ZjZjIxNjJlMmUyN2UxNjdkOThjYTgzZThjNWE0MTAz
ZjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtNDAsOCArNDAsOCBA
QCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0QWN0aXZlRE9NT2JqZWN0
UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzcwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3Qq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3Io
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwg
SlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmpl
Y3RFeGNpdGluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVj
dENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwogCiBjbGFzcyBKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpK
U05vbkZpbmFsT2JqZWN0IHsKQEAgLTE0OSw3ICsxNDksNyBAQCBib29sIEpTVGVzdEFjdGl2ZURP
TU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
c3RhdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZl
RE9NT2JqZWN0RXhjaXRpbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RB
Y3RpdmVET01PYmplY3RFeGNpdGluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsK
ICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE2Niw3ICsxNjYsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RFeGNpdGluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9i
amVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVE
T01PYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5
cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90
eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9t
T2JqZWN0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29u
c3RydWN0b3IuY3BwCmluZGV4IDVhYzcwYzk5Nzc5NDJlYjFhZTFkMzM3MDkzNDg1MjRlMzU5YWI2
ZWYuLmRkY2ZkMmYwYjgwNzc2YzdmM2FjODQ5ZjM1YzJhOGI0NDBjMmZlNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhK
U0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcApAQCAt
MzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2xhc3NX
aXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0Q2xhc3NX
aXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RDbGFz
c1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmlu
YWxPYmplY3QgewpAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgSlNUZXN0Q2xhc3NXaXRoSlNCdWls
dGluQ29uc3RydWN0b3I6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAgICAgdGhpc09iamVj
dC0+SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I6On5KU1Rlc3RDbGFzc1dpdGhK
U0J1aWx0aW5Db25zdHJ1Y3RvcigpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKiBkb21PYmpl
Y3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJv
dG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
ZG9tT2JqZWN0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29u
c3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwCmluZGV4IDVlZjljMTU4MjNjYjBjNTBi
YzdmNmU4NWE4ZGE2NzNhM2FlNzM4NWMuLmEyMGRjNDg4NTc2YzM5OGY2OTcwNDBiNTVkNGNkNWM2
YTFhNTU3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNv
bnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpT
Qzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tQ29uc3RydWN0
b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0Q3VzdG9t
Q29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBK
U1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZSA6IHB1
YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewpAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgSlNU
ZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3Q6OmRlc3Ryb3koSlNDOjpK
U0NlbGwqIGNlbGwpCiAgICAgdGhpc09iamVjdC0+SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRo
Tm9JbnRlcmZhY2VPYmplY3Q6On5KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFj
ZU9iamVjdCgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDdXN0b21Db25zdHJ1Y3Rvcldp
dGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0UHJv
dG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9y
V2l0aE5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXIuY3BwCmluZGV4IDYyNzk0OTk5OGUxYWNlM2Y4NDQ2NWM5YzgzNGE1YjczODE0
ZGFiZDYuLjZmM2IwMzAyNmViMWU3MTNkNTMxY2U3ZWExZDdjNzAzOGI1NzlkZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21O
YW1lZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcApAQCAtMzksNyArMzksNyBAQCBKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5
cGVGdW5jdGlvbkFub3RoZQogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29s
IHNldEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0
IHsKQEAgLTE1OCw3ICsxNTgsNyBAQCBib29sIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpnZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdAogICAgIHJldHVy
biBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRl
eCwgc2xvdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEN1c3RvbU5hbWVkR2V0
dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUq
IGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5
cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21P
YmplY3QpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDliN2U2YTdk
MzBhMGRhOTliNzE0YTNmYmMxNzUxNTQ5YmIxNDU1MTAuLjc3ODNlMDQzYzc4NjQ1YzMxOTIxZTk2
NDk0NjAzNGQ5Y2FiYWEyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAK
QEAgLTM2LDEyICszNiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjEoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpK
U09iamVjdCopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0
cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0
cnVjdG9yQXR0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JB
dHRyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKICNpZiBFTkFCTEUoU1BFQ0lBTF9FVkVOVCkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
IGJvb2wgc2V0SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpT
VGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0IHsKQEAgLTE3Niw3ICsxNzYsNyBAQCB2b2lkIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmRl
c3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAgICAgdGhpc09iamVjdC0+SlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvcjo6fkpTVGVzdEV2ZW50Q29uc3RydWN0b3IoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsK
ICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE5MSw3ICsxOTEsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpcwogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3Ry
dWN0b3JBdHRyMihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1
Y3RvckF0dHIyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFN
KHRoaXNWYWx1ZSk7CkBAIC0yMDcsNyArMjA3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0RXZl
bnRDb25zdHJ1Y3RvckF0dHIyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXMK
IAogCiAjaWYgRU5BQkxFKFNQRUNJQUxfRVZFTlQpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVu
dENvbnN0cnVjdG9yQXR0cjMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50
Q29uc3RydWN0b3JBdHRyMyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMjIzLDcgKzIyMyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzCiAKICNlbmRpZgogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9y
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3Ry
dWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBl
KiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5
cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21P
YmplY3QpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggNzg4MTNiM2MxMDJmNjY2NTU5
ZGFjNTQ3OTgzYjE2OGE5MmM5MjU0NC4uZDA1NDVmZWYxMDJiY2U2NzY4ZGMzY2NlZGY1MzcyNTBh
YjM5ZDU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC00Miw3ICs0Miw3IEBAIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlw
ZUZ1bmN0aW9uSXRlbShKU0M6OkV4CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNU
ZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RFdmVudFRhcmdldFBy
b3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewpAQCAtMTU4LDcgKzE1OCw3
IEBAIGJvb2wgSlNUZXN0RXZlbnRUYXJnZXQ6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzCiAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rlc3RF
dmVudFRhcmdldFByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVu
dFRhcmdldFByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWRvbU9iamVjdCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCmluZGV4IDI0MzhkNTg5
ODk4YzE4ZjMyZjM4ZDIwNmNkOWY0NTFkMWJhNzBlMTcuLjVkM2ExZjhiMGU5OTY1MTAxZDE3ODFh
NzQwMWQxNmMxNzg3MWNiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCkBAIC0zNCw4ICszNCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbk5hbWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbk5hbWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RFeGNlcHRpb25Db25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGUgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHsKQEAgLTE0MSw3ICsxNDEsNyBAQCBib29sIEpTVGVzdEV4Y2Vw
dGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3Rh
dGUsIFBybwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RXhj
ZXB0aW9uTmFtZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uTmFt
ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFs
dWUpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbk5h
bWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQCiB9CiAKIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0Vu
Y29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdEV4
Y2VwdGlvblByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFeGNlcHRp
b25Qcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFkb21PYmplY3QpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3Bw
CmluZGV4IGY4ZjNkYTA0ZDAxYTMzOWFiMTU2N2NjMzBmMDQwNzIwZjBiYzFlMjQuLjIwYTUwZjQ2
MjYzNjI1NjlhOGYwNWY3NTg2YWUxZjhkZmVmMzc3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZVByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewpAQCAt
MTE1LDcgKzExNSw3IEBAIHZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6ZGVzdHJveShK
U0M6OkpTQ2VsbCogY2VsbCkKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlOjp+SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFs
T2JqZWN0LmNwcAppbmRleCAxMzcwOTZmMDQ2NzA4ZTE5MjkyMDBkNTA5NmE3ZjE2MzllZmU4YTIw
Li40Zjc3ZjhhNDZiMDhmNmVlNmJkZjMyMTM4ZThkMzNiNDllYjM3ODAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
R2xvYmFsT2JqZWN0LmNwcApAQCAtNDUsMTMgKzQ1LDEzIEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEF0
UnVuCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RSZWd1bGFyQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogdHlwZWRlZiBKU0RPTUNvbnN0cnVjdG9y
Tm90Q29uc3RydWN0YWJsZTxKU1Rlc3RHbG9iYWxPYmplY3Q+IEpTVGVzdEdsb2JhbE9iamVjdENv
bnN0cnVjdG9yOwpAQCAtMTU0LDcgKzE1NCw3IEBAIGJvb2wgSlNUZXN0R2xvYmFsT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFJl
Z3VsYXJBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFJlZ3VsYXJBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE3MCw3ICsxNzAsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbAogCiAKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotRW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQor
RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFs
dWUpOwpAQCAtMTg2LDcgKzE4Niw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jCiAKICNlbmRp
ZgogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgSlNUZXN0R2xvYmFsT2JqZWN0UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdEdsb2JhbE9iamVjdFByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmlu
ZGV4IDk0Yzc2MGY4ZDgxZjJmY2UyNzhjMzU0MWU3ODA4MTIwOTI4MjgxY2QuLjc3YjM4MWE0NGQy
YTNjMDRkMDc4ZDUxNTBhMjYwOTllNmZiNjE3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBA
IC03OCw1MCArNzgsNTAgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBwbGVtZW50YWwKIC8vIEF0dHJpYnV0ZXMK
IAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckltcGxlbWVudHNTdGF0aWNS
ZWFkT25seUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvckltcGxlbWVudHNTdGF0aWNSZWFkT25seUF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3RhdGljQXR0
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
LCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9ySW1wbGVtZW50c1N0YXRpY0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9ySW1wbGVtZW50c1N0YXRpY0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25k
aXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIxKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogI2VuZGlmCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVz
dEludGVyZmFjZUltcGxlbWVudHNTdHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlSW1wbGVtZW50c1N0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNl
SW1wbGVtZW50c1N0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5B
QkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBs
ZW1lbnRzTm9kZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZUltcGxlbWVudHNOb2RlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRz
Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3Vw
cGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFk
T25seUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25k
aXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JT
dXBwbGVtZW50YWxTdGF0aWNBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9v
bCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIxKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6
SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVu
dGFsU3RyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxT
dHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
U3VwcGxlbWVudGFsU3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3Ry
MihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwg
SlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBw
bGVtZW50YWxTdHIzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CiBib29sIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNl
bmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwogYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKQEAg
LTQwOSw3ICs0MDksNyBAQCB2b2lkIEpTVGVzdEludGVyZmFjZTo6ZGVzdHJveShKU0M6OkpTQ2Vs
bCogY2VsbCkKIH0KIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlv
bjIzKQotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRz
U3RhdGljUmVhZE9ubHlBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvckltcGxlbWVudHNTdGF0aWNSZWFkT25seUF0dHIoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTQyMCw3
ICs0MjAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckltcGxl
bWVudHNTdGF0aWNSZWFkT25seUF0dHIoRXhlY1N0YXRlKgogI2VuZGlmCiAKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9ySW1wbGVtZW50c1N0YXRpY0F0dHIoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0Vu
Y29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW1wbGVtZW50c1N0YXRpY0F0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKQEAgLTQzMSw3ICs0MzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3RvckltcGxlbWVudHNTdGF0aWNBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsCiAjZW5kaWYK
IAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjEoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIxKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9Q
QVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC00NDgsNyArNDQ4
LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjEoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGgKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRp
dGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VJbXBsZW1lbnRzU3RyMihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlSW1wbGVtZW50c1N0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTQ2NSw3ICs0NjUsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShD
b25kaXRpb24yMykKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIz
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
LCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3Ry
MyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFs
dWUpOwpAQCAtNDgwLDcgKzQ4MCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUlt
cGxlbWVudHNTdHIzKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoCiAjZW5kaWYK
IAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9Q
QVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC00OTcsNyArNDk3
LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGgKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0cihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3Qq
KQorRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxT
dGF0aWNSZWFkT25seUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVT
RURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTUwOCw3ICs1MDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0cihF
eGVjU3RhdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25k
aXRpb24xMikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxl
bWVudGFsU3RhdGljQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC01MTksNyArNTE5LDcg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxT
dGF0aWNBdHRyKEV4ZWNTdGF0ZSogc3RhdGUKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlv
bjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZh
Y2VTdXBwbGVtZW50YWxTdHIxKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VTdXBwbGVtZW50YWxTdHIxKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC01MzYsNyArNTM2LDcgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShD
b25kaXRpb24xMikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0
cjIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bFN0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhp
c1ZhbHVlKTsKQEAgLTU1Myw3ICs1NTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZh
Y2VTdXBwbGVtZW50YWxTdHIyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQor
RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBV
TlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtNTY4
LDcgKzU2OCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0
cjMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUKICNlbmRpZgogCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC01ODQsNyArNTg0LDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZQogCiAjZW5kaWYKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSogZG9tT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXggNjM2NDhiZDY3ZDdiNmE1
MDg3YTNiMDEyMjNmZTJiNTJjMmJhODJkYy4uM2ZmM2U2Njc2YTEyOGM2NWM0NmJkM2EyMjM1ZTJj
YmZkZjg2MWM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3Bw
CkBAIC0zOCwxMCArMzgsMTAgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVuY3Rpb25UZXMKIAogLy8gQXR0cmli
dXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVz
dEF0dHJpYnV0ZUN1c3RvbShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmpl
Y3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0
QXR0cmlidXRlQ3VzdG9tKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25z
dHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBi
b29sIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3Mg
SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIEpTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3QtPkpTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yOjp+SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IoKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRl
Q3VzdG9tKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE0NSw3ICsxNDUsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20oRXhlY1N0
YXRlKiBzdGF0ZSwgRQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbShFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBV
TlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMTU4
LDcgKzE1OCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVz
dEF0dHJpYnV0ZVJXQ3VzdG9tKEV4ZWNTdGF0ZSogc3RhdGUsCiB9CiAKIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggZWMxMjUxNjI4MTUz
Y2MyMzY1MzRlNWYyMmU2ZjI1YTA2MjNhMTZiZS4uYmM1NmNlNmZjYmE5MjQxNzlkYmYxNTEwZDEw
MjRkMzgxYmY1ZDcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcApAQCAtMzksNyArMzksNyBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZUZ1bmN0aW9uTQogCiAvLyBB
dHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lclByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewpA
QCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6ZGVz
dHJveShKU0M6OkpTQ2VsbCogY2VsbCkKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyOjp+SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcigpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlKiBkb21P
YmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5
cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21P
YmplY3QpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IGM5ZTQxNDll
MGZmNmFiZWZjMDg5ZDBkZjUzNmQ3NjdmZjNlMzRkMDQuLjI5YWIzZGVjODNkMzM0NjRjOGRiZWQ2
OTk3YWNiNjI0YjkwYzA2NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAK
QEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBBdHRyaWJ1dGVzCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpT
Qzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3Io
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKIAogY2xhc3MgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZSA6IHB1YmxpYyBKU0M6
OkpTTm9uRmluYWxPYmplY3QgewpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvcjo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKICAgICB0aGlzT2JqZWN0LT5K
U1Rlc3ROYW1lZENvbnN0cnVjdG9yOjp+SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcigpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCmlu
ZGV4IGNlNGY2NDljNDY0MTZmYWNmN2U5YjE2NDE5NjYwMjU3MTNhMmNlZGMuLjMzMTNkMmRiZTg2
MzE1ODU0NWQzNmEzYTQ4ODlkZWZmN2QxYTI1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKQEAgLTQ0LDkgKzQ0
LDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5
cGVGdW5jdGlvbkZvckVhY2goSlNDOjpFeGVjU3QKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVOYW1lKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0Tm9kZU5hbWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE5vZGVOYW1lKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0
Tm9kZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5vZGVQcm90b3R5cGUgOiBwdWJsaWMg
SlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKQEAgLTEzNSw3ICsxMzUsNyBAQCBKU09iamVjdCogSlNU
ZXN0Tm9kZTo6cHJvdG90eXBlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
ICAgICByZXR1cm4gZ2V0RE9NUHJvdG90eXBlPEpTVGVzdE5vZGU+KHZtLCBnbG9iYWxPYmplY3Qp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlTmFtZShFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0Tm9kZU5hbWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE1MCw3ICsxNTAsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROb2RlTmFtZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZUNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIEpTVGVzdE5vZGVQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
Tm9kZVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWRvbU9iamVjdCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKaW5k
ZXggY2ZjNTlkYTRjNjU2OTA3ZWMwMzAwZjQ0YTlhNjY3MDdlNjQ1YTdiZi4uYWQxNDQ3YmU1MmIy
MWQxNTcwYTU3OWNkMTIzMjAwZTc4N2IwMTAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1p
bmlzdGljLmNwcApAQCAtNDYsMTYgKzQ2LDE2IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlRnVuY3Rpb25Ob25kZXRlCiAK
IC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlz
dGljTm9uZGV0ZXJtaW5pc3RpY1JlYWRvbmx5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljV3JpdGVh
YmxlQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRl
dGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljUmVhZG9ubHlBdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1dyaXRlYWJsZUF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CiBib29sIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljV3JpdGVhYmxl
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0
ZXJtaW5pc3RpY0V4Y2VwdGlvbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY0V4Y2VwdGlvbkF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CiBib29sIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0aW9u
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0
ZXJtaW5pc3RpY0dldHRlckV4Y2VwdGlvbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY0dldHRlckV4
Y2VwdGlvbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlz
dGljR2V0dGVyRXhjZXB0aW9uQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25k
ZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09i
amVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0
ZXJtaW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE5vbmRldGVybWlu
aXN0aWNOb25kZXRlcm1pbmlzdGljU2V0dGVyRXhjZXB0aW9uQXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCop
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3Io
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CiBib29sIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBK
U1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7CkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBKU1Rlc3ROb25kZXRlcm1pbmlzdGljOjpk
ZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3QtPkpTVGVzdE5vbmRldGVy
bWluaXN0aWM6On5KU1Rlc3ROb25kZXRlcm1pbmlzdGljKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljUmVhZG9ubHlBdHRyKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09i
amVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5p
c3RpY1JlYWRvbmx5QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMTc5LDcgKzE3OSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljUmVhZG9ubHlBdHRyKEV4ZWNTdGF0
ZSogc3RhCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRl
dGVybWluaXN0aWNXcml0ZWFibGVBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1dyaXRlYWJsZUF0dHIoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTIx
NCw3ICsyMTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0
ZXJtaW5pc3RpY1dyaXRlYWJsZUF0dHIoRXhlY1N0YXRlKiBzdAogfQogCiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0aW9uQXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwg
SlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVy
bWluaXN0aWNFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0yNDksNyArMjQ5LDcgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNFeGNlcHRpb25BdHRyKEV4
ZWNTdGF0ZSogc3QKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGlj
Tm9uZGV0ZXJtaW5pc3RpY0dldHRlckV4Y2VwdGlvbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljR2V0dGVyRXhjZXB0
aW9uQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0
aGlzVmFsdWUpOwpAQCAtMjg4LDcgKzI4OCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRl
dGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljR2V0dGVyRXhjZXB0aW9uQXR0cihFeGVjU3RhCiB9
CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0
aWNTZXR0ZXJFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RO
b25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0dHIoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAg
LTMyMyw3ICszMjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9u
ZGV0ZXJtaW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0dHIoRXhlY1N0YQogfQogCiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpT
VGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGEwYmM5
ZGIyOGFhNTkxYjBmNDcwMzI5M2IzYjg1ZmQ3MjIxMTczMzMuLjYzMDhjM2ZlNzVmMTU3YzBjMzNi
MmNhZDFiN2QwY2U3NjhjNzk3NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC03MTEsMTczICs3MTEsMTczIEBA
IEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkZvckVhY2goSlNDOjpFeGVjU3RhCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3Qq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OkpTT2JqZWN0Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3Rh
dGljUmVhZE9ubHlMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5TG9uZ0F0dHIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVz
dE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdWJPYmooSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9y
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUs
IEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0
b3JUZXN0U3ViT2JqKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0U3ViT2JqRW5h
YmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RPYmpUZXN0U3ViT2JqRW5h
YmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akVudW1BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
RW51bUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9iakVudW1BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakJ5dGVBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQnl0ZUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9iakJ5dGVBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9jdGV0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9jdGV0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqT2N0
ZXRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpT
T2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wg
c2V0SlNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNs
YW1wZWRTaG9ydEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpDbGFtcGVkU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBK
U0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakVuZm9yY2VSYW5n
ZVNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmpl
Y3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBi
b29sIHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9iakxvbmdBdHRyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2Jq
TG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9u
Z0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
VW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdB
dHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09i
amVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBz
ZXRKU1Rlc3RPYmpTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRl
c3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
VGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBz
ZXRKU1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqTGVu
aWVudFRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuZm9yZ2Vh
YmxlQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0
cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5mb3JnZWFibGVBdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wg
c2V0SlNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqWE1MT2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialhN
TE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3JlYXRlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNP
YmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3JlYXRlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRK
U1Rlc3RPYmpDcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVk
U3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUs
IEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVk
SW50ZWdyYWxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0
ZWRVbnNpZ25lZEludGVncmFsQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWdu
ZWRJbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVk
Qm9vbGVhbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVh
bkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBK
U0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVS
TEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNl
dEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9v
bCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVj
dCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFu
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpT
T2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVS
TEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNpZiBF
TkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpFbmFibGVk
QXRSdW50aW1lQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqRW5h
YmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialR5cGVkQXJyYXlBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqVHlwZWRBcnJheUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialR5cGVkQXJyYXlB
dHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RP
YmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29s
IHNldEpTVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09i
amVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2Vw
dGlvbldpdGhNZXNzYWdlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlv
bldpdGhNZXNzYWdlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9i
alN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24o
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CiBib29sIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmljdFR5cGVDaGVja2luZ0F0dHJpYnV0ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmljdFR5cGVDaGVj
a2luZ0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqU3RyaWN0VHlwZUNoZWNraW5nQXR0cmli
dXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09i
amVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBz
ZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9u
Zm9vKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqT25mb28o
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CiBib29sIHNldEpTVGVzdE9iak9uZm9vKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
ak9ud2Via2l0Zm9vKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqT253ZWJraXRmb28oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9iak9ud2Via2l0Zm9vKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2Jq
ZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJp
YnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0
cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0
aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialdp
dGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNP
YmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3Jp
cHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpT
Qzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1
dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0
YXRlQXR0cmlidXRlUmFpc2VzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRo
U3BhY2VzQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNB
dHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
U2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09i
amVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRz
QW5kQ2FsbFN0YWNrQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1l
bnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCop
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBz
ZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0
aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0
dHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpK
U09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIz
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwogYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24x
KSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rl
c3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9v
bCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3Qq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpT
T2JqZWN0Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakFueUF0dHJpYnV0ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0
ZTEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakFueUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2Jq
QW55QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1
bWVudChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lLCBKU0M6OkpTT2JqZWN0Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak11dGFi
bGVQb2ludChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNv
bnRlbnREb2N1bWVudChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTXV0YWJsZVBvaW50
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwogYm9vbCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpJbW11dGFibGVQb2ludChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqSW1tdXRhYmxl
UG9pbnQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyYXdiZXJyeShKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpT
T2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmF3YmVycnkoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29s
IHNldEpTVGVzdE9ialN0cmF3YmVycnkoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
U3RyaWN0RmxvYXQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpTdHJpY3RGbG9hdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqU3RyaWN0RmxvYXQoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqRGVzY3JpcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpJZChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpJZChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqSWQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqSGFzaChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJl
cGxhY2VhYmxlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqSGFzaChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVwbGFjZWFibGVB
dHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNP
YmplY3QqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmli
dXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUsIEpTQzo6SlNPYmplY3QqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFi
bGVCb29sZWFuQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRG91Ymxl
QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRy
aWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJp
YnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1
dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0
cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0
cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVs
bGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVT
dHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpO
dWxsYWJsZVN0cmluZ1ZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVT
dHJpbmdWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlND
OjpKU09iamVjdCopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRo
UmVzZXJ2ZWRFbnVtVHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRl
V2l0aFJlc2VydmVkRW51bVR5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNl
cnZlZEVudW1UeXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRz
QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9ialB1dEZvcndhcmRzQXR0cmli
dXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVB
dHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
dXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJk
c051bGxhYmxlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29u
c3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CiBib29sIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVz
dE9ialByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewpAQCAtMTM3NSw3
ICsxMzc1LDcgQEAgYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW4KICAgICByZXR1cm4gQmFzZTo6Z2V0
T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCop
CitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNF
RF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0xMzkwLDcg
KzEzOTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYQogfQogCiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0xNDA1LDcgKzE0MDUsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpcwogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRP
bmx5VGVzdE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRP
bmx5VGVzdE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE0MjAsNyArMTQyMCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNS
ZWFkT25seUxvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25z
dHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRl
KTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE0MjksNyArMTQyOSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlMb25nQXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29u
c3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0
YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE0MzgsNyArMTQzOCw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
Q29uc3RydWN0b3JUZXN0U3ViT2JqKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpDb25zdHJ1Y3RvclRlc3RTdWJPYmooRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE0NTEsNyArMTQ1MSw3IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaihFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdFN1Yk9i
akVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBV
TlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMTQ2
OSw3ICsxNDY5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLAogfQogCiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakVudW1BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpFbnVtQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwpAQCAtMTQ4NCw3ICsxNDg0LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqRW51bUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm8KIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpCeXRlQXR0cihFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQor
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQnl0ZUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0
YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE0OTksNyArMTQ5OSw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakJ5dGVBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
T2N0ZXRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPY3RldEF0dHIo
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKQEAgLTE1MTQsNyArMTUxNCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9jdGV0QXR0
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByCiB9CiAKIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpTaG9ydEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE1MjksNyArMTUyOSw3IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2xhbXBlZFNo
b3J0QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2xhbXBlZFNob3J0
QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwpAQCAtMTU0NCw3ICsxNTQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2xh
bXBlZFNob3J0QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmEKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpA
QCAtMTU1OSw3ICsxNTU5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRW5mb3JjZVJhbmdl
U2hvcnRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHQKIH0KIAogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE1NzQsNyArMTU3NCw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRy
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CkBAIC0xNTg5LDcgKzE1ODksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nQXR0
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBybwogfQogCiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxvbmdMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0xNjA0LDcgKzE2MDQsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVu
c2lnbmVkTG9uZ0xvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpV
bnNpZ25lZExvbmdMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMTYxOSw3ICsxNjE5LDcgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGgKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBK
U09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVO
VVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0xNjM0
LDcgKzE2MzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUAogfQogCiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpUZXN0T2JqQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMTY0OSw3ICsxNjQ5LDcgQEAgRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKQEAgLTE2NjQsNyArMTY2NCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RO
dWxsYWJsZU9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpCiB9CiAK
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCop
CitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE2Nzks
NyArMTY3OSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzCiB9CiAKIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqVW5mb3JnZWFibGVBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE2OTQsNyArMTY5NCw3IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialVuZm9yZ2VhYmxlQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0
clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNF
RF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0xNzA5LDcg
KzE3MDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZyhFeGVjU3RhdGUqIHN0YXRlLCBFbgogfQogCiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alhNTE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFS
QU0odGhpc1ZhbHVlKTsKQEAgLTE3MjQsNyArMTcyNCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialhNTE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3JlYXRlKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDcmVhdGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRl
KTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE3MzksNyArMTczOSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNyZWF0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVm
bGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVm
bGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMTc1NCw3ICsxNzU0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGkKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3Jh
bEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEludGVn
cmFsQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0
aGlzVmFsdWUpOwpAQCAtMTc2OSw3ICsxNzY5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVmbGVjdGVkSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHQK
IH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFs
QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVW5zaWdu
ZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE3ODQsNyArMTc4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5B
dHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNW
YWx1ZSk7CkBAIC0xNzk5LDcgKzE3OTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRCb29sZWFuQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aAogfQog
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikK
K0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE4MTQsNyAr
MTgxNCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMTgyOSw3ICsxODI5LDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGkKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3Rh
dGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMTg0NCw3ICsxODQ0LDcgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1YKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpS
ZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0
YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE4NTksNyArMTg1OSw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwog
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMTg3NSw3ICsxODc1LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZQogCiAKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBV
TlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMTg5
MSw3ICsxODkxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0
dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWwKIAogI2VuZGlmCiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialR5cGVkQXJyYXlBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpUeXBlZEFycmF5QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMTkwNiw3ICsxOTA2LDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqVHlwZWRBcnJheUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHUKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE5MjMsNyArMTkyMyw3IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMTk0MCw3ICsx
OTQwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25X
aXRoTWVzc2FnZShFeGVjU3RhdGUqIHN0YXRlLCBFbmMKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTE5NTUsNyArMTk1NSw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpA
QCAtMTk3MCw3ICsxOTcwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhTZXR0
ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShFeGVjU3RhdGUqIHN0YXRlLCBFbmMKIH0KIAogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKQEAgLTE5ODcsNyArMTk4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmlu
Z0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKCiB9CiAK
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24o
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUs
IEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFN
KHRoaXNWYWx1ZSk7CkBAIC0yMDAyLDcgKzIwMDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmljdFR5cGVDaGVja2luZ0F0dHJp
YnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaWN0VHlwZUNoZWNr
aW5nQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CkBAIC0yMDE3LDcgKzIwMTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpTdHJpY3RUeXBlQ2hlY2tpbmdBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHIoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTIwMzAsNyArMjAz
MCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHIoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqT25mb28oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9uZm9vKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CkBAIC0yMDQ0LDcgKzIwNDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPbmZvbyhFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcgogfQogCiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iak9ud2Via2l0Zm9vKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpPbndlYmtpdGZvbyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwog
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMjA1OCw3ICsyMDU4LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqT253ZWJraXRmb28oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3Jp
cHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0
aFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0yMDczLDcgKzIwNzMsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhDYWxsV2l0
aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBV
TlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMjA4
OCw3ICsyMDg4LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0
dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwKIH0KIAogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
dHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKQEAgLTIxMDYsNyArMjEwNiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
aldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRl
UmFpc2VzKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVT
RURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTIxMjMsNyArMjEyMyw3IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0y
MTQzLDcgKzIxNDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIHN0YQogfQogCiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVB
dHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTIxNjEsNyArMjE2
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhlY1N0CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJh
aXNlcyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMjE4MSw3ICsy
MTgxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcygKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNl
c0F0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAg
LTIxOTksNyArMjE5OSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmliCiB9CiAKIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0
ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50
c0FuZENhbGxTdGFja0F0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAg
IFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMjIxNSw3ICsyMjE1LDcgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShF
eGVjU3RhdGUqIHN0YXQKIAogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0yMjMyLDcgKzIyMzIsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5B
QkxFKENvbmRpdGlvbjIpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIy
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
LCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CkBAIC0yMjQ5LDcgKzIyNDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25h
bEF0dHIyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYQogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0yMjY2LDcgKzIyNjYsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CkBAIC0yMjgxLDcgKzIyODEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRp
b25hbEF0dHI0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVgogI2VuZGlm
CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikK
K0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpA
QCAtMjI5Niw3ICsyMjk2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1YKICNlbmRpZgogCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTIz
MTAsNyArMjMxMCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWCiAKICNlbmRpZgogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0yMzI4LDcgKzIzMjgsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akNhY2hlZEF0dHJpYnV0ZTIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNh
Y2hlZEF0dHJpYnV0ZTIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKQEAgLTIzNDYsNyArMjM0Niw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQW55QXR0cmlidXRlKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09i
amVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTIzNjEs
NyArMjM2MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakFueUF0dHJpYnV0ZShFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsCiB9CiAKIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQ29udGVudERvY3VtZW50KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDb250ZW50RG9jdW1lbnQoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTIzNzUsNyArMjM3NSw3IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1bWVudChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTXV0YWJsZVBv
aW50KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpNdXRhYmxlUG9pbnQoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
QEAgLTIzOTAsNyArMjM5MCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak11dGFibGVQb2lu
dChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsCiB9CiAKIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakltbXV0YWJsZVBvaW50KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0yNDA1LDcgKzI0MDUsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpJbW11dGFibGVQb2ludChFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0
cmF3YmVycnkoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmF3YmVycnko
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKQEAgLTI0MjAsNyArMjQyMCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmF3YmVy
cnkoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQCiB9CiAKIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaWN0RmxvYXQoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialN0cmljdEZsb2F0KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0yNDM1LDcgKzI0MzUsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RGbG9hdChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRGVzY3Jp
cHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CkBAIC0yNDUwLDcgKzI0NTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpEZXNjcmlwdGlv
bihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsCiB9CiAKIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqSWQoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iaklkKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7CkBAIC0yNDY1LDcgKzI0NjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpJ
ZChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5Tgog
fQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakhhc2goRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakhhc2goRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTI0ODAsNyArMjQ4MCw3IEBAIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakhhc2goRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVwbGFjZWFibGVB
dHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlcGxhY2VhYmxl
QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFN
KHRoaXNWYWx1ZSk7CkBAIC0yNDk1LDcgKzI0OTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRl
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
LCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJp
YnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwpAQCAtMjUxMCw3ICsyNTEwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVs
bGFibGVEb3VibGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGUoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZShFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpA
QCAtMjUyNSw3ICsyNTI1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVMb25n
QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHQKIH0KIAogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikK
K0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZShFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAt
MjU0MCw3ICsyNTQwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVCb29sZWFu
QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHUKIH0KIAogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTI1NTUs
NyArMjU1NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nQXR0cmli
dXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlCiB9CiAKIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0Vu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBA
IC0yNTcwLDcgKzI1NzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdT
ZXR0YWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSgogfQogCiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRy
aWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhp
c1ZhbHVlKTsKQEAgLTI1ODUsNyArMjU4NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51
bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlCiB9
CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZShFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmpl
Y3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZShFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAt
MjYwMiw3ICsyNjAyLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdW
YWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGkKIH0KIAogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAtMjYxNyw3ICsyNjE3LDcgQEAgRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHIKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVz
ZXJ2ZWRFbnVtVHlwZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cmli
dXRlV2l0aFJlc2VydmVkRW51bVR5cGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTI2MzIsNyArMjYzMiw3IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2Fy
ZHNBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndh
cmRzQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CkBAIC0yNjQ3LDcgKzI2NDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVB
dHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRz
TnVsbGFibGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVT
RURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTI2NjIsNyArMjY2Miw3IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpT
T2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpT
VGVzdE9ialByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90
b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFk
b21PYmplY3QpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3Bw
CmluZGV4IDMyNzc0NjRlNzA4YjE2ZDFlNmUzOWU4ZmIyOTE1NDc0NWI0ODg4YmIuLjU5Mjg5MzU3
YzkxZDg3ZDJiNjNjNzJlOTJlYTFjYmM3ODE4NTFhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9v
bCBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3Mg
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9u
RmluYWxPYmplY3QgewpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yczo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKICAgICB0aGlzT2JqZWN0LT5K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjp+SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cygpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFkb21PYmplY3QpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3Bw
CmluZGV4IGE3NjU2NGY2ZDU4MzdkZWYyYzA2YjlmMzVmMjc2NTg4MjNlZTgwZTAuLjNiZmYyNDNh
Zjc1ZGM2MzNjMmMxZDk1ZGVjMzg4NDM0NmEzNTcwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJp
ZGVCdWlsdGlucy5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGVGdW5jdGlvbk5hbWVkSXQK
IAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE92ZXJyaWRlQnVp
bHRpbnNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T3ZlcnJpZGVC
dWlsdGluc0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90
b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKQEAgLTE1Niw3ICsxNTYsNyBA
QCBib29sIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YQogICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQor
RW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T3ZlcnJpZGVCdWlsdGluc1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDJlMGRm
ZmZiMjYyMGM3NDEwZTk4NDQ3MzA1ZWYxMTIxODUxZjg2OTIuLmJiNDI4YWVmZTc0ZDYyNWQ4NzA1
MTJkODk0NTMwZjRlNjJjN2I1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0zOCwxNCArMzgsMTQgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VW
YWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKIGJvb2wgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlUmVhZG9ubHlWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmpl
Y3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlUmVhZG9ubHlWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3Qq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6
SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlUG9ydHMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9v
bCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwog
CiBjbGFzcyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKQEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIEpT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCog
Y2VsbCkKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2U6On5KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZVZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7CkBAIC0xNDgsNyArMTQ4LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2QKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VS
ZWFkb25seVZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0xNjMsNyArMTYzLDcgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9u
bHlWYWx1ZShFeGVjU3RhdGUqIHN0YXQKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUo
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKQEAgLTE4MSw3ICsxODEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShFeGVjU3RhdGUqIHN0YXRlLAogfQogCiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBK
U09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VQb3J0cyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwpAQCAtMTk2LDcgKzE5Niw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZShFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpAQCAt
MjE0LDcgKzIxNCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUoRXhlY1N0YXRlCiB9CiAKIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpT
T2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKaW5k
ZXggZWEyZDk2ZDE4M2YwMmI2YTZhMTQyNDczMWM4N2RiMDYxYzRmNjA1Yy4uZGM1YWM1NGMzY2Ez
NzlmYzk4NjAxMjg1Yjk0OTE0ODE4YjEzM2UzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCkBAIC02
MCwyMCArNjAsMjAgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXAKIAogLy8gQXR0cmlidXRlcwog
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwg
SlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Vuc2ln
bmVkTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdB
dHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFs
aXplZFNjcmlwdFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTVGVz
dFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3Qq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lLCBKU0M6OkpTT2JqZWN0Kik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZz
Q29uc3RydWN0b3JUZXN0U3ViT2JqKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVm
c0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0
cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RU
eXBlZGVmc0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCop
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldp
dGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rl
c3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogYm9vbCBzZXRKU1Rlc3RU
eXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CkBAIC0yMTgsNyArMjE4LDcgQEAgYm9vbCBK
U1Rlc3RUeXBlZGVmczo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNT
dGF0ZSogc3RhdGUsIFByb3AKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHN0YXRlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKQEAgLTIzMyw3ICsy
MzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRy
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFs
dWUpOwpAQCAtMjQ4LDcgKzI0OCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzSW1t
dXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuCiB9CiAKIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmooRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KikKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2Jq
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CkBAIC0yNjEsNyArMjYxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25z
dHJ1Y3RvclRlc3RTdWJPYmooRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmEKIH0KIAogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09i
amVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNW
YWx1ZSk7CkBAIC0yNzgsNyArMjc4LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlMKIH0KIAog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBK
U09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVyRXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7CkBAIC0yOTMsNyArMjkzLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRl
ZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlMKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1N0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0zMTAsNyArMzEwLDcgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUq
IHN0YXRlLCBFbmMKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1N0cmluZ0F0
dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CkBAIC0zMjUsNyArMzI1LDcg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2Vw
dGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmMKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBl
ZGVmc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlKiBkb21PYmpl
Y3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUu
Y3BwCmluZGV4IGIzMWU2ZTMxZTNkOWVhMzY2NTIyYjIxZmYwOWE4N2VlZWJlYzQzYTIuLjNjMGQ3
M2I5YjI3MzJlNTQxMjViZTA5ZWU4YjdhMTBiMWUyZWVmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcApAQCAt
MzQsOCArMzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc2F0dHJpYnV0ZVJlYWRvbmx5KEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNhdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0Kik7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzYXR0cmlidXRlUmVhZG9ubHkoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzYXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTYXR0cmlidXRlQ29uc3Ry
dWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKIAogY2xhc3MgSlNhdHRyaWJ1dGVQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05v
bkZpbmFsT2JqZWN0IHsKQEAgLTE0MSw3ICsxNDEsNyBAQCBib29sIEpTYXR0cmlidXRlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVy
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNhdHRyaWJ1dGVSZWFk
b25seShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNhdHRyaWJ1dGVSZWFkb25seShFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwpA
QCAtMTU2LDcgKzE1Niw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzYXR0cmlidXRlUmVhZG9ubHkoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQCiB9CiAKIAotRW5jb2Rl
ZEpTVmFsdWUganNhdHRyaWJ1dGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFs
dWUganNhdHRyaWJ1dGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU2F0dHJpYnV0ZVByb3RvdHlwZSog
ZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU2F0dHJpYnV0ZVByb3RvdHlwZSo+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25s
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25s
eS5jcHAKaW5kZXggZTMxNWJhNjUyOGZlMWJjNjI5MTRiZTVhYjg5ZDM4ZmQ0Y2Q2ZWY0Ni4uOTg3
NzQ0YTRjOTRkYzJhOWI5YWE0Y2E4YmY1YzNjNWEyZTNlOTNhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcApAQCAt
MzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc3JlYWRvbmx5Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCopOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc3JlYWRvbmx5Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNldEpTcmVh
ZG9ubHlDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU3JlYWRvbmx5UHJvdG90eXBlIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBKU3JlYWRv
bmx5OjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3QtPkpTcmVhZG9u
bHk6On5KU3JlYWRvbmx5KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzcmVhZG9ubHlDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUganNyZWFkb25seUNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIEpTcmVhZG9ubHlQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNy
ZWFkb25seVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWRvbU9iamVjdCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5j
cHAKaW5kZXggNzU2MTFlNDI5MmQ4NmRhMjE1ZTVkZGYwZGRkZWU0ZTMxNzJjNjQ0ZS4uYzViM2M0
ZjdlN2EyMTc5MjcxMjFiM2M3ZTdjMGYxYTQ5NjcxYjY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX2FycmF5LmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6
ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAgICAgc3RhdGljX2Nhc3Q8UnVudGltZUFycmF5Kj4oY2Vs
bCktPlJ1bnRpbWVBcnJheTo6flJ1bnRpbWVBcnJheSgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBS
dW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lLCBKU09iamVjdCopCitFbmNvZGVkSlNWYWx1ZSBSdW50
aW1lQXJyYXk6Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFJ1bnRpbWVBcnJheSogdGhpc09iamVjdCA9
IGpzRHluYW1pY0Nhc3Q8UnVudGltZUFycmF5Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmICghdGhpc09iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5o
CmluZGV4IGRhNTE2MDViZDU2MjRkNzQwZjVkMDEwMmYyMzRmZWU1MjFjZGEwNGEuLjAxOGMxMzI3
OGRiYTNkZDAzMTcxZTUzZWZjMGFkN2RmMGUxMDdlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfYXJyYXkuaApAQCAtODMsNyArODMsNyBAQCBjbGFzcyBSdW50aW1lQXJyYXkgOiBwdWJs
aWMgSlNBcnJheSB7CiAKIHByaXZhdGU6CiAgICAgUnVudGltZUFycmF5KEV4ZWNTdGF0ZSosIFN0
cnVjdHVyZSopOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKKyAgICBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOwogCiAgICAgQmluZGluZ3NBcnJheSogbV9hcnJheTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAppbmRleCBhMzdjODhkMDljNzgyZWYx
MWM1ODA2NWExYTIzZDNjNmU0ZWFlODZjLi5hZTJiMmI5YmM5M2U5MjczY2ZhYjJkMWY3ZDdlZDQw
ZWExM2IwMmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRo
b2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKQEAg
LTU0LDcgKzU0LDcgQEAgdm9pZCBSdW50aW1lTWV0aG9kOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IGNvbnN0IFN0cmluZyYgaWRlbnQpCiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQor
RW5jb2RlZEpTVmFsdWUgUnVudGltZU1ldGhvZDo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgUnVudGlt
ZU1ldGhvZCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8UnVudGltZU1ldGhvZCo+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIXRoaXNPYmplY3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCmluZGV4IDIzNDIyM2UzZWZiMzBmNjRmNzEyNGY3Yjcz
Mjk2NWY5ZmFhZjZiMmQuLmQ4NmQ1OTQ3NWUwYTk3NTE3YzAxMzZiYWIxMDZmMmEwN2MxOTI0ZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCkBAIC02Niw3ICs2Niw3IEBA
IGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVNZXRob2QgOiBwdWJsaWMgSW50ZXJuYWxGdW5j
dGlvbiB7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIAogcHJpdmF0ZToKLSAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
IAogICAgIEJpbmRpbmdzOjpNZXRob2QqIG1fbWV0aG9kOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDQ2YWE0OWNiZmYxZmNkY2E0MjNhYWY1MmEyMmYx
NjBhNmViOTdhNmIuLmE1NzNlMDVkNzU5YjA3NTcwZDI2MjFkOGU2MjYwMzY0MWNiYjRlYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtNjIsNyArNjIsNyBA
QCB2b2lkIFJ1bnRpbWVPYmplY3Q6OmludmFsaWRhdGUoKQogICAgIG1faW5zdGFuY2UgPSBudWxs
cHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqKQorRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVj
dDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgUnVudGltZU9iamVj
dCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqLT5tX2luc3Rh
bmNlOwpAQCAtODAsNyArODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxs
YmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9i
amVjdDo6ZmllbGRHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVl
IFJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogeyAgICAKICAgICBSdW50
aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmot
Pm1faW5zdGFuY2U7CkBAIC05OSw3ICs5OSw3IEBAIEVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmpl
Y3Q6OmZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBS
dW50aW1lT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29k
ZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6Om1ldGhvZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAg
ICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRo
aXNPYmotPm1faW5zdGFuY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmlu
ZGV4IGNjYTc0NmViZWU1MjZhZTEwMzkzZmM1NTc0MmFjNDRhY2VkMzQ2MzQuLjgxZDRlYmQzYjRk
YmI3MDk5MTE1ZGExMDI4MmIyOWZiZmZiMTg2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5oCkBAIC03OCw5ICs3OCw5IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRp
bWVPYmplY3QgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oVk0mKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZmFs
bGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSwgSlNPYmplY3QqKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZmllbGRHZXR0ZXIoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSwgSlNPYmplY3QqKTsKLSAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUsIEpTT2JqZWN0Kik7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBmaWVsZEdldHRlcihFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgbWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
OwogCiAgICAgUmVmUHRyPEluc3RhbmNlPiBtX2luc3RhbmNlOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNw
cAppbmRleCBiNWE0NjA0MTAwZjM0MWFiNjc2M2VlNTAxODAwZGI5ZWJmZTk2MTA3Li5kNTYxYWUx
NDhjMjJmNTk3ZDdmMWFlODRjYjdkMGRmOTFjMGNhMGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCkBA
IC00MzUsNyArNDM1LDcgQEAgdm9pZCBKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHkKICAgICBucG5NZW1GcmVl
KGlkZW50aWZpZXJzKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6cHJvcGVydHlH
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIEpTTlBPYmplY3Q6
OnByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIEpTTlBPYmplY3QqIHRoaXNPYmog
PSBqc0Nhc3Q8SlNOUE9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmosIGluZm8oKSk7CkBAIC00NzUsNyArNDc1
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6cHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHByb3BlcnR5VmFsdWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0OjptZXRob2RH
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KikKK0VuY29kZWRKU1ZhbHVlIEpTTlBPYmplY3Q6
Om1ldGhvZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU05QT2JqZWN0KiB0aGlzT2JqID0g
anNDYXN0PEpTTlBPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqLCBpbmZvKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5k
ZXggMzg1NzgyYzhlNjhiZGM1YTEzZjc4NTQyOTMxNWY2OTkyZjRlNDMyMC4uOGJhZmViMDYwYTIx
MDY2ZDhlYWE2MDg3NGMwM2FjOTlmMGNmNGJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCkBAIC05NCw4ICs5
NCw4IEBAIGNsYXNzIEpTTlBPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVj
dCB7CiAKICAgICBzdGF0aWMgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0
aW9uTW9kZSk7CiAKLSAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eUdldHRl
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
LCBKU0M6OkpTT2JqZWN0Kik7Ci0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgbWV0aG9k
R2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6SlNPYmplY3QqKTsKKyAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBw
cm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0
ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKEpT
Qzo6RXhlY1N0YXRlKik7CiAKICAgICBOUFJ1bnRpbWVPYmplY3RNYXAqIG1fb2JqZWN0TWFwOwo=
</data>
<flag name="review"
          id="304485"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>