<?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>183429</bug_id>
          
          <creation_ts>2018-03-07 23:12:27 -0800</creation_ts>
          <short_desc>[JSC] Add inherits&lt;T&gt;(VM&amp;) leveraging JSCast fast path</short_desc>
          <delta_ts>2018-03-09 10:02:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>183435</blocked>
    
    <blocked>183449</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1404625</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-07 23:12:27 -0800</bug_when>
    <thetext>[JSC] Add inherits&lt;T&gt;(VM&amp;) leveraging JSCast fast path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404627</commentid>
    <comment_count>1</comment_count>
      <attachid>335266</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-07 23:15:59 -0800</bug_when>
    <thetext>Created attachment 335266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404632</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-07 23:25:46 -0800</bug_when>
    <thetext>Attachment 335266 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1755:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1777:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 2 in 81 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404650</commentid>
    <comment_count>3</comment_count>
      <attachid>335273</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-08 00:38:34 -0800</bug_when>
    <thetext>Created attachment 335273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404651</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-08 00:42:00 -0800</bug_when>
    <thetext>Attachment 335273 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1755:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1777:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 2 in 81 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404662</commentid>
    <comment_count>5</comment_count>
      <attachid>335279</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-08 01:19:16 -0800</bug_when>
    <thetext>Created attachment 335279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404663</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-08 01:23:11 -0800</bug_when>
    <thetext>Attachment 335279 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1755:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1777:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 2 in 81 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404668</commentid>
    <comment_count>7</comment_count>
      <attachid>335282</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-08 01:39:13 -0800</bug_when>
    <thetext>Created attachment 335282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404672</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-08 01:42:24 -0800</bug_when>
    <thetext>Attachment 335282 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1755:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1777:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 2 in 81 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404675</commentid>
    <comment_count>9</comment_count>
      <attachid>335285</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-08 01:48:51 -0800</bug_when>
    <thetext>Created attachment 335285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404678</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-08 01:51:54 -0800</bug_when>
    <thetext>Attachment 335285 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1755:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1777:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 2 in 81 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404688</commentid>
    <comment_count>11</comment_count>
      <attachid>335285</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-08 03:02:15 -0800</bug_when>
    <thetext>Comment on attachment 335285
Patch

Attachment 335285 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/6853687

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404689</commentid>
    <comment_count>12</comment_count>
      <attachid>335286</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-08 03:02:17 -0800</bug_when>
    <thetext>Created attachment 335286
Archive of layout-test-results from ews112 for mac-sierra

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews112  Port: mac-sierra  Platform: Mac OS X 10.12.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404694</commentid>
    <comment_count>13</comment_count>
      <attachid>335287</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-08 03:10:56 -0800</bug_when>
    <thetext>Created attachment 335287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404697</commentid>
    <comment_count>14</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-08 03:17:27 -0800</bug_when>
    <thetext>Attachment 335287 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1755:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/bindings/js/SerializedScriptValue.cpp:1777:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 2 in 82 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404732</commentid>
    <comment_count>15</comment_count>
      <attachid>335287</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-03-08 07:54:49 -0800</bug_when>
    <thetext>Comment on attachment 335287
Patch

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

r=me.  Nice work.

&gt; Source/JavaScriptCore/runtime/JSType.h:121
&gt; +static const uint32_t LastObjectType = MaxJSType;

I think you should put your ChangeLog comment near here to explain why you use MaxJSType and not the last type in the enum list.  BTW, do we still need LastJSCObjectType?  Are the other uses of LastJSCObjectType correct (in light of the bug you found)?

&gt; Source/WebCore/bindings/js/JSEventTargetCustom.cpp:60
&gt; +    if (value.inherits&lt;JS##interfaceName&gt;(vm))                      \

nit: the amount of whitespace at the end seems arbitrary.  Might as well trim it so that the \ is aligned with the line above, or just 1 space after the end of this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404733</commentid>
    <comment_count>16</comment_count>
      <attachid>335287</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-08 08:01:50 -0800</bug_when>
    <thetext>Comment on attachment 335287
Patch

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

Thank you!

&gt;&gt; Source/JavaScriptCore/runtime/JSType.h:121
&gt;&gt; +static const uint32_t LastObjectType = MaxJSType;
&gt; 
&gt; I think you should put your ChangeLog comment near here to explain why you use MaxJSType and not the last type in the enum list.  BTW, do we still need LastJSCObjectType?  Are the other uses of LastJSCObjectType correct (in light of the bug you found)?

Yes, LastJSCObjectType is now used in JSDollarVM to create extended object types by using `LastJSCObjectType + 1`.
I think we can use the highest bit + type number instead, but in the meantime, it is used, and I keep it now in this patch.

And the other use of LastJSCObjectType is correct :)

&gt;&gt; Source/WebCore/bindings/js/JSEventTargetCustom.cpp:60
&gt;&gt; +    if (value.inherits&lt;JS##interfaceName&gt;(vm))                      \
&gt; 
&gt; nit: the amount of whitespace at the end seems arbitrary.  Might as well trim it so that the \ is aligned with the line above, or just 1 space after the end of this line.

OK, I&apos;ll just put one space before `\` since it is easy to keep it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404734</commentid>
    <comment_count>17</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-08 08:06:56 -0800</bug_when>
    <thetext>Committed r229410: &lt;https://trac.webkit.org/changeset/229410&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404735</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-08 08:07:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/38262932&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404934</commentid>
    <comment_count>19</comment_count>
      <attachid>335287</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-03-08 14:52:11 -0800</bug_when>
    <thetext>Comment on attachment 335287
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:17
&gt; +        We also fix the implementation of jsDynamicCast for JSObject since it uses LastJSCObjectType.
&gt; +        The embedder can add their extended object types after that.

Oh really? where does this happen?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405007</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-08 17:38:08 -0800</bug_when>
    <thetext>(In reply to Keith Miller from comment #19)
&gt; Comment on attachment 335287 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=335287&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:17
&gt; &gt; +        We also fix the implementation of jsDynamicCast for JSObject since it uses LastJSCObjectType.
&gt; &gt; +        The embedder can add their extended object types after that.
&gt; 
&gt; Oh really? where does this happen?

You can check WebCore::JSElementType for example ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405196</commentid>
    <comment_count>21</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-03-09 10:02:54 -0800</bug_when>
    <thetext>Committed r229465: &lt;https://trac.webkit.org/changeset/229465&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335266</attachid>
            <date>2018-03-07 23:15:59 -0800</date>
            <delta_ts>2018-03-08 00:38:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183429-20180308161558.patch</filename>
            <type>text/plain</type>
            <size>160480</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5Mzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NDAwZjNhYTM0M2JlMDdmMzc0NTZjYTdlZmE3YmQ4ZDZhNjVjODYwLi4zODhkZGIyZTI2ODQyMzNi
OWQxMTcxZTI5ZTI1ODc5MmIxMjhlZGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOTYgQEAKKzIwMTgtMDMtMDcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIGluaGVyaXRzPFQ+KFZNJikgbGV2ZXJhZ2luZyBK
U0Nhc3QgZmFzdCBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODM0MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbiwgSlNDZWxsOjppbmhlcml0czxUPihWTSYp
IGFuZCBKU1ZhbHVlOjppbmhlcml0czxUPihWTSYpLgorICAgICAgICBUaGV5IGRlcGVuZHMgb24g
anNEeW5hbWljQ2FzdDxUPiBpbXBsZW1lbnRhdGlvbiBhbmQgbGV2ZXJhZ2UgSlNUeXBlLWJhc2Vk
IGZhc3QKKyAgICAgICAgcGF0aHMgZGVmaW5lZCBpbiBKU0Nhc3QuaC4KKworICAgICAgICBBbmQg
d2UgcmVtb3ZlIHNldmVyYWwgdW5uZWNlc3NhcnkgY2FzdGluZyBmdW5jdGlvbnMgKGFzUmVnRXhw
T2JqZWN0LCBhc0RhdGVJbnN0YW5jZSBldGMuKS4KKyAgICAgICAgSW4gYWRkaXRpb24sIHdlIGFk
ZCBqc0R5bmFtaWNDYXN0IGZhc3QgcGF0aCBmb3IgUmVnRXhwT2JqZWN0IGJ5IHVzaW5nIGV4aXN0
aW5nIFJlZ0V4cE9iamVjdFR5cGUuCisKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgor
ICAgICAgICAoSlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAoSlNPYmplY3RT
ZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAoSlNPYmplY3REZWxldGVQcml2YXRlUHJvcGVy
dHkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlLm1tOgorICAgICAgICAoaXNEYXRlKToKKyAgICAg
ICAgKGlzQXJyYXkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlUmVmLmNwcDoKKyAgICAgICAgKEpT
VmFsdWVJc0FycmF5KToKKyAgICAgICAgKEpTVmFsdWVJc0RhdGUpOgorICAgICAgICAoSlNWYWx1
ZUlzT2JqZWN0T2ZDbGFzcyk6CisgICAgICAgICogQVBJL0pTV2Vha09iamVjdE1hcFJlZlByaXZh
dGUuY3BwOgorICAgICAgICAqIEFQSS9KU1dyYXBwZXJNYXAubW06CisgICAgICAgICh0cnlVbndy
YXBPYmpjT2JqZWN0KToKKyAgICAgICAgKiBBUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW06Cisg
ICAgICAgICh0cnlVbndyYXBDb25zdHJ1Y3Rvcik6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9j
ayk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGZ0bC9GVExM
b3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpj
b21waWxlT3ZlcnJpZGVzSGFzSW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlTmV3UmVnZXhwKToKKyAgICAgICAgKiBmdGwvRlRMT3BlcmF0aW9u
cy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6b3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9T
Uik6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAg
ICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUpOgorICAgICAgICAo
SW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6ZnVuY3Rpb25EZXRhaWxzKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHA6CisgICAgICAgIChJ
bnNwZWN0b3I6Okluc3BlY3RvckhlYXBBZ2VudDo6Z2V0UHJldmlldyk6CisgICAgICAgICogaW50
ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpub3RpZnlEZWJ1Z2dlck9m
VW53aW5kaW5nKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TaGFkb3dDaGlja2VuLmNwcDoKKyAg
ICAgICAgKEpTQzo6U2hhZG93Q2hpY2tlbjo6dXBkYXRlKToKKyAgICAgICAgKiBqaXQvSklULmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAg
KiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Om9wZXJhdGlvbk5ld0Z1bmN0
aW9uQ29tbW9uKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoY2hlY2tFeGNlcHRpb24p
OgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAgICAgICAoSlNDOjphc0Jv
b2xlYW5PYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblByb3RvdHlw
ZS5jcHA6CisgICAgICAgIChKU0M6OmJvb2xlYW5Qcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAg
IChKU0M6OmJvb2xlYW5Qcm90b0Z1bmNWYWx1ZU9mKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdERhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg6CisgICAgICAgIChKU0M6OmFzRGF0ZUluc3RhbmNlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpmb3JtYXRlRGF0ZUluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Rv
SVNPU3RyaW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKToK
KyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvTG9jYWxlRGF0ZVN0cmluZyk6CisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNUb0xvY2FsZVRpbWVTdHJpbmcpOgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jR2V0VGltZSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRGdWxs
WWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhcik6CisgICAg
ICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXRVVENNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXREYXRlKToK
KyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUpOgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jR2V0RGF5KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0Rh
eSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRIb3Vycyk6CisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRVVENIb3Vycyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNH
ZXRNaW51dGVzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0ZXMpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRh
dGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dl
dE1pbGxpU2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNl
Y29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VGltZSk6CisgICAgICAgIChKU0M6OnNldE5l
d1ZhbHVlRnJvbVRpbWVBcmdzKToKKyAgICAgICAgKEpTQzo6c2V0TmV3VmFsdWVGcm9tRGF0ZUFy
Z3MpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0WWVhcik6CisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRZZWFyKToKKyAgICAgICAgKiBydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwOgorICAgICAgICAoSlNDOjppc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24pOgor
ICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpm
dW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uaDoKKyAgICAgICAgKEpTQzo6YXNJbnRlcm5hbEZ1bmN0aW9uKToKKyAgICAgICAgKiBy
dW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6YXNBcnJheSk6CisgICAgICAgICogcnVu
dGltZS9KU0NKU1ZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6ZHVtcEZvckJhY2t0
cmFjZSBjb25zdCk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisgICAgICAgICog
cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppbmhl
cml0cyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9KU0Nhc3QuaDoKKyAgICAgICAgKEpTQzo6
SlNDYXN0aW5nSGVscGVyczo6anNEeW5hbWljQ2FzdEdlbmVyaWNJbXBsKToKKyAgICAgICAgKiBy
dW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpKU0NlbGw6OmluaGVyaXRzIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0pT
RnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpSZXRyaWV2ZUNhbGxlckZ1bmN0aW9uRnVuY3Rv
cjo6b3BlcmF0b3IoKSBjb25zdCk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmNhbGxlckdl
dHRlcik6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmdldE93bk5vbkluZGV4UHJvcGVydHlO
YW1lcyk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OnJlaWZ5TGF6eUJvdW5kTmFtZUlmTmVl
ZGVkKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpT
Qzo6ZW5xdWV1ZUpvYik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAg
ICAgICAoSlNDOjphc0dsb2JhbE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9K
U0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZDo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTTGV4aWNhbEVudmly
b25tZW50Lmg6CisgICAgICAgIChKU0M6OmFzQWN0aXZhdGlvbik6CisgICAgICAgICogcnVudGlt
ZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6dW53cmFwQm94ZWRQcmltaXRpdmUpOgor
ICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6U3RyaW5naWZpZXIpOgorICAgICAgICAoSlNDOjpX
YWxrZXI6OndhbGspOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNQcm9taXNlOjpyZXNvbHZlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZURl
ZmVycmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5oOgorICAgICAgICAoSlNDOjpQcm94eU9iamVj
dDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0Ojp0YXJnZXQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6aGFuZGxlciBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OmNvbnN0cnVjdFJlZ0V4cCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjphc1JlZ0V4cENvbnN0cnVjdG9yKToKKyAgICAgICAg
KEpTQzo6aXNSZWdFeHApOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6
OlJlZ0V4cE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6UmVnRXhw
T2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OnJlZ0V4cE9iamVjdFNl
dExhc3RJbmRleFN0cmljdCk6CisgICAgICAgIChKU0M6OnJlZ0V4cE9iamVjdFNldExhc3RJbmRl
eE5vblN0cmljdCk6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6cHV0KToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cE9iamVjdC5oOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OmNy
ZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6c2V0UmVnRXhwKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpyZWdFeHAgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnNldExhc3RJbmRleCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6Z2V0TGFzdEluZGV4IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0Ojp0ZXN0KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVnRXhwT2JqZWN0Ojp0ZXN0SW5saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
UmVnRXhwT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpS
ZWdFeHBPYmplY3Q6Om9mZnNldE9mUmVnRXhwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVn
RXhwT2JqZWN0OjpvZmZzZXRPZkxhc3RJbmRleCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJl
Z0V4cE9iamVjdDo6b2Zmc2V0T2ZMYXN0SW5kZXhJc1dyaXRhYmxlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6UmVnRXhwT2JqZWN0OjphbGxvY2F0aW9uU2l6ZSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmFzUmVnRXhwT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1JlZ0V4
cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY1Rlc3RGYXN0KToK
KyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jRXhlYyk6CisgICAgICAgIChKU0M6OnJlZ0V4
cFByb3RvRnVuY01hdGNoRmFzdCk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY0NvbXBp
bGUpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlckdsb2JhbCk6CisgICAgICAgIChK
U0M6OnJlZ0V4cFByb3RvR2V0dGVySWdub3JlQ2FzZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cFBy
b3RvR2V0dGVyTXVsdGlsaW5lKToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJEb3RB
bGwpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlclN0aWNreSk6CisgICAgICAgIChK
U0M6OnJlZ0V4cFByb3RvR2V0dGVyVW5pY29kZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3Rv
R2V0dGVyU291cmNlKToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jU2VhcmNoRmFzdCk6
CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY1NwbGl0RmFzdCk6CisgICAgICAgICogcnVu
dGltZS9TdHJpbmdPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6YXNTdHJpbmdPYmplY3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpT
Qzo6cmVwbGFjZVVzaW5nUmVnRXhwU2VhcmNoKToKKyAgICAgICAgKEpTQzo6cmVwbGFjZSk6Cisg
ICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2luZ1JlZ0V4cCk6CisgICAgICAg
IChKU0M6OnN0cmluZ1Byb3RvRnVuY1RvU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL1N5bWJv
bFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnN5bWJvbFByb3RvRnVuY1RvU3RyaW5nKToK
KyAgICAgICAgKEpTQzo6c3ltYm9sUHJvdG9GdW5jVmFsdWVPZik6CisgICAgICAgICogdG9vbHMv
SlNEb2xsYXJWTS5jcHA6CisgICAgICAgIChXVEY6OmN1c3RvbUdldFZhbHVlKToKKyAgICAgICAg
KFdURjo6Y3VzdG9tU2V0VmFsdWUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUhl
bHBlcnMuaDoKKyAgICAgICAgKEpTQzo6aXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbik6CisgICAg
ICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHA6CisgICAgICAgIChK
U0M6OldlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpjcmVhdGUpOgorCiAyMDE4LTAzLTA3ICBL
ZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIGZpeCAzMi1iaXQgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRiOWY3MjI4NGJmOGYyYTIzY2Zi
NmYzYzFjMzViY2RiZjZhYWIzZC4uZTg5NWYyNjJiMTI2ODc2Y2FhNTg0ODRhZDBjZTExNmM1YmFk
ZDQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE4LTAzLTA3ICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBpbmhlcml0
czxUPihWTSYpIGxldmVyYWdpbmcgSlNDYXN0IGZhc3QgcGF0aAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNDI5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRp
bGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlEQktleUZyb21WYWx1ZSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp2YWx1ZVRvRGF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93Ojp0b1dyYXBwZWQpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OnB1
c2hFdmVudEhhbmRsZXJTY29wZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNYUGF0
aE5TUmVzb2x2ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNYUGF0aE5TUmVzb2x2
ZXI6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZG9tV2luZG93RnJvbUV4ZWNTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNs
b25lU2VyaWFsaXplcjo6aXNBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6
ZXI6OmlzTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6aXNTZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpkdW1wQXJyYXlCdWZmZXJWaWV3KToK
KyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcERPTVBvaW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcERPTVJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xvbmVTZXJpYWxpemVyOjpkdW1wRE9NTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lU2VyaWFsaXplcjo6ZHVtcElmVGVybWluYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2xv
bmVEZXNlcmlhbGl6ZXI6OkNsb25lRGVzZXJpYWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNs
b25lRGVzZXJpYWxpemVyOjpyZWFkQXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlT3ZlcmxvYWRE
aXNwYXRjaGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZE92ZXJsb2FkRGlzcGF0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXJP
dmVybG9hZERpc3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb25PdmVybG9hZERp
c3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9uc092ZXJsb2FkRGlzcGF0Y2hl
cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
ZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbk92ZXJsb2FkRGlzcGF0Y2hlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51
bGxhYmxlVW5pb25PdmVybG9hZERpc3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5n
UGFyYW1ldGVyT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb25PdmVybG9hZERp
c3BhdGNoZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKiBicmlkZ2Uv
Yy9jX2luc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNJbnN0YW5jZTo6aW52
b2tlTWV0aG9kKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06Cisg
ICAgICAgICgrW1dlYlNjcmlwdE9iamVjdCBfY29udmVydFZhbHVlVG9PYmpjVmFsdWU6b3JpZ2lu
Um9vdE9iamVjdDpyb290T2JqZWN0Ol0pOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfaW5z
dGFuY2UubW06CisgICAgICAgIChPYmpjSW5zdGFuY2U6Omludm9rZU1ldGhvZCk6CisgICAgICAg
ICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6
Y2FsbE9iakNGYWxsYmFja09iamVjdCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmNwcDoKKyAgICAgICAgKEpTQzo6Y2FsbFJ1bnRpbWVNZXRob2QpOgorICAgICAgICAqIGJyaWRn
ZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpjYWxsUnVudGlt
ZU9iamVjdCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpjYWxsUnVudGltZUNvbnN0cnVjdG9y
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkluamVjdGVkU2NyaXB0SG9zdDo6c3VidHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJJbmplY3RlZFNjcmlwdEhvc3Q6OmlzSFRNTEFsbENvbGxlY3Rpb24pOgorCiAy
MDE4LTAzLTA3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgSW52
YWxpZCBpbm5lclRleHRSZW5kZXJlciBpbiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnN0
eWxlRGlkQ2hhbmdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNWFiZjIzZjY0ZDU5ZjE3NmFlMjU4MjljOTY5ZWVi
NjRmMzQxZjkwMy4uMzViMzE5YmJlMGY4YmRiMzc4NGNlN2IwZmY5YzVhMWFjNDBmYzRlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0wMy0wNyAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgaW5oZXJpdHM8VD4oVk0mKSBs
ZXZlcmFnaW5nIEpTQ2FzdCBmYXN0IHBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MzQyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRo
b2QuY3BwOgorICAgICAgICAoV2ViS2l0OjpjYWxsTWV0aG9kKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNh
bGxOUEpTT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6Y29uc3RydWN0V2l0aENvbnN0cnVjdG9y
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5QSlNPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNv
dW50ZXJWYWx1ZSk6CisKIDIwMTgtMDMtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIxODA4OSk6IFtHVEtdIHdlYmtp
dF93ZWJfdmlld19nZXRfaW5zcGVjdG9yKCkgbmVlZHMgdG8gYmUgY2FsbGVkLCBvdGhlcndpc2Ug
aW5zcGVjdG9yIGRvZXMgbm90IGNsb3NlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXgg
OTM2NTk1NWQ4NDI2NjdmNmI3NDhkMjM0MThjYjU3YjliNThhYzYwZS4uZDYyNWNkOWMxNzVmYjlj
ODM3N2NlMjQ5MTM5MzU0NjM4NDVlZDRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDE4LTAzLTA3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBpbmhlcml0czxUPihWTSYpIGxldmVyYWdp
bmcgSlNDYXN0IGZhc3QgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgzNDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBET00vRE9NLm1tOgorICAgICAgICAoK1tET01Ob2RlIF9ub2RlRnJvbUpT
V3JhcHBlcjpdKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eTo6cmV0YWluTG9jYWxPYmplY3QpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHk6OnJlbGVhc2VMb2NhbE9iamVjdCk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvUHJveHlJbnN0YW5jZS5tbToKKyAgICAgICAgKFdlYktpdDo6UHJveHlJbnN0YW5jZTo6aW52
b2tlTWV0aG9kKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgIChhZURl
c2NGcm9tSlNWYWx1ZSk6CisKIDIwMTgtMDMtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIE1hdGNoIHVuc3VwcG9ydGVkIHBsdWdpbnMgYmFzZWQgb24gZG9t
YWlucyBhbmQgbm90IG9yaWdpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDg4NTE2
YzBkODhlMWIzMjdjZTYwZTlhYTlmOWM0NjQyOTVkNDIxM2YuLjdlYWZjNWYxZmJjYmQ5MjE4OTBl
Y2M1NmJhMzcwNjY3ODQ4Njk3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxOC0wMy0wNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgaW5oZXJpdHM8VD4oVk0mKSBsZXZlcmFnaW5nIEpT
Q2FzdCBmYXN0IHBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MzQyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWU6OnN0cmluZ0J5RXZhbHVh
dGluZ0phdmFTY3JpcHRJblNjcmlwdFdvcmxkKToKKwogMjAxOC0wMy0wNSAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBGaXggc3RkOjptYWtlX3VuaXF1
ZSAvIG5ld1tdIHVzaW5nIHN5c3RlbSBtYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U09iamVjdFJlZi5jcHAKaW5kZXggNjc0NzMzNzY2MjliYzA0NWRmMWJhYjUxODQ3YmJjODliZmU4
ZmQ5ZS4uNGY4ODY4MTk2YTJiNzMxYWYyNjlkNDA4YWFmMDYyMTRjYWVjNzhkMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKQEAgLTUwMSwxNSArNTAxLDE1IEBA
IEpTVmFsdWVSZWYgSlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwg
SlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0CiAKIAogICAgIC8vIEdldCB3cmFwcGVkIG9iamVjdCBp
ZiBwcm94aWVkCi0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNQcm94eTo6aW5mbygp
KSkKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTUHJveHk+KHZtKSkKICAgICAgICAganNP
YmplY3QgPSBqc0Nhc3Q8SlNQcm94eSo+KGpzT2JqZWN0KS0+dGFyZ2V0KCk7CiAKLSAgICBpZiAo
anNPYmplY3QtPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6
aW5mbygpKSkKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNH
bG9iYWxPYmplY3Q+Pih2bSkpCiAgICAgICAgIHJlc3VsdCA9IGpzQ2FzdDxKU0NhbGxiYWNrT2Jq
ZWN0PEpTR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0KS0+Z2V0UHJpdmF0ZVByb3BlcnR5KG5hbWUp
OwotICAgIGVsc2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxK
U0Rlc3RydWN0aWJsZU9iamVjdD46OmluZm8oKSkpCisgICAgZWxzZSBpZiAoanNPYmplY3QtPmlu
aGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+Pih2bSkpCiAgICAg
ICAgIHJlc3VsdCA9IGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
Pio+KGpzT2JqZWN0KS0+Z2V0UHJpdmF0ZVByb3BlcnR5KG5hbWUpOwogI2lmIEpTQ19PQkpDX0FQ
SV9FTkFCTEVECi0gICAgZWxzZSBpZiAoanNPYmplY3QtPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNr
T2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkpCisgICAgZWxzZSBpZiAoanNPYmpl
Y3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pj4odm0pKQog
ICAgICAgICByZXN1bHQgPSBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmpl
Y3Q+Kj4oanNPYmplY3QpLT5nZXRQcml2YXRlUHJvcGVydHkobmFtZSk7CiAjZW5kaWYKICAgICBy
ZXR1cm4gdG9SZWYoZXhlYywgcmVzdWx0KTsKQEAgLTUyNSwxOSArNTI1LDE5IEBAIGJvb2wgSlNP
YmplY3RTZXRQcml2YXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2Jq
ZWN0LCBKU1N0cmluZ1JlCiAgICAgSWRlbnRpZmllciBuYW1lKHByb3BlcnR5TmFtZS0+aWRlbnRp
Zmllcigmdm0pKTsKIAogICAgIC8vIEdldCB3cmFwcGVkIG9iamVjdCBpZiBwcm94aWVkCi0gICAg
aWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNQcm94eTo6aW5mbygpKSkKKyAgICBpZiAoanNP
YmplY3QtPmluaGVyaXRzPEpTUHJveHk+KHZtKSkKICAgICAgICAganNPYmplY3QgPSBqc0Nhc3Q8
SlNQcm94eSo+KGpzT2JqZWN0KS0+dGFyZ2V0KCk7CiAKLSAgICBpZiAoanNPYmplY3QtPmluaGVy
aXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6aW5mbygpKSkgeworICAg
IGlmIChqc09iamVjdC0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4+
KHZtKSkgewogICAgICAgICBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4q
Pihqc09iamVjdCktPnNldFByaXZhdGVQcm9wZXJ0eSh2bSwgbmFtZSwganNWYWx1ZSk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKHZtLCBK
U0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pjo6aW5mbygpKSkgeworICAgIGlm
IChqc09iamVjdC0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9iamVj
dD4+KHZtKSkgewogICAgICAgICBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJs
ZU9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZhdGVQcm9wZXJ0eSh2bSwgbmFtZSwganNWYWx1
ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICNpZiBKU0NfT0JKQ19BUElfRU5BQkxF
RAotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElX
cmFwcGVyT2JqZWN0Pjo6aW5mbygpKSkgeworICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHM8SlND
YWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+Pih2bSkpIHsKICAgICAgICAganNDYXN0
PEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pio+KGpzT2JqZWN0KS0+c2V0UHJp
dmF0ZVByb3BlcnR5KHZtLCBuYW1lLCBqc1ZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQpAQCAtNTU0LDE5ICs1NTQsMTkgQEAgYm9vbCBKU09iamVjdERlbGV0ZVByaXZhdGVQcm9w
ZXJ0eShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW4KICAgICBJ
ZGVudGlmaWVyIG5hbWUocHJvcGVydHlOYW1lLT5pZGVudGlmaWVyKCZ2bSkpOwogCiAgICAgLy8g
R2V0IHdyYXBwZWQgb2JqZWN0IGlmIHByb3hpZWQKLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRz
KHZtLCBKU1Byb3h5OjppbmZvKCkpKQorICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHM8SlNQcm94
eT4odm0pKQogICAgICAgICBqc09iamVjdCA9IGpzQ2FzdDxKU1Byb3h5Kj4oanNPYmplY3QpLT50
YXJnZXQoKTsKIAotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2FsbGJhY2tPYmpl
Y3Q8SlNHbG9iYWxPYmplY3Q+OjppbmZvKCkpKSB7CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0
czxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pj4odm0pKSB7CiAgICAgICAgIGpzQ2Fz
dDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0KS0+ZGVsZXRlUHJp
dmF0ZVByb3BlcnR5KG5hbWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgaWYg
KGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9i
amVjdD46OmluZm8oKSkpIHsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tP
YmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+Pih2bSkpIHsKICAgICAgICAganNDYXN0PEpTQ2Fs
bGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2
YXRlUHJvcGVydHkobmFtZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICNpZiBKU0Nf
T0JKQ19BUElfRU5BQkxFRAotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2FsbGJh
Y2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6aW5mbygpKSkgeworICAgIGlmIChqc09iamVj
dC0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+Pih2bSkpIHsK
ICAgICAgICAganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pio+KGpz
T2JqZWN0KS0+ZGVsZXRlUHJpdmF0ZVByb3BlcnR5KG5hbWUpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUu
bW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KaW5kZXggNmYzYjFkOGY2
NjRkNDdjYzZkNzllYzQ1NjhhM2Q4OTI4MWMyMDJlOC4uYzgxMGYxNGM0NzJmYWE3MTZhZWNkYzJl
MjQ4ZTY3ODUwNmQyMDcxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1ZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQpAQCAt
NTc0LDEzICs1NzQsMTMgQEAgQGVuZAogaW5saW5lIGJvb2wgaXNEYXRlKEpTQzo6Vk0mIHZtLCBK
U09iamVjdFJlZiBvYmplY3QsIEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0KQogewogICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2tlcih0b0pTKGNvbnRleHQpKTsKLSAgICByZXR1cm4gdG9KUyhv
YmplY3QpLT5pbmhlcml0cyh2bSwgSlNDOjpEYXRlSW5zdGFuY2U6OmluZm8oKSk7CisgICAgcmV0
dXJuIHRvSlMob2JqZWN0KS0+aW5oZXJpdHM8SlNDOjpEYXRlSW5zdGFuY2U+KHZtKTsKIH0KIAog
aW5saW5lIGJvb2wgaXNBcnJheShKU0M6OlZNJiB2bSwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU0ds
b2JhbENvbnRleHRSZWYgY29udGV4dCkKIHsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIo
dG9KUyhjb250ZXh0KSk7Ci0gICAgcmV0dXJuIHRvSlMob2JqZWN0KS0+aW5oZXJpdHModm0sIEpT
Qzo6SlNBcnJheTo6aW5mbygpKTsKKyAgICByZXR1cm4gdG9KUyhvYmplY3QpLT5pbmhlcml0czxK
U0M6OkpTQXJyYXk+KHZtKTsKIH0KIAogQGltcGxlbWVudGF0aW9uIEpTVmFsdWUoSW50ZXJuYWwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRleCAyM2RiYzcyMmVm
MGJiN2JkMThjMjA5NjFkZTJjZTFhODA4NTdiZjRkLi4wMGJmMDYxYWRhMmQxNmMxNzU4NzRkOGQ4
MTgwNjkzNDU3ZmE5ODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
VmFsdWVSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5j
cHAKQEAgLTE3Miw3ICsxNzIsNyBAQCBib29sIEpTVmFsdWVJc0FycmF5KEpTQ29udGV4dFJlZiBj
dHgsIEpTVmFsdWVSZWYgdmFsdWUpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBKU0xv
Y2tIb2xkZXIgbG9ja2VyKGV4ZWMpOwogCi0gICAgcmV0dXJuIHRvSlMoZXhlYywgdmFsdWUpLmlu
aGVyaXRzKHZtLCBKU0FycmF5OjppbmZvKCkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIHZhbHVl
KS5pbmhlcml0czxKU0FycmF5Pih2bSk7CiB9CiAKIGJvb2wgSlNWYWx1ZUlzRGF0ZShKU0NvbnRl
eHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKQpAQCAtMTg1LDcgKzE4NSw3IEBAIGJvb2wgSlNW
YWx1ZUlzRGF0ZShKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKQogICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcihleGVjKTsKIAotICAgIHJl
dHVybiB0b0pTKGV4ZWMsIHZhbHVlKS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkp
OworICAgIHJldHVybiB0b0pTKGV4ZWMsIHZhbHVlKS5pbmhlcml0czxEYXRlSW5zdGFuY2U+KHZt
KTsKIH0KIAogYm9vbCBKU1ZhbHVlSXNPYmplY3RPZkNsYXNzKEpTQ29udGV4dFJlZiBjdHgsIEpT
VmFsdWVSZWYgdmFsdWUsIEpTQ2xhc3NSZWYganNDbGFzcykKQEAgLTIwMSwxNSArMjAxLDE1IEBA
IGJvb2wgSlNWYWx1ZUlzT2JqZWN0T2ZDbGFzcyhKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVm
IHZhbHVlLCBKU0NsYXNzUmVmIGpzQ2xhCiAgICAgSlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVj
LCB2YWx1ZSk7CiAgICAgCiAgICAgaWYgKEpTT2JqZWN0KiBvID0ganNWYWx1ZS5nZXRPYmplY3Qo
KSkgewotICAgICAgICBpZiAoby0+aW5oZXJpdHModm0sIEpTUHJveHk6OmluZm8oKSkpCisgICAg
ICAgIGlmIChvLT5pbmhlcml0czxKU1Byb3h5Pih2bSkpCiAgICAgICAgICAgICBvID0ganNDYXN0
PEpTUHJveHkqPihvKS0+dGFyZ2V0KCk7CiAKLSAgICAgICAgaWYgKG8tPmluaGVyaXRzKHZtLCBK
U0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6aW5mbygpKSkKKyAgICAgICAgaWYgKG8t
PmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Pih2bSkpCiAgICAgICAg
ICAgICByZXR1cm4ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4obykt
PmluaGVyaXRzKGpzQ2xhc3MpOwotICAgICAgICBpZiAoby0+aW5oZXJpdHModm0sIEpTQ2FsbGJh
Y2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+OjppbmZvKCkpKQorICAgICAgICBpZiAoby0+
aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9iamVjdD4+KHZtKSkKICAg
ICAgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9i
amVjdD4qPihvKS0+aW5oZXJpdHMoanNDbGFzcyk7CiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQK
LSAgICAgICAgaWYgKG8tPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBl
ck9iamVjdD46OmluZm8oKSkpCisgICAgICAgIGlmIChvLT5pbmhlcml0czxKU0NhbGxiYWNrT2Jq
ZWN0PEpTQVBJV3JhcHBlck9iamVjdD4+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc0Nhc3Q8
SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+Kj4obyktPmluaGVyaXRzKGpzQ2xh
c3MpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKaW5kZXggN2YxY2Q1MjIxYzE0MWY0YTc0
NDU0MjEyMzQ2YzliNjcxZDc3MTRjZS4uNzgzMzJkNzlhZWM2ZDI4NWJjMWMzYTY0NTZlMWRkZTky
ZmQyY2FmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmpl
Y3RNYXBSZWZQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV2Vh
a09iamVjdE1hcFJlZlByaXZhdGUuY3BwCkBAIC02Myw5ICs2Myw5IEBAIHZvaWQgSlNXZWFrT2Jq
ZWN0TWFwU2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTV2Vha09iamVjdE1hcFJlZiBtYXAsIHZvaWQq
IGtleSwgSlNPCiAgICAgSlNPYmplY3QqIG9iaiA9IHRvSlMob2JqZWN0KTsKICAgICBpZiAoIW9i
aikKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChvYmotPmluaGVyaXRzKHZtLCBKU1Byb3h5
OjppbmZvKCkpCi0gICAgICAgIHx8IG9iai0+aW5oZXJpdHModm0sIEpTQ2FsbGJhY2tPYmplY3Q8
SlNHbG9iYWxPYmplY3Q+OjppbmZvKCkpCi0gICAgICAgIHx8IG9iai0+aW5oZXJpdHModm0sIEpT
Q2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+OjppbmZvKCkpKTsKKyAgICBBU1NF
UlQob2JqLT5pbmhlcml0czxKU1Byb3h5Pih2bSkKKyAgICAgICAgfHwgb2JqLT5pbmhlcml0czxK
U0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pj4odm0pCisgICAgICAgIHx8IG9iai0+aW5o
ZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9iamVjdD4+KHZtKSk7CiAgICAg
bWFwLT5tYXAoKS5zZXQoa2V5LCBvYmopOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNXcmFwcGVyTWFwLm1tCmluZGV4IDk0MjUxOTVmOGQ2NDQ2ZjcyMzVjNGIxY2QxZmZkN2MxMGU0
Y2MwM2QuLjRmNWExM2I4MDEyYTY1N2FlMjE5YWU2MDQyYWEwOTJlOGYzN2MyMDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCkBAIC02NDQsNyArNjQ0LDcgQEAg
aWQgdHJ5VW53cmFwT2JqY09iamVjdChKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1
ZVJlZiB2YWx1ZSkKICAgICBBU1NFUlQoIWV4Y2VwdGlvbik7CiAgICAgSlNDOjpKU0xvY2tIb2xk
ZXIgbG9ja2VyKHRvSlMoY29udGV4dCkpOwogICAgIEpTQzo6Vk0mIHZtID0gdG9KUyhjb250ZXh0
KS0+dm0oKTsKLSAgICBpZiAodG9KUyhvYmplY3QpLT5pbmhlcml0cyh2bSwgSlNDOjpKU0NhbGxi
YWNrT2JqZWN0PEpTQzo6SlNBUElXcmFwcGVyT2JqZWN0Pjo6aW5mbygpKSkKKyAgICBpZiAodG9K
UyhvYmplY3QpLT5pbmhlcml0czxKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNDOjpKU0FQSVdyYXBw
ZXJPYmplY3Q+Pih2bSkpCiAgICAgICAgIHJldHVybiAoaWQpSlNDOjpqc0Nhc3Q8SlNDOjpKU0FQ
SVdyYXBwZXJPYmplY3QqPih0b0pTKG9iamVjdCkpLT53cmFwcGVkT2JqZWN0KCk7CiAgICAgaWYg
KGlkIHRhcmdldCA9IHRyeVVud3JhcENvbnN0cnVjdG9yKCZ2bSwgb2JqZWN0KSkKICAgICAgICAg
cmV0dXJuIHRhcmdldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2Jq
Q0NhbGxiYWNrRnVuY3Rpb24ubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxs
YmFja0Z1bmN0aW9uLm1tCmluZGV4IDYzZjkyMGVkYjIyNGYxYWRkMWQwOWI3YTExMjM3YWQ2NWEx
ODc5MjkuLmE4OGEyNzA1ZDczMTgyNzRmZTE3OTg4YTM5ZDBkZWM2MmJmMjNhYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbQpAQCAt
NzAyLDcgKzcwMiw3IEBAIEpTT2JqZWN0UmVmIG9iakNDYWxsYmFja0Z1bmN0aW9uRm9yQmxvY2so
SlNDb250ZXh0ICpjb250ZXh0LCBpZCB0YXJnZXQpCiAKIGlkIHRyeVVud3JhcENvbnN0cnVjdG9y
KEpTQzo6Vk0qIHZtLCBKU09iamVjdFJlZiBvYmplY3QpCiB7Ci0gICAgaWYgKCF0b0pTKG9iamVj
dCktPmluaGVyaXRzKCp2bSwgSlNDOjpPYmpDQ2FsbGJhY2tGdW5jdGlvbjo6aW5mbygpKSkKKyAg
ICBpZiAoIXRvSlMob2JqZWN0KS0+aW5oZXJpdHM8SlNDOjpPYmpDQ2FsbGJhY2tGdW5jdGlvbj4o
KnZtKSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICBKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9u
SW1wbCogaW1wbCA9IHN0YXRpY19jYXN0PEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb24qPih0b0pT
KG9iamVjdCkpLT5pbXBsKCk7CiAgICAgaWYgKCFpbXBsLT5pc0NvbnN0cnVjdGlibGUoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXgg
Y2RmYjBlMjgyY2M0ZjdiNTMyMDFiMmNjMWMyMDMxZGY4ZGIwNGQ5MS4uYTU2M2Q3ODA0M2NkZjhk
MTIyNTVhNGQwYjJmMjBiNGNlZDkzMTg3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTQ0NjMsNyArNDQ2Myw3IEBAIHZvaWQgQnl0
ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICAgICAg
aWYgKGNhY2hlZEZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgICAgICYmIGNhY2hlZEZ1bmN0aW9u
ICE9IEpTQ2VsbDo6c2Vlbk11bHRpcGxlQ2FsbGVlT2JqZWN0cygpCiAgICAgICAgICAgICAgICAg
ICAgICYmICFtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3Vy
cmVudEluZGV4LCBCYWRDZWxsKSkgewotICAgICAgICAgICAgICAgICAgICBBU1NFUlQoY2FjaGVk
RnVuY3Rpb24tPmluaGVyaXRzKCptX3ZtLCBKU0Z1bmN0aW9uOjppbmZvKCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgQVNTRVJUKGNhY2hlZEZ1bmN0aW9uLT5pbmhlcml0czxKU0Z1bmN0aW9uPigq
bV92bSkpOwogCiAgICAgICAgICAgICAgICAgICAgIEZyb3plblZhbHVlKiBmcm96ZW4gPSBtX2dy
YXBoLmZyZWV6ZShjYWNoZWRGdW5jdGlvbik7CiAgICAgICAgICAgICAgICAgICAgIGFkZFRvR3Jh
cGgoQ2hlY2tDZWxsLCBPcEluZm8oZnJvemVuKSwgY2FsbGVlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDIzMzdhYzU4Y2FjMjNmOTA1OWI3ZDA0
NGU5NzNlYmJhNDQ2NmYzMjIuLmYxZDFjMjM3Yzk0NDdhMmU0OTFhMWM5YWE3NjViNTljOGU4YTI4
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAt
MTA0OSw3ICsxMDQ5LDggQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25S
ZWdFeHBFeGVjR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmEKICAgICBKU1ZhbHVlIGJh
c2UgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgYXJndW1lbnQg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEFyZ3VtZW50KTsKICAgICAKLSAgICBpZiAoIWJhc2Uu
aW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBq
c0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KGJhc2UpOworICAgIGlmIChVTkxJS0VMWSghcmVn
ZXhwKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCiAg
ICAgSlNTdHJpbmcqIGlucHV0ID0gYXJndW1lbnQudG9TdHJpbmdPck51bGwoZXhlYyk7CkBAIC0x
MDU3LDcgKzEwNTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJl
Z0V4cEV4ZWNHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYQogICAgIGlmICghaW5wdXQp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgc2Nv
cGUucmVsZWFzZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBPYmplY3Qo
YmFzZSktPmV4ZWMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnB1dCkpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVnZXhwLT5leGVjKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5wdXQpKTsKIH0K
IAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBFeGVjTm9uR2xv
YmFsT3JTdGlja3koRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBSZWdFeHAqIHJlZ0V4cCwgSlNTdHJpbmcqIHN0cmluZykKQEAgLTExODAsNyArMTE4MSw4IEBA
IHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqCiAgICAgSlNWYWx1ZSBiYXNlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRCYXNlKTsKICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRBcmd1bWVudCk7CiAKLSAgICBpZiAoIWJhc2UuaW5oZXJpdHModm0sIFJlZ0V4cE9i
amVjdDo6aW5mbygpKSkgeworICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhw
T2JqZWN0Kj4oYmFzZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKSB7CiAgICAgICAgIHRo
cm93VHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
QEAgLTExOTAsNyArMTE5Miw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4
cFRlc3RHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqCiAgICAgaWYgKCFp
bnB1dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBy
ZXR1cm4gYXNSZWdFeHBPYmplY3QoYmFzZSktPnRlc3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnB1
dCk7CisgICAgcmV0dXJuIHJlZ2V4cC0+dGVzdChleGVjLCBnbG9iYWxPYmplY3QsIGlucHV0KTsK
IH0KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbChF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAKaW5kZXggZDhlYmM5ZmRkNGJhMjQ5OWM0YmM3ZDE5N2M2ZDY1YjU1MWIzM2I0OC4uMzhi
NzQ3MTI0MTQ4OTNmNmIzMTVkNWU4Nzk5ODVlODc2OWY2OTlmNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtOTgwOCw3ICs5ODA4LDcgQEAg
Y2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB2b2lkIGNvbXBpbGVPdmVycmlkZXNIYXNJbnN0YW5j
ZSgpCiAgICAgewogICAgICAgICBGcm96ZW5WYWx1ZSogZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rp
b24gPSBtX25vZGUtPmNlbGxPcGVyYW5kKCk7Ci0gICAgICAgIEFTU0VSVChkZWZhdWx0SGFzSW5z
dGFuY2VGdW5jdGlvbi0+Y2VsbCgpLT5pbmhlcml0cyh2bSgpLCBKU0Z1bmN0aW9uOjppbmZvKCkp
KTsKKyAgICAgICAgQVNTRVJUKGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uLT5jZWxsKCktPmlu
aGVyaXRzPEpTRnVuY3Rpb24+KHZtKCkpKTsKIAogICAgICAgICBMVmFsdWUgY29uc3RydWN0b3Ig
PSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBMVmFsdWUgaGFzSW5zdGFuY2Ug
PSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOwpAQCAtMTA3MjgsNyArMTA3MjgsNyBAQCBj
bGFzcyBMb3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAgRnJvemVuVmFsdWUqIHJlZ2V4cCA9
IG1fbm9kZS0+Y2VsbE9wZXJhbmQoKTsKICAgICAgICAgTFZhbHVlIGxhc3RJbmRleCA9IGxvd0pT
VmFsdWUobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEFTU0VSVChyZWdleHAtPmNlbGwoKS0+
aW5oZXJpdHModm0oKSwgUmVnRXhwOjppbmZvKCkpKTsKKyAgICAgICAgQVNTRVJUKHJlZ2V4cC0+
Y2VsbCgpLT5pbmhlcml0czxSZWdFeHA+KHZtKCkpKTsKICAgICAgICAgQVNTRVJUKG1fbm9kZS0+
Y2FzdE9wZXJhbmQ8UmVnRXhwKj4oKS0+aXNWYWxpZCgpKTsKIAogICAgICAgICBMQmFzaWNCbG9j
ayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPcGVyYXRpb25zLmNwcAppbmRleCBhYzVhZmM0YmVhYTI5NDY1YTc3MGIyOGYxM2E5NDA3
ODgxYmJkNTQwLi5jYWU4ZTRiODMwM2JmYzg4MzUzMzM0NzMxMWYyZGI1MzIxYWYzOWJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5jcHAKQEAgLTE1MCw3ICsx
NTAsNyBAQCBleHRlcm4gIkMiIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25NYXRlcmlh
bGl6ZU9iamVjdEluT1NSKAogICAgICAgICAgICAgaWYgKHByb3BlcnR5LmxvY2F0aW9uKCkgIT0g
UHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3IoU3RydWN0dXJlUExvYykpCiAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29k
ZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0cyh2bSwgU3RydWN0dXJlOjppbmZvKCkpKTsK
KyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFz
Q2VsbCgpLT5pbmhlcml0czxTdHJ1Y3R1cmU+KHZtKSk7CiAgICAgICAgICAgICBzdHJ1Y3R1cmUg
PSBqc0Nhc3Q8U3RydWN0dXJlKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE4NCwxMSArMTg0LDExIEBAIGV4dGVybiAiQyIg
SlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1hdGVyaWFsaXplT2JqZWN0SW5PU1IoCiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1hdGVyaWFsaXphdGlvbi0+cHJvcGVydGllcygpLnNp
emUoKTsgaS0tOykgewogICAgICAgICAgICAgY29uc3QgRXhpdFByb3BlcnR5VmFsdWUmIHByb3Bl
cnR5ID0gbWF0ZXJpYWxpemF0aW9uLT5wcm9wZXJ0aWVzKClbaV07CiAgICAgICAgICAgICBpZiAo
cHJvcGVydHkubG9jYXRpb24oKSA9PSBQcm9tb3RlZExvY2F0aW9uRGVzY3JpcHRvcihGdW5jdGlv
bkV4ZWN1dGFibGVQTG9jKSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFs
dWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0cyh2bSwgRnVuY3Rpb25FeGVj
dXRhYmxlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVl
OjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+aW5oZXJpdHM8RnVuY3Rpb25FeGVjdXRhYmxl
Pih2bSkpOwogICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBqc0Nhc3Q8RnVuY3Rpb25FeGVj
dXRhYmxlKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgaWYgKHByb3BlcnR5LmxvY2F0aW9uKCkgPT0gUHJvbW90ZWRMb2NhdGlvbkRlc2Ny
aXB0b3IoRnVuY3Rpb25BY3RpdmF0aW9uUExvYykpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+aW5oZXJpdHModm0s
IEpTU2NvcGU6OmluZm8oKSkpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFs
dWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0czxKU1Njb3BlPih2bSkpOwog
ICAgICAgICAgICAgICAgIGFjdGl2YXRpb24gPSBqc0Nhc3Q8SlNTY29wZSo+KEpTVmFsdWU6OmRl
Y29kZSh2YWx1ZXNbaV0pKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjExLDEwICsy
MTEsMTAgQEAgZXh0ZXJuICJDIiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0ZXJp
YWxpemVPYmplY3RJbk9TUigKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbWF0ZXJpYWxpemF0
aW9uLT5wcm9wZXJ0aWVzKCkuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBjb25zdCBFeGl0
UHJvcGVydHlWYWx1ZSYgcHJvcGVydHkgPSBtYXRlcmlhbGl6YXRpb24tPnByb3BlcnRpZXMoKVtp
XTsKICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5sb2NhdGlvbigpID09IFByb21vdGVkTG9jYXRp
b25EZXNjcmlwdG9yKEFjdGl2YXRpb25TY29wZVBMb2MpKSB7Ci0gICAgICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRz
KHZtLCBKU1Njb3BlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChK
U1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+aW5oZXJpdHM8SlNTY29wZT4odm0p
KTsKICAgICAgICAgICAgICAgICBzY29wZSA9IGpzQ2FzdDxKU1Njb3BlKj4oSlNWYWx1ZTo6ZGVj
b2RlKHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eS5sb2NhdGlv
bigpID09IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKEFjdGl2YXRpb25TeW1ib2xUYWJsZVBM
b2MpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZh
bHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBTeW1ib2xUYWJsZTo6aW5mbygpKSk7Cisg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSku
YXNDZWxsKCktPmluaGVyaXRzPFN5bWJvbFRhYmxlPih2bSkpOwogICAgICAgICAgICAgICAgIHRh
YmxlID0ganNDYXN0PFN5bWJvbFRhYmxlKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC01NTIsNyArNTUyLDcgQEAgZXh0ZXJuICJDIiBK
U0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9TUigKICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gbWF0ZXJpYWxpemF0aW9uLT5wcm9wZXJ0aWVzKCkuc2l6
ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBjb25zdCBFeGl0UHJvcGVydHlWYWx1ZSYgcHJvcGVy
dHkgPSBtYXRlcmlhbGl6YXRpb24tPnByb3BlcnRpZXMoKVtpXTsKICAgICAgICAgICAgIGlmIChw
cm9wZXJ0eS5sb2NhdGlvbigpID09IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKFJlZ0V4cE9i
amVjdFJlZ0V4cFBMb2MpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1
ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBSZWdFeHA6OmluZm8o
KSkpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1
ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0czxSZWdFeHA+KHZtKSk7CiAgICAgICAgICAgICAgICAg
cmVnRXhwID0ganNDYXN0PFJlZ0V4cCo+KEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCBlNjYwYTMxMGVmMTM1
YjRhZTM4YzU5ZmNmMjdkZWFjNWFmMDg4ZTM1Li4zZDVjMTdhMzUyYzg0YzMxODcxZTczYjdlMWQ4
ZjdmMDQ2NWFlOGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAtMTUwLDggKzE1MCw3IEBAIEpTVmFs
dWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUoRXhlY1N0YXRlKiBleGVjKQogICAgIGlm
ICh2YWx1ZS5pc1N5bWJvbCgpKQogICAgICAgICByZXR1cm4gdm0uc21hbGxTdHJpbmdzLnN5bWJv
bFN0cmluZygpOwogCi0gICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKLSAg
ICBpZiAob2JqZWN0KSB7CisgICAgaWYgKGF1dG8qIG9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNP
YmplY3QqPih2bSwgdmFsdWUpKSB7CiAgICAgICAgIGlmIChvYmplY3QtPmlzRXJyb3JJbnN0YW5j
ZSgpKQogICAgICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxp
dGVyYWwoImVycm9yIikpOwogCkBAIC0xNTksNDkgKzE1OCw0NyBAQCBKU1ZhbHVlIEpTSW5qZWN0
ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgSlNGdW5jdGlv
biogZnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPih2bSwgdmFsdWUpOwogICAg
ICAgICBpZiAoZnVuY3Rpb24gJiYgZnVuY3Rpb24tPmlzQ2xhc3NDb25zdHJ1Y3RvckZ1bmN0aW9u
KCkpCiAgICAgICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0
ZXJhbCgiY2xhc3MiKSk7Ci0gICAgfQogCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU0Fy
cmF5OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFT
Q0lJTGl0ZXJhbCgiYXJyYXkiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBEaXJlY3RB
cmd1bWVudHM6OmluZm8oKSkgfHwgdmFsdWUuaW5oZXJpdHModm0sIFNjb3BlZEFyZ3VtZW50czo6
aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxp
dGVyYWwoImFycmF5IikpOwotCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFu
Y2U6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVND
SUlMaXRlcmFsKCJkYXRlIikpOwotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2Jq
ZWN0OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFT
Q0lJTGl0ZXJhbCgicmVnZXhwIikpOwotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgUHJveHlP
YmplY3Q6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywg
QVNDSUlMaXRlcmFsKCJwcm94eSIpKTsKLQotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgSlNN
YXA6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVND
SUlMaXRlcmFsKCJtYXAiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU1NldDo6aW5m
bygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVy
YWwoInNldCIpKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0sIEpTV2Vha01hcDo6aW5mbygp
KSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwo
IndlYWttYXAiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU1dlYWtTZXQ6OmluZm8o
KSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFs
KCJ3ZWFrc2V0IikpOwotCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU1N0cmluZ0l0ZXJh
dG9yOjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFT
Q0lJTGl0ZXJhbCgiaXRlcmF0b3IiKSk7Ci0KLSAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlm
IChvYmplY3QtPmluaGVyaXRzPEpTQXJyYXk+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05v
bnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsKKyAgICAgICAgaWYg
KG9iamVjdC0+aW5oZXJpdHM8RGlyZWN0QXJndW1lbnRzPih2bSkgfHwgb2JqZWN0LT5pbmhlcml0
czxTY29wZWRBcmd1bWVudHM+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxT
dHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsKKworICAgICAgICBpZiAob2JqZWN0
LT5pbmhlcml0czxEYXRlSW5zdGFuY2U+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJkYXRlIikpOworICAgICAgICBpZiAob2Jq
ZWN0LT5pbmhlcml0czxSZWdFeHBPYmplY3Q+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05v
bnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJyZWdleHAiKSk7CisgICAgICAgIGlm
IChvYmplY3QtPmluaGVyaXRzPFByb3h5T2JqZWN0Pih2bSkpCisgICAgICAgICAgICByZXR1cm4g
anNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgicHJveHkiKSk7CisKKyAgICAg
ICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNNYXA+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBq
c05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJtYXAiKSk7CisgICAgICAgIGlm
IChvYmplY3QtPmluaGVyaXRzPEpTU2V0Pih2bSkpCisgICAgICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgic2V0IikpOworICAgICAgICBpZiAob2Jq
ZWN0LT5pbmhlcml0czxKU1dlYWtNYXA+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3ZWFrbWFwIikpOworICAgICAgICBpZiAo
b2JqZWN0LT5pbmhlcml0czxKU1dlYWtTZXQ+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05v
bnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3ZWFrc2V0IikpOworCisgICAgICAg
IGlmIChvYmplY3QtPmluaGVyaXRzPEpTU3RyaW5nSXRlcmF0b3I+KHZtKSkKKyAgICAgICAgICAg
IHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJpdGVyYXRvciIp
KTsKKwogICAgICAgICBpZiAob2JqZWN0LT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSgpKQogICAg
ICAgICAgICAgfHwgb2JqZWN0LT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLm1hcEJ1Y2tldFByaXZhdGVOYW1lKCkpCiAgICAgICAgICAgICB8fCBvYmplY3Qt
PmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc2V0QnVja2V0
UHJpdmF0ZU5hbWUoKSkpCiAgICAgICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4
ZWMsIEFTQ0lJTGl0ZXJhbCgiaXRlcmF0b3IiKSk7Ci0gICAgfQogCi0gICAgaWYgKHZhbHVlLmlu
aGVyaXRzKHZtLCBKU0ludDhBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5pbmhlcml0
cyh2bSwgSlNJbnQxNkFycmF5OjppbmZvKCkpCi0gICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKHZt
LCBKU0ludDMyQXJyYXk6OmluZm8oKSkKLSAgICAgICAgfHwgdmFsdWUuaW5oZXJpdHModm0sIEpT
VWludDhBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgSlNVaW50
OENsYW1wZWRBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgSlNV
aW50MTZBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgSlNVaW50
MzJBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgSlNGbG9hdDMy
QXJyYXk6OmluZm8oKSkKLSAgICAgICAgfHwgdmFsdWUuaW5oZXJpdHModm0sIEpTRmxvYXQ2NEFy
cmF5OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFT
Q0lJTGl0ZXJhbCgiYXJyYXkiKSk7CisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTSW50
OEFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNJbnQxNkFycmF5
Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNJbnQzMkFycmF5Pih2bSkK
KyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNVaW50OEFycmF5Pih2bSkKKyAgICAg
ICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNVaW50OENsYW1wZWRBcnJheT4odm0pCisgICAg
ICAgICAgICB8fCBvYmplY3QtPmluaGVyaXRzPEpTVWludDE2QXJyYXk+KHZtKQorICAgICAgICAg
ICAgfHwgb2JqZWN0LT5pbmhlcml0czxKU1VpbnQzMkFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8
IG9iamVjdC0+aW5oZXJpdHM8SlNGbG9hdDMyQXJyYXk+KHZtKQorICAgICAgICAgICAgfHwgb2Jq
ZWN0LT5pbmhlcml0czxKU0Zsb2F0NjRBcnJheT4odm0pKQorICAgICAgICAgICAgcmV0dXJuIGpz
Tm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImFycmF5IikpOworICAgIH0KIAog
ICAgIHJldHVybiBpbXBsKCkuc3VidHlwZShleGVjLCB2YWx1ZSk7CiB9CkBAIC0yMTMsMTQgKzIx
MCwxNCBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpmdW5jdGlvbkRldGFpbHMoRXhl
Y1N0YXRlKiBleGVjKQogCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBKU1ZhbHVlIHZh
bHVlID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgaWYgKCF2YWx1ZS5hc0NlbGwo
KS0+aW5oZXJpdHModm0sIEpTRnVuY3Rpb246OmluZm8oKSkpCisgICAgYXV0byogZnVuY3Rpb24g
PSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPih2bSwgdmFsdWUpOworICAgIGlmICghZnVuY3Rp
b24pCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgLy8gRklYTUU6IDxodHRw
czovL3dlYmtpdC5vcmcvYi84NzE5Mj4gV2ViIEluc3BlY3RvcjogRXhwb3NlIGZ1bmN0aW9uIHNj
b3BlIC8gY2xvc3VyZSBkYXRhCiAKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvdmlkZSBi
ZXR0ZXIgZGV0YWlscyBmb3IgSlNCb3VuZEZ1bmN0aW9ucy4KIAotICAgIEpTRnVuY3Rpb24qIGZ1
bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPih2YWx1ZSk7CiAgICAgY29uc3QgU291cmNlQ29k
ZSogc291cmNlQ29kZSA9IGZ1bmN0aW9uLT5zb3VyY2VDb2RlKCk7CiAgICAgaWYgKCFzb3VyY2VD
b2RlKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQu
Y3BwCmluZGV4IGEyYjZkMDQyYWQyMmVmNmM1ZGQxZWE5ZDI3MzQwYjQ5MTQwZjQ5ZjMuLjJmYjhi
N2VjZDdmYjU2YjY5MWM3ZDU5MjMwMjU3OTY4MTI2MTc0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFn
ZW50LmNwcApAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgSW5zcGVjdG9ySGVhcEFnZW50OjpnZXRQ
cmV2aWV3KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IGhlYXBPYmplY3RJZCwKICAgICB9
CiAKICAgICAvLyBGdW5jdGlvbiBwcmV2aWV3LgotICAgIGlmIChjZWxsLT5pbmhlcml0cyh2bSwg
SlNGdW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlmIChjZWxsLT5pbmhlcml0czxKU0Z1bmN0aW9u
Pih2bSkpIHsKICAgICAgICAgaW5qZWN0ZWRTY3JpcHQuZnVuY3Rpb25EZXRhaWxzKGVycm9yU3Ry
aW5nLCBjZWxsLCBmdW5jdGlvbkRldGFpbHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5k
ZXggY2RjMGY3MjIwNzBiZTdlNTM1ZWFkZTA3MWRiYjMyZjY1MGZmMTFlNi4uZWE3OGFjNjlkZWMy
YzE4MzExODI2Mzk5ZDJhMjYwZmExN2RjMWIxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgQUxX
QVlTX0lOTElORSBzdGF0aWMgdm9pZCBub3RpZnlEZWJ1Z2dlck9mVW53aW5kaW5nKFZNJiB2bSwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUKICAgICBpZiAoRGVidWdnZXIqIGRlYnVnZ2VyID0gY2FsbEZy
YW1lLT52bUVudHJ5R2xvYmFsT2JqZWN0KHZtKS0+ZGVidWdnZXIoKSkgewogICAgICAgICBTdXNw
ZW5kRXhjZXB0aW9uU2NvcGUgc2NvcGUoJnZtKTsKICAgICAgICAgaWYgKGNhbGxGcmFtZS0+aXNB
bnlXYXNtQ2FsbGVlKCkKLSAgICAgICAgICAgIHx8IChjYWxsRnJhbWUtPmNhbGxlZSgpLmlzQ2Vs
bCgpICYmIGNhbGxGcmFtZS0+Y2FsbGVlKCkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBKU0Z1bmN0
aW9uOjppbmZvKCkpKSkKKyAgICAgICAgICAgIHx8IChjYWxsRnJhbWUtPmNhbGxlZSgpLmlzQ2Vs
bCgpICYmIGNhbGxGcmFtZS0+Y2FsbGVlKCkuYXNDZWxsKCktPmluaGVyaXRzPEpTRnVuY3Rpb24+
KHZtKSkpCiAgICAgICAgICAgICBkZWJ1Z2dlci0+dW53aW5kRXZlbnQoY2FsbEZyYW1lKTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgZGVidWdnZXItPmRpZEV4ZWN1dGVQcm9ncmFtKGNhbGxG
cmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU2hh
ZG93Q2hpY2tlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93
Q2hpY2tlbi5jcHAKaW5kZXggZjcwNjY2ZDg5NzBmNmM3MzMxNTkwNzgxNzdkM2VhM2M1NTgwYWI3
MC4uZTM0NDNmMTg5MWQxNzU2YjAzZGZmOGZhNmEyMjg1Y2E4ZTU1ZGNiMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TaGFkb3dDaGlja2VuLmNwcApAQCAt
MzAyLDExICszMDIsMTEgQEAgdm9pZCBTaGFkb3dDaGlja2VuOjp1cGRhdGUoVk0mIHZtLCBFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFt
ZS0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICBpZiAoY29kZUJsb2NrICYmIGNvZGVCbG9jay0+
d2FzQ29tcGlsZWRXaXRoRGVidWdnaW5nT3Bjb2RlcygpICYmIGNvZGVCbG9jay0+c2NvcGVSZWdp
c3RlcigpLmlzVmFsaWQoKSkgewogICAgICAgICAgICAgICAgIHNjb3BlID0gY2FsbEZyYW1lLT5z
Y29wZShjb2RlQmxvY2stPnNjb3BlUmVnaXN0ZXIoKS5vZmZzZXQoKSk7Ci0gICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoc2NvcGUtPmluaGVyaXRzKHZtLCBKU1Njb3BlOjppbmZvKCkpKTsK
KyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzY29wZS0+aW5oZXJpdHM8SlNTY29wZT4o
dm0pKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmRGcmFtZSkgewogICAgICAgICAgICAg
ICAgIHNjb3BlID0gbV9sb2dbaW5kZXhJbkxvZ10uc2NvcGU7CiAgICAgICAgICAgICAgICAgaWYg
KHNjb3BlKQotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzY29wZS0+aW5oZXJp
dHModm0sIEpTU2NvcGU6OmluZm8oKSkpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChzY29wZS0+aW5oZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHRvUHVzaC5hcHBlbmQoRnJhbWUoanNDYXN0PEpTT2JqZWN0Kj4odmlzaXRvci0+Y2Fs
bGVlKCkuYXNDZWxsKCkpLCBjYWxsRnJhbWUsIGlzVGFpbERlbGV0ZWQsIGNhbGxGcmFtZS0+dGhp
c1ZhbHVlKCksIHNjb3BlLCBjb2RlQmxvY2ssIGNhbGxGcmFtZS0+Y2FsbFNpdGVJbmRleCgpKSk7
CiAKQEAgLTM1MSw3ICszNTEsNyBAQCB2b2lkIFNoYWRvd0NoaWNrZW46OnVwZGF0ZShWTSYgdm0s
IEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICBQYWNrZXQgcGFja2V0ID0gbV9sb2dbaW5kZXhJbkxvZ107CiAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgaXNUYWlsRGVsZXRlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKHRhaWxQYWNrZXQuc2NvcGUtPmluaGVyaXRzKHZtLCBKU1Njb3BlOjppbmZvKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQodGFpbFBhY2tldC5zY29wZS0+
aW5oZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAgICAgICAgICAgdG9QdXNoLmFwcGVu
ZChGcmFtZShwYWNrZXQuY2FsbGVlLCBwYWNrZXQuZnJhbWUsIGlzVGFpbERlbGV0ZWQsIHRhaWxQ
YWNrZXQudGhpc1ZhbHVlLCB0YWlsUGFja2V0LnNjb3BlLCB0YWlsUGFja2V0LmNvZGVCbG9jaywg
dGFpbFBhY2tldC5jYWxsU2l0ZUluZGV4KSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGY2NDIwY2FlNjE2YWFjNTI0YzJh
ODE5NGU5YmQwMmY0ZjU3MDk0ZTQuLjU1MTEzOWZiZjI4NjQ0YTBkNjU2ZmNhZDA0ZjQ2ZTk3Zjcy
YjhiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTE5Niw3ICsxOTYsNyBAQCB2
b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAKICAgICBWTSYgdm0gPSAqbV9jb2Rl
QmxvY2stPnZtKCk7CiAgICAgdW5zaWduZWQgc3RhcnRCeXRlY29kZU9mZnNldCA9IDA7Ci0gICAg
aWYgKG1fbG9vcE9TUkVudHJ5Qnl0ZWNvZGVPZmZzZXQgJiYgKG1fY29kZUJsb2NrLT5pbmhlcml0
cyh2bSwgUHJvZ3JhbUNvZGVCbG9jazo6aW5mbygpKSB8fCBtX2NvZGVCbG9jay0+aW5oZXJpdHMo
dm0sIE1vZHVsZVByb2dyYW1Db2RlQmxvY2s6OmluZm8oKSkpKSB7CisgICAgaWYgKG1fbG9vcE9T
UkVudHJ5Qnl0ZWNvZGVPZmZzZXQgJiYgKG1fY29kZUJsb2NrLT5pbmhlcml0czxQcm9ncmFtQ29k
ZUJsb2NrPih2bSkgfHwgbV9jb2RlQmxvY2stPmluaGVyaXRzPE1vZHVsZVByb2dyYW1Db2RlQmxv
Y2s+KHZtKSkpIHsKICAgICAgICAgLy8gV2UgY2FuIG9ubHkgZG8gdGhpcyBvcHRpbWl6YXRpb24g
YmVjYXVzZSB3ZSBleGVjdXRlIFByb2dyYW1Db2RlQmxvY2sncyBleGFjdGx5IG9uY2UuCiAgICAg
ICAgIC8vIFRoaXMgb3B0aW1pemF0aW9uIHdvdWxkIGJlIGludmFsaWQgb3RoZXJ3aXNlLiBXaGVu
IHRoZSBMTEludCBkZXRlcm1pbmVzIGl0IHdhbnRzIHRvCiAgICAgICAgIC8vIGRvIE9TUiBlbnRy
eSBpbnRvIHRoZSBiYXNlbGluZSBKSVQgaW4gYSBsb29wLCBpdCB3aWxsIHBhc3MgaW4gdGhlIGJ5
dGVjb2RlIG9mZnNldCBpdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAKaW5kZXggOWRjNTQ0ZWRhNDAwZmQyYTQyZDllMjk3M2VmNzgyNjFmZTQ2NjNlYy4uZTQ2
YTNkNzVkNDc1ZmU0MGVhMTZiZDJhODZjOTY2NGJmN2Y5ZDkxNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0xMTkxLDcgKzExOTEsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgb3BlcmF0
aW9uTmV3RnVuY3Rpb25Db21tb24oRXhlY1N0YXRlKiBleGVjLCBKU1Njb3BlKiBzY29wZSwgSlND
ZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUsIGJvb2wgaXNJbnZhbGlkYXRlZCkKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwotICAgIEFTU0VSVChmdW5jdGlvbkV4ZWN1dGFibGUtPmluaGVyaXRz
KHZtLCBGdW5jdGlvbkV4ZWN1dGFibGU6OmluZm8oKSkpOworICAgIEFTU0VSVChmdW5jdGlvbkV4
ZWN1dGFibGUtPmluaGVyaXRzPEZ1bmN0aW9uRXhlY3V0YWJsZT4odm0pKTsKICAgICBOYXRpdmVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgaWYgKGlzSW52YWxpZGF0ZWQp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRnVuY3Rpb25UeXBlOjpjcmVhdGVXaXRo
SW52YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50KHZtLCBzdGF0aWNfY2FzdDxGdW5jdGlv
bkV4ZWN1dGFibGUqPihmdW5jdGlvbkV4ZWN1dGFibGUpLCBzY29wZSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcAppbmRleCA5ZWY4NGFhZWNhYjVjZjA3YWUzYTYzZmMxZWY4ZDgwMGYzMWFiMGY1Li5lZjky
YzQyMjkyZjA4NTZhOGQ5N2ZhZTkzODAwNmIyMzEyZDdmN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cApAQCAtMjI2Myw3ICsyMjYzLDcgQEAgc3RhdGljIHZvaWQgY2hlY2tFeGNlcHRpb24oR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGJvb2wgaXNMYXN0RmlsZSwgYm9vbCBoYXMKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKLSAgICBpZiAob3B0aW9ucy5tX3RyZWF0V2F0
Y2hkb2dFeGNlcHRpb25Bc1N1Y2Nlc3MgJiYgdmFsdWUuaW5oZXJpdHModm0sIFRlcm1pbmF0ZWRF
eGVjdXRpb25FcnJvcjo6aW5mbygpKSkgeworICAgIGlmIChvcHRpb25zLm1fdHJlYXRXYXRjaGRv
Z0V4Y2VwdGlvbkFzU3VjY2VzcyAmJiB2YWx1ZS5pbmhlcml0czxUZXJtaW5hdGVkRXhlY3V0aW9u
RXJyb3I+KHZtKSkgewogICAgICAgICBBU1NFUlQoaGFzRXhjZXB0aW9uKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jv
b2xlYW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmpl
Y3QuaAppbmRleCA5ZTVhYWY5YjExODk4MjRiZmI2ZTM0MjVjYTcxYTA2ZDc2ZjFhMDM5Li4yN2M0
M2U3OWE1OGFlYmI1MzhlMGEwOTg2ZGI2MjcxM2QyOTIxNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCkBAIC00NywxMiArNDcsNCBAQCBjbGFz
cyBCb29sZWFuT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgfQogfTsKIAot
Qm9vbGVhbk9iamVjdCogYXNCb29sZWFuT2JqZWN0KEpTVmFsdWUpOwotCi1pbmxpbmUgQm9vbGVh
bk9iamVjdCogYXNCb29sZWFuT2JqZWN0KEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQVNTRVJUKGFz
T2JqZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBCb29sZWFu
T2JqZWN0OjppbmZvKCkpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Qm9vbGVhbk9iamVjdCo+
KGFzT2JqZWN0KHZhbHVlKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAppbmRleCAzN2Rj
ZTdlMzQ3OGJmOTY2MDYyMzg4MTdhZGJlN2M4MmUyNDdlYmY4Li4wNmY5ZmQzMGFkNTI3ODk4MGE1
MzEyODQ3ZDM2YWYwNTZjMTI3OWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcApAQCAtNzYsMTMgKzc2LDE0IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm9vbGVhblByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICBpZiAodGhpc1ZhbHVlID09IGpzQm9vbGVhbih0cnVlKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0cmluZ3MudHJ1ZVN0cmluZygpKTsKIAotICAg
IGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBCb29sZWFuT2JqZWN0OjppbmZvKCkpKQorICAg
IGF1dG8qIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEJvb2xlYW5PYmplY3QqPih2bSwgdGhp
c1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNPYmplY3QpKQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBpZiAoYXNCb29sZWFuT2JqZWN0
KHRoaXNWYWx1ZSktPmludGVybmFsVmFsdWUoKSA9PSBqc0Jvb2xlYW4oZmFsc2UpKQorICAgIGlm
ICh0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkgPT0ganNCb29sZWFuKGZhbHNlKSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0cmluZ3MuZmFsc2VTdHJpbmcoKSk7
CiAKLSAgICBBU1NFUlQoYXNCb29sZWFuT2JqZWN0KHRoaXNWYWx1ZSktPmludGVybmFsVmFsdWUo
KSA9PSBqc0Jvb2xlYW4odHJ1ZSkpOworICAgIEFTU0VSVCh0aGlzT2JqZWN0LT5pbnRlcm5hbFZh
bHVlKCkgPT0ganNCb29sZWFuKHRydWUpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZt
LnNtYWxsU3RyaW5ncy50cnVlU3RyaW5nKCkpOwogfQogCkBAIC05NCwxMCArOTUsMTEgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVmFsdWVPZihFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgaWYgKHRoaXNWYWx1ZS5pc0Jvb2xlYW4oKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpOwogCi0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJp
dHModm0sIEJvb2xlYW5PYmplY3Q6OmluZm8oKSkpCisgICAgYXV0byogdGhpc09iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8Qm9vbGVhbk9iamVjdCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJ
S0VMWSghdGhpc09iamVjdCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IHNjb3BlKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNCb29sZWFuT2JqZWN0KHRo
aXNWYWx1ZSktPmludGVybmFsVmFsdWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IDYxYTU5NTIyYmYzOTVhYmZiYTQwYWY3ZTlkMGE3NGM0ZTQ1MzMzM2MuLjAwM2ZhOTAwZTdh
N2NmNWFkYzBkNjYyMGE1YmJlNDIzNzUzODMyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAtMTMwLDEwICsxMzAsMTEgQEAg
SlNPYmplY3QqIGNvbnN0cnVjdERhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIG4KICAgICBpZiAobnVtQXJncyA9PSAwKSAvLyBuZXcgRGF0
ZSgpIEVDTUEgMTUuOS4zLjMKICAgICAgICAgdmFsdWUgPSBqc0N1cnJlbnRUaW1lKCk7CiAgICAg
ZWxzZSBpZiAobnVtQXJncyA9PSAxKSB7Ci0gICAgICAgIGlmIChhcmdzLmF0KDApLmluaGVyaXRz
KHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCi0gICAgICAgICAgICB2YWx1ZSA9IGFzRGF0ZUlu
c3RhbmNlKGFyZ3MuYXQoMCkpLT5pbnRlcm5hbE51bWJlcigpOworICAgICAgICBKU1ZhbHVlIGFy
ZzAgPSBhcmdzLmF0KDApOworICAgICAgICBpZiAoYXV0byogZGF0ZUluc3RhbmNlID0ganNEeW5h
bWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgYXJnMCkpCisgICAgICAgICAgICB2YWx1ZSA9IGRh
dGVJbnN0YW5jZS0+aW50ZXJuYWxOdW1iZXIoKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICBKU1ZhbHVlIHByaW1pdGl2ZSA9IGFyZ3MuYXQoMCkudG9QcmltaXRpdmUoZXhlYyk7CisgICAg
ICAgICAgICBKU1ZhbHVlIHByaW1pdGl2ZSA9IGFyZzAudG9QcmltaXRpdmUoZXhlYyk7CiAgICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICAgICAgICAg
IGlmIChwcmltaXRpdmUuaXNTdHJpbmcoKSkKICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNl
RGF0ZSh2bSwgYXNTdHJpbmcocHJpbWl0aXZlKS0+dmFsdWUoZXhlYykpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAppbmRleCAzZjExYWUzYTYzNmViZGNi
YWEyMDVhZTJkYjc0ZDRmYTQ2NTMyYjI4Li41Nzg0MTM1MzAxMTM5YTdjMzgyNzcyNTQ0ZTNlNmI4
M2JlZGNmMzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
SW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFu
Y2UuaApAQCAtODAsMTIgKzgwLDQgQEAgY2xhc3MgRGF0ZUluc3RhbmNlIDogcHVibGljIEpTV3Jh
cHBlck9iamVjdCB7CiAgICAgbXV0YWJsZSBQb2lzb25lZFJlZlB0cjxEYXRlSW5zdGFuY2VQb2lz
b24sIERhdGVJbnN0YW5jZURhdGE+IG1fZGF0YTsKIH07CiAKLURhdGVJbnN0YW5jZSogYXNEYXRl
SW5zdGFuY2UoSlNWYWx1ZSk7Ci0KLWlubGluZSBEYXRlSW5zdGFuY2UqIGFzRGF0ZUluc3RhbmNl
KEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHMo
KnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpOwotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxEYXRlSW5zdGFuY2UqPihhc09iamVjdCh2YWx1ZSkpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZVByb3RvdHlwZS5jcHAKaW5kZXggNWFiMDA3ZmMxN2Y2NGU5Y2JkMjhjMTliNWZkNzM5NmVhY2Y5
ZDJkMy4uNmYyMzM2ODczNTJjMGJmZGY0YTU5NjQxZjkyNmI4MTBkNWFmMWUyMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKQEAgLTMyMiwx
MSArMzIyLDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBmb3JtYXRlRGF0ZUluc3RhbmNlKEV4
ZWNTdGF0ZSogZXhlYywgRGF0ZVRpbWVGb3JtYXQgZm9ybWF0CiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5p
bmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2Jq
ID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAo
VU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUlu
c3RhbmNlKHRoaXNWYWx1ZSk7Ci0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSBhc1VUQ1ZhcmlhbnQKICAgICAgICAgPyB0aGlzRGF0ZU9iai0+Z3JlZ29y
aWFuRGF0ZVRpbWVVVEMoZXhlYykKICAgICAgICAgOiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0
ZVRpbWUoZXhlYyk7CkBAIC01MzksMTAgKzUzOCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAo
IXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8q
IHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVl
KTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogICAgIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0Rh
dGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKICAgICBpZiAoIXN0ZDo6aXNmaW5p
dGUodGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TUVycm9yKGV4ZWMsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgi
SW52YWxpZCBEYXRlIikpKTsKIApAQCAtNTg3LDEwICs1ODYsMTAgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0YXRlKiBleGVj
KQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkK
KyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0s
IHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSog
dGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGZvcm1hdExvY2FsZURhdGUoZXhlYywgdGhpc0RhdGVPYmosIHRoaXNEYXRl
T2JqLT5pbnRlcm5hbE51bWJlcigpLCBMb2NhbGVEYXRlQW5kVGltZSkpOwogfQogCkBAIC01OTks
MTAgKzU5OCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNU
b0xvY2FsZURhdGVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5o
ZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9
IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVO
TElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0
YW5jZSh0aGlzVmFsdWUpOyAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGZvcm1hdExvY2Fs
ZURhdGUoZXhlYywgdGhpc0RhdGVPYmosIHRoaXNEYXRlT2JqLT5pbnRlcm5hbE51bWJlcigpLCBM
b2NhbGVEYXRlKSk7CiB9CiAKQEAgLTYxMSwxMCArNjEwLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvTG9jYWxlVGltZVN0cmluZyhFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkp
KQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2
bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNl
KiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoZm9ybWF0TG9jYWxlRGF0ZShleGVjLCB0aGlzRGF0ZU9iaiwgdGhpc0Rh
dGVPYmotPmludGVybmFsTnVtYmVyKCksIExvY2FsZVRpbWUpKTsKIH0KIApAQCAtNjQ2LDEwICs2
NDUsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGlt
ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUlu
c3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxE
YXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRl
T2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0g
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpLT5pbnRl
cm5hbFZhbHVlKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc0RhdGVPYmotPmlu
dGVybmFsVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY0dldEZ1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTY1NywxMSArNjU3LDEwIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyKEV4
ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
PnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFu
Y2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJ
bnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmop
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBE
YXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0K
ICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGlt
ZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTY3MywxMSAr
NjcyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVU
Q0Z1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZt
LCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFt
aWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSgh
dGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29w
ZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhp
c1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRp
bWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgaWYgKCFn
cmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigp
KTsKQEAgLTY4OSwxMSArNjg3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldE1vbnRoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmog
PSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChV
TkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5z
dGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAg
aWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c05hTigpKTsKQEAgLTcwNSwxMSArNzAyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhp
c1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhp
c0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOwor
ICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0g
YXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMo
ZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc05hTigpKTsKQEAgLTcyMSwxMSArNzE3LDEwIEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERhdGUoRXhlY1N0YXRlKiBleGVjKQogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAg
aWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBh
dXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNW
YWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0Rh
dGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRl
VGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtNzM3LDExICs3MzIsMTAgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkp
KQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2
bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNl
KiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAotCiAgICAgY29uc3Qg
R3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdv
cmlhbkRhdGVUaW1lVVRDKGV4ZWMpOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CkBAIC03NTMsMTEgKzc0NywxMCBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXkoRXhlY1N0
YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6
aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3Rh
bmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJ
bnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtNzY5LDExICs3NjIs
MTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF5
KEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5z
dGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERh
dGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVP
YmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAg
ICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsg
Ci0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlz
RGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5E
YXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTc4
NSwxMSArNzc3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVu
Y0dldEhvdXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZt
LCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFt
aWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSgh
dGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29w
ZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhp
c1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRp
bWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYgKCFncmVn
b3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsK
QEAgLTgwMSwxMSArNzkyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY0dldFVUQ0hvdXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmog
PSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChV
TkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5z
dGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7CiAg
ICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc05hTigpKTsKQEAgLTgxNywxMSArODA3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0
aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0
aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7
CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmog
PSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVU
aW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShl
eGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODMzLDExICs4MjIsMTAgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRlcyhFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
LSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQor
ICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwg
dGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0
aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAotCiAgICAgY29uc3QgR3Jl
Z29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlh
bkRhdGVUaW1lVVRDKGV4ZWMpOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CkBAIC04NDksMTEgKzgzNywxMCBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRTZWNvbmRzKEV4ZWNT
dGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6
OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0
YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRl
SW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9i
ai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTg2NSwxMSArODUy
LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ1Nl
Y29uZHMoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERh
dGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nh
c3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlz
RGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
IAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFs
dWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9
IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhleGVjKTsKICAgICBpZiAoIWdyZWdv
cmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpA
QCAtODgxLDEwICs4NjcsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jR2V0TWlsbGlTZWNvbmRzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVl
LmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVP
YmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlm
IChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRl
SW5zdGFuY2UodGhpc1ZhbHVlKTsgCiAgICAgZG91YmxlIG1pbGxpID0gdGhpc0RhdGVPYmotPmlu
dGVybmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4obWlsbGkpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODk5LDEwICs4ODUsMTAgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzKEV4
ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
PnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFu
Y2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJ
bnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmop
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBE
YXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCiAg
ICAgZG91YmxlIG1pbGxpID0gdGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCk7CiAgICAgaWYg
KHN0ZDo6aXNuYW4obWlsbGkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFO
KCkpOwpAQCAtOTE3LDExICs5MDMsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0
aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0
aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7
CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmog
PSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVU
aW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShl
eGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtOTMzLDExICs5MTgsMTAgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VGltZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBp
ZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1
dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1Zh
bHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0
ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAotCiAgICAgZG91YmxlIG1pbGxpID0g
dGltZUNsaXAoZXhlYy0+YXJndW1lbnQoMCkudG9OdW1iZXIoZXhlYykpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0
ID0ganNOdW1iZXIobWlsbGkpOwpAQCAtOTUwLDEwICs5MzQsMTAgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKEV4ZWNTdGF0ZSogZXhlYywgaW50IG51bUFy
Z3NUb1VzZSwKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6Omlu
Zm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5j
ZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5z
dGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsKICAgICBkb3Vi
bGUgbWlsbGkgPSB0aGlzRGF0ZU9iai0+aW50ZXJuYWxOdW1iZXIoKTsKIAogICAgIGlmICghZXhl
Yy0+YXJndW1lbnRDb3VudCgpIHx8IHN0ZDo6aXNuYW4obWlsbGkpKSB7CkBAIC05OTIsMTAgKzk3
NiwxMCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3MoRXhl
Y1N0YXRlKiBleGVjLCBpbnQgbnVtQXJnc1RvVXNlLAogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJp
dHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpz
RHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElL
RUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5j
ZSh0aGlzVmFsdWUpOwogICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpKSB7CiAgICAgICAg
IEpTVmFsdWUgcmVzdWx0ID0ganNOYU4oKTsKICAgICAgICAgdGhpc0RhdGVPYmotPnNldEludGVy
bmFsVmFsdWUodm0sIHJlc3VsdCk7CkBAIC0xMTA3LDEwICsxMDkxLDEwIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFllYXIoRXhlY1N0YXRlKiBleGVjKQog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0g
ICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAg
ICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRo
aXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhp
c0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOwogICAgIGlmICghZXhlYy0+YXJn
dW1lbnRDb3VudCgpKSB7IAogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTmFOKCk7CiAgICAg
ICAgIHRoaXNEYXRlT2JqLT5zZXRJbnRlcm5hbFZhbHVlKHZtLCByZXN1bHQpOwpAQCAtMTE1Miwx
MSArMTEzNiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNH
ZXRZZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBE
YXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWND
YXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhp
c0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7
CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1Zh
bHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUg
PSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYgKCFncmVnb3Jp
YW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAK
aW5kZXggOTgyNjhlNTkzYTljYzlkMGZiZWIxNjE2MDBlZjAwOWY3ZTkyY2IzNS4uNjk5MTQ0YjRh
N2VkMzcyZDlhOTM3YjY0YTQ5YzI3OWY5ZDNlN2ZhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAg
Ym9vbCBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oVk0mIHZtLCBFeGNlcHRpb24qIGV4
Y2VwdGlvbikKICAgICBpZiAoIWV4Y2VwdGlvbi0+dmFsdWUoKS5pc09iamVjdCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gZXhjZXB0aW9uLT52YWx1ZSgpLmluaGVyaXRz
KHZtLCBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I6OmluZm8oKSk7CisgICAgcmV0dXJuIGV4Y2Vw
dGlvbi0+dmFsdWUoKS5pbmhlcml0czxUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I+KHZtKTsKIH0K
IAogSlNPYmplY3QqIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5j
cHAKaW5kZXggZTA0MzEzZjE0NTFlNDYyMGQzNWU1ZmY0ZWMzMzU5ODQ0ZDFlMjY5Mi4uZDBmZDc2
MjQ3Y2JjMTZiNjBhNGJhMmU0ZDNiMzVlODhlNmU0OWZkOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcApAQCAtODUsNyArODUs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJp
bmcoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAg
aWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgSlNGdW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlm
ICh0aGlzVmFsdWUuaW5oZXJpdHM8SlNGdW5jdGlvbj4odm0pKSB7CiAgICAgICAgIEpTRnVuY3Rp
b24qIGZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPih0aGlzVmFsdWUpOwogICAgICAgICBp
ZiAoZnVuY3Rpb24tPmlzSG9zdE9yQnVpbHRpbkZ1bmN0aW9uKCkpIHsKICAgICAgICAgICAgIHNj
b3BlLnJlbGVhc2UoKTsKQEAgLTk4LDcgKzk4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgY2xhc3NTb3VyY2UudG9T
dHJpbmdXaXRob3V0Q29weWluZygpKSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodGhpc1Zh
bHVlLmluaGVyaXRzKHZtLCBKU0FzeW5jRnVuY3Rpb246OmluZm8oKSkpIHsKKyAgICAgICAgaWYg
KHRoaXNWYWx1ZS5pbmhlcml0czxKU0FzeW5jRnVuY3Rpb24+KHZtKSkgewogICAgICAgICAgICAg
U3RyaW5nIGZ1bmN0aW9uSGVhZGVyID0gZXhlY3V0YWJsZS0+aXNBcnJvd0Z1bmN0aW9uKCkgPyAi
YXN5bmMgIiA6ICJhc3luYyBmdW5jdGlvbiAiOwogCiAgICAgICAgICAgICBTdHJpbmdWaWV3IHNv
dXJjZSA9IGV4ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVyKCktPmdldFJhbmdlKApAQCAtMTE2
LDcgKzExNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1
bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCBmdW5jdGlvbkhlYWRlciwgZnVuY3Rpb24t
Pm5hbWUodm0pLCBzb3VyY2UpKTsKICAgICB9CiAKLSAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRz
KHZtLCBJbnRlcm5hbEZ1bmN0aW9uOjppbmZvKCkpKSB7CisgICAgaWYgKHRoaXNWYWx1ZS5pbmhl
cml0czxJbnRlcm5hbEZ1bmN0aW9uPih2bSkpIHsKICAgICAgICAgSW50ZXJuYWxGdW5jdGlvbiog
ZnVuY3Rpb24gPSBhc0ludGVybmFsRnVuY3Rpb24odGhpc1ZhbHVlKTsKICAgICAgICAgc2NvcGUu
cmVsZWFzZSgpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRyaXZp
YWxTdHJpbmcoZXhlYywgImZ1bmN0aW9uICIsIGZ1bmN0aW9uLT5uYW1lKCksICIoKSB7XG4gICAg
W25hdGl2ZSBjb2RlXVxufSIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGVybmFsRnVuY3Rpb24uaAppbmRleCAyZDliYjUwZWFlZTllZDNkMjQ4M2JiMjU1MThiMWQ4
OGQ2N2Q0ZWY0Li43YjdjOGJhZTg4MTBmMDFjYzMwNjViOTgyM2NmOGQ5ZTc1ZDk1ZGI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCkBA
IC05MSw3ICs5MSw3IEBAIEludGVybmFsRnVuY3Rpb24qIGFzSW50ZXJuYWxGdW5jdGlvbihKU1Zh
bHVlKTsKIAogaW5saW5lIEludGVybmFsRnVuY3Rpb24qIGFzSW50ZXJuYWxGdW5jdGlvbihKU1Zh
bHVlIHZhbHVlKQogewotICAgIEFTU0VSVChhc09iamVjdCh2YWx1ZSktPmluaGVyaXRzKCp2YWx1
ZS5nZXRPYmplY3QoKS0+dm0oKSwgSW50ZXJuYWxGdW5jdGlvbjo6aW5mbygpKSk7CisgICAgQVNT
RVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHM8SW50ZXJuYWxGdW5jdGlvbj4oKnZhbHVlLmdl
dE9iamVjdCgpLT52bSgpKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEludGVybmFsRnVuY3Rp
b24qPihhc09iamVjdCh2YWx1ZSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5LmgKaW5kZXggODc3MmFhMmE4ODhjYjA1NmNkYTcwMDljMTU4NjkyMDI2MzMxMWNhMS4u
NzE1MGJiZmM0NTBmMGExZDgyNGFhNjVmOTkxOWVlNjcyMjNhYjEwZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtMjg5LDcgKzI4OSw3IEBAIEpTQXJyYXkqIGFz
QXJyYXkoSlNWYWx1ZSk7CiAKIGlubGluZSBKU0FycmF5KiBhc0FycmF5KEpTQ2VsbCogY2VsbCkK
IHsKLSAgICBBU1NFUlQoY2VsbC0+aW5oZXJpdHMoKmNlbGwtPnZtKCksIEpTQXJyYXk6OmluZm8o
KSkpOworICAgIEFTU0VSVChjZWxsLT5pbmhlcml0czxKU0FycmF5PigqY2VsbC0+dm0oKSkpOwog
ICAgIHJldHVybiBqc0Nhc3Q8SlNBcnJheSo+KGNlbGwpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCmluZGV4IDExNWQ4YjNkMjU4YjlhYzk0YWJh
ZTczMTc0Y2I2MjA0MmEyNWUzZmQuLmI1Zjc3YmU1OTc0OWZlMzg2Y2YzM2NhMWVjOTQ0N2QyNGNj
YmJlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3Bw
CkBAIC0zMDksMTQgKzMwOSwxNCBAQCB2b2lkIEpTVmFsdWU6OmR1bXBGb3JCYWNrdHJhY2UoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKICAgICAgICAgb3V0LnByaW50ZigiJWxmIiwgYXNEb3VibGUo
KSk7CiAgICAgZWxzZSBpZiAoaXNDZWxsKCkpIHsKICAgICAgICAgVk0mIHZtID0gKmFzQ2VsbCgp
LT52bSgpOwotICAgICAgICBpZiAoYXNDZWxsKCktPmluaGVyaXRzKHZtLCBKU1N0cmluZzo6aW5m
bygpKSkgeworICAgICAgICBpZiAoYXNDZWxsKCktPmluaGVyaXRzPEpTU3RyaW5nPih2bSkpIHsK
ICAgICAgICAgICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBhc1N0cmluZyhhc0NlbGwoKSk7CiAgICAg
ICAgICAgICBjb25zdCBTdHJpbmdJbXBsKiBpbXBsID0gc3RyaW5nLT50cnlHZXRWYWx1ZUltcGwo
KTsKICAgICAgICAgICAgIGlmIChpbXBsKQogICAgICAgICAgICAgICAgIG91dC5wcmludCgiXCIi
LCBpbXBsLCAiXCIiKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBvdXQucHJp
bnQoIih1bnJlc29sdmVkIHN0cmluZykiKTsKLSAgICAgICAgfSBlbHNlIGlmIChhc0NlbGwoKS0+
aW5oZXJpdHModm0sIFN0cnVjdHVyZTo6aW5mbygpKSkgeworICAgICAgICB9IGVsc2UgaWYgKGFz
Q2VsbCgpLT5pbmhlcml0czxTdHJ1Y3R1cmU+KHZtKSkgewogICAgICAgICAgICAgb3V0LnByaW50
KCJTdHJ1Y3R1cmVbICIsIGFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCktPmNsYXNz
TmFtZSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIG91dC5wcmludCgiIElEOiAi
LCBhc0NlbGwoKS0+c3RydWN0dXJlSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NKU1ZhbHVlLmgKaW5kZXggMWE0NDk3ZTk2MGE4ZTU4MTJjOGMyYzI4NWJmZjYyOWY0NTA0
ZDI5OS4uMzY2YjBhMjdkYzcwNWRjMzg3NzRhNGRiZTQ5ODA0Y2E0Y2UxODI2NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaApAQCAtMjM2LDYgKzIzNiw3IEBA
IGNsYXNzIEpTVmFsdWUgewogICAgIGJvb2wgaXNDdXN0b21HZXR0ZXJTZXR0ZXIoKSBjb25zdDsK
ICAgICBib29sIGlzT2JqZWN0KCkgY29uc3Q7CiAgICAgYm9vbCBpbmhlcml0cyhWTSYsIGNvbnN0
IENsYXNzSW5mbyopIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFRhcmdldD4gYm9vbCBp
bmhlcml0cyhWTSYpIGNvbnN0OwogICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvT3JOdWxs
KFZNJikgY29uc3Q7CiAgICAgICAgIAogICAgIC8vIEV4dHJhY3RpbmcgdGhlIHZhbHVlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKaW5k
ZXggYWE1MWRkNWQ3NjZkMDk0NTYyNTkzYzlmNmNkOWM3NjU0YzIyMDE4MC4uYjVhNGI0YmRiZWU5
OGMwMzQwNDhhZWNlMTY1NjRmM2ExZTRkNWM1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBAIC03ODUsNiArNzg1LDEyIEBAIGlu
bGluZSBib29sIEpTVmFsdWU6OmluaGVyaXRzKFZNJiB2bSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFz
c0luZm8pIGNvbnN0CiAgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pbmhlcml0cyh2
bSwgY2xhc3NJbmZvKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0PgoraW5saW5lIGJv
b2wgSlNWYWx1ZTo6aW5oZXJpdHMoVk0mIHZtKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwo
KSAmJiBhc0NlbGwoKS0+aW5oZXJpdHM8VGFyZ2V0Pih2bSk7Cit9CisKIGlubGluZSBjb25zdCBD
bGFzc0luZm8qIEpTVmFsdWU6OmNsYXNzSW5mb09yTnVsbChWTSYgdm0pIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmNsYXNzSW5mbyh2bSkgOiBudWxscHRyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAppbmRleCAxODU3ZjY4ZTY0NWFiZDIzNjhk
ODI3ZDU1MGVjMzEzZGFiNmFhYmJmLi41NDU3MGI0YjFhYTQzNTg3ZTA1MTdiNjdkZTBmMjYwNjZh
YWNhYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaApAQCAtNTksNiAr
NTksNyBAQCBpbmxpbmUgVG8ganNDYXN0KEpTVmFsdWUgZnJvbSkKICAgICBtYWNybyhKU1dlYWtN
YXAsIEpTVHlwZTo6SlNXZWFrTWFwVHlwZSwgSlNUeXBlOjpKU1dlYWtNYXBUeXBlKSBcCiAgICAg
bWFjcm8oTnVtYmVyT2JqZWN0LCBKU1R5cGU6Ok51bWJlck9iamVjdFR5cGUsIEpTVHlwZTo6TnVt
YmVyT2JqZWN0VHlwZSkgXAogICAgIG1hY3JvKFByb3h5T2JqZWN0LCBKU1R5cGU6OlByb3h5T2Jq
ZWN0VHlwZSwgSlNUeXBlOjpQcm94eU9iamVjdFR5cGUpIFwKKyAgICBtYWNybyhSZWdFeHBPYmpl
Y3QsIEpTVHlwZTo6UmVnRXhwT2JqZWN0VHlwZSwgSlNUeXBlOjpSZWdFeHBPYmplY3RUeXBlKSBc
CiAgICAgbWFjcm8oRGlyZWN0QXJndW1lbnRzLCBKU1R5cGU6OkRpcmVjdEFyZ3VtZW50c1R5cGUs
IEpTVHlwZTo6RGlyZWN0QXJndW1lbnRzVHlwZSkgXAogICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50
cywgSlNUeXBlOjpTY29wZWRBcmd1bWVudHNUeXBlLCBKU1R5cGU6OlNjb3BlZEFyZ3VtZW50c1R5
cGUpIFwKICAgICBtYWNybyhDbG9uZWRBcmd1bWVudHMsIEpTVHlwZTo6Q2xvbmVkQXJndW1lbnRz
VHlwZSwgSlNUeXBlOjpDbG9uZWRBcmd1bWVudHNUeXBlKSBcCkBAIC04Myw2ICs4NCw3IEBAIGlu
bGluZSBUbyBqc0R5bmFtaWNDYXN0R2VuZXJpY0ltcGwoVk0mIHZtLCBGcm9tKiBmcm9tKQogewog
ICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfc2FtZTxKU09iamVjdCosIFRvKj46OnZhbHVlLCAi
VGhpcyBlbnN1cmVzIG91ciBvdmVybG9hZHMgd29yayIpOwogICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc19iYXNlX29mPEpTQ2VsbCwgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcG9pbnRlcjxUbz46OnR5
cGU+Ojp2YWx1ZSAmJiBzdGQ6OmlzX2Jhc2Vfb2Y8SlNDZWxsLCB0eXBlbmFtZSBzdGQ6OnJlbW92
ZV9wb2ludGVyPEZyb20+Ojp0eXBlPjo6dmFsdWUsICJKUyBjYXN0aW5nIGV4cGVjdHMgdGhhdCB0
aGUgdHlwZXMgeW91IGFyZSBjYXN0aW5nIHRvL2Zyb20gYXJlIHN1YmNsYXNzZXMgb2YgSlNDZWxs
Iik7CisgICAgLy8gRG8gbm90IHVzZSBpbmhlcml0czxzdGQ6OnJlbW92ZV9wb2ludGVyPFRvPjo6
dHlwZT4odm0pIHNpbmNlIGluaGVyaXRzPFQ+IGRlcGVuZHMgb24ganNEeW5hbWljQ2FzdC4KICAg
ICBpZiAoTElLRUxZKGZyb20tPkpTQ2VsbDo6aW5oZXJpdHModm0sIHN0ZDo6cmVtb3ZlX3BvaW50
ZXI8VG8+Ojp0eXBlOjppbmZvKCkpKSkKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRvPihm
cm9tKTsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsLmgKaW5kZXggY2FkY2Y3N2RiNmQwZTc2OWI4NTM1OTdhMGVmYmRhMWVjYTkxNzlkNi4uZGUw
YWFhOWU2YTAyZjEzMTY0ODkyNmNlMmMxN2U0Zjc2MmE5NDMxNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTExNiw2ICsxMTYsNyBAQCBjbGFzcyBKU0NlbGwgOiBw
dWJsaWMgSGVhcENlbGwgewogICAgIGJvb2wgaXNDdXN0b21HZXR0ZXJTZXR0ZXIoKSBjb25zdDsK
ICAgICBib29sIGlzUHJveHkoKSBjb25zdDsKICAgICBib29sIGluaGVyaXRzKFZNJiwgY29uc3Qg
Q2xhc3NJbmZvKikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0PiBib29sIGlu
aGVyaXRzKFZNJikgY29uc3Q7CiAgICAgYm9vbCBpc0FQSVZhbHVlV3JhcHBlcigpIGNvbnN0Owog
ICAgIAogICAgIC8vIEVhY2ggY2VsbCBoYXMgYSBidWlsdC1pbiBsb2NrLiBDdXJyZW50bHkgaXQn
cyBzaW1wbHkgYXZhaWxhYmxlIGZvciB1c2UgaWYgeW91IG5lZWQgaXQuIEl0J3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAppbmRleCBjY2ZmNmJkNWE5
OGMyMDJmZDJiNGFhMGViMTY1ZmVkNjgxMjcxOGY4Li45YjMzNzFjYjNkZjJiNTlkNGJiODA0OWYw
ZjcyMWI4MTdmZTRjNmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGxJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsSW5saW5lcy5oCkBAIC0yNjUsNiArMjY1LDEyIEBAIGlubGluZSBib29sIEpTQ2VsbDo6aW5o
ZXJpdHMoVk0mIHZtLCBjb25zdCBDbGFzc0luZm8qIGluZm8pIGNvbnN0CiAgICAgcmV0dXJuIGNs
YXNzSW5mbyh2bSktPmlzU3ViQ2xhc3NPZihpbmZvKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUg
VGFyZ2V0PgoraW5saW5lIGJvb2wgSlNDZWxsOjppbmhlcml0cyhWTSYgdm0pIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8Y29uc3QgVGFyZ2V0Kj4odm0sIHRoaXMpOworfQorCiBB
TFdBWVNfSU5MSU5FIEpTVmFsdWUgSlNDZWxsOjpmYXN0R2V0T3duUHJvcGVydHkoVk0mIHZtLCBT
dHJ1Y3R1cmUmIHN0cnVjdHVyZSwgUHJvcGVydHlOYW1lIG5hbWUpCiB7CiAgICAgQVNTRVJUKGNh
blVzZUZhc3RHZXRPd25Qcm9wZXJ0eShzdHJ1Y3R1cmUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggMDRjOGIyMjc5OTYzMDAxMWY3YmY0MDE1
NmM2Y2Y0MDEwZjAzZDYzYy4uYmVhOTIxZTJiMzIxZGFiYTI3ZWNkMzY0MWRiMDg4NTYxM2MwMWQ4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAg
LTMxMiw3ICszMTIsNyBAQCBjbGFzcyBSZXRyaWV2ZUNhbGxlckZ1bmN0aW9uRnVuY3RvciB7CiAK
ICAgICAgICAgSlNDZWxsKiBjYWxsZWUgPSB2aXNpdG9yLT5jYWxsZWUoKS5hc0NlbGwoKTsKIAot
ICAgICAgICBpZiAoY2FsbGVlICYmIGNhbGxlZS0+aW5oZXJpdHMoKmNhbGxlZS0+dm0oKSwgSlNC
b3VuZEZ1bmN0aW9uOjppbmZvKCkpKQorICAgICAgICBpZiAoY2FsbGVlICYmIGNhbGxlZS0+aW5o
ZXJpdHM8SlNCb3VuZEZ1bmN0aW9uPigqY2FsbGVlLT52bSgpKSkKICAgICAgICAgICAgIHJldHVy
biBTdGFja1Zpc2l0b3I6OkNvbnRpbnVlOwogCiAgICAgICAgIGlmICghbV9oYXNGb3VuZEZyYW1l
ICYmIChjYWxsZWUgIT0gbV90YXJnZXRDYWxsZWUpKQpAQCAtMzUzLDcgKzM1Myw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmNhbGxlckdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1CiAgICAgSlNWYWx1ZSBjYWxsZXIgPSByZXRyaWV2ZUNhbGxlckZ1
bmN0aW9uKGV4ZWMsIHRoaXNPYmopOwogCiAgICAgLy8gU2VlIEVTNS4xIDE1LjMuNS40IC0gRnVu
Y3Rpb24uY2FsbGVyIG1heSBub3QgYmUgdXNlZCB0byByZXRyaWV2ZSBhIHN0cmljdCBjYWxsZXIu
Ci0gICAgaWYgKCFjYWxsZXIuaXNPYmplY3QoKSB8fCAhYXNPYmplY3QoY2FsbGVyKS0+aW5oZXJp
dHModm0sIEpTRnVuY3Rpb246OmluZm8oKSkpIHsKKyAgICBpZiAoIWNhbGxlci5pc09iamVjdCgp
IHx8ICFhc09iamVjdChjYWxsZXIpLT5pbmhlcml0czxKU0Z1bmN0aW9uPih2bSkpIHsKICAgICAg
ICAgLy8gSXQgaXNuJ3QgYSBKU0Z1bmN0aW9uLCBidXQgaWYgaXQgaXMgYSBKU0NhbGxlZSBmcm9t
IGEgcHJvZ3JhbSBvciBldmFsIGNhbGwgb3IgYW4gaW50ZXJuYWwgY29uc3RydWN0b3IsIHJldHVy
biBudWxsLgogICAgICAgICBpZiAoanNEeW5hbWljQ2FzdDxKU0NhbGxlZSo+KHZtLCBjYWxsZXIp
IHx8IGpzRHluYW1pY0Nhc3Q8SW50ZXJuYWxGdW5jdGlvbio+KHZtLCBjYWxsZXIpKQogICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CkBAIC00NTEsNyArNDUxLDcg
QEAgdm9pZCBKU0Z1bmN0aW9uOjpnZXRPd25Ob25JbmRleFByb3BlcnR5TmFtZXMoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLAogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
aWYgKHRoaXNPYmplY3QtPmlzQnVpbHRpbkZ1bmN0aW9uKCkgJiYgIXRoaXNPYmplY3QtPmhhc1Jl
aWZpZWRMZW5ndGgoKSkKICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZCh2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgpOwotICAgICAgICAgICAgaWYgKCh0aGlzT2JqZWN0LT5pc0J1aWx0
aW5GdW5jdGlvbigpIHx8IHRoaXNPYmplY3QtPmluaGVyaXRzKHZtLCBKU0JvdW5kRnVuY3Rpb246
OmluZm8oKSkpICYmICF0aGlzT2JqZWN0LT5oYXNSZWlmaWVkTmFtZSgpKQorICAgICAgICAgICAg
aWYgKCh0aGlzT2JqZWN0LT5pc0J1aWx0aW5GdW5jdGlvbigpIHx8IHRoaXNPYmplY3QtPmluaGVy
aXRzPEpTQm91bmRGdW5jdGlvbj4odm0pKSAmJiAhdGhpc09iamVjdC0+aGFzUmVpZmllZE5hbWUo
KSkKICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZCh2bS5wcm9wZXJ0eU5hbWVzLT5u
YW1lKTsKICAgICAgICAgfQogICAgIH0KQEAgLTc1Miw3ICs3NTIsNyBAQCBKU0Z1bmN0aW9uOjpQ
cm9wZXJ0eVN0YXR1cyBKU0Z1bmN0aW9uOjpyZWlmeUxhenlCb3VuZE5hbWVJZk5lZWRlZChWTSYg
dm0sIEV4ZWNTdAogCiAgICAgaWYgKGlzQnVpbHRpbkZ1bmN0aW9uKCkpCiAgICAgICAgIHJlaWZ5
TmFtZSh2bSwgZXhlYyk7Ci0gICAgZWxzZSBpZiAodGhpcy0+aW5oZXJpdHModm0sIEpTQm91bmRG
dW5jdGlvbjo6aW5mbygpKSkgeworICAgIGVsc2UgaWYgKHRoaXMtPmluaGVyaXRzPEpTQm91bmRG
dW5jdGlvbj4odm0pKSB7CiAgICAgICAgIEZ1bmN0aW9uUmFyZURhdGEqIHJhcmVEYXRhID0gdGhp
cy0+cmFyZURhdGEodm0pOwogICAgICAgICBTdHJpbmcgbmFtZSA9IG1ha2VTdHJpbmcoImJvdW5k
ICIsIHN0YXRpY19jYXN0PE5hdGl2ZUV4ZWN1dGFibGUqPihtX2V4ZWN1dGFibGUuZ2V0KCkpLT5u
YW1lKCkpOwogICAgICAgICB1bnNpZ25lZCBpbml0aWFsQXR0cmlidXRlcyA9IFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA0NjFl
MDAzZGZhNTA0ZmZlNTEyZTg0NGRiODg2NDEyZDUyZTIwMTAyLi4wMWUxYmNiZTJkYWZlNDAyNjMz
ZjM3OWE4ZjYwYzNjNzY1ZGQ1ODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0zMjcsNyArMzI3LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZW5xdWV1ZUpvYihFeGVjU3RhdGUqIGV4ZWMpCiAKICAg
ICBKU1ZhbHVlIGpvYiA9IGV4ZWMtPmFyZ3VtZW50KDApOwogICAgIEpTVmFsdWUgYXJndW1lbnRz
ID0gZXhlYy0+YXJndW1lbnQoMSk7Ci0gICAgQVNTRVJUKGFyZ3VtZW50cy5pbmhlcml0cyh2bSwg
SlNBcnJheTo6aW5mbygpKSk7CisgICAgQVNTRVJUKGFyZ3VtZW50cy5pbmhlcml0czxKU0FycmF5
Pih2bSkpOwogCiAgICAgZ2xvYmFsT2JqZWN0LT5xdWV1ZU1pY3JvdGFzayhjcmVhdGVKU0pvYih2
bSwgam9iLCBqc0Nhc3Q8SlNBcnJheSo+KGFyZ3VtZW50cykpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggY2VmZTZkNTVhNzI5ZGNm
OTQxYjI5ZWY5ZDZiMGEyMzcxMDRkZDk0OS4uNmFiNzAyMzNmNjZiNWUzZWQ1MmQzMWE4NzZkMmJl
ZjdhOGNjOWUzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCkBAIC05MjUsMTQgKzkyNSw2IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVi
bGljIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QgewogICAgIFJlZlB0cjxUaHJlYWRMb2NhbENh
Y2hlPiBtX3RocmVhZExvY2FsQ2FjaGU7CiB9OwogCi1KU0dsb2JhbE9iamVjdCogYXNHbG9iYWxP
YmplY3QoSlNWYWx1ZSk7Ci0KLWlubGluZSBKU0dsb2JhbE9iamVjdCogYXNHbG9iYWxPYmplY3Qo
SlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5pc0dsb2JhbE9i
amVjdCgpKTsKLSAgICByZXR1cm4ganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oYXNPYmplY3QodmFs
dWUpKTsKLX0KLQogaW5saW5lIEpTQXJyYXkqIGNvbnN0cnVjdEVtcHR5QXJyYXkoRXhlY1N0YXRl
KiBleGVjLCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoID0gMCwgSlNWYWx1ZSBuZXdUYXJn
ZXQgPSBKU1ZhbHVlKCkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJv
bWlzZURlZmVycmVkLmNwcAppbmRleCAxNzliYTc2ZmUyZGVjZGU0OTgyZjliYjA1MDk4Yjg3ZTg1
ODFjZTk4Li40NDljYzllOGQzMzRlZTVmOWMwZGQ0Y2VjOThkZDdmNzE5ZDMxM2JhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJv
bWlzZURlZmVycmVkLmNwcApAQCAtNDcsNyArNDcsNyBAQCBKU0ludGVybmFsUHJvbWlzZURlZmVy
cmVkKiBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBK
UwogCiAgICAgSlNWYWx1ZSBwcm9taXNlID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VQcml2YXRlTmFtZSgpKTsKICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBBU1NFUlQocHJvbWlzZS5pbmhlcml0
cyh2bSwgSlNJbnRlcm5hbFByb21pc2U6OmluZm8oKSkpOworICAgIEFTU0VSVChwcm9taXNlLmlu
aGVyaXRzPEpTSW50ZXJuYWxQcm9taXNlPih2bSkpOwogICAgIEpTVmFsdWUgcmVzb2x2ZSA9IGRl
ZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXNvbHZl
UHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7
CiAgICAgSlNWYWx1ZSByZWplY3QgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJpdmF0ZU5hbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaAppbmRleCBlZTAx
NWUyNjk0YjVkNmZkMDdhN2U5OWI0NDIwODUyNzIzNDYxOGVjLi5mZDNlNGUwZTVlMjEyYjc2NmFj
YmYwMTkwYmVmMGM3YmQ0ODhlZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBpbmxp
bmUgSlNMZXhpY2FsRW52aXJvbm1lbnQ6OkpTTGV4aWNhbEVudmlyb25tZW50KFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsCiAKIGlubGluZSBKU0xleGljYWxFbnZpcm9ubWVudCogYXNBY3Rp
dmF0aW9uKEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5o
ZXJpdHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBKU0xleGljYWxFbnZpcm9ubWVudDo6aW5m
bygpKSk7CisgICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHM8SlNMZXhpY2FsRW52
aXJvbm1lbnQ+KCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSkpOwogICAgIHJldHVybiBqc0Nhc3Q8
SlNMZXhpY2FsRW52aXJvbm1lbnQqPihhc09iamVjdCh2YWx1ZSkpOwogfQogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCBlY2RiZDAzN2Iy
MThmZjkzMjY3ODFlYjUwMmQwMGY1ZGQwM2Q5ZGQ1Li5iMzhkODhjN2FmMjc5NWM3ZWZiNmM4NmJh
YjZiMjkxZDk5ZDVlMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcApAQCAtMTQzLDExICsxNDMsMTEgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIHVu
d3JhcEJveGVkUHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKICAgICBp
ZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICBKU09iamVj
dCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwotICAgIGlmIChvYmplY3QtPmluaGVyaXRzKHZt
LCBOdW1iZXJPYmplY3Q6OmluZm8oKSkpCisgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8TnVtYmVy
T2JqZWN0Pih2bSkpCiAgICAgICAgIHJldHVybiBqc051bWJlcihvYmplY3QtPnRvTnVtYmVyKGV4
ZWMpKTsKLSAgICBpZiAob2JqZWN0LT5pbmhlcml0cyh2bSwgU3RyaW5nT2JqZWN0OjppbmZvKCkp
KQorICAgIGlmIChvYmplY3QtPmluaGVyaXRzPFN0cmluZ09iamVjdD4odm0pKQogICAgICAgICBy
ZXR1cm4gb2JqZWN0LT50b1N0cmluZyhleGVjKTsKLSAgICBpZiAob2JqZWN0LT5pbmhlcml0cyh2
bSwgQm9vbGVhbk9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAob2JqZWN0LT5pbmhlcml0czxCb29s
ZWFuT2JqZWN0Pih2bSkpCiAgICAgICAgIHJldHVybiBvYmplY3QtPnRvUHJpbWl0aXZlKGV4ZWMp
OwogCiAgICAgLy8gRG8gbm90IHVud3JhcCBTeW1ib2xPYmplY3QgdG8gU3ltYm9sLiBJdCBpcyBu
b3QgcGVyZm9ybWVkIGluIHRoZSBzcGVjLgpAQCAtMjM1LDcgKzIzNSw3IEBAIFN0cmluZ2lmaWVy
OjpTdHJpbmdpZmllcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgcmVwbGFjZXIsIEpTVmFsdWUg
c3BhY2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIEpTT2JqZWN0KiByZXBsYWNlck9iamVjdCA9
IGFzT2JqZWN0KG1fcmVwbGFjZXIpOwotICAgIGlmIChyZXBsYWNlck9iamVjdC0+aW5oZXJpdHMo
dm0sIEpTQXJyYXk6OmluZm8oKSkpIHsKKyAgICBpZiAocmVwbGFjZXJPYmplY3QtPmluaGVyaXRz
PEpTQXJyYXk+KHZtKSkgewogICAgICAgICBtX3VzaW5nQXJyYXlSZXBsYWNlciA9IHRydWU7CiAg
ICAgICAgIEpTQXJyYXkqIGFycmF5ID0ganNDYXN0PEpTQXJyYXkqPihyZXBsYWNlck9iamVjdCk7
CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGFycmF5LT5nZXQoZXhlYywgdm0ucHJvcGVydHlO
YW1lcy0+bGVuZ3RoKS50b1VJbnQzMihleGVjKTsKQEAgLTI0Niw4ICsyNDYsOCBAQCBTdHJpbmdp
Zmllcjo6U3RyaW5naWZpZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHJlcGxhY2VyLCBKU1Zh
bHVlIHNwYWNlKQogICAgICAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkK
ICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgaWYgKG5hbWUuaXNPYmplY3Qo
KSkgewotICAgICAgICAgICAgICAgIGlmICghYXNPYmplY3QobmFtZSktPmluaGVyaXRzKHZtLCBO
dW1iZXJPYmplY3Q6OmluZm8oKSkgJiYgIWFzT2JqZWN0KG5hbWUpLT5pbmhlcml0cyh2bSwgU3Ry
aW5nT2JqZWN0OjppbmZvKCkpKQorICAgICAgICAgICAgaWYgKGF1dG8qIG5hbWVPYmplY3QgPSBq
c0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4odm0sIG5hbWUpKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFuYW1lT2JqZWN0LT5pbmhlcml0czxOdW1iZXJPYmplY3Q+KHZtKSAmJiAhbmFtZU9iamVjdC0+
aW5oZXJpdHM8U3RyaW5nT2JqZWN0Pih2bSkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgfSBlbHNlIGlmICghbmFtZS5pc051bWJlcigpICYmICFuYW1lLmlzU3Ry
aW5nKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC02NDksNyArNjQ5LDcgQEAgTkVW
RVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAg
ICAgICAgIGFycmF5U3RhcnRTdGF0ZToKICAgICAgICAgICAgIGNhc2UgQXJyYXlTdGFydFN0YXRl
OiB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGluVmFsdWUuaXNPYmplY3QoKSk7Ci0gICAgICAg
ICAgICAgICAgQVNTRVJUKGlzSlNBcnJheShhc09iamVjdChpblZhbHVlKSkgfHwgYXNPYmplY3Qo
aW5WYWx1ZSktPmluaGVyaXRzKHZtLCBKU0FycmF5OjppbmZvKCkpKTsKKyAgICAgICAgICAgICAg
ICBBU1NFUlQoYXNPYmplY3QoaW5WYWx1ZSktPmluaGVyaXRzPEpTQXJyYXk+KHZtKSk7CiAgICAg
ICAgICAgICAgICAgaWYgKG1hcmtlZFN0YWNrLnNpemUoKSA+IG1heGltdW1GaWx0ZXJSZWN1cnNp
b24pCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvciht
X2V4ZWMsIHNjb3BlKTsKIApAQCAtNzA0LDcgKzcwNCw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVl
IFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgICAgICAgICBvYmplY3RTdGFy
dFN0YXRlOgogICAgICAgICAgICAgY2FzZSBPYmplY3RTdGFydFN0YXRlOiB7CiAgICAgICAgICAg
ICAgICAgQVNTRVJUKGluVmFsdWUuaXNPYmplY3QoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJU
KCFpc0pTQXJyYXkoYXNPYmplY3QoaW5WYWx1ZSkpICYmICFhc09iamVjdChpblZhbHVlKS0+aW5o
ZXJpdHModm0sIEpTQXJyYXk6OmluZm8oKSkpOworICAgICAgICAgICAgICAgIEFTU0VSVCghYXNP
YmplY3QoaW5WYWx1ZSktPmluaGVyaXRzPEpTQXJyYXk+KHZtKSk7CiAgICAgICAgICAgICAgICAg
aWYgKG1hcmtlZFN0YWNrLnNpemUoKSA+IG1heGltdW1GaWx0ZXJSZWN1cnNpb24pCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMsIHNjb3Bl
KTsKIApAQCAtNzY1LDcgKzc2NSw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2Fs
ayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3Qo
aW5WYWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGlzSlNBcnJheShvYmplY3QpIHx8IG9iamVj
dC0+aW5oZXJpdHModm0sIEpTQXJyYXk6OmluZm8oKSkpCisgICAgICAgICAgICAgICAgaWYgKG9i
amVjdC0+aW5oZXJpdHM8SlNBcnJheT4odm0pKQogICAgICAgICAgICAgICAgICAgICBnb3RvIGFy
cmF5U3RhcnRTdGF0ZTsKICAgICAgICAgICAgICAgICBnb3RvIG9iamVjdFN0YXJ0U3RhdGU7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
bWlzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCmlu
ZGV4IGY5NmZlYTE4NmU1YjVkNGM1MjI3NzBiZjRjZGM3OWE5ZDczZmUxZjkuLjNlNjg4N2U1OTVj
ODc1NjE5N2NkNjBmZGQyY2Y0MjFkNjlhYzY1OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9taXNlLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIEpTUHJvbWlzZSogSlNQ
cm9taXNlOjpyZXNvbHZlKEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCiAgICAgQVNTRVJUKCFhcmd1bWVudHMuaGFzT3ZlcmZsb3dlZCgpKTsKICAgICBhdXRvIHJl
c3VsdCA9IGNhbGwoZXhlYywgcHJvbWlzZVJlc29sdmVGdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxE
YXRhLCBnbG9iYWxPYmplY3QucHJvbWlzZUNvbnN0cnVjdG9yKCksIGFyZ3VtZW50cyk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHJlc3VsdC5p
bmhlcml0cyh2bSwgSlNQcm9taXNlOjppbmZvKCkpKTsKKyAgICBBU1NFUlQocmVzdWx0LmluaGVy
aXRzPEpTUHJvbWlzZT4odm0pKTsKICAgICByZXR1cm4ganNDYXN0PEpTUHJvbWlzZSo+KHJlc3Vs
dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
bWlzZURlZmVycmVkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZURlZmVycmVkLmNwcAppbmRleCBiYWE5OTI0OGYwZDhiZWU4ZDc4Zjc1YTU1Yzc3NmZmOGU5Zjc1
YWZkLi5kN2Y3ZDc4OWZlMTQzZjcwOTYyMWUzYzRlYWI5YzI1OGE3NTM0N2QwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlRGVmZXJyZWQuY3BwCkBA
IC02Myw3ICs2Myw3IEBAIEpTUHJvbWlzZURlZmVycmVkKiBKU1Byb21pc2VEZWZlcnJlZDo6Y3Jl
YXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsCiAKICAgICBKU1ZhbHVlIHBy
b21pc2UgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkucHJvbWlzZVByaXZhdGVOYW1lKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IG51bGxwdHIpOwotICAgIEFTU0VSVChwcm9taXNlLmluaGVyaXRzKHZtLCBKU1Byb21pc2U6Omlu
Zm8oKSkpOworICAgIEFTU0VSVChwcm9taXNlLmluaGVyaXRzPEpTUHJvbWlzZT4odm0pKTsKICAg
ICBKU1ZhbHVlIHJlc29sdmUgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkucmVzb2x2ZVByaXZhdGVOYW1lKCkpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIEpTVmFsdWUgcmVqZWN0ID0gZGVmZXJyZWQuZ2V0
KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlamVjdFByaXZhdGVOYW1l
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmpl
Y3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgKaW5kZXgg
MmM5ODE2MzUxOWIzNjEwMzhiZTE0MjNhNWZhZDc5MTdiNjYyODU5Yy4uZWJiMWZhMjNjYzRhNzM4
ZmM0YWQ4NGRjMDQwNTBjMzNhMmY0MDYzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm94eU9iamVjdC5oCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci1jbGFzcyBQcm94eU9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK2NsYXNzIFBy
b3h5T2JqZWN0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAg
IHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMGY1MmFhMjRhYjNl
NGZmYWVmYTUxNTNjN2JmOWYzMmE2MGM4NzBmMC4uNTA2ODU3Mjg5MTk1YTEyMWM5YWQxNjYxNzQ2
YjdiODRiNDUwYzYwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIEpTT2JqZWN0KiBjb25z
dHJ1Y3RSZWdFeHAoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBjb25zdCBBCiAgICAgSlNWYWx1ZSBwYXR0ZXJuQXJnID0gYXJncy5hdCgwKTsKICAgICBKU1Zh
bHVlIGZsYWdzQXJnID0gYXJncy5hdCgxKTsKIAotICAgIGJvb2wgaXNQYXR0ZXJuUmVnRXhwID0g
cGF0dGVybkFyZy5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpOworICAgIGJvb2wg
aXNQYXR0ZXJuUmVnRXhwID0gcGF0dGVybkFyZy5pbmhlcml0czxSZWdFeHBPYmplY3Q+KHZtKTsK
ICAgICBib29sIGNvbnN0cnVjdEFzUmVnZXhwID0gaXNSZWdFeHAodm0sIGV4ZWMsIHBhdHRlcm5B
cmcpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCBk
YTc2MGVjMDRmMGE3ODI3YWE2NTdjY2RiNjc5MjhjMWQ2ZWUwYTViLi4wMTY4ZTU4NTk4MGZhZDdk
MTlkYWI0YzIwNWQ3MTliZmIxOGI4ZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKQEAgLTg2LDcgKzg2LDcgQEAgSlNPYmplY3Qq
IGNvbnN0cnVjdFJlZ0V4cChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IEFyZ0xp
c3QmLCBKU09iamVjdCoKIAogaW5saW5lIFJlZ0V4cENvbnN0cnVjdG9yKiBhc1JlZ0V4cENvbnN0
cnVjdG9yKEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5o
ZXJpdHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBSZWdFeHBDb25zdHJ1Y3Rvcjo6aW5mbygp
KSk7CisgICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHM8UmVnRXhwQ29uc3RydWN0
b3I+KCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxS
ZWdFeHBDb25zdHJ1Y3Rvcio+KGFzT2JqZWN0KHZhbHVlKSk7CiB9CiAKQEAgLTE0MCw3ICsxNDAs
NyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgaXNSZWdFeHAoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgdmFsdWUpCiAgICAgaWYgKCFtYXRjaFZhbHVlLmlzVW5kZWZpbmVkKCkpCiAgICAg
ICAgIHJldHVybiBtYXRjaFZhbHVlLnRvQm9vbGVhbihleGVjKTsKIAotICAgIHJldHVybiBvYmpl
Y3QtPmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSk7CisgICAgcmV0dXJuIG9iamVj
dC0+aW5oZXJpdHM8UmVnRXhwT2JqZWN0Pih2bSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZXNTcGVjUmVnRXhwQ3JlYXRlKEV4ZWNTdGF0ZSopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggNDI1MjQ5YzIzMDRmOTM2
OGQ3YjBhZGNjOWYyN2MyMmVjNWUwMzhmMi4uOWE0NjYyOTk2ZmM4YWUxZjZlYjRhYzU1OWJhMDll
MmRkNTI5ZmJiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBP
YmplY3QuY3BwCkBAIC00OSw2ICs0OSw3IEBAIHZvaWQgUmVnRXhwT2JqZWN0OjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VS
VChpbmhlcml0cyh2bSwgaW5mbygpKSk7CisgICAgQVNTRVJUKHR5cGUoKSA9PSBSZWdFeHBPYmpl
Y3RUeXBlKTsKIH0KIAogdm9pZCBSZWdFeHBPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKQEAgLTY0LDcgKzY1LDcgQEAgYm9vbCBSZWdFeHBP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4
ZWMsIFByb3BlcnQKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGlmIChwcm9wZXJ0
eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+bGFzdEluZGV4KSB7Ci0gICAgICAgIFJlZ0V4cE9i
amVjdCogcmVnRXhwID0gYXNSZWdFeHBPYmplY3Qob2JqZWN0KTsKKyAgICAgICAgUmVnRXhwT2Jq
ZWN0KiByZWdFeHAgPSBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4ob2JqZWN0KTsKICAgICAgICAgdW5z
aWduZWQgYXR0cmlidXRlcyA9IHJlZ0V4cC0+bV9sYXN0SW5kZXhJc1dyaXRhYmxlID8gUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gOiBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seTsKICAgICAgICAgc2xvdC5zZXRWYWx1ZShy
ZWdFeHAsIGF0dHJpYnV0ZXMsIHJlZ0V4cC0+Z2V0TGFzdEluZGV4KCkpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTExMCw3ICsxMTEsNyBAQCBib29sIFJlZ0V4cE9iamVjdDo6ZGVmaW5lT3du
UHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eQogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmIChwcm9wZXJ0
eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+bGFzdEluZGV4KSB7Ci0gICAgICAgIFJlZ0V4cE9i
amVjdCogcmVnRXhwID0gYXNSZWdFeHBPYmplY3Qob2JqZWN0KTsKKyAgICAgICAgUmVnRXhwT2Jq
ZWN0KiByZWdFeHAgPSBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4ob2JqZWN0KTsKICAgICAgICAgaWYg
KGRlc2NyaXB0b3IuY29uZmlndXJhYmxlUHJlc2VudCgpICYmIGRlc2NyaXB0b3IuY29uZmlndXJh
YmxlKCkpCiAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBzaG91bGRU
aHJvdywgQVNDSUlMaXRlcmFsKFVuY29uZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VDb25maWd1cmFi
aWxpdHlFcnJvcikpOwogICAgICAgICBpZiAoZGVzY3JpcHRvci5lbnVtZXJhYmxlUHJlc2VudCgp
ICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZSgpKQpAQCAtMTM5LDEyICsxNDAsMTIgQEAgYm9vbCBS
ZWdFeHBPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHkKIAogc3RhdGljIGJvb2wgcmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4
U3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gYXNSZWdFeHBPYmplY3QoSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpLT5zZXRMYXN0SW5kZXgoZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVl
KSwgdHJ1ZSk7CisgICAgcmV0dXJuIGpzQ2FzdDxSZWdFeHBPYmplY3QqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUp
LCB0cnVlKTsKIH0KIAogc3RhdGljIGJvb2wgcmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4Tm9uU3Ry
aWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gYXNSZWdFeHBPYmplY3QoSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpLT5zZXRMYXN0SW5kZXgoZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKSwg
ZmFsc2UpOworICAgIHJldHVybiBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpLT5zZXRMYXN0SW5kZXgoZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKSwg
ZmFsc2UpOwogfQogCiBib29sIFJlZ0V4cE9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC0xNTYsOCArMTU3LDggQEAgYm9vbCBSZWdFeHBPYmplY3Q6
OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwKICAgICAgICAgcmV0dXJuIG9yZGluYXJ5U2V0U2xvdyhleGVjLCB0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90LnRoaXNWYWx1ZSgpLCBzbG90LmlzU3RyaWN0TW9kZSgp
KTsKIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+bGFzdEluZGV4
KSB7Ci0gICAgICAgIGJvb2wgcmVzdWx0ID0gYXNSZWdFeHBPYmplY3QoY2VsbCktPnNldExhc3RJ
bmRleChleGVjLCB2YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSk7Ci0gICAgICAgIHNsb3Quc2V0
Q3VzdG9tVmFsdWUoYXNSZWdFeHBPYmplY3QoY2VsbCksIHNsb3QuaXNTdHJpY3RNb2RlKCkKKyAg
ICAgICAgYm9vbCByZXN1bHQgPSB0aGlzT2JqZWN0LT5zZXRMYXN0SW5kZXgoZXhlYywgdmFsdWUs
IHNsb3QuaXNTdHJpY3RNb2RlKCkpOworICAgICAgICBzbG90LnNldEN1c3RvbVZhbHVlKHRoaXNP
YmplY3QsIHNsb3QuaXNTdHJpY3RNb2RlKCkKICAgICAgICAgICAgID8gcmVnRXhwT2JqZWN0U2V0
TGFzdEluZGV4U3RyaWN0CiAgICAgICAgICAgICA6IHJlZ0V4cE9iamVjdFNldExhc3RJbmRleE5v
blN0cmljdCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCmluZGV4IGRhNzkwOTA1YzRlNWVmMWQ2NDE2NWMwYTk0
Y2Q2N2Y4MDZlYzFjNGUuLjRmN2FiNTNkMzdiZTU2OTY2MzlmOWJhYWY4ZWE0NjE2NDc1MzNjNDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC0y
Nyw5ICsyNyw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogICAgIAotY2xhc3MgUmVnRXhwT2JqZWN0
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgeworY2xhc3MgUmVnRXhwT2JqZWN0IGZpbmFsIDog
cHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgotICAgIHR5cGVkZWYgSlNOb25GaW5h
bE9iamVjdCBCYXNlOworICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OwogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
IHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1l
czsKIAogICAgIHN0YXRpYyBSZWdFeHBPYmplY3QqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBSZWdFeHAqIHJlZ0V4cCkKQEAgLTEzOCwxMiArMTM4LDQgQEAgY2xhc3MgUmVn
RXhwT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHVpbnQ4X3QgbV9sYXN0
SW5kZXhJc1dyaXRhYmxlOwogfTsKIAotUmVnRXhwT2JqZWN0KiBhc1JlZ0V4cE9iamVjdChKU1Zh
bHVlKTsKLQotaW5saW5lIFJlZ0V4cE9iamVjdCogYXNSZWdFeHBPYmplY3QoSlNWYWx1ZSB2YWx1
ZSkKLXsKLSAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5pbmhlcml0cygqdmFsdWUuZ2V0T2Jq
ZWN0KCktPnZtKCksIFJlZ0V4cE9iamVjdDo6aW5mbygpKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PFJlZ0V4cE9iamVjdCo+KGFzT2JqZWN0KHZhbHVlKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5jcHAKaW5kZXggMzc0MDJhMDIzNjA4ZTVjZTZhMGNmNmQyNDBkMjM5MzA0ODYzZDUyZC4uMzdh
OWRlYzE3NzJhZTY3NzBhMGMwOGFmNmM1ZDdiMTliNzYzZDVhNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC0xMDMsMTQgKzEw
MywxNSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1Rlc3RG
YXN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAg
IGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpCisgICAg
YXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgdGhpc1ZhbHVl
KTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIHNjb3BlKTsKICAgICBKU1N0cmluZyogc3RyaW5nID0gZXhlYy0+YXJndW1l
bnQoMCkudG9TdHJpbmdPck51bGwoZXhlYyk7CiAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3Bl
LmV4Y2VwdGlvbigpID09ICFzdHJpbmcpOwogICAgIGlmICghc3RyaW5nKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIHNjb3BlLnJlbGVhc2UoKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1JlZ0V4cE9iamVjdCh0aGlz
VmFsdWUpLT50ZXN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgc3RyaW5nKSkp
OworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+dGVzdChleGVj
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHN0cmluZykpKTsKIH0KIAogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNFeGVjKEV4ZWNTdGF0ZSogZXhlYykK
QEAgLTExOSwxOSArMTIwLDIwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhw
UHJvdG9GdW5jRXhlYyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZv
KCkpKQorICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odm0s
IHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgIkJ1aWx0aW4gUmVnRXhwIGV4ZWMgY2FuIG9u
bHkgYmUgY2FsbGVkIG9uIGEgUmVnRXhwIG9iamVjdCIpOwogICAgIEpTU3RyaW5nKiBzdHJpbmcg
PSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZ09yTnVsbChleGVjKTsKICAgICBFWENFUFRJT05f
QVNTRVJUKCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gIXN0cmluZyk7CiAgICAgaWYgKCFzdHJpbmcp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgc2Nv
cGUucmVsZWFzZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBPYmplY3Qo
dGhpc1ZhbHVlKS0+ZXhlYyhleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHN0cmlu
ZykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVnZXhwLT5leGVjKGV4ZWMsIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSwgc3RyaW5nKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0KEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICBSZWdFeHBPYmplY3QqIHRoaXNPYmplY3QgPSBhc1JlZ0V4cE9iamVjdChleGVjLT50aGlz
VmFsdWUoKSk7CisgICAgUmVnRXhwT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PFJlZ0V4cE9i
amVjdCo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBKU1N0cmluZyogc3RyaW5nID0ganNDYXN0
PEpTU3RyaW5nKj4oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghdGhpc09i
amVjdC0+cmVnRXhwKCktPmdsb2JhbCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHRoaXNPYmplY3QtPmV4ZWMoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJp
bmcpKTsKQEAgLTE0NCwxNyArMTQ2LDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
cmVnRXhwUHJvdG9GdW5jQ29tcGlsZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2Jq
ZWN0OjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNSZWdFeHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4
cE9iamVjdCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc1JlZ0V4cCkp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAogICAgIFJl
Z0V4cCogcmVnRXhwOwogICAgIEpTVmFsdWUgYXJnMCA9IGV4ZWMtPmFyZ3VtZW50KDApOwogICAg
IEpTVmFsdWUgYXJnMSA9IGV4ZWMtPmFyZ3VtZW50KDEpOwogICAgIAotICAgIGlmIChhcmcwLmlu
aGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpIHsKKyAgICBpZiAoYXV0byogcmVnRXhw
T2JqZWN0ID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgYXJnMCkpIHsKICAgICAg
ICAgaWYgKCFhcmcxLmlzVW5kZWZpbmVkKCkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJDYW5ub3Qgc3VwcGx5IGZsYWdzIHdo
ZW4gY29uc3RydWN0aW5nIG9uZSBSZWdFeHAgZnJvbSBhbm90aGVyLiIpKTsKLSAgICAgICAgcmVn
RXhwID0gYXNSZWdFeHBPYmplY3QoYXJnMCktPnJlZ0V4cCgpOworICAgICAgICByZWdFeHAgPSBy
ZWdFeHBPYmplY3QtPnJlZ0V4cCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFN0cmluZyBwYXR0
ZXJuID0gYXJnMC5pc1VuZGVmaW5lZCgpID8gZW1wdHlTdHJpbmcoKSA6IGFyZzAudG9XVEZTdHJp
bmcoZXhlYyk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1Zh
bHVlKCkpOwpAQCAtMTcyLDEwICsxNzUsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCByZWdFeHBQcm90b0Z1bmNDb21waWxlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIXJlZ0V4
cC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIHNjb3BlLCBj
cmVhdGVTeW50YXhFcnJvcihleGVjLCByZWdFeHAtPmVycm9yTWVzc2FnZSgpKSk7CiAKLSAgICBh
c1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5zZXRSZWdFeHAodm0sIHJlZ0V4cCk7CisgICAgdGhp
c1JlZ0V4cC0+c2V0UmVnRXhwKHZtLCByZWdFeHApOwogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAg
ICBhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5zZXRMYXN0SW5kZXgoZXhlYywgMCk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpOworICAgIHRoaXNSZWdFeHAtPnNldExh
c3RJbmRleChleGVjLCAwKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNSZWdFeHAp
OwogfQogCiB0eXBlZGVmIHN0ZDo6YXJyYXk8Y2hhciwgNiArIDE+IEZsYWdzU3RyaW5nOyAvLyA2
IGRpZmZlcmVudCBmbGFncyBhbmQgYSBudWxsIGNoYXJhY3RlciB0ZXJtaW5hdG9yLgpAQCAtMjU1
LDEzICsyNTgsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dl
dHRlckdsb2JhbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKLSAgICBpZiAoVU5MSUtFTFkoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0
OjppbmZvKCkpKSkgewotICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBQ
cm90b3R5cGU6OmluZm8oKSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdF
eHBPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpIHsK
KyAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5cGU+KHZtKSkKICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlRoZSBS
ZWdFeHAucHJvdG90eXBlLmdsb2JhbCBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEgUmVn
RXhwIG9iamVjdCIpKTsKICAgICB9CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbihhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+Z2xvYmFsKCkpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT5nbG9i
YWwoKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0
dGVySWdub3JlQ2FzZShFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yNzAsMTMgKzI3NCwxNCBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVySWdub3JlQ2FzZShFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoVU5M
SUtFTFkoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSkgewot
ICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBQcm90b3R5cGU6OmluZm8o
KSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwg
dGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpIHsKKyAgICAgICAgaWYgKHRo
aXNWYWx1ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5cGU+KHZtKSkKICAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlRoZSBSZWdFeHAucHJvdG90eXBl
Lmlnbm9yZUNhc2UgZ2V0dGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbiBhIFJlZ0V4cCBvYmplY3Qi
KSk7CiAgICAgfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYXNSZWdF
eHBPYmplY3QodGhpc1ZhbHVlKS0+cmVnRXhwKCktPmlnbm9yZUNhc2UoKSkpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPmlnbm9yZUNhc2Uo
KSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVy
TXVsdGlsaW5lKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTI4NSwxMyArMjkwLDE0IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJNdWx0aWxpbmUoRXhlY1N0YXRl
KiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKFVOTElLRUxZ
KCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkpIHsKLSAgICAg
ICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwUHJvdG90eXBlOjppbmZvKCkpKQor
ICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odm0sIHRoaXNW
YWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKSB7CisgICAgICAgIGlmICh0aGlzVmFs
dWUuaW5oZXJpdHM8UmVnRXhwUHJvdG90eXBlPih2bSkpCiAgICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJUaGUgUmVnRXhwLnByb3RvdHlwZS5tdWx0
aWxpbmUgZ2V0dGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbiBhIFJlZ0V4cCBvYmplY3QiKSk7CiAg
ICAgfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYXNSZWdFeHBPYmpl
Y3QodGhpc1ZhbHVlKS0+cmVnRXhwKCktPm11bHRpbGluZSgpKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+bXVsdGlsaW5lKCkpKTsKIH0K
IAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlckRvdEFsbChF
eGVjU3RhdGUqIGV4ZWMpCkBAIC0zMDAsMTMgKzMwNiwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyRG90QWxsKEV4ZWNTdGF0ZSogZXhlYykKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgCiAgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoVU5MSUtFTFkoIXRoaXNWYWx1
ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSkgewotICAgICAgICBpZiAodGhp
c1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBQcm90b3R5cGU6OmluZm8oKSkpCisgICAgYXV0byog
cmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAg
ICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpIHsKKyAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0
czxSZWdFeHBQcm90b3R5cGU+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IHNjb3BlLCBBU0NJSUxpdGVyYWwoIlRoZSBSZWdFeHAucHJvdG90eXBlLmRvdEFsbCBnZXR0ZXIg
Y2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEgUmVnRXhwIG9iamVjdCIpKTsKICAgICB9CiAgICAgCi0g
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYXNSZWdFeHBPYmplY3QodGhpc1Zh
bHVlKS0+cmVnRXhwKCktPmRvdEFsbCgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+ZG90QWxsKCkpKTsKIH0KICAgICAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJTdGlja3koRXhlY1N0YXRlKiBl
eGVjKQpAQCAtMzE1LDEzICszMjIsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBy
ZWdFeHBQcm90b0dldHRlclN0aWNreShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKLSAgICBpZiAoVU5MSUtFTFkoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwg
UmVnRXhwT2JqZWN0OjppbmZvKCkpKSkgewotICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRz
KHZtLCBSZWdFeHBQcm90b3R5cGU6OmluZm8oKSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5h
bWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFko
IXJlZ2V4cCkpIHsKKyAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5
cGU+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxp
dGVyYWwoIlRoZSBSZWdFeHAucHJvdG90eXBlLnN0aWNreSBnZXR0ZXIgY2FuIG9ubHkgYmUgY2Fs
bGVkIG9uIGEgUmVnRXhwIG9iamVjdCIpKTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4oYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+cmVnRXhwKCkt
PnN0aWNreSgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhw
LT5yZWdFeHAoKS0+c3RpY2t5KCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCByZWdFeHBQcm90b0dldHRlclVuaWNvZGUoRXhlY1N0YXRlKiBleGVjKQpAQCAtMzMwLDEzICsz
MzgsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclVu
aWNvZGUoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0g
ICAgaWYgKFVOTElLRUxZKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5m
bygpKSkpIHsKLSAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwUHJvdG90
eXBlOjppbmZvKCkpKQorICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2Jq
ZWN0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKSB7CisgICAg
ICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8UmVnRXhwUHJvdG90eXBlPih2bSkpCiAgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJUaGUgUmVnRXhw
LnByb3RvdHlwZS51bmljb2RlIGdldHRlciBjYW4gb25seSBiZSBjYWxsZWQgb24gYSBSZWdFeHAg
b2JqZWN0IikpOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbihhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+dW5pY29kZSgpKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+dW5p
Y29kZSgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9H
ZXR0ZXJGbGFncyhFeGVjU3RhdGUqIGV4ZWMpCkBAIC00NjYsMTMgKzQ3NSwxNCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyU291cmNlKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmIChVTkxJS0VMWSgh
dGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpKSB7Ci0gICAgICAg
IGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cFByb3RvdHlwZTo6aW5mbygpKSkKKyAg
ICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlzVmFs
dWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkgeworICAgICAgICBpZiAodGhpc1ZhbHVl
LmluaGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4odm0pKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoIig/OikiKSkpOwogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJUaGUg
UmVnRXhwLnByb3RvdHlwZS5zb3VyY2UgZ2V0dGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbiBhIFJl
Z0V4cCBvYmplY3QiKSk7CiAgICAgfQogCi0gICAgU3RyaW5nIHBhdHRlcm4gPSBhc1JlZ0V4cE9i
amVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+cGF0dGVybigpOworICAgIFN0cmluZyBwYXR0ZXJu
ID0gcmVnZXhwLT5yZWdFeHAoKS0+cGF0dGVybigpOwogICAgIGlmIChwYXR0ZXJuLmlzOEJpdCgp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlZ0V4cFByb3RvR2V0dGVyU291cmNl
SW50ZXJuYWwoZXhlYywgcGF0dGVybiwgcGF0dGVybi5jaGFyYWN0ZXJzOCgpLCBwYXR0ZXJuLmxl
bmd0aCgpKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWdFeHBQcm90b0dldHRlclNv
dXJjZUludGVybmFsKGV4ZWMsIHBhdHRlcm4sIHBhdHRlcm4uY2hhcmFjdGVyczE2KCksIHBhdHRl
cm4ubGVuZ3RoKCkpKTsKQEAgLTQ4Myw3ICs0OTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZhc3QoRXhlY1N0YXRlKiBleGVjKQogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgUmVn
RXhwKiByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKTsKKyAgICBS
ZWdFeHAqIHJlZ0V4cCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPih0aGlzVmFsdWUpLT5yZWdFeHAo
KTsKIAogICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS50
b1N0cmluZyhleGVjKTsKICAgICBTdHJpbmcgcyA9IHN0cmluZy0+dmFsdWUoZXhlYyk7CkBAIC01
OTAsNyArNjAwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1
bmNTcGxpdEZhc3QoRXhlY1N0YXRlKiBleGVjKQogICAgIC8vIDEuIFtoYW5kbGVkIGJ5IEpTIGJ1
aWx0aW5dIExldCByeCBiZSB0aGUgdGhpcyB2YWx1ZS4KICAgICAvLyAyLiBbaGFuZGxlZCBieSBK
UyBidWlsdGluXSBJZiBUeXBlKHJ4KSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5cGVFcnJvciBl
eGNlcHRpb24uCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAg
ICBSZWdFeHAqIHJlZ2V4cCA9IGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpOwor
ICAgIFJlZ0V4cCogcmVnZXhwID0ganNDYXN0PFJlZ0V4cE9iamVjdCo+KHRoaXNWYWx1ZSktPnJl
Z0V4cCgpOwogCiAgICAgLy8gMy4gW2hhbmRsZWQgYnkgSlMgYnVpbHRpbl0gTGV0IFMgYmUgPyBU
b1N0cmluZyhzdHJpbmcpLgogICAgIEpTU3RyaW5nKiBpbnB1dFN0cmluZyA9IGV4ZWMtPmFyZ3Vt
ZW50KDApLnRvU3RyaW5nKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdPYmplY3QuaAppbmRleCAyNGZmZjAwYWQ1Nzg0OGIzM2RkYjcwZjM5MDFlOWZlMTRjMGY3
ODgwLi41MDZjNGM1YjRkMGExMmQ5NWJkODlmNmYyYjYyN2Q2Zjc3YTA4ODBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtNzEsMTQgKzcxLDYg
QEAgY2xhc3MgU3RyaW5nT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgU3RyaW5nT2JqZWN0KFZNJiwgU3RydWN0dXJlKik7CiB9OwogCi1TdHJp
bmdPYmplY3QqIGFzU3RyaW5nT2JqZWN0KEpTVmFsdWUpOwotCi1pbmxpbmUgU3RyaW5nT2JqZWN0
KiBhc1N0cmluZ09iamVjdChKU1ZhbHVlIHZhbHVlKQotewotICAgIEFTU0VSVChhc09iamVjdCh2
YWx1ZSktPmluaGVyaXRzKCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSwgU3RyaW5nT2JqZWN0Ojpp
bmZvKCkpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U3RyaW5nT2JqZWN0Kj4oYXNPYmplY3Qo
dmFsdWUpKTsKLX0KLQogSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nT2JqZWN0KiBjb25zdHJ1Y3RT
dHJpbmcoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwogCiAvLyBIZWxwZXIgZm9yIHBy
b2R1Y2luZyBhIEpTU3RyaW5nIGZvciAnc3RyaW5nJywgd2hlcmUgJ3N0cmluZycgd2FzIGJlZW4g
cHJvZHVjZWQgYnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuY3BwCmluZGV4IDZlNDFlYzdiMzgzODc4Y2ExMDZhMjNhMjI2NjY0ODExNzRhNjZj
ODkuLmEwZDM2MDE3ZGY0NjkxNzJiZjEzZTYxOWQ5ODJiYTM2ZDE4MTQ4MGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAtNTMz
LDcgKzUzMyw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTU3RyaW5nKiByZXBsYWNlVXNpbmdS
ZWdFeHBTZWFyY2goCiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UgPSBzdHJpbmctPnZhbHVlKGV4
ZWMpOwogICAgIHVuc2lnbmVkIHNvdXJjZUxlbiA9IHNvdXJjZS5sZW5ndGgoKTsKICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBSZWdFeHBPYmplY3QqIHJlZ0V4
cE9iamVjdCA9IGFzUmVnRXhwT2JqZWN0KHNlYXJjaFZhbHVlKTsKKyAgICBSZWdFeHBPYmplY3Qq
IHJlZ0V4cE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPihzZWFyY2hWYWx1ZSk7CiAgICAg
UmVnRXhwKiByZWdFeHAgPSByZWdFeHBPYmplY3QtPnJlZ0V4cCgpOwogICAgIGJvb2wgZ2xvYmFs
ID0gcmVnRXhwLT5nbG9iYWwoKTsKICAgICBib29sIGhhc05hbWVkQ2FwdHVyZXMgPSByZWdFeHAt
Pmhhc05hbWVkQ2FwdHVyZXMoKTsKQEAgLTk1NCw3ICs5NTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlcihFeGVjU3RhdGUqIGV4
ZWMpCiBBTFdBWVNfSU5MSU5FIEpTU3RyaW5nKiByZXBsYWNlKAogICAgIFZNJiB2bSwgRXhlY1N0
YXRlKiBleGVjLCBKU1N0cmluZyogc3RyaW5nLCBKU1ZhbHVlIHNlYXJjaFZhbHVlLCBKU1ZhbHVl
IHJlcGxhY2VWYWx1ZSkKIHsKLSAgICBpZiAoc2VhcmNoVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4
cE9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAoc2VhcmNoVmFsdWUuaW5oZXJpdHM8UmVnRXhwT2Jq
ZWN0Pih2bSkpCiAgICAgICAgIHJldHVybiByZXBsYWNlVXNpbmdSZWdFeHBTZWFyY2godm0sIGV4
ZWMsIHN0cmluZywgc2VhcmNoVmFsdWUsIHJlcGxhY2VWYWx1ZSk7CiAgICAgcmV0dXJuIHJlcGxh
Y2VVc2luZ1N0cmluZ1NlYXJjaCh2bSwgZXhlYywgc3RyaW5nLCBzZWFyY2hWYWx1ZSwgcmVwbGFj
ZVZhbHVlKTsKIH0KQEAgLTk4Myw3ICs5ODMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2luZ1JlZ0V4cChFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICBK
U1ZhbHVlIHNlYXJjaFZhbHVlID0gZXhlYy0+YXJndW1lbnQoMCk7Ci0gICAgaWYgKCFzZWFyY2hW
YWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghc2VhcmNo
VmFsdWUuaW5oZXJpdHM8UmVnRXhwT2JqZWN0Pih2bSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICBzY29wZS5yZWxlYXNlKCk7CkBAIC0xMDI1
LDggKzEwMjUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVu
Y1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAodGhpc1ZhbHVlLmlzU3RyaW5nKCkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKTsKIAotICAgIGlmICh0
aGlzVmFsdWUuaW5oZXJpdHModm0sIFN0cmluZ09iamVjdDo6aW5mbygpKSkKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShhc1N0cmluZ09iamVjdCh0aGlzVmFsdWUpLT5pbnRlcm5hbFZh
bHVlKCkpOworICAgIGF1dG8qIHN0cmluZ09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8U3RyaW5nT2Jq
ZWN0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKHN0cmluZ09iamVjdCkKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShzdHJpbmdPYmplY3QtPmludGVybmFsVmFsdWUoKSk7CiAKICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcAppbmRleCBkMTY2NjE0
ZDFjYjg0NDU5N2VhODhlZDU2NGMzZTM5NmM1YTE4MTJlLi4zZDc5OGM2ZGNlNWViYmEyNTgxMmZj
NDBhMjgxYjc2YjQ1MWJmZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzeW1ib2xQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgU3ltYm9sVG9TdHJpbmdUeXBlRXJyb3IpOwogICAg
ICAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGFzT2JqZWN0KHRoaXNWYWx1ZSk7Ci0gICAgICAg
IGlmICghdGhpc09iamVjdC0+aW5oZXJpdHModm0sIFN5bWJvbE9iamVjdDo6aW5mbygpKSkKKyAg
ICAgICAgaWYgKCF0aGlzT2JqZWN0LT5pbmhlcml0czxTeW1ib2xPYmplY3Q+KHZtKSkKICAgICAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBTeW1ib2xUb1N0cmlu
Z1R5cGVFcnJvcik7CiAgICAgICAgIHN5bWJvbCA9IGFzU3ltYm9sKGpzQ2FzdDxTeW1ib2xPYmpl
Y3QqPih0aGlzT2JqZWN0KS0+aW50ZXJuYWxWYWx1ZSgpKTsKICAgICB9CkBAIC0xMDYsNyArMTA2
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xQcm90b0Z1bmNWYWx1ZU9m
KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
c2NvcGUsIFN5bWJvbFZhbHVlT2ZUeXBlRXJyb3IpOwogCiAgICAgSlNPYmplY3QqIHRoaXNPYmpl
Y3QgPSBhc09iamVjdCh0aGlzVmFsdWUpOwotICAgIGlmICghdGhpc09iamVjdC0+aW5oZXJpdHMo
dm0sIFN5bWJvbE9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAoIXRoaXNPYmplY3QtPmluaGVyaXRz
PFN5bWJvbE9iamVjdD4odm0pKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBzY29wZSwgU3ltYm9sVmFsdWVPZlR5cGVFcnJvcik7CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzQ2FzdDxTeW1ib2xPYmplY3QqPih0aGlzT2JqZWN0KS0+aW50ZXJuYWxWYWx1ZSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAppbmRleCA5ZTA4
YWZlZTI1ZGM4MWExOTRlOWMwNDU5OGFiZWNmYWQ3ZGNlMDBhLi40MmE5YjVmOTUyOTc0NjFmMGNi
MzczNGNlYmFlMzNhZDFlNjc2YzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvSlNEb2xsYXJWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pT
RG9sbGFyVk0uY3BwCkBAIC05NDksNyArOTQ5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGN1
c3RvbUdldEFjY2Vzc29yKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHIK
IAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIGN1c3RvbUdldFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgc2xvdFZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgUkVMRUFTRV9B
U1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHNsb3RWYWx1ZSkuaW5oZXJpdHMoZXhlYy0+dm0oKSwgSlNU
ZXN0Q3VzdG9tR2V0dGVyU2V0dGVyOjppbmZvKCkpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChKU1Zh
bHVlOjpkZWNvZGUoc2xvdFZhbHVlKS5pbmhlcml0czxKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI+
KGV4ZWMtPnZtKCkpKTsKICAgICAvLyBQYXNzZWQgcHJvcGVydHkgaG9sZGVyLgogICAgIHJldHVy
biBzbG90VmFsdWU7CiB9CkBAIC05NzEsNyArOTcxLDcgQEAgc3RhdGljIGJvb2wgY3VzdG9tU2V0
VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90VmFsdWUsIEVuY29kZWRK
U1YKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogCi0gICAgUkVMRUFTRV9BU1NFUlQoSlNW
YWx1ZTo6ZGVjb2RlKHNsb3RWYWx1ZSkuaW5oZXJpdHMoZXhlYy0+dm0oKSwgSlNUZXN0Q3VzdG9t
R2V0dGVyU2V0dGVyOjppbmZvKCkpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNv
ZGUoc2xvdFZhbHVlKS5pbmhlcml0czxKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI+KGV4ZWMtPnZt
KCkpKTsKIAogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KTsKICAgICBSRUxFQVNFX0FTU0VSVCh2YWx1ZS5pc09iamVjdCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SGVscGVycy5oCmluZGV4IDE0
NDg3ZjAxYzZiMmRkZGVjNWRjNDBlMDU0ODYxNmU0NzNmMDI0YTcuLmFmYzVlMTY2YzFiY2RkMzhk
ZTBmZTZjMzcyOWI2NDExODQzNTgwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaApAQCAtOTQsMTIgKzk0LDEyIEBAIEFM
V0FZU19JTkxJTkUgVmVjdG9yPHVpbnQ4X3Q+IGNyZWF0ZVNvdXJjZUJ1ZmZlckZyb21WYWx1ZShW
TSYgdm0sIEV4ZWNTdGF0ZSogZXhlCiAKIEFMV0FZU19JTkxJTkUgYm9vbCBpc1dlYkFzc2VtYmx5
SG9zdEZ1bmN0aW9uKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCwgV2ViQXNzZW1ibHlGdW5jdGlv
biomIHdhc21GdW5jdGlvbiwgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qJiB3YXNtV3JhcHBl
ckZ1bmN0aW9uKQogewotICAgIGlmIChvYmplY3QtPmluaGVyaXRzKHZtLCBXZWJBc3NlbWJseUZ1
bmN0aW9uOjppbmZvKCkpKSB7CisgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8V2ViQXNzZW1ibHlG
dW5jdGlvbj4odm0pKSB7CiAgICAgICAgIHdhc21GdW5jdGlvbiA9IGpzQ2FzdDxXZWJBc3NlbWJs
eUZ1bmN0aW9uKj4ob2JqZWN0KTsKICAgICAgICAgd2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51bGxw
dHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAob2JqZWN0LT5pbmhlcml0
cyh2bSwgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmluZm8oKSkpIHsKKyAgICBpZiAob2Jq
ZWN0LT5pbmhlcml0czxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj4odm0pKSB7CiAgICAgICAg
IHdhc21XcmFwcGVyRnVuY3Rpb24gPSBqc0Nhc3Q8V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24q
PihvYmplY3QpOwogICAgICAgICB3YXNtRnVuY3Rpb24gPSBudWxscHRyOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcAppbmRleCA1MmM1ZGEyYmQwOTZjM2JjZWUy
YzgxNGY2MmQzOTVmZjlhYjkzNzA0Li43YTFhYTM4Mjk2MjUzMmRkZGI0YzA1MGUwOGEyNGZjMzZk
NGQyMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseVdyYXBwZXJGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwCkBAIC02MCw3ICs2MCw3IEBAIFdlYkFz
c2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbihWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnCiAKIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiBXZWJBc3Nl
bWJseVdyYXBwZXJGdW5jdGlvbjo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNPYmplY3QqIGZ1bmN0aW9uLCB1bnNpZ25lZCBpbXBvcnRJbmRleCwgSlNXZWJB
c3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSwgV2FzbTo6U2lnbmF0dXJlSW5kZXggc2lnbmF0dXJl
SW5kZXgpCiB7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghZnVuY3Rpb24tPmluaGVyaXRzKHZt
LCBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSwgIldlIHNob3VsZCBuZXZlciBk
b3VibGUgd3JhcCBhIHdyYXBwZXIgZnVuY3Rpb24uIik7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RSghZnVuY3Rpb24tPmluaGVyaXRzPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uPih2bSksICJX
ZSBzaG91bGQgbmV2ZXIgZG91YmxlIHdyYXAgYSB3cmFwcGVyIGZ1bmN0aW9uLiIpOwogICAgIFN0
cmluZyBuYW1lID0gIiI7CiAgICAgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IHZtLmdl
dEhvc3RGdW5jdGlvbihjYWxsV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24sIE5vSW50cmluc2lj
LCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciwgbnVsbHB0ciwgbmFtZSk7CiAgICAgV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qIHJlc3VsdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uPih2bS5oZWFwKSkgV2ViQXNzZW1ibHlXcmFw
cGVyRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseVdy
YXBwZXJGdW5jdGlvblN0cnVjdHVyZSgpLCBXYXNtOjpDYWxsYWJsZUZ1bmN0aW9uIHsgc2lnbmF0
dXJlSW5kZXgsICZpbnN0YW5jZS0+aW5zdGFuY2UoKS5pbXBvcnRGdW5jdGlvbkluZm8oaW1wb3J0
SW5kZXgpLT53YXNtVG9FbWJlZGRlclN0dWJFeGVjdXRhYmxlQWRkcmVzcyB9ICk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCmluZGV4
IGQ3OGUyMjBiMjA1ZDMwZWNiMDMzMzBjZDY2MDdjMjQwNzZjZTRjYTMuLjdkZGExZmE2NjJlNGQ4
NTQ1NTY0NjBjMTllNjE1YTNiMDJiOWEyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgc3Rh
dGljIFJlZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktleUZyb21WYWx1ZShFeGVjU3RhdGUmIGV4ZWMs
IEpTVmFsdWUgdmFsdWUsIFZlY3QKICAgICBpZiAodmFsdWUuaXNTdHJpbmcoKSkKICAgICAgICAg
cmV0dXJuIElEQktleTo6Y3JlYXRlU3RyaW5nKGFzU3RyaW5nKHZhbHVlKS0+dmFsdWUoJmV4ZWMp
KTsKIAotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKSB7
CisgICAgaWYgKHZhbHVlLmluaGVyaXRzPERhdGVJbnN0YW5jZT4odm0pKSB7CiAgICAgICAgIGF1
dG8gZGF0ZVZhbHVlID0gdmFsdWVUb0RhdGUoZXhlYywgdmFsdWUpOwogICAgICAgICBpZiAoIXN0
ZDo6aXNuYW4oZGF0ZVZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURh
dGUoZGF0ZVZhbHVlKTsKQEAgLTE1OSw4ICsxNTksNyBAQCBzdGF0aWMgUmVmUHRyPElEQktleT4g
Y3JlYXRlSURCS2V5RnJvbVZhbHVlKEV4ZWNTdGF0ZSYgZXhlYywgSlNWYWx1ZSB2YWx1ZSwgVmVj
dAogCiAgICAgaWYgKHZhbHVlLmlzT2JqZWN0KCkpIHsKICAgICAgICAgSlNPYmplY3QqIG9iamVj
dCA9IGFzT2JqZWN0KHZhbHVlKTsKLSAgICAgICAgaWYgKGlzSlNBcnJheShvYmplY3QpIHx8IG9i
amVjdC0+aW5oZXJpdHModm0sIEpTQXJyYXk6OmluZm8oKSkpIHsKLSAgICAgICAgICAgIEpTQXJy
YXkqIGFycmF5ID0gYXNBcnJheShvYmplY3QpOworICAgICAgICBpZiAoYXV0byogYXJyYXkgPSBq
c0R5bmFtaWNDYXN0PEpTQXJyYXkqPih2bSwgb2JqZWN0KSkgewogICAgICAgICAgICAgc2l6ZV90
IGxlbmd0aCA9IGFycmF5LT5sZW5ndGgoKTsKIAogICAgICAgICAgICAgaWYgKHN0YWNrLmNvbnRh
aW5zKGFycmF5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
Q29udmVydERhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0
RGF0ZS5jcHAKaW5kZXggODBiNTNlODIxN2EyM2QyYmUyMzUxN2M3NzdjNDUzNjcxYzNiZWY1ZC4u
YzMxMjUwOTA4ZTI1YmE1ZDYwMmVhYjNlMDI5ZjZiNjliMTJkZGI1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAKQEAgLTQwLDcgKzQwLDcg
QEAgZG91YmxlIHZhbHVlVG9EYXRlKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCiB7
CiAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpCiAgICAgICAgIHJldHVybiB2YWx1ZS5hc051bWJl
cigpOwotICAgIGlmICghdmFsdWUuaW5oZXJpdHMoc3RhdGUudm0oKSwgRGF0ZUluc3RhbmNlOjpp
bmZvKCkpKQorICAgIGlmICghdmFsdWUuaW5oZXJpdHM8RGF0ZUluc3RhbmNlPihzdGF0ZS52bSgp
KSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFO
KCk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PERhdGVJbnN0YW5jZSo+KHZhbHVlLnRvT2JqZWN0
KCZzdGF0ZSkpLT5pbnRlcm5hbE51bWJlcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4IGJjZjY4NzAxN2Q2NGY2MzgzZWJi
ZWYyODJjN2Y0M2Q0ZjJhZGNkZTQuLjdhMzU0ODQwN2IyNDUwM2ZjZDc0ZDM5YTNjNzg5NWIyYzAw
OTQ1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5jcHAKQEAgLTE5NSw5ICsxOTUsOSBAQCB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTT2JqZWN0KiB0aGlzVmFsdWUpCiAKIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIEpTRE9NR2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29u
c3QKIHsKLSAgICBpZiAoaW5oZXJpdHModm0oKSwgSlNET01XaW5kb3dCYXNlOjppbmZvKCkpKQor
ICAgIGlmIChpbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKCkpKQogICAgICAgICByZXR1cm4g
anNDYXN0PGNvbnN0IEpTRE9NV2luZG93QmFzZSo+KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7Ci0gICAgaWYgKGluaGVyaXRzKHZtKCksIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpp
bmZvKCkpKQorICAgIGlmIChpbmhlcml0czxKU1dvcmtlckdsb2JhbFNjb3BlQmFzZT4odm0oKSkp
CiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UqPih0
aGlzKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGRhdGFMb2coIlVuZXhwZWN0ZWQg
Z2xvYmFsIG9iamVjdDogIiwgSlNWYWx1ZSh0aGlzKSwgIlxuIik7CiAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93Q3VzdG9tLmNwcAppbmRleCBjZjdkOTA5NzQ4Njc5NDQ2MDM2MGE1NGQwY2RlZDZiNmU4
ZmU1ODI0Li5lNTg5YWQ2NGNjMzk0MGY5MjA4YWU1ODhkNDIxYWRhMDljZmMxZWM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC00
NTksOSArNDU5LDkgQEAgRE9NV2luZG93KiBKU0RPTVdpbmRvdzo6dG9XcmFwcGVkKFZNJiB2bSwg
SlNWYWx1ZSB2YWx1ZSkKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7Ci0gICAg
aWYgKG9iamVjdC0+aW5oZXJpdHModm0sIEpTRE9NV2luZG93OjppbmZvKCkpKQorICAgIGlmIChv
YmplY3QtPmluaGVyaXRzPEpTRE9NV2luZG93Pih2bSkpCiAgICAgICAgIHJldHVybiAmanNDYXN0
PEpTRE9NV2luZG93Kj4ob2JqZWN0KS0+d3JhcHBlZCgpOwotICAgIGlmIChvYmplY3QtPmluaGVy
aXRzKHZtLCBKU0RPTVdpbmRvd1Byb3h5OjppbmZvKCkpKQorICAgIGlmIChvYmplY3QtPmluaGVy
aXRzPEpTRE9NV2luZG93UHJveHk+KHZtKSkKICAgICAgICAgcmV0dXJuICZqc0Nhc3Q8SlNET01X
aW5kb3dQcm94eSo+KG9iamVjdCktPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5j
cHAKaW5kZXggZjRhMDI5NGZmOGU4ZTU3MWQ0NTU2NTExNDkzOWVkYTIxMGRjOGY3NC4uMDNiN2Fl
MDcxODQxYzI1ZTcyMjM0Yzg0Y2U2MDA1NGM2NTFmN2I2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKQEAgLTU3LDcgKzU3LDcg
QEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRXZlbnRUYXJnZXQmIHRhcmcKICN1bmRlZiBUUllfVE9fV1JBUF9XSVRIX0lOVEVS
RkFDRQogCiAjZGVmaW5lIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZBQ0UoaW50ZXJmYWNlTmFt
ZSkgXAotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgSlMjI2ludGVyZmFjZU5hbWU6OmluZm8o
KSkpICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAodmFsdWUuaW5oZXJpdHM8SlMjI2lu
dGVyZmFjZU5hbWU+KHZtKSkgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICByZXR1cm4g
JmpzQ2FzdDxKUyMjaW50ZXJmYWNlTmFtZSo+KGFzT2JqZWN0KHZhbHVlKSktPndyYXBwZWQoKTsK
IAogRXZlbnRUYXJnZXQqIEpTRXZlbnRUYXJnZXQ6OnRvV3JhcHBlZChWTSYgdm0sIEpTVmFsdWUg
dmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRl
eCA5ZjM2ZTc0NTgzOTQ2MDM0MmI3M2I0OWIwMDNhMzg0NDcxNWNlNDYwLi4wOWE3MGYyMmU4OGNm
MWNiOTg3YWU3ZDcxODFjZmUyNTk1MzU5NDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCBib29sIEpTTm9kZU93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdgogCiBKU1Njb3BlKiBKU05vZGU6OnB1c2hFdmVudEhhbmRsZXJTY29wZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTU2NvcGUqIG5vZGUpIGNvbnN0CiB7Ci0gICAgaWYgKGluaGVyaXRzKGV4ZWMt
PnZtKCksIEpTSFRNTEVsZW1lbnQ6OmluZm8oKSkpCisgICAgaWYgKGluaGVyaXRzPEpTSFRNTEVs
ZW1lbnQ+KGV4ZWMtPnZtKCkpKQogICAgICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpTSFRNTEVs
ZW1lbnQqPih0aGlzKS0+cHVzaEV2ZW50SGFuZGxlclNjb3BlKGV4ZWMsIG5vZGUpOwogICAgIHJl
dHVybiBub2RlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNY
UGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNY
UGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCmluZGV4IDBkYTUxMjhmY2U0YjYxZjZhN2Q3MzRlMTE4
MmNlMzgyYmY5ZjU1YzEuLjE5ZTkyYjYyNzk5NDUyY2UzY2M2YTY1YmY5NDljMjVhN2ExODBjNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVy
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNv
bHZlckN1c3RvbS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
UmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4gSlNYUGF0aE5TUmVzb2x2ZXI6OnRvV3JhcHBlZChWTSYg
dm0sIEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKHZhbHVlLmlu
aGVyaXRzKHZtLCBKU1hQYXRoTlNSZXNvbHZlcjo6aW5mbygpKSkKKyAgICBpZiAodmFsdWUuaW5o
ZXJpdHM8SlNYUGF0aE5TUmVzb2x2ZXI+KHZtKSkKICAgICAgICAgcmV0dXJuICZqc0Nhc3Q8SlNY
UGF0aE5TUmVzb2x2ZXIqPihhc09iamVjdCh2YWx1ZSkpLT53cmFwcGVkKCk7CiAKICAgICBhdXRv
IHJlc3VsdCA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUoc3RhdGUsIHZhbHVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFN0YXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFN0YXRlLmNwcAppbmRleCBlNGU2MmEx
ZjZhMjAyMzUyMDQ2OGQ5Yjg3ZjMzMzllYzEyMGU0NWY1Li44YzI5Yzc4ZWFiZWRmNmI3NjBhZTFi
Y2MxYTY0M2I5ZDNhMTBjZjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
U3RhdGUuY3BwCkBAIC01MCw3ICs1MCw3IEBAIERPTVdpbmRvdyogZG9tV2luZG93RnJvbUV4ZWNT
dGF0ZShKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUpCiB7CiAgICAgSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0ID0gc2NyaXB0U3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKTsK
ICAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBpZiAoIWdsb2JhbE9i
amVjdC0+aW5oZXJpdHModm0sIEpTRE9NV2luZG93QmFzZTo6aW5mbygpKSkKKyAgICBpZiAoIWds
b2JhbE9iamVjdC0+aW5oZXJpdHM8SlNET01XaW5kb3dCYXNlPih2bSkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIHJldHVybiAmSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xv
YmFsT2JqZWN0KS0+d3JhcHBlZCgpOwogfQpAQCAtNjYsNyArNjYsNyBAQCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZShKU0M6OkV4ZWNT
dGF0ZSogc2NyaQogewogICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHNj
cmlwdFN0YXRlLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAgICAgSlNDOjpWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QtPmluaGVyaXRzKHZtLCBKU0RP
TUdsb2JhbE9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAoIWdsb2JhbE9iamVjdC0+aW5oZXJpdHM8
SlNET01HbG9iYWxPYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0
dXJuIEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KS0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggYjg1NjlhM2QxMzZlMzBmNDNiMjkz
MmZjNTViY2NiM2Q2ZGI1NDNjYS4uNTMyYzcxN2RjODdlMDZkN2U1ODMzNWEwM2FhOGQ1ZGZmZGNj
YjYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwCkBAIC02MDQsNyArNjA0LDcgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVy
IDogQ2xvbmVCYXNlIHsKICAgICAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFs
dWUpOwotICAgICAgICByZXR1cm4gaXNKU0FycmF5KG9iamVjdCkgfHwgb2JqZWN0LT5pbmhlcml0
cyh2bSwgSlNBcnJheTo6aW5mbygpKTsKKyAgICAgICAgcmV0dXJuIG9iamVjdC0+aW5oZXJpdHM8
SlNBcnJheT4odm0pOwogICAgIH0KIAogICAgIGJvb2wgaXNNYXAoVk0mIHZtLCBKU1ZhbHVlIHZh
bHVlKQpAQCAtNjEyLDE0ICs2MTIsMTQgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVC
YXNlIHsKICAgICAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwotICAg
ICAgICByZXR1cm4gb2JqZWN0LT5pbmhlcml0cyh2bSwgSlNNYXA6OmluZm8oKSk7CisgICAgICAg
IHJldHVybiBvYmplY3QtPmluaGVyaXRzPEpTTWFwPih2bSk7CiAgICAgfQogICAgIGJvb2wgaXNT
ZXQoVk0mIHZtLCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKCF2YWx1ZS5pc09i
amVjdCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBKU09iamVjdCogb2Jq
ZWN0ID0gYXNPYmplY3QodmFsdWUpOwotICAgICAgICByZXR1cm4gb2JqZWN0LT5pbmhlcml0cyh2
bSwgSlNTZXQ6OmluZm8oKSk7CisgICAgICAgIHJldHVybiBvYmplY3QtPmluaGVyaXRzPEpTU2V0
Pih2bSk7CiAgICAgfQogCiAgICAgYm9vbCBjaGVja0ZvckR1cGxpY2F0ZShKU09iamVjdCogb2Jq
ZWN0KQpAQCAtNzU0LDI1ICs3NTQsMjUgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVC
YXNlIHsKICAgICB7CiAgICAgICAgIFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKICAgICAgICAgd3Jp
dGUoQXJyYXlCdWZmZXJWaWV3VGFnKTsKLSAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpT
RGF0YVZpZXc6OmluZm8oKSkpCisgICAgICAgIGlmIChvYmotPmluaGVyaXRzPEpTRGF0YVZpZXc+
KHZtKSkKICAgICAgICAgICAgIHdyaXRlKERhdGFWaWV3VGFnKTsKLSAgICAgICAgZWxzZSBpZiAo
b2JqLT5pbmhlcml0cyh2bSwgSlNVaW50OENsYW1wZWRBcnJheTo6aW5mbygpKSkKKyAgICAgICAg
ZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU1VpbnQ4Q2xhbXBlZEFycmF5Pih2bSkpCiAgICAgICAg
ICAgICB3cml0ZShVaW50OENsYW1wZWRBcnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKG9iai0+
aW5oZXJpdHModm0sIEpTSW50OEFycmF5OjppbmZvKCkpKQorICAgICAgICBlbHNlIGlmIChvYmot
PmluaGVyaXRzPEpTSW50OEFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShJbnQ4QXJyYXlU
YWcpOwotICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU1VpbnQ4QXJyYXk6Omlu
Zm8oKSkpCisgICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHM8SlNVaW50OEFycmF5Pih2bSkp
CiAgICAgICAgICAgICB3cml0ZShVaW50OEFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAob2Jq
LT5pbmhlcml0cyh2bSwgSlNJbnQxNkFycmF5OjppbmZvKCkpKQorICAgICAgICBlbHNlIGlmIChv
YmotPmluaGVyaXRzPEpTSW50MTZBcnJheT4odm0pKQogICAgICAgICAgICAgd3JpdGUoSW50MTZB
cnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTVWludDE2QXJy
YXk6OmluZm8oKSkpCisgICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHM8SlNVaW50MTZBcnJh
eT4odm0pKQogICAgICAgICAgICAgd3JpdGUoVWludDE2QXJyYXlUYWcpOwotICAgICAgICBlbHNl
IGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0ludDMyQXJyYXk6OmluZm8oKSkpCisgICAgICAgIGVs
c2UgaWYgKG9iai0+aW5oZXJpdHM8SlNJbnQzMkFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0
ZShJbnQzMkFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNV
aW50MzJBcnJheTo6aW5mbygpKSkKKyAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU1Vp
bnQzMkFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShVaW50MzJBcnJheVRhZyk7Ci0gICAg
ICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRmxvYXQzMkFycmF5OjppbmZvKCkpKQor
ICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzPEpTRmxvYXQzMkFycmF5Pih2bSkpCiAgICAg
ICAgICAgICB3cml0ZShGbG9hdDMyQXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlmIChvYmotPmlu
aGVyaXRzKHZtLCBKU0Zsb2F0NjRBcnJheTo6aW5mbygpKSkKKyAgICAgICAgZWxzZSBpZiAob2Jq
LT5pbmhlcml0czxKU0Zsb2F0NjRBcnJheT4odm0pKQogICAgICAgICAgICAgd3JpdGUoRmxvYXQ2
NEFycmF5VGFnKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
ODAwLDcgKzgwMCw3IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAg
dm9pZCBkdW1wRE9NUG9pbnQoSlNPYmplY3QqIG9iaikKICAgICB7CiAgICAgICAgIFZNJiB2bSA9
IG1fZXhlYy0+dm0oKTsKLSAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9NUG9pbnQ6
OmluZm8oKSkpCisgICAgICAgIGlmIChvYmotPmluaGVyaXRzPEpTRE9NUG9pbnQ+KHZtKSkKICAg
ICAgICAgICAgIHdyaXRlKERPTVBvaW50VGFnKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
d3JpdGUoRE9NUG9pbnRSZWFkT25seVRhZyk7CkBAIC04MTEsNyArODExLDcgQEAgY2xhc3MgQ2xv
bmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICB2b2lkIGR1bXBET01SZWN0KEpTT2JqZWN0
KiBvYmopCiAgICAgewogICAgICAgICBWTSYgdm0gPSBtX2V4ZWMtPnZtKCk7Ci0gICAgICAgIGlm
IChvYmotPmluaGVyaXRzKHZtLCBKU0RPTVJlY3Q6OmluZm8oKSkpCisgICAgICAgIGlmIChvYmot
PmluaGVyaXRzPEpTRE9NUmVjdD4odm0pKQogICAgICAgICAgICAgd3JpdGUoRE9NUmVjdFRhZyk7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHdyaXRlKERPTVJlY3RSZWFkT25seVRhZyk7CkBA
IC04MjYsNyArODI2LDcgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAg
ICB2b2lkIGR1bXBET01NYXRyaXgoSlNPYmplY3QqIG9iaikKICAgICB7CiAgICAgICAgIFZNJiB2
bSA9IG1fZXhlYy0+dm0oKTsKLSAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9NTWF0
cml4OjppbmZvKCkpKQorICAgICAgICBpZiAob2JqLT5pbmhlcml0czxKU0RPTU1hdHJpeD4odm0p
KQogICAgICAgICAgICAgd3JpdGUoRE9NTWF0cml4VGFnKTsKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgd3JpdGUoRE9NTWF0cml4UmVhZE9ubHlUYWcpOwpAQCAtODkxLDM2ICs4OTEsMzQgQEAg
Y2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgfQogCiAgICAgICAg
IFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKLSAgICAgICAgaWYgKHZhbHVlLmlzT2JqZWN0KCkgJiYg
YXNPYmplY3QodmFsdWUpLT5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKSB7Ci0g
ICAgICAgICAgICB3cml0ZShEYXRlVGFnKTsKLSAgICAgICAgICAgIHdyaXRlKGFzRGF0ZUluc3Rh
bmNlKHZhbHVlKS0+aW50ZXJuYWxOdW1iZXIoKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgfQotCiAgICAgICAgIGlmIChpc0FycmF5KHZtLCB2YWx1ZSkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgaWYgKHZhbHVlLmlzT2JqZWN0KCkpIHsKICAgICAg
ICAgICAgIGF1dG8qIG9iaiA9IGFzT2JqZWN0KHZhbHVlKTsKLSAgICAgICAgICAgIGlmIChvYmot
PmluaGVyaXRzKHZtLCBCb29sZWFuT2JqZWN0OjppbmZvKCkpKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKCFzdGFydE9iamVjdEludGVybmFsKG9iaikpIC8vIGhhbmRsZSBkdXBsaWNhdGVzCisgICAg
ICAgICAgICBpZiAoYXV0byogZGF0ZU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNl
Kj4odm0sIG9iaikpIHsKKyAgICAgICAgICAgICAgICB3cml0ZShEYXRlVGFnKTsKKyAgICAgICAg
ICAgICAgICB3cml0ZShkYXRlT2JqZWN0LT5pbnRlcm5hbE51bWJlcigpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhdXRvKiBi
b29sZWFuT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxCb29sZWFuT2JqZWN0Kj4odm0sIG9iaikpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0T2JqZWN0SW50ZXJuYWwoYm9vbGVhbk9iamVjdCkp
IC8vIGhhbmRsZSBkdXBsaWNhdGVzCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICAgICAgICAgIHdyaXRlKGFzQm9vbGVhbk9iamVjdCh2YWx1ZSktPmludGVybmFsVmFs
dWUoKS50b0Jvb2xlYW4obV9leGVjKSA/IFRydWVPYmplY3RUYWcgOiBGYWxzZU9iamVjdFRhZyk7
CisgICAgICAgICAgICAgICAgd3JpdGUoYm9vbGVhbk9iamVjdC0+aW50ZXJuYWxWYWx1ZSgpLnRv
Qm9vbGVhbihtX2V4ZWMpID8gVHJ1ZU9iamVjdFRhZyA6IEZhbHNlT2JqZWN0VGFnKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChv
YmotPmluaGVyaXRzKHZtLCBTdHJpbmdPYmplY3Q6OmluZm8oKSkpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoIXN0YXJ0T2JqZWN0SW50ZXJuYWwob2JqKSkgLy8gaGFuZGxlIGR1cGxpY2F0ZXMKKyAg
ICAgICAgICAgIGlmIChhdXRvKiBzdHJpbmdPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFN0cmluZ09i
amVjdCo+KHZtLCBvYmopKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdGFydE9iamVjdEludGVy
bmFsKHN0cmluZ09iamVjdCkpIC8vIGhhbmRsZSBkdXBsaWNhdGVzCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIFN0cmluZyBzdHIgPSBhc1N0cmluZyhh
c1N0cmluZ09iamVjdCh2YWx1ZSktPmludGVybmFsVmFsdWUoKSktPnZhbHVlKG1fZXhlYyk7Cisg
ICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IGFzU3RyaW5nKHN0cmluZ09iamVjdC0+aW50ZXJu
YWxWYWx1ZSgpKS0+dmFsdWUobV9leGVjKTsKICAgICAgICAgICAgICAgICBkdW1wU3RyaW5nT2Jq
ZWN0KHN0cik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgTnVtYmVyT2JqZWN0OjppbmZvKCkpKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKCFzdGFydE9iamVjdEludGVybmFsKG9iaikpIC8vIGhhbmRs
ZSBkdXBsaWNhdGVzCisgICAgICAgICAgICBpZiAoYXV0byogbnVtYmVyT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxOdW1iZXJPYmplY3QqPih2bSwgb2JqKSkgeworICAgICAgICAgICAgICAgIGlmICgh
c3RhcnRPYmplY3RJbnRlcm5hbChudW1iZXJPYmplY3QpKSAvLyBoYW5kbGUgZHVwbGljYXRlcwog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICB3cml0ZShO
dW1iZXJPYmplY3RUYWcpOwotICAgICAgICAgICAgICAgIE51bWJlck9iamVjdCogb2JqID0gc3Rh
dGljX2Nhc3Q8TnVtYmVyT2JqZWN0Kj4oYXNPYmplY3QodmFsdWUpKTsKLSAgICAgICAgICAgICAg
ICB3cml0ZShvYmotPmludGVybmFsVmFsdWUoKS5hc051bWJlcigpKTsKKyAgICAgICAgICAgICAg
ICB3cml0ZShudW1iZXJPYmplY3QtPmludGVybmFsVmFsdWUoKS5hc051bWJlcigpKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChh
dXRvKiBmaWxlID0gSlNGaWxlOjp0b1dyYXBwZWQodm0sIG9iaikpIHsKQEAgLTk1MSw4ICs5NDks
NyBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICAgICAgICAg
IHdyaXRlKGRhdGEtPmRhdGEoKS0+ZGF0YSgpLCBkYXRhLT5kYXRhKCktPmxlbmd0aCgpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
IChvYmotPmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpIHsKLSAgICAgICAgICAg
ICAgICBhdXRvKiByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdChvYmopOworICAgICAgICAgICAgaWYg
KGF1dG8qIHJlZ0V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odm0sIG9iaikpIHsK
ICAgICAgICAgICAgICAgICBjaGFyIGZsYWdzWzNdOwogICAgICAgICAgICAgICAgIGludCBmbGFn
Q291bnQgPSAwOwogICAgICAgICAgICAgICAgIGlmIChyZWdFeHAtPnJlZ0V4cCgpLT5nbG9iYWwo
KSkKQEAgLTk2Niw3ICs5NjMsNyBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2Ug
ewogICAgICAgICAgICAgICAgIHdyaXRlKFN0cmluZyhmbGFncywgZmxhZ0NvdW50KSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAo
b2JqLT5pbmhlcml0cyh2bSwgSlNNZXNzYWdlUG9ydDo6aW5mbygpKSkgeworICAgICAgICAgICAg
aWYgKG9iai0+aW5oZXJpdHM8SlNNZXNzYWdlUG9ydD4odm0pKSB7CiAgICAgICAgICAgICAgICAg
YXV0byBpbmRleCA9IG1fdHJhbnNmZXJyZWRNZXNzYWdlUG9ydHMuZmluZChvYmopOwogICAgICAg
ICAgICAgICAgIGlmIChpbmRleCAhPSBtX3RyYW5zZmVycmVkTWVzc2FnZVBvcnRzLmVuZCgpKSB7
CiAgICAgICAgICAgICAgICAgICAgIHdyaXRlKE1lc3NhZ2VQb3J0UmVmZXJlbmNlVGFnKTsKQEAg
LTEwMDcsNyArMTAwNCw3IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAg
ICAgICAgICAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVm
ZmVyLT5kYXRhKCkpLCBhcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChvYmotPmluaGVy
aXRzKHZtLCBKU0FycmF5QnVmZmVyVmlldzo6aW5mbygpKSkgeworICAgICAgICAgICAgaWYgKG9i
ai0+aW5oZXJpdHM8SlNBcnJheUJ1ZmZlclZpZXc+KHZtKSkgewogICAgICAgICAgICAgICAgIGlm
IChjaGVja0ZvckR1cGxpY2F0ZShvYmopKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgICAgICAgICBib29sIHN1Y2Nlc3MgPSBkdW1wQXJyYXlCdWZmZXJWaWV3KG9i
aiwgY29kZSk7CkBAIC0xMDUxLDE5ICsxMDQ4LDE5IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6
IENsb25lQmFzZSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9
CiAjZW5kaWYKLSAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0RPTVBvaW50UmVh
ZE9ubHk6OmluZm8oKSkpIHsKKyAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRzPEpTRE9NUG9p
bnRSZWFkT25seT4odm0pKSB7CiAgICAgICAgICAgICAgICAgZHVtcERPTVBvaW50KG9iaik7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAob2JqLT5pbmhlcml0cyh2bSwgSlNET01SZWN0UmVhZE9ubHk6OmluZm8oKSkpIHsKKyAgICAg
ICAgICAgIGlmIChvYmotPmluaGVyaXRzPEpTRE9NUmVjdFJlYWRPbmx5Pih2bSkpIHsKICAgICAg
ICAgICAgICAgICBkdW1wRE9NUmVjdChvYmopOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9N
TWF0cml4UmVhZE9ubHk6OmluZm8oKSkpIHsKKyAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRz
PEpTRE9NTWF0cml4UmVhZE9ubHk+KHZtKSkgewogICAgICAgICAgICAgICAgIGR1bXBET01NYXRy
aXgob2JqKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0RPTVF1YWQ6OmluZm8oKSkpIHsKKyAg
ICAgICAgICAgIGlmIChvYmotPmluaGVyaXRzPEpTRE9NUXVhZD4odm0pKSB7CiAgICAgICAgICAg
ICAgICAgZHVtcERPTVF1YWQob2JqKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgICAgIH0KQEAgLTE3NTUsNyArMTc1Miw3IEBAIGNsYXNzIENsb25lRGVzZXJpYWxpemVy
IDogQ2xvbmVCYXNlIHsKICAgICAgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCiAg
ICAgICAgIDogQ2xvbmVCYXNlKGV4ZWMpCiAgICAgICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFs
T2JqZWN0KQotICAgICAgICAsIG1faXNET01HbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5pbmhl
cml0cyhnbG9iYWxPYmplY3QtPnZtKCksIEpTRE9NR2xvYmFsT2JqZWN0OjppbmZvKCkpKQorICAg
ICAgICAsIG1faXNET01HbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU0RPTUds
b2JhbE9iamVjdD4oZ2xvYmFsT2JqZWN0LT52bSgpKSkKICAgICAgICAgLCBtX3B0cihidWZmZXIu
ZGF0YSgpKQogICAgICAgICAsIG1fZW5kKGJ1ZmZlci5kYXRhKCkgKyBidWZmZXIuc2l6ZSgpKQog
ICAgICAgICAsIG1fdmVyc2lvbigweEZGRkZGRkZGKQpAQCAtMTc3Nyw3ICsxNzc0LDcgQEAgY2xh
c3MgQ2xvbmVEZXNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICApCiAgICAgICAgIDog
Q2xvbmVCYXNlKGV4ZWMpCiAgICAgICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQot
ICAgICAgICAsIG1faXNET01HbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5pbmhlcml0cyhnbG9i
YWxPYmplY3QtPnZtKCksIEpTRE9NR2xvYmFsT2JqZWN0OjppbmZvKCkpKQorICAgICAgICAsIG1f
aXNET01HbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU0RPTUdsb2JhbE9iamVj
dD4oZ2xvYmFsT2JqZWN0LT52bSgpKSkKICAgICAgICAgLCBtX3B0cihidWZmZXIuZGF0YSgpKQog
ICAgICAgICAsIG1fZW5kKGJ1ZmZlci5kYXRhKCkgKyBidWZmZXIuc2l6ZSgpKQogICAgICAgICAs
IG1fdmVyc2lvbigweEZGRkZGRkZGKQpAQCAtMjA0OCw3ICsyMDQ1LDcgQEAgY2xhc3MgQ2xvbmVE
ZXNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICBpZiAoIXJlYWQoYnl0ZUxlbmd0aCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIEpTT2JqZWN0KiBhcnJheUJ1ZmZl
ck9iaiA9IGFzT2JqZWN0KHJlYWRUZXJtaW5hbCgpKTsKLSAgICAgICAgaWYgKCFhcnJheUJ1ZmZl
ck9iaiB8fCAhYXJyYXlCdWZmZXJPYmotPmluaGVyaXRzKHZtLCBKU0FycmF5QnVmZmVyOjppbmZv
KCkpKQorICAgICAgICBpZiAoIWFycmF5QnVmZmVyT2JqIHx8ICFhcnJheUJ1ZmZlck9iai0+aW5o
ZXJpdHM8SlNBcnJheUJ1ZmZlcj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgICAgIHVuc2lnbmVkIGVsZW1lbnRTaXplID0gdHlwZWRBcnJheUVsZW1lbnRTaXplKGFycmF5
QnVmZmVyVmlld1N1YnRhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGQ5ZWFmOGM2YjQ0NDcyOTdkNjA1NmU1OTBmNzU4
Y2RiOTdmYjY2NjUuLmM1OTdkNWExMzMxMjc4YTMzNWEyYzFhMDI3OTUwNjJjZDQ0MTA3MzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC0zNDAwLDE2ICszNDAwLDE2IEBAIHN1YiBHZW5lcmF0ZU92ZXJsb2FkRGlzcGF0Y2hl
cgogICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUo
JHN1YnR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc0J1ZmZlclNvdXJjZVR5cGUoJHN1YnR5cGUp
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHN1YnR5cGUtPm5hbWUgZXEgIkRPTVdp
bmRvdyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygi
SlNET01XaW5kb3dQcm94eS5oIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiRnZW5l
cmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0s
IEpTRE9NV2luZG93UHJveHk6OmluZm8oKSkgfHwgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcp
LT5pbmhlcml0cyh2bSwgSlNET01XaW5kb3c6OmluZm8oKSkpIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwg
ImRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5n
QXJnKS0+aW5oZXJpdHM8SlNET01XaW5kb3dQcm94eT4odm0pIHx8IGFzT2JqZWN0KGRpc3Rpbmd1
aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNET01XaW5kb3c+KHZtKSkiKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiRnZW5lcmF0
ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJnLmlz
T2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlMi
IC4gJHN1YnR5cGUtPm5hbWUgLiAiOjppbmZvKCkpIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5p
bmhlcml0czxKUyIgLiAkc3VidHlwZS0+bmFtZSAuICI+KHZtKSIpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICAkb3ZlcmxvYWQgPSBHZXRPdmVybG9hZFRoYXRNYXRj
aGVzKCRTLCAkZCwgXCYkaXNPYmplY3RPckVycm9yT3JET01FeGNlcHRpb25QYXJhbWV0ZXIpOwot
ICAgICAgICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwg
ImRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdB
cmcpLT5pbmhlcml0cyh2bSwgSlNET01FeGNlcHRpb246OmluZm8oKSkiKTsKKyAgICAgICAgICAg
ICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlz
aGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJp
dHM8SlNET01FeGNlcHRpb24+KHZtKSIpOwogCiAgICAgICAgICAgICAkb3ZlcmxvYWQgPSBHZXRP
dmVybG9hZFRoYXRNYXRjaGVzKCRTLCAkZCwgXCYkaXNPYmplY3RPckVycm9yUGFyYW1ldGVyKTsK
ICAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQs
ICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5n
QXJnKS0+dHlwZSgpID09IEVycm9ySW5zdGFuY2VUeXBlIik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGRiNGY0
YjFmNDk3MzQ5ZTI3YmMwM2M4OTkxMDIyYjlhYWZiMmZiN2YuLjljZWJiNzc1NzU3OWZkZjlmNzcw
MjVhYzc5MjI5YzBkNjU4MjcyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC03MDIxLDE3ICs3MDIxLDE3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2RPdmVyCiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdB
cmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlz
aGluZ0FyZy5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlz
LCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkg
JiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0T2JqOjpp
bmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09i
amVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE9iaj4odm0pKQogICAgICAg
ICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDJC
b2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0cyh2bSwgSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2U6OmluZm8oKSkpCisgICAgICAgIGlmIChk
aXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHM8SlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2U+KHZtKSkKICAgICAgICAgICAgIHJl
dHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q1Qm9keShzdGF0
ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0Fy
Zy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0s
IEpTRE9NU3RyaW5nTGlzdDo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU0RP
TVN0cmluZ0xpc3Q+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q2Qm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29w
ZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0
KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE9iajo6aW5mbygpKSkKKyAg
ICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGlu
Z3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RPYmo+KHZtKSkKICAgICAgICAgICAgIHJldHVy
biBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4Qm9keShzdGF0ZSwg
Y2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5p
c09iamVjdCgpICYmIChhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBK
U0RPTVdpbmRvd1Byb3h5OjppbmZvKCkpIHx8IGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+
aW5oZXJpdHModm0sIEpTRE9NV2luZG93OjppbmZvKCkpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5o
ZXJpdHM8SlNET01XaW5kb3dQcm94eT4odm0pIHx8IGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHM8SlNET01XaW5kb3c+KHZtKSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kOUJvZHkoc3RhdGUsIGNhc3RlZFRo
aXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3Qo
KSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU0Jsb2I6Omlu
Zm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2Jq
ZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNCbG9iPih2bSkpCiAgICAgICAgICAg
ICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMTNCb2R5
KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAgaWYgKGhhc0l0ZXJhdG9y
TWV0aG9kKCpzdGF0ZSwgZGlzdGluZ3Vpc2hpbmdBcmcpKQogICAgICAgICAgICAgcmV0dXJuIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDdCb2R5KHN0YXRlLCBjYXN0
ZWRUaGlzLCB0aHJvd1Njb3BlKTsKQEAgLTcwNDUsNyArNzA0NSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2RPdmVyCiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5j
aGVja2VkQXJndW1lbnQoMSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc1VuZGVm
aW5lZCgpKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAg
ICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vp
c2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNCbG9iOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlz
dGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZykt
PmluaGVyaXRzPEpTQmxvYj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEzQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhy
b3dTY29wZSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc051bWJlcigpKQogICAg
ICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZDJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKQEAgLTcwOTYsNyArNzA5Niw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hp
bmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CiAgICAgICAgIGlmIChkaXN0aW5n
dWlzaGluZ0FyZy5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRl
cjJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5p
bmhlcml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
PEpTVGVzdE9iaj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcjJCb2R5KHN0YXRlLCBj
YXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcjFCb2R5KHN0YXRl
LCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICB9CkBAIC03MTA0LDcgKzcxMDQsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kV2l0aAogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJn
ID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hp
bmdBcmcuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIyQm9k
eShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlz
aGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJp
dHModm0sIEpTVGVzdE9iajo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rl
c3RPYmo+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIyQm9keShzdGF0ZSwgY2FzdGVk
VGhpcywgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIxQm9keShzdGF0ZSwgY2Fz
dGVkVGhpcywgdGhyb3dTY29wZSk7CiAgICAgfQpAQCAtNzE0Nyw5ICs3MTQ3LDkgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZFdpdGgKICAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RkOjptaW48c2l6ZV90
PigxLCBzdGF0ZS0+YXJndW1lbnRDb3VudCgpKTsKICAgICBpZiAoYXJnc0NvdW50ID09IDEpIHsK
ICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1
bWVudCgwKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNP
YmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkp
KQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChk
aXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE9iaj4odm0pKQogICAgICAgICAgICAg
cmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0
aW5ndWlzaGluZ1VuaW9uMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAg
ICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5n
dWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3ROb2RlOjppbmZvKCkpKQorICAgICAgICBp
ZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGlu
Z0FyZyktPmluaGVyaXRzPEpTVGVzdE5vZGU+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdV
bmlvbjFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24y
Qm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CkBAIC03MTk0LDExICs3MTk0LDEx
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6
bWluPHNpemVfdD4oMSwgc3RhdGUtPmFyZ3VtZW50Q291bnQoKSk7CiAgICAgaWYgKGFyZ3NDb3Vu
dCA9PSAxKSB7CiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5j
aGVja2VkQXJndW1lbnQoMCk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVj
dCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE9i
ajo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYg
YXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RPYmo+KHZtKSkKICAg
ICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93
U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09i
amVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3ROb2RlOjppbmZvKCkp
KQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChk
aXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE5vZGU+KHZtKSkKICAgICAgICAgICAg
IHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoMkRp
c3Rpbmd1aXNoaW5nVW5pb25zMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwot
ICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0
aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3RJbnRlcmZhY2U6OmluZm8oKSkpCisg
ICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rp
bmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0SW50ZXJmYWNlPih2bSkpCiAgICAgICAgICAg
ICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aDJE
aXN0aW5ndWlzaGluZ1VuaW9uczJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsK
ICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCiAgICAgICAgICAgICBy
ZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0
aW5ndWlzaGluZ1VuaW9uczJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKQEAg
LTcyNDcsOSArNzI0Nyw5IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAgc2l6ZV90IGFy
Z3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4oMiwgc3RhdGUtPmFyZ3VtZW50Q291bnQoKSk7CiAg
ICAgaWYgKGFyZ3NDb3VudCA9PSAyKSB7CiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdB
cmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlz
aGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJp
dHModm0sIEpTVGVzdE9iajo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rl
c3RPYmo+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbjFCb2R5KHN0YXRlLCBj
YXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlz
T2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNU
ZXN0Tm9kZTo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0
KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3ROb2RlPih2
bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24yQm9keShzdGF0ZSwgY2FzdGVkVGhp
cywgdGhyb3dTY29wZSk7CiAgICAgfQogICAgIHJldHVybiBhcmdzQ291bnQgPCAyID8gdGhyb3dW
TUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihz
dGF0ZSkpIDogdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CkBAIC03MjkzLDkg
KzcyOTMsOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZQogICAgICAgICBKU1ZhbHVlIGRpc3Rp
bmd1aXNoaW5nQXJnID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwogICAgICAgICBpZiAo
ZGlzdGluZ3Vpc2hpbmdBcmcuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgICAgIHJldHVy
biBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24xQm9k
eShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlz
aGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJp
dHModm0sIEpTVGVzdE9iajo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rl
c3RPYmo+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24xQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dT
Y29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2Jq
ZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE5vZGU6OmluZm8oKSkp
CisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRp
c3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0Tm9kZT4odm0pKQogICAgICAgICAgICAg
cmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlv
bjFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAgaWYgKGRpc3Rp
bmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uMkJvZHkoc3RhdGUsIGNhc3Rl
ZFRoaXMsIHRocm93U2NvcGUpOwpAQCAtNzM5NCw3ICs3Mzk0LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRo
TnVsbGFibGUKICAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RkOjptaW48c2l6ZV90PigyLCBzdGF0
ZS0+YXJndW1lbnRDb3VudCgpKTsKICAgICBpZiAoYXJnc0NvdW50ID09IDIpIHsKICAgICAgICAg
SlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgxKTsK
LSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlz
dGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0Tm9kZTo6aW5mbygpKSkKKyAgICAg
ICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vp
c2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3ROb2RlPih2bSkpCiAgICAgICAgICAgICByZXR1cm4g
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1
aXNoaW5nUGFyYW1ldGVyMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAg
ICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAgICAgICAgICAgIHJldHVy
biBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlzdGlu
Z3Vpc2hpbmdQYXJhbWV0ZXIyQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CkBA
IC03OTg0LDcgKzc5ODQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZU92ZXJsb2FkZQogICAgIHNpemVfdCBh
cmdzQ291bnQgPSBzdGQ6Om1pbjxzaXplX3Q+KDEsIHN0YXRlLT5hcmd1bWVudENvdW50KCkpOwog
ICAgIGlmIChhcmdzQ291bnQgPT0gMSkgewogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5n
QXJnID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzKHZtLCBKU0ZldGNoUmVxdWVzdDo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNo
aW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0
czxKU0ZldGNoUmVxdWVzdD4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb24yQm9keShzdGF0ZSwgY2Fz
dGVkVGhpcywgV1RGTW92ZShwcm9taXNlKSwgdGhyb3dTY29wZSk7CiAgICAgICAgIGlmIChkaXN0
aW5ndWlzaGluZ0FyZy5pc051bWJlcigpKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb24xQm9keShzdGF0ZSwg
Y2FzdGVkVGhpcywgV1RGTW92ZShwcm9taXNlKSwgdGhyb3dTY29wZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggNjBmZDUyMjdkOWFlMjcyZjZk
MDEzZjliZWQ5MzZkNjM1NTM3ZmVhMC4uMTk3ZWNmOTc4N2JkMTNhYjNmYTIwMDdlZGM0YjU0Njk2
MThlYzZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNw
cApAQCAtMTQ4LDExICsxNDgsMTEgQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcjoKICAgICB9CiAg
ICAgaWYgKGFyZ3NDb3VudCA9PSAxKSB7CiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdB
cmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlz
aGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJp
dHModm0sIEpTQXJyYXlCdWZmZXI6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGlu
Z0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8
SlNBcnJheUJ1ZmZlcj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMxKHN0YXRlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5n
QXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2
bSwgSlNBcnJheUJ1ZmZlclZpZXc6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGlu
Z0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8
SlNBcnJheUJ1ZmZlclZpZXc+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RKU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzMihzdGF0ZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlz
aGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJp
dHModm0sIEpTQmxvYjo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlz
T2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU0Jsb2I+
KHZtKSkKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzMyhzdGF0ZSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc051bWJlcigp
KQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnM1KHN0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFu
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKaW5kZXggNzMx
YTZlODJiNGQzM2FhZTA4MWRlZDY2OGU1YjQwZTNiNTBhODliMC4uMzk4YjdiZTE2NDQxYmY0ZDkw
ZmFjYTFiNWViZTdjYWEzMjI0MDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2MvY19pbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5j
ZS5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCBKU1ZhbHVlIENJbnN0YW5jZTo6aW52b2tlTWV0aG9k
KEV4ZWNTdGF0ZSogZXhlYywgUnVudGltZU1ldGhvZCogcnVudGltZU1ldGhvZCkKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAotICAgIGlmICghYXNPYmplY3QocnVudGltZU1ldGhvZCktPmluaGVyaXRzKHZtLCBDUnVu
dGltZU1ldGhvZDo6aW5mbygpKSkKKyAgICBpZiAoIWFzT2JqZWN0KHJ1bnRpbWVNZXRob2QpLT5p
bmhlcml0czxDUnVudGltZU1ldGhvZD4odm0pKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJy
b3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBpbnZva2Ugbm9uLXBsdWct
aW4gbWV0aG9kIG9uIHBsdWctaW4gb2JqZWN0LiIpKTsKIAogICAgIENNZXRob2QqIG1ldGhvZCA9
IHN0YXRpY19jYXN0PENNZXRob2QqPihydW50aW1lTWV0aG9kLT5tZXRob2QoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KaW5kZXggZTgyYzU1NzNi
OTVlYjcyY2ExMzY1Mzc1MDcwZGE4ODY5NjgxZWU5MC4uZWEyNDczZGFjZTU4NjA2ZDUzODljOWU3
NTBmYWI3ODM5Zjk0NzUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
V2ViU2NyaXB0T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNj
cmlwdE9iamVjdC5tbQpAQCAtNTcwLDExICs1NzAsMTEgQEAgKyAoaWQpX2NvbnZlcnRWYWx1ZVRv
T2JqY1ZhbHVlOihKU0M6OkpTVmFsdWUpdmFsdWUgb3JpZ2luUm9vdE9iamVjdDooUm9vdE9iamVj
dCoKICAgICAgICAgSlNDOjpWTSYgdm0gPSByb290T2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+dm0o
KTsKICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwogCi0gICAgICAgIGlmIChvYmplY3Qt
PmluaGVyaXRzKHZtLCBKU0hUTUxFbGVtZW50OjppbmZvKCkpKSB7CisgICAgICAgIGlmIChvYmpl
Y3QtPmluaGVyaXRzPEpTSFRNTEVsZW1lbnQ+KHZtKSkgewogICAgICAgICAgICAgLy8gUGx1Z2lu
IGVsZW1lbnRzIGNhY2hlIHRoZSBpbnN0YW5jZSBpbnRlcm5hbGx5LgogICAgICAgICAgICAgaWYg
KE9iamNJbnN0YW5jZSogaW5zdGFuY2UgPSBzdGF0aWNfY2FzdDxPYmpjSW5zdGFuY2UqPihwbHVn
aW5JbnN0YW5jZShqc0Nhc3Q8SlNIVE1MRWxlbWVudCo+KG9iamVjdCktPndyYXBwZWQoKSkpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZS0+Z2V0T2JqZWN0KCk7Ci0gICAgICAgIH0g
ZWxzZSBpZiAob2JqZWN0LT5pbmhlcml0cyh2bSwgT2JqQ1J1bnRpbWVPYmplY3Q6OmluZm8oKSkp
IHsKKyAgICAgICAgfSBlbHNlIGlmIChvYmplY3QtPmluaGVyaXRzPE9iakNSdW50aW1lT2JqZWN0
Pih2bSkpIHsKICAgICAgICAgICAgIE9iakNSdW50aW1lT2JqZWN0KiBydW50aW1lT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8T2JqQ1J1bnRpbWVPYmplY3QqPihvYmplY3QpOwogICAgICAgICAgICAgT2Jq
Y0luc3RhbmNlKiBpbnN0YW5jZSA9IHJ1bnRpbWVPYmplY3QtPmdldEludGVybmFsT2JqQ0luc3Rh
bmNlKCk7CiAgICAgICAgICAgICBpZiAoaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19pbnN0YW5jZS5tbQppbmRleCAzZmJhZTMzNzRkMjRmZmQ1NjVmZWU2ZWQ4NzYz
NjMwNThlNGYzZDQ4Li5iN2QyNGQ0NGEyNGE2YjA1NTI3NzQ1ZjYxZTk0NzM3ZGU5Yjc5NjhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0KQEAgLTIxMiw3
ICsyMTIsNyBAQCBKU0M6OkpTVmFsdWUgT2JqY0luc3RhbmNlOjppbnZva2VNZXRob2QoRXhlY1N0
YXRlKiBleGVjLCBSdW50aW1lTWV0aG9kKiBydW50aW1lTQogICAgIEpTQzo6Vk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAg
ICBpZiAoIWFzT2JqZWN0KHJ1bnRpbWVNZXRob2QpLT5pbmhlcml0cyh2bSwgT2JqQ1J1bnRpbWVN
ZXRob2Q6OmluZm8oKSkpCisgICAgaWYgKCFhc09iamVjdChydW50aW1lTWV0aG9kKS0+aW5oZXJp
dHM8T2JqQ1J1bnRpbWVNZXRob2Q+KHZtKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9y
KGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gaW52b2tlIG5vbi1wbHVnLWlu
IG1ldGhvZCBvbiBwbHVnLWluIG9iamVjdC4iKSk7CiAKICAgICBPYmpjTWV0aG9kICptZXRob2Qg
PSBzdGF0aWNfY2FzdDxPYmpjTWV0aG9kKj4ocnVudGltZU1ldGhvZC0+bWV0aG9kKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDBhODljODU4NzQ0
MDI4YmM5MzUzNzI5MzQyNmE5ZWEwYzhjYjk1YjguLjE2M2MxZGE2M2E5OGIzZDE5OGViMGExNzU5
YTE5MDJkZTM3ZjVhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUubW0KQEAgLTI0OSw3ICsyNDksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBPYmpD
UnVudGltZU9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0czxPYmpD
UnVudGltZU9iamVjdD4odm0pKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBzY29wZSk7CiAKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzVW5kZWZpbmVkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAppbmRleCBjMzUxODJiZGNhZjFhZDdlMzYy
YzlmODJkMGMzYWNjMjNjNDExNDg3Li42N2VlNzVkNDRiYzExYmNkMTBkMmFjMzg3MmRhMGVlZDkx
YTYzYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKQEAgLTky
LDE0ICs5MiwxNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUnVu
dGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5j
ZTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYg
KHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUnVudGltZU9iamVjdDo6aW5mbygpKSkgeworICAgIGlm
ICh0aGlzVmFsdWUuaW5oZXJpdHM8UnVudGltZU9iamVjdD4odm0pKSB7CiAgICAgICAgIFJ1bnRp
bWVPYmplY3QqIHJ1bnRpbWVPYmplY3QgPSBzdGF0aWNfY2FzdDxSdW50aW1lT2JqZWN0Kj4oYXNP
YmplY3QodGhpc1ZhbHVlKSk7CiAgICAgICAgIGluc3RhbmNlID0gcnVudGltZU9iamVjdC0+Z2V0
SW50ZXJuYWxJbnN0YW5jZSgpOwogICAgICAgICBpZiAoIWluc3RhbmNlKSAKICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoUnVudGltZU9iamVjdDo6dGhyb3dJbnZhbGlkQWNjZXNz
RXJyb3IoZXhlYywgc2NvcGUpKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBDYWxsaW5nIGEg
cnVudGltZSBvYmplY3Qgb2YgYSBwbHVnaW4gZWxlbWVudD8KLSAgICAgICAgaWYgKHRoaXNWYWx1
ZS5pbmhlcml0cyh2bSwgSlNIVE1MRWxlbWVudDo6aW5mbygpKSkKKyAgICAgICAgaWYgKHRoaXNW
YWx1ZS5pbmhlcml0czxKU0hUTUxFbGVtZW50Pih2bSkpCiAgICAgICAgICAgICBpbnN0YW5jZSA9
IHBsdWdpbkluc3RhbmNlKGpzQ2FzdDxKU0hUTUxFbGVtZW50Kj4oYXNPYmplY3QodGhpc1ZhbHVl
KSktPndyYXBwZWQoKSk7CiAgICAgICAgIGlmICghaW5zdGFuY2UpCiAgICAgICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmNwcAppbmRleCAxNWYwYTk0MWFkOGVmNTExOTBlNTQ2ZDdjNTU5ZWNlMzVh
ODlhMjM2Li42YTcyODRmYTBhYmU1NzAxMTFhYjM5ZGNlNDFjM2U0NWY3NTA0ZTJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTIyNCw3ICsyMjQsNyBAQCBK
U1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmRlZmF1bHRWYWx1ZShjb25zdCBKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIGV4ZWMsIFByZQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsUnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgQVNTRVJUKGV4
ZWMtPmpzQ2FsbGVlKCktPmluaGVyaXRzKGV4ZWMtPnZtKCksIFJ1bnRpbWVPYmplY3Q6OmluZm8o
KSkpOworICAgIEFTU0VSVChleGVjLT5qc0NhbGxlZSgpLT5pbmhlcml0czxSdW50aW1lT2JqZWN0
PihleGVjLT52bSgpKSk7CiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZShzdGF0aWNfY2Fz
dDxSdW50aW1lT2JqZWN0Kj4oZXhlYy0+anNDYWxsZWUoKSktPmdldEludGVybmFsSW5zdGFuY2Uo
KSk7CiAgICAgaW5zdGFuY2UtPmJlZ2luKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBpbnN0YW5j
ZS0+aW52b2tlRGVmYXVsdE1ldGhvZChleGVjKTsKQEAgLTI0OSw3ICsyNDksNyBAQCBDYWxsVHlw
ZSBSdW50aW1lT2JqZWN0OjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRhJiBjYWxs
RGF0YSkKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSdW50aW1lQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciA9
IGV4ZWMtPmpzQ2FsbGVlKCk7Ci0gICAgQVNTRVJUKGNvbnN0cnVjdG9yLT5pbmhlcml0cyhleGVj
LT52bSgpLCBSdW50aW1lT2JqZWN0OjppbmZvKCkpKTsKKyAgICBBU1NFUlQoY29uc3RydWN0b3It
PmluaGVyaXRzPFJ1bnRpbWVPYmplY3Q+KGV4ZWMtPnZtKCkpKTsKICAgICBSZWZQdHI8SW5zdGFu
Y2U+IGluc3RhbmNlKHN0YXRpY19jYXN0PFJ1bnRpbWVPYmplY3QqPihleGVjLT5qc0NhbGxlZSgp
KS0+Z2V0SW50ZXJuYWxJbnN0YW5jZSgpKTsKICAgICBpbnN0YW5jZS0+YmVnaW4oKTsKICAgICBB
cmdMaXN0IGFyZ3MoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V2ViSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJ
bmplY3RlZFNjcmlwdEhvc3QuY3BwCmluZGV4IDU1NTI3N2JjYzRlZTE5NGZiMzI5ODQxZDRkNDVk
YjljNDc0ZWJlOWEuLjkwNjRiMjRhOGI1NmUzYTNjOTVkZDkyNDU5ZTBiM2NhYzVhYTYwOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdEhvc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdEhvc3Qu
Y3BwCkBAIC00NywxMyArNDcsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIEpTVmFsdWUgV2Vi
SW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2
bSwgSlNOb2RlOjppbmZvKCkpKQorICAgIGlmICh2YWx1ZS5pbmhlcml0czxKU05vZGU+KHZtKSkK
ICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoIm5v
ZGUiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU05vZGVMaXN0OjppbmZvKCkpKQor
ICAgIGlmICh2YWx1ZS5pbmhlcml0czxKU05vZGVMaXN0Pih2bSkpCiAgICAgICAgIHJldHVybiBq
c05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsKLSAgICBpZiAo
dmFsdWUuaW5oZXJpdHModm0sIEpTSFRNTENvbGxlY3Rpb246OmluZm8oKSkpCisgICAgaWYgKHZh
bHVlLmluaGVyaXRzPEpTSFRNTENvbGxlY3Rpb24+KHZtKSkKICAgICAgICAgcmV0dXJuIGpzTm9u
dHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImFycmF5IikpOwotICAgIGlmICh2YWx1
ZS5pbmhlcml0cyh2bSwgSlNET01FeGNlcHRpb246OmluZm8oKSkpCisgICAgaWYgKHZhbHVlLmlu
aGVyaXRzPEpTRE9NRXhjZXB0aW9uPih2bSkpCiAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxT
dHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJlcnJvciIpKTsKIAogICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwpAQCAtMTg1LDcgKzE4NSw3IEBAIEpTVmFsdWUgV2ViSW5qZWN0ZWRTY3JpcHRIb3N0
OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMsIEpTCiAKIGJv
b2wgV2ViSW5qZWN0ZWRTY3JpcHRIb3N0Ojppc0hUTUxBbGxDb2xsZWN0aW9uKEpTQzo6Vk0mIHZt
LCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIHZhbHVlLmluaGVyaXRzKHZtLCBK
U0hUTUxBbGxDb2xsZWN0aW9uOjppbmZvKCkpOworICAgIHJldHVybiB2YWx1ZS5pbmhlcml0czxK
U0hUTUxBbGxDb2xsZWN0aW9uPih2bSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBN
ZXRob2QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE1ldGhvZC5jcHAKaW5kZXggZTU2MDg4ZjczMjE4YTRiYzdmMDkwNzg2OWU2ZGRlZjFlYTdjMDEx
OS4uOGYwZDRkZjRjZWY3ZTBjMWM4NDI5ZDhiYmZlN2JiYzI1ZDVlNWJjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhv
ZC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT50aGlzVmFsdWUoKTsKIAogICAgIC8vIENoZWNrIGlmIHdlJ3JlIGNhbGxpbmcgYSBtZXRo
b2Qgb24gdGhlIHBsdWctaW4gc2NyaXB0IG9iamVjdC4KLSAgICBpZiAodGhpc1ZhbHVlLmluaGVy
aXRzKHZtLCBKU0hUTUxFbGVtZW50OjppbmZvKCkpKSB7CisgICAgaWYgKHRoaXNWYWx1ZS5pbmhl
cml0czxKU0hUTUxFbGVtZW50Pih2bSkpIHsKICAgICAgICAgSlNIVE1MRWxlbWVudCogZWxlbWVu
dCA9IGpzQ2FzdDxKU0hUTUxFbGVtZW50Kj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAKICAgICAg
ICAgLy8gVHJ5IHRvIGdldCB0aGUgc2NyaXB0IG9iamVjdCBmcm9tIHRoZSBlbGVtZW50CkBAIC03
Nyw3ICs3Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxNZXRo
b2QoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgdGhpc1ZhbHVlID0gc2NyaXB0T2JqZWN0
OwogICAgIH0KIAotICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIEpTTlBPYmplY3Q6Omlu
Zm8oKSkpIHsKKyAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzPEpTTlBPYmplY3Q+KHZtKSkgewog
ICAgICAgICBKU05QT2JqZWN0KiBqc05QT2JqZWN0ID0ganNDYXN0PEpTTlBPYmplY3QqPihhc09i
amVjdCh0aGlzVmFsdWUpKTsKIAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTlBP
YmplY3QtPmNhbGxNZXRob2QoZXhlYywganNOUE1ldGhvZC0+bnBJZGVudGlmaWVyKCkpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5jcHAKaW5kZXggMDdhNGUyMjBkNmMyZGI5MmE1OGMxZTlkYzdlMjQxYTYzZjZhM2Jk
YS4uMWZhNTkwMTdhYTMzOTM1NWQzMmQ0NWMxNTA5ZGY1ZTg4NTQyZTQ4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVj
dC5jcHAKQEAgLTI0MSw3ICsyNDEsNyBAQCBKU1ZhbHVlIEpTTlBPYmplY3Q6OmNhbGxDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsTlBKU09iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNPYmplY3QqIG9iamVj
dCA9IGV4ZWMtPmpzQ2FsbGVlKCk7Ci0gICAgQVNTRVJUKG9iamVjdC0+aW5oZXJpdHMoZXhlYy0+
dm0oKSwgSlNOUE9iamVjdDo6aW5mbygpKSk7CisgICAgQVNTRVJUKG9iamVjdC0+aW5oZXJpdHM8
SlNOUE9iamVjdD4oZXhlYy0+dm0oKSkpOwogCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c0Nhc3Q8SlNOUE9iamVjdCo+KG9iamVjdCktPmNhbGxPYmplY3QoZXhlYykpOwogfQpAQCAtMjYw
LDcgKzI2MCw3IEBAIEpTQzo6Q2FsbFR5cGUgSlNOUE9iamVjdDo6Z2V0Q2FsbERhdGEoSlNDOjpK
U0NlbGwqIGNlbGwsIEpTQzo6Q2FsbERhdGEmIGNhbGxEYXRhCiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciA9IGV4ZWMtPmpzQ2FsbGVlKCk7Ci0gICAg
QVNTRVJUKGNvbnN0cnVjdG9yLT5pbmhlcml0cyhleGVjLT52bSgpLCBKU05QT2JqZWN0OjppbmZv
KCkpKTsKKyAgICBBU1NFUlQoY29uc3RydWN0b3ItPmluaGVyaXRzPEpTTlBPYmplY3Q+KGV4ZWMt
PnZtKCkpKTsKIAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNDYXN0PEpTTlBPYmplY3Qq
Pihjb25zdHJ1Y3RvciktPmNhbGxDb25zdHJ1Y3RvcihleGVjKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3Bw
CmluZGV4IDgxY2E3MGVlOWRkMmFlM2Q3MDk5MzdlM2RjMmNjODFmZDgxZTlhNDAuLmQxMjY3ZDc3
ZTU3NTg2NjQxZjNkMGFhNGI5OTliM2UyNjliMzYyYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwCkBAIC00
OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogTlBKU09iamVjdCogTlBKU09iamVjdDo6
Y3JlYXRlKFZNJiB2bSwgTlBSdW50aW1lT2JqZWN0TWFwKiBvYmplY3RNYXAsIEpTT2JqZWN0KiBq
c09iamVjdCkKIHsKICAgICAvLyBXZSBzaG91bGQgbmV2ZXIgaGF2ZSBhIEpTTlBPYmplY3QgaW5z
aWRlIGFuIE5QSlNPYmplY3QuCi0gICAgQVNTRVJUKCFqc09iamVjdC0+aW5oZXJpdHModm0sIEpT
TlBPYmplY3Q6OmluZm8oKSkpOworICAgIEFTU0VSVCghanNPYmplY3QtPmluaGVyaXRzPEpTTlBP
YmplY3Q+KHZtKSk7CiAKICAgICBOUEpTT2JqZWN0KiBucEpTT2JqZWN0ID0gdG9OUEpTT2JqZWN0
KGNyZWF0ZU5QT2JqZWN0KDAsIG5wQ2xhc3MoKSkpOwogICAgIG5wSlNPYmplY3QtPmluaXRpYWxp
emUodm0sIG9iamVjdE1hcCwganNPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IGFmZDM0MjM5YWIwMzVlMjk5M2U5ZWFlYzRmZjlj
Zjc2ZmQ1ZTljNDYuLjEwMGY2NzQ2ZmQ5ZDUxZGMzMDFiM2U3MjFlZjNjOGEzNDY2MGRiY2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTcz
OCw3ICs3MzgsNyBAQCBKU1ZhbHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZChJbmpl
Y3RlZEJ1bmRsZUZpbGVIYW5kbGUqIGZpbGVIYW5kbGUsIEluagogCiBTdHJpbmcgV2ViRnJhbWU6
OmNvdW50ZXJWYWx1ZShKU09iamVjdFJlZiBlbGVtZW50KQogewotICAgIGlmICghdG9KUyhlbGVt
ZW50KS0+aW5oZXJpdHMoKnRvSlMoZWxlbWVudCktPnZtKCksIEpTRWxlbWVudDo6aW5mbygpKSkK
KyAgICBpZiAoIXRvSlMoZWxlbWVudCktPmluaGVyaXRzPEpTRWxlbWVudD4oKnRvSlMoZWxlbWVu
dCktPnZtKCkpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICByZXR1cm4gY291bnRl
clZhbHVlRm9yRWxlbWVudCgmanNDYXN0PEpTRWxlbWVudCo+KHRvSlMoZWxlbWVudCkpLT53cmFw
cGVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0KaW5kZXggNTlmMTM2MzQyOTEyZWEw
MTA3MTFiMjUyNjVmMjIyNGMzNjVkYjY4Zi4uZTdjZTYzMWQwYTdkOGFhOGUyMGQ4MWQ4ZTRhNzZm
YzQ0MTBjODUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1tCkBAIC01MzAsNyArNTMw
LDcgQEAgQGltcGxlbWVudGF0aW9uIERPTU5vZGUgKFdlYlByaXZhdGUpCiArIChpZClfbm9kZUZy
b21KU1dyYXBwZXI6KEpTT2JqZWN0UmVmKWpzV3JhcHBlcgogewogICAgIEpTT2JqZWN0KiBvYmpl
Y3QgPSB0b0pTKGpzV3JhcHBlcik7Ci0gICAgaWYgKCFvYmplY3QtPmluaGVyaXRzKCpvYmplY3Qt
PnZtKCksIEpTTm9kZTo6aW5mbygpKSkKKyAgICBpZiAoIW9iamVjdC0+aW5oZXJpdHM8SlNOb2Rl
Pigqb2JqZWN0LT52bSgpKSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICByZXR1cm4ga2l0KCZq
c0Nhc3Q8SlNOb2RlKj4ob2JqZWN0KS0+d3JhcHBlZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCA4NTE1NzRmODczYzI0MjcyNjE2YjAxZWQzNTQ0
ODU2OGMzYTE1OGMyLi42ZjJkMjU5ZjU5ZDA0MTBhNWU0Nzc0NDZmNTQ5NzAyMzYzNTQyZWQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0xNDUzLDcgKzE0
NTMsNyBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZGVtYXJzaGFsVmFsdWVz
KEV4ZWNTdGF0ZSogZXhlYywgZGF0YV90IHZhbHVlcwogCiB2b2lkIE5ldHNjYXBlUGx1Z2luSW5z
dGFuY2VQcm94eTo6cmV0YWluTG9jYWxPYmplY3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAg
IGlmICghdmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pbmhlcml0cygqdmFsdWUuZ2V0T2JqZWN0
KCktPnZtKCksIFByb3h5UnVudGltZU9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAoIXZhbHVlLmlz
T2JqZWN0KCkgfHwgdmFsdWUuaW5oZXJpdHM8UHJveHlSdW50aW1lT2JqZWN0PigqdmFsdWUuZ2V0
T2JqZWN0KCktPnZtKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2xvY2FsT2JqZWN0cy5y
ZXRhaW4oYXNPYmplY3QodmFsdWUpKTsKQEAgLTE0NjEsNyArMTQ2MSw3IEBAIHZvaWQgTmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5OjpyZXRhaW5Mb2NhbE9iamVjdChKU0M6OkpTVmFsdWUgdmFs
dWUpCiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpyZWxlYXNlTG9jYWxPYmpl
Y3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSB8fCB2
YWx1ZS5pbmhlcml0cygqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCksIFByb3h5UnVudGltZU9iamVj
dDo6aW5mbygpKSkKKyAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFsdWUuaW5oZXJpdHM8
UHJveHlSdW50aW1lT2JqZWN0PigqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCkpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBtX2xvY2FsT2JqZWN0cy5yZWxlYXNlKGFzT2JqZWN0KHZhbHVlKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUlu
c3RhbmNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJ
bnN0YW5jZS5tbQppbmRleCAyNmFiM2ViMGQ4NWU5ZGMyOTQxZDkxZmNlMTc5OGUzZGUxZmFkMDUy
Li4zNjg3YmMxYmMyZmM1NGJmOTg1NWYzNTJiYmNjZGYxZjkxMTYwMzM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2Uu
bW0KQEAgLTIyMyw3ICsyMjMsNyBAQCBKU1ZhbHVlIFByb3h5SW5zdGFuY2U6Omludm9rZU1ldGhv
ZChFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6UnVudGltZU1ldGhvZCogcnVudGltZQogICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCi0gICAgaWYgKCFhc09iamVjdChydW50aW1lTWV0aG9kKS0+aW5oZXJpdHModm0sIFByb3h5
UnVudGltZU1ldGhvZDo6aW5mbygpKSkKKyAgICBpZiAoIWFzT2JqZWN0KHJ1bnRpbWVNZXRob2Qp
LT5pbmhlcml0czxQcm94eVJ1bnRpbWVNZXRob2Q+KHZtKSkKICAgICAgICAgcmV0dXJuIHRocm93
VHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gaW52b2tlIG5v
bi1wbHVnLWluIG1ldGhvZCBvbiBwbHVnLWluIG9iamVjdC4iKSk7CiAKICAgICBQcm94eU1ldGhv
ZCogbWV0aG9kID0gc3RhdGljX2Nhc3Q8UHJveHlNZXRob2QqPihydW50aW1lTWV0aG9kLT5tZXRo
b2QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXgg
ZWMyNmIyYjk0NTZjMjZiNzZjYzE2ZmRiMjg0NzA0OWQ2YmU0NmY0OC4uNDM1YTU5NzMyNDJjYWM1
OWM2ODgxYTQ1Y2I1ZWQ4MjUzYTE3NmIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQpAQCAtNzYzNyw3ICs3NjM3LDcgQEAgc3RhdGljIE5TQXBwbGVFdmVu
dERlc2NyaXB0b3IqIGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1Zh
bHVlIGoKICAgICB9CiAgICAgaWYgKGpzVmFsdWUuaXNPYmplY3QoKSkgewogICAgICAgICBKU09i
amVjdCogb2JqZWN0ID0ganNWYWx1ZS5nZXRPYmplY3QoKTsKLSAgICAgICAgaWYgKG9iamVjdC0+
aW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkgeworICAgICAgICBpZiAob2JqZWN0
LT5pbmhlcml0czxEYXRlSW5zdGFuY2U+KHZtKSkgewogICAgICAgICAgICAgRGF0ZUluc3RhbmNl
KiBkYXRlID0gc3RhdGljX2Nhc3Q8RGF0ZUluc3RhbmNlKj4ob2JqZWN0KTsKICAgICAgICAgICAg
IGRvdWJsZSBtcyA9IGRhdGUtPmludGVybmFsTnVtYmVyKCk7CiAgICAgICAgICAgICBpZiAoIXN0
ZDo6aXNuYW4obXMpKSB7CkBAIC03NjQ2LDcgKzc2NDYsNyBAQCBzdGF0aWMgTlNBcHBsZUV2ZW50
RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFs
dWUgagogICAgICAgICAgICAgICAgIGlmIChub0VyciA9PSBVQ0NvbnZlcnRDRkFic29sdXRlVGlt
ZVRvTG9uZ0RhdGVUaW1lKHV0Y1NlY29uZHMsICZsZHQpKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gW05TQXBwbGVFdmVudERlc2NyaXB0b3IgZGVzY3JpcHRvcldpdGhEZXNjcmlwdG9yVHlw
ZTp0eXBlTG9uZ0RhdGVUaW1lIGJ5dGVzOiZsZHQgbGVuZ3RoOnNpemVvZihsZHQpXTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChvYmplY3QtPmluaGVyaXRzKHZtLCBKU0FycmF5
OjppbmZvKCkpKSB7CisgICAgICAgIH0gZWxzZSBpZiAob2JqZWN0LT5pbmhlcml0czxKU0FycmF5
Pih2bSkpIHsKICAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PEpTT2Jq
ZWN0Kj4+IHZpc2l0ZWRFbGVtczsKICAgICAgICAgICAgIGlmICh2aXNpdGVkRWxlbXMuZ2V0KCku
YWRkKG9iamVjdCkuaXNOZXdFbnRyeSkgewogICAgICAgICAgICAgICAgIEpTQXJyYXkqIGFycmF5
ID0gc3RhdGljX2Nhc3Q8SlNBcnJheSo+KG9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJG
cmFtZS5jcHAKaW5kZXggOTM3YTI1N2FhMTIwOGI2NjY1OGZlNjQyMzFlNDI3MDE0MTIyOTJhNi4u
ODdkYzkwYjVjMGY5NzJhYWI3ZGZiZTllZjQyNmFlNzJlZDc0NDU2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkZyYW1lLmNwcApAQCAtMjAwMiw3ICsyMDAyLDcgQEAgSFJFU1VMVCBXZWJGcmFt
ZTo6c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEluU2NyaXB0V29ybGQoSVdlYlNjcmlwdFdv
cmxkKiBpV28KIAogICAgIC8vIFRoZSBnbG9iYWwgb2JqZWN0IGlzIHByb2JhYmx5IGEgcHJveHkg
b2JqZWN0PyAtIGlmIHNvLCB3ZSBrbm93IGhvdyB0byB1c2UgdGhpcyEKICAgICBKU0M6OkpTT2Jq
ZWN0KiBnbG9iYWxPYmplY3RPYmogPSB0b0pTKGdsb2JhbE9iamVjdFJlZik7Ci0gICAgaWYgKGds
b2JhbE9iamVjdE9iai0+aW5oZXJpdHMoKmdsb2JhbE9iamVjdE9iai0+dm0oKSwgSlNET01XaW5k
b3dQcm94eTo6aW5mbygpKSkKKyAgICBpZiAoZ2xvYmFsT2JqZWN0T2JqLT5pbmhlcml0czxKU0RP
TVdpbmRvd1Byb3h5PigqZ2xvYmFsT2JqZWN0T2JqLT52bSgpKSkKICAgICAgICAgYW55V29ybGRH
bG9iYWxPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1Byb3h5Kj4oZ2xvYmFsT2JqZWN0
T2JqKS0+d2luZG93KCk7CiAKICAgICAvLyBHZXQgdGhlIGZyYW1lIGZyb21lIHRoZSBnbG9iYWwg
b2JqZWN0IHdlJ3ZlIHNldHRsZWQgb24uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335273</attachid>
            <date>2018-03-08 00:38:34 -0800</date>
            <delta_ts>2018-03-08 01:19:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183429-20180308173833.patch</filename>
            <type>text/plain</type>
            <size>160488</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5Mzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NDAwZjNhYTM0M2JlMDdmMzc0NTZjYTdlZmE3YmQ4ZDZhNjVjODYwLi45ZjZkODA5MTE5Njk4YjY0
ODBjZWFkMmNhMzZmMjI4OWJjMTFlMTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOTYgQEAKKzIwMTgtMDMtMDggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIGluaGVyaXRzPFQ+KFZNJikgbGV2ZXJhZ2luZyBK
U0Nhc3QgZmFzdCBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODM0MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbiwgSlNDZWxsOjppbmhlcml0czxUPihWTSYp
IGFuZCBKU1ZhbHVlOjppbmhlcml0czxUPihWTSYpLgorICAgICAgICBUaGV5IGRlcGVuZHMgb24g
anNEeW5hbWljQ2FzdDxUPiBpbXBsZW1lbnRhdGlvbiBhbmQgbGV2ZXJhZ2UgSlNUeXBlLWJhc2Vk
IGZhc3QKKyAgICAgICAgcGF0aHMgZGVmaW5lZCBpbiBKU0Nhc3QuaC4KKworICAgICAgICBBbmQg
d2UgcmVtb3ZlIHNldmVyYWwgdW5uZWNlc3NhcnkgY2FzdGluZyBmdW5jdGlvbnMgKGFzUmVnRXhw
T2JqZWN0LCBhc0RhdGVJbnN0YW5jZSBldGMuKS4KKyAgICAgICAgSW4gYWRkaXRpb24sIHdlIGFk
ZCBqc0R5bmFtaWNDYXN0IGZhc3QgcGF0aCBmb3IgUmVnRXhwT2JqZWN0IGJ5IHVzaW5nIGV4aXN0
aW5nIFJlZ0V4cE9iamVjdFR5cGUuCisKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgor
ICAgICAgICAoSlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAoSlNPYmplY3RT
ZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAoSlNPYmplY3REZWxldGVQcml2YXRlUHJvcGVy
dHkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlLm1tOgorICAgICAgICAoaXNEYXRlKToKKyAgICAg
ICAgKGlzQXJyYXkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlUmVmLmNwcDoKKyAgICAgICAgKEpT
VmFsdWVJc0FycmF5KToKKyAgICAgICAgKEpTVmFsdWVJc0RhdGUpOgorICAgICAgICAoSlNWYWx1
ZUlzT2JqZWN0T2ZDbGFzcyk6CisgICAgICAgICogQVBJL0pTV2Vha09iamVjdE1hcFJlZlByaXZh
dGUuY3BwOgorICAgICAgICAqIEFQSS9KU1dyYXBwZXJNYXAubW06CisgICAgICAgICh0cnlVbndy
YXBPYmpjT2JqZWN0KToKKyAgICAgICAgKiBBUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW06Cisg
ICAgICAgICh0cnlVbndyYXBDb25zdHJ1Y3Rvcik6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9j
ayk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGZ0bC9GVExM
b3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpj
b21waWxlT3ZlcnJpZGVzSGFzSW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlTmV3UmVnZXhwKToKKyAgICAgICAgKiBmdGwvRlRMT3BlcmF0aW9u
cy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6b3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9T
Uik6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAg
ICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUpOgorICAgICAgICAo
SW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6ZnVuY3Rpb25EZXRhaWxzKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHA6CisgICAgICAgIChJ
bnNwZWN0b3I6Okluc3BlY3RvckhlYXBBZ2VudDo6Z2V0UHJldmlldyk6CisgICAgICAgICogaW50
ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpub3RpZnlEZWJ1Z2dlck9m
VW53aW5kaW5nKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TaGFkb3dDaGlja2VuLmNwcDoKKyAg
ICAgICAgKEpTQzo6U2hhZG93Q2hpY2tlbjo6dXBkYXRlKToKKyAgICAgICAgKiBqaXQvSklULmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAg
KiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Om9wZXJhdGlvbk5ld0Z1bmN0
aW9uQ29tbW9uKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoY2hlY2tFeGNlcHRpb24p
OgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAgICAgICAoSlNDOjphc0Jv
b2xlYW5PYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblByb3RvdHlw
ZS5jcHA6CisgICAgICAgIChKU0M6OmJvb2xlYW5Qcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAg
IChKU0M6OmJvb2xlYW5Qcm90b0Z1bmNWYWx1ZU9mKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdERhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg6CisgICAgICAgIChKU0M6OmFzRGF0ZUluc3RhbmNlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpmb3JtYXRlRGF0ZUluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Rv
SVNPU3RyaW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKToK
KyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvTG9jYWxlRGF0ZVN0cmluZyk6CisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNUb0xvY2FsZVRpbWVTdHJpbmcpOgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jR2V0VGltZSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRGdWxs
WWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhcik6CisgICAg
ICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXRVVENNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXREYXRlKToK
KyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUpOgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jR2V0RGF5KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0Rh
eSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRIb3Vycyk6CisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRVVENIb3Vycyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNH
ZXRNaW51dGVzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0ZXMpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRh
dGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dl
dE1pbGxpU2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNl
Y29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VGltZSk6CisgICAgICAgIChKU0M6OnNldE5l
d1ZhbHVlRnJvbVRpbWVBcmdzKToKKyAgICAgICAgKEpTQzo6c2V0TmV3VmFsdWVGcm9tRGF0ZUFy
Z3MpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0WWVhcik6CisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRZZWFyKToKKyAgICAgICAgKiBydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwOgorICAgICAgICAoSlNDOjppc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24pOgor
ICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpm
dW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uaDoKKyAgICAgICAgKEpTQzo6YXNJbnRlcm5hbEZ1bmN0aW9uKToKKyAgICAgICAgKiBy
dW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6YXNBcnJheSk6CisgICAgICAgICogcnVu
dGltZS9KU0NKU1ZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6ZHVtcEZvckJhY2t0
cmFjZSBjb25zdCk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisgICAgICAgICog
cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjppbmhl
cml0cyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9KU0Nhc3QuaDoKKyAgICAgICAgKEpTQzo6
SlNDYXN0aW5nSGVscGVyczo6anNEeW5hbWljQ2FzdEdlbmVyaWNJbXBsKToKKyAgICAgICAgKiBy
dW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpKU0NlbGw6OmluaGVyaXRzIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0pT
RnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpSZXRyaWV2ZUNhbGxlckZ1bmN0aW9uRnVuY3Rv
cjo6b3BlcmF0b3IoKSBjb25zdCk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmNhbGxlckdl
dHRlcik6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmdldE93bk5vbkluZGV4UHJvcGVydHlO
YW1lcyk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OnJlaWZ5TGF6eUJvdW5kTmFtZUlmTmVl
ZGVkKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpT
Qzo6ZW5xdWV1ZUpvYik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAg
ICAgICAoSlNDOjphc0dsb2JhbE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9K
U0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZDo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTTGV4aWNhbEVudmly
b25tZW50Lmg6CisgICAgICAgIChKU0M6OmFzQWN0aXZhdGlvbik6CisgICAgICAgICogcnVudGlt
ZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6dW53cmFwQm94ZWRQcmltaXRpdmUpOgor
ICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6U3RyaW5naWZpZXIpOgorICAgICAgICAoSlNDOjpX
YWxrZXI6OndhbGspOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNQcm9taXNlOjpyZXNvbHZlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZURl
ZmVycmVkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5oOgorICAgICAgICAoSlNDOjpQcm94eU9iamVj
dDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0Ojp0YXJnZXQgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6aGFuZGxlciBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OmNvbnN0cnVjdFJlZ0V4cCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjphc1JlZ0V4cENvbnN0cnVjdG9yKToKKyAgICAgICAg
KEpTQzo6aXNSZWdFeHApOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6
OlJlZ0V4cE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6UmVnRXhw
T2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OnJlZ0V4cE9iamVjdFNl
dExhc3RJbmRleFN0cmljdCk6CisgICAgICAgIChKU0M6OnJlZ0V4cE9iamVjdFNldExhc3RJbmRl
eE5vblN0cmljdCk6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6cHV0KToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cE9iamVjdC5oOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OmNy
ZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6c2V0UmVnRXhwKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpyZWdFeHAgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnNldExhc3RJbmRleCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6Z2V0TGFzdEluZGV4IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0Ojp0ZXN0KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVnRXhwT2JqZWN0Ojp0ZXN0SW5saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
UmVnRXhwT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpS
ZWdFeHBPYmplY3Q6Om9mZnNldE9mUmVnRXhwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVn
RXhwT2JqZWN0OjpvZmZzZXRPZkxhc3RJbmRleCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJl
Z0V4cE9iamVjdDo6b2Zmc2V0T2ZMYXN0SW5kZXhJc1dyaXRhYmxlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6UmVnRXhwT2JqZWN0OjphbGxvY2F0aW9uU2l6ZSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmFzUmVnRXhwT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1JlZ0V4
cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY1Rlc3RGYXN0KToK
KyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jRXhlYyk6CisgICAgICAgIChKU0M6OnJlZ0V4
cFByb3RvRnVuY01hdGNoRmFzdCk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY0NvbXBp
bGUpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlckdsb2JhbCk6CisgICAgICAgIChK
U0M6OnJlZ0V4cFByb3RvR2V0dGVySWdub3JlQ2FzZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cFBy
b3RvR2V0dGVyTXVsdGlsaW5lKToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJEb3RB
bGwpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlclN0aWNreSk6CisgICAgICAgIChK
U0M6OnJlZ0V4cFByb3RvR2V0dGVyVW5pY29kZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3Rv
R2V0dGVyU291cmNlKToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jU2VhcmNoRmFzdCk6
CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY1NwbGl0RmFzdCk6CisgICAgICAgICogcnVu
dGltZS9TdHJpbmdPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6YXNTdHJpbmdPYmplY3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpT
Qzo6cmVwbGFjZVVzaW5nUmVnRXhwU2VhcmNoKToKKyAgICAgICAgKEpTQzo6cmVwbGFjZSk6Cisg
ICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2luZ1JlZ0V4cCk6CisgICAgICAg
IChKU0M6OnN0cmluZ1Byb3RvRnVuY1RvU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL1N5bWJv
bFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnN5bWJvbFByb3RvRnVuY1RvU3RyaW5nKToK
KyAgICAgICAgKEpTQzo6c3ltYm9sUHJvdG9GdW5jVmFsdWVPZik6CisgICAgICAgICogdG9vbHMv
SlNEb2xsYXJWTS5jcHA6CisgICAgICAgIChXVEY6OmN1c3RvbUdldFZhbHVlKToKKyAgICAgICAg
KFdURjo6Y3VzdG9tU2V0VmFsdWUpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUhl
bHBlcnMuaDoKKyAgICAgICAgKEpTQzo6aXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbik6CisgICAg
ICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHA6CisgICAgICAgIChK
U0M6OldlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpjcmVhdGUpOgorCiAyMDE4LTAzLTA3ICBL
ZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIGZpeCAzMi1iaXQgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRiOWY3MjI4NGJmOGYyYTIzY2Zi
NmYzYzFjMzViY2RiZjZhYWIzZC4uNmY3YWYxOTZiM2JiODNkY2Y1ZmM1ZDc4ZDA2NDhlMzhlYWVk
OWU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE4LTAzLTA4ICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBpbmhlcml0
czxUPihWTSYpIGxldmVyYWdpbmcgSlNDYXN0IGZhc3QgcGF0aAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNDI5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRp
bGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlEQktleUZyb21WYWx1ZSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp2YWx1ZVRvRGF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93Ojp0b1dyYXBwZWQpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OnB1
c2hFdmVudEhhbmRsZXJTY29wZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNYUGF0
aE5TUmVzb2x2ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNYUGF0aE5TUmVzb2x2
ZXI6OnRvV3JhcHBlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZG9tV2luZG93RnJvbUV4ZWNTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNs
b25lU2VyaWFsaXplcjo6aXNBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6
ZXI6OmlzTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6aXNTZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpkdW1wQXJyYXlCdWZmZXJWaWV3KToK
KyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcERPTVBvaW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcERPTVJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xvbmVTZXJpYWxpemVyOjpkdW1wRE9NTWF0cml4KToKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lU2VyaWFsaXplcjo6ZHVtcElmVGVybWluYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2xv
bmVEZXNlcmlhbGl6ZXI6OkNsb25lRGVzZXJpYWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNs
b25lRGVzZXJpYWxpemVyOjpyZWFkQXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlT3ZlcmxvYWRE
aXNwYXRjaGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZE92ZXJsb2FkRGlzcGF0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXJP
dmVybG9hZERpc3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb25PdmVybG9hZERp
c3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9uc092ZXJsb2FkRGlzcGF0Y2hl
cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
ZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbk92ZXJsb2FkRGlzcGF0Y2hlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51
bGxhYmxlVW5pb25PdmVybG9hZERpc3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5n
UGFyYW1ldGVyT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb25PdmVybG9hZERp
c3BhdGNoZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKiBicmlkZ2Uv
Yy9jX2luc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkNJbnN0YW5jZTo6aW52
b2tlTWV0aG9kKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06Cisg
ICAgICAgICgrW1dlYlNjcmlwdE9iamVjdCBfY29udmVydFZhbHVlVG9PYmpjVmFsdWU6b3JpZ2lu
Um9vdE9iamVjdDpyb290T2JqZWN0Ol0pOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfaW5z
dGFuY2UubW06CisgICAgICAgIChPYmpjSW5zdGFuY2U6Omludm9rZU1ldGhvZCk6CisgICAgICAg
ICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6
Y2FsbE9iakNGYWxsYmFja09iamVjdCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmNwcDoKKyAgICAgICAgKEpTQzo6Y2FsbFJ1bnRpbWVNZXRob2QpOgorICAgICAgICAqIGJyaWRn
ZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpjYWxsUnVudGlt
ZU9iamVjdCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpjYWxsUnVudGltZUNvbnN0cnVjdG9y
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkluamVjdGVkU2NyaXB0SG9zdDo6c3VidHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJJbmplY3RlZFNjcmlwdEhvc3Q6OmlzSFRNTEFsbENvbGxlY3Rpb24pOgorCiAy
MDE4LTAzLTA3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgSW52
YWxpZCBpbm5lclRleHRSZW5kZXJlciBpbiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnN0
eWxlRGlkQ2hhbmdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNWFiZjIzZjY0ZDU5ZjE3NmFlMjU4MjljOTY5ZWVi
NjRmMzQxZjkwMy4uN2JmN2UwODZjYTE2NTEwMzBmZDRjNzBkYzc3YmYzYTEzNWQ2NmM2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0wMy0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgaW5oZXJpdHM8VD4oVk0mKSBs
ZXZlcmFnaW5nIEpTQ2FzdCBmYXN0IHBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MzQyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRo
b2QuY3BwOgorICAgICAgICAoV2ViS2l0OjpjYWxsTWV0aG9kKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNh
bGxOUEpTT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6Y29uc3RydWN0V2l0aENvbnN0cnVjdG9y
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5QSlNPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNv
dW50ZXJWYWx1ZSk6CisKIDIwMTgtMDMtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIxODA4OSk6IFtHVEtdIHdlYmtp
dF93ZWJfdmlld19nZXRfaW5zcGVjdG9yKCkgbmVlZHMgdG8gYmUgY2FsbGVkLCBvdGhlcndpc2Ug
aW5zcGVjdG9yIGRvZXMgbm90IGNsb3NlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXgg
OTM2NTk1NWQ4NDI2NjdmNmI3NDhkMjM0MThjYjU3YjliNThhYzYwZS4uNWY1N2NkMmFkN2U3Zjk2
NWViMGIyMzgxMWMxMzIyYTcxOWM3MTA4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDE4LTAzLTA4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBpbmhlcml0czxUPihWTSYpIGxldmVyYWdp
bmcgSlNDYXN0IGZhc3QgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgzNDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBET00vRE9NLm1tOgorICAgICAgICAoK1tET01Ob2RlIF9ub2RlRnJvbUpT
V3JhcHBlcjpdKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eTo6cmV0YWluTG9jYWxPYmplY3QpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHk6OnJlbGVhc2VMb2NhbE9iamVjdCk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvUHJveHlJbnN0YW5jZS5tbToKKyAgICAgICAgKFdlYktpdDo6UHJveHlJbnN0YW5jZTo6aW52
b2tlTWV0aG9kKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgIChhZURl
c2NGcm9tSlNWYWx1ZSk6CisKIDIwMTgtMDMtMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIE1hdGNoIHVuc3VwcG9ydGVkIHBsdWdpbnMgYmFzZWQgb24gZG9t
YWlucyBhbmQgbm90IG9yaWdpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDg4NTE2
YzBkODhlMWIzMjdjZTYwZTlhYTlmOWM0NjQyOTVkNDIxM2YuLmY5NGE4YjMxNTZiMWFhMGY4ODAy
NWU2NzRjMDUyNGVmZTM1YzBkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxOC0wMy0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgaW5oZXJpdHM8VD4oVk0mKSBsZXZlcmFnaW5nIEpT
Q2FzdCBmYXN0IHBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MzQyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWU6OnN0cmluZ0J5RXZhbHVh
dGluZ0phdmFTY3JpcHRJblNjcmlwdFdvcmxkKToKKwogMjAxOC0wMy0wNSAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBGaXggc3RkOjptYWtlX3VuaXF1
ZSAvIG5ld1tdIHVzaW5nIHN5c3RlbSBtYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U09iamVjdFJlZi5jcHAKaW5kZXggNjc0NzMzNzY2MjliYzA0NWRmMWJhYjUxODQ3YmJjODliZmU4
ZmQ5ZS4uNGY4ODY4MTk2YTJiNzMxYWYyNjlkNDA4YWFmMDYyMTRjYWVjNzhkMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKQEAgLTUwMSwxNSArNTAxLDE1IEBA
IEpTVmFsdWVSZWYgSlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwg
SlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0CiAKIAogICAgIC8vIEdldCB3cmFwcGVkIG9iamVjdCBp
ZiBwcm94aWVkCi0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNQcm94eTo6aW5mbygp
KSkKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTUHJveHk+KHZtKSkKICAgICAgICAganNP
YmplY3QgPSBqc0Nhc3Q8SlNQcm94eSo+KGpzT2JqZWN0KS0+dGFyZ2V0KCk7CiAKLSAgICBpZiAo
anNPYmplY3QtPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6
aW5mbygpKSkKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNH
bG9iYWxPYmplY3Q+Pih2bSkpCiAgICAgICAgIHJlc3VsdCA9IGpzQ2FzdDxKU0NhbGxiYWNrT2Jq
ZWN0PEpTR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0KS0+Z2V0UHJpdmF0ZVByb3BlcnR5KG5hbWUp
OwotICAgIGVsc2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxK
U0Rlc3RydWN0aWJsZU9iamVjdD46OmluZm8oKSkpCisgICAgZWxzZSBpZiAoanNPYmplY3QtPmlu
aGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+Pih2bSkpCiAgICAg
ICAgIHJlc3VsdCA9IGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
Pio+KGpzT2JqZWN0KS0+Z2V0UHJpdmF0ZVByb3BlcnR5KG5hbWUpOwogI2lmIEpTQ19PQkpDX0FQ
SV9FTkFCTEVECi0gICAgZWxzZSBpZiAoanNPYmplY3QtPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNr
T2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkpCisgICAgZWxzZSBpZiAoanNPYmpl
Y3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pj4odm0pKQog
ICAgICAgICByZXN1bHQgPSBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmpl
Y3Q+Kj4oanNPYmplY3QpLT5nZXRQcml2YXRlUHJvcGVydHkobmFtZSk7CiAjZW5kaWYKICAgICBy
ZXR1cm4gdG9SZWYoZXhlYywgcmVzdWx0KTsKQEAgLTUyNSwxOSArNTI1LDE5IEBAIGJvb2wgSlNP
YmplY3RTZXRQcml2YXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2Jq
ZWN0LCBKU1N0cmluZ1JlCiAgICAgSWRlbnRpZmllciBuYW1lKHByb3BlcnR5TmFtZS0+aWRlbnRp
Zmllcigmdm0pKTsKIAogICAgIC8vIEdldCB3cmFwcGVkIG9iamVjdCBpZiBwcm94aWVkCi0gICAg
aWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNQcm94eTo6aW5mbygpKSkKKyAgICBpZiAoanNP
YmplY3QtPmluaGVyaXRzPEpTUHJveHk+KHZtKSkKICAgICAgICAganNPYmplY3QgPSBqc0Nhc3Q8
SlNQcm94eSo+KGpzT2JqZWN0KS0+dGFyZ2V0KCk7CiAKLSAgICBpZiAoanNPYmplY3QtPmluaGVy
aXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6aW5mbygpKSkgeworICAg
IGlmIChqc09iamVjdC0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4+
KHZtKSkgewogICAgICAgICBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4q
Pihqc09iamVjdCktPnNldFByaXZhdGVQcm9wZXJ0eSh2bSwgbmFtZSwganNWYWx1ZSk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKHZtLCBK
U0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pjo6aW5mbygpKSkgeworICAgIGlm
IChqc09iamVjdC0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9iamVj
dD4+KHZtKSkgewogICAgICAgICBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJs
ZU9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZhdGVQcm9wZXJ0eSh2bSwgbmFtZSwganNWYWx1
ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICNpZiBKU0NfT0JKQ19BUElfRU5BQkxF
RAotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElX
cmFwcGVyT2JqZWN0Pjo6aW5mbygpKSkgeworICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHM8SlND
YWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+Pih2bSkpIHsKICAgICAgICAganNDYXN0
PEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pio+KGpzT2JqZWN0KS0+c2V0UHJp
dmF0ZVByb3BlcnR5KHZtLCBuYW1lLCBqc1ZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQpAQCAtNTU0LDE5ICs1NTQsMTkgQEAgYm9vbCBKU09iamVjdERlbGV0ZVByaXZhdGVQcm9w
ZXJ0eShKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW4KICAgICBJ
ZGVudGlmaWVyIG5hbWUocHJvcGVydHlOYW1lLT5pZGVudGlmaWVyKCZ2bSkpOwogCiAgICAgLy8g
R2V0IHdyYXBwZWQgb2JqZWN0IGlmIHByb3hpZWQKLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRz
KHZtLCBKU1Byb3h5OjppbmZvKCkpKQorICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHM8SlNQcm94
eT4odm0pKQogICAgICAgICBqc09iamVjdCA9IGpzQ2FzdDxKU1Byb3h5Kj4oanNPYmplY3QpLT50
YXJnZXQoKTsKIAotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2FsbGJhY2tPYmpl
Y3Q8SlNHbG9iYWxPYmplY3Q+OjppbmZvKCkpKSB7CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0
czxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pj4odm0pKSB7CiAgICAgICAgIGpzQ2Fz
dDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0KS0+ZGVsZXRlUHJp
dmF0ZVByb3BlcnR5KG5hbWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgaWYg
KGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9i
amVjdD46OmluZm8oKSkpIHsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tP
YmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+Pih2bSkpIHsKICAgICAgICAganNDYXN0PEpTQ2Fs
bGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2
YXRlUHJvcGVydHkobmFtZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICNpZiBKU0Nf
T0JKQ19BUElfRU5BQkxFRAotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2FsbGJh
Y2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6aW5mbygpKSkgeworICAgIGlmIChqc09iamVj
dC0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+Pih2bSkpIHsK
ICAgICAgICAganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pio+KGpz
T2JqZWN0KS0+ZGVsZXRlUHJpdmF0ZVByb3BlcnR5KG5hbWUpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUu
bW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KaW5kZXggNmYzYjFkOGY2
NjRkNDdjYzZkNzllYzQ1NjhhM2Q4OTI4MWMyMDJlOC4uYzgxMGYxNGM0NzJmYWE3MTZhZWNkYzJl
MjQ4ZTY3ODUwNmQyMDcxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1ZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQpAQCAt
NTc0LDEzICs1NzQsMTMgQEAgQGVuZAogaW5saW5lIGJvb2wgaXNEYXRlKEpTQzo6Vk0mIHZtLCBK
U09iamVjdFJlZiBvYmplY3QsIEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0KQogewogICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2tlcih0b0pTKGNvbnRleHQpKTsKLSAgICByZXR1cm4gdG9KUyhv
YmplY3QpLT5pbmhlcml0cyh2bSwgSlNDOjpEYXRlSW5zdGFuY2U6OmluZm8oKSk7CisgICAgcmV0
dXJuIHRvSlMob2JqZWN0KS0+aW5oZXJpdHM8SlNDOjpEYXRlSW5zdGFuY2U+KHZtKTsKIH0KIAog
aW5saW5lIGJvb2wgaXNBcnJheShKU0M6OlZNJiB2bSwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU0ds
b2JhbENvbnRleHRSZWYgY29udGV4dCkKIHsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIo
dG9KUyhjb250ZXh0KSk7Ci0gICAgcmV0dXJuIHRvSlMob2JqZWN0KS0+aW5oZXJpdHModm0sIEpT
Qzo6SlNBcnJheTo6aW5mbygpKTsKKyAgICByZXR1cm4gdG9KUyhvYmplY3QpLT5pbmhlcml0czxK
U0M6OkpTQXJyYXk+KHZtKTsKIH0KIAogQGltcGxlbWVudGF0aW9uIEpTVmFsdWUoSW50ZXJuYWwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRleCAyM2RiYzcyMmVm
MGJiN2JkMThjMjA5NjFkZTJjZTFhODA4NTdiZjRkLi4wMGJmMDYxYWRhMmQxNmMxNzU4NzRkOGQ4
MTgwNjkzNDU3ZmE5ODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
VmFsdWVSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5j
cHAKQEAgLTE3Miw3ICsxNzIsNyBAQCBib29sIEpTVmFsdWVJc0FycmF5KEpTQ29udGV4dFJlZiBj
dHgsIEpTVmFsdWVSZWYgdmFsdWUpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBKU0xv
Y2tIb2xkZXIgbG9ja2VyKGV4ZWMpOwogCi0gICAgcmV0dXJuIHRvSlMoZXhlYywgdmFsdWUpLmlu
aGVyaXRzKHZtLCBKU0FycmF5OjppbmZvKCkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIHZhbHVl
KS5pbmhlcml0czxKU0FycmF5Pih2bSk7CiB9CiAKIGJvb2wgSlNWYWx1ZUlzRGF0ZShKU0NvbnRl
eHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKQpAQCAtMTg1LDcgKzE4NSw3IEBAIGJvb2wgSlNW
YWx1ZUlzRGF0ZShKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKQogICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcihleGVjKTsKIAotICAgIHJl
dHVybiB0b0pTKGV4ZWMsIHZhbHVlKS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkp
OworICAgIHJldHVybiB0b0pTKGV4ZWMsIHZhbHVlKS5pbmhlcml0czxEYXRlSW5zdGFuY2U+KHZt
KTsKIH0KIAogYm9vbCBKU1ZhbHVlSXNPYmplY3RPZkNsYXNzKEpTQ29udGV4dFJlZiBjdHgsIEpT
VmFsdWVSZWYgdmFsdWUsIEpTQ2xhc3NSZWYganNDbGFzcykKQEAgLTIwMSwxNSArMjAxLDE1IEBA
IGJvb2wgSlNWYWx1ZUlzT2JqZWN0T2ZDbGFzcyhKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVm
IHZhbHVlLCBKU0NsYXNzUmVmIGpzQ2xhCiAgICAgSlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVj
LCB2YWx1ZSk7CiAgICAgCiAgICAgaWYgKEpTT2JqZWN0KiBvID0ganNWYWx1ZS5nZXRPYmplY3Qo
KSkgewotICAgICAgICBpZiAoby0+aW5oZXJpdHModm0sIEpTUHJveHk6OmluZm8oKSkpCisgICAg
ICAgIGlmIChvLT5pbmhlcml0czxKU1Byb3h5Pih2bSkpCiAgICAgICAgICAgICBvID0ganNDYXN0
PEpTUHJveHkqPihvKS0+dGFyZ2V0KCk7CiAKLSAgICAgICAgaWYgKG8tPmluaGVyaXRzKHZtLCBK
U0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6aW5mbygpKSkKKyAgICAgICAgaWYgKG8t
PmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Pih2bSkpCiAgICAgICAg
ICAgICByZXR1cm4ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4obykt
PmluaGVyaXRzKGpzQ2xhc3MpOwotICAgICAgICBpZiAoby0+aW5oZXJpdHModm0sIEpTQ2FsbGJh
Y2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+OjppbmZvKCkpKQorICAgICAgICBpZiAoby0+
aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9iamVjdD4+KHZtKSkKICAg
ICAgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9i
amVjdD4qPihvKS0+aW5oZXJpdHMoanNDbGFzcyk7CiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQK
LSAgICAgICAgaWYgKG8tPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBl
ck9iamVjdD46OmluZm8oKSkpCisgICAgICAgIGlmIChvLT5pbmhlcml0czxKU0NhbGxiYWNrT2Jq
ZWN0PEpTQVBJV3JhcHBlck9iamVjdD4+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc0Nhc3Q8
SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+Kj4obyktPmluaGVyaXRzKGpzQ2xh
c3MpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKaW5kZXggN2YxY2Q1MjIxYzE0MWY0YTc0
NDU0MjEyMzQ2YzliNjcxZDc3MTRjZS4uNzgzMzJkNzlhZWM2ZDI4NWJjMWMzYTY0NTZlMWRkZTky
ZmQyY2FmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmpl
Y3RNYXBSZWZQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV2Vh
a09iamVjdE1hcFJlZlByaXZhdGUuY3BwCkBAIC02Myw5ICs2Myw5IEBAIHZvaWQgSlNXZWFrT2Jq
ZWN0TWFwU2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTV2Vha09iamVjdE1hcFJlZiBtYXAsIHZvaWQq
IGtleSwgSlNPCiAgICAgSlNPYmplY3QqIG9iaiA9IHRvSlMob2JqZWN0KTsKICAgICBpZiAoIW9i
aikKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChvYmotPmluaGVyaXRzKHZtLCBKU1Byb3h5
OjppbmZvKCkpCi0gICAgICAgIHx8IG9iai0+aW5oZXJpdHModm0sIEpTQ2FsbGJhY2tPYmplY3Q8
SlNHbG9iYWxPYmplY3Q+OjppbmZvKCkpCi0gICAgICAgIHx8IG9iai0+aW5oZXJpdHModm0sIEpT
Q2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+OjppbmZvKCkpKTsKKyAgICBBU1NF
UlQob2JqLT5pbmhlcml0czxKU1Byb3h5Pih2bSkKKyAgICAgICAgfHwgb2JqLT5pbmhlcml0czxK
U0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pj4odm0pCisgICAgICAgIHx8IG9iai0+aW5o
ZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9iamVjdD4+KHZtKSk7CiAgICAg
bWFwLT5tYXAoKS5zZXQoa2V5LCBvYmopOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNXcmFwcGVyTWFwLm1tCmluZGV4IDk0MjUxOTVmOGQ2NDQ2ZjcyMzVjNGIxY2QxZmZkN2MxMGU0
Y2MwM2QuLjRmNWExM2I4MDEyYTY1N2FlMjE5YWU2MDQyYWEwOTJlOGYzN2MyMDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCkBAIC02NDQsNyArNjQ0LDcgQEAg
aWQgdHJ5VW53cmFwT2JqY09iamVjdChKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1
ZVJlZiB2YWx1ZSkKICAgICBBU1NFUlQoIWV4Y2VwdGlvbik7CiAgICAgSlNDOjpKU0xvY2tIb2xk
ZXIgbG9ja2VyKHRvSlMoY29udGV4dCkpOwogICAgIEpTQzo6Vk0mIHZtID0gdG9KUyhjb250ZXh0
KS0+dm0oKTsKLSAgICBpZiAodG9KUyhvYmplY3QpLT5pbmhlcml0cyh2bSwgSlNDOjpKU0NhbGxi
YWNrT2JqZWN0PEpTQzo6SlNBUElXcmFwcGVyT2JqZWN0Pjo6aW5mbygpKSkKKyAgICBpZiAodG9K
UyhvYmplY3QpLT5pbmhlcml0czxKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNDOjpKU0FQSVdyYXBw
ZXJPYmplY3Q+Pih2bSkpCiAgICAgICAgIHJldHVybiAoaWQpSlNDOjpqc0Nhc3Q8SlNDOjpKU0FQ
SVdyYXBwZXJPYmplY3QqPih0b0pTKG9iamVjdCkpLT53cmFwcGVkT2JqZWN0KCk7CiAgICAgaWYg
KGlkIHRhcmdldCA9IHRyeVVud3JhcENvbnN0cnVjdG9yKCZ2bSwgb2JqZWN0KSkKICAgICAgICAg
cmV0dXJuIHRhcmdldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2Jq
Q0NhbGxiYWNrRnVuY3Rpb24ubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxs
YmFja0Z1bmN0aW9uLm1tCmluZGV4IDYzZjkyMGVkYjIyNGYxYWRkMWQwOWI3YTExMjM3YWQ2NWEx
ODc5MjkuLmE4OGEyNzA1ZDczMTgyNzRmZTE3OTg4YTM5ZDBkZWM2MmJmMjNhYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbQpAQCAt
NzAyLDcgKzcwMiw3IEBAIEpTT2JqZWN0UmVmIG9iakNDYWxsYmFja0Z1bmN0aW9uRm9yQmxvY2so
SlNDb250ZXh0ICpjb250ZXh0LCBpZCB0YXJnZXQpCiAKIGlkIHRyeVVud3JhcENvbnN0cnVjdG9y
KEpTQzo6Vk0qIHZtLCBKU09iamVjdFJlZiBvYmplY3QpCiB7Ci0gICAgaWYgKCF0b0pTKG9iamVj
dCktPmluaGVyaXRzKCp2bSwgSlNDOjpPYmpDQ2FsbGJhY2tGdW5jdGlvbjo6aW5mbygpKSkKKyAg
ICBpZiAoIXRvSlMob2JqZWN0KS0+aW5oZXJpdHM8SlNDOjpPYmpDQ2FsbGJhY2tGdW5jdGlvbj4o
KnZtKSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICBKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9u
SW1wbCogaW1wbCA9IHN0YXRpY19jYXN0PEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb24qPih0b0pT
KG9iamVjdCkpLT5pbXBsKCk7CiAgICAgaWYgKCFpbXBsLT5pc0NvbnN0cnVjdGlibGUoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXgg
Y2RmYjBlMjgyY2M0ZjdiNTMyMDFiMmNjMWMyMDMxZGY4ZGIwNGQ5MS4uYTU2M2Q3ODA0M2NkZjhk
MTIyNTVhNGQwYjJmMjBiNGNlZDkzMTg3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTQ0NjMsNyArNDQ2Myw3IEBAIHZvaWQgQnl0
ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICAgICAg
aWYgKGNhY2hlZEZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgICAgICYmIGNhY2hlZEZ1bmN0aW9u
ICE9IEpTQ2VsbDo6c2Vlbk11bHRpcGxlQ2FsbGVlT2JqZWN0cygpCiAgICAgICAgICAgICAgICAg
ICAgICYmICFtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3Vy
cmVudEluZGV4LCBCYWRDZWxsKSkgewotICAgICAgICAgICAgICAgICAgICBBU1NFUlQoY2FjaGVk
RnVuY3Rpb24tPmluaGVyaXRzKCptX3ZtLCBKU0Z1bmN0aW9uOjppbmZvKCkpKTsKKyAgICAgICAg
ICAgICAgICAgICAgQVNTRVJUKGNhY2hlZEZ1bmN0aW9uLT5pbmhlcml0czxKU0Z1bmN0aW9uPigq
bV92bSkpOwogCiAgICAgICAgICAgICAgICAgICAgIEZyb3plblZhbHVlKiBmcm96ZW4gPSBtX2dy
YXBoLmZyZWV6ZShjYWNoZWRGdW5jdGlvbik7CiAgICAgICAgICAgICAgICAgICAgIGFkZFRvR3Jh
cGgoQ2hlY2tDZWxsLCBPcEluZm8oZnJvemVuKSwgY2FsbGVlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDIzMzdhYzU4Y2FjMjNmOTA1OWI3ZDA0
NGU5NzNlYmJhNDQ2NmYzMjIuLmIxZGFkZDJmZGM2ZmZkNGJhZWRjZWE2MWExNGU1ZmQ2ZTc4NjVl
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAt
MTA0OSw3ICsxMDQ5LDggQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25S
ZWdFeHBFeGVjR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmEKICAgICBKU1ZhbHVlIGJh
c2UgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgYXJndW1lbnQg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEFyZ3VtZW50KTsKICAgICAKLSAgICBpZiAoIWJhc2Uu
aW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBq
c0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCBiYXNlKTsKKyAgICBpZiAoVU5MSUtFTFko
IXJlZ2V4cCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
IAogICAgIEpTU3RyaW5nKiBpbnB1dCA9IGFyZ3VtZW50LnRvU3RyaW5nT3JOdWxsKGV4ZWMpOwpA
QCAtMTA1Nyw3ICsxMDU4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25SZWdFeHBFeGVjR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmEKICAgICBpZiAoIWlu
cHV0KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
IHNjb3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwT2Jq
ZWN0KGJhc2UpLT5leGVjKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5wdXQpKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlZ2V4cC0+ZXhlYyhleGVjLCBnbG9iYWxPYmplY3QsIGlucHV0KSk7
CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlY05v
bkdsb2JhbE9yU3RpY2t5KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgUmVnRXhwKiByZWdFeHAsIEpTU3RyaW5nKiBzdHJpbmcpCkBAIC0xMTgwLDcgKzExODEs
OCBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBUZXN0R2VuZXJpYyhFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KgogICAgIEpTVmFsdWUgYmFzZSA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkQmFzZSk7CiAgICAgSlNWYWx1ZSBhcmd1bWVudCA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkQXJndW1lbnQpOwogCi0gICAgaWYgKCFiYXNlLmluaGVyaXRzKHZtLCBSZWdF
eHBPYmplY3Q6OmluZm8oKSkpIHsKKyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJl
Z0V4cE9iamVjdCo+KHZtLCBiYXNlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpIHsKICAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQpAQCAtMTE5MCw3ICsxMTkyLDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUmVnRXhwVGVzdEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCoKICAg
ICBpZiAoIWlucHV0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgc2NvcGUucmVsZWFzZSgp
OwotICAgIHJldHVybiBhc1JlZ0V4cE9iamVjdChiYXNlKS0+dGVzdChleGVjLCBnbG9iYWxPYmpl
Y3QsIGlucHV0KTsKKyAgICByZXR1cm4gcmVnZXhwLT50ZXN0KGV4ZWMsIGdsb2JhbE9iamVjdCwg
aW5wdXQpOwogfQogCiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaWN0
RXFDZWxsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcAppbmRleCBkOGViYzlmZGQ0YmEyNDk5YzRiYzdkMTk3YzZkNjViNTUxYjMz
YjQ4Li4zOGI3NDcxMjQxNDg5M2Y2YjMxNWQ1ZTg3OTk4NWU4NzY5ZjY5OWY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC05ODA4LDcgKzk4
MDgsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgIHZvaWQgY29tcGlsZU92ZXJyaWRlc0hh
c0luc3RhbmNlKCkKICAgICB7CiAgICAgICAgIEZyb3plblZhbHVlKiBkZWZhdWx0SGFzSW5zdGFu
Y2VGdW5jdGlvbiA9IG1fbm9kZS0+Y2VsbE9wZXJhbmQoKTsKLSAgICAgICAgQVNTRVJUKGRlZmF1
bHRIYXNJbnN0YW5jZUZ1bmN0aW9uLT5jZWxsKCktPmluaGVyaXRzKHZtKCksIEpTRnVuY3Rpb246
OmluZm8oKSkpOworICAgICAgICBBU1NFUlQoZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24tPmNl
bGwoKS0+aW5oZXJpdHM8SlNGdW5jdGlvbj4odm0oKSkpOwogCiAgICAgICAgIExWYWx1ZSBjb25z
dHJ1Y3RvciA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIExWYWx1ZSBoYXNJ
bnN0YW5jZSA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSk7CkBAIC0xMDcyOCw3ICsxMDcy
OCw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgewogICAgICAgICBGcm96ZW5WYWx1ZSog
cmVnZXhwID0gbV9ub2RlLT5jZWxsT3BlcmFuZCgpOwogICAgICAgICBMVmFsdWUgbGFzdEluZGV4
ID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgQVNTRVJUKHJlZ2V4cC0+
Y2VsbCgpLT5pbmhlcml0cyh2bSgpLCBSZWdFeHA6OmluZm8oKSkpOworICAgICAgICBBU1NFUlQo
cmVnZXhwLT5jZWxsKCktPmluaGVyaXRzPFJlZ0V4cD4odm0oKSkpOwogICAgICAgICBBU1NFUlQo
bV9ub2RlLT5jYXN0T3BlcmFuZDxSZWdFeHAqPigpLT5pc1ZhbGlkKCkpOwogCiAgICAgICAgIExC
YXNpY0Jsb2NrIHNsb3dDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCmluZGV4IGFjNWFmYzRiZWFhMjk0NjVhNzcwYjI4
ZjEzYTk0MDc4ODFiYmQ1NDAuLmNhZThlNGI4MzAzYmZjODgzNTMzMzQ3MzExZjJkYjUzMjFhZjM5
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcApAQCAt
MTUwLDcgKzE1MCw3IEBAIGV4dGVybiAiQyIgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk1hdGVyaWFsaXplT2JqZWN0SW5PU1IoCiAgICAgICAgICAgICBpZiAocHJvcGVydHkubG9jYXRp
b24oKSAhPSBQcm9tb3RlZExvY2F0aW9uRGVzY3JpcHRvcihTdHJ1Y3R1cmVQTG9jKSkKICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1
ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBTdHJ1Y3R1cmU6Omlu
Zm8oKSkpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVl
c1tpXSkuYXNDZWxsKCktPmluaGVyaXRzPFN0cnVjdHVyZT4odm0pKTsKICAgICAgICAgICAgIHN0
cnVjdHVyZSA9IGpzQ2FzdDxTdHJ1Y3R1cmUqPihKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTg0LDExICsxODQsMTEgQEAgZXh0
ZXJuICJDIiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJ
bk9TUigKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbWF0ZXJpYWxpemF0aW9uLT5wcm9wZXJ0
aWVzKCkuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBjb25zdCBFeGl0UHJvcGVydHlWYWx1
ZSYgcHJvcGVydHkgPSBtYXRlcmlhbGl6YXRpb24tPnByb3BlcnRpZXMoKVtpXTsKICAgICAgICAg
ICAgIGlmIChwcm9wZXJ0eS5sb2NhdGlvbigpID09IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9y
KEZ1bmN0aW9uRXhlY3V0YWJsZVBMb2MpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBGdW5j
dGlvbkV4ZWN1dGFibGU6OmluZm8oKSkpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0czxGdW5jdGlvbkV4
ZWN1dGFibGU+KHZtKSk7CiAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IGpzQ2FzdDxGdW5j
dGlvbkV4ZWN1dGFibGUqPihKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBpZiAocHJvcGVydHkubG9jYXRpb24oKSA9PSBQcm9tb3RlZExvY2F0
aW9uRGVzY3JpcHRvcihGdW5jdGlvbkFjdGl2YXRpb25QTG9jKSkgewotICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhl
cml0cyh2bSwgSlNTY29wZTo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzPEpTU2NvcGU+
KHZtKSk7CiAgICAgICAgICAgICAgICAgYWN0aXZhdGlvbiA9IGpzQ2FzdDxKU1Njb3BlKj4oSlNW
YWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0y
MTEsMTAgKzIxMSwxMCBAQCBleHRlcm4gIkMiIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRp
b25NYXRlcmlhbGl6ZU9iamVjdEluT1NSKAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtYXRl
cmlhbGl6YXRpb24tPnByb3BlcnRpZXMoKS5zaXplKCk7IGktLTspIHsKICAgICAgICAgICAgIGNv
bnN0IEV4aXRQcm9wZXJ0eVZhbHVlJiBwcm9wZXJ0eSA9IG1hdGVyaWFsaXphdGlvbi0+cHJvcGVy
dGllcygpW2ldOwogICAgICAgICAgICAgaWYgKHByb3BlcnR5LmxvY2F0aW9uKCkgPT0gUHJvbW90
ZWRMb2NhdGlvbkRlc2NyaXB0b3IoQWN0aXZhdGlvblNjb3BlUExvYykpIHsKLSAgICAgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+
aW5oZXJpdHModm0sIEpTU2NvcGU6OmluZm8oKSkpOworICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0czxKU1Nj
b3BlPih2bSkpOwogICAgICAgICAgICAgICAgIHNjb3BlID0ganNDYXN0PEpTU2NvcGUqPihKU1Zh
bHVlOjpkZWNvZGUodmFsdWVzW2ldKSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5
LmxvY2F0aW9uKCkgPT0gUHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3IoQWN0aXZhdGlvblN5bWJv
bFRhYmxlUExvYykpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpk
ZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+aW5oZXJpdHModm0sIFN5bWJvbFRhYmxlOjppbmZv
KCkpKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodmFs
dWVzW2ldKS5hc0NlbGwoKS0+aW5oZXJpdHM8U3ltYm9sVGFibGU+KHZtKSk7CiAgICAgICAgICAg
ICAgICAgdGFibGUgPSBqc0Nhc3Q8U3ltYm9sVGFibGUqPihKU1ZhbHVlOjpkZWNvZGUodmFsdWVz
W2ldKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTU1Miw3ICs1NTIsNyBAQCBleHRl
cm4gIkMiIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25NYXRlcmlhbGl6ZU9iamVjdElu
T1NSKAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtYXRlcmlhbGl6YXRpb24tPnByb3BlcnRp
ZXMoKS5zaXplKCk7IGktLTspIHsKICAgICAgICAgICAgIGNvbnN0IEV4aXRQcm9wZXJ0eVZhbHVl
JiBwcm9wZXJ0eSA9IG1hdGVyaWFsaXphdGlvbi0+cHJvcGVydGllcygpW2ldOwogICAgICAgICAg
ICAgaWYgKHByb3BlcnR5LmxvY2F0aW9uKCkgPT0gUHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3Io
UmVnRXhwT2JqZWN0UmVnRXhwUExvYykpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+aW5oZXJpdHModm0sIFJlZ0V4
cDo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVj
b2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzPFJlZ0V4cD4odm0pKTsKICAgICAgICAg
ICAgICAgICByZWdFeHAgPSBqc0Nhc3Q8UmVnRXhwKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tp
XSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCmluZGV4IGU2NjBh
MzEwZWYxMzViNGFlMzhjNTlmY2YyN2RlYWM1YWYwODhlMzUuLjNkNWMxN2EzNTJjODRjMzE4NzFl
NzNiN2UxZDhmN2YwNDY1YWU4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCkBAIC0xNTAsOCArMTUwLDcg
QEAgSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6c3VidHlwZShFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCiAgICAgICAgIHJldHVybiB2bS5zbWFsbFN0cmlu
Z3Muc3ltYm9sU3RyaW5nKCk7CiAKLSAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFs
dWUpOwotICAgIGlmIChvYmplY3QpIHsKKyAgICBpZiAoYXV0byogb2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU09iamVjdCo+KHZtLCB2YWx1ZSkpIHsKICAgICAgICAgaWYgKG9iamVjdC0+aXNFcnJv
ckluc3RhbmNlKCkpCiAgICAgICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiZXJyb3IiKSk7CiAKQEAgLTE1OSw0OSArMTU4LDQ3IEBAIEpTVmFsdWUg
SlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBK
U0Z1bmN0aW9uKiBmdW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KHZtLCB2YWx1
ZSk7CiAgICAgICAgIGlmIChmdW5jdGlvbiAmJiBmdW5jdGlvbi0+aXNDbGFzc0NvbnN0cnVjdG9y
RnVuY3Rpb24oKSkKICAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywg
QVNDSUlMaXRlcmFsKCJjbGFzcyIpKTsKLSAgICB9CiAKLSAgICBpZiAodmFsdWUuaW5oZXJpdHMo
dm0sIEpTQXJyYXk6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmco
ZXhlYywgQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0s
IERpcmVjdEFyZ3VtZW50czo6aW5mbygpKSB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgU2NvcGVkQXJn
dW1lbnRzOjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7Ci0KLSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0sIERh
dGVJbnN0YW5jZTo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhl
eGVjLCBBU0NJSUxpdGVyYWwoImRhdGUiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBS
ZWdFeHBPYmplY3Q6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmco
ZXhlYywgQVNDSUlMaXRlcmFsKCJyZWdleHAiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZt
LCBQcm94eU9iamVjdDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmlu
ZyhleGVjLCBBU0NJSUxpdGVyYWwoInByb3h5IikpOwotCi0gICAgaWYgKHZhbHVlLmluaGVyaXRz
KHZtLCBKU01hcDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhl
eGVjLCBBU0NJSUxpdGVyYWwoIm1hcCIpKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0sIEpT
U2V0OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFT
Q0lJTGl0ZXJhbCgic2V0IikpOwotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgSlNXZWFrTWFw
OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgid2Vha21hcCIpKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0sIEpTV2Vha1Nl
dDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJ
SUxpdGVyYWwoIndlYWtzZXQiKSk7Ci0KLSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0sIEpTU3Ry
aW5nSXRlcmF0b3I6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmco
ZXhlYywgQVNDSUlMaXRlcmFsKCJpdGVyYXRvciIpKTsKLQotICAgIGlmIChvYmplY3QpIHsKKyAg
ICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNBcnJheT4odm0pKQorICAgICAgICAgICAgcmV0
dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImFycmF5IikpOworICAg
ICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxEaXJlY3RBcmd1bWVudHM+KHZtKSB8fCBvYmplY3Qt
PmluaGVyaXRzPFNjb3BlZEFyZ3VtZW50cz4odm0pKQorICAgICAgICAgICAgcmV0dXJuIGpzTm9u
dHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImFycmF5IikpOworCisgICAgICAgIGlm
IChvYmplY3QtPmluaGVyaXRzPERhdGVJbnN0YW5jZT4odm0pKQorICAgICAgICAgICAgcmV0dXJu
IGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImRhdGUiKSk7CisgICAgICAg
IGlmIChvYmplY3QtPmluaGVyaXRzPFJlZ0V4cE9iamVjdD4odm0pKQorICAgICAgICAgICAgcmV0
dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoInJlZ2V4cCIpKTsKKyAg
ICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8UHJveHlPYmplY3Q+KHZtKSkKKyAgICAgICAgICAg
IHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJwcm94eSIpKTsK
KworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxKU01hcD4odm0pKQorICAgICAgICAgICAg
cmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoIm1hcCIpKTsKKyAg
ICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNTZXQ+KHZtKSkKKyAgICAgICAgICAgIHJldHVy
biBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJzZXQiKSk7CisgICAgICAg
IGlmIChvYmplY3QtPmluaGVyaXRzPEpTV2Vha01hcD4odm0pKQorICAgICAgICAgICAgcmV0dXJu
IGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoIndlYWttYXAiKSk7CisgICAg
ICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTV2Vha1NldD4odm0pKQorICAgICAgICAgICAgcmV0
dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoIndlYWtzZXQiKSk7CisK
KyAgICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNTdHJpbmdJdGVyYXRvcj4odm0pKQorICAg
ICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoIml0
ZXJhdG9yIikpOworCiAgICAgICAgIGlmIChvYmplY3QtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYXJyYXlJdGVyYXRvck5leHRJbmRleFByaXZhdGVOYW1l
KCkpCiAgICAgICAgICAgICB8fCBvYmplY3QtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkubWFwQnVja2V0UHJpdmF0ZU5hbWUoKSkKICAgICAgICAgICAgIHx8
IG9iamVjdC0+Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5z
ZXRCdWNrZXRQcml2YXRlTmFtZSgpKSkKICAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxT
dHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJpdGVyYXRvciIpKTsKLSAgICB9CiAKLSAgICBpZiAo
dmFsdWUuaW5oZXJpdHModm0sIEpTSW50OEFycmF5OjppbmZvKCkpCi0gICAgICAgIHx8IHZhbHVl
LmluaGVyaXRzKHZtLCBKU0ludDE2QXJyYXk6OmluZm8oKSkKLSAgICAgICAgfHwgdmFsdWUuaW5o
ZXJpdHModm0sIEpTSW50MzJBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5pbmhlcml0
cyh2bSwgSlNVaW50OEFycmF5OjppbmZvKCkpCi0gICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKHZt
LCBKU1VpbnQ4Q2xhbXBlZEFycmF5OjppbmZvKCkpCi0gICAgICAgIHx8IHZhbHVlLmluaGVyaXRz
KHZtLCBKU1VpbnQxNkFycmF5OjppbmZvKCkpCi0gICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKHZt
LCBKU1VpbnQzMkFycmF5OjppbmZvKCkpCi0gICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKHZtLCBK
U0Zsb2F0MzJBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgSlNG
bG9hdDY0QXJyYXk6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmco
ZXhlYywgQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsKKyAgICAgICAgaWYgKG9iamVjdC0+aW5oZXJp
dHM8SlNJbnQ4QXJyYXk+KHZtKQorICAgICAgICAgICAgfHwgb2JqZWN0LT5pbmhlcml0czxKU0lu
dDE2QXJyYXk+KHZtKQorICAgICAgICAgICAgfHwgb2JqZWN0LT5pbmhlcml0czxKU0ludDMyQXJy
YXk+KHZtKQorICAgICAgICAgICAgfHwgb2JqZWN0LT5pbmhlcml0czxKU1VpbnQ4QXJyYXk+KHZt
KQorICAgICAgICAgICAgfHwgb2JqZWN0LT5pbmhlcml0czxKU1VpbnQ4Q2xhbXBlZEFycmF5Pih2
bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNVaW50MTZBcnJheT4odm0pCisg
ICAgICAgICAgICB8fCBvYmplY3QtPmluaGVyaXRzPEpTVWludDMyQXJyYXk+KHZtKQorICAgICAg
ICAgICAgfHwgb2JqZWN0LT5pbmhlcml0czxKU0Zsb2F0MzJBcnJheT4odm0pCisgICAgICAgICAg
ICB8fCBvYmplY3QtPmluaGVyaXRzPEpTRmxvYXQ2NEFycmF5Pih2bSkpCisgICAgICAgICAgICBy
ZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7Cisg
ICAgfQogCiAgICAgcmV0dXJuIGltcGwoKS5zdWJ0eXBlKGV4ZWMsIHZhbHVlKTsKIH0KQEAgLTIx
MywxNCArMjEwLDE0IEBAIEpTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OmZ1bmN0aW9uRGV0
YWlscyhFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIEpT
VmFsdWUgdmFsdWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKLSAgICBpZiAoIXZhbHVl
LmFzQ2VsbCgpLT5pbmhlcml0cyh2bSwgSlNGdW5jdGlvbjo6aW5mbygpKSkKKyAgICBhdXRvKiBm
dW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KHZtLCB2YWx1ZSk7CisgICAgaWYg
KCFmdW5jdGlvbikKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKICAgICAvLyBGSVhN
RTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzg3MTkyPiBXZWIgSW5zcGVjdG9yOiBFeHBvc2UgZnVu
Y3Rpb24gc2NvcGUgLyBjbG9zdXJlIGRhdGEKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBw
cm92aWRlIGJldHRlciBkZXRhaWxzIGZvciBKU0JvdW5kRnVuY3Rpb25zLgogCi0gICAgSlNGdW5j
dGlvbiogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KHZhbHVlKTsKICAgICBjb25zdCBT
b3VyY2VDb2RlKiBzb3VyY2VDb2RlID0gZnVuY3Rpb24tPnNvdXJjZUNvZGUoKTsKICAgICBpZiAo
IXNvdXJjZUNvZGUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvckhl
YXBBZ2VudC5jcHAKaW5kZXggYTJiNmQwNDJhZDIyZWY2YzVkZDFlYTlkMjczNDBiNDkxNDBmNDlm
My4uMmZiOGI3ZWNkN2ZiNTZiNjkxYzdkNTkyMzAyNTc5NjgxMjYxNzQ2NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JIZWFwQWdlbnQuY3BwCkBAIC0yMDYsNyArMjA2LDcgQEAgdm9pZCBJbnNwZWN0b3JIZWFwQWdl
bnQ6OmdldFByZXZpZXcoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgaGVhcE9iamVjdElk
LAogICAgIH0KIAogICAgIC8vIEZ1bmN0aW9uIHByZXZpZXcuCi0gICAgaWYgKGNlbGwtPmluaGVy
aXRzKHZtLCBKU0Z1bmN0aW9uOjppbmZvKCkpKSB7CisgICAgaWYgKGNlbGwtPmluaGVyaXRzPEpT
RnVuY3Rpb24+KHZtKSkgewogICAgICAgICBpbmplY3RlZFNjcmlwdC5mdW5jdGlvbkRldGFpbHMo
ZXJyb3JTdHJpbmcsIGNlbGwsIGZ1bmN0aW9uRGV0YWlscyk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVy
LmNwcAppbmRleCBjZGMwZjcyMjA3MGJlN2U1MzVlYWRlMDcxZGJiMzJmNjUwZmYxMWU2Li5lYTc4
YWM2OWRlYzJjMTgzMTE4MjYzOTlkMmEyNjBmYTE3ZGMxYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTYzMSw3ICs2MzEs
NyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIG5vdGlmeURlYnVnZ2VyT2ZVbndpbmRpbmco
Vk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZQogICAgIGlmIChEZWJ1Z2dlciogZGVidWdnZXIg
PSBjYWxsRnJhbWUtPnZtRW50cnlHbG9iYWxPYmplY3Qodm0pLT5kZWJ1Z2dlcigpKSB7CiAgICAg
ICAgIFN1c3BlbmRFeGNlcHRpb25TY29wZSBzY29wZSgmdm0pOwogICAgICAgICBpZiAoY2FsbEZy
YW1lLT5pc0FueVdhc21DYWxsZWUoKQotICAgICAgICAgICAgfHwgKGNhbGxGcmFtZS0+Y2FsbGVl
KCkuaXNDZWxsKCkgJiYgY2FsbEZyYW1lLT5jYWxsZWUoKS5hc0NlbGwoKS0+aW5oZXJpdHModm0s
IEpTRnVuY3Rpb246OmluZm8oKSkpKQorICAgICAgICAgICAgfHwgKGNhbGxGcmFtZS0+Y2FsbGVl
KCkuaXNDZWxsKCkgJiYgY2FsbEZyYW1lLT5jYWxsZWUoKS5hc0NlbGwoKS0+aW5oZXJpdHM8SlNG
dW5jdGlvbj4odm0pKSkKICAgICAgICAgICAgIGRlYnVnZ2VyLT51bndpbmRFdmVudChjYWxsRnJh
bWUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBkZWJ1Z2dlci0+ZGlkRXhlY3V0ZVByb2dy
YW0oY2FsbEZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9TaGFkb3dDaGlja2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9TaGFkb3dDaGlja2VuLmNwcAppbmRleCBmNzA2NjZkODk3MGY2YzczMzE1OTA3ODE3N2QzZWEz
YzU1ODBhYjcwLi5lMzQ0M2YxODkxZDE3NTZiMDNkZmY4ZmE2YTIyODVjYThlNTVkY2IxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRvd0NoaWNrZW4u
Y3BwCkBAIC0zMDIsMTEgKzMwMiwxMSBAQCB2b2lkIFNoYWRvd0NoaWNrZW46OnVwZGF0ZShWTSYg
dm0sIEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0g
Y2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICAgICAgICAgIGlmIChjb2RlQmxvY2sgJiYgY29k
ZUJsb2NrLT53YXNDb21waWxlZFdpdGhEZWJ1Z2dpbmdPcGNvZGVzKCkgJiYgY29kZUJsb2NrLT5z
Y29wZVJlZ2lzdGVyKCkuaXNWYWxpZCgpKSB7CiAgICAgICAgICAgICAgICAgc2NvcGUgPSBjYWxs
RnJhbWUtPnNjb3BlKGNvZGVCbG9jay0+c2NvcGVSZWdpc3RlcigpLm9mZnNldCgpKTsKLSAgICAg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzY29wZS0+aW5oZXJpdHModm0sIEpTU2NvcGU6Omlu
Zm8oKSkpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjb3BlLT5pbmhlcml0czxK
U1Njb3BlPih2bSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChmb3VuZEZyYW1lKSB7CiAgICAg
ICAgICAgICAgICAgc2NvcGUgPSBtX2xvZ1tpbmRleEluTG9nXS5zY29wZTsKICAgICAgICAgICAg
ICAgICBpZiAoc2NvcGUpCi0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHNjb3Bl
LT5pbmhlcml0cyh2bSwgSlNTY29wZTo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKHNjb3BlLT5pbmhlcml0czxKU1Njb3BlPih2bSkpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgdG9QdXNoLmFwcGVuZChGcmFtZShqc0Nhc3Q8SlNPYmplY3QqPih2aXNp
dG9yLT5jYWxsZWUoKS5hc0NlbGwoKSksIGNhbGxGcmFtZSwgaXNUYWlsRGVsZXRlZCwgY2FsbEZy
YW1lLT50aGlzVmFsdWUoKSwgc2NvcGUsIGNvZGVCbG9jaywgY2FsbEZyYW1lLT5jYWxsU2l0ZUlu
ZGV4KCkpKTsKIApAQCAtMzUxLDcgKzM1MSw3IEBAIHZvaWQgU2hhZG93Q2hpY2tlbjo6dXBkYXRl
KFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgIFBhY2tldCBwYWNrZXQgPSBtX2xvZ1tpbmRleEluTG9nXTsKICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBpc1RhaWxEZWxldGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQodGFpbFBhY2tldC5zY29wZS0+aW5oZXJpdHModm0sIEpTU2NvcGU6
OmluZm8oKSkpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCh0YWlsUGFja2V0
LnNjb3BlLT5pbmhlcml0czxKU1Njb3BlPih2bSkpOwogICAgICAgICAgICAgICAgICAgICB0b1B1
c2guYXBwZW5kKEZyYW1lKHBhY2tldC5jYWxsZWUsIHBhY2tldC5mcmFtZSwgaXNUYWlsRGVsZXRl
ZCwgdGFpbFBhY2tldC50aGlzVmFsdWUsIHRhaWxQYWNrZXQuc2NvcGUsIHRhaWxQYWNrZXQuY29k
ZUJsb2NrLCB0YWlsUGFja2V0LmNhbGxTaXRlSW5kZXgpKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggZjY0MjBjYWU2MTZh
YWM1MjRjMmE4MTk0ZTliZDAyZjRmNTcwOTRlNC4uNTUxMTM5ZmJmMjg2NDRhMGQ2NTZmY2FkMDRm
NDZlOTdmNzJiOGIzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMTk2LDcgKzE5
Niw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKIAogICAgIFZNJiB2bSA9
ICptX2NvZGVCbG9jay0+dm0oKTsKICAgICB1bnNpZ25lZCBzdGFydEJ5dGVjb2RlT2Zmc2V0ID0g
MDsKLSAgICBpZiAobV9sb29wT1NSRW50cnlCeXRlY29kZU9mZnNldCAmJiAobV9jb2RlQmxvY2st
PmluaGVyaXRzKHZtLCBQcm9ncmFtQ29kZUJsb2NrOjppbmZvKCkpIHx8IG1fY29kZUJsb2NrLT5p
bmhlcml0cyh2bSwgTW9kdWxlUHJvZ3JhbUNvZGVCbG9jazo6aW5mbygpKSkpIHsKKyAgICBpZiAo
bV9sb29wT1NSRW50cnlCeXRlY29kZU9mZnNldCAmJiAobV9jb2RlQmxvY2stPmluaGVyaXRzPFBy
b2dyYW1Db2RlQmxvY2s+KHZtKSB8fCBtX2NvZGVCbG9jay0+aW5oZXJpdHM8TW9kdWxlUHJvZ3Jh
bUNvZGVCbG9jaz4odm0pKSkgewogICAgICAgICAvLyBXZSBjYW4gb25seSBkbyB0aGlzIG9wdGlt
aXphdGlvbiBiZWNhdXNlIHdlIGV4ZWN1dGUgUHJvZ3JhbUNvZGVCbG9jaydzIGV4YWN0bHkgb25j
ZS4KICAgICAgICAgLy8gVGhpcyBvcHRpbWl6YXRpb24gd291bGQgYmUgaW52YWxpZCBvdGhlcndp
c2UuIFdoZW4gdGhlIExMSW50IGRldGVybWluZXMgaXQgd2FudHMgdG8KICAgICAgICAgLy8gZG8g
T1NSIGVudHJ5IGludG8gdGhlIGJhc2VsaW5lIEpJVCBpbiBhIGxvb3AsIGl0IHdpbGwgcGFzcyBp
biB0aGUgYnl0ZWNvZGUgb2Zmc2V0IGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAppbmRleCA5ZGM1NDRlZGE0MDBmZDJhNDJkOWUyOTczZWY3ODI2MWZlNDY2
M2VjLi5lNDZhM2Q3NWQ0NzVmZTQwZWExNmJkMmE4NmM5NjY0YmY3ZjlkOTE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTExOTEsNyArMTE5MSw3
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBvcGVyYXRpb25OZXdGdW5jdGlvbkNvbW1vbihFeGVjU3RhdGUqIGV4ZWMsIEpTU2NvcGUqIHNj
b3BlLCBKU0NlbGwqIGZ1bmN0aW9uRXhlY3V0YWJsZSwgYm9vbCBpc0ludmFsaWRhdGVkKQogewog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgQVNTRVJUKGZ1bmN0aW9uRXhlY3V0YWJsZS0+
aW5oZXJpdHModm0sIEZ1bmN0aW9uRXhlY3V0YWJsZTo6aW5mbygpKSk7CisgICAgQVNTRVJUKGZ1
bmN0aW9uRXhlY3V0YWJsZS0+aW5oZXJpdHM8RnVuY3Rpb25FeGVjdXRhYmxlPih2bSkpOwogICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKICAgICBpZiAoaXNJbnZh
bGlkYXRlZCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShGdW5jdGlvblR5cGU6OmNy
ZWF0ZVdpdGhJbnZhbGlkYXRlZFJlYWxsb2NhdGlvbldhdGNocG9pbnQodm0sIHN0YXRpY19jYXN0
PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGZ1bmN0aW9uRXhlY3V0YWJsZSksIHNjb3BlKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCmluZGV4IDllZjg0YWFlY2FiNWNmMDdhZTNhNjNmYzFlZjhkODAwZjMxYWIw
ZjUuLmVmOTJjNDIyOTJmMDg1NmE4ZDk3ZmFlOTM4MDA2YjIzMTJkN2Y3YTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCkBAIC0yMjYzLDcgKzIyNjMsNyBAQCBzdGF0aWMgdm9pZCBjaGVja0V4Y2VwdGlv
bihHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgYm9vbCBpc0xhc3RGaWxlLCBib29sIGhhcwog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKIAotICAgIGlmIChvcHRpb25zLm1f
dHJlYXRXYXRjaGRvZ0V4Y2VwdGlvbkFzU3VjY2VzcyAmJiB2YWx1ZS5pbmhlcml0cyh2bSwgVGVy
bWluYXRlZEV4ZWN1dGlvbkVycm9yOjppbmZvKCkpKSB7CisgICAgaWYgKG9wdGlvbnMubV90cmVh
dFdhdGNoZG9nRXhjZXB0aW9uQXNTdWNjZXNzICYmIHZhbHVlLmluaGVyaXRzPFRlcm1pbmF0ZWRF
eGVjdXRpb25FcnJvcj4odm0pKSB7CiAgICAgICAgIEFTU0VSVChoYXNFeGNlcHRpb24pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9v
bGVhbk9iamVjdC5oCmluZGV4IDllNWFhZjliMTE4OTgyNGJmYjZlMzQyNWNhNzFhMDZkNzZmMWEw
MzkuLjI3YzQzZTc5YTU4YWViYjUzOGUwYTA5ODZkYjYyNzEzZDI5MjE3N2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKQEAgLTQ3LDEyICs0Nyw0
IEBAIGNsYXNzIEJvb2xlYW5PYmplY3QgOiBwdWJsaWMgSlNXcmFwcGVyT2JqZWN0IHsKICAgICB9
CiB9OwogCi1Cb29sZWFuT2JqZWN0KiBhc0Jvb2xlYW5PYmplY3QoSlNWYWx1ZSk7Ci0KLWlubGlu
ZSBCb29sZWFuT2JqZWN0KiBhc0Jvb2xlYW5PYmplY3QoSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBB
U1NFUlQoYXNPYmplY3QodmFsdWUpLT5pbmhlcml0cygqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCks
IEJvb2xlYW5PYmplY3Q6OmluZm8oKSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxCb29sZWFu
T2JqZWN0Kj4oYXNPYmplY3QodmFsdWUpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCmlu
ZGV4IDM3ZGNlN2UzNDc4YmY5NjYwNjIzODgxN2FkYmU3YzgyZTI0N2ViZjguLjA2ZjlmZDMwYWQ1
Mjc4OTgwYTUzMTI4NDdkMzZhZjA1NmMxMjc5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCkBAIC03NiwxMyArNzYsMTQgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVG9TdHJpbmcoRXhl
Y1N0YXRlKiBleGVjKQogICAgIGlmICh0aGlzVmFsdWUgPT0ganNCb29sZWFuKHRydWUpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZtLnNtYWxsU3RyaW5ncy50cnVlU3RyaW5nKCkp
OwogCi0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIEJvb2xlYW5PYmplY3Q6OmluZm8o
KSkpCisgICAgYXV0byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8Qm9vbGVhbk9iamVjdCo+
KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc09iamVjdCkpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIGlmIChhc0Jvb2xl
YW5PYmplY3QodGhpc1ZhbHVlKS0+aW50ZXJuYWxWYWx1ZSgpID09IGpzQm9vbGVhbihmYWxzZSkp
CisgICAgaWYgKHRoaXNPYmplY3QtPmludGVybmFsVmFsdWUoKSA9PSBqc0Jvb2xlYW4oZmFsc2Up
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZtLnNtYWxsU3RyaW5ncy5mYWxzZVN0
cmluZygpKTsKIAotICAgIEFTU0VSVChhc0Jvb2xlYW5PYmplY3QodGhpc1ZhbHVlKS0+aW50ZXJu
YWxWYWx1ZSgpID09IGpzQm9vbGVhbih0cnVlKSk7CisgICAgQVNTRVJUKHRoaXNPYmplY3QtPmlu
dGVybmFsVmFsdWUoKSA9PSBqc0Jvb2xlYW4odHJ1ZSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUodm0uc21hbGxTdHJpbmdzLnRydWVTdHJpbmcoKSk7CiB9CiAKQEAgLTk0LDEwICs5NSwx
MSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvb2xlYW5Qcm90b0Z1bmNWYWx1ZU9m
KEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAodGhpc1ZhbHVlLmlzQm9vbGVhbigpKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSk7CiAKLSAgICBpZiAoIXRoaXNWYWx1
ZS5pbmhlcml0cyh2bSwgQm9vbGVhbk9iamVjdDo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxCb29sZWFuT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAg
aWYgKFVOTElLRUxZKCF0aGlzT2JqZWN0KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgc2NvcGUpOwogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc0Jvb2xlYW5P
YmplY3QodGhpc1ZhbHVlKS0+aW50ZXJuYWxWYWx1ZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHRoaXNPYmplY3QtPmludGVybmFsVmFsdWUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggNjFhNTk1MjJiZjM5NWFiZmJhNDBhZjdlOWQwYTc0YzRlNDUzMzMzYy4uMDAz
ZmE5MDBlN2E3Y2Y1YWRjMGQ2NjIwYTViYmU0MjM3NTM4MzIwZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCkBAIC0xMzAsMTAgKzEz
MCwxMSBAQCBKU09iamVjdCogY29uc3RydWN0RGF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbgogICAgIGlmIChudW1BcmdzID09IDApIC8v
IG5ldyBEYXRlKCkgRUNNQSAxNS45LjMuMwogICAgICAgICB2YWx1ZSA9IGpzQ3VycmVudFRpbWUo
KTsKICAgICBlbHNlIGlmIChudW1BcmdzID09IDEpIHsKLSAgICAgICAgaWYgKGFyZ3MuYXQoMCku
aW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKLSAgICAgICAgICAgIHZhbHVlID0g
YXNEYXRlSW5zdGFuY2UoYXJncy5hdCgwKSktPmludGVybmFsTnVtYmVyKCk7CisgICAgICAgIEpT
VmFsdWUgYXJnMCA9IGFyZ3MuYXQoMCk7CisgICAgICAgIGlmIChhdXRvKiBkYXRlSW5zdGFuY2Ug
PSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCBhcmcwKSkKKyAgICAgICAgICAgIHZh
bHVlID0gZGF0ZUluc3RhbmNlLT5pbnRlcm5hbE51bWJlcigpOwogICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgIEpTVmFsdWUgcHJpbWl0aXZlID0gYXJncy5hdCgwKS50b1ByaW1pdGl2ZShleGVj
KTsKKyAgICAgICAgICAgIEpTVmFsdWUgcHJpbWl0aXZlID0gYXJnMC50b1ByaW1pdGl2ZShleGVj
KTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAg
ICAgICAgICAgaWYgKHByaW1pdGl2ZS5pc1N0cmluZygpKQogICAgICAgICAgICAgICAgIHZhbHVl
ID0gcGFyc2VEYXRlKHZtLCBhc1N0cmluZyhwcmltaXRpdmUpLT52YWx1ZShleGVjKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCmluZGV4IDNmMTFhZTNh
NjM2ZWJkY2JhYTIwNWFlMmRiNzRkNGZhNDY1MzJiMjguLjU3ODQxMzUzMDExMzlhN2MzODI3NzI1
NDRlM2U2YjgzYmVkY2YzMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVJbnN0YW5jZS5oCkBAIC04MCwxMiArODAsNCBAQCBjbGFzcyBEYXRlSW5zdGFuY2UgOiBwdWJs
aWMgSlNXcmFwcGVyT2JqZWN0IHsKICAgICBtdXRhYmxlIFBvaXNvbmVkUmVmUHRyPERhdGVJbnN0
YW5jZVBvaXNvbiwgRGF0ZUluc3RhbmNlRGF0YT4gbV9kYXRhOwogfTsKIAotRGF0ZUluc3RhbmNl
KiBhc0RhdGVJbnN0YW5jZShKU1ZhbHVlKTsKLQotaW5saW5lIERhdGVJbnN0YW5jZSogYXNEYXRl
SW5zdGFuY2UoSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5p
bmhlcml0cygqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCksIERhdGVJbnN0YW5jZTo6aW5mbygpKSk7
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PERhdGVJbnN0YW5jZSo+KGFzT2JqZWN0KHZhbHVlKSk7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlUHJvdG90eXBlLmNwcAppbmRleCA1YWIwMDdmYzE3ZjY0ZTljYmQyOGMxOWI1ZmQ3
Mzk2ZWFjZjlkMmQzLi42ZjIzMzY4NzM1MmMwYmZkZjRhNTk2NDFmOTI2YjgxMGQ1YWYxZTIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcApA
QCAtMzIyLDExICszMjIsMTAgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZvcm1hdGVEYXRlSW5z
dGFuY2UoRXhlY1N0YXRlKiBleGVjLCBEYXRlVGltZUZvcm1hdCBmb3JtYXQKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhp
c1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhp
c0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOwor
ICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0g
YXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IGFzVVRDVmFyaWFudAogICAgICAgICA/IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZVVUQyhleGVjKQogICAgICAgICA6IHRoaXNEYXRlT2JqLT5ncmVn
b3JpYW5EYXRlVGltZShleGVjKTsKQEAgLTUzOSwxMCArNTM4LDEwIEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwot
ICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisg
ICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0
aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAgICAgCi0gICAgRGF0ZUluc3RhbmNl
KiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAogICAgIGlmICghc3Rk
Ojppc2Zpbml0ZSh0aGlzRGF0ZU9iai0+aW50ZXJuYWxOdW1iZXIoKSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNRXJyb3IoZXhlYywgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgQVNDSUlM
aXRlcmFsKCJJbnZhbGlkIERhdGUiKSkpOwogCkBAIC01ODcsMTAgKzU4NiwxMCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlz
VmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjpp
bmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFu
Y2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUlu
c3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoZm9ybWF0TG9jYWxlRGF0ZShleGVjLCB0aGlzRGF0ZU9iaiwg
dGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCksIExvY2FsZURhdGVBbmRUaW1lKSk7CiB9CiAK
QEAgLTU5OSwxMCArNTk4LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY1RvTG9jYWxlRGF0ZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0g
ZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNW
YWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNE
YXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAg
ICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFz
RGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZm9y
bWF0TG9jYWxlRGF0ZShleGVjLCB0aGlzRGF0ZU9iaiwgdGhpc0RhdGVPYmotPmludGVybmFsTnVt
YmVyKCksIExvY2FsZURhdGUpKTsKIH0KIApAQCAtNjExLDEwICs2MTAsMTAgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVUaW1lU3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6
OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0
YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRl
SW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShmb3JtYXRMb2NhbGVEYXRlKGV4ZWMsIHRoaXNEYXRlT2Jq
LCB0aGlzRGF0ZU9iai0+aW50ZXJuYWxOdW1iZXIoKSwgTG9jYWxlVGltZSkpOwogfQogCkBAIC02
NDYsMTAgKzY0NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNHZXRUaW1lKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZt
LCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFt
aWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSgh
dGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29w
ZSk7CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1
ZSktPmludGVybmFsVmFsdWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzRGF0
ZU9iai0+aW50ZXJuYWxWYWx1ZSgpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIoRXhlY1N0YXRlKiBleGVjKQpAQCAtNjU3LDExICs2
NTcsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RnVs
bFllYXIoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERh
dGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nh
c3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlz
RGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
IAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFs
dWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9
IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlh
bkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAt
NjczLDExICs2NzIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0VVRDRnVsbFllYXIoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5o
ZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9
IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVO
TElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0
YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3Jp
YW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhleGVjKTsKICAg
ICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTmFOKCkpOwpAQCAtNjg5LDExICs2ODcsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBkYXRlUHJvdG9GdW5jR2V0TW9udGgoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlz
VmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlz
RGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7Cisg
ICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBh
c0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVj
KTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTmFOKCkpOwpAQCAtNzA1LDExICs3MDIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGgoRXhlY1N0YXRlKiBleGVjKQogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAg
aWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBh
dXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNW
YWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0Rh
dGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRl
VGltZVVUQyhleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtNzIxLDExICs3MTcsMTAgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RGF0ZShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkp
KQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2
bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNl
KiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAotCiAgICAgY29uc3Qg
R3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdv
cmlhbkRhdGVUaW1lKGV4ZWMpOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CkBAIC03MzcsMTEgKzczMiwxMCBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlKEV4ZWNT
dGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6
OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0
YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRl
SW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9i
ai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGlt
ZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTc1MywxMSAr
NzQ3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERh
eShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUlu
c3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxE
YXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRl
T2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0g
ICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7
IAotCiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhp
c0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGV4ZWMpOwogICAgIGlmICghZ3JlZ29yaWFuRGF0
ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CkBAIC03Njks
MTEgKzc2MiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNH
ZXRVVENEYXkoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0s
IERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1p
Y0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0
aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3Bl
KTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlz
VmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGlt
ZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhleGVjKTsKICAgICBpZiAoIWdy
ZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkp
OwpAQCAtNzg1LDExICs3NzcsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jR2V0SG91cnMoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5o
ZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9
IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVO
TElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0
YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3Jp
YW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBp
ZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TmFOKCkpOwpAQCAtODAxLDExICs3OTIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlz
VmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlz
RGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7Cisg
ICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBh
c0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhl
eGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODE3LDExICs4MDcsMTAgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TWludXRlcyhFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAg
ICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAg
IGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhp
c1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlz
RGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAotCiAgICAgY29uc3QgR3JlZ29y
aWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRh
dGVUaW1lKGV4ZWMpOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CkBAIC04MzMsMTEgKzgyMiwxMCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVzKEV4ZWNTdGF0
ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6Omlu
Zm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5j
ZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5z
dGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+
Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTg0OSwxMSArODM3
LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFNlY29u
ZHMoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJ
bnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8
RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0
ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAot
ICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUp
OyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRo
aXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRh
dGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODY1
LDExICs4NTIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
R2V0VVRDU2Vjb25kcyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0
cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNE
eW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtF
TFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywg
c2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNl
KHRoaXNWYWx1ZSk7IAotCiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRh
dGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGV4ZWMpOwogICAgIGlm
ICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
YU4oKSk7CkBAIC04ODEsMTAgKzg2NywxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0
aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0
aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7
CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmog
PSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKICAgICBkb3VibGUgbWlsbGkgPSB0aGlzRGF0
ZU9iai0+aW50ZXJuYWxOdW1iZXIoKTsKICAgICBpZiAoc3RkOjppc25hbihtaWxsaSkpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CkBAIC04OTksMTAgKzg4NSwxMCBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNl
Y29uZHMoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERh
dGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nh
c3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlz
RGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
IAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFs
dWUpOyAKICAgICBkb3VibGUgbWlsbGkgPSB0aGlzRGF0ZU9iai0+aW50ZXJuYWxOdW1iZXIoKTsK
ICAgICBpZiAoc3RkOjppc25hbihtaWxsaSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOYU4oKSk7CkBAIC05MTcsMTEgKzkwMywxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNldChFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAg
ICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAg
IGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhp
c1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlz
RGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAotCiAgICAgY29uc3QgR3JlZ29y
aWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRh
dGVUaW1lKGV4ZWMpOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CkBAIC05MzMsMTEgKzkxOCwxMCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRUaW1lKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgp
OwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkp
CisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZt
LCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2Uq
IHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBkb3VibGUg
bWlsbGkgPSB0aW1lQ2xpcChleGVjLT5hcmd1bWVudCgwKS50b051bWJlcihleGVjKSk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgSlNWYWx1
ZSByZXN1bHQgPSBqc051bWJlcihtaWxsaSk7CkBAIC05NTAsMTAgKzkzNCwxMCBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgc2V0TmV3VmFsdWVGcm9tVGltZUFyZ3MoRXhlY1N0YXRlKiBleGVjLCBp
bnQgbnVtQXJnc1RvVXNlLAogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0
YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0
ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9i
aikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAg
IERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOwog
ICAgIGRvdWJsZSBtaWxsaSA9IHRoaXNEYXRlT2JqLT5pbnRlcm5hbE51bWJlcigpOwogCiAgICAg
aWYgKCFleGVjLT5hcmd1bWVudENvdW50KCkgfHwgc3RkOjppc25hbihtaWxsaSkpIHsKQEAgLTk5
MiwxMCArOTc2LDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzZXROZXdWYWx1ZUZyb21EYXRl
QXJncyhFeGVjU3RhdGUqIGV4ZWMsIGludCBudW1BcmdzVG9Vc2UsCiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1
ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRl
T2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBp
ZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0
ZUluc3RhbmNlKHRoaXNWYWx1ZSk7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudENvdW50KCkpIHsK
ICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc05hTigpOwogICAgICAgICB0aGlzRGF0ZU9iai0+
c2V0SW50ZXJuYWxWYWx1ZSh2bSwgcmVzdWx0KTsKQEAgLTExMDcsMTAgKzEwOTEsMTAgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0WWVhcihFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZv
KCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2Uq
Pih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3Rh
bmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7CiAgICAgaWYgKCFl
eGVjLT5hcmd1bWVudENvdW50KCkpIHsgCiAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOYU4o
KTsKICAgICAgICAgdGhpc0RhdGVPYmotPnNldEludGVybmFsVmFsdWUodm0sIHJlc3VsdCk7CkBA
IC0xMTUyLDExICsxMTM2LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY0dldFllYXIoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJp
dHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpz
RHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElL
RUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5j
ZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5E
YXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAo
IWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFO
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9u
SGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxw
ZXJzLmNwcAppbmRleCA5ODI2OGU1OTNhOWNjOWQwZmJlYjE2MTYwMGVmMDA5ZjdlOTJjYjM1Li42
OTkxNDRiNGE3ZWQzNzJkOWE5MzdiNjRhNDljMjc5ZjlkM2U3ZmFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcApAQCAtNjUsNyAr
NjUsNyBAQCBib29sIGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihWTSYgdm0sIEV4Y2Vw
dGlvbiogZXhjZXB0aW9uKQogICAgIGlmICghZXhjZXB0aW9uLT52YWx1ZSgpLmlzT2JqZWN0KCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBleGNlcHRpb24tPnZhbHVlKCku
aW5oZXJpdHModm0sIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6aW5mbygpKTsKKyAgICByZXR1
cm4gZXhjZXB0aW9uLT52YWx1ZSgpLmluaGVyaXRzPFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcj4o
dm0pOwogfQogCiBKU09iamVjdCogY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKEV4ZWNTdGF0ZSog
ZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9u
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJv
dG90eXBlLmNwcAppbmRleCBlMDQzMTNmMTQ1MWU0NjIwZDM1ZTVmZjRlYzMzNTk4NDRkMWUyNjky
Li5kMGZkNzYyNDdjYmMxNmI2MGE0YmEyZTRkM2IzNWU4OGU2ZTQ5ZmQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCkBAIC04
NSw3ICs4NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1
bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKLSAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBKU0Z1bmN0aW9uOjppbmZvKCkpKSB7
CisgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxKU0Z1bmN0aW9uPih2bSkpIHsKICAgICAgICAg
SlNGdW5jdGlvbiogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KHRoaXNWYWx1ZSk7CiAg
ICAgICAgIGlmIChmdW5jdGlvbi0+aXNIb3N0T3JCdWlsdGluRnVuY3Rpb24oKSkgewogICAgICAg
ICAgICAgc2NvcGUucmVsZWFzZSgpOwpAQCAtOTgsNyArOTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQog
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBjbGFzc1Nv
dXJjZS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKTsKICAgICAgICAgfQogCi0gICAgICAgIGlm
ICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIEpTQXN5bmNGdW5jdGlvbjo6aW5mbygpKSkgeworICAg
ICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzPEpTQXN5bmNGdW5jdGlvbj4odm0pKSB7CiAgICAg
ICAgICAgICBTdHJpbmcgZnVuY3Rpb25IZWFkZXIgPSBleGVjdXRhYmxlLT5pc0Fycm93RnVuY3Rp
b24oKSA/ICJhc3luYyAiIDogImFzeW5jIGZ1bmN0aW9uICI7CiAKICAgICAgICAgICAgIFN0cmlu
Z1ZpZXcgc291cmNlID0gZXhlY3V0YWJsZS0+c291cmNlKCkucHJvdmlkZXIoKS0+Z2V0UmFuZ2Uo
CkBAIC0xMTYsNyArMTE2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
blByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc01ha2VOb250cml2aWFsU3RyaW5nKGV4ZWMsIGZ1bmN0aW9uSGVhZGVyLCBm
dW5jdGlvbi0+bmFtZSh2bSksIHNvdXJjZSkpOwogICAgIH0KIAotICAgIGlmICh0aGlzVmFsdWUu
aW5oZXJpdHModm0sIEludGVybmFsRnVuY3Rpb246OmluZm8oKSkpIHsKKyAgICBpZiAodGhpc1Zh
bHVlLmluaGVyaXRzPEludGVybmFsRnVuY3Rpb24+KHZtKSkgewogICAgICAgICBJbnRlcm5hbEZ1
bmN0aW9uKiBmdW5jdGlvbiA9IGFzSW50ZXJuYWxGdW5jdGlvbih0aGlzVmFsdWUpOwogICAgICAg
ICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNNYWtl
Tm9udHJpdmlhbFN0cmluZyhleGVjLCAiZnVuY3Rpb24gIiwgZnVuY3Rpb24tPm5hbWUoKSwgIigp
IHtcbiAgICBbbmF0aXZlIGNvZGVdXG59IikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCmluZGV4IDJkOWJiNTBlYWVlOWVkM2QyNDgzYmIy
NTUxOGIxZDg4ZDY3ZDRlZjQuLjdiN2M4YmFlODgxMGYwMWNjMzA2NWI5ODIzY2Y4ZDllNzVkOTVk
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0
aW9uLmgKQEAgLTkxLDcgKzkxLDcgQEAgSW50ZXJuYWxGdW5jdGlvbiogYXNJbnRlcm5hbEZ1bmN0
aW9uKEpTVmFsdWUpOwogCiBpbmxpbmUgSW50ZXJuYWxGdW5jdGlvbiogYXNJbnRlcm5hbEZ1bmN0
aW9uKEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJp
dHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBJbnRlcm5hbEZ1bmN0aW9uOjppbmZvKCkpKTsK
KyAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5pbmhlcml0czxJbnRlcm5hbEZ1bmN0aW9uPigq
dmFsdWUuZ2V0T2JqZWN0KCktPnZtKCkpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW50ZXJu
YWxGdW5jdGlvbio+KGFzT2JqZWN0KHZhbHVlKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXkuaAppbmRleCA4NzcyYWEyYTg4OGNiMDU2Y2RhNzAwOWMxNTg2OTIwMjYz
MzExY2ExLi43MTUwYmJmYzQ1MGYwYTFkODI0YWE2NWY5OTE5ZWU2NzIyM2FiMTBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCkBAIC0yODksNyArMjg5LDcgQEAgSlNB
cnJheSogYXNBcnJheShKU1ZhbHVlKTsKIAogaW5saW5lIEpTQXJyYXkqIGFzQXJyYXkoSlNDZWxs
KiBjZWxsKQogewotICAgIEFTU0VSVChjZWxsLT5pbmhlcml0cygqY2VsbC0+dm0oKSwgSlNBcnJh
eTo6aW5mbygpKSk7CisgICAgQVNTRVJUKGNlbGwtPmluaGVyaXRzPEpTQXJyYXk+KCpjZWxsLT52
bSgpKSk7CiAgICAgcmV0dXJuIGpzQ2FzdDxKU0FycmF5Kj4oY2VsbCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAKaW5kZXggMTE1ZDhiM2QyNThi
OWFjOTRhYmFlNzMxNzRjYjYyMDQyYTI1ZTNmZC4uYjVmNzdiZTU5NzQ5ZmUzODZjZjMzY2ExZWM5
NDQ3ZDI0Y2NiYmU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDSlNWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNW
YWx1ZS5jcHAKQEAgLTMwOSwxNCArMzA5LDE0IEBAIHZvaWQgSlNWYWx1ZTo6ZHVtcEZvckJhY2t0
cmFjZShQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgICAgICBvdXQucHJpbnRmKCIlbGYiLCBh
c0RvdWJsZSgpKTsKICAgICBlbHNlIGlmIChpc0NlbGwoKSkgewogICAgICAgICBWTSYgdm0gPSAq
YXNDZWxsKCktPnZtKCk7Ci0gICAgICAgIGlmIChhc0NlbGwoKS0+aW5oZXJpdHModm0sIEpTU3Ry
aW5nOjppbmZvKCkpKSB7CisgICAgICAgIGlmIChhc0NlbGwoKS0+aW5oZXJpdHM8SlNTdHJpbmc+
KHZtKSkgewogICAgICAgICAgICAgSlNTdHJpbmcqIHN0cmluZyA9IGFzU3RyaW5nKGFzQ2VsbCgp
KTsKICAgICAgICAgICAgIGNvbnN0IFN0cmluZ0ltcGwqIGltcGwgPSBzdHJpbmctPnRyeUdldFZh
bHVlSW1wbCgpOwogICAgICAgICAgICAgaWYgKGltcGwpCiAgICAgICAgICAgICAgICAgb3V0LnBy
aW50KCJcIiIsIGltcGwsICJcIiIpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IG91dC5wcmludCgiKHVucmVzb2x2ZWQgc3RyaW5nKSIpOwotICAgICAgICB9IGVsc2UgaWYgKGFz
Q2VsbCgpLT5pbmhlcml0cyh2bSwgU3RydWN0dXJlOjppbmZvKCkpKSB7CisgICAgICAgIH0gZWxz
ZSBpZiAoYXNDZWxsKCktPmluaGVyaXRzPFN0cnVjdHVyZT4odm0pKSB7CiAgICAgICAgICAgICBv
dXQucHJpbnQoIlN0cnVjdHVyZVsgIiwgYXNDZWxsKCktPnN0cnVjdHVyZSgpLT5jbGFzc0luZm8o
KS0+Y2xhc3NOYW1lKTsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgb3V0LnByaW50
KCIgSUQ6ICIsIGFzQ2VsbCgpLT5zdHJ1Y3R1cmVJRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAppbmRleCAxYTQ0OTdlOTYwYThlNTgxMmM4YzJjMjg1YmZm
NjI5ZjQ1MDRkMjk5Li4zNjZiMGEyN2RjNzA1ZGMzODc3NGE0ZGJlNDk4MDRjYTRjZTE4MjY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC0yMzYsNiAr
MjM2LDcgQEAgY2xhc3MgSlNWYWx1ZSB7CiAgICAgYm9vbCBpc0N1c3RvbUdldHRlclNldHRlcigp
IGNvbnN0OwogICAgIGJvb2wgaXNPYmplY3QoKSBjb25zdDsKICAgICBib29sIGluaGVyaXRzKFZN
JiwgY29uc3QgQ2xhc3NJbmZvKikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0
PiBib29sIGluaGVyaXRzKFZNJikgY29uc3Q7CiAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0lu
Zm9Pck51bGwoVk0mKSBjb25zdDsKICAgICAgICAgCiAgICAgLy8gRXh0cmFjdGluZyB0aGUgdmFs
dWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGlu
ZXMuaAppbmRleCBhYTUxZGQ1ZDc2NmQwOTQ1NjI1OTNjOWY2Y2Q5Yzc2NTRjMjIwMTgwLi5iNWE0
YjRiZGJlZTk4YzAzNDA0OGFlY2UxNjU2NGYzYTFlNGQ1YzU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKQEAgLTc4NSw2ICs3ODUs
MTIgQEAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aW5oZXJpdHMoVk0mIHZtLCBjb25zdCBDbGFzc0lu
Zm8qIGNsYXNzSW5mbykgY29uc3QKICAgICByZXR1cm4gaXNDZWxsKCkgJiYgYXNDZWxsKCktPmlu
aGVyaXRzKHZtLCBjbGFzc0luZm8pOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQ+Citp
bmxpbmUgYm9vbCBKU1ZhbHVlOjppbmhlcml0cyhWTSYgdm0pIGNvbnN0Cit7CisgICAgcmV0dXJu
IGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pbmhlcml0czxUYXJnZXQ+KHZtKTsKK30KKwogaW5saW5l
IGNvbnN0IENsYXNzSW5mbyogSlNWYWx1ZTo6Y2xhc3NJbmZvT3JOdWxsKFZNJiB2bSkgY29uc3QK
IHsKICAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwoKS0+Y2xhc3NJbmZvKHZtKSA6IG51bGxw
dHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2FzdC5oCmluZGV4IDE4NTdmNjhlNjQ1
YWJkMjM2OGQ4MjdkNTUwZWMzMTNkYWI2YWFiYmYuLjU0NTcwYjRiMWFhNDM1ODdlMDUxN2I2N2Rl
MGYyNjA2NmFhY2FhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2FzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2FzdC5oCkBA
IC01OSw2ICs1OSw3IEBAIGlubGluZSBUbyBqc0Nhc3QoSlNWYWx1ZSBmcm9tKQogICAgIG1hY3Jv
KEpTV2Vha01hcCwgSlNUeXBlOjpKU1dlYWtNYXBUeXBlLCBKU1R5cGU6OkpTV2Vha01hcFR5cGUp
IFwKICAgICBtYWNybyhOdW1iZXJPYmplY3QsIEpTVHlwZTo6TnVtYmVyT2JqZWN0VHlwZSwgSlNU
eXBlOjpOdW1iZXJPYmplY3RUeXBlKSBcCiAgICAgbWFjcm8oUHJveHlPYmplY3QsIEpTVHlwZTo6
UHJveHlPYmplY3RUeXBlLCBKU1R5cGU6OlByb3h5T2JqZWN0VHlwZSkgXAorICAgIG1hY3JvKFJl
Z0V4cE9iamVjdCwgSlNUeXBlOjpSZWdFeHBPYmplY3RUeXBlLCBKU1R5cGU6OlJlZ0V4cE9iamVj
dFR5cGUpIFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVudHMsIEpTVHlwZTo6RGlyZWN0QXJndW1l
bnRzVHlwZSwgSlNUeXBlOjpEaXJlY3RBcmd1bWVudHNUeXBlKSBcCiAgICAgbWFjcm8oU2NvcGVk
QXJndW1lbnRzLCBKU1R5cGU6OlNjb3BlZEFyZ3VtZW50c1R5cGUsIEpTVHlwZTo6U2NvcGVkQXJn
dW1lbnRzVHlwZSkgXAogICAgIG1hY3JvKENsb25lZEFyZ3VtZW50cywgSlNUeXBlOjpDbG9uZWRB
cmd1bWVudHNUeXBlLCBKU1R5cGU6OkNsb25lZEFyZ3VtZW50c1R5cGUpIFwKQEAgLTgzLDYgKzg0
LDcgQEAgaW5saW5lIFRvIGpzRHluYW1pY0Nhc3RHZW5lcmljSW1wbChWTSYgdm0sIEZyb20qIGZy
b20pCiB7CiAgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19zYW1lPEpTT2JqZWN0KiwgVG8qPjo6
dmFsdWUsICJUaGlzIGVuc3VyZXMgb3VyIG92ZXJsb2FkcyB3b3JrIik7CiAgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX2Jhc2Vfb2Y8SlNDZWxsLCB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9wb2ludGVy
PFRvPjo6dHlwZT46OnZhbHVlICYmIHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX3BvaW50ZXI8RnJvbT46OnR5cGU+Ojp2YWx1ZSwgIkpTIGNhc3RpbmcgZXhwZWN0
cyB0aGF0IHRoZSB0eXBlcyB5b3UgYXJlIGNhc3RpbmcgdG8vZnJvbSBhcmUgc3ViY2xhc3NlcyBv
ZiBKU0NlbGwiKTsKKyAgICAvLyBEbyBub3QgdXNlIGluaGVyaXRzPHN0ZDo6cmVtb3ZlX3BvaW50
ZXI8VG8+Ojp0eXBlPih2bSkgc2luY2UgaW5oZXJpdHM8VD4gZGVwZW5kcyBvbiBqc0R5bmFtaWND
YXN0LgogICAgIGlmIChMSUtFTFkoZnJvbS0+SlNDZWxsOjppbmhlcml0cyh2bSwgc3RkOjpyZW1v
dmVfcG9pbnRlcjxUbz46OnR5cGU6OmluZm8oKSkpKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8VG8+KGZyb20pOwogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGwuaAppbmRleCBjYWRjZjc3ZGI2ZDBlNzY5Yjg1MzU5N2EwZWZiZGExZWNhOTE3
OWQ2Li5kZTBhYWE5ZTZhMDJmMTMxNjQ4OTI2Y2UyYzE3ZTRmNzYyYTk0MzE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtMTE2LDYgKzExNiw3IEBAIGNsYXNzIEpT
Q2VsbCA6IHB1YmxpYyBIZWFwQ2VsbCB7CiAgICAgYm9vbCBpc0N1c3RvbUdldHRlclNldHRlcigp
IGNvbnN0OwogICAgIGJvb2wgaXNQcm94eSgpIGNvbnN0OwogICAgIGJvb2wgaW5oZXJpdHMoVk0m
LCBjb25zdCBDbGFzc0luZm8qKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQ+
IGJvb2wgaW5oZXJpdHMoVk0mKSBjb25zdDsKICAgICBib29sIGlzQVBJVmFsdWVXcmFwcGVyKCkg
Y29uc3Q7CiAgICAgCiAgICAgLy8gRWFjaCBjZWxsIGhhcyBhIGJ1aWx0LWluIGxvY2suIEN1cnJl
bnRseSBpdCdzIHNpbXBseSBhdmFpbGFibGUgZm9yIHVzZSBpZiB5b3UgbmVlZCBpdC4gSXQncwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCmluZGV4IGNj
ZmY2YmQ1YTk4YzIwMmZkMmI0YWEwZWIxNjVmZWQ2ODEyNzE4ZjguLjliMzM3MWNiM2RmMmI1OWQ0
YmI4MDQ5ZjBmNzIxYjgxN2ZlNGM2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGxJbmxpbmVzLmgKQEAgLTI2NSw2ICsyNjUsMTIgQEAgaW5saW5lIGJvb2wgSlND
ZWxsOjppbmhlcml0cyhWTSYgdm0sIGNvbnN0IENsYXNzSW5mbyogaW5mbykgY29uc3QKICAgICBy
ZXR1cm4gY2xhc3NJbmZvKHZtKS0+aXNTdWJDbGFzc09mKGluZm8pOwogfQogCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUYXJnZXQ+CitpbmxpbmUgYm9vbCBKU0NlbGw6OmluaGVyaXRzKFZNJiB2bSkgY29u
c3QKK3sKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxjb25zdCBUYXJnZXQqPih2bSwgdGhpcyk7
Cit9CisKIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBKU0NlbGw6OmZhc3RHZXRPd25Qcm9wZXJ0eShW
TSYgdm0sIFN0cnVjdHVyZSYgc3RydWN0dXJlLCBQcm9wZXJ0eU5hbWUgbmFtZSkKIHsKICAgICBB
U1NFUlQoY2FuVXNlRmFzdEdldE93blByb3BlcnR5KHN0cnVjdHVyZSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAwNGM4YjIyNzk5NjMwMDEx
ZjdiZjQwMTU2YzZjZjQwMTBmMDNkNjNjLi5iZWE5MjFlMmIzMjFkYWJhMjdlY2QzNjQxZGIwODg1
NjEzYzAxZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmNwcApAQCAtMzEyLDcgKzMxMiw3IEBAIGNsYXNzIFJldHJpZXZlQ2FsbGVyRnVuY3Rpb25GdW5j
dG9yIHsKIAogICAgICAgICBKU0NlbGwqIGNhbGxlZSA9IHZpc2l0b3ItPmNhbGxlZSgpLmFzQ2Vs
bCgpOwogCi0gICAgICAgIGlmIChjYWxsZWUgJiYgY2FsbGVlLT5pbmhlcml0cygqY2FsbGVlLT52
bSgpLCBKU0JvdW5kRnVuY3Rpb246OmluZm8oKSkpCisgICAgICAgIGlmIChjYWxsZWUgJiYgY2Fs
bGVlLT5pbmhlcml0czxKU0JvdW5kRnVuY3Rpb24+KCpjYWxsZWUtPnZtKCkpKQogICAgICAgICAg
ICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6Q29udGludWU7CiAKICAgICAgICAgaWYgKCFtX2hhc0Zv
dW5kRnJhbWUgJiYgKGNhbGxlZSAhPSBtX3RhcmdldENhbGxlZSkpCkBAIC0zNTMsNyArMzUzLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHUKICAgICBKU1ZhbHVlIGNhbGxlciA9IHJldHJpZXZl
Q2FsbGVyRnVuY3Rpb24oZXhlYywgdGhpc09iaik7CiAKICAgICAvLyBTZWUgRVM1LjEgMTUuMy41
LjQgLSBGdW5jdGlvbi5jYWxsZXIgbWF5IG5vdCBiZSB1c2VkIHRvIHJldHJpZXZlIGEgc3RyaWN0
IGNhbGxlci4KLSAgICBpZiAoIWNhbGxlci5pc09iamVjdCgpIHx8ICFhc09iamVjdChjYWxsZXIp
LT5pbmhlcml0cyh2bSwgSlNGdW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlmICghY2FsbGVyLmlz
T2JqZWN0KCkgfHwgIWFzT2JqZWN0KGNhbGxlciktPmluaGVyaXRzPEpTRnVuY3Rpb24+KHZtKSkg
ewogICAgICAgICAvLyBJdCBpc24ndCBhIEpTRnVuY3Rpb24sIGJ1dCBpZiBpdCBpcyBhIEpTQ2Fs
bGVlIGZyb20gYSBwcm9ncmFtIG9yIGV2YWwgY2FsbCBvciBhbiBpbnRlcm5hbCBjb25zdHJ1Y3Rv
ciwgcmV0dXJuIG51bGwuCiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTQ2FsbGVlKj4odm0s
IGNhbGxlcikgfHwganNEeW5hbWljQ2FzdDxJbnRlcm5hbEZ1bmN0aW9uKj4odm0sIGNhbGxlcikp
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKQEAgLTQ1MSw3
ICs0NTEsNyBAQCB2b2lkIEpTRnVuY3Rpb246OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyhK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBpZiAodGhpc09iamVjdC0+aXNCdWlsdGluRnVuY3Rpb24oKSAmJiAhdGhpc09iamVj
dC0+aGFzUmVpZmllZExlbmd0aCgpKQogICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRk
KHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAoKHRoaXNPYmplY3Qt
PmlzQnVpbHRpbkZ1bmN0aW9uKCkgfHwgdGhpc09iamVjdC0+aW5oZXJpdHModm0sIEpTQm91bmRG
dW5jdGlvbjo6aW5mbygpKSkgJiYgIXRoaXNPYmplY3QtPmhhc1JlaWZpZWROYW1lKCkpCisgICAg
ICAgICAgICBpZiAoKHRoaXNPYmplY3QtPmlzQnVpbHRpbkZ1bmN0aW9uKCkgfHwgdGhpc09iamVj
dC0+aW5oZXJpdHM8SlNCb3VuZEZ1bmN0aW9uPih2bSkpICYmICF0aGlzT2JqZWN0LT5oYXNSZWlm
aWVkTmFtZSgpKQogICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKHZtLnByb3BlcnR5
TmFtZXMtPm5hbWUpOwogICAgICAgICB9CiAgICAgfQpAQCAtNzUyLDcgKzc1Miw3IEBAIEpTRnVu
Y3Rpb246OlByb3BlcnR5U3RhdHVzIEpTRnVuY3Rpb246OnJlaWZ5TGF6eUJvdW5kTmFtZUlmTmVl
ZGVkKFZNJiB2bSwgRXhlY1N0CiAKICAgICBpZiAoaXNCdWlsdGluRnVuY3Rpb24oKSkKICAgICAg
ICAgcmVpZnlOYW1lKHZtLCBleGVjKTsKLSAgICBlbHNlIGlmICh0aGlzLT5pbmhlcml0cyh2bSwg
SlNCb3VuZEZ1bmN0aW9uOjppbmZvKCkpKSB7CisgICAgZWxzZSBpZiAodGhpcy0+aW5oZXJpdHM8
SlNCb3VuZEZ1bmN0aW9uPih2bSkpIHsKICAgICAgICAgRnVuY3Rpb25SYXJlRGF0YSogcmFyZURh
dGEgPSB0aGlzLT5yYXJlRGF0YSh2bSk7CiAgICAgICAgIFN0cmluZyBuYW1lID0gbWFrZVN0cmlu
ZygiYm91bmQgIiwgc3RhdGljX2Nhc3Q8TmF0aXZlRXhlY3V0YWJsZSo+KG1fZXhlY3V0YWJsZS5n
ZXQoKSktPm5hbWUoKSk7CiAgICAgICAgIHVuc2lnbmVkIGluaXRpYWxBdHRyaWJ1dGVzID0gUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmlu
ZGV4IDQ2MWUwMDNkZmE1MDRmZmU1MTJlODQ0ZGI4ODY0MTJkNTJlMjAxMDIuLjAxZTFiY2JlMmRh
ZmU0MDI2MzNmMzc5YThmNjBjM2M3NjVkZDU4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBlbnF1ZXVlSm9iKEV4ZWNTdGF0ZSogZXhl
YykKIAogICAgIEpTVmFsdWUgam9iID0gZXhlYy0+YXJndW1lbnQoMCk7CiAgICAgSlNWYWx1ZSBh
cmd1bWVudHMgPSBleGVjLT5hcmd1bWVudCgxKTsKLSAgICBBU1NFUlQoYXJndW1lbnRzLmluaGVy
aXRzKHZtLCBKU0FycmF5OjppbmZvKCkpKTsKKyAgICBBU1NFUlQoYXJndW1lbnRzLmluaGVyaXRz
PEpTQXJyYXk+KHZtKSk7CiAKICAgICBnbG9iYWxPYmplY3QtPnF1ZXVlTWljcm90YXNrKGNyZWF0
ZUpTSm9iKHZtLCBqb2IsIGpzQ2FzdDxKU0FycmF5Kj4oYXJndW1lbnRzKSkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBjZWZlNmQ1
NWE3MjlkY2Y5NDFiMjllZjlkNmIwYTIzNzEwNGRkOTQ5Li42YWI3MDIzM2Y2NmI1ZTNlZDUyZDMx
YTg3NmQyYmVmN2E4Y2M5ZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKQEAgLTkyNSwxNCArOTI1LDYgQEAgY2xhc3MgSlNHbG9iYWxPYmpl
Y3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgUmVmUHRyPFRocmVh
ZExvY2FsQ2FjaGU+IG1fdGhyZWFkTG9jYWxDYWNoZTsKIH07CiAKLUpTR2xvYmFsT2JqZWN0KiBh
c0dsb2JhbE9iamVjdChKU1ZhbHVlKTsKLQotaW5saW5lIEpTR2xvYmFsT2JqZWN0KiBhc0dsb2Jh
bE9iamVjdChKU1ZhbHVlIHZhbHVlKQotewotICAgIEFTU0VSVChhc09iamVjdCh2YWx1ZSktPmlz
R2xvYmFsT2JqZWN0KCkpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihhc09i
amVjdCh2YWx1ZSkpOwotfQotCiBpbmxpbmUgSlNBcnJheSogY29uc3RydWN0RW1wdHlBcnJheShF
eGVjU3RhdGUqIGV4ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGggPSAwLCBKU1ZhbHVl
IG5ld1RhcmdldCA9IEpTVmFsdWUoKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFs
UHJvbWlzZURlZmVycmVkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwCmluZGV4IDE3OWJhNzZmZTJkZWNkZTQ5ODJmOWJiMDUw
OThiODdlODU4MWNlOTguLjQ0OWNjOWU4ZDMzNGVlNWY5YzBkZDRjZWM5OGRkN2Y3MTlkMzEzYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9t
aXNlRGVmZXJyZWQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIEpTSW50ZXJuYWxQcm9t
aXNlRGVmZXJyZWQqIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShFeGVjU3RhdGUq
IGV4ZWMsIEpTCiAKICAgICBKU1ZhbHVlIHByb21pc2UgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVByaXZhdGVOYW1lKCkpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIEFTU0VSVChwcm9taXNl
LmluaGVyaXRzKHZtLCBKU0ludGVybmFsUHJvbWlzZTo6aW5mbygpKSk7CisgICAgQVNTRVJUKHBy
b21pc2UuaW5oZXJpdHM8SlNJbnRlcm5hbFByb21pc2U+KHZtKSk7CiAgICAgSlNWYWx1ZSByZXNv
bHZlID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnJlc29sdmVQcml2YXRlTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKICAgICBKU1ZhbHVlIHJlamVjdCA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWplY3RQcml2YXRlTmFtZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oCmlu
ZGV4IGVlMDE1ZTI2OTRiNWQ2ZmQwN2E3ZTk5YjQ0MjA4NTI3MjM0NjE4ZWMuLmZkM2U0ZTBlNWUy
MTJiNzY2YWNiZjAxOTBiZWYwYzdiZDQ4OGVlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaApAQCAtMTQ1LDcgKzE0NSw3
IEBAIGlubGluZSBKU0xleGljYWxFbnZpcm9ubWVudDo6SlNMZXhpY2FsRW52aXJvbm1lbnQoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwKIAogaW5saW5lIEpTTGV4aWNhbEVudmlyb25tZW50
KiBhc0FjdGl2YXRpb24oSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBBU1NFUlQoYXNPYmplY3QodmFs
dWUpLT5pbmhlcml0cygqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCksIEpTTGV4aWNhbEVudmlyb25t
ZW50OjppbmZvKCkpKTsKKyAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5pbmhlcml0czxKU0xl
eGljYWxFbnZpcm9ubWVudD4oKnZhbHVlLmdldE9iamVjdCgpLT52bSgpKSk7CiAgICAgcmV0dXJu
IGpzQ2FzdDxKU0xleGljYWxFbnZpcm9ubWVudCo+KGFzT2JqZWN0KHZhbHVlKSk7CiB9CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IGVj
ZGJkMDM3YjIxOGZmOTMyNjc4MWViNTAyZDAwZjVkZDAzZDlkZDUuLmIzOGQ4OGM3YWYyNzk1Yzdl
ZmI2Yzg2YmFiNmIyOTFkOTlkNWUxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT05PYmplY3QuY3BwCkBAIC0xNDMsMTEgKzE0MywxMSBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUgdW53cmFwQm94ZWRQcmltaXRpdmUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAg
IEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgaWYgKG9iamVjdC0+aW5o
ZXJpdHModm0sIE51bWJlck9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAob2JqZWN0LT5pbmhlcml0
czxOdW1iZXJPYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKG9iamVjdC0+dG9O
dW1iZXIoZXhlYykpOwotICAgIGlmIChvYmplY3QtPmluaGVyaXRzKHZtLCBTdHJpbmdPYmplY3Q6
OmluZm8oKSkpCisgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8U3RyaW5nT2JqZWN0Pih2bSkpCiAg
ICAgICAgIHJldHVybiBvYmplY3QtPnRvU3RyaW5nKGV4ZWMpOwotICAgIGlmIChvYmplY3QtPmlu
aGVyaXRzKHZtLCBCb29sZWFuT2JqZWN0OjppbmZvKCkpKQorICAgIGlmIChvYmplY3QtPmluaGVy
aXRzPEJvb2xlYW5PYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIG9iamVjdC0+dG9QcmltaXRp
dmUoZXhlYyk7CiAKICAgICAvLyBEbyBub3QgdW53cmFwIFN5bWJvbE9iamVjdCB0byBTeW1ib2wu
IEl0IGlzIG5vdCBwZXJmb3JtZWQgaW4gdGhlIHNwZWMuCkBAIC0yMzUsNyArMjM1LDcgQEAgU3Ry
aW5naWZpZXI6OlN0cmluZ2lmaWVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSByZXBsYWNlciwg
SlNWYWx1ZSBzcGFjZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgSlNPYmplY3QqIHJlcGxhY2Vy
T2JqZWN0ID0gYXNPYmplY3QobV9yZXBsYWNlcik7Ci0gICAgaWYgKHJlcGxhY2VyT2JqZWN0LT5p
bmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSkgeworICAgIGlmIChyZXBsYWNlck9iamVjdC0+
aW5oZXJpdHM8SlNBcnJheT4odm0pKSB7CiAgICAgICAgIG1fdXNpbmdBcnJheVJlcGxhY2VyID0g
dHJ1ZTsKICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBqc0Nhc3Q8SlNBcnJheSo+KHJlcGxhY2Vy
T2JqZWN0KTsKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gYXJyYXktPmdldChleGVjLCB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgpLnRvVUludDMyKGV4ZWMpOwpAQCAtMjQ2LDggKzI0Niw4IEBA
IFN0cmluZ2lmaWVyOjpTdHJpbmdpZmllcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgcmVwbGFj
ZXIsIEpTVmFsdWUgc3BhY2UpCiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0
aW9uKCkpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBpZiAobmFtZS5p
c09iamVjdCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFhc09iamVjdChuYW1lKS0+aW5oZXJp
dHModm0sIE51bWJlck9iamVjdDo6aW5mbygpKSAmJiAhYXNPYmplY3QobmFtZSktPmluaGVyaXRz
KHZtLCBTdHJpbmdPYmplY3Q6OmluZm8oKSkpCisgICAgICAgICAgICBpZiAoYXV0byogbmFtZU9i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgbmFtZSkpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoIW5hbWVPYmplY3QtPmluaGVyaXRzPE51bWJlck9iamVjdD4odm0pICYmICFuYW1l
T2JqZWN0LT5pbmhlcml0czxTdHJpbmdPYmplY3Q+KHZtKSkKICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFuYW1lLmlzTnVtYmVyKCkgJiYgIW5h
bWUuaXNTdHJpbmcoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTY0OSw3ICs2NDks
NyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVk
KQogICAgICAgICAgICAgYXJyYXlTdGFydFN0YXRlOgogICAgICAgICAgICAgY2FzZSBBcnJheVN0
YXJ0U3RhdGU6IHsKICAgICAgICAgICAgICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsK
LSAgICAgICAgICAgICAgICBBU1NFUlQoaXNKU0FycmF5KGFzT2JqZWN0KGluVmFsdWUpKSB8fCBh
c09iamVjdChpblZhbHVlKS0+aW5oZXJpdHModm0sIEpTQXJyYXk6OmluZm8oKSkpOworICAgICAg
ICAgICAgICAgIEFTU0VSVChhc09iamVjdChpblZhbHVlKS0+aW5oZXJpdHM8SlNBcnJheT4odm0p
KTsKICAgICAgICAgICAgICAgICBpZiAobWFya2VkU3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRl
clJlY3Vyc2lvbikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93U3RhY2tPdmVyZmxv
d0Vycm9yKG1fZXhlYywgc2NvcGUpOwogCkBAIC03MDQsNyArNzA0LDcgQEAgTkVWRVJfSU5MSU5F
IEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgIG9i
amVjdFN0YXJ0U3RhdGU6CiAgICAgICAgICAgICBjYXNlIE9iamVjdFN0YXJ0U3RhdGU6IHsKICAg
ICAgICAgICAgICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKLSAgICAgICAgICAgICAg
ICBBU1NFUlQoIWlzSlNBcnJheShhc09iamVjdChpblZhbHVlKSkgJiYgIWFzT2JqZWN0KGluVmFs
dWUpLT5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgQVNT
RVJUKCFhc09iamVjdChpblZhbHVlKS0+aW5oZXJpdHM8SlNBcnJheT4odm0pKTsKICAgICAgICAg
ICAgICAgICBpZiAobWFya2VkU3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhl
Yywgc2NvcGUpOwogCkBAIC03NjUsNyArNzY1LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fs
a2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBh
c09iamVjdChpblZhbHVlKTsKLSAgICAgICAgICAgICAgICBpZiAoaXNKU0FycmF5KG9iamVjdCkg
fHwgb2JqZWN0LT5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSkKKyAgICAgICAgICAgICAg
ICBpZiAob2JqZWN0LT5pbmhlcml0czxKU0FycmF5Pih2bSkpCiAgICAgICAgICAgICAgICAgICAg
IGdvdG8gYXJyYXlTdGFydFN0YXRlOwogICAgICAgICAgICAgICAgIGdvdG8gb2JqZWN0U3RhcnRT
dGF0ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNQcm9taXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZS5jcHAKaW5kZXggZjk2ZmVhMTg2ZTViNWQ0YzUyMjc3MGJmNGNkYzc5YTlkNzNmZTFmOS4uM2U2
ODg3ZTU5NWM4NzU2MTk3Y2Q2MGZkZDJjZjQyMWQ2OWFjNjU5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgSlNQcm9t
aXNlKiBKU1Byb21pc2U6OnJlc29sdmUoSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKICAgICBBU1NFUlQoIWFyZ3VtZW50cy5oYXNPdmVyZmxvd2VkKCkpOwogICAg
IGF1dG8gcmVzdWx0ID0gY2FsbChleGVjLCBwcm9taXNlUmVzb2x2ZUZ1bmN0aW9uLCBjYWxsVHlw
ZSwgY2FsbERhdGEsIGdsb2JhbE9iamVjdC5wcm9taXNlQ29uc3RydWN0b3IoKSwgYXJndW1lbnRz
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBBU1NFUlQo
cmVzdWx0LmluaGVyaXRzKHZtLCBKU1Byb21pc2U6OmluZm8oKSkpOworICAgIEFTU0VSVChyZXN1
bHQuaW5oZXJpdHM8SlNQcm9taXNlPih2bSkpOwogICAgIHJldHVybiBqc0Nhc3Q8SlNQcm9taXNl
Kj4ocmVzdWx0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNQcm9taXNlRGVmZXJyZWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNQcm9taXNlRGVmZXJyZWQuY3BwCmluZGV4IGJhYTk5MjQ4ZjBkOGJlZThkNzhmNzVhNTVjNzc2
ZmY4ZTlmNzVhZmQuLmQ3ZjdkNzg5ZmUxNDNmNzA5NjIxZTNjNGVhYjljMjU4YTc1MzQ3ZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVk
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJl
ZC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgSlNQcm9taXNlRGVmZXJyZWQqIEpTUHJvbWlzZURlZmVy
cmVkOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2wKIAogICAgIEpT
VmFsdWUgcHJvbWlzZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHByb21pc2UuaW5oZXJpdHModm0sIEpTUHJv
bWlzZTo6aW5mbygpKSk7CisgICAgQVNTRVJUKHByb21pc2UuaW5oZXJpdHM8SlNQcm9taXNlPih2
bSkpOwogICAgIEpTVmFsdWUgcmVzb2x2ZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXNvbHZlUHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgSlNWYWx1ZSByZWplY3QgPSBkZWZl
cnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJp
dmF0ZU5hbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm94eU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3Qu
aAppbmRleCAyYzk4MTYzNTE5YjM2MTAzOGJlMTQyM2E1ZmFkNzkxN2I2NjI4NTljLi5lYmIxZmEy
M2NjNGE3MzhmYzRhZDg0ZGMwNDA1MGMzM2EyZjQwNjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLWNsYXNzIFByb3h5T2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewor
Y2xhc3MgUHJveHlPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCAwZjUy
YWEyNGFiM2U0ZmZhZWZhNTE1M2M3YmY5ZjMyYTYwYzg3MGYwLi41MDY4NTcyODkxOTVhMTIxYzlh
ZDE2NjE3NDZiN2I4NGI0NTBjNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgSlNPYmpl
Y3QqIGNvbnN0cnVjdFJlZ0V4cChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGNvbnN0IEEKICAgICBKU1ZhbHVlIHBhdHRlcm5BcmcgPSBhcmdzLmF0KDApOwog
ICAgIEpTVmFsdWUgZmxhZ3NBcmcgPSBhcmdzLmF0KDEpOwogCi0gICAgYm9vbCBpc1BhdHRlcm5S
ZWdFeHAgPSBwYXR0ZXJuQXJnLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSk7Cisg
ICAgYm9vbCBpc1BhdHRlcm5SZWdFeHAgPSBwYXR0ZXJuQXJnLmluaGVyaXRzPFJlZ0V4cE9iamVj
dD4odm0pOwogICAgIGJvb2wgY29uc3RydWN0QXNSZWdleHAgPSBpc1JlZ0V4cCh2bSwgZXhlYywg
cGF0dGVybkFyZyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5o
CmluZGV4IGRhNzYwZWMwNGYwYTc4MjdhYTY1N2NjZGI2NzkyOGMxZDZlZTBhNWIuLjAxNjhlNTg1
OTgwZmFkN2QxOWRhYjRjMjA1ZDcxOWJmYjE4YjhmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApAQCAtODYsNyArODYsNyBAQCBK
U09iamVjdCogY29uc3RydWN0UmVnRXhwKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgY29u
c3QgQXJnTGlzdCYsIEpTT2JqZWN0KgogCiBpbmxpbmUgUmVnRXhwQ29uc3RydWN0b3IqIGFzUmVn
RXhwQ29uc3RydWN0b3IoSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBBU1NFUlQoYXNPYmplY3QodmFs
dWUpLT5pbmhlcml0cygqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCksIFJlZ0V4cENvbnN0cnVjdG9y
OjppbmZvKCkpKTsKKyAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5pbmhlcml0czxSZWdFeHBD
b25zdHJ1Y3Rvcj4oKnZhbHVlLmdldE9iamVjdCgpLT52bSgpKSk7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oYXNPYmplY3QodmFsdWUpKTsKIH0KIApAQCAtMTQw
LDcgKzE0MCw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBpc1JlZ0V4cChWTSYgdm0sIEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKICAgICBpZiAoIW1hdGNoVmFsdWUuaXNVbmRlZmluZWQo
KSkKICAgICAgICAgcmV0dXJuIG1hdGNoVmFsdWUudG9Cb29sZWFuKGV4ZWMpOwogCi0gICAgcmV0
dXJuIG9iamVjdC0+aW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKTsKKyAgICByZXR1
cm4gb2JqZWN0LT5pbmhlcml0czxSZWdFeHBPYmplY3Q+KHZtKTsKIH0KIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBlc1NwZWNSZWdFeHBDcmVhdGUoRXhlY1N0YXRlKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAppbmRleCA0MjUyNDlj
MjMwNGY5MzY4ZDdiMGFkY2M5ZjI3YzIyZWM1ZTAzOGYyLi45YTQ2NjI5OTZmYzhhZTFmNmViNGFj
NTU5YmEwOWUyZGQ1MjlmYmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAgdm9pZCBSZWdFeHBPYmplY3Q6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAg
ICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKKyAgICBBU1NFUlQodHlwZSgpID09IFJl
Z0V4cE9iamVjdFR5cGUpOwogfQogCiB2b2lkIFJlZ0V4cE9iamVjdDo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpAQCAtNjQsNyArNjUsNyBAQCBib29s
IFJlZ0V4cE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydAogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgaWYg
KHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sYXN0SW5kZXgpIHsKLSAgICAgICAg
UmVnRXhwT2JqZWN0KiByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdChvYmplY3QpOworICAgICAgICBS
ZWdFeHBPYmplY3QqIHJlZ0V4cCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPihvYmplY3QpOwogICAg
ICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzID0gcmVnRXhwLT5tX2xhc3RJbmRleElzV3JpdGFibGUg
PyBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSA6IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5OwogICAgICAgICBzbG90LnNl
dFZhbHVlKHJlZ0V4cCwgYXR0cmlidXRlcywgcmVnRXhwLT5nZXRMYXN0SW5kZXgoKSk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwpAQCAtMTEwLDcgKzExMSw3IEBAIGJvb2wgUmVnRXhwT2JqZWN0Ojpk
ZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYg
KHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sYXN0SW5kZXgpIHsKLSAgICAgICAg
UmVnRXhwT2JqZWN0KiByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdChvYmplY3QpOworICAgICAgICBS
ZWdFeHBPYmplY3QqIHJlZ0V4cCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPihvYmplY3QpOwogICAg
ICAgICBpZiAoZGVzY3JpcHRvci5jb25maWd1cmFibGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5j
b25maWd1cmFibGUoKSkKICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZXhlYywgc2NvcGUs
IHNob3VsZFRocm93LCBBU0NJSUxpdGVyYWwoVW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZUNv
bmZpZ3VyYWJpbGl0eUVycm9yKSk7CiAgICAgICAgIGlmIChkZXNjcmlwdG9yLmVudW1lcmFibGVQ
cmVzZW50KCkgJiYgZGVzY3JpcHRvci5lbnVtZXJhYmxlKCkpCkBAIC0xMzksMTIgKzE0MCwxMiBA
QCBib29sIFJlZ0V4cE9iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eQogCiBzdGF0aWMgYm9vbCByZWdFeHBPYmplY3RTZXRM
YXN0SW5kZXhTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIHZhbHVlKQogewotICAgIHJldHVybiBhc1JlZ0V4cE9iamVjdChKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNv
ZGUodmFsdWUpLCB0cnVlKTsKKyAgICByZXR1cm4ganNDYXN0PFJlZ0V4cE9iamVjdCo+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+c2V0TGFzdEluZGV4KGV4ZWMsIEpTVmFsdWU6OmRlY29k
ZSh2YWx1ZSksIHRydWUpOwogfQogCiBzdGF0aWMgYm9vbCByZWdFeHBPYmplY3RTZXRMYXN0SW5k
ZXhOb25TdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIHZhbHVlKQogewotICAgIHJldHVybiBhc1JlZ0V4cE9iamVjdChKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNvZGUo
dmFsdWUpLCBmYWxzZSk7CisgICAgcmV0dXJuIGpzQ2FzdDxSZWdFeHBPYmplY3QqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNvZGUo
dmFsdWUpLCBmYWxzZSk7CiB9CiAKIGJvb2wgUmVnRXhwT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKQEAgLTE1Niw4ICsxNTcsOCBAQCBib29sIFJlZ0V4
cE9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLAogICAgICAgICByZXR1cm4gb3JkaW5hcnlTZXRTbG93KGV4ZWMsIHRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QudGhpc1ZhbHVlKCksIHNsb3QuaXNTdHJp
Y3RNb2RlKCkpOwogCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5s
YXN0SW5kZXgpIHsKLSAgICAgICAgYm9vbCByZXN1bHQgPSBhc1JlZ0V4cE9iamVjdChjZWxsKS0+
c2V0TGFzdEluZGV4KGV4ZWMsIHZhbHVlLCBzbG90LmlzU3RyaWN0TW9kZSgpKTsKLSAgICAgICAg
c2xvdC5zZXRDdXN0b21WYWx1ZShhc1JlZ0V4cE9iamVjdChjZWxsKSwgc2xvdC5pc1N0cmljdE1v
ZGUoKQorICAgICAgICBib29sIHJlc3VsdCA9IHRoaXNPYmplY3QtPnNldExhc3RJbmRleChleGVj
LCB2YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSk7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tVmFs
dWUodGhpc09iamVjdCwgc2xvdC5pc1N0cmljdE1vZGUoKQogICAgICAgICAgICAgPyByZWdFeHBP
YmplY3RTZXRMYXN0SW5kZXhTdHJpY3QKICAgICAgICAgICAgIDogcmVnRXhwT2JqZWN0U2V0TGFz
dEluZGV4Tm9uU3RyaWN0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggZGE3OTA5MDVjNGU1ZWYxZDY0
MTY1YzBhOTRjZDY3ZjgwNmVjMWM0ZS4uNGY3YWI1M2QzN2JlNTY5NjYzOWY5YmFhZjhlYTQ2MTY0
NzUzM2M0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmgKQEAgLTI3LDkgKzI3LDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgCi1jbGFzcyBSZWdF
eHBPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CitjbGFzcyBSZWdFeHBPYmplY3Qg
ZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBK
U05vbkZpbmFsT2JqZWN0IEJhc2U7CisgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzOwogCiAgICAgc3RhdGljIFJlZ0V4cE9iamVjdCogY3JlYXRlKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ0V4cCogcmVnRXhwKQpAQCAtMTM4LDEyICsxMzgsNCBAQCBj
bGFzcyBSZWdFeHBPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdWludDhf
dCBtX2xhc3RJbmRleElzV3JpdGFibGU7CiB9OwogCi1SZWdFeHBPYmplY3QqIGFzUmVnRXhwT2Jq
ZWN0KEpTVmFsdWUpOwotCi1pbmxpbmUgUmVnRXhwT2JqZWN0KiBhc1JlZ0V4cE9iamVjdChKU1Zh
bHVlIHZhbHVlKQotewotICAgIEFTU0VSVChhc09iamVjdCh2YWx1ZSktPmluaGVyaXRzKCp2YWx1
ZS5nZXRPYmplY3QoKS0+dm0oKSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKTsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8UmVnRXhwT2JqZWN0Kj4oYXNPYmplY3QodmFsdWUpKTsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
UHJvdG90eXBlLmNwcAppbmRleCAzNzQwMmEwMjM2MDhlNWNlNmEwY2Y2ZDI0MGQyMzkzMDQ4NjNk
NTJkLi4zN2E5ZGVjMTc3MmFlNjc3MGEwYzA4YWY2YzVkN2IxOWI3NjNkNWE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTEw
MywxNCArMTAzLDE1IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9G
dW5jVGVzdEZhc3QoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygp
KSkKKyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0
aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBleGVj
LT5hcmd1bWVudCgwKS50b1N0cmluZ09yTnVsbChleGVjKTsKICAgICBFWENFUFRJT05fQVNTRVJU
KCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gIXN0cmluZyk7CiAgICAgaWYgKCFzdHJpbmcpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgc2NvcGUucmVs
ZWFzZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwT2Jq
ZWN0KHRoaXNWYWx1ZSktPnRlc3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBz
dHJpbmcpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT50
ZXN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgc3RyaW5nKSkpOwogfQogCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY0V4ZWMoRXhlY1N0YXRl
KiBleGVjKQpAQCAtMTE5LDE5ICsxMjAsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCByZWdFeHBQcm90b0Z1bmNFeGVjKEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
PnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmpl
Y3Q6OmluZm8oKSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmpl
Y3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCAiQnVpbHRpbiBSZWdFeHAgZXhl
YyBjYW4gb25seSBiZSBjYWxsZWQgb24gYSBSZWdFeHAgb2JqZWN0Iik7CiAgICAgSlNTdHJpbmcq
IHN0cmluZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nT3JOdWxsKGV4ZWMpOwogICAgIEVY
Q0VQVElPTl9BU1NFUlQoISFzY29wZS5leGNlcHRpb24oKSA9PSAhc3RyaW5nKTsKICAgICBpZiAo
IXN0cmluZykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4
cE9iamVjdCh0aGlzVmFsdWUpLT5leGVjKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSwgc3RyaW5nKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWdleHAtPmV4ZWMoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJpbmcpKTsKIH0KIAogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QoRXhlY1N0YXRlKiBl
eGVjKQogewotICAgIFJlZ0V4cE9iamVjdCogdGhpc09iamVjdCA9IGFzUmVnRXhwT2JqZWN0KGV4
ZWMtPnRoaXNWYWx1ZSgpKTsKKyAgICBSZWdFeHBPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
UmVnRXhwT2JqZWN0Kj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIEpTU3RyaW5nKiBzdHJpbmcg
PSBqc0Nhc3Q8SlNTdHJpbmcqPihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYg
KCF0aGlzT2JqZWN0LT5yZWdFeHAoKS0+Z2xvYmFsKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUodGhpc09iamVjdC0+ZXhlYyhleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCksIHN0cmluZykpOwpAQCAtMTQ0LDE3ICsxNDYsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNDb21waWxlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBS
ZWdFeHBPYmplY3Q6OmluZm8oKSkpCisgICAgYXV0byogdGhpc1JlZ0V4cCA9IGpzRHluYW1pY0Nh
c3Q8UmVnRXhwT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlz
UmVnRXhwKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwog
CiAgICAgUmVnRXhwKiByZWdFeHA7CiAgICAgSlNWYWx1ZSBhcmcwID0gZXhlYy0+YXJndW1lbnQo
MCk7CiAgICAgSlNWYWx1ZSBhcmcxID0gZXhlYy0+YXJndW1lbnQoMSk7CiAgICAgCi0gICAgaWYg
KGFyZzAuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkgeworICAgIGlmIChhdXRv
KiByZWdFeHBPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCBhcmcwKSkg
ewogICAgICAgICBpZiAoIWFyZzEuaXNVbmRlZmluZWQoKSkKICAgICAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBzdXBwbHkg
ZmxhZ3Mgd2hlbiBjb25zdHJ1Y3Rpbmcgb25lIFJlZ0V4cCBmcm9tIGFub3RoZXIuIikpOwotICAg
ICAgICByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdChhcmcwKS0+cmVnRXhwKCk7CisgICAgICAgIHJl
Z0V4cCA9IHJlZ0V4cE9iamVjdC0+cmVnRXhwKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgU3Ry
aW5nIHBhdHRlcm4gPSBhcmcwLmlzVW5kZWZpbmVkKCkgPyBlbXB0eVN0cmluZygpIDogYXJnMC50
b1dURlN0cmluZyhleGVjKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5j
b2RlZEpTVmFsdWUoKSk7CkBAIC0xNzIsMTAgKzE3NSwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY0NvbXBpbGUoRXhlY1N0YXRlKiBleGVjKQogICAgIGlm
ICghcmVnRXhwLT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywg
c2NvcGUsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsIHJlZ0V4cC0+ZXJyb3JNZXNzYWdlKCkpKTsK
IAotICAgIGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnNldFJlZ0V4cCh2bSwgcmVnRXhwKTsK
KyAgICB0aGlzUmVnRXhwLT5zZXRSZWdFeHAodm0sIHJlZ0V4cCk7CiAgICAgc2NvcGUucmVsZWFz
ZSgpOwotICAgIGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnNldExhc3RJbmRleChleGVjLCAw
KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSk7CisgICAgdGhpc1JlZ0V4
cC0+c2V0TGFzdEluZGV4KGV4ZWMsIDApOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhp
c1JlZ0V4cCk7CiB9CiAKIHR5cGVkZWYgc3RkOjphcnJheTxjaGFyLCA2ICsgMT4gRmxhZ3NTdHJp
bmc7IC8vIDYgZGlmZmVyZW50IGZsYWdzIGFuZCBhIG51bGwgY2hhcmFjdGVyIHRlcm1pbmF0b3Iu
CkBAIC0yNTUsMTMgKzI1OCwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4
cFByb3RvR2V0dGVyR2xvYmFsKEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOwotICAgIGlmIChVTkxJS0VMWSghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdF
eHBPYmplY3Q6OmluZm8oKSkpKSB7Ci0gICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0s
IFJlZ0V4cFByb3RvdHlwZTo6aW5mbygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWND
YXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghcmVn
ZXhwKSkgeworICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4o
dm0pKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJh
bCgiVGhlIFJlZ0V4cC5wcm90b3R5cGUuZ2xvYmFsIGdldHRlciBjYW4gb25seSBiZSBjYWxsZWQg
b24gYSBSZWdFeHAgb2JqZWN0IikpOwogICAgIH0KIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpLT5nbG9iYWwo
KSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhw
KCktPmdsb2JhbCgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhw
UHJvdG9HZXR0ZXJJZ25vcmVDYXNlKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTI3MCwxMyArMjc0LDE0
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJJZ25vcmVD
YXNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAg
IGlmIChVTkxJS0VMWSghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8o
KSkpKSB7Ci0gICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cFByb3RvdHlw
ZTo6aW5mbygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVj
dCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkgeworICAgICAg
ICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4odm0pKQogICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiVGhlIFJlZ0V4cC5w
cm90b3R5cGUuaWdub3JlQ2FzZSBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEgUmVnRXhw
IG9iamVjdCIpKTsKICAgICB9CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVh
bihhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+aWdub3JlQ2FzZSgpKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+aWdu
b3JlQ2FzZSgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJv
dG9HZXR0ZXJNdWx0aWxpbmUoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjg1LDEzICsyOTAsMTQgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlck11bHRpbGluZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAo
VU5MSUtFTFkoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSkg
ewotICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBQcm90b3R5cGU6Omlu
Zm8oKSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2
bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpIHsKKyAgICAgICAgaWYg
KHRoaXNWYWx1ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5cGU+KHZtKSkKICAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlRoZSBSZWdFeHAucHJvdG90
eXBlLm11bHRpbGluZSBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEgUmVnRXhwIG9iamVj
dCIpKTsKICAgICB9CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1Jl
Z0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+bXVsdGlsaW5lKCkpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT5tdWx0aWxpbmUo
KSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVy
RG90QWxsKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTMwMCwxMyArMzA2LDE0IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJEb3RBbGwoRXhlY1N0YXRlKiBleGVj
KQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAKICAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmIChVTkxJS0VMWSgh
dGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpKSB7Ci0gICAgICAg
IGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cFByb3RvdHlwZTo6aW5mbygpKSkKKyAg
ICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlzVmFs
dWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkgeworICAgICAgICBpZiAodGhpc1ZhbHVl
LmluaGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4odm0pKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiVGhlIFJlZ0V4cC5wcm90b3R5cGUuZG90QWxs
IGdldHRlciBjYW4gb25seSBiZSBjYWxsZWQgb24gYSBSZWdFeHAgb2JqZWN0IikpOwogICAgIH0K
ICAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1JlZ0V4cE9iamVj
dCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+ZG90QWxsKCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT5kb3RBbGwoKSkpOwogfQogICAgIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclN0aWNreShFeGVj
U3RhdGUqIGV4ZWMpCkBAIC0zMTUsMTMgKzMyMiwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyU3RpY2t5KEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmIChVTkxJS0VMWSghdGhpc1ZhbHVlLmluaGVy
aXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpKSB7Ci0gICAgICAgIGlmICh0aGlzVmFsdWUu
aW5oZXJpdHModm0sIFJlZ0V4cFByb3RvdHlwZTo6aW5mbygpKSkKKyAgICBhdXRvKiByZWdleHAg
PSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChV
TkxJS0VMWSghcmVnZXhwKSkgeworICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzPFJlZ0V4
cFByb3RvdHlwZT4odm0pKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUs
IEFTQ0lJTGl0ZXJhbCgiVGhlIFJlZ0V4cC5wcm90b3R5cGUuc3RpY2t5IGdldHRlciBjYW4gb25s
eSBiZSBjYWxsZWQgb24gYSBSZWdFeHAgb2JqZWN0IikpOwogICAgIH0KICAgICAKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5y
ZWdFeHAoKS0+c3RpY2t5KCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVh
bihyZWdleHAtPnJlZ0V4cCgpLT5zdGlja3koKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyVW5pY29kZShFeGVjU3RhdGUqIGV4ZWMpCkBAIC0z
MzAsMTMgKzMzOCwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
R2V0dGVyVW5pY29kZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKLSAgICBpZiAoVU5MSUtFTFkoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2Jq
ZWN0OjppbmZvKCkpKSkgewotICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdF
eHBQcm90b3R5cGU6OmluZm8oKSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxS
ZWdFeHBPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkp
IHsKKyAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5cGU+KHZtKSkK
ICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlRo
ZSBSZWdFeHAucHJvdG90eXBlLnVuaWNvZGUgZ2V0dGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbiBh
IFJlZ0V4cCBvYmplY3QiKSk7CiAgICAgfQogICAgIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpLT51bmljb2Rl
KCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4
cCgpLT51bmljb2RlKCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdF
eHBQcm90b0dldHRlckZsYWdzKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTQ2NiwxMyArNDc1LDE0IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2UoRXhl
Y1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
IAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKFVO
TElLRUxZKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkpIHsK
LSAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwUHJvdG90eXBlOjppbmZv
KCkpKQorICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odm0s
IHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKSB7CisgICAgICAgIGlmICh0
aGlzVmFsdWUuaW5oZXJpdHM8UmVnRXhwUHJvdG90eXBlPih2bSkpCiAgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiKD86KSIpKSk7
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVy
YWwoIlRoZSBSZWdFeHAucHJvdG90eXBlLnNvdXJjZSBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVk
IG9uIGEgUmVnRXhwIG9iamVjdCIpKTsKICAgICB9CiAKLSAgICBTdHJpbmcgcGF0dGVybiA9IGFz
UmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpLT5wYXR0ZXJuKCk7CisgICAgU3RyaW5n
IHBhdHRlcm4gPSByZWdleHAtPnJlZ0V4cCgpLT5wYXR0ZXJuKCk7CiAgICAgaWYgKHBhdHRlcm4u
aXM4Qml0KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVnRXhwUHJvdG9HZXR0
ZXJTb3VyY2VJbnRlcm5hbChleGVjLCBwYXR0ZXJuLCBwYXR0ZXJuLmNoYXJhY3RlcnM4KCksIHBh
dHRlcm4ubGVuZ3RoKCkpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlZ0V4cFByb3Rv
R2V0dGVyU291cmNlSW50ZXJuYWwoZXhlYywgcGF0dGVybiwgcGF0dGVybi5jaGFyYWN0ZXJzMTYo
KSwgcGF0dGVybi5sZW5ndGgoKSkpOwpAQCAtNDgzLDcgKzQ5Myw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jU2VhcmNoRmFzdChFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
LSAgICBSZWdFeHAqIHJlZ0V4cCA9IGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgp
OworICAgIFJlZ0V4cCogcmVnRXhwID0ganNDYXN0PFJlZ0V4cE9iamVjdCo+KHRoaXNWYWx1ZSkt
PnJlZ0V4cCgpOwogCiAgICAgSlNTdHJpbmcqIHN0cmluZyA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApLnRvU3RyaW5nKGV4ZWMpOwogICAgIFN0cmluZyBzID0gc3RyaW5nLT52YWx1ZShleGVj
KTsKQEAgLTU5MCw3ICs2MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4
cFByb3RvRnVuY1NwbGl0RmFzdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgLy8gMS4gW2hhbmRsZWQg
YnkgSlMgYnVpbHRpbl0gTGV0IHJ4IGJlIHRoZSB0aGlzIHZhbHVlLgogICAgIC8vIDIuIFtoYW5k
bGVkIGJ5IEpTIGJ1aWx0aW5dIElmIFR5cGUocngpIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlw
ZUVycm9yIGV4Y2VwdGlvbi4KICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwotICAgIFJlZ0V4cCogcmVnZXhwID0gYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+cmVn
RXhwKCk7CisgICAgUmVnRXhwKiByZWdleHAgPSBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odGhpc1Zh
bHVlKS0+cmVnRXhwKCk7CiAKICAgICAvLyAzLiBbaGFuZGxlZCBieSBKUyBidWlsdGluXSBMZXQg
UyBiZSA/IFRvU3RyaW5nKHN0cmluZykuCiAgICAgSlNTdHJpbmcqIGlucHV0U3RyaW5nID0gZXhl
Yy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IDI0ZmZmMDBhZDU3ODQ4YjMzZGRiNzBmMzkwMWU5
ZmUxNGMwZjc4ODAuLjUwNmM0YzViNGQwYTEyZDk1YmQ4OWY2ZjJiNjI3ZDZmNzdhMDg4MGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC03MSwx
NCArNzEsNiBAQCBjbGFzcyBTdHJpbmdPYmplY3QgOiBwdWJsaWMgSlNXcmFwcGVyT2JqZWN0IHsK
ICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmdPYmplY3QoVk0mLCBTdHJ1Y3R1cmUqKTsKIH07
CiAKLVN0cmluZ09iamVjdCogYXNTdHJpbmdPYmplY3QoSlNWYWx1ZSk7Ci0KLWlubGluZSBTdHJp
bmdPYmplY3QqIGFzU3RyaW5nT2JqZWN0KEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQVNTRVJUKGFz
T2JqZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBTdHJpbmdP
YmplY3Q6OmluZm8oKSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxTdHJpbmdPYmplY3QqPihh
c09iamVjdCh2YWx1ZSkpOwotfQotCiBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmdPYmplY3QqIGNv
bnN0cnVjdFN0cmluZyhWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiAKIC8vIEhlbHBl
ciBmb3IgcHJvZHVjaW5nIGEgSlNTdHJpbmcgZm9yICdzdHJpbmcnLCB3aGVyZSAnc3RyaW5nJyB3
YXMgYmVlbiBwcm9kdWNlZCBieQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggNmU0MWVjN2IzODM4NzhjYTEwNmEyM2EyMjY2NjQ4
MTE3NGE2NmM4OS4uYTBkMzYwMTdkZjQ2OTE3MmJmMTNlNjE5ZDk4MmJhMzZkMTgxNDgwZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
CkBAIC01MzMsNyArNTMzLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNTdHJpbmcqIHJlcGxh
Y2VVc2luZ1JlZ0V4cFNlYXJjaCgKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZSA9IHN0cmluZy0+
dmFsdWUoZXhlYyk7CiAgICAgdW5zaWduZWQgc291cmNlTGVuID0gc291cmNlLmxlbmd0aCgpOwog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIFJlZ0V4cE9iamVj
dCogcmVnRXhwT2JqZWN0ID0gYXNSZWdFeHBPYmplY3Qoc2VhcmNoVmFsdWUpOworICAgIFJlZ0V4
cE9iamVjdCogcmVnRXhwT2JqZWN0ID0ganNDYXN0PFJlZ0V4cE9iamVjdCo+KHNlYXJjaFZhbHVl
KTsKICAgICBSZWdFeHAqIHJlZ0V4cCA9IHJlZ0V4cE9iamVjdC0+cmVnRXhwKCk7CiAgICAgYm9v
bCBnbG9iYWwgPSByZWdFeHAtPmdsb2JhbCgpOwogICAgIGJvb2wgaGFzTmFtZWRDYXB0dXJlcyA9
IHJlZ0V4cC0+aGFzTmFtZWRDYXB0dXJlcygpOwpAQCAtOTU0LDcgKzk1NCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyKEV4ZWNT
dGF0ZSogZXhlYykKIEFMV0FZU19JTkxJTkUgSlNTdHJpbmcqIHJlcGxhY2UoCiAgICAgVk0mIHZt
LCBFeGVjU3RhdGUqIGV4ZWMsIEpTU3RyaW5nKiBzdHJpbmcsIEpTVmFsdWUgc2VhcmNoVmFsdWUs
IEpTVmFsdWUgcmVwbGFjZVZhbHVlKQogewotICAgIGlmIChzZWFyY2hWYWx1ZS5pbmhlcml0cyh2
bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKQorICAgIGlmIChzZWFyY2hWYWx1ZS5pbmhlcml0czxS
ZWdFeHBPYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIHJlcGxhY2VVc2luZ1JlZ0V4cFNlYXJj
aCh2bSwgZXhlYywgc3RyaW5nLCBzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKTsKICAgICByZXR1
cm4gcmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoKHZtLCBleGVjLCBzdHJpbmcsIHNlYXJjaFZhbHVl
LCByZXBsYWNlVmFsdWUpOwogfQpAQCAtOTgzLDcgKzk4Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhwKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
IAogICAgIEpTVmFsdWUgc2VhcmNoVmFsdWUgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBpZiAo
IXNlYXJjaFZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpCisgICAgaWYg
KCFzZWFyY2hWYWx1ZS5pbmhlcml0czxSZWdFeHBPYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAogICAgIHNjb3BlLnJlbGVhc2UoKTsK
QEAgLTEwMjUsOCArMTAyNSw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5n
UHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICh0aGlzVmFsdWUuaXNT
dHJpbmcoKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpOwogCi0g
ICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgU3RyaW5nT2JqZWN0OjppbmZvKCkpKQotICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzU3RyaW5nT2JqZWN0KHRoaXNWYWx1ZSktPmlu
dGVybmFsVmFsdWUoKSk7CisgICAgYXV0byogc3RyaW5nT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxT
dHJpbmdPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoc3RyaW5nT2JqZWN0KQorICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHN0cmluZ09iamVjdC0+aW50ZXJuYWxWYWx1ZSgp
KTsKIAogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCmluZGV4
IGQxNjY2MTRkMWNiODQ0NTk3ZWE4OGVkNTY0YzNlMzk2YzVhMTgxMmUuLjNkNzk4YzZkY2U1ZWJi
YTI1ODEyZmM0MGEyODFiNzZiNDUxYmZmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcApAQCAtODUsNyArODUsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbFByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBTeW1ib2xUb1N0cmluZ1R5cGVFcnJv
cik7CiAgICAgICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gYXNPYmplY3QodGhpc1ZhbHVlKTsK
LSAgICAgICAgaWYgKCF0aGlzT2JqZWN0LT5pbmhlcml0cyh2bSwgU3ltYm9sT2JqZWN0OjppbmZv
KCkpKQorICAgICAgICBpZiAoIXRoaXNPYmplY3QtPmluaGVyaXRzPFN5bWJvbE9iamVjdD4odm0p
KQogICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIFN5bWJv
bFRvU3RyaW5nVHlwZUVycm9yKTsKICAgICAgICAgc3ltYm9sID0gYXNTeW1ib2woanNDYXN0PFN5
bWJvbE9iamVjdCo+KHRoaXNPYmplY3QpLT5pbnRlcm5hbFZhbHVlKCkpOwogICAgIH0KQEAgLTEw
Niw3ICsxMDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbFByb3RvRnVu
Y1ZhbHVlT2YoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBzY29wZSwgU3ltYm9sVmFsdWVPZlR5cGVFcnJvcik7CiAKICAgICBKU09iamVjdCog
dGhpc09iamVjdCA9IGFzT2JqZWN0KHRoaXNWYWx1ZSk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0LT5p
bmhlcml0cyh2bSwgU3ltYm9sT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghdGhpc09iamVjdC0+
aW5oZXJpdHM8U3ltYm9sT2JqZWN0Pih2bSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMsIHNjb3BlLCBTeW1ib2xWYWx1ZU9mVHlwZUVycm9yKTsKIAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNDYXN0PFN5bWJvbE9iamVjdCo+KHRoaXNPYmplY3QpLT5pbnRlcm5h
bFZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9s
bGFyVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmlu
ZGV4IDllMDhhZmVlMjVkYzgxYTE5NGU5YzA0NTk4YWJlY2ZhZDdkY2UwMGEuLjQyYTliNWY5NTI5
NzQ2MWYwY2IzNzM0Y2ViYWUzM2FkMWU2NzZjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvSlNEb2xsYXJWTS5jcHAKQEAgLTk0OSw3ICs5NDksNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgY3VzdG9tR2V0QWNjZXNzb3IoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcgogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0VmFsdWUoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBS
RUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUoc2xvdFZhbHVlKS5pbmhlcml0cyhleGVjLT52
bSgpLCBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI6OmluZm8oKSkpOworICAgIFJFTEVBU0VfQVNT
RVJUKEpTVmFsdWU6OmRlY29kZShzbG90VmFsdWUpLmluaGVyaXRzPEpTVGVzdEN1c3RvbUdldHRl
clNldHRlcj4oZXhlYy0+dm0oKSkpOwogICAgIC8vIFBhc3NlZCBwcm9wZXJ0eSBob2xkZXIuCiAg
ICAgcmV0dXJuIHNsb3RWYWx1ZTsKIH0KQEAgLTk3MSw3ICs5NzEsNyBAQCBzdGF0aWMgYm9vbCBj
dXN0b21TZXRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RWYWx1ZSwg
RW5jb2RlZEpTVgogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAKLSAgICBSRUxFQVNFX0FT
U0VSVChKU1ZhbHVlOjpkZWNvZGUoc2xvdFZhbHVlKS5pbmhlcml0cyhleGVjLT52bSgpLCBKU1Rl
c3RDdXN0b21HZXR0ZXJTZXR0ZXI6OmluZm8oKSkpOworICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFs
dWU6OmRlY29kZShzbG90VmFsdWUpLmluaGVyaXRzPEpTVGVzdEN1c3RvbUdldHRlclNldHRlcj4o
ZXhlYy0+dm0oKSkpOwogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwogICAgIFJFTEVBU0VfQVNTRVJUKHZhbHVlLmlzT2JqZWN0KCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmgK
aW5kZXggMTQ0ODdmMDFjNmIyZGRkZWM1ZGM0MGUwNTQ4NjE2ZTQ3M2YwMjRhNy4uYWZjNWUxNjZj
MWJjZGQzOGRlMGZlNmMzNzI5YjY0MTE4NDM1ODA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SGVscGVycy5oCkBAIC05NCwxMiArOTQs
MTIgQEAgQUxXQVlTX0lOTElORSBWZWN0b3I8dWludDhfdD4gY3JlYXRlU291cmNlQnVmZmVyRnJv
bVZhbHVlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGUKIAogQUxXQVlTX0lOTElORSBib29sIGlzV2Vi
QXNzZW1ibHlIb3N0RnVuY3Rpb24oVk0mIHZtLCBKU09iamVjdCogb2JqZWN0LCBXZWJBc3NlbWJs
eUZ1bmN0aW9uKiYgd2FzbUZ1bmN0aW9uLCBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiomIHdh
c21XcmFwcGVyRnVuY3Rpb24pCiB7Ci0gICAgaWYgKG9iamVjdC0+aW5oZXJpdHModm0sIFdlYkFz
c2VtYmx5RnVuY3Rpb246OmluZm8oKSkpIHsKKyAgICBpZiAob2JqZWN0LT5pbmhlcml0czxXZWJB
c3NlbWJseUZ1bmN0aW9uPih2bSkpIHsKICAgICAgICAgd2FzbUZ1bmN0aW9uID0ganNDYXN0PFdl
YkFzc2VtYmx5RnVuY3Rpb24qPihvYmplY3QpOwogICAgICAgICB3YXNtV3JhcHBlckZ1bmN0aW9u
ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGlmIChvYmplY3Qt
PmluaGVyaXRzKHZtLCBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkgeworICAg
IGlmIChvYmplY3QtPmluaGVyaXRzPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uPih2bSkpIHsK
ICAgICAgICAgd2FzbVdyYXBwZXJGdW5jdGlvbiA9IGpzQ2FzdDxXZWJBc3NlbWJseVdyYXBwZXJG
dW5jdGlvbio+KG9iamVjdCk7CiAgICAgICAgIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7CiAgICAg
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwCmluZGV4IDUyYzVkYTJiZDA5
NmMzYmNlZTJjODE0ZjYyZDM5NWZmOWFiOTM3MDQuLjdhMWFhMzgyOTYyNTMyZGRkYjRjMDUwZTA4
YTI0ZmMzNmQ0ZDIxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHAKQEAgLTYwLDcgKzYwLDcg
QEAgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OldlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9u
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGcKIAogV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24q
IFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogZnVuY3Rpb24sIHVuc2lnbmVkIGltcG9ydEluZGV4
LCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpTaWduYXR1cmVJbmRleCBz
aWduYXR1cmVJbmRleCkKIHsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFmdW5jdGlvbi0+aW5o
ZXJpdHModm0sIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjppbmZvKCkpLCAiV2Ugc2hvdWxk
IG5ldmVyIGRvdWJsZSB3cmFwIGEgd3JhcHBlciBmdW5jdGlvbi4iKTsKKyAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKCFmdW5jdGlvbi0+aW5oZXJpdHM8V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24+
KHZtKSwgIldlIHNob3VsZCBuZXZlciBkb3VibGUgd3JhcCBhIHdyYXBwZXIgZnVuY3Rpb24uIik7
CiAgICAgU3RyaW5nIG5hbWUgPSAiIjsKICAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxl
ID0gdm0uZ2V0SG9zdEZ1bmN0aW9uKGNhbGxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiwgTm9J
bnRyaW5zaWMsIGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCBudWxscHRyLCBuYW1lKTsK
ICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogcmVzdWx0ID0gbmV3IChOb3ROdWxsLCBh
bGxvY2F0ZUNlbGw8V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24+KHZtLmhlYXApKSBXZWJBc3Nl
bWJseVdyYXBwZXJGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPndlYkFz
c2VtYmx5V3JhcHBlckZ1bmN0aW9uU3RydWN0dXJlKCksIFdhc206OkNhbGxhYmxlRnVuY3Rpb24g
eyBzaWduYXR1cmVJbmRleCwgJmluc3RhbmNlLT5pbnN0YW5jZSgpLmltcG9ydEZ1bmN0aW9uSW5m
byhpbXBvcnRJbmRleCktPndhc21Ub0VtYmVkZGVyU3R1YkV4ZWN1dGFibGVBZGRyZXNzIH0gKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRp
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5j
cHAKaW5kZXggZDc4ZTIyMGIyMDVkMzBlY2IwMzMzMGNkNjYwN2MyNDA3NmNlNGNhMy4uN2RkYTFm
YTY2MmU0ZDg1NDU1NjQ2MGMxOWU2MTVhM2IwMmI5YTJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKQEAgLTE1MSw3ICsxNTEs
NyBAQCBzdGF0aWMgUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKEV4ZWNTdGF0
ZSYgZXhlYywgSlNWYWx1ZSB2YWx1ZSwgVmVjdAogICAgIGlmICh2YWx1ZS5pc1N0cmluZygpKQog
ICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJpbmcoYXNTdHJpbmcodmFsdWUpLT52YWx1
ZSgmZXhlYykpOwogCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6Omlu
Zm8oKSkpIHsKKyAgICBpZiAodmFsdWUuaW5oZXJpdHM8RGF0ZUluc3RhbmNlPih2bSkpIHsKICAg
ICAgICAgYXV0byBkYXRlVmFsdWUgPSB2YWx1ZVRvRGF0ZShleGVjLCB2YWx1ZSk7CiAgICAgICAg
IGlmICghc3RkOjppc25hbihkYXRlVmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIElEQktleTo6
Y3JlYXRlRGF0ZShkYXRlVmFsdWUpOwpAQCAtMTU5LDggKzE1OSw3IEBAIHN0YXRpYyBSZWZQdHI8
SURCS2V5PiBjcmVhdGVJREJLZXlGcm9tVmFsdWUoRXhlY1N0YXRlJiBleGVjLCBKU1ZhbHVlIHZh
bHVlLCBWZWN0CiAKICAgICBpZiAodmFsdWUuaXNPYmplY3QoKSkgewogICAgICAgICBKU09iamVj
dCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwotICAgICAgICBpZiAoaXNKU0FycmF5KG9iamVj
dCkgfHwgb2JqZWN0LT5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSkgewotICAgICAgICAg
ICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5KG9iamVjdCk7CisgICAgICAgIGlmIChhdXRvKiBh
cnJheSA9IGpzRHluYW1pY0Nhc3Q8SlNBcnJheSo+KHZtLCBvYmplY3QpKSB7CiAgICAgICAgICAg
ICBzaXplX3QgbGVuZ3RoID0gYXJyYXktPmxlbmd0aCgpOwogCiAgICAgICAgICAgICBpZiAoc3Rh
Y2suY29udGFpbnMoYXJyYXkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Db252ZXJ0RGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUNvbnZlcnREYXRlLmNwcAppbmRleCA4MGI1M2U4MjE3YTIzZDJiZTIzNTE3Yzc3N2M0NTM2NzFj
M2JlZjVkLi5jMzEyNTA5MDhlMjViYTVkNjAyZWFiM2UwMjlmNmI2OWIxMmRkYjUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcApAQCAtNDAs
NyArNDAsNyBAQCBkb3VibGUgdmFsdWVUb0RhdGUoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkKICAgICAgICAgcmV0dXJuIHZhbHVl
LmFzTnVtYmVyKCk7Ci0gICAgaWYgKCF2YWx1ZS5pbmhlcml0cyhzdGF0ZS52bSgpLCBEYXRlSW5z
dGFuY2U6OmluZm8oKSkpCisgICAgaWYgKCF2YWx1ZS5pbmhlcml0czxEYXRlSW5zdGFuY2U+KHN0
YXRlLnZtKCkpKQogICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojpx
dWlldF9OYU4oKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGF0ZUluc3RhbmNlKj4odmFsdWUu
dG9PYmplY3QoJnN0YXRlKSktPmludGVybmFsTnVtYmVyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggYmNmNjg3MDE3ZDY0
ZjYzODNlYmJlZjI4MmM3ZjQzZDRmMmFkY2RlNC4uN2EzNTQ4NDA3YjI0NTAzZmNkNzRkMzlhM2M3
ODk1YjJjMDA5NDUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01HbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmNwcApAQCAtMTk1LDkgKzE5NSw5IEBAIHZvaWQgSlNET01HbG9iYWxPYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNPYmplY3QqIHRoaXNWYWx1ZSkKIAogU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogSlNET01HbG9iYWxPYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdAogewotICAgIGlmIChpbmhlcml0cyh2bSgpLCBKU0RPTVdpbmRvd0Jhc2U6Omlu
Zm8oKSkpCisgICAgaWYgKGluaGVyaXRzPEpTRE9NV2luZG93QmFzZT4odm0oKSkpCiAgICAgICAg
IHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNET01XaW5kb3dCYXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoaW5oZXJpdHModm0oKSwgSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2U6OmluZm8oKSkpCisgICAgaWYgKGluaGVyaXRzPEpTV29ya2VyR2xvYmFsU2NvcGVCYXNl
Pih2bSgpKSkKICAgICAgICAgcmV0dXJuIGpzQ2FzdDxjb25zdCBKU1dvcmtlckdsb2JhbFNjb3Bl
QmFzZSo+KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgZGF0YUxvZygiVW5l
eHBlY3RlZCBnbG9iYWwgb2JqZWN0OiAiLCBKU1ZhbHVlKHRoaXMpLCAiXG4iKTsKICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IGNmN2Q5MDk3NDg2Nzk0NDYwMzYwYTU0ZDBj
ZGVkNmI2ZThmZTU4MjQuLmU1ODlhZDY0Y2MzOTQwZjkyMDhhZTU4OGQ0MjFhZGEwOWNmYzFlYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5j
cHAKQEAgLTQ1OSw5ICs0NTksOSBAQCBET01XaW5kb3cqIEpTRE9NV2luZG93Ojp0b1dyYXBwZWQo
Vk0mIHZtLCBKU1ZhbHVlIHZhbHVlKQogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVl
KTsKLSAgICBpZiAob2JqZWN0LT5pbmhlcml0cyh2bSwgSlNET01XaW5kb3c6OmluZm8oKSkpCisg
ICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNET01XaW5kb3c+KHZtKSkKICAgICAgICAgcmV0dXJu
ICZqc0Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpLT53cmFwcGVkKCk7Ci0gICAgaWYgKG9iamVj
dC0+aW5oZXJpdHModm0sIEpTRE9NV2luZG93UHJveHk6OmluZm8oKSkpCisgICAgaWYgKG9iamVj
dC0+aW5oZXJpdHM8SlNET01XaW5kb3dQcm94eT4odm0pKQogICAgICAgICByZXR1cm4gJmpzQ2Fz
dDxKU0RPTVdpbmRvd1Byb3h5Kj4ob2JqZWN0KS0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxs
cHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRh
cmdldEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0
Q3VzdG9tLmNwcAppbmRleCBmNGEwMjk0ZmY4ZThlNTcxZDQ1NTY1MTE0OTM5ZWRhMjEwZGM4Zjc0
Li4wM2I3YWUwNzE4NDFjMjVlNzIyMzRjODRjZTYwMDU0YzY1MWY3YjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcApAQCAtNTcs
NyArNTcsNyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFdmVudFRhcmdldCYgdGFyZwogI3VuZGVmIFRSWV9UT19XUkFQX1dJ
VEhfSU5URVJGQUNFCiAKICNkZWZpbmUgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFDRShpbnRl
cmZhY2VOYW1lKSBcCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKUyMjaW50ZXJmYWNlTmFt
ZTo6aW5mbygpKSkgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICh2YWx1ZS5pbmhlcml0
czxKUyMjaW50ZXJmYWNlTmFtZT4odm0pKSAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAg
IHJldHVybiAmanNDYXN0PEpTIyNpbnRlcmZhY2VOYW1lKj4oYXNPYmplY3QodmFsdWUpKS0+d3Jh
cHBlZCgpOwogCiBFdmVudFRhcmdldCogSlNFdmVudFRhcmdldDo6dG9XcmFwcGVkKFZNJiB2bSwg
SlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20u
Y3BwCmluZGV4IDlmMzZlNzQ1ODM5NDYwMzQyYjczYjQ5YjAwM2EzODQ0NzE1Y2U0NjAuLjA5YTcw
ZjIyZTg4Y2YxY2I5ODdhZTdkNzE4MWNmZTI1OTUzNTk0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIGJvb2wgSlNO
b2RlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4gaGFuZGxlLCB2CiAKIEpTU2NvcGUqIEpTTm9kZTo6cHVzaEV2ZW50SGFuZGxlclNjb3Bl
KEV4ZWNTdGF0ZSogZXhlYywgSlNTY29wZSogbm9kZSkgY29uc3QKIHsKLSAgICBpZiAoaW5oZXJp
dHMoZXhlYy0+dm0oKSwgSlNIVE1MRWxlbWVudDo6aW5mbygpKSkKKyAgICBpZiAoaW5oZXJpdHM8
SlNIVE1MRWxlbWVudD4oZXhlYy0+dm0oKSkpCiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3Qg
SlNIVE1MRWxlbWVudCo+KHRoaXMpLT5wdXNoRXZlbnRIYW5kbGVyU2NvcGUoZXhlYywgbm9kZSk7
CiAgICAgcmV0dXJuIG5vZGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKaW5kZXggMGRhNTEyOGZjZTRiNjFmNmE3
ZDczNGUxMTgyY2UzODJiZjlmNTVjMS4uMTllOTJiNjI3OTk0NTJjZTNjYzZhNjViZjk0OWMyNWE3
YTE4MGM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aE5T
UmVzb2x2ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBh
dGhOU1Jlc29sdmVyQ3VzdG9tLmNwcApAQCAtMzUsNyArMzUsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiBKU1hQYXRoTlNSZXNvbHZlcjo6dG9XcmFw
cGVkKFZNJiB2bSwgRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAo
dmFsdWUuaW5oZXJpdHModm0sIEpTWFBhdGhOU1Jlc29sdmVyOjppbmZvKCkpKQorICAgIGlmICh2
YWx1ZS5pbmhlcml0czxKU1hQYXRoTlNSZXNvbHZlcj4odm0pKQogICAgICAgICByZXR1cm4gJmpz
Q2FzdDxKU1hQYXRoTlNSZXNvbHZlcio+KGFzT2JqZWN0KHZhbHVlKSktPndyYXBwZWQoKTsKIAog
ICAgIGF1dG8gcmVzdWx0ID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZShzdGF0ZSwg
dmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3Rh
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwCmluZGV4
IGU0ZTYyYTFmNmEyMDIzNTIwNDY4ZDliODdmMzMzOWVjMTIwZTQ1ZjUuLjhjMjljNzhlYWJlZGY2
Yjc2MGFlMWJjYzFhNjQzYjlkM2ExMGNmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRTdGF0ZS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgRE9NV2luZG93KiBkb21XaW5kb3dG
cm9tRXhlY1N0YXRlKEpTQzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSkKIHsKICAgICBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzY3JpcHRTdGF0ZS0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpOwogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGlmICgh
Z2xvYmFsT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNET01XaW5kb3dCYXNlOjppbmZvKCkpKQorICAg
IGlmICghZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuICZKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jh
c2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCk7CiB9CkBAIC02Niw3ICs2Niw3IEBAIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKEpT
Qzo6RXhlY1N0YXRlKiBzY3JpCiB7CiAgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gc2NyaXB0U3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBKU0M6OlZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdC0+aW5oZXJpdHMo
dm0sIEpTRE9NR2xvYmFsT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghZ2xvYmFsT2JqZWN0LT5p
bmhlcml0czxKU0RPTUdsb2JhbE9iamVjdD4odm0pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICByZXR1cm4gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3Qp
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCBiODU2OWEzZDEzNmUz
MGY0M2IyOTMyZmM1NWJjY2IzZDZkYjU0M2NhLi41MzJjNzE3ZGM4N2UwNmQ3ZTU4MzM1YTAzYWE4
ZDVkZmZkY2NiNjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTYwNCw3ICs2MDQsNyBAQCBjbGFzcyBDbG9uZVNl
cmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09i
amVjdCh2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBpc0pTQXJyYXkob2JqZWN0KSB8fCBvYmplY3Qt
PmluaGVyaXRzKHZtLCBKU0FycmF5OjppbmZvKCkpOworICAgICAgICByZXR1cm4gb2JqZWN0LT5p
bmhlcml0czxKU0FycmF5Pih2bSk7CiAgICAgfQogCiAgICAgYm9vbCBpc01hcChWTSYgdm0sIEpT
VmFsdWUgdmFsdWUpCkBAIC02MTIsMTQgKzYxMiwxNCBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIg
OiBDbG9uZUJhc2UgewogICAgICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1
ZSk7Ci0gICAgICAgIHJldHVybiBvYmplY3QtPmluaGVyaXRzKHZtLCBKU01hcDo6aW5mbygpKTsK
KyAgICAgICAgcmV0dXJuIG9iamVjdC0+aW5oZXJpdHM8SlNNYXA+KHZtKTsKICAgICB9CiAgICAg
Ym9vbCBpc1NldChWTSYgdm0sIEpTVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBpZiAoIXZh
bHVlLmlzT2JqZWN0KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIEpTT2Jq
ZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBvYmplY3QtPmlu
aGVyaXRzKHZtLCBKU1NldDo6aW5mbygpKTsKKyAgICAgICAgcmV0dXJuIG9iamVjdC0+aW5oZXJp
dHM8SlNTZXQ+KHZtKTsKICAgICB9CiAKICAgICBib29sIGNoZWNrRm9yRHVwbGljYXRlKEpTT2Jq
ZWN0KiBvYmplY3QpCkBAIC03NTQsMjUgKzc1NCwyNSBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIg
OiBDbG9uZUJhc2UgewogICAgIHsKICAgICAgICAgVk0mIHZtID0gbV9leGVjLT52bSgpOwogICAg
ICAgICB3cml0ZShBcnJheUJ1ZmZlclZpZXdUYWcpOwotICAgICAgICBpZiAob2JqLT5pbmhlcml0
cyh2bSwgSlNEYXRhVmlldzo6aW5mbygpKSkKKyAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNE
YXRhVmlldz4odm0pKQogICAgICAgICAgICAgd3JpdGUoRGF0YVZpZXdUYWcpOwotICAgICAgICBl
bHNlIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU1VpbnQ4Q2xhbXBlZEFycmF5OjppbmZvKCkpKQor
ICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzPEpTVWludDhDbGFtcGVkQXJyYXk+KHZtKSkK
ICAgICAgICAgICAgIHdyaXRlKFVpbnQ4Q2xhbXBlZEFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBp
ZiAob2JqLT5pbmhlcml0cyh2bSwgSlNJbnQ4QXJyYXk6OmluZm8oKSkpCisgICAgICAgIGVsc2Ug
aWYgKG9iai0+aW5oZXJpdHM8SlNJbnQ4QXJyYXk+KHZtKSkKICAgICAgICAgICAgIHdyaXRlKElu
dDhBcnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTVWludDhB
cnJheTo6aW5mbygpKSkKKyAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU1VpbnQ4QXJy
YXk+KHZtKSkKICAgICAgICAgICAgIHdyaXRlKFVpbnQ4QXJyYXlUYWcpOwotICAgICAgICBlbHNl
IGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0ludDE2QXJyYXk6OmluZm8oKSkpCisgICAgICAgIGVs
c2UgaWYgKG9iai0+aW5oZXJpdHM8SlNJbnQxNkFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0
ZShJbnQxNkFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNV
aW50MTZBcnJheTo6aW5mbygpKSkKKyAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU1Vp
bnQxNkFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShVaW50MTZBcnJheVRhZyk7Ci0gICAg
ICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTSW50MzJBcnJheTo6aW5mbygpKSkKKyAg
ICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU0ludDMyQXJyYXk+KHZtKSkKICAgICAgICAg
ICAgIHdyaXRlKEludDMyQXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRz
KHZtLCBKU1VpbnQzMkFycmF5OjppbmZvKCkpKQorICAgICAgICBlbHNlIGlmIChvYmotPmluaGVy
aXRzPEpTVWludDMyQXJyYXk+KHZtKSkKICAgICAgICAgICAgIHdyaXRlKFVpbnQzMkFycmF5VGFn
KTsKLSAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNGbG9hdDMyQXJyYXk6Omlu
Zm8oKSkpCisgICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHM8SlNGbG9hdDMyQXJyYXk+KHZt
KSkKICAgICAgICAgICAgIHdyaXRlKEZsb2F0MzJBcnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYg
KG9iai0+aW5oZXJpdHModm0sIEpTRmxvYXQ2NEFycmF5OjppbmZvKCkpKQorICAgICAgICBlbHNl
IGlmIChvYmotPmluaGVyaXRzPEpTRmxvYXQ2NEFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0
ZShGbG9hdDY0QXJyYXlUYWcpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC04MDAsNyArODAwLDcgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNl
IHsKICAgICB2b2lkIGR1bXBET01Qb2ludChKU09iamVjdCogb2JqKQogICAgIHsKICAgICAgICAg
Vk0mIHZtID0gbV9leGVjLT52bSgpOwotICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNE
T01Qb2ludDo6aW5mbygpKSkKKyAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNET01Qb2ludD4o
dm0pKQogICAgICAgICAgICAgd3JpdGUoRE9NUG9pbnRUYWcpOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICB3cml0ZShET01Qb2ludFJlYWRPbmx5VGFnKTsKQEAgLTgxMSw3ICs4MTEsNyBAQCBj
bGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgIHZvaWQgZHVtcERPTVJlY3Qo
SlNPYmplY3QqIG9iaikKICAgICB7CiAgICAgICAgIFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKLSAg
ICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9NUmVjdDo6aW5mbygpKSkKKyAgICAgICAg
aWYgKG9iai0+aW5oZXJpdHM8SlNET01SZWN0Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShET01S
ZWN0VGFnKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgd3JpdGUoRE9NUmVjdFJlYWRPbmx5
VGFnKTsKQEAgLTgyNiw3ICs4MjYsNyBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJh
c2UgewogICAgIHZvaWQgZHVtcERPTU1hdHJpeChKU09iamVjdCogb2JqKQogICAgIHsKICAgICAg
ICAgVk0mIHZtID0gbV9leGVjLT52bSgpOwotICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwg
SlNET01NYXRyaXg6OmluZm8oKSkpCisgICAgICAgIGlmIChvYmotPmluaGVyaXRzPEpTRE9NTWF0
cml4Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShET01NYXRyaXhUYWcpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICB3cml0ZShET01NYXRyaXhSZWFkT25seVRhZyk7CkBAIC04OTEsMzYgKzg5
MSwzNCBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICB9CiAK
ICAgICAgICAgVk0mIHZtID0gbV9leGVjLT52bSgpOwotICAgICAgICBpZiAodmFsdWUuaXNPYmpl
Y3QoKSAmJiBhc09iamVjdCh2YWx1ZSktPmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8o
KSkpIHsKLSAgICAgICAgICAgIHdyaXRlKERhdGVUYWcpOwotICAgICAgICAgICAgd3JpdGUoYXNE
YXRlSW5zdGFuY2UodmFsdWUpLT5pbnRlcm5hbE51bWJlcigpKTsKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICB9Ci0KICAgICAgICAgaWYgKGlzQXJyYXkodm0sIHZhbHVlKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBpZiAodmFsdWUuaXNPYmplY3QoKSkg
ewogICAgICAgICAgICAgYXV0byogb2JqID0gYXNPYmplY3QodmFsdWUpOwotICAgICAgICAgICAg
aWYgKG9iai0+aW5oZXJpdHModm0sIEJvb2xlYW5PYmplY3Q6OmluZm8oKSkpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoIXN0YXJ0T2JqZWN0SW50ZXJuYWwob2JqKSkgLy8gaGFuZGxlIGR1cGxpY2F0
ZXMKKyAgICAgICAgICAgIGlmIChhdXRvKiBkYXRlT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxEYXRl
SW5zdGFuY2UqPih2bSwgb2JqKSkgeworICAgICAgICAgICAgICAgIHdyaXRlKERhdGVUYWcpOwor
ICAgICAgICAgICAgICAgIHdyaXRlKGRhdGVPYmplY3QtPmludGVybmFsTnVtYmVyKCkpOworICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGF1dG8qIGJvb2xlYW5PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEJvb2xlYW5PYmplY3QqPih2bSwg
b2JqKSkgeworICAgICAgICAgICAgICAgIGlmICghc3RhcnRPYmplY3RJbnRlcm5hbChib29sZWFu
T2JqZWN0KSkgLy8gaGFuZGxlIGR1cGxpY2F0ZXMKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgICAgICAgICAgd3JpdGUoYXNCb29sZWFuT2JqZWN0KHZhbHVlKS0+aW50
ZXJuYWxWYWx1ZSgpLnRvQm9vbGVhbihtX2V4ZWMpID8gVHJ1ZU9iamVjdFRhZyA6IEZhbHNlT2Jq
ZWN0VGFnKTsKKyAgICAgICAgICAgICAgICB3cml0ZShib29sZWFuT2JqZWN0LT5pbnRlcm5hbFZh
bHVlKCkudG9Cb29sZWFuKG1fZXhlYykgPyBUcnVlT2JqZWN0VGFnIDogRmFsc2VPYmplY3RUYWcp
OwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaWYgKG9iai0+aW5oZXJpdHModm0sIFN0cmluZ09iamVjdDo6aW5mbygpKSkgewotICAgICAg
ICAgICAgICAgIGlmICghc3RhcnRPYmplY3RJbnRlcm5hbChvYmopKSAvLyBoYW5kbGUgZHVwbGlj
YXRlcworICAgICAgICAgICAgaWYgKGF1dG8qIHN0cmluZ09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
U3RyaW5nT2JqZWN0Kj4odm0sIG9iaikpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0T2Jq
ZWN0SW50ZXJuYWwoc3RyaW5nT2JqZWN0KSkgLy8gaGFuZGxlIGR1cGxpY2F0ZXMKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IGFz
U3RyaW5nKGFzU3RyaW5nT2JqZWN0KHZhbHVlKS0+aW50ZXJuYWxWYWx1ZSgpKS0+dmFsdWUobV9l
eGVjKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gYXNTdHJpbmcoc3RyaW5nT2JqZWN0
LT5pbnRlcm5hbFZhbHVlKCkpLT52YWx1ZShtX2V4ZWMpOwogICAgICAgICAgICAgICAgIGR1bXBT
dHJpbmdPYmplY3Qoc3RyKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBOdW1iZXJPYmplY3Q6Omlu
Zm8oKSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0T2JqZWN0SW50ZXJuYWwob2JqKSkg
Ly8gaGFuZGxlIGR1cGxpY2F0ZXMKKyAgICAgICAgICAgIGlmIChhdXRvKiBudW1iZXJPYmplY3Qg
PSBqc0R5bmFtaWNDYXN0PE51bWJlck9iamVjdCo+KHZtLCBvYmopKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCFzdGFydE9iamVjdEludGVybmFsKG51bWJlck9iamVjdCkpIC8vIGhhbmRsZSBkdXBs
aWNhdGVzCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAg
IHdyaXRlKE51bWJlck9iamVjdFRhZyk7Ci0gICAgICAgICAgICAgICAgTnVtYmVyT2JqZWN0KiBv
YmogPSBzdGF0aWNfY2FzdDxOdW1iZXJPYmplY3QqPihhc09iamVjdCh2YWx1ZSkpOwotICAgICAg
ICAgICAgICAgIHdyaXRlKG9iai0+aW50ZXJuYWxWYWx1ZSgpLmFzTnVtYmVyKCkpOworICAgICAg
ICAgICAgICAgIHdyaXRlKG51bWJlck9iamVjdC0+aW50ZXJuYWxWYWx1ZSgpLmFzTnVtYmVyKCkp
OwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgaWYgKGF1dG8qIGZpbGUgPSBKU0ZpbGU6OnRvV3JhcHBlZCh2bSwgb2JqKSkgewpAQCAtOTUx
LDggKzk0OSw3IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgICAg
ICAgICAgICAgd3JpdGUoZGF0YS0+ZGF0YSgpLT5kYXRhKCksIGRhdGEtPmRhdGEoKS0+bGVuZ3Ro
KCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkgewotICAg
ICAgICAgICAgICAgIGF1dG8qIHJlZ0V4cCA9IGFzUmVnRXhwT2JqZWN0KG9iaik7CisgICAgICAg
ICAgICBpZiAoYXV0byogcmVnRXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwg
b2JqKSkgewogICAgICAgICAgICAgICAgIGNoYXIgZmxhZ3NbM107CiAgICAgICAgICAgICAgICAg
aW50IGZsYWdDb3VudCA9IDA7CiAgICAgICAgICAgICAgICAgaWYgKHJlZ0V4cC0+cmVnRXhwKCkt
Pmdsb2JhbCgpKQpAQCAtOTY2LDcgKzk2Myw3IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENs
b25lQmFzZSB7CiAgICAgICAgICAgICAgICAgd3JpdGUoU3RyaW5nKGZsYWdzLCBmbGFnQ291bnQp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU01lc3NhZ2VQb3J0OjppbmZvKCkpKSB7CisgICAg
ICAgICAgICBpZiAob2JqLT5pbmhlcml0czxKU01lc3NhZ2VQb3J0Pih2bSkpIHsKICAgICAgICAg
ICAgICAgICBhdXRvIGluZGV4ID0gbV90cmFuc2ZlcnJlZE1lc3NhZ2VQb3J0cy5maW5kKG9iaik7
CiAgICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9IG1fdHJhbnNmZXJyZWRNZXNzYWdlUG9ydHMu
ZW5kKCkpIHsKICAgICAgICAgICAgICAgICAgICAgd3JpdGUoTWVzc2FnZVBvcnRSZWZlcmVuY2VU
YWcpOwpAQCAtMTAwNyw3ICsxMDA0LDcgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVC
YXNlIHsKICAgICAgICAgICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4o
YXJyYXlCdWZmZXItPmRhdGEoKSksIGFycmF5QnVmZmVyLT5ieXRlTGVuZ3RoKCkpOwogICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG9i
ai0+aW5oZXJpdHModm0sIEpTQXJyYXlCdWZmZXJWaWV3OjppbmZvKCkpKSB7CisgICAgICAgICAg
ICBpZiAob2JqLT5pbmhlcml0czxKU0FycmF5QnVmZmVyVmlldz4odm0pKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKGNoZWNrRm9yRHVwbGljYXRlKG9iaikpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAgICAgICAgIGJvb2wgc3VjY2VzcyA9IGR1bXBBcnJheUJ1ZmZl
clZpZXcob2JqLCBjb2RlKTsKQEAgLTEwNTEsMTkgKzEwNDgsMTkgQEAgY2xhc3MgQ2xvbmVTZXJp
YWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgICAgIH0KICNlbmRpZgotICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9N
UG9pbnRSZWFkT25seTo6aW5mbygpKSkgeworICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8
SlNET01Qb2ludFJlYWRPbmx5Pih2bSkpIHsKICAgICAgICAgICAgICAgICBkdW1wRE9NUG9pbnQo
b2JqKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0RPTVJlY3RSZWFkT25seTo6aW5mbygpKSkg
eworICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNET01SZWN0UmVhZE9ubHk+KHZtKSkg
ewogICAgICAgICAgICAgICAgIGR1bXBET01SZWN0KG9iaik7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2
bSwgSlNET01NYXRyaXhSZWFkT25seTo6aW5mbygpKSkgeworICAgICAgICAgICAgaWYgKG9iai0+
aW5oZXJpdHM8SlNET01NYXRyaXhSZWFkT25seT4odm0pKSB7CiAgICAgICAgICAgICAgICAgZHVt
cERPTU1hdHJpeChvYmopOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9NUXVhZDo6aW5mbygp
KSkgeworICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNET01RdWFkPih2bSkpIHsKICAg
ICAgICAgICAgICAgICBkdW1wRE9NUXVhZChvYmopOwogICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICAgICAgfQpAQCAtMTc1NSw3ICsxNzUyLDcgQEAgY2xhc3MgQ2xvbmVEZXNl
cmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1
ZmZlcikKICAgICAgICAgOiBDbG9uZUJhc2UoZXhlYykKICAgICAgICAgLCBtX2dsb2JhbE9iamVj
dChnbG9iYWxPYmplY3QpCi0gICAgICAgICwgbV9pc0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmpl
Y3QtPmluaGVyaXRzKGdsb2JhbE9iamVjdC0+dm0oKSwgSlNET01HbG9iYWxPYmplY3Q6OmluZm8o
KSkpCisgICAgICAgICwgbV9pc0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPmluaGVyaXRz
PEpTRE9NR2xvYmFsT2JqZWN0PihnbG9iYWxPYmplY3QtPnZtKCkpKQogICAgICAgICAsIG1fcHRy
KGJ1ZmZlci5kYXRhKCkpCiAgICAgICAgICwgbV9lbmQoYnVmZmVyLmRhdGEoKSArIGJ1ZmZlci5z
aXplKCkpCiAgICAgICAgICwgbV92ZXJzaW9uKDB4RkZGRkZGRkYpCkBAIC0xNzc3LDcgKzE3NzQs
NyBAQCBjbGFzcyBDbG9uZURlc2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgICAgICkKICAg
ICAgICAgOiBDbG9uZUJhc2UoZXhlYykKICAgICAgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxP
YmplY3QpCi0gICAgICAgICwgbV9pc0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPmluaGVy
aXRzKGdsb2JhbE9iamVjdC0+dm0oKSwgSlNET01HbG9iYWxPYmplY3Q6OmluZm8oKSkpCisgICAg
ICAgICwgbV9pc0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTRE9NR2xv
YmFsT2JqZWN0PihnbG9iYWxPYmplY3QtPnZtKCkpKQogICAgICAgICAsIG1fcHRyKGJ1ZmZlci5k
YXRhKCkpCiAgICAgICAgICwgbV9lbmQoYnVmZmVyLmRhdGEoKSArIGJ1ZmZlci5zaXplKCkpCiAg
ICAgICAgICwgbV92ZXJzaW9uKDB4RkZGRkZGRkYpCkBAIC0yMDQ4LDcgKzIwNDUsNyBAQCBjbGFz
cyBDbG9uZURlc2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgICAgIGlmICghcmVhZChieXRl
TGVuZ3RoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgSlNPYmplY3QqIGFy
cmF5QnVmZmVyT2JqID0gYXNPYmplY3QocmVhZFRlcm1pbmFsKCkpOwotICAgICAgICBpZiAoIWFy
cmF5QnVmZmVyT2JqIHx8ICFhcnJheUJ1ZmZlck9iai0+aW5oZXJpdHModm0sIEpTQXJyYXlCdWZm
ZXI6OmluZm8oKSkpCisgICAgICAgIGlmICghYXJyYXlCdWZmZXJPYmogfHwgIWFycmF5QnVmZmVy
T2JqLT5pbmhlcml0czxKU0FycmF5QnVmZmVyPih2bSkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgdW5zaWduZWQgZWxlbWVudFNpemUgPSB0eXBlZEFycmF5RWxlbWVudFNp
emUoYXJyYXlCdWZmZXJWaWV3U3VidGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZDllYWY4YzZiNDQ0NzI5N2Q2MDU2
ZTU5MGY3NThjZGI5N2ZiNjY2NS4uYzU5N2Q1YTEzMzEyNzhhMzM1YTJjMWEwMjc5NTA2MmNkNDQx
MDczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KQEAgLTM0MDAsMTYgKzM0MDAsMTYgQEAgc3ViIEdlbmVyYXRlT3ZlcmxvYWRE
aXNwYXRjaGVyCiAgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNXcmFw
cGVyVHlwZSgkc3VidHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzQnVmZmVyU291cmNlVHlwZSgk
c3VidHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc3VidHlwZS0+bmFtZSBl
cSAiRE9NV2luZG93IikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZFRvSW1wbElu
Y2x1ZGVzKCJKU0RPTVdpbmRvd1Byb3h5LmgiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiAoYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0cyh2bSwgSlNET01XaW5kb3dQcm94eTo6aW5mbygpKSB8fCBhc09iamVjdChkaXN0aW5ndWlz
aGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU0RPTVdpbmRvdzo6aW5mbygpKSkiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92
ZXJsb2FkLCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiAoYXNPYmplY3QoZGlzdGlu
Z3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU0RPTVdpbmRvd1Byb3h5Pih2bSkgfHwgYXNPYmplY3Qo
ZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU0RPTVdpbmRvdz4odm0pKSIpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
JGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
KHZtLCBKUyIgLiAkc3VidHlwZS0+bmFtZSAuICI6OmluZm8oKSkiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2Fk
LCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGlu
Z0FyZyktPmluaGVyaXRzPEpTIiAuICRzdWJ0eXBlLT5uYW1lIC4gIj4odm0pIik7CiAgICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICRvdmVybG9hZCA9IEdldE92ZXJsb2Fk
VGhhdE1hdGNoZXMoJFMsICRkLCBcJiRpc09iamVjdE9yRXJyb3JPckRPTUV4Y2VwdGlvblBhcmFt
ZXRlcik7Ci0gICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92
ZXJsb2FkLCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5n
dWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU0RPTUV4Y2VwdGlvbjo6aW5mbygpKSIpOworICAg
ICAgICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRp
c3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcp
LT5pbmhlcml0czxKU0RPTUV4Y2VwdGlvbj4odm0pIik7CiAKICAgICAgICAgICAgICRvdmVybG9h
ZCA9IEdldE92ZXJsb2FkVGhhdE1hdGNoZXMoJFMsICRkLCBcJiRpc09iamVjdE9yRXJyb3JQYXJh
bWV0ZXIpOwogICAgICAgICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRv
dmVybG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGlu
Z3Vpc2hpbmdBcmcpLT50eXBlKCkgPT0gRXJyb3JJbnN0YW5jZVR5cGUiKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5k
ZXggZGI0ZjRiMWY0OTczNDllMjdiYzAzYzg5OTEwMjJiOWFhZmIyZmI3Zi4uOWNlYmI3NzU3NTc5
ZmRmOWY3NzAyNWFjNzkyMjljMGQ2NTgyNzJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTcwMjEsMTcgKzcw
MjEsMTcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZE92ZXIKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5n
dWlzaGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4g
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMkJvZHkoc3RhdGUsIGNh
c3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNP
YmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rl
c3RPYmo6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgp
ICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0T2JqPih2bSkp
CiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAo
ZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0Fy
ZyktPmluaGVyaXRzKHZtLCBKU1Rlc3RDYWxsYmFja0ludGVyZmFjZTo6aW5mbygpKSkKKyAgICAg
ICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vp
c2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RDYWxsYmFja0ludGVyZmFjZT4odm0pKQogICAgICAg
ICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDVC
b2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0cyh2bSwgSlNET01TdHJpbmdMaXN0OjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzPEpTRE9NU3RyaW5nTGlzdD4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDZCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0
aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYg
YXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0T2JqOjppbmZv
KCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVj
dChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE9iaj4odm0pKQogICAgICAgICAg
ICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDhCb2R5
KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNo
aW5nQXJnLmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJp
dHModm0sIEpTRE9NV2luZG93UHJveHk6OmluZm8oKSkgfHwgYXNPYmplY3QoZGlzdGluZ3Vpc2hp
bmdBcmcpLT5pbmhlcml0cyh2bSwgSlNET01XaW5kb3c6OmluZm8oKSkpKQorICAgICAgICBpZiAo
ZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiAoYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdB
cmcpLT5pbmhlcml0czxKU0RPTVdpbmRvd1Byb3h5Pih2bSkgfHwgYXNPYmplY3QoZGlzdGluZ3Vp
c2hpbmdBcmcpLT5pbmhlcml0czxKU0RPTVdpbmRvdz4odm0pKSkKICAgICAgICAgICAgIHJldHVy
biBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q5Qm9keShzdGF0ZSwg
Y2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5p
c09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpT
QmxvYjo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkg
JiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU0Jsb2I+KHZtKSkKICAg
ICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2QxM0JvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICBpZiAoaGFz
SXRlcmF0b3JNZXRob2QoKnN0YXRlLCBkaXN0aW5ndWlzaGluZ0FyZykpCiAgICAgICAgICAgICBy
ZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kN0JvZHkoc3Rh
dGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwpAQCAtNzA0NSw3ICs3MDQ1LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZE92ZXIKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0FyZyA9IHN0
YXRlLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJn
LmlzVW5kZWZpbmVkKCkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUp
OwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChk
aXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU0Jsb2I6OmluZm8oKSkpCisgICAgICAg
IGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNo
aW5nQXJnKS0+aW5oZXJpdHM8SlNCbG9iPih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMTNCb2R5KHN0YXRlLCBjYXN0ZWRU
aGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVy
KCkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwpAQCAtNzA5Niw3
ICs3MDk2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICAgICAgSlNWYWx1ZSBkaXN0
aW5ndWlzaGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICAgICAgaWYg
KGRpc3Rpbmd1aXNoaW5nQXJnLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1
cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFs
UGFyYW1ldGVyMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBp
ZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGlu
Z0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3RPYmo6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0
aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+
aW5oZXJpdHM8SlNUZXN0T2JqPih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMkJvZHko
c3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4ganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMUJv
ZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgIH0KQEAgLTcxMDQsNyArNzEw
NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vp
c2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CiAgICAgICAgIGlmIChkaXN0
aW5ndWlzaGluZ0FyZy5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFt
ZXRlcjJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcp
LT5pbmhlcml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzPEpTVGVzdE9iaj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcjJCb2R5KHN0YXRl
LCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcjFCb2R5KHN0
YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICB9CkBAIC03MTQ3LDkgKzcxNDcsOSBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aAogICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGQ6Om1p
bjxzaXplX3Q+KDEsIHN0YXRlLT5hcmd1bWVudENvdW50KCkpOwogICAgIGlmIChhcmdzQ291bnQg
PT0gMSkgewogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gc3RhdGUtPnVuY2hl
Y2tlZEFyZ3VtZW50KDApOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3Qo
KSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3RPYmo6
OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFz
T2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0T2JqPih2bSkpCiAgICAg
ICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
V2l0aERpc3Rpbmd1aXNoaW5nVW5pb24xQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29w
ZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0
KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE5vZGU6OmluZm8oKSkpCisg
ICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rp
bmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0Tm9kZT4odm0pKQogICAgICAgICAgICAgcmV0
dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5n
dWlzaGluZ1VuaW9uMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAg
ICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAgICAgICAgICAgIHJldHVybiBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hp
bmdVbmlvbjJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKQEAgLTcxOTQsMTEg
KzcxOTQsMTEgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICBzaXplX3QgYXJnc0NvdW50
ID0gc3RkOjptaW48c2l6ZV90PigxLCBzdGF0ZS0+YXJndW1lbnRDb3VudCgpKTsKICAgICBpZiAo
YXJnc0NvdW50ID09IDEpIHsKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0FyZyA9IHN0
YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwg
SlNUZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmpl
Y3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE9iaj4o
dm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMxQm9keShzdGF0ZSwgY2FzdGVkVGhp
cywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgp
ICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE5vZGU6
OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFz
T2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0Tm9kZT4odm0pKQogICAg
ICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMxQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dT
Y29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2Jq
ZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdEludGVyZmFjZTo6aW5m
bygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmpl
Y3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RJbnRlcmZhY2U+KHZtKSkKICAg
ICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93
U2NvcGUpOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAgICAg
ICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RX
aXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2Nv
cGUpOwpAQCAtNzI0Nyw5ICs3MjQ3LDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICBz
aXplX3QgYXJnc0NvdW50ID0gc3RkOjptaW48c2l6ZV90PigyLCBzdGF0ZS0+YXJndW1lbnRDb3Vu
dCgpKTsKICAgICBpZiAoYXJnc0NvdW50ID09IDIpIHsKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5n
dWlzaGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKLSAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcp
LT5pbmhlcml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzPEpTVGVzdE9iaj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uMUJvZHko
c3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
KHZtLCBKU1Rlc3ROb2RlOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcu
aXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVz
dE5vZGU+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbjJCb2R5KHN0YXRlLCBj
YXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICB9CiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDIg
PyB0aHJvd1ZNRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKHN0YXRlKSkgOiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKQEAg
LTcyOTMsOSArNzI5Myw5IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlCiAgICAgICAgIEpTVmFs
dWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CiAgICAg
ICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAg
ICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVV
bmlvbjFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcp
LT5pbmhlcml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzPEpTVGVzdE9iaj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbjFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlz
LCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkg
JiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0Tm9kZTo6
aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNP
YmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3ROb2RlPih2bSkpCiAgICAg
ICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxs
YWJsZVVuaW9uMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICBp
ZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24yQm9keShzdGF0
ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CkBAIC03Mzk0LDcgKzczOTQsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZFdpdGhOdWxsYWJsZQogICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGQ6Om1pbjxzaXplX3Q+
KDIsIHN0YXRlLT5hcmd1bWVudENvdW50KCkpOwogICAgIGlmIChhcmdzQ291bnQgPT0gMikgewog
ICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09i
amVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3ROb2RlOjppbmZvKCkp
KQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChk
aXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE5vZGU+KHZtKSkKICAgICAgICAgICAg
IHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9u
RGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIxQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29w
ZSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc051bWJlcigpKQogICAgICAgICAg
ICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVO
b25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlcjJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Nj
b3BlKTsKQEAgLTc5ODQsNyArNzk4NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRlCiAgICAg
c2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4oMSwgc3RhdGUtPmFyZ3VtZW50Q291
bnQoKSk7CiAgICAgaWYgKGFyZ3NDb3VudCA9PSAxKSB7CiAgICAgICAgIEpTVmFsdWUgZGlzdGlu
Z3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgICAgIGlmIChk
aXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHModm0sIEpTRmV0Y2hSZXF1ZXN0OjppbmZvKCkpKQorICAgICAgICBpZiAoZGlz
dGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZykt
PmluaGVyaXRzPEpTRmV0Y2hSZXF1ZXN0Pih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbjJCb2R5KHN0
YXRlLCBjYXN0ZWRUaGlzLCBXVEZNb3ZlKHByb21pc2UpLCB0aHJvd1Njb3BlKTsKICAgICAgICAg
aWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCiAgICAgICAgICAgICByZXR1cm4ganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbjFCb2R5
KHN0YXRlLCBjYXN0ZWRUaGlzLCBXVEZNb3ZlKHByb21pc2UpLCB0aHJvd1Njb3BlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCA2MGZkNTIyN2Q5
YWUyNzJmNmQwMTNmOWJlZDkzNmQ2MzU1MzdmZWEwLi4xOTdlY2Y5Nzg3YmQxM2FiM2ZhMjAwN2Vk
YzRiNTQ2OTYxOGVjNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMuY3BwCkBAIC0xNDgsMTEgKzE0OCwxMSBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOgog
ICAgIH0KICAgICBpZiAoYXJnc0NvdW50ID09IDEpIHsKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5n
dWlzaGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKLSAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcp
LT5pbmhlcml0cyh2bSwgSlNBcnJheUJ1ZmZlcjo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5p
bmhlcml0czxKU0FycmF5QnVmZmVyPih2bSkpCiAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczEoc3RhdGUpOwotICAgICAgICBpZiAoZGlzdGlu
Z3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmlu
aGVyaXRzKHZtLCBKU0FycmF5QnVmZmVyVmlldzo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5p
bmhlcml0czxKU0FycmF5QnVmZmVyVmlldz4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0
cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMyKHN0YXRlKTsKLSAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcp
LT5pbmhlcml0cyh2bSwgSlNCbG9iOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
PEpTQmxvYj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMzKHN0YXRlKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlz
TnVtYmVyKCkpCiAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yczUoc3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2Mv
Y19pbnN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcApp
bmRleCA3MzFhNmU4MmI0ZDMzYWFlMDgxZGVkNjY4ZTViNDBlM2I1MGE4OWIwLi4zOThiN2JlMTY0
NDFiZjRkOTBmYWNhMWI1ZWJlN2NhYTMyMjQwMjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9j
X2luc3RhbmNlLmNwcApAQCAtMTU5LDcgKzE1OSw3IEBAIEpTVmFsdWUgQ0luc3RhbmNlOjppbnZv
a2VNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBSdW50aW1lTWV0aG9kKiBydW50aW1lTWV0aG9kKQog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCi0gICAgaWYgKCFhc09iamVjdChydW50aW1lTWV0aG9kKS0+aW5oZXJpdHMo
dm0sIENSdW50aW1lTWV0aG9kOjppbmZvKCkpKQorICAgIGlmICghYXNPYmplY3QocnVudGltZU1l
dGhvZCktPmluaGVyaXRzPENSdW50aW1lTWV0aG9kPih2bSkpCiAgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGludm9rZSBu
b24tcGx1Zy1pbiBtZXRob2Qgb24gcGx1Zy1pbiBvYmplY3QuIikpOwogCiAgICAgQ01ldGhvZCog
bWV0aG9kID0gc3RhdGljX2Nhc3Q8Q01ldGhvZCo+KHJ1bnRpbWVNZXRob2QtPm1ldGhvZCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5t
bSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQppbmRleCBl
ODJjNTU3M2I5NWViNzJjYTEzNjUzNzUwNzBkYTg4Njk2ODFlZTkwLi5lYTI0NzNkYWNlNTg2MDZk
NTM4OWM5ZTc1MGZhYjc4MzlmOTQ3NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvV2ViU2NyaXB0T2JqZWN0Lm1tCkBAIC01NzAsMTEgKzU3MCwxMSBAQCArIChpZClfY29udmVy
dFZhbHVlVG9PYmpjVmFsdWU6KEpTQzo6SlNWYWx1ZSl2YWx1ZSBvcmlnaW5Sb290T2JqZWN0OihS
b290T2JqZWN0KgogICAgICAgICBKU0M6OlZNJiB2bSA9IHJvb3RPYmplY3QtPmdsb2JhbE9iamVj
dCgpLT52bSgpOwogICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAKLSAgICAgICAgaWYg
KG9iamVjdC0+aW5oZXJpdHModm0sIEpTSFRNTEVsZW1lbnQ6OmluZm8oKSkpIHsKKyAgICAgICAg
aWYgKG9iamVjdC0+aW5oZXJpdHM8SlNIVE1MRWxlbWVudD4odm0pKSB7CiAgICAgICAgICAgICAv
LyBQbHVnaW4gZWxlbWVudHMgY2FjaGUgdGhlIGluc3RhbmNlIGludGVybmFsbHkuCiAgICAgICAg
ICAgICBpZiAoT2JqY0luc3RhbmNlKiBpbnN0YW5jZSA9IHN0YXRpY19jYXN0PE9iamNJbnN0YW5j
ZSo+KHBsdWdpbkluc3RhbmNlKGpzQ2FzdDxKU0hUTUxFbGVtZW50Kj4ob2JqZWN0KS0+d3JhcHBl
ZCgpKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlLT5nZXRPYmplY3QoKTsKLSAg
ICAgICAgfSBlbHNlIGlmIChvYmplY3QtPmluaGVyaXRzKHZtLCBPYmpDUnVudGltZU9iamVjdDo6
aW5mbygpKSkgeworICAgICAgICB9IGVsc2UgaWYgKG9iamVjdC0+aW5oZXJpdHM8T2JqQ1J1bnRp
bWVPYmplY3Q+KHZtKSkgewogICAgICAgICAgICAgT2JqQ1J1bnRpbWVPYmplY3QqIHJ1bnRpbWVP
YmplY3QgPSBzdGF0aWNfY2FzdDxPYmpDUnVudGltZU9iamVjdCo+KG9iamVjdCk7CiAgICAgICAg
ICAgICBPYmpjSW5zdGFuY2UqIGluc3RhbmNlID0gcnVudGltZU9iamVjdC0+Z2V0SW50ZXJuYWxP
YmpDSW5zdGFuY2UoKTsKICAgICAgICAgICAgIGlmIChpbnN0YW5jZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCmluZGV4IDNmYmFlMzM3NGQyNGZmZDU2NWZl
ZTZlZDg3NjM2MzA1OGU0ZjNkNDguLmI3ZDI0ZDQ0YTI0YTZiMDU1Mjc3NDVmNjFlOTQ3MzdkZTli
Nzk2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFu
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQpA
QCAtMjEyLDcgKzIxMiw3IEBAIEpTQzo6SlNWYWx1ZSBPYmpjSW5zdGFuY2U6Omludm9rZU1ldGhv
ZChFeGVjU3RhdGUqIGV4ZWMsIFJ1bnRpbWVNZXRob2QqIHJ1bnRpbWVNCiAgICAgSlNDOjpWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAotICAgIGlmICghYXNPYmplY3QocnVudGltZU1ldGhvZCktPmluaGVyaXRzKHZtLCBPYmpD
UnVudGltZU1ldGhvZDo6aW5mbygpKSkKKyAgICBpZiAoIWFzT2JqZWN0KHJ1bnRpbWVNZXRob2Qp
LT5pbmhlcml0czxPYmpDUnVudGltZU1ldGhvZD4odm0pKQogICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBpbnZva2Ugbm9u
LXBsdWctaW4gbWV0aG9kIG9uIHBsdWctaW4gb2JqZWN0LiIpKTsKIAogICAgIE9iamNNZXRob2Qg
Km1ldGhvZCA9IHN0YXRpY19jYXN0PE9iamNNZXRob2QqPihydW50aW1lTWV0aG9kLT5tZXRob2Qo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggMGE4
OWM4NTg3NDQwMjhiYzkzNTM3MjkzNDI2YTllYTBjOGNiOTViOC4uMTYzYzFkYTYzYTk4YjNkMTk4
ZWIwYTE3NTlhMTkwMmRlMzdmNWFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5tbQpAQCAtMjQ5LDcgKzI0OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxPYmpDRmFsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMo
dm0sIE9iakNSdW50aW1lT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghdGhpc1ZhbHVlLmluaGVy
aXRzPE9iakNSdW50aW1lT2JqZWN0Pih2bSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMsIHNjb3BlKTsKIAogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNVbmRlZmluZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCmluZGV4IGMzNTE4MmJkY2Fm
MWFkN2UzNjJjOWY4MmQwYzNhY2MyM2M0MTE0ODcuLjY3ZWU3NWQ0NGJjMTFiY2QxMGQyYWMzODcy
ZGEwZWVkOTFhNjNjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X21ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNw
cApAQCAtOTIsMTQgKzkyLDE0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKICAgICBSZWZQdHI8SW5zdGFuY2U+
IGluc3RhbmNlOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
LSAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSdW50aW1lT2JqZWN0OjppbmZvKCkpKSB7
CisgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxSdW50aW1lT2JqZWN0Pih2bSkpIHsKICAgICAg
ICAgUnVudGltZU9iamVjdCogcnVudGltZU9iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVPYmpl
Y3QqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICAgICAgaW5zdGFuY2UgPSBydW50aW1lT2Jq
ZWN0LT5nZXRJbnRlcm5hbEluc3RhbmNlKCk7CiAgICAgICAgIGlmICghaW5zdGFuY2UpIAogICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShSdW50aW1lT2JqZWN0Ojp0aHJvd0ludmFs
aWRBY2Nlc3NFcnJvcihleGVjLCBzY29wZSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENh
bGxpbmcgYSBydW50aW1lIG9iamVjdCBvZiBhIHBsdWdpbiBlbGVtZW50PwotICAgICAgICBpZiAo
dGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBKU0hUTUxFbGVtZW50OjppbmZvKCkpKQorICAgICAgICBp
ZiAodGhpc1ZhbHVlLmluaGVyaXRzPEpTSFRNTEVsZW1lbnQ+KHZtKSkKICAgICAgICAgICAgIGlu
c3RhbmNlID0gcGx1Z2luSW5zdGFuY2UoanNDYXN0PEpTSFRNTEVsZW1lbnQqPihhc09iamVjdCh0
aGlzVmFsdWUpKS0+d3JhcHBlZCgpKTsKICAgICAgICAgaWYgKCFpbnN0YW5jZSkKICAgICAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDE1ZjBhOTQxYWQ4ZWY1MTE5MGU1NDZkN2M1
NTllY2UzNWE4OWEyMzYuLjZhNzI4NGZhMGFiZTU3MDExMWFiMzlkY2U0MWMzZTQ1Zjc1MDRlMmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMjI0LDcgKzIy
NCw3IEBAIEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJlCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBB
U1NFUlQoZXhlYy0+anNDYWxsZWUoKS0+aW5oZXJpdHMoZXhlYy0+dm0oKSwgUnVudGltZU9iamVj
dDo6aW5mbygpKSk7CisgICAgQVNTRVJUKGV4ZWMtPmpzQ2FsbGVlKCktPmluaGVyaXRzPFJ1bnRp
bWVPYmplY3Q+KGV4ZWMtPnZtKCkpKTsKICAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlKHN0
YXRpY19jYXN0PFJ1bnRpbWVPYmplY3QqPihleGVjLT5qc0NhbGxlZSgpKS0+Z2V0SW50ZXJuYWxJ
bnN0YW5jZSgpKTsKICAgICBpbnN0YW5jZS0+YmVnaW4oKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9
IGluc3RhbmNlLT5pbnZva2VEZWZhdWx0TWV0aG9kKGV4ZWMpOwpAQCAtMjQ5LDcgKzI0OSw3IEBA
IENhbGxUeXBlIFJ1bnRpbWVPYmplY3Q6OmdldENhbGxEYXRhKEpTQ2VsbCogY2VsbCwgQ2FsbERh
dGEmIGNhbGxEYXRhKQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1
bnRpbWVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNPYmplY3QqIGNvbnN0
cnVjdG9yID0gZXhlYy0+anNDYWxsZWUoKTsKLSAgICBBU1NFUlQoY29uc3RydWN0b3ItPmluaGVy
aXRzKGV4ZWMtPnZtKCksIFJ1bnRpbWVPYmplY3Q6OmluZm8oKSkpOworICAgIEFTU0VSVChjb25z
dHJ1Y3Rvci0+aW5oZXJpdHM8UnVudGltZU9iamVjdD4oZXhlYy0+dm0oKSkpOwogICAgIFJlZlB0
cjxJbnN0YW5jZT4gaW5zdGFuY2Uoc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGV4ZWMtPmpz
Q2FsbGVlKCkpLT5nZXRJbnRlcm5hbEluc3RhbmNlKCkpOwogICAgIGluc3RhbmNlLT5iZWdpbigp
OwogICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dlYkluamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggNTU1Mjc3YmNjNGVlMTk0ZmIzMjk4
NDFkNGQ0NWRiOWM0NzRlYmU5YS4uOTA2NGIyNGE4YjU2ZTNhM2M5NWRkOTI0NTllMGIzY2FjNWFh
NjA4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2Ny
aXB0SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2Ny
aXB0SG9zdC5jcHAKQEAgLTQ3LDEzICs0NywxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogSlNW
YWx1ZSBXZWJJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgaWYgKHZhbHVlLmlu
aGVyaXRzKHZtLCBKU05vZGU6OmluZm8oKSkpCisgICAgaWYgKHZhbHVlLmluaGVyaXRzPEpTTm9k
ZT4odm0pKQogICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0
ZXJhbCgibm9kZSIpKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0sIEpTTm9kZUxpc3Q6Omlu
Zm8oKSkpCisgICAgaWYgKHZhbHVlLmluaGVyaXRzPEpTTm9kZUxpc3Q+KHZtKSkKICAgICAgICAg
cmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImFycmF5IikpOwot
ICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgSlNIVE1MQ29sbGVjdGlvbjo6aW5mbygpKSkKKyAg
ICBpZiAodmFsdWUuaW5oZXJpdHM8SlNIVE1MQ29sbGVjdGlvbj4odm0pKQogICAgICAgICByZXR1
cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7Ci0gICAg
aWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU0RPTUV4Y2VwdGlvbjo6aW5mbygpKSkKKyAgICBpZiAo
dmFsdWUuaW5oZXJpdHM8SlNET01FeGNlcHRpb24+KHZtKSkKICAgICAgICAgcmV0dXJuIGpzTm9u
dHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImVycm9yIikpOwogCiAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CkBAIC0xODUsNyArMTg1LDcgQEAgSlNWYWx1ZSBXZWJJbmplY3RlZFNj
cmlwdEhvc3Q6OmdldEludGVybmFsUHJvcGVydGllcyhWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywg
SlMKIAogYm9vbCBXZWJJbmplY3RlZFNjcmlwdEhvc3Q6OmlzSFRNTEFsbENvbGxlY3Rpb24oSlND
OjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gdmFsdWUuaW5oZXJp
dHModm0sIEpTSFRNTEFsbENvbGxlY3Rpb246OmluZm8oKSk7CisgICAgcmV0dXJuIHZhbHVlLmlu
aGVyaXRzPEpTSFRNTEFsbENvbGxlY3Rpb24+KHZtKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE1ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QTWV0aG9kLmNwcAppbmRleCBlNTYwODhmNzMyMThhNGJjN2YwOTA3ODY5ZTZkZGVm
MWVhN2MwMTE5Li44ZjBkNGRmNGNlZjdlMGMxYzg0MjlkOGJiZmU3YmJjMjVkNWU1YmNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0
aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QTWV0aG9kLmNwcApAQCAtNjksNyArNjksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogCiAgICAgLy8gQ2hlY2sgaWYgd2UncmUgY2FsbGlu
ZyBhIG1ldGhvZCBvbiB0aGUgcGx1Zy1pbiBzY3JpcHQgb2JqZWN0LgotICAgIGlmICh0aGlzVmFs
dWUuaW5oZXJpdHModm0sIEpTSFRNTEVsZW1lbnQ6OmluZm8oKSkpIHsKKyAgICBpZiAodGhpc1Zh
bHVlLmluaGVyaXRzPEpTSFRNTEVsZW1lbnQ+KHZtKSkgewogICAgICAgICBKU0hUTUxFbGVtZW50
KiBlbGVtZW50ID0ganNDYXN0PEpTSFRNTEVsZW1lbnQqPihhc09iamVjdCh0aGlzVmFsdWUpKTsK
IAogICAgICAgICAvLyBUcnkgdG8gZ2V0IHRoZSBzY3JpcHQgb2JqZWN0IGZyb20gdGhlIGVsZW1l
bnQKQEAgLTc3LDcgKzc3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICB0aGlzVmFsdWUgPSBzY3Jp
cHRPYmplY3Q7CiAgICAgfQogCi0gICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgSlNOUE9i
amVjdDo6aW5mbygpKSkgeworICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8SlNOUE9iamVjdD4o
dm0pKSB7CiAgICAgICAgIEpTTlBPYmplY3QqIGpzTlBPYmplY3QgPSBqc0Nhc3Q8SlNOUE9iamVj
dCo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOUE9iamVjdC0+Y2FsbE1ldGhvZChleGVjLCBqc05QTWV0aG9kLT5ucElkZW50aWZpZXIo
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QT2JqZWN0LmNwcAppbmRleCAwN2E0ZTIyMGQ2YzJkYjkyYTU4YzFlOWRjN2UyNDFh
NjNmNmEzYmRhLi4xZmE1OTAxN2FhMzM5MzU1ZDMyZDQ1YzE1MDlkZjVlODg1NDJlNDg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmNwcApAQCAtMjQxLDcgKzI0MSw3IEBAIEpTVmFsdWUgSlNOUE9iamVjdDo6Y2Fs
bENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxOUEpTT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU09iamVj
dCogb2JqZWN0ID0gZXhlYy0+anNDYWxsZWUoKTsKLSAgICBBU1NFUlQob2JqZWN0LT5pbmhlcml0
cyhleGVjLT52bSgpLCBKU05QT2JqZWN0OjppbmZvKCkpKTsKKyAgICBBU1NFUlQob2JqZWN0LT5p
bmhlcml0czxKU05QT2JqZWN0PihleGVjLT52bSgpKSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzQ2FzdDxKU05QT2JqZWN0Kj4ob2JqZWN0KS0+Y2FsbE9iamVjdChleGVjKSk7CiB9
CkBAIC0yNjAsNyArMjYwLDcgQEAgSlNDOjpDYWxsVHlwZSBKU05QT2JqZWN0OjpnZXRDYWxsRGF0
YShKU0M6OkpTQ2VsbCogY2VsbCwgSlNDOjpDYWxsRGF0YSYgY2FsbERhdGEKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMpCiB7CiAgICAgSlNPYmplY3QqIGNvbnN0cnVjdG9yID0gZXhlYy0+anNDYWxsZWUo
KTsKLSAgICBBU1NFUlQoY29uc3RydWN0b3ItPmluaGVyaXRzKGV4ZWMtPnZtKCksIEpTTlBPYmpl
Y3Q6OmluZm8oKSkpOworICAgIEFTU0VSVChjb25zdHJ1Y3Rvci0+aW5oZXJpdHM8SlNOUE9iamVj
dD4oZXhlYy0+dm0oKSkpOwogCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Nhc3Q8SlNO
UE9iamVjdCo+KGNvbnN0cnVjdG9yKS0+Y2FsbENvbnN0cnVjdG9yKGV4ZWMpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09i
amVjdC5jcHAKaW5kZXggODFjYTcwZWU5ZGQyYWUzZDcwOTkzN2UzZGMyY2M4MWZkODFlOWE0MC4u
ZDEyNjdkNzdlNTc1ODY2NDFmM2QwYWE0Yjk5OWIzZTI2OWIzNjJjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5j
cHAKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBOUEpTT2JqZWN0KiBOUEpT
T2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBOUFJ1bnRpbWVPYmplY3RNYXAqIG9iamVjdE1hcCwgSlNP
YmplY3QqIGpzT2JqZWN0KQogewogICAgIC8vIFdlIHNob3VsZCBuZXZlciBoYXZlIGEgSlNOUE9i
amVjdCBpbnNpZGUgYW4gTlBKU09iamVjdC4KLSAgICBBU1NFUlQoIWpzT2JqZWN0LT5pbmhlcml0
cyh2bSwgSlNOUE9iamVjdDo6aW5mbygpKSk7CisgICAgQVNTRVJUKCFqc09iamVjdC0+aW5oZXJp
dHM8SlNOUE9iamVjdD4odm0pKTsKIAogICAgIE5QSlNPYmplY3QqIG5wSlNPYmplY3QgPSB0b05Q
SlNPYmplY3QoY3JlYXRlTlBPYmplY3QoMCwgbnBDbGFzcygpKSk7CiAgICAgbnBKU09iamVjdC0+
aW5pdGlhbGl6ZSh2bSwgb2JqZWN0TWFwLCBqc09iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggYWZkMzQyMzlhYjAzNWUyOTkzZTll
YWVjNGZmOWNmNzZmZDVlOWM0Ni4uMTAwZjY3NDZmZDlkNTFkYzMwMWIzZTcyMWVmM2M4YTM0NjYw
ZGJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNw
cApAQCAtNzM4LDcgKzczOCw3IEBAIEpTVmFsdWVSZWYgV2ViRnJhbWU6OmpzV3JhcHBlckZvcldv
cmxkKEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZSogZmlsZUhhbmRsZSwgSW5qCiAKIFN0cmluZyBX
ZWJGcmFtZTo6Y291bnRlclZhbHVlKEpTT2JqZWN0UmVmIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCF0
b0pTKGVsZW1lbnQpLT5pbmhlcml0cygqdG9KUyhlbGVtZW50KS0+dm0oKSwgSlNFbGVtZW50Ojpp
bmZvKCkpKQorICAgIGlmICghdG9KUyhlbGVtZW50KS0+aW5oZXJpdHM8SlNFbGVtZW50PigqdG9K
UyhlbGVtZW50KS0+dm0oKSkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAogICAgIHJldHVy
biBjb3VudGVyVmFsdWVGb3JFbGVtZW50KCZqc0Nhc3Q8SlNFbGVtZW50Kj4odG9KUyhlbGVtZW50
KSktPndyYXBwZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00v
RE9NLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbQppbmRleCA1OWYxMzYz
NDI5MTJlYTAxMDcxMWIyNTI2NWYyMjI0YzM2NWRiNjhmLi5lN2NlNjMxZDBhN2Q4YWE4ZTIwZDgx
ZDhlNGE3NmZjNDQxMGM4NTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9E
T00vRE9NLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0KQEAgLTUz
MCw3ICs1MzAsNyBAQCBAaW1wbGVtZW50YXRpb24gRE9NTm9kZSAoV2ViUHJpdmF0ZSkKICsgKGlk
KV9ub2RlRnJvbUpTV3JhcHBlcjooSlNPYmplY3RSZWYpanNXcmFwcGVyCiB7CiAgICAgSlNPYmpl
Y3QqIG9iamVjdCA9IHRvSlMoanNXcmFwcGVyKTsKLSAgICBpZiAoIW9iamVjdC0+aW5oZXJpdHMo
Km9iamVjdC0+dm0oKSwgSlNOb2RlOjppbmZvKCkpKQorICAgIGlmICghb2JqZWN0LT5pbmhlcml0
czxKU05vZGU+KCpvYmplY3QtPnZtKCkpKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVy
biBraXQoJmpzQ2FzdDxKU05vZGUqPihvYmplY3QpLT53cmFwcGVkKCkpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5J
bnN0YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IDg1MTU3NGY4NzNjMjQyNzI2MTZi
MDFlZDM1NDQ4NTY4YzNhMTU4YzIuLjZmMmQyNTlmNTlkMDQxMGE1ZTQ3NzQ0NmY1NDk3MDIzNjM1
NDJlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTE0
NTMsNyArMTQ1Myw3IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpkZW1hcnNo
YWxWYWx1ZXMoRXhlY1N0YXRlKiBleGVjLCBkYXRhX3QgdmFsdWVzCiAKIHZvaWQgTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5OjpyZXRhaW5Mb2NhbE9iamVjdChKU0M6OkpTVmFsdWUgdmFsdWUp
CiB7Ci0gICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpIHx8IHZhbHVlLmluaGVyaXRzKCp2YWx1ZS5n
ZXRPYmplY3QoKS0+dm0oKSwgUHJveHlSdW50aW1lT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICgh
dmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pbmhlcml0czxQcm94eVJ1bnRpbWVPYmplY3Q+KCp2
YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fbG9jYWxP
YmplY3RzLnJldGFpbihhc09iamVjdCh2YWx1ZSkpOwpAQCAtMTQ2MSw3ICsxNDYxLDcgQEAgdm9p
ZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnJldGFpbkxvY2FsT2JqZWN0KEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKIAogdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnJlbGVhc2VM
b2NhbE9iamVjdChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKCF2YWx1ZS5pc09iamVj
dCgpIHx8IHZhbHVlLmluaGVyaXRzKCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSwgUHJveHlSdW50
aW1lT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5p
bmhlcml0czxQcm94eVJ1bnRpbWVPYmplY3Q+KCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIG1fbG9jYWxPYmplY3RzLnJlbGVhc2UoYXNPYmplY3QodmFs
dWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVk
L1Byb3h5SW5zdGFuY2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3Rl
ZC9Qcm94eUluc3RhbmNlLm1tCmluZGV4IDI2YWIzZWIwZDg1ZTlkYzI5NDFkOTFmY2UxNzk4ZTNk
ZTFmYWQwNTIuLjM2ODdiYzFiYzJmYzU0YmY5ODU1ZjM1MmJiY2NkZjFmOTExNjAzMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFu
Y2UubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJ
bnN0YW5jZS5tbQpAQCAtMjIzLDcgKzIyMyw3IEBAIEpTVmFsdWUgUHJveHlJbnN0YW5jZTo6aW52
b2tlTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNDOjpSdW50aW1lTWV0aG9kKiBydW50aW1lCiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAKLSAgICBpZiAoIWFzT2JqZWN0KHJ1bnRpbWVNZXRob2QpLT5pbmhlcml0cyh2
bSwgUHJveHlSdW50aW1lTWV0aG9kOjppbmZvKCkpKQorICAgIGlmICghYXNPYmplY3QocnVudGlt
ZU1ldGhvZCktPmluaGVyaXRzPFByb3h5UnVudGltZU1ldGhvZD4odm0pKQogICAgICAgICByZXR1
cm4gdGhyb3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBp
bnZva2Ugbm9uLXBsdWctaW4gbWV0aG9kIG9uIHBsdWctaW4gb2JqZWN0LiIpKTsKIAogICAgIFBy
b3h5TWV0aG9kKiBtZXRob2QgPSBzdGF0aWNfY2FzdDxQcm94eU1ldGhvZCo+KHJ1bnRpbWVNZXRo
b2QtPm1ldGhvZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQppbmRleCBlYzI2YjJiOTQ1NmMyNmI3NmNjMTZmZGIyODQ3MDQ5ZDZiZTQ2ZjQ4Li40MzVhNTk3
MzI0MmNhYzU5YzY4ODFhNDVjYjVlZDgyNTNhMTc2YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC03NjM3LDcgKzc2MzcsNyBAQCBzdGF0aWMgTlNB
cHBsZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBK
U0M6OkpTVmFsdWUgagogICAgIH0KICAgICBpZiAoanNWYWx1ZS5pc09iamVjdCgpKSB7CiAgICAg
ICAgIEpTT2JqZWN0KiBvYmplY3QgPSBqc1ZhbHVlLmdldE9iamVjdCgpOwotICAgICAgICBpZiAo
b2JqZWN0LT5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKSB7CisgICAgICAgIGlm
IChvYmplY3QtPmluaGVyaXRzPERhdGVJbnN0YW5jZT4odm0pKSB7CiAgICAgICAgICAgICBEYXRl
SW5zdGFuY2UqIGRhdGUgPSBzdGF0aWNfY2FzdDxEYXRlSW5zdGFuY2UqPihvYmplY3QpOwogICAg
ICAgICAgICAgZG91YmxlIG1zID0gZGF0ZS0+aW50ZXJuYWxOdW1iZXIoKTsKICAgICAgICAgICAg
IGlmICghc3RkOjppc25hbihtcykpIHsKQEAgLTc2NDYsNyArNzY0Niw3IEBAIHN0YXRpYyBOU0Fw
cGxlRXZlbnREZXNjcmlwdG9yKiBhZURlc2NGcm9tSlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
Qzo6SlNWYWx1ZSBqCiAgICAgICAgICAgICAgICAgaWYgKG5vRXJyID09IFVDQ29udmVydENGQWJz
b2x1dGVUaW1lVG9Mb25nRGF0ZVRpbWUodXRjU2Vjb25kcywgJmxkdCkpCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBbTlNBcHBsZUV2ZW50RGVzY3JpcHRvciBkZXNjcmlwdG9yV2l0aERlc2Ny
aXB0b3JUeXBlOnR5cGVMb25nRGF0ZVRpbWUgYnl0ZXM6JmxkdCBsZW5ndGg6c2l6ZW9mKGxkdCld
OwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKG9iamVjdC0+aW5oZXJpdHModm0s
IEpTQXJyYXk6OmluZm8oKSkpIHsKKyAgICAgICAgfSBlbHNlIGlmIChvYmplY3QtPmluaGVyaXRz
PEpTQXJyYXk+KHZtKSkgewogICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hT
ZXQ8SlNPYmplY3QqPj4gdmlzaXRlZEVsZW1zOwogICAgICAgICAgICAgaWYgKHZpc2l0ZWRFbGVt
cy5nZXQoKS5hZGQob2JqZWN0KS5pc05ld0VudHJ5KSB7CiAgICAgICAgICAgICAgICAgSlNBcnJh
eSogYXJyYXkgPSBzdGF0aWNfY2FzdDxKU0FycmF5Kj4ob2JqZWN0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkZyYW1lLmNwcAppbmRleCA5MzdhMjU3YWExMjA4YjY2NjU4ZmU2NDIzMWU0MjcwMTQx
MjI5MmE2Li44N2RjOTBiNWMwZjk3MmFhYjdkZmJlOWVmNDI2YWU3MmVkNzQ0NTY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCkBAIC0yMDAyLDcgKzIwMDIsNyBAQCBIUkVTVUxU
IFdlYkZyYW1lOjpzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0SW5TY3JpcHRXb3JsZChJV2Vi
U2NyaXB0V29ybGQqIGlXbwogCiAgICAgLy8gVGhlIGdsb2JhbCBvYmplY3QgaXMgcHJvYmFibHkg
YSBwcm94eSBvYmplY3Q/IC0gaWYgc28sIHdlIGtub3cgaG93IHRvIHVzZSB0aGlzIQogICAgIEpT
Qzo6SlNPYmplY3QqIGdsb2JhbE9iamVjdE9iaiA9IHRvSlMoZ2xvYmFsT2JqZWN0UmVmKTsKLSAg
ICBpZiAoZ2xvYmFsT2JqZWN0T2JqLT5pbmhlcml0cygqZ2xvYmFsT2JqZWN0T2JqLT52bSgpLCBK
U0RPTVdpbmRvd1Byb3h5OjppbmZvKCkpKQorICAgIGlmIChnbG9iYWxPYmplY3RPYmotPmluaGVy
aXRzPEpTRE9NV2luZG93UHJveHk+KCpnbG9iYWxPYmplY3RPYmotPnZtKCkpKQogICAgICAgICBh
bnlXb3JsZEdsb2JhbE9iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93UHJveHkqPihnbG9i
YWxPYmplY3RPYmopLT53aW5kb3coKTsKIAogICAgIC8vIEdldCB0aGUgZnJhbWUgZnJvbWUgdGhl
IGdsb2JhbCBvYmplY3Qgd2UndmUgc2V0dGxlZCBvbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335279</attachid>
            <date>2018-03-08 01:19:16 -0800</date>
            <delta_ts>2018-03-08 01:39:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183429-20180308181914.patch</filename>
            <type>text/plain</type>
            <size>164073</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MDNmOTVhNTYwNTc0ZjllNDQ1M2RjZjYyZDgyM2FjZTAyY2UxMjkwLi4zNDViNjIyZjRjMjcxNWUy
OTc1MDg3ODkwNTBlNWRkMWZmMWQ1ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDQgQEAKKzIwMTgtMDMtMDggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIGluaGVyaXRzPFQ+KFZNJikgbGV2ZXJhZ2luZyBK
U0Nhc3QgZmFzdCBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODM0MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbiwgSlNDZWxsOjppbmhlcml0czxUPihWTSYp
IGFuZCBKU1ZhbHVlOjppbmhlcml0czxUPihWTSYpLgorICAgICAgICBUaGV5IGRlcGVuZHMgb24g
anNEeW5hbWljQ2FzdDxUPiBpbXBsZW1lbnRhdGlvbiBhbmQgbGV2ZXJhZ2UgSlNUeXBlLWJhc2Vk
IGZhc3QKKyAgICAgICAgcGF0aHMgZGVmaW5lZCBpbiBKU0Nhc3QuaC4gV2UgZXh0cmFjdCBjaGVj
a2luZyBwYXJ0IGFzIGBKU0Nhc3RpbmdIZWxwZXJzOjppbmhlcml0YAorICAgICAgICBhbmQgY29u
c3RydWN0IGpzRHluYW1pY0Nhc3QgYW5kIEpTQ2VsbDo6aW5oZXJpdHMgYmFzZWQgb24gdGhpcy4K
KworICAgICAgICBBbmQgd2UgcmVtb3ZlIHNldmVyYWwgdW5uZWNlc3NhcnkgY2FzdGluZyBmdW5j
dGlvbnMgKGFzUmVnRXhwT2JqZWN0LCBhc0RhdGVJbnN0YW5jZSBldGMuKS4KKyAgICAgICAgSW4g
YWRkaXRpb24sIHdlIGFkZCBqc0R5bmFtaWNDYXN0IGZhc3QgcGF0aCBmb3IgUmVnRXhwT2JqZWN0
IGJ5IHVzaW5nIGV4aXN0aW5nIFJlZ0V4cE9iamVjdFR5cGUuCisKKyAgICAgICAgKiBBUEkvSlNP
YmplY3RSZWYuY3BwOgorICAgICAgICAoSlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkpOgorICAg
ICAgICAoSlNPYmplY3RTZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAoSlNPYmplY3REZWxl
dGVQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlLm1tOgorICAgICAgICAo
aXNEYXRlKToKKyAgICAgICAgKGlzQXJyYXkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlUmVmLmNw
cDoKKyAgICAgICAgKEpTVmFsdWVJc0FycmF5KToKKyAgICAgICAgKEpTVmFsdWVJc0RhdGUpOgor
ICAgICAgICAoSlNWYWx1ZUlzT2JqZWN0T2ZDbGFzcyk6CisgICAgICAgICogQVBJL0pTV2Vha09i
amVjdE1hcFJlZlByaXZhdGUuY3BwOgorICAgICAgICAqIEFQSS9KU1dyYXBwZXJNYXAubW06Cisg
ICAgICAgICh0cnlVbndyYXBPYmpjT2JqZWN0KToKKyAgICAgICAgKiBBUEkvT2JqQ0NhbGxiYWNr
RnVuY3Rpb24ubW06CisgICAgICAgICh0cnlVbndyYXBDb25zdHJ1Y3Rvcik6CisgICAgICAgICog
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlT3ZlcnJpZGVzSGFzSW5zdGFuY2UpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTmV3UmVnZXhwKToKKyAgICAgICAgKiBm
dGwvRlRMT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6b3BlcmF0aW9uTWF0ZXJp
YWxpemVPYmplY3RJbk9TUik6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRI
b3N0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5
cGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6ZnVuY3Rpb25E
ZXRhaWxzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5j
cHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckhlYXBBZ2VudDo6Z2V0UHJldmlldyk6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpu
b3RpZnlEZWJ1Z2dlck9mVW53aW5kaW5nKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TaGFkb3dD
aGlja2VuLmNwcDoKKyAgICAgICAgKEpTQzo6U2hhZG93Q2hpY2tlbjo6dXBkYXRlKToKKyAgICAg
ICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5Q
YXNzKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Om9w
ZXJhdGlvbk5ld0Z1bmN0aW9uQ29tbW9uKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAo
Y2hlY2tFeGNlcHRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAg
ICAgICAoSlNDOjphc0Jvb2xlYW5PYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmJvb2xlYW5Qcm90b0Z1bmNUb1N0
cmluZyk6CisgICAgICAgIChKU0M6OmJvb2xlYW5Qcm90b0Z1bmNWYWx1ZU9mKToKKyAgICAgICAg
KiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdERh
dGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg6CisgICAgICAgIChKU0M6OmFz
RGF0ZUluc3RhbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUu
Y3BwOgorICAgICAgICAoSlNDOjpmb3JtYXRlRGF0ZUluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Rv
TG9jYWxlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvTG9jYWxlRGF0ZVN0
cmluZyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb0xvY2FsZVRpbWVTdHJpbmcpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZSk6CisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNHZXRGdWxsWWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENG
dWxsWWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRNb250aCk6CisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXREYXRlKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0RGF5KToKKyAgICAgICAgKEpTQzo6ZGF0ZVBy
b3RvRnVuY0dldFVUQ0RheSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRIb3Vycyk6
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENIb3Vycyk6CisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRNaW51dGVzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dl
dFVUQ01pbnV0ZXMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk6Cisg
ICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKToKKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1
bmNHZXRVVENNaWxsaXNlY29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGlt
ZXpvbmVPZmZzZXQpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VGltZSk6CisgICAg
ICAgIChKU0M6OnNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKToKKyAgICAgICAgKEpTQzo6c2V0TmV3
VmFsdWVGcm9tRGF0ZUFyZ3MpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0WWVhcik6
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRZZWFyKToKKyAgICAgICAgKiBydW50aW1l
L0V4Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjppc1Rlcm1pbmF0ZWRFeGVjdXRp
b25FeGNlcHRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKToKKyAgICAgICAgKiBydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6YXNJbnRlcm5hbEZ1bmN0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6YXNBcnJheSk6
CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6ZHVtcEZvckJhY2t0cmFjZSBjb25zdCk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVl
Lmg6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjppbmhlcml0cyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9KU0Nhc3QuaDoK
KyAgICAgICAgKEpTQzo6SlNDYXN0aW5nSGVscGVyczo6aW5oZXJpdHNHZW5lcmljSW1wbCk6Cisg
ICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OmluaGVyaXRzSlNUeXBlSW1wbCk6CisgICAg
ICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzOjppbmhlcml0cyk6Cisg
ICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OmluaGVyaXRzKToKKyAgICAgICAgKEpTQzo6
anNEeW5hbWljQ2FzdCk6CisgICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OmpzRHluYW1p
Y0Nhc3RHZW5lcmljSW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBl
cnM6OmpzRHluYW1pY0Nhc3RKU1R5cGVJbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlND
YXN0aW5nSGVscGVyczo6SlNEeW5hbWljQ2FzdFRyYWl0czo6Y2FzdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbElubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjppbmhlcml0cyBjb25zdCk6CisgICAgICAgICogcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6UmV0cmlldmVDYWxsZXJGdW5jdGlv
bkZ1bmN0b3I6Om9wZXJhdG9yKCkgY29uc3QpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpj
YWxsZXJHZXR0ZXIpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpnZXRPd25Ob25JbmRleFBy
b3BlcnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpyZWlmeUxhenlCb3VuZE5h
bWVJZk5lZWRlZCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OmVucXVldWVKb2IpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aDoKKyAgICAgICAgKEpTQzo6YXNHbG9iYWxPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1
bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHA6CisgICAgICAgIChKU0M6OkpTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU0xleGlj
YWxFbnZpcm9ubWVudC5oOgorICAgICAgICAoSlNDOjphc0FjdGl2YXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OnVud3JhcEJveGVkUHJpbWl0
aXZlKToKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OlN0cmluZ2lmaWVyKToKKyAgICAgICAg
KEpTQzo6V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTUHJvbWlzZTo6cmVzb2x2ZSk6CisgICAgICAgICogcnVudGltZS9KU1By
b21pc2VEZWZlcnJlZC5jcHA6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZURlZmVycmVkOjpjcmVh
dGUpOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UHJv
eHlPYmplY3Q6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6dGFy
Z2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OmhhbmRsZXIg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RSZWdFeHApOgorICAgICAgICAqIHJ1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6YXNSZWdFeHBDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChKU0M6OmlzUmVnRXhwKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAoSlNDOjpSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6
OlJlZ0V4cE9iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAoSlNDOjpyZWdFeHBP
YmplY3RTZXRMYXN0SW5kZXhTdHJpY3QpOgorICAgICAgICAoSlNDOjpyZWdFeHBPYmplY3RTZXRM
YXN0SW5kZXhOb25TdHJpY3QpOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnB1dCk6Cisg
ICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2Jq
ZWN0OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnNldFJl
Z0V4cCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6cmVnRXhwIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpzZXRMYXN0SW5kZXgpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OmdldExhc3RJbmRleCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6dGVzdCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6dGVzdElubGluZSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OlJlZ0V4cE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVnRXhwT2JqZWN0OjpvZmZzZXRPZlJlZ0V4cCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OlJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZMYXN0SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpSZWdFeHBPYmplY3Q6Om9mZnNldE9mTGFzdEluZGV4SXNXcml0YWJsZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6YWxsb2NhdGlvblNpemUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjphc1JlZ0V4cE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNUZXN0
RmFzdCk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY0V4ZWMpOgorICAgICAgICAoSlND
OjpyZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1
bmNDb21waWxlKToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwpOgorICAg
ICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlcklnbm9yZUNhc2UpOgorICAgICAgICAoSlNDOjpy
ZWdFeHBQcm90b0dldHRlck11bHRpbGluZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0
dGVyRG90QWxsKToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJTdGlja3kpOgorICAg
ICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlclVuaWNvZGUpOgorICAgICAgICAoSlNDOjpyZWdF
eHBQcm90b0dldHRlclNvdXJjZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY1NlYXJj
aEZhc3QpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OmFzU3RyaW5nT2JqZWN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6OnJlcGxhY2VVc2luZ1JlZ0V4cFNlYXJjaCk6CisgICAgICAgIChKU0M6OnJlcGxh
Y2UpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHApOgor
ICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICogcnVudGlt
ZS9TeW1ib2xQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpzeW1ib2xQcm90b0Z1bmNUb1N0
cmluZyk6CisgICAgICAgIChKU0M6OnN5bWJvbFByb3RvRnVuY1ZhbHVlT2YpOgorICAgICAgICAq
IHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAoV1RGOjpjdXN0b21HZXRWYWx1ZSk6Cisg
ICAgICAgIChXVEY6OmN1c3RvbVNldFZhbHVlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNz
ZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OmlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24p
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6Y3JlYXRlKToKKwogMjAxOC0w
My0wNyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBT
b3J0IGFuZCBzZXBhcmF0ZSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU2
MWYxODkwNzRhZThkNTQ4NzVjZDQ2ZTQwMjBmNTgwOTM2MDg2M2UuLjQzYzE4NzI4ODcyZDlmMjYw
OWE2ZGExZDJhODY4MzU4NWI5YTVmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAx
OC0wMy0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAg
ICBbSlNDXSBBZGQgaW5oZXJpdHM8VD4oVk0mKSBsZXZlcmFnaW5nIEpTQ2FzdCBmYXN0IHBhdGgK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQyOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJ
REJLZXlGcm9tVmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVUb0RhdGUpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFs
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRv
dzo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9t
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNOb2RlOjpwdXNoRXZlbnRIYW5kbGVyU2NvcGUgY29uc3QpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTWFBhdGhOU1Jlc29sdmVyOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1NjcmlwdFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRvbVdpbmRvd0Zyb21FeGVjU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3Rh
dGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmlzQXJyYXkpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xvbmVTZXJpYWxpemVyOjppc01hcCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNl
cmlhbGl6ZXI6OmlzU2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVt
cEFycmF5QnVmZmVyVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1
bXBET01Qb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBET01S
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcERPTU1hdHJpeCk6
CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpDbG9uZURlc2VyaWFsaXplcik6Cisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6cmVhZEFycmF5QnVmZmVyVmlldyk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAg
IChHZW5lcmF0ZU92ZXJsb2FkRGlzcGF0Y2hlcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RPdmVybG9hZERpc3BhdGNoZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0
aE9wdGlvbmFsUGFyYW1ldGVyT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlz
aGluZ1VuaW9uT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlv
bnNPdmVybG9hZERpc3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb25PdmVy
bG9hZERpc3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFi
bGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlck92ZXJsb2FkRGlzcGF0Y2hlcik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRl
ZEZ1bmN0aW9uT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6
CisgICAgICAgICogYnJpZGdlL2MvY19pbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRp
bmdzOjpDSW5zdGFuY2U6Omludm9rZU1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL29iamMvV2Vi
U2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAoK1tXZWJTY3JpcHRPYmplY3QgX2NvbnZlcnRWYWx1
ZVRvT2JqY1ZhbHVlOm9yaWdpblJvb3RPYmplY3Q6cm9vdE9iamVjdDpdKToKKyAgICAgICAgKiBi
cmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tOgorICAgICAgICAoT2JqY0luc3RhbmNlOjppbnZv
a2VNZXRob2QpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OmNhbGxPYmpDRmFsbGJhY2tPYmplY3QpOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX21ldGhvZC5jcHA6CisgICAgICAgIChKU0M6OmNhbGxSdW50aW1lTWV0aG9k
KToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpC
aW5kaW5nczo6Y2FsbFJ1bnRpbWVPYmplY3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Y2Fs
bFJ1bnRpbWVDb25zdHJ1Y3Rvcik6CisgICAgICAgICogaW5zcGVjdG9yL1dlYkluamVjdGVkU2Ny
aXB0SG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJJbmplY3RlZFNjcmlwdEhvc3Q6OnN1
YnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViSW5qZWN0ZWRTY3JpcHRIb3N0Ojppc0hUTUxB
bGxDb2xsZWN0aW9uKToKKwogMjAxOC0wMy0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIGxpbmtpbmcgQXBwbGljYXRpb25TZXJ2aWNlcyBk
aXJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBlZjFiNWYwMjM5NTFhZWY2MWQ5MGUyMTcxN2Q0YjczN2RlNmRm
YTYxLi4yZDdkY2JmY2Y2YjI3ODQyY2JiOGQ0NjFhZTk3YTQ5ODlkOTM3YTg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDE4LTAzLTA4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBpbmhlcml0czxUPihWTSYpIGxldmVyYWdp
bmcgSlNDYXN0IGZhc3QgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgzNDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OmNhbGxNZXRob2QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y2FsbE5QSlNP
YmplY3QpOgorICAgICAgICAoV2ViS2l0Ojpjb25zdHJ1Y3RXaXRoQ29uc3RydWN0b3IpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TlBKU09iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y291bnRlclZh
bHVlKToKKwogMjAxOC0wMy0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBTdG9wIGxpbmtpbmcgQXBwbGljYXRpb25TZXJ2aWNlcyBkaXJlY3RseQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDY0NjkxZjAwZjBmZjQ4Mzc3YTE4Y2I3ZDZj
M2Q5OTY0MmVhYjcyNmUuLmVhZmZlZTc4Y2E4ZGUxOTU3Yjc4ZTk3MWVlZjVhODcyMTcyNzdiZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0wMy0w
OCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlND
XSBBZGQgaW5oZXJpdHM8VD4oVk0mKSBsZXZlcmFnaW5nIEpTQ2FzdCBmYXN0IHBhdGgKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQyOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRE9NL0RPTS5tbToK
KyAgICAgICAgKCtbRE9NTm9kZSBfbm9kZUZyb21KU1dyYXBwZXI6XSk6CisgICAgICAgICogUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnJldGFpbkxvY2FsT2JqZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpyZWxlYXNlTG9jYWxP
YmplY3QpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW06CisgICAg
ICAgIChXZWJLaXQ6OlByb3h5SW5zdGFuY2U6Omludm9rZU1ldGhvZCk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoYWVEZXNjRnJvbUpTVmFsdWUpOgorCiAyMDE4LTAz
LTA4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFN0
b3AgbGlua2luZyBBcHBsaWNhdGlvblNlcnZpY2VzIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cKaW5kZXggMjFkYzc4NTA4YTRlYTRiOWJkZGEzMTE0MTI3NzMwNDJjNjU0NmI4My4u
ZTcyZTNiMDE1N2NkNGJhOTBmYTk5ZjZlM2I5M2RlMTdiMDE0MzIzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTAzLTA4ICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBpbmhlcml0czxU
PihWTSYpIGxldmVyYWdpbmcgSlNDYXN0IGZhc3QgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJG
cmFtZTo6c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEluU2NyaXB0V29ybGQpOgorCiAyMDE4
LTAzLTA4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IFN0b3AgbGlua2luZyBBcHBsaWNhdGlvblNlcnZpY2VzIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDY3NDczMzc2NjI5YmMwNDVkZjFiYWI1
MTg0N2JiYzg5YmZlOGZkOWUuLjRmODg2ODE5NmEyYjczMWFmMjY5ZDQwOGFhZjA2MjE0Y2FlYzc4
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC01MDEs
MTUgKzUwMSwxNSBAQCBKU1ZhbHVlUmVmIEpTT2JqZWN0R2V0UHJpdmF0ZVByb3BlcnR5KEpTQ29u
dGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdAogCiAKICAgICAvLyBHZXQgd3Jh
cHBlZCBvYmplY3QgaWYgcHJveGllZAotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpT
UHJveHk6OmluZm8oKSkpCisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU1Byb3h5Pih2bSkp
CiAgICAgICAgIGpzT2JqZWN0ID0ganNDYXN0PEpTUHJveHkqPihqc09iamVjdCktPnRhcmdldCgp
OwogCi0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0ds
b2JhbE9iamVjdD46OmluZm8oKSkpCisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU0NhbGxi
YWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pj4odm0pKQogICAgICAgICByZXN1bHQgPSBqc0Nhc3Q8
SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4qPihqc09iamVjdCktPmdldFByaXZhdGVQ
cm9wZXJ0eShuYW1lKTsKLSAgICBlbHNlIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2Fs
bGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+OjppbmZvKCkpKQorICAgIGVsc2UgaWYg
KGpzT2JqZWN0LT5pbmhlcml0czxKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
Pj4odm0pKQogICAgICAgICByZXN1bHQgPSBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0Rlc3Ry
dWN0aWJsZU9iamVjdD4qPihqc09iamVjdCktPmdldFByaXZhdGVQcm9wZXJ0eShuYW1lKTsKICNp
ZiBKU0NfT0JKQ19BUElfRU5BQkxFRAotICAgIGVsc2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2
bSwgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjppbmZvKCkpKQorICAgIGVs
c2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9i
amVjdD4+KHZtKSkKICAgICAgICAgcmVzdWx0ID0ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNB
UElXcmFwcGVyT2JqZWN0Pio+KGpzT2JqZWN0KS0+Z2V0UHJpdmF0ZVByb3BlcnR5KG5hbWUpOwog
I2VuZGlmCiAgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHJlc3VsdCk7CkBAIC01MjUsMTkgKzUyNSwx
OSBAQCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZVByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpT
T2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZQogICAgIElkZW50aWZpZXIgbmFtZShwcm9wZXJ0
eU5hbWUtPmlkZW50aWZpZXIoJnZtKSk7CiAKICAgICAvLyBHZXQgd3JhcHBlZCBvYmplY3QgaWYg
cHJveGllZAotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTUHJveHk6OmluZm8oKSkp
CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU1Byb3h5Pih2bSkpCiAgICAgICAgIGpzT2Jq
ZWN0ID0ganNDYXN0PEpTUHJveHkqPihqc09iamVjdCktPnRhcmdldCgpOwogCi0gICAgaWYgKGpz
T2JqZWN0LT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46Omlu
Zm8oKSkpIHsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNH
bG9iYWxPYmplY3Q+Pih2bSkpIHsKICAgICAgICAganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNH
bG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5zZXRQcml2YXRlUHJvcGVydHkodm0sIG5hbWUsIGpz
VmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgaWYgKGpzT2JqZWN0LT5p
bmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9iamVjdD46OmluZm8o
KSkpIHsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0
cnVjdGlibGVPYmplY3Q+Pih2bSkpIHsKICAgICAgICAganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8
SlNEZXN0cnVjdGlibGVPYmplY3Q+Kj4oanNPYmplY3QpLT5zZXRQcml2YXRlUHJvcGVydHkodm0s
IG5hbWUsIGpzVmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAjaWYgSlNDX09C
SkNfQVBJX0VOQUJMRUQKLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNr
T2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkpIHsKKyAgICBpZiAoanNPYmplY3Qt
PmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pj4odm0pKSB7CiAg
ICAgICAgIGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD4qPihqc09i
amVjdCktPnNldFByaXZhdGVQcm9wZXJ0eSh2bSwgbmFtZSwganNWYWx1ZSk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KQEAgLTU1NCwxOSArNTU0LDE5IEBAIGJvb2wgSlNPYmplY3REZWxl
dGVQcml2YXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBK
U1N0cmluCiAgICAgSWRlbnRpZmllciBuYW1lKHByb3BlcnR5TmFtZS0+aWRlbnRpZmllcigmdm0p
KTsKIAogICAgIC8vIEdldCB3cmFwcGVkIG9iamVjdCBpZiBwcm94aWVkCi0gICAgaWYgKGpzT2Jq
ZWN0LT5pbmhlcml0cyh2bSwgSlNQcm94eTo6aW5mbygpKSkKKyAgICBpZiAoanNPYmplY3QtPmlu
aGVyaXRzPEpTUHJveHk+KHZtKSkKICAgICAgICAganNPYmplY3QgPSBqc0Nhc3Q8SlNQcm94eSo+
KGpzT2JqZWN0KS0+dGFyZ2V0KCk7CiAKLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKHZtLCBK
U0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6aW5mbygpKSkgeworICAgIGlmIChqc09i
amVjdC0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4+KHZtKSkgewog
ICAgICAgICBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4qPihqc09iamVj
dCktPmRlbGV0ZVByaXZhdGVQcm9wZXJ0eShuYW1lKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2FsbGJhY2tPYmplY3Q8SlNE
ZXN0cnVjdGlibGVPYmplY3Q+OjppbmZvKCkpKSB7CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0
czxKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pj4odm0pKSB7CiAgICAgICAg
IGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pio+KGpzT2JqZWN0
KS0+ZGVsZXRlUHJpdmF0ZVByb3BlcnR5KG5hbWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRz
KHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkpIHsKKyAg
ICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2Jq
ZWN0Pj4odm0pKSB7CiAgICAgICAgIGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBl
ck9iamVjdD4qPihqc09iamVjdCktPmRlbGV0ZVByaXZhdGVQcm9wZXJ0eShuYW1lKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZhbHVlLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCmlu
ZGV4IDZmM2IxZDhmNjY0ZDQ3Y2M2ZDc5ZWM0NTY4YTNkODkyODFjMjAyZTguLmM4MTBmMTRjNDcy
ZmFhNzE2YWVjZGMyZTI0OGU2Nzg1MDZkMjA3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
VmFsdWUubW0KQEAgLTU3NCwxMyArNTc0LDEzIEBAIEBlbmQKIGlubGluZSBib29sIGlzRGF0ZShK
U0M6OlZNJiB2bSwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4
dCkKIHsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIodG9KUyhjb250ZXh0KSk7Ci0gICAg
cmV0dXJuIHRvSlMob2JqZWN0KS0+aW5oZXJpdHModm0sIEpTQzo6RGF0ZUluc3RhbmNlOjppbmZv
KCkpOworICAgIHJldHVybiB0b0pTKG9iamVjdCktPmluaGVyaXRzPEpTQzo6RGF0ZUluc3RhbmNl
Pih2bSk7CiB9CiAKIGlubGluZSBib29sIGlzQXJyYXkoSlNDOjpWTSYgdm0sIEpTT2JqZWN0UmVm
IG9iamVjdCwgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAgSlNDOjpKU0xvY2tI
b2xkZXIgbG9ja2VyKHRvSlMoY29udGV4dCkpOwotICAgIHJldHVybiB0b0pTKG9iamVjdCktPmlu
aGVyaXRzKHZtLCBKU0M6OkpTQXJyYXk6OmluZm8oKSk7CisgICAgcmV0dXJuIHRvSlMob2JqZWN0
KS0+aW5oZXJpdHM8SlNDOjpKU0FycmF5Pih2bSk7CiB9CiAKIEBpbXBsZW1lbnRhdGlvbiBKU1Zh
bHVlKEludGVybmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Zh
bHVlUmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKaW5k
ZXggMjNkYmM3MjJlZjBiYjdiZDE4YzIwOTYxZGUyY2UxYTgwODU3YmY0ZC4uMDBiZjA2MWFkYTJk
MTZjMTc1ODc0ZDhkODE4MDY5MzQ1N2ZhOTgzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTVmFsdWVSZWYuY3BwCkBAIC0xNzIsNyArMTcyLDcgQEAgYm9vbCBKU1ZhbHVlSXNBcnJheShK
U0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcihleGVjKTsKIAotICAgIHJldHVybiB0b0pTKGV4
ZWMsIHZhbHVlKS5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKTsKKyAgICByZXR1cm4gdG9K
UyhleGVjLCB2YWx1ZSkuaW5oZXJpdHM8SlNBcnJheT4odm0pOwogfQogCiBib29sIEpTVmFsdWVJ
c0RhdGUoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSkKQEAgLTE4NSw3ICsxODUs
NyBAQCBib29sIEpTVmFsdWVJc0RhdGUoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1
ZSkKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoZXhl
Yyk7CiAKLSAgICByZXR1cm4gdG9KUyhleGVjLCB2YWx1ZSkuaW5oZXJpdHModm0sIERhdGVJbnN0
YW5jZTo6aW5mbygpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB2YWx1ZSkuaW5oZXJpdHM8RGF0
ZUluc3RhbmNlPih2bSk7CiB9CiAKIGJvb2wgSlNWYWx1ZUlzT2JqZWN0T2ZDbGFzcyhKU0NvbnRl
eHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU0NsYXNzUmVmIGpzQ2xhc3MpCkBAIC0yMDEs
MTUgKzIwMSwxNSBAQCBib29sIEpTVmFsdWVJc09iamVjdE9mQ2xhc3MoSlNDb250ZXh0UmVmIGN0
eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNDbGFzc1JlZiBqc0NsYQogICAgIEpTVmFsdWUganNWYWx1
ZSA9IHRvSlMoZXhlYywgdmFsdWUpOwogICAgIAogICAgIGlmIChKU09iamVjdCogbyA9IGpzVmFs
dWUuZ2V0T2JqZWN0KCkpIHsKLSAgICAgICAgaWYgKG8tPmluaGVyaXRzKHZtLCBKU1Byb3h5Ojpp
bmZvKCkpKQorICAgICAgICBpZiAoby0+aW5oZXJpdHM8SlNQcm94eT4odm0pKQogICAgICAgICAg
ICAgbyA9IGpzQ2FzdDxKU1Byb3h5Kj4obyktPnRhcmdldCgpOwogCi0gICAgICAgIGlmIChvLT5p
bmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmluZm8oKSkpCisg
ICAgICAgIGlmIChvLT5pbmhlcml0czxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pj4o
dm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFs
T2JqZWN0Pio+KG8pLT5pbmhlcml0cyhqc0NsYXNzKTsKLSAgICAgICAgaWYgKG8tPmluaGVyaXRz
KHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pjo6aW5mbygpKSkKKyAg
ICAgICAgaWYgKG8tPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmpl
Y3Q+Pih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNE
ZXN0cnVjdGlibGVPYmplY3Q+Kj4obyktPmluaGVyaXRzKGpzQ2xhc3MpOwogI2lmIEpTQ19PQkpD
X0FQSV9FTkFCTEVECi0gICAgICAgIGlmIChvLT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVj
dDxKU0FQSVdyYXBwZXJPYmplY3Q+OjppbmZvKCkpKQorICAgICAgICBpZiAoby0+aW5oZXJpdHM8
SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+Pih2bSkpCiAgICAgICAgICAgICBy
ZXR1cm4ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pio+KG8pLT5p
bmhlcml0cyhqc0NsYXNzKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwCmluZGV4IDdmMWNk
NTIyMWMxNDFmNGE3NDQ1NDIxMjM0NmM5YjY3MWQ3NzE0Y2UuLjc4MzMyZDc5YWVjNmQyODViYzFj
M2E2NDU2ZTFkZGU5MmZkMmNhZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcApAQCAtNjMsOSArNjMsOSBAQCB2
b2lkIEpTV2Vha09iamVjdE1hcFNldChKU0NvbnRleHRSZWYgY3R4LCBKU1dlYWtPYmplY3RNYXBS
ZWYgbWFwLCB2b2lkKiBrZXksIEpTTwogICAgIEpTT2JqZWN0KiBvYmogPSB0b0pTKG9iamVjdCk7
CiAgICAgaWYgKCFvYmopCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQob2JqLT5pbmhlcml0
cyh2bSwgSlNQcm94eTo6aW5mbygpKQotICAgICAgICB8fCBvYmotPmluaGVyaXRzKHZtLCBKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6aW5mbygpKQotICAgICAgICB8fCBvYmotPmlu
aGVyaXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pjo6aW5mbygp
KSk7CisgICAgQVNTRVJUKG9iai0+aW5oZXJpdHM8SlNQcm94eT4odm0pCisgICAgICAgIHx8IG9i
ai0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4+KHZtKQorICAgICAg
ICB8fCBvYmotPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+
Pih2bSkpOwogICAgIG1hcC0+bWFwKCkuc2V0KGtleSwgb2JqKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQppbmRleCA5NDI1MTk1ZjhkNjQ0NmY3MjM1YzRi
MWNkMWZmZDdjMTBlNGNjMDNkLi40ZjVhMTNiODAxMmE2NTdhZTIxOWFlNjA0MmFhMDkyZThmMzdj
MjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5t
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpAQCAtNjQ0
LDcgKzY0NCw3IEBAIGlkIHRyeVVud3JhcE9iamNPYmplY3QoSlNHbG9iYWxDb250ZXh0UmVmIGNv
bnRleHQsIEpTVmFsdWVSZWYgdmFsdWUpCiAgICAgQVNTRVJUKCFleGNlcHRpb24pOwogICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2tlcih0b0pTKGNvbnRleHQpKTsKICAgICBKU0M6OlZNJiB2bSA9
IHRvSlMoY29udGV4dCktPnZtKCk7Ci0gICAgaWYgKHRvSlMob2JqZWN0KS0+aW5oZXJpdHModm0s
IEpTQzo6SlNDYWxsYmFja09iamVjdDxKU0M6OkpTQVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkp
CisgICAgaWYgKHRvSlMob2JqZWN0KS0+aW5oZXJpdHM8SlNDOjpKU0NhbGxiYWNrT2JqZWN0PEpT
Qzo6SlNBUElXcmFwcGVyT2JqZWN0Pj4odm0pKQogICAgICAgICByZXR1cm4gKGlkKUpTQzo6anND
YXN0PEpTQzo6SlNBUElXcmFwcGVyT2JqZWN0Kj4odG9KUyhvYmplY3QpKS0+d3JhcHBlZE9iamVj
dCgpOwogICAgIGlmIChpZCB0YXJnZXQgPSB0cnlVbndyYXBDb25zdHJ1Y3Rvcigmdm0sIG9iamVj
dCkpCiAgICAgICAgIHJldHVybiB0YXJnZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbQppbmRleCA2M2Y5MjBlZGIyMjRmMWFkZDFkMDli
N2ExMTIzN2FkNjVhMTg3OTI5Li5hODhhMjcwNWQ3MzE4Mjc0ZmUxNzk4OGEzOWQwZGVjNjJiZjIz
YWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1
bmN0aW9uLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVu
Y3Rpb24ubW0KQEAgLTcwMiw3ICs3MDIsNyBAQCBKU09iamVjdFJlZiBvYmpDQ2FsbGJhY2tGdW5j
dGlvbkZvckJsb2NrKEpTQ29udGV4dCAqY29udGV4dCwgaWQgdGFyZ2V0KQogCiBpZCB0cnlVbndy
YXBDb25zdHJ1Y3RvcihKU0M6OlZNKiB2bSwgSlNPYmplY3RSZWYgb2JqZWN0KQogewotICAgIGlm
ICghdG9KUyhvYmplY3QpLT5pbmhlcml0cygqdm0sIEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb246
OmluZm8oKSkpCisgICAgaWYgKCF0b0pTKG9iamVjdCktPmluaGVyaXRzPEpTQzo6T2JqQ0NhbGxi
YWNrRnVuY3Rpb24+KCp2bSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgSlNDOjpPYmpDQ2Fs
bGJhY2tGdW5jdGlvbkltcGwqIGltcGwgPSBzdGF0aWNfY2FzdDxKU0M6Ok9iakNDYWxsYmFja0Z1
bmN0aW9uKj4odG9KUyhvYmplY3QpKS0+aW1wbCgpOwogICAgIGlmICghaW1wbC0+aXNDb25zdHJ1
Y3RpYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCmluZGV4IGNkZmIwZTI4MmNjNGY3YjUzMjAxYjJjYzFjMjAzMWRmOGRiMDRkOTEuLmE1
NjNkNzgwNDNjZGY4ZDEyMjU1YTRkMGIyZjIwYjRjZWQ5MzE4NzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC00NDYzLDcgKzQ0NjMs
NyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAg
ICAgICAgICAgICAgIGlmIChjYWNoZWRGdW5jdGlvbgogICAgICAgICAgICAgICAgICAgICAmJiBj
YWNoZWRGdW5jdGlvbiAhPSBKU0NlbGw6OnNlZW5NdWx0aXBsZUNhbGxlZU9iamVjdHMoKQogICAg
ICAgICAgICAgICAgICAgICAmJiAhbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNF
eGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2VsbCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
QVNTRVJUKGNhY2hlZEZ1bmN0aW9uLT5pbmhlcml0cygqbV92bSwgSlNGdW5jdGlvbjo6aW5mbygp
KSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChjYWNoZWRGdW5jdGlvbi0+aW5oZXJpdHM8
SlNGdW5jdGlvbj4oKm1fdm0pKTsKIAogICAgICAgICAgICAgICAgICAgICBGcm96ZW5WYWx1ZSog
ZnJvemVuID0gbV9ncmFwaC5mcmVlemUoY2FjaGVkRnVuY3Rpb24pOwogICAgICAgICAgICAgICAg
ICAgICBhZGRUb0dyYXBoKENoZWNrQ2VsbCwgT3BJbmZvKGZyb3plbiksIGNhbGxlZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCAyMzM3YWM1OGNh
YzIzZjkwNTliN2QwNDRlOTczZWJiYTQ0NjZmMzIyLi5iMWRhZGQyZmRjNmZmZDRiYWVkY2VhNjFh
MTRlNWZkNmU3ODY1ZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKQEAgLTEwNDksNyArMTA0OSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUmVnRXhwRXhlY0dlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhCiAg
ICAgSlNWYWx1ZSBiYXNlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKICAgICBKU1Zh
bHVlIGFyZ3VtZW50ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVudCk7CiAgICAgCi0g
ICAgaWYgKCFiYXNlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpCisgICAgYXV0
byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgYmFzZSk7CisgICAg
aWYgKFVOTElLRUxZKCFyZWdleHApKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSk7CiAKICAgICBKU1N0cmluZyogaW5wdXQgPSBhcmd1bWVudC50b1N0cmluZ09y
TnVsbChleGVjKTsKQEAgLTEwNTcsNyArMTA1OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlY0dlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
CiAgICAgaWYgKCFpbnB1dCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShhc1JlZ0V4cE9iamVjdChiYXNlKS0+ZXhlYyhleGVjLCBnbG9iYWxPYmplY3QsIGlucHV0KSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWdleHAtPmV4ZWMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBpbnB1dCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blJlZ0V4cEV4ZWNOb25HbG9iYWxPclN0aWNreShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cCogcmVnRXhwLCBKU1N0cmluZyogc3RyaW5nKQpAQCAt
MTE4MCw3ICsxMTgxLDggQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVz
dEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCoKICAgICBKU1ZhbHVlIGJh
c2UgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgYXJndW1lbnQg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEFyZ3VtZW50KTsKIAotICAgIGlmICghYmFzZS5pbmhl
cml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSB7CisgICAgYXV0byogcmVnZXhwID0ganNE
eW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgYmFzZSk7CisgICAgaWYgKFVOTElLRUxZKCFy
ZWdleHApKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTExOTAsNyArMTE5Miw3IEBAIHNpemVfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqCiAgICAgaWYgKCFpbnB1dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHNj
b3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYXNSZWdFeHBPYmplY3QoYmFzZSktPnRlc3QoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbnB1dCk7CisgICAgcmV0dXJuIHJlZ2V4cC0+dGVzdChleGVjLCBn
bG9iYWxPYmplY3QsIGlucHV0KTsKIH0KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
Q29tcGFyZVN0cmljdEVxQ2VsbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggZDhlYmM5ZmRkNGJhMjQ5OWM0YmM3ZDE5
N2M2ZDY1YjU1MWIzM2I0OC4uMzhiNzQ3MTI0MTQ4OTNmNmIzMTVkNWU4Nzk5ODVlODc2OWY2OTlm
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApA
QCAtOTgwOCw3ICs5ODA4LDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB2b2lkIGNvbXBp
bGVPdmVycmlkZXNIYXNJbnN0YW5jZSgpCiAgICAgewogICAgICAgICBGcm96ZW5WYWx1ZSogZGVm
YXVsdEhhc0luc3RhbmNlRnVuY3Rpb24gPSBtX25vZGUtPmNlbGxPcGVyYW5kKCk7Ci0gICAgICAg
IEFTU0VSVChkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbi0+Y2VsbCgpLT5pbmhlcml0cyh2bSgp
LCBKU0Z1bmN0aW9uOjppbmZvKCkpKTsKKyAgICAgICAgQVNTRVJUKGRlZmF1bHRIYXNJbnN0YW5j
ZUZ1bmN0aW9uLT5jZWxsKCktPmluaGVyaXRzPEpTRnVuY3Rpb24+KHZtKCkpKTsKIAogICAgICAg
ICBMVmFsdWUgY29uc3RydWN0b3IgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAg
ICBMVmFsdWUgaGFzSW5zdGFuY2UgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOwpAQCAt
MTA3MjgsNyArMTA3MjgsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAg
RnJvemVuVmFsdWUqIHJlZ2V4cCA9IG1fbm9kZS0+Y2VsbE9wZXJhbmQoKTsKICAgICAgICAgTFZh
bHVlIGxhc3RJbmRleCA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEFT
U0VSVChyZWdleHAtPmNlbGwoKS0+aW5oZXJpdHModm0oKSwgUmVnRXhwOjppbmZvKCkpKTsKKyAg
ICAgICAgQVNTRVJUKHJlZ2V4cC0+Y2VsbCgpLT5pbmhlcml0czxSZWdFeHA+KHZtKCkpKTsKICAg
ICAgICAgQVNTRVJUKG1fbm9kZS0+Y2FzdE9wZXJhbmQ8UmVnRXhwKj4oKS0+aXNWYWxpZCgpKTsK
IAogICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcAppbmRleCBhYzVhZmM0YmVh
YTI5NDY1YTc3MGIyOGYxM2E5NDA3ODgxYmJkNTQwLi5jYWU4ZTRiODMwM2JmYzg4MzUzMzM0NzMx
MWYyZGI1MzIxYWYzOWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0
aW9ucy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBleHRlcm4gIkMiIEpTQ2VsbCogSklUX09QRVJB
VElPTiBvcGVyYXRpb25NYXRlcmlhbGl6ZU9iamVjdEluT1NSKAogICAgICAgICAgICAgaWYgKHBy
b3BlcnR5LmxvY2F0aW9uKCkgIT0gUHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3IoU3RydWN0dXJl
UExvYykpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0cyh2bSwg
U3RydWN0dXJlOjppbmZvKCkpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6
OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0czxTdHJ1Y3R1cmU+KHZtKSk7CiAg
ICAgICAgICAgICBzdHJ1Y3R1cmUgPSBqc0Nhc3Q8U3RydWN0dXJlKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE4NCwxMSAr
MTg0LDExIEBAIGV4dGVybiAiQyIgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1hdGVy
aWFsaXplT2JqZWN0SW5PU1IoCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1hdGVyaWFsaXph
dGlvbi0+cHJvcGVydGllcygpLnNpemUoKTsgaS0tOykgewogICAgICAgICAgICAgY29uc3QgRXhp
dFByb3BlcnR5VmFsdWUmIHByb3BlcnR5ID0gbWF0ZXJpYWxpemF0aW9uLT5wcm9wZXJ0aWVzKClb
aV07CiAgICAgICAgICAgICBpZiAocHJvcGVydHkubG9jYXRpb24oKSA9PSBQcm9tb3RlZExvY2F0
aW9uRGVzY3JpcHRvcihGdW5jdGlvbkV4ZWN1dGFibGVQTG9jKSkgewotICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhl
cml0cyh2bSwgRnVuY3Rpb25FeGVjdXRhYmxlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+aW5oZXJp
dHM8RnVuY3Rpb25FeGVjdXRhYmxlPih2bSkpOwogICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUg
PSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkp
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHByb3BlcnR5LmxvY2F0aW9uKCkgPT0g
UHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3IoRnVuY3Rpb25BY3RpdmF0aW9uUExvYykpIHsKLSAg
ICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5h
c0NlbGwoKS0+aW5oZXJpdHModm0sIEpTU2NvcGU6OmluZm8oKSkpOworICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhl
cml0czxKU1Njb3BlPih2bSkpOwogICAgICAgICAgICAgICAgIGFjdGl2YXRpb24gPSBqc0Nhc3Q8
SlNTY29wZSo+KEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpAQCAtMjExLDEwICsyMTEsMTAgQEAgZXh0ZXJuICJDIiBKU0NlbGwqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9TUigKICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gbWF0ZXJpYWxpemF0aW9uLT5wcm9wZXJ0aWVzKCkuc2l6ZSgpOyBpLS07KSB7CiAg
ICAgICAgICAgICBjb25zdCBFeGl0UHJvcGVydHlWYWx1ZSYgcHJvcGVydHkgPSBtYXRlcmlhbGl6
YXRpb24tPnByb3BlcnRpZXMoKVtpXTsKICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5sb2NhdGlv
bigpID09IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKEFjdGl2YXRpb25TY29wZVBMb2MpKSB7
Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tp
XSkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBKU1Njb3BlOjppbmZvKCkpKTsKKyAgICAgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+
aW5oZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAgICAgICBzY29wZSA9IGpzQ2FzdDxK
U1Njb3BlKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChwcm9wZXJ0eS5sb2NhdGlvbigpID09IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKEFj
dGl2YXRpb25TeW1ib2xUYWJsZVBMb2MpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBTeW1i
b2xUYWJsZTo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1
ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzPFN5bWJvbFRhYmxlPih2bSkp
OwogICAgICAgICAgICAgICAgIHRhYmxlID0ganNDYXN0PFN5bWJvbFRhYmxlKj4oSlNWYWx1ZTo6
ZGVjb2RlKHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC01NTIsNyAr
NTUyLDcgQEAgZXh0ZXJuICJDIiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0ZXJp
YWxpemVPYmplY3RJbk9TUigKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbWF0ZXJpYWxpemF0
aW9uLT5wcm9wZXJ0aWVzKCkuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBjb25zdCBFeGl0
UHJvcGVydHlWYWx1ZSYgcHJvcGVydHkgPSBtYXRlcmlhbGl6YXRpb24tPnByb3BlcnRpZXMoKVtp
XTsKICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5sb2NhdGlvbigpID09IFByb21vdGVkTG9jYXRp
b25EZXNjcmlwdG9yKFJlZ0V4cE9iamVjdFJlZ0V4cFBMb2MpKSB7Ci0gICAgICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVy
aXRzKHZtLCBSZWdFeHA6OmluZm8oKSkpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0czxSZWdFeHA+KHZt
KSk7CiAgICAgICAgICAgICAgICAgcmVnRXhwID0ganNDYXN0PFJlZ0V4cCo+KEpTVmFsdWU6OmRl
Y29kZSh2YWx1ZXNbaV0pKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNw
cAppbmRleCBlNjYwYTMxMGVmMTM1YjRhZTM4YzU5ZmNmMjdkZWFjNWFmMDg4ZTM1Li4zZDVjMTdh
MzUyYzg0YzMxODcxZTczYjdlMWQ4ZjdmMDQ2NWFlOGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAt
MTUwLDggKzE1MCw3IEBAIEpTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUoRXhl
Y1N0YXRlKiBleGVjKQogICAgIGlmICh2YWx1ZS5pc1N5bWJvbCgpKQogICAgICAgICByZXR1cm4g
dm0uc21hbGxTdHJpbmdzLnN5bWJvbFN0cmluZygpOwogCi0gICAgSlNPYmplY3QqIG9iamVjdCA9
IGFzT2JqZWN0KHZhbHVlKTsKLSAgICBpZiAob2JqZWN0KSB7CisgICAgaWYgKGF1dG8qIG9iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgdmFsdWUpKSB7CiAgICAgICAgIGlmIChv
YmplY3QtPmlzRXJyb3JJbnN0YW5jZSgpKQogICAgICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlh
bFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImVycm9yIikpOwogCkBAIC0xNTksNDkgKzE1OCw0
NyBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rp
b24qPih2bSwgdmFsdWUpOwogICAgICAgICBpZiAoZnVuY3Rpb24gJiYgZnVuY3Rpb24tPmlzQ2xh
c3NDb25zdHJ1Y3RvckZ1bmN0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4ganNOb250cml2aWFs
U3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiY2xhc3MiKSk7Ci0gICAgfQogCi0gICAgaWYgKHZh
bHVlLmluaGVyaXRzKHZtLCBKU0FycmF5OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7Ci0gICAgaWYgKHZhbHVl
LmluaGVyaXRzKHZtLCBEaXJlY3RBcmd1bWVudHM6OmluZm8oKSkgfHwgdmFsdWUuaW5oZXJpdHMo
dm0sIFNjb3BlZEFyZ3VtZW50czo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlh
bFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImFycmF5IikpOwotCi0gICAgaWYgKHZhbHVlLmlu
aGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJkYXRlIikpOwotICAgIGlmICh2YWx1ZS5p
bmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgicmVnZXhwIikpOwotICAgIGlmICh2YWx1
ZS5pbmhlcml0cyh2bSwgUHJveHlPYmplY3Q6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05v
bnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJwcm94eSIpKTsKLQotICAgIGlmICh2
YWx1ZS5pbmhlcml0cyh2bSwgSlNNYXA6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJtYXAiKSk7Ci0gICAgaWYgKHZhbHVlLmlu
aGVyaXRzKHZtLCBKU1NldDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0
cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoInNldCIpKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHMo
dm0sIEpTV2Vha01hcDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmlu
ZyhleGVjLCBBU0NJSUxpdGVyYWwoIndlYWttYXAiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRz
KHZtLCBKU1dlYWtTZXQ6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJp
bmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3ZWFrc2V0IikpOwotCi0gICAgaWYgKHZhbHVlLmluaGVy
aXRzKHZtLCBKU1N0cmluZ0l0ZXJhdG9yOjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiaXRlcmF0b3IiKSk7Ci0KLSAgICBpZiAo
b2JqZWN0KSB7CisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTQXJyYXk+KHZtKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJh
cnJheSIpKTsKKyAgICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8RGlyZWN0QXJndW1lbnRzPih2
bSkgfHwgb2JqZWN0LT5pbmhlcml0czxTY29wZWRBcmd1bWVudHM+KHZtKSkKKyAgICAgICAgICAg
IHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsK
KworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxEYXRlSW5zdGFuY2U+KHZtKSkKKyAgICAg
ICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJkYXRl
IikpOworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxSZWdFeHBPYmplY3Q+KHZtKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJy
ZWdleHAiKSk7CisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPFByb3h5T2JqZWN0Pih2bSkp
CisgICAgICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJh
bCgicHJveHkiKSk7CisKKyAgICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNNYXA+KHZtKSkK
KyAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFs
KCJtYXAiKSk7CisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTU2V0Pih2bSkpCisgICAg
ICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgic2V0
IikpOworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxKU1dlYWtNYXA+KHZtKSkKKyAgICAg
ICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3ZWFr
bWFwIikpOworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxKU1dlYWtTZXQ+KHZtKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3
ZWFrc2V0IikpOworCisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTU3RyaW5nSXRlcmF0
b3I+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVND
SUlMaXRlcmFsKCJpdGVyYXRvciIpKTsKKwogICAgICAgICBpZiAob2JqZWN0LT5nZXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JOZXh0SW5k
ZXhQcml2YXRlTmFtZSgpKQogICAgICAgICAgICAgfHwgb2JqZWN0LT5nZXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm1hcEJ1Y2tldFByaXZhdGVOYW1lKCkpCiAg
ICAgICAgICAgICB8fCBvYmplY3QtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuc2V0QnVja2V0UHJpdmF0ZU5hbWUoKSkpCiAgICAgICAgICAgICByZXR1cm4g
anNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiaXRlcmF0b3IiKSk7Ci0gICAg
fQogCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU0ludDhBcnJheTo6aW5mbygpKQotICAg
ICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgSlNJbnQxNkFycmF5OjppbmZvKCkpCi0gICAgICAg
IHx8IHZhbHVlLmluaGVyaXRzKHZtLCBKU0ludDMyQXJyYXk6OmluZm8oKSkKLSAgICAgICAgfHwg
dmFsdWUuaW5oZXJpdHModm0sIEpTVWludDhBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1
ZS5pbmhlcml0cyh2bSwgSlNVaW50OENsYW1wZWRBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2
YWx1ZS5pbmhlcml0cyh2bSwgSlNVaW50MTZBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1
ZS5pbmhlcml0cyh2bSwgSlNVaW50MzJBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5p
bmhlcml0cyh2bSwgSlNGbG9hdDMyQXJyYXk6OmluZm8oKSkKLSAgICAgICAgfHwgdmFsdWUuaW5o
ZXJpdHModm0sIEpTRmxvYXQ2NEFycmF5OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7CisgICAgICAgIGlmIChv
YmplY3QtPmluaGVyaXRzPEpTSW50OEFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+
aW5oZXJpdHM8SlNJbnQxNkFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJp
dHM8SlNJbnQzMkFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNV
aW50OEFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNVaW50OENs
YW1wZWRBcnJheT4odm0pCisgICAgICAgICAgICB8fCBvYmplY3QtPmluaGVyaXRzPEpTVWludDE2
QXJyYXk+KHZtKQorICAgICAgICAgICAgfHwgb2JqZWN0LT5pbmhlcml0czxKU1VpbnQzMkFycmF5
Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNGbG9hdDMyQXJyYXk+KHZt
KQorICAgICAgICAgICAgfHwgb2JqZWN0LT5pbmhlcml0czxKU0Zsb2F0NjRBcnJheT4odm0pKQor
ICAgICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwo
ImFycmF5IikpOworICAgIH0KIAogICAgIHJldHVybiBpbXBsKCkuc3VidHlwZShleGVjLCB2YWx1
ZSk7CiB9CkBAIC0yMTMsMTQgKzIxMCwxNCBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0
OjpmdW5jdGlvbkRldGFpbHMoRXhlY1N0YXRlKiBleGVjKQogCiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKICAgICBKU1ZhbHVlIHZhbHVlID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0g
ICAgaWYgKCF2YWx1ZS5hc0NlbGwoKS0+aW5oZXJpdHModm0sIEpTRnVuY3Rpb246OmluZm8oKSkp
CisgICAgYXV0byogZnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPih2bSwgdmFs
dWUpOworICAgIGlmICghZnVuY3Rpb24pCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwog
CiAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi84NzE5Mj4gV2ViIEluc3BlY3Rv
cjogRXhwb3NlIGZ1bmN0aW9uIHNjb3BlIC8gY2xvc3VyZSBkYXRhCiAKICAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgcHJvdmlkZSBiZXR0ZXIgZGV0YWlscyBmb3IgSlNCb3VuZEZ1bmN0aW9ucy4K
IAotICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPih2YWx1ZSk7
CiAgICAgY29uc3QgU291cmNlQ29kZSogc291cmNlQ29kZSA9IGZ1bmN0aW9uLT5zb3VyY2VDb2Rl
KCk7CiAgICAgaWYgKCFzb3VyY2VDb2RlKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckhlYXBBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JIZWFwQWdlbnQuY3BwCmluZGV4IGEyYjZkMDQyYWQyMmVmNmM1ZGQxZWE5ZDI3
MzQwYjQ5MTQwZjQ5ZjMuLjJmYjhiN2VjZDdmYjU2YjY5MWM3ZDU5MjMwMjU3OTY4MTI2MTc0NjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckhlYXBBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmNwcApAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgSW5z
cGVjdG9ySGVhcEFnZW50OjpnZXRQcmV2aWV3KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50
IGhlYXBPYmplY3RJZCwKICAgICB9CiAKICAgICAvLyBGdW5jdGlvbiBwcmV2aWV3LgotICAgIGlm
IChjZWxsLT5pbmhlcml0cyh2bSwgSlNGdW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlmIChjZWxs
LT5pbmhlcml0czxKU0Z1bmN0aW9uPih2bSkpIHsKICAgICAgICAgaW5qZWN0ZWRTY3JpcHQuZnVu
Y3Rpb25EZXRhaWxzKGVycm9yU3RyaW5nLCBjZWxsLCBmdW5jdGlvbkRldGFpbHMpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHAKaW5kZXggY2RjMGY3MjIwNzBiZTdlNTM1ZWFkZTA3MWRiYjMyZjY1
MGZmMTFlNi4uZWE3OGFjNjlkZWMyYzE4MzExODI2Mzk5ZDJhMjYwZmExN2RjMWIxNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBA
IC02MzEsNyArNjMxLDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBub3RpZnlEZWJ1Z2dl
ck9mVW53aW5kaW5nKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUKICAgICBpZiAoRGVidWdn
ZXIqIGRlYnVnZ2VyID0gY2FsbEZyYW1lLT52bUVudHJ5R2xvYmFsT2JqZWN0KHZtKS0+ZGVidWdn
ZXIoKSkgewogICAgICAgICBTdXNwZW5kRXhjZXB0aW9uU2NvcGUgc2NvcGUoJnZtKTsKICAgICAg
ICAgaWYgKGNhbGxGcmFtZS0+aXNBbnlXYXNtQ2FsbGVlKCkKLSAgICAgICAgICAgIHx8IChjYWxs
RnJhbWUtPmNhbGxlZSgpLmlzQ2VsbCgpICYmIGNhbGxGcmFtZS0+Y2FsbGVlKCkuYXNDZWxsKCkt
PmluaGVyaXRzKHZtLCBKU0Z1bmN0aW9uOjppbmZvKCkpKSkKKyAgICAgICAgICAgIHx8IChjYWxs
RnJhbWUtPmNhbGxlZSgpLmlzQ2VsbCgpICYmIGNhbGxGcmFtZS0+Y2FsbGVlKCkuYXNDZWxsKCkt
PmluaGVyaXRzPEpTRnVuY3Rpb24+KHZtKSkpCiAgICAgICAgICAgICBkZWJ1Z2dlci0+dW53aW5k
RXZlbnQoY2FsbEZyYW1lKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZGVidWdnZXItPmRp
ZEV4ZWN1dGVQcm9ncmFtKGNhbGxGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5jcHAKaW5kZXggZjcwNjY2ZDg5NzBmNmM3MzMx
NTkwNzgxNzdkM2VhM2M1NTgwYWI3MC4uZTM0NDNmMTg5MWQxNzU2YjAzZGZmOGZhNmEyMjg1Y2E4
ZTU1ZGNiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1No
YWRvd0NoaWNrZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9T
aGFkb3dDaGlja2VuLmNwcApAQCAtMzAyLDExICszMDIsMTEgQEAgdm9pZCBTaGFkb3dDaGlja2Vu
Ojp1cGRhdGUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICBpZiAoY29k
ZUJsb2NrICYmIGNvZGVCbG9jay0+d2FzQ29tcGlsZWRXaXRoRGVidWdnaW5nT3Bjb2RlcygpICYm
IGNvZGVCbG9jay0+c2NvcGVSZWdpc3RlcigpLmlzVmFsaWQoKSkgewogICAgICAgICAgICAgICAg
IHNjb3BlID0gY2FsbEZyYW1lLT5zY29wZShjb2RlQmxvY2stPnNjb3BlUmVnaXN0ZXIoKS5vZmZz
ZXQoKSk7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc2NvcGUtPmluaGVyaXRzKHZt
LCBKU1Njb3BlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzY29w
ZS0+aW5oZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmRG
cmFtZSkgewogICAgICAgICAgICAgICAgIHNjb3BlID0gbV9sb2dbaW5kZXhJbkxvZ10uc2NvcGU7
CiAgICAgICAgICAgICAgICAgaWYgKHNjb3BlKQotICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVChzY29wZS0+aW5oZXJpdHModm0sIEpTU2NvcGU6OmluZm8oKSkpOworICAgICAgICAg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzY29wZS0+aW5oZXJpdHM8SlNTY29wZT4odm0pKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRvUHVzaC5hcHBlbmQoRnJhbWUoanNDYXN0PEpT
T2JqZWN0Kj4odmlzaXRvci0+Y2FsbGVlKCkuYXNDZWxsKCkpLCBjYWxsRnJhbWUsIGlzVGFpbERl
bGV0ZWQsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCksIHNjb3BlLCBjb2RlQmxvY2ssIGNhbGxGcmFt
ZS0+Y2FsbFNpdGVJbmRleCgpKSk7CiAKQEAgLTM1MSw3ICszNTEsNyBAQCB2b2lkIFNoYWRvd0No
aWNrZW46OnVwZGF0ZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICBQYWNrZXQgcGFja2V0ID0gbV9sb2dbaW5kZXhJbkxv
Z107CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNUYWlsRGVsZXRlZCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHRhaWxQYWNrZXQuc2NvcGUtPmluaGVyaXRz
KHZtLCBKU1Njb3BlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQodGFpbFBhY2tldC5zY29wZS0+aW5oZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAg
ICAgICAgICAgdG9QdXNoLmFwcGVuZChGcmFtZShwYWNrZXQuY2FsbGVlLCBwYWNrZXQuZnJhbWUs
IGlzVGFpbERlbGV0ZWQsIHRhaWxQYWNrZXQudGhpc1ZhbHVlLCB0YWlsUGFja2V0LnNjb3BlLCB0
YWlsUGFja2V0LmNvZGVCbG9jaywgdGFpbFBhY2tldC5jYWxsU2l0ZUluZGV4KSk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4
IGY2NDIwY2FlNjE2YWFjNTI0YzJhODE5NGU5YmQwMmY0ZjU3MDk0ZTQuLjU1MTEzOWZiZjI4NjQ0
YTBkNjU2ZmNhZDA0ZjQ2ZTk3ZjcyYjhiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAK
QEAgLTE5Niw3ICsxOTYsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAK
ICAgICBWTSYgdm0gPSAqbV9jb2RlQmxvY2stPnZtKCk7CiAgICAgdW5zaWduZWQgc3RhcnRCeXRl
Y29kZU9mZnNldCA9IDA7Ci0gICAgaWYgKG1fbG9vcE9TUkVudHJ5Qnl0ZWNvZGVPZmZzZXQgJiYg
KG1fY29kZUJsb2NrLT5pbmhlcml0cyh2bSwgUHJvZ3JhbUNvZGVCbG9jazo6aW5mbygpKSB8fCBt
X2NvZGVCbG9jay0+aW5oZXJpdHModm0sIE1vZHVsZVByb2dyYW1Db2RlQmxvY2s6OmluZm8oKSkp
KSB7CisgICAgaWYgKG1fbG9vcE9TUkVudHJ5Qnl0ZWNvZGVPZmZzZXQgJiYgKG1fY29kZUJsb2Nr
LT5pbmhlcml0czxQcm9ncmFtQ29kZUJsb2NrPih2bSkgfHwgbV9jb2RlQmxvY2stPmluaGVyaXRz
PE1vZHVsZVByb2dyYW1Db2RlQmxvY2s+KHZtKSkpIHsKICAgICAgICAgLy8gV2UgY2FuIG9ubHkg
ZG8gdGhpcyBvcHRpbWl6YXRpb24gYmVjYXVzZSB3ZSBleGVjdXRlIFByb2dyYW1Db2RlQmxvY2sn
cyBleGFjdGx5IG9uY2UuCiAgICAgICAgIC8vIFRoaXMgb3B0aW1pemF0aW9uIHdvdWxkIGJlIGlu
dmFsaWQgb3RoZXJ3aXNlLiBXaGVuIHRoZSBMTEludCBkZXRlcm1pbmVzIGl0IHdhbnRzIHRvCiAg
ICAgICAgIC8vIGRvIE9TUiBlbnRyeSBpbnRvIHRoZSBiYXNlbGluZSBKSVQgaW4gYSBsb29wLCBp
dCB3aWxsIHBhc3MgaW4gdGhlIGJ5dGVjb2RlIG9mZnNldCBpdApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggOWRjNTQ0ZWRhNDAwZmQyYTQyZDllMjk3
M2VmNzgyNjFmZTQ2NjNlYy4uZTQ2YTNkNzVkNDc1ZmU0MGVhMTZiZDJhODZjOTY2NGJmN2Y5ZDkx
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0x
MTkxLDcgKzExOTEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+CiBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uTmV3RnVuY3Rpb25Db21tb24oRXhlY1N0YXRlKiBleGVj
LCBKU1Njb3BlKiBzY29wZSwgSlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUsIGJvb2wgaXNJbnZh
bGlkYXRlZCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIEFTU0VSVChmdW5jdGlv
bkV4ZWN1dGFibGUtPmluaGVyaXRzKHZtLCBGdW5jdGlvbkV4ZWN1dGFibGU6OmluZm8oKSkpOwor
ICAgIEFTU0VSVChmdW5jdGlvbkV4ZWN1dGFibGUtPmluaGVyaXRzPEZ1bmN0aW9uRXhlY3V0YWJs
ZT4odm0pKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAg
ICAgaWYgKGlzSW52YWxpZGF0ZWQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRnVu
Y3Rpb25UeXBlOjpjcmVhdGVXaXRoSW52YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50KHZt
LCBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihmdW5jdGlvbkV4ZWN1dGFibGUpLCBz
Y29wZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCA5ZWY4NGFhZWNhYjVjZjA3YWUzYTYzZmMx
ZWY4ZDgwMGYzMWFiMGY1Li5lZjkyYzQyMjkyZjA4NTZhOGQ5N2ZhZTkzODAwNmIyMzEyZDdmN2Ez
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMjI2Myw3ICsyMjYzLDcgQEAgc3RhdGljIHZvaWQg
Y2hlY2tFeGNlcHRpb24oR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGJvb2wgaXNMYXN0Rmls
ZSwgYm9vbCBoYXMKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKLSAgICBp
ZiAob3B0aW9ucy5tX3RyZWF0V2F0Y2hkb2dFeGNlcHRpb25Bc1N1Y2Nlc3MgJiYgdmFsdWUuaW5o
ZXJpdHModm0sIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6aW5mbygpKSkgeworICAgIGlmIChv
cHRpb25zLm1fdHJlYXRXYXRjaGRvZ0V4Y2VwdGlvbkFzU3VjY2VzcyAmJiB2YWx1ZS5pbmhlcml0
czxUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I+KHZtKSkgewogICAgICAgICBBU1NFUlQoaGFzRXhj
ZXB0aW9uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaAppbmRleCA5ZTVhYWY5YjExODk4MjRiZmI2ZTM0MjVj
YTcxYTA2ZDc2ZjFhMDM5Li4yN2M0M2U3OWE1OGFlYmI1MzhlMGEwOTg2ZGI2MjcxM2QyOTIxNzdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCkBA
IC00NywxMiArNDcsNCBAQCBjbGFzcyBCb29sZWFuT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9i
amVjdCB7CiAgICAgfQogfTsKIAotQm9vbGVhbk9iamVjdCogYXNCb29sZWFuT2JqZWN0KEpTVmFs
dWUpOwotCi1pbmxpbmUgQm9vbGVhbk9iamVjdCogYXNCb29sZWFuT2JqZWN0KEpTVmFsdWUgdmFs
dWUpCi17Ci0gICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9i
amVjdCgpLT52bSgpLCBCb29sZWFuT2JqZWN0OjppbmZvKCkpKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Qm9vbGVhbk9iamVjdCo+KGFzT2JqZWN0KHZhbHVlKSk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVh
blByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJv
dG90eXBlLmNwcAppbmRleCAzN2RjZTdlMzQ3OGJmOTY2MDYyMzg4MTdhZGJlN2M4MmUyNDdlYmY4
Li4wNmY5ZmQzMGFkNTI3ODk4MGE1MzEyODQ3ZDM2YWYwNTZjMTI3OWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcApAQCAtNzYs
MTMgKzc2LDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm9vbGVhblByb3RvRnVu
Y1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAodGhpc1ZhbHVlID09IGpzQm9vbGVh
bih0cnVlKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0cmluZ3Mu
dHJ1ZVN0cmluZygpKTsKIAotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBCb29sZWFu
T2JqZWN0OjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEJv
b2xlYW5PYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNPYmpl
Y3QpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAg
ICBpZiAoYXNCb29sZWFuT2JqZWN0KHRoaXNWYWx1ZSktPmludGVybmFsVmFsdWUoKSA9PSBqc0Jv
b2xlYW4oZmFsc2UpKQorICAgIGlmICh0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkgPT0ganNC
b29sZWFuKGZhbHNlKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0
cmluZ3MuZmFsc2VTdHJpbmcoKSk7CiAKLSAgICBBU1NFUlQoYXNCb29sZWFuT2JqZWN0KHRoaXNW
YWx1ZSktPmludGVybmFsVmFsdWUoKSA9PSBqc0Jvb2xlYW4odHJ1ZSkpOworICAgIEFTU0VSVCh0
aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkgPT0ganNCb29sZWFuKHRydWUpKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHZtLnNtYWxsU3RyaW5ncy50cnVlU3RyaW5nKCkpOwogfQogCkBA
IC05NCwxMCArOTUsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJv
dG9GdW5jVmFsdWVPZihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKHRoaXNWYWx1ZS5pc0Jvb2xl
YW4oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpOwogCi0gICAg
aWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIEJvb2xlYW5PYmplY3Q6OmluZm8oKSkpCisgICAg
YXV0byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8Qm9vbGVhbk9iamVjdCo+KHZtLCB0aGlz
VmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc09iamVjdCkpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoYXNCb29sZWFuT2JqZWN0KHRoaXNWYWx1ZSktPmludGVybmFsVmFsdWUoKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuY3BwCmluZGV4IDYxYTU5NTIyYmYzOTVhYmZiYTQwYWY3ZTlkMGE3NGM0
ZTQ1MzMzM2MuLjAwM2ZhOTAwZTdhN2NmNWFkYzBkNjYyMGE1YmJlNDIzNzUzODMyMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApA
QCAtMTMwLDEwICsxMzAsMTEgQEAgSlNPYmplY3QqIGNvbnN0cnVjdERhdGUoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIG4KICAgICBpZiAobnVt
QXJncyA9PSAwKSAvLyBuZXcgRGF0ZSgpIEVDTUEgMTUuOS4zLjMKICAgICAgICAgdmFsdWUgPSBq
c0N1cnJlbnRUaW1lKCk7CiAgICAgZWxzZSBpZiAobnVtQXJncyA9PSAxKSB7Ci0gICAgICAgIGlm
IChhcmdzLmF0KDApLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCi0gICAgICAg
ICAgICB2YWx1ZSA9IGFzRGF0ZUluc3RhbmNlKGFyZ3MuYXQoMCkpLT5pbnRlcm5hbE51bWJlcigp
OworICAgICAgICBKU1ZhbHVlIGFyZzAgPSBhcmdzLmF0KDApOworICAgICAgICBpZiAoYXV0byog
ZGF0ZUluc3RhbmNlID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgYXJnMCkpCisg
ICAgICAgICAgICB2YWx1ZSA9IGRhdGVJbnN0YW5jZS0+aW50ZXJuYWxOdW1iZXIoKTsKICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBKU1ZhbHVlIHByaW1pdGl2ZSA9IGFyZ3MuYXQoMCkudG9Q
cmltaXRpdmUoZXhlYyk7CisgICAgICAgICAgICBKU1ZhbHVlIHByaW1pdGl2ZSA9IGFyZzAudG9Q
cmltaXRpdmUoZXhlYyk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKICAgICAgICAgICAgIGlmIChwcmltaXRpdmUuaXNTdHJpbmcoKSkKICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IHBhcnNlRGF0ZSh2bSwgYXNTdHJpbmcocHJpbWl0aXZlKS0+dmFsdWUo
ZXhlYykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUlu
c3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApp
bmRleCAzZjExYWUzYTYzNmViZGNiYWEyMDVhZTJkYjc0ZDRmYTQ2NTMyYjI4Li41Nzg0MTM1MzAx
MTM5YTdjMzgyNzcyNTQ0ZTNlNmI4M2JlZGNmMzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApAQCAtODAsMTIgKzgwLDQgQEAgY2xhc3MgRGF0ZUlu
c3RhbmNlIDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgbXV0YWJsZSBQb2lzb25lZFJl
ZlB0cjxEYXRlSW5zdGFuY2VQb2lzb24sIERhdGVJbnN0YW5jZURhdGE+IG1fZGF0YTsKIH07CiAK
LURhdGVJbnN0YW5jZSogYXNEYXRlSW5zdGFuY2UoSlNWYWx1ZSk7Ci0KLWlubGluZSBEYXRlSW5z
dGFuY2UqIGFzRGF0ZUluc3RhbmNlKEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQVNTRVJUKGFzT2Jq
ZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBEYXRlSW5zdGFu
Y2U6OmluZm8oKSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxEYXRlSW5zdGFuY2UqPihhc09i
amVjdCh2YWx1ZSkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggNWFiMDA3ZmMxN2Y2NGU5
Y2JkMjhjMTliNWZkNzM5NmVhY2Y5ZDJkMy4uNmYyMzM2ODczNTJjMGJmZGY0YTU5NjQxZjkyNmI4
MTBkNWFmMWUyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5jcHAKQEAgLTMyMiwxMSArMzIyLDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBm
b3JtYXRlRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgRGF0ZVRpbWVGb3JtYXQgZm9ybWF0
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
LSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQor
ICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwg
dGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0
aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7Ci0KICAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBhc1VUQ1ZhcmlhbnQKICAgICAgICAg
PyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYykKICAgICAgICAgOiB0aGlz
RGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CkBAIC01MzksMTAgKzUzOCwxMCBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyhFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50
aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNl
OjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5z
dGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogICAgIAotICAg
IERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAK
ICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCkpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9y
KGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiSW52YWxpZCBEYXRlIikpKTsKIApAQCAtNTg3LDEwICs1ODYs
MTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVT
dHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERh
dGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nh
c3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlz
RGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
IAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFs
dWUpOyAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGZvcm1hdExvY2FsZURhdGUoZXhlYywg
dGhpc0RhdGVPYmosIHRoaXNEYXRlT2JqLT5pbnRlcm5hbE51bWJlcigpLCBMb2NhbGVEYXRlQW5k
VGltZSkpOwogfQogCkBAIC01OTksMTAgKzU5OCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNUb0xvY2FsZURhdGVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0g
ICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAg
ICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRo
aXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhp
c0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGZvcm1hdExvY2FsZURhdGUoZXhlYywgdGhpc0RhdGVPYmosIHRoaXNEYXRlT2Jq
LT5pbnRlcm5hbE51bWJlcigpLCBMb2NhbGVEYXRlKSk7CiB9CiAKQEAgLTYxMSwxMCArNjEwLDEw
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvTG9jYWxlVGlt
ZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwg
RGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWlj
Q2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRo
aXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUp
OwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNW
YWx1ZSk7IAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZm9ybWF0TG9jYWxlRGF0ZShleGVj
LCB0aGlzRGF0ZU9iaiwgdGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCksIExvY2FsZVRpbWUp
KTsKIH0KIApAQCAtNjQ2LDEwICs2NDUsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jR2V0VGltZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1
ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRl
T2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBp
ZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgc2NvcGUpOwogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc0RhdGVJbnN0
YW5jZSh0aGlzVmFsdWUpLT5pbnRlcm5hbFZhbHVlKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUodGhpc0RhdGVPYmotPmludGVybmFsVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykK
QEAgLTY1NywxMSArNjU3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY0dldEZ1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmog
PSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChV
TkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5z
dGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAg
aWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c05hTigpKTsKQEAgLTY3MywxMSArNjcyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICgh
dGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byog
dGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUp
OworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2Jq
ID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVV
VEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTY4OSwxMSArNjg3LDEwIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1vbnRoKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwot
ICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisg
ICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0
aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRo
aXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTcwNSwxMSArNzAyLDEwIEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEV4ZWNTdGF0
ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6Omlu
Zm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5j
ZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5z
dGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+
Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTcyMSwxMSArNzE3
LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERhdGUo
RXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0
YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0
ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9i
aikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAg
IERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAK
LQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNE
YXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVU
aW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtNzM3LDEx
ICs3MzIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0
VVRDRGF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwg
RGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWlj
Q2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRo
aXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUp
OwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNW
YWx1ZSk7IAotCiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1l
ID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGV4ZWMpOwogICAgIGlmICghZ3Jl
Z29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7
CkBAIC03NTMsMTEgKzc0NywxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNHZXREYXkoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJp
dHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpz
RHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElL
RUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5j
ZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5E
YXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAo
IWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFO
KCkpOwpAQCAtNzY5LDExICs3NjIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0VVRDRGF5KEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVl
LmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVP
YmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlm
IChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRl
SW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3Jl
Z29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7
CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc05hTigpKTsKQEAgLTc4NSwxMSArNzc3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEhvdXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICgh
dGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byog
dGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUp
OworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2Jq
ID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUo
ZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc05hTigpKTsKQEAgLTgwMSwxMSArNzkyLDEwIEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwot
ICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisg
ICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0
aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRo
aXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTgxNywxMSArODA3LDEwIEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMoRXhlY1N0
YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6
aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3Rh
bmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJ
bnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODMzLDExICs4MjIs
MTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTWlu
dXRlcyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0
ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2Fz
dDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNE
YXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwog
Ci0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1
ZSk7IAotCiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0g
dGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGV4ZWMpOwogICAgIGlmICghZ3JlZ29y
aWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CkBA
IC04NDksMTEgKzgzNywxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90
b0Z1bmNHZXRTZWNvbmRzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVy
aXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBq
c0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJ
S0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFu
Y2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYg
KCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05h
TigpKTsKQEAgLTg2NSwxMSArODUyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlz
VmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlz
RGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7Cisg
ICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBh
c0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhl
eGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODgxLDEwICs4NjcsMTAgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRzKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgp
OwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkp
CisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZt
LCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2Uq
IHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCiAgICAgZG91YmxlIG1p
bGxpID0gdGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4o
bWlsbGkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODk5
LDEwICs4ODUsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
R2V0VVRDTWlsbGlzZWNvbmRzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmog
PSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChV
TkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5z
dGFuY2UodGhpc1ZhbHVlKTsgCiAgICAgZG91YmxlIG1pbGxpID0gdGhpc0RhdGVPYmotPmludGVy
bmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4obWlsbGkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtOTE3LDExICs5MDMsMTAgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQoRXhlY1N0
YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6
aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3Rh
bmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJ
bnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtOTMzLDExICs5MTgs
MTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VGltZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3Rh
bmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRl
SW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2Jq
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAg
RGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAot
CiAgICAgZG91YmxlIG1pbGxpID0gdGltZUNsaXAoZXhlYy0+YXJndW1lbnQoMCkudG9OdW1iZXIo
ZXhlYykpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIobWlsbGkpOwpAQCAtOTUwLDEwICs5MzQs
MTAgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKEV4ZWNT
dGF0ZSogZXhlYywgaW50IG51bUFyZ3NUb1VzZSwKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRz
KHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5
bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VM
WSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBz
Y29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2Uo
dGhpc1ZhbHVlKTsKICAgICBkb3VibGUgbWlsbGkgPSB0aGlzRGF0ZU9iai0+aW50ZXJuYWxOdW1i
ZXIoKTsKIAogICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpIHx8IHN0ZDo6aXNuYW4obWls
bGkpKSB7CkBAIC05OTIsMTAgKzk3NiwxMCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc2V0TmV3
VmFsdWVGcm9tRGF0ZUFyZ3MoRXhlY1N0YXRlKiBleGVjLCBpbnQgbnVtQXJnc1RvVXNlLAogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAg
aWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBh
dXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNW
YWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0Rh
dGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOwogICAgIGlmICghZXhlYy0+YXJndW1l
bnRDb3VudCgpKSB7CiAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOYU4oKTsKICAgICAgICAg
dGhpc0RhdGVPYmotPnNldEludGVybmFsVmFsdWUodm0sIHJlc3VsdCk7CkBAIC0xMTA3LDEwICsx
MDkxLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFll
YXIoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJ
bnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8
RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0
ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAot
ICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUp
OwogICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpKSB7IAogICAgICAgICBKU1ZhbHVlIHJl
c3VsdCA9IGpzTmFOKCk7CiAgICAgICAgIHRoaXNEYXRlT2JqLT5zZXRJbnRlcm5hbFZhbHVlKHZt
LCByZXN1bHQpOwpAQCAtMTE1MiwxMSArMTEzNiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRZZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhp
c1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhp
c0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOwor
ICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0g
YXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhl
Yyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc05hTigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhjZXB0aW9uSGVscGVycy5jcHAKaW5kZXggOTgyNjhlNTkzYTljYzlkMGZiZWIxNjE2MDBlZjAw
OWY3ZTkyY2IzNS4uNjk5MTQ0YjRhN2VkMzcyZDlhOTM3YjY0YTQ5YzI3OWY5ZDNlN2ZhZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5j
cHAKQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24o
Vk0mIHZtLCBFeGNlcHRpb24qIGV4Y2VwdGlvbikKICAgICBpZiAoIWV4Y2VwdGlvbi0+dmFsdWUo
KS5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gZXhjZXB0
aW9uLT52YWx1ZSgpLmluaGVyaXRzKHZtLCBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I6OmluZm8o
KSk7CisgICAgcmV0dXJuIGV4Y2VwdGlvbi0+dmFsdWUoKS5pbmhlcml0czxUZXJtaW5hdGVkRXhl
Y3V0aW9uRXJyb3I+KHZtKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJv
cihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggZTA0MzEzZjE0NTFlNDYyMGQzNWU1ZmY0ZWMz
MzU5ODQ0ZDFlMjY5Mi4uZDBmZDc2MjQ3Y2JjMTZiNjBhNGJhMmU0ZDNiMzVlODhlNmU0OWZkOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmNwcApAQCAtODUsNyArODUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgSlNGdW5jdGlv
bjo6aW5mbygpKSkgeworICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8SlNGdW5jdGlvbj4odm0p
KSB7CiAgICAgICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPih0
aGlzVmFsdWUpOwogICAgICAgICBpZiAoZnVuY3Rpb24tPmlzSG9zdE9yQnVpbHRpbkZ1bmN0aW9u
KCkpIHsKICAgICAgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKQEAgLTk4LDcgKzk4LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmco
ZXhlYywgY2xhc3NTb3VyY2UudG9TdHJpbmdXaXRob3V0Q29weWluZygpKSk7CiAgICAgICAgIH0K
IAotICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBKU0FzeW5jRnVuY3Rpb246Omlu
Zm8oKSkpIHsKKyAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxKU0FzeW5jRnVuY3Rpb24+
KHZtKSkgewogICAgICAgICAgICAgU3RyaW5nIGZ1bmN0aW9uSGVhZGVyID0gZXhlY3V0YWJsZS0+
aXNBcnJvd0Z1bmN0aW9uKCkgPyAiYXN5bmMgIiA6ICJhc3luYyBmdW5jdGlvbiAiOwogCiAgICAg
ICAgICAgICBTdHJpbmdWaWV3IHNvdXJjZSA9IGV4ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVy
KCktPmdldFJhbmdlKApAQCAtMTE2LDcgKzExNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCBmdW5j
dGlvbkhlYWRlciwgZnVuY3Rpb24tPm5hbWUodm0pLCBzb3VyY2UpKTsKICAgICB9CiAKLSAgICBp
ZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBJbnRlcm5hbEZ1bmN0aW9uOjppbmZvKCkpKSB7Cisg
ICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxJbnRlcm5hbEZ1bmN0aW9uPih2bSkpIHsKICAgICAg
ICAgSW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb24gPSBhc0ludGVybmFsRnVuY3Rpb24odGhpc1Zh
bHVlKTsKICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywgImZ1bmN0aW9uICIsIGZ1bmN0aW9u
LT5uYW1lKCksICIoKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAppbmRleCAyZDliYjUwZWFl
ZTllZDNkMjQ4M2JiMjU1MThiMWQ4OGQ2N2Q0ZWY0Li43YjdjOGJhZTg4MTBmMDFjYzMwNjViOTgy
M2NmOGQ5ZTc1ZDk1ZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50ZXJuYWxGdW5jdGlvbi5oCkBAIC05MSw3ICs5MSw3IEBAIEludGVybmFsRnVuY3Rpb24qIGFz
SW50ZXJuYWxGdW5jdGlvbihKU1ZhbHVlKTsKIAogaW5saW5lIEludGVybmFsRnVuY3Rpb24qIGFz
SW50ZXJuYWxGdW5jdGlvbihKU1ZhbHVlIHZhbHVlKQogewotICAgIEFTU0VSVChhc09iamVjdCh2
YWx1ZSktPmluaGVyaXRzKCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSwgSW50ZXJuYWxGdW5jdGlv
bjo6aW5mbygpKSk7CisgICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHM8SW50ZXJu
YWxGdW5jdGlvbj4oKnZhbHVlLmdldE9iamVjdCgpLT52bSgpKSk7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEludGVybmFsRnVuY3Rpb24qPihhc09iamVjdCh2YWx1ZSkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggODc3MmFhMmE4ODhjYjA1NmNkYTcw
MDljMTU4NjkyMDI2MzMxMWNhMS4uNzE1MGJiZmM0NTBmMGExZDgyNGFhNjVmOTkxOWVlNjcyMjNh
YjEwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtMjg5LDcg
KzI4OSw3IEBAIEpTQXJyYXkqIGFzQXJyYXkoSlNWYWx1ZSk7CiAKIGlubGluZSBKU0FycmF5KiBh
c0FycmF5KEpTQ2VsbCogY2VsbCkKIHsKLSAgICBBU1NFUlQoY2VsbC0+aW5oZXJpdHMoKmNlbGwt
PnZtKCksIEpTQXJyYXk6OmluZm8oKSkpOworICAgIEFTU0VSVChjZWxsLT5pbmhlcml0czxKU0Fy
cmF5PigqY2VsbC0+dm0oKSkpOwogICAgIHJldHVybiBqc0Nhc3Q8SlNBcnJheSo+KGNlbGwpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCmluZGV4
IDExNWQ4YjNkMjU4YjlhYzk0YWJhZTczMTc0Y2I2MjA0MmEyNWUzZmQuLmI1Zjc3YmU1OTc0OWZl
Mzg2Y2YzM2NhMWVjOTQ0N2QyNGNjYmJlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuY3BwCkBAIC0zMDksMTQgKzMwOSwxNCBAQCB2b2lkIEpTVmFsdWU6
OmR1bXBGb3JCYWNrdHJhY2UoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICAgICAgb3V0LnBy
aW50ZigiJWxmIiwgYXNEb3VibGUoKSk7CiAgICAgZWxzZSBpZiAoaXNDZWxsKCkpIHsKICAgICAg
ICAgVk0mIHZtID0gKmFzQ2VsbCgpLT52bSgpOwotICAgICAgICBpZiAoYXNDZWxsKCktPmluaGVy
aXRzKHZtLCBKU1N0cmluZzo6aW5mbygpKSkgeworICAgICAgICBpZiAoYXNDZWxsKCktPmluaGVy
aXRzPEpTU3RyaW5nPih2bSkpIHsKICAgICAgICAgICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBhc1N0
cmluZyhhc0NlbGwoKSk7CiAgICAgICAgICAgICBjb25zdCBTdHJpbmdJbXBsKiBpbXBsID0gc3Ry
aW5nLT50cnlHZXRWYWx1ZUltcGwoKTsKICAgICAgICAgICAgIGlmIChpbXBsKQogICAgICAgICAg
ICAgICAgIG91dC5wcmludCgiXCIiLCBpbXBsLCAiXCIiKTsKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICBvdXQucHJpbnQoIih1bnJlc29sdmVkIHN0cmluZykiKTsKLSAgICAgICAg
fSBlbHNlIGlmIChhc0NlbGwoKS0+aW5oZXJpdHModm0sIFN0cnVjdHVyZTo6aW5mbygpKSkgewor
ICAgICAgICB9IGVsc2UgaWYgKGFzQ2VsbCgpLT5pbmhlcml0czxTdHJ1Y3R1cmU+KHZtKSkgewog
ICAgICAgICAgICAgb3V0LnByaW50KCJTdHJ1Y3R1cmVbICIsIGFzQ2VsbCgpLT5zdHJ1Y3R1cmUo
KS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAg
ICAgIG91dC5wcmludCgiIElEOiAiLCBhc0NlbGwoKS0+c3RydWN0dXJlSUQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMWE0NDk3ZTk2MGE4ZTU4
MTJjOGMyYzI4NWJmZjYyOWY0NTA0ZDI5OS4uMzY2YjBhMjdkYzcwNWRjMzg3NzRhNGRiZTQ5ODA0
Y2E0Y2UxODI2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
aApAQCAtMjM2LDYgKzIzNiw3IEBAIGNsYXNzIEpTVmFsdWUgewogICAgIGJvb2wgaXNDdXN0b21H
ZXR0ZXJTZXR0ZXIoKSBjb25zdDsKICAgICBib29sIGlzT2JqZWN0KCkgY29uc3Q7CiAgICAgYm9v
bCBpbmhlcml0cyhWTSYsIGNvbnN0IENsYXNzSW5mbyopIGNvbnN0OworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFRhcmdldD4gYm9vbCBpbmhlcml0cyhWTSYpIGNvbnN0OwogICAgIGNvbnN0IENsYXNz
SW5mbyogY2xhc3NJbmZvT3JOdWxsKFZNJikgY29uc3Q7CiAgICAgICAgIAogICAgIC8vIEV4dHJh
Y3RpbmcgdGhlIHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0pTVmFsdWVJbmxpbmVzLmgKaW5kZXggYWE1MWRkNWQ3NjZkMDk0NTYyNTkzYzlmNmNkOWM3NjU0
YzIyMDE4MC4uYjVhNGI0YmRiZWU5OGMwMzQwNDhhZWNlMTY1NjRmM2ExZTRkNWM1OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBA
IC03ODUsNiArNzg1LDEyIEBAIGlubGluZSBib29sIEpTVmFsdWU6OmluaGVyaXRzKFZNJiB2bSwg
Y29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pIGNvbnN0CiAgICAgcmV0dXJuIGlzQ2VsbCgpICYm
IGFzQ2VsbCgpLT5pbmhlcml0cyh2bSwgY2xhc3NJbmZvKTsKIH0KIAordGVtcGxhdGU8dHlwZW5h
bWUgVGFyZ2V0PgoraW5saW5lIGJvb2wgSlNWYWx1ZTo6aW5oZXJpdHMoVk0mIHZtKSBjb25zdAor
eworICAgIHJldHVybiBpc0NlbGwoKSAmJiBhc0NlbGwoKS0+aW5oZXJpdHM8VGFyZ2V0Pih2bSk7
Cit9CisKIGlubGluZSBjb25zdCBDbGFzc0luZm8qIEpTVmFsdWU6OmNsYXNzSW5mb09yTnVsbChW
TSYgdm0pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmNsYXNzSW5m
byh2bSkgOiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDYXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAppbmRl
eCAxODU3ZjY4ZTY0NWFiZDIzNjhkODI3ZDU1MGVjMzEzZGFiNmFhYmJmLi5hZTI3ZGExMzVkYzhi
Nzk0YmRmODFiNzdlNmVjZmM4OWEwNTc4NzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Nhc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Nhc3QuaApAQCAtNTksNiArNTksNyBAQCBpbmxpbmUgVG8ganNDYXN0KEpTVmFsdWUgZnJv
bSkKICAgICBtYWNybyhKU1dlYWtNYXAsIEpTVHlwZTo6SlNXZWFrTWFwVHlwZSwgSlNUeXBlOjpK
U1dlYWtNYXBUeXBlKSBcCiAgICAgbWFjcm8oTnVtYmVyT2JqZWN0LCBKU1R5cGU6Ok51bWJlck9i
amVjdFR5cGUsIEpTVHlwZTo6TnVtYmVyT2JqZWN0VHlwZSkgXAogICAgIG1hY3JvKFByb3h5T2Jq
ZWN0LCBKU1R5cGU6OlByb3h5T2JqZWN0VHlwZSwgSlNUeXBlOjpQcm94eU9iamVjdFR5cGUpIFwK
KyAgICBtYWNybyhSZWdFeHBPYmplY3QsIEpTVHlwZTo6UmVnRXhwT2JqZWN0VHlwZSwgSlNUeXBl
OjpSZWdFeHBPYmplY3RUeXBlKSBcCiAgICAgbWFjcm8oRGlyZWN0QXJndW1lbnRzLCBKU1R5cGU6
OkRpcmVjdEFyZ3VtZW50c1R5cGUsIEpTVHlwZTo6RGlyZWN0QXJndW1lbnRzVHlwZSkgXAogICAg
IG1hY3JvKFNjb3BlZEFyZ3VtZW50cywgSlNUeXBlOjpTY29wZWRBcmd1bWVudHNUeXBlLCBKU1R5
cGU6OlNjb3BlZEFyZ3VtZW50c1R5cGUpIFwKICAgICBtYWNybyhDbG9uZWRBcmd1bWVudHMsIEpT
VHlwZTo6Q2xvbmVkQXJndW1lbnRzVHlwZSwgSlNUeXBlOjpDbG9uZWRBcmd1bWVudHNUeXBlKSBc
CkBAIC03OCw1MiArNzksNTggQEAgRk9SX0VBQ0hfSlNfRFlOQU1JQ19DQVNUX0pTX1RZUEVfT1ZF
UkxPQUQoRk9SV0FSRF9ERUNMQVJFX09WRVJMT0FEX0NMQVNTKQogCiBuYW1lc3BhY2UgSlNDYXN0
aW5nSGVscGVycyB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFRvLCB0eXBlbmFtZSBGcm9tPgotaW5s
aW5lIFRvIGpzRHluYW1pY0Nhc3RHZW5lcmljSW1wbChWTSYgdm0sIEZyb20qIGZyb20pCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIEZyb20+CitpbmxpbmUgYm9vbCBpbmhlcml0
c0dlbmVyaWNJbXBsKFZNJiB2bSwgRnJvbSogZnJvbSkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KCFz
dGQ6OmlzX3NhbWU8SlNPYmplY3QqLCBUbyo+Ojp2YWx1ZSwgIlRoaXMgZW5zdXJlcyBvdXIgb3Zl
cmxvYWRzIHdvcmsiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGws
IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8VG8+Ojp0eXBlPjo6dmFsdWUgJiYgc3RkOjpp
c19iYXNlX29mPEpTQ2VsbCwgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcG9pbnRlcjxGcm9tPjo6dHlw
ZT46OnZhbHVlLCAiSlMgY2FzdGluZyBleHBlY3RzIHRoYXQgdGhlIHR5cGVzIHlvdSBhcmUgY2Fz
dGluZyB0by9mcm9tIGFyZSBzdWJjbGFzc2VzIG9mIEpTQ2VsbCIpOwotICAgIGlmIChMSUtFTFko
ZnJvbS0+SlNDZWxsOjppbmhlcml0cyh2bSwgc3RkOjpyZW1vdmVfcG9pbnRlcjxUbz46OnR5cGU6
OmluZm8oKSkpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VG8+KGZyb20pOwotICAgIHJl
dHVybiBudWxscHRyOworICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfc2FtZTxKU09iamVjdCos
IFRhcmdldCo+Ojp2YWx1ZSwgIlRoaXMgZW5zdXJlcyBvdXIgb3ZlcmxvYWRzIHdvcmsiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIFRhcmdldD46OnZhbHVlICYm
IHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8RnJv
bT46OnR5cGU+Ojp2YWx1ZSwgIkpTIGNhc3RpbmcgZXhwZWN0cyB0aGF0IHRoZSB0eXBlcyB5b3Ug
YXJlIGNhc3RpbmcgdG8vZnJvbSBhcmUgc3ViY2xhc3NlcyBvZiBKU0NlbGwiKTsKKyAgICAvLyBE
byBub3QgdXNlIGluaGVyaXRzPFRhcmdldD4odm0pIHNpbmNlIGluaGVyaXRzPFQ+IGRlcGVuZHMg
b24gdGhpcyBmdW5jdGlvbi4KKyAgICByZXR1cm4gZnJvbS0+SlNDZWxsOjppbmhlcml0cyh2bSwg
VGFyZ2V0OjppbmZvKCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJv
bT4KLWlubGluZSBUbyBqc0R5bmFtaWNDYXN0SlNUeXBlSW1wbChWTSYgdm0sIEZyb20qIGZyb20s
IEpTVHlwZSBmaXJzdFR5cGUsIEpTVHlwZSBsYXN0VHlwZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFRh
cmdldCwgdHlwZW5hbWUgRnJvbT4KK2lubGluZSBib29sIGluaGVyaXRzSlNUeXBlSW1wbChWTSYg
dm0sIEZyb20qIGZyb20sIEpTVHlwZSBmaXJzdFR5cGUsIEpTVHlwZSBsYXN0VHlwZSkKIHsKICAg
ICBib29sIGNhbkNhc3QgPSBmaXJzdFR5cGUgPD0gZnJvbS0+dHlwZSgpICYmIGZyb20tPnR5cGUo
KSA8PSBsYXN0VHlwZTsKLSAgICBBU1NFUlRfVU5VU0VEKHZtLCBjYW5DYXN0ID09IGpzRHluYW1p
Y0Nhc3RHZW5lcmljSW1wbDxUbz4odm0sIGZyb20pKTsKLSAgICBpZiAoTElLRUxZKGNhbkNhc3Qp
KQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VG8+KGZyb20pOwotICAgIHJldHVybiBudWxs
cHRyOworICAgIEFTU0VSVF9VTlVTRUQodm0sIGNhbkNhc3QgPT0gaW5oZXJpdHNHZW5lcmljSW1w
bDxUYXJnZXQ+KHZtLCBmcm9tKSk7CisgICAgcmV0dXJuIGNhbkNhc3Q7CiB9CiAKIC8vIEMrKyBo
YXMgYmFkIHN5bnRheCBzbyB3ZSBuZWVkIHRvIHVzZSB0aGlzIHN0cnVjdCBiZWNhdXNlIEMrKyBk
b2Vzbid0IGhhdmUgYQogLy8gd2F5IHRvIHNheSB0aGF0IHdlIGFyZSBvdmVybG9hZGluZyBqdXN0
IHRoZSBmaXJzdCB0eXBlIGluIGEgdGVtcGxhdGUgbGlzdC4uLgotdGVtcGxhdGU8dHlwZW5hbWUg
dG8+Ci1zdHJ1Y3QgSlNEeW5hbWljQ2FzdFRyYWl0cyB7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VG8sIHR5cGVuYW1lIEZyb20+Ci0gICAgc3RhdGljIGlubGluZSBUbyBjYXN0KFZNJiB2bSwgRnJv
bSogZnJvbSkgeyByZXR1cm4ganNEeW5hbWljQ2FzdEdlbmVyaWNJbXBsPFRvPih2bSwgZnJvbSk7
IH0KK3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdldD4KK3N0cnVjdCBJbmhlcml0c1RyYWl0cyB7Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4KKyAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJp
dHMoVk0mIHZtLCBGcm9tKiBmcm9tKSB7IHJldHVybiBpbmhlcml0c0dlbmVyaWNJbXBsPFRhcmdl
dD4odm0sIGZyb20pOyB9CiB9OwogCiAjZGVmaW5lIERFRklORV9UUkFJVFNfRk9SX0pTX1RZUEVf
T1ZFUkxPQUQoY2xhc3NOYW1lLCBmaXJzdEpTVHlwZSwgbGFzdEpTVHlwZSkgXAogICAgIHRlbXBs
YXRlPD4gXAotICAgIHN0cnVjdCBKU0R5bmFtaWNDYXN0VHJhaXRzPGNsYXNzTmFtZSo+IHsgXAot
ICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJvbT4gXAotICAgICAgICBz
dGF0aWMgaW5saW5lIFRvIGNhc3QoVk0mIHZtLCBGcm9tKiBmcm9tKSB7IHJldHVybiBqc0R5bmFt
aWNDYXN0SlNUeXBlSW1wbDxUbz4odm0sIGZyb20sIGZpcnN0SlNUeXBlLCBsYXN0SlNUeXBlKTsg
fSBcCisgICAgc3RydWN0IEluaGVyaXRzVHJhaXRzPGNsYXNzTmFtZT4geyBcCisgICAgICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZyb20+IFwKKyAgICAgICAgc3RhdGljIGlubGluZSBib29sIGluaGVy
aXRzKFZNJiB2bSwgRnJvbSogZnJvbSkgeyByZXR1cm4gaW5oZXJpdHNKU1R5cGVJbXBsPGNsYXNz
TmFtZSwgRnJvbT4odm0sIGZyb20sIHN0YXRpY19jYXN0PEpTVHlwZT4oZmlyc3RKU1R5cGUpLCBz
dGF0aWNfY2FzdDxKU1R5cGU+KGxhc3RKU1R5cGUpKTsgfSBcCiAgICAgfTsgXAogCiBGT1JfRUFD
SF9KU19EWU5BTUlDX0NBU1RfSlNfVFlQRV9PVkVSTE9BRChERUZJTkVfVFJBSVRTX0ZPUl9KU19U
WVBFX09WRVJMT0FEKQogCiAjdW5kZWYgREVGSU5FX1RSQUlUU19GT1JfSlNfVFlQRV9PVkVSTE9B
RAogCisKK3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgRnJvbT4KK2Jvb2wgaW5o
ZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9tKQoreworICAgIHVzaW5nIERpc3BhdGNoZXIgPSBJbmhl
cml0c1RyYWl0czxUYXJnZXQ+OworICAgIHJldHVybiBEaXNwYXRjaGVyOjp0ZW1wbGF0ZSBpbmhl
cml0cyh2bSwgZnJvbSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQ2FzdGluZ0hlbHBlcnMKIAog
dGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+CiBUbyBqc0R5bmFtaWNDYXN0KFZN
JiB2bSwgRnJvbSogZnJvbSkKIHsKLSAgICB0eXBlZGVmIEpTQ2FzdGluZ0hlbHBlcnM6OkpTRHlu
YW1pY0Nhc3RUcmFpdHM8dHlwZW5hbWUgc3RkOjpyZW1vdmVfY3Y8dHlwZW5hbWUgc3RkOjpyZW1v
dmVfcG9pbnRlcjxUbz46OnR5cGU+Ojp0eXBlPiBEaXNwYXRjaGVyOwotICAgIHJldHVybiBEaXNw
YXRjaGVyOjp0ZW1wbGF0ZSBjYXN0PFRvPih2bSwgZnJvbSk7CisgICAgaWYgKExJS0VMWShKU0Nh
c3RpbmdIZWxwZXJzOjppbmhlcml0czx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jdjx0eXBlbmFtZSBz
dGQ6OnJlbW92ZV9wb2ludGVyPFRvPjo6dHlwZT46OnR5cGU+KHZtLCBmcm9tKSkpCisgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxUbz4oZnJvbSk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIFRvPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwu
aAppbmRleCBjYWRjZjc3ZGI2ZDBlNzY5Yjg1MzU5N2EwZWZiZGExZWNhOTE3OWQ2Li5kZTBhYWE5
ZTZhMDJmMTMxNjQ4OTI2Y2UyYzE3ZTRmNzYyYTk0MzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NlbGwuaApAQCAtMTE2LDYgKzExNiw3IEBAIGNsYXNzIEpTQ2VsbCA6IHB1Ymxp
YyBIZWFwQ2VsbCB7CiAgICAgYm9vbCBpc0N1c3RvbUdldHRlclNldHRlcigpIGNvbnN0OwogICAg
IGJvb2wgaXNQcm94eSgpIGNvbnN0OwogICAgIGJvb2wgaW5oZXJpdHMoVk0mLCBjb25zdCBDbGFz
c0luZm8qKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQ+IGJvb2wgaW5oZXJp
dHMoVk0mKSBjb25zdDsKICAgICBib29sIGlzQVBJVmFsdWVXcmFwcGVyKCkgY29uc3Q7CiAgICAg
CiAgICAgLy8gRWFjaCBjZWxsIGhhcyBhIGJ1aWx0LWluIGxvY2suIEN1cnJlbnRseSBpdCdzIHNp
bXBseSBhdmFpbGFibGUgZm9yIHVzZSBpZiB5b3UgbmVlZCBpdC4gSXQncwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCmluZGV4IGNjZmY2YmQ1YTk4YzIw
MmZkMmI0YWEwZWIxNjVmZWQ2ODEyNzE4ZjguLmY2Y2IxY2Q5ZWE2MDBiODhkOGMwYTk5MjJjZWQ4
ZDYyYmQ4MGNiMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJ
bmxpbmVzLmgKQEAgLTI2NSw2ICsyNjUsMTIgQEAgaW5saW5lIGJvb2wgSlNDZWxsOjppbmhlcml0
cyhWTSYgdm0sIGNvbnN0IENsYXNzSW5mbyogaW5mbykgY29uc3QKICAgICByZXR1cm4gY2xhc3NJ
bmZvKHZtKS0+aXNTdWJDbGFzc09mKGluZm8pOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJn
ZXQ+CitpbmxpbmUgYm9vbCBKU0NlbGw6OmluaGVyaXRzKFZNJiB2bSkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gSlNDYXN0aW5nSGVscGVyczo6aW5oZXJpdHM8VGFyZ2V0Pih2bSwgdGhpcyk7Cit9CisK
IEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBKU0NlbGw6OmZhc3RHZXRPd25Qcm9wZXJ0eShWTSYgdm0s
IFN0cnVjdHVyZSYgc3RydWN0dXJlLCBQcm9wZXJ0eU5hbWUgbmFtZSkKIHsKICAgICBBU1NFUlQo
Y2FuVXNlRmFzdEdldE93blByb3BlcnR5KHN0cnVjdHVyZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAwNGM4YjIyNzk5NjMwMDExZjdiZjQw
MTU2YzZjZjQwMTBmMDNkNjNjLi5iZWE5MjFlMmIzMjFkYWJhMjdlY2QzNjQxZGIwODg1NjEzYzAx
ZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApA
QCAtMzEyLDcgKzMxMiw3IEBAIGNsYXNzIFJldHJpZXZlQ2FsbGVyRnVuY3Rpb25GdW5jdG9yIHsK
IAogICAgICAgICBKU0NlbGwqIGNhbGxlZSA9IHZpc2l0b3ItPmNhbGxlZSgpLmFzQ2VsbCgpOwog
Ci0gICAgICAgIGlmIChjYWxsZWUgJiYgY2FsbGVlLT5pbmhlcml0cygqY2FsbGVlLT52bSgpLCBK
U0JvdW5kRnVuY3Rpb246OmluZm8oKSkpCisgICAgICAgIGlmIChjYWxsZWUgJiYgY2FsbGVlLT5p
bmhlcml0czxKU0JvdW5kRnVuY3Rpb24+KCpjYWxsZWUtPnZtKCkpKQogICAgICAgICAgICAgcmV0
dXJuIFN0YWNrVmlzaXRvcjo6Q29udGludWU7CiAKICAgICAgICAgaWYgKCFtX2hhc0ZvdW5kRnJh
bWUgJiYgKGNhbGxlZSAhPSBtX3RhcmdldENhbGxlZSkpCkBAIC0zNTMsNyArMzUzLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHUKICAgICBKU1ZhbHVlIGNhbGxlciA9IHJldHJpZXZlQ2FsbGVy
RnVuY3Rpb24oZXhlYywgdGhpc09iaik7CiAKICAgICAvLyBTZWUgRVM1LjEgMTUuMy41LjQgLSBG
dW5jdGlvbi5jYWxsZXIgbWF5IG5vdCBiZSB1c2VkIHRvIHJldHJpZXZlIGEgc3RyaWN0IGNhbGxl
ci4KLSAgICBpZiAoIWNhbGxlci5pc09iamVjdCgpIHx8ICFhc09iamVjdChjYWxsZXIpLT5pbmhl
cml0cyh2bSwgSlNGdW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlmICghY2FsbGVyLmlzT2JqZWN0
KCkgfHwgIWFzT2JqZWN0KGNhbGxlciktPmluaGVyaXRzPEpTRnVuY3Rpb24+KHZtKSkgewogICAg
ICAgICAvLyBJdCBpc24ndCBhIEpTRnVuY3Rpb24sIGJ1dCBpZiBpdCBpcyBhIEpTQ2FsbGVlIGZy
b20gYSBwcm9ncmFtIG9yIGV2YWwgY2FsbCBvciBhbiBpbnRlcm5hbCBjb25zdHJ1Y3RvciwgcmV0
dXJuIG51bGwuCiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTQ2FsbGVlKj4odm0sIGNhbGxl
cikgfHwganNEeW5hbWljQ2FzdDxJbnRlcm5hbEZ1bmN0aW9uKj4odm0sIGNhbGxlcikpCiAgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKQEAgLTQ1MSw3ICs0NTEs
NyBAQCB2b2lkIEpTRnVuY3Rpb246OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyhKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBpZiAodGhpc09iamVjdC0+aXNCdWlsdGluRnVuY3Rpb24oKSAmJiAhdGhpc09iamVjdC0+aGFz
UmVpZmllZExlbmd0aCgpKQogICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKHZtLnBy
b3BlcnR5TmFtZXMtPmxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAoKHRoaXNPYmplY3QtPmlzQnVp
bHRpbkZ1bmN0aW9uKCkgfHwgdGhpc09iamVjdC0+aW5oZXJpdHModm0sIEpTQm91bmRGdW5jdGlv
bjo6aW5mbygpKSkgJiYgIXRoaXNPYmplY3QtPmhhc1JlaWZpZWROYW1lKCkpCisgICAgICAgICAg
ICBpZiAoKHRoaXNPYmplY3QtPmlzQnVpbHRpbkZ1bmN0aW9uKCkgfHwgdGhpc09iamVjdC0+aW5o
ZXJpdHM8SlNCb3VuZEZ1bmN0aW9uPih2bSkpICYmICF0aGlzT2JqZWN0LT5oYXNSZWlmaWVkTmFt
ZSgpKQogICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKHZtLnByb3BlcnR5TmFtZXMt
Pm5hbWUpOwogICAgICAgICB9CiAgICAgfQpAQCAtNzUyLDcgKzc1Miw3IEBAIEpTRnVuY3Rpb246
OlByb3BlcnR5U3RhdHVzIEpTRnVuY3Rpb246OnJlaWZ5TGF6eUJvdW5kTmFtZUlmTmVlZGVkKFZN
JiB2bSwgRXhlY1N0CiAKICAgICBpZiAoaXNCdWlsdGluRnVuY3Rpb24oKSkKICAgICAgICAgcmVp
ZnlOYW1lKHZtLCBleGVjKTsKLSAgICBlbHNlIGlmICh0aGlzLT5pbmhlcml0cyh2bSwgSlNCb3Vu
ZEZ1bmN0aW9uOjppbmZvKCkpKSB7CisgICAgZWxzZSBpZiAodGhpcy0+aW5oZXJpdHM8SlNCb3Vu
ZEZ1bmN0aW9uPih2bSkpIHsKICAgICAgICAgRnVuY3Rpb25SYXJlRGF0YSogcmFyZURhdGEgPSB0
aGlzLT5yYXJlRGF0YSh2bSk7CiAgICAgICAgIFN0cmluZyBuYW1lID0gbWFrZVN0cmluZygiYm91
bmQgIiwgc3RhdGljX2Nhc3Q8TmF0aXZlRXhlY3V0YWJsZSo+KG1fZXhlY3V0YWJsZS5nZXQoKSkt
Pm5hbWUoKSk7CiAgICAgICAgIHVuc2lnbmVkIGluaXRpYWxBdHRyaWJ1dGVzID0gUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDQ2
MWUwMDNkZmE1MDRmZmU1MTJlODQ0ZGI4ODY0MTJkNTJlMjAxMDIuLjAxZTFiY2JlMmRhZmU0MDI2
MzNmMzc5YThmNjBjM2M3NjVkZDU4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBlbnF1ZXVlSm9iKEV4ZWNTdGF0ZSogZXhlYykKIAog
ICAgIEpTVmFsdWUgam9iID0gZXhlYy0+YXJndW1lbnQoMCk7CiAgICAgSlNWYWx1ZSBhcmd1bWVu
dHMgPSBleGVjLT5hcmd1bWVudCgxKTsKLSAgICBBU1NFUlQoYXJndW1lbnRzLmluaGVyaXRzKHZt
LCBKU0FycmF5OjppbmZvKCkpKTsKKyAgICBBU1NFUlQoYXJndW1lbnRzLmluaGVyaXRzPEpTQXJy
YXk+KHZtKSk7CiAKICAgICBnbG9iYWxPYmplY3QtPnF1ZXVlTWljcm90YXNrKGNyZWF0ZUpTSm9i
KHZtLCBqb2IsIGpzQ2FzdDxKU0FycmF5Kj4oYXJndW1lbnRzKSkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBjZWZlNmQ1NWE3Mjlk
Y2Y5NDFiMjllZjlkNmIwYTIzNzEwNGRkOTQ5Li42YWI3MDIzM2Y2NmI1ZTNlZDUyZDMxYTg3NmQy
YmVmN2E4Y2M5ZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKQEAgLTkyNSwxNCArOTI1LDYgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBw
dWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgUmVmUHRyPFRocmVhZExvY2Fs
Q2FjaGU+IG1fdGhyZWFkTG9jYWxDYWNoZTsKIH07CiAKLUpTR2xvYmFsT2JqZWN0KiBhc0dsb2Jh
bE9iamVjdChKU1ZhbHVlKTsKLQotaW5saW5lIEpTR2xvYmFsT2JqZWN0KiBhc0dsb2JhbE9iamVj
dChKU1ZhbHVlIHZhbHVlKQotewotICAgIEFTU0VSVChhc09iamVjdCh2YWx1ZSktPmlzR2xvYmFs
T2JqZWN0KCkpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihhc09iamVjdCh2
YWx1ZSkpOwotfQotCiBpbmxpbmUgSlNBcnJheSogY29uc3RydWN0RW1wdHlBcnJheShFeGVjU3Rh
dGUqIGV4ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGggPSAwLCBKU1ZhbHVlIG5ld1Rh
cmdldCA9IEpTVmFsdWUoKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlz
ZURlZmVycmVkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQuY3BwCmluZGV4IDE3OWJhNzZmZTJkZWNkZTQ5ODJmOWJiMDUwOThiODdl
ODU4MWNlOTguLjQ0OWNjOWU4ZDMzNGVlNWY5YzBkZDRjZWM5OGRkN2Y3MTlkMzEzYmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIEpTSW50ZXJuYWxQcm9taXNlRGVm
ZXJyZWQqIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTCiAKICAgICBKU1ZhbHVlIHByb21pc2UgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVByaXZhdGVOYW1lKCkpOwogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIEFTU0VSVChwcm9taXNlLmluaGVy
aXRzKHZtLCBKU0ludGVybmFsUHJvbWlzZTo6aW5mbygpKSk7CisgICAgQVNTRVJUKHByb21pc2Uu
aW5oZXJpdHM8SlNJbnRlcm5hbFByb21pc2U+KHZtKSk7CiAgICAgSlNWYWx1ZSByZXNvbHZlID0g
ZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlc29s
dmVQcml2YXRlTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRy
KTsKICAgICBKU1ZhbHVlIHJlamVjdCA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5yZWplY3RQcml2YXRlTmFtZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oCmluZGV4IGVl
MDE1ZTI2OTRiNWQ2ZmQwN2E3ZTk5YjQ0MjA4NTI3MjM0NjE4ZWMuLmZkM2U0ZTBlNWUyMTJiNzY2
YWNiZjAxOTBiZWYwYzdiZDQ4OGVlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaApAQCAtMTQ1LDcgKzE0NSw3IEBAIGlu
bGluZSBKU0xleGljYWxFbnZpcm9ubWVudDo6SlNMZXhpY2FsRW52aXJvbm1lbnQoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwKIAogaW5saW5lIEpTTGV4aWNhbEVudmlyb25tZW50KiBhc0Fj
dGl2YXRpb24oSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5p
bmhlcml0cygqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCksIEpTTGV4aWNhbEVudmlyb25tZW50Ojpp
bmZvKCkpKTsKKyAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5pbmhlcml0czxKU0xleGljYWxF
bnZpcm9ubWVudD4oKnZhbHVlLmdldE9iamVjdCgpLT52bSgpKSk7CiAgICAgcmV0dXJuIGpzQ2Fz
dDxKU0xleGljYWxFbnZpcm9ubWVudCo+KGFzT2JqZWN0KHZhbHVlKSk7CiB9CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IGVjZGJkMDM3
YjIxOGZmOTMyNjc4MWViNTAyZDAwZjVkZDAzZDlkZDUuLmIzOGQ4OGM3YWYyNzk1YzdlZmI2Yzg2
YmFiNmIyOTFkOTlkNWUxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuY3BwCkBAIC0xNDMsMTEgKzE0MywxMSBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
dW53cmFwQm94ZWRQcmltaXRpdmUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogICAg
IGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIEpTT2Jq
ZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgaWYgKG9iamVjdC0+aW5oZXJpdHMo
dm0sIE51bWJlck9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAob2JqZWN0LT5pbmhlcml0czxOdW1i
ZXJPYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKG9iamVjdC0+dG9OdW1iZXIo
ZXhlYykpOwotICAgIGlmIChvYmplY3QtPmluaGVyaXRzKHZtLCBTdHJpbmdPYmplY3Q6OmluZm8o
KSkpCisgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8U3RyaW5nT2JqZWN0Pih2bSkpCiAgICAgICAg
IHJldHVybiBvYmplY3QtPnRvU3RyaW5nKGV4ZWMpOwotICAgIGlmIChvYmplY3QtPmluaGVyaXRz
KHZtLCBCb29sZWFuT2JqZWN0OjppbmZvKCkpKQorICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEJv
b2xlYW5PYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIG9iamVjdC0+dG9QcmltaXRpdmUoZXhl
Yyk7CiAKICAgICAvLyBEbyBub3QgdW53cmFwIFN5bWJvbE9iamVjdCB0byBTeW1ib2wuIEl0IGlz
IG5vdCBwZXJmb3JtZWQgaW4gdGhlIHNwZWMuCkBAIC0yMzUsNyArMjM1LDcgQEAgU3RyaW5naWZp
ZXI6OlN0cmluZ2lmaWVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSByZXBsYWNlciwgSlNWYWx1
ZSBzcGFjZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgSlNPYmplY3QqIHJlcGxhY2VyT2JqZWN0
ID0gYXNPYmplY3QobV9yZXBsYWNlcik7Ci0gICAgaWYgKHJlcGxhY2VyT2JqZWN0LT5pbmhlcml0
cyh2bSwgSlNBcnJheTo6aW5mbygpKSkgeworICAgIGlmIChyZXBsYWNlck9iamVjdC0+aW5oZXJp
dHM8SlNBcnJheT4odm0pKSB7CiAgICAgICAgIG1fdXNpbmdBcnJheVJlcGxhY2VyID0gdHJ1ZTsK
ICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBqc0Nhc3Q8SlNBcnJheSo+KHJlcGxhY2VyT2JqZWN0
KTsKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gYXJyYXktPmdldChleGVjLCB2bS5wcm9wZXJ0
eU5hbWVzLT5sZW5ndGgpLnRvVUludDMyKGV4ZWMpOwpAQCAtMjQ2LDggKzI0Niw4IEBAIFN0cmlu
Z2lmaWVyOjpTdHJpbmdpZmllcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgcmVwbGFjZXIsIEpT
VmFsdWUgc3BhY2UpCiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkp
KQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBpZiAobmFtZS5pc09iamVj
dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFhc09iamVjdChuYW1lKS0+aW5oZXJpdHModm0s
IE51bWJlck9iamVjdDo6aW5mbygpKSAmJiAhYXNPYmplY3QobmFtZSktPmluaGVyaXRzKHZtLCBT
dHJpbmdPYmplY3Q6OmluZm8oKSkpCisgICAgICAgICAgICBpZiAoYXV0byogbmFtZU9iamVjdCA9
IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgbmFtZSkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIW5hbWVPYmplY3QtPmluaGVyaXRzPE51bWJlck9iamVjdD4odm0pICYmICFuYW1lT2JqZWN0
LT5pbmhlcml0czxTdHJpbmdPYmplY3Q+KHZtKSkKICAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFuYW1lLmlzTnVtYmVyKCkgJiYgIW5hbWUuaXNT
dHJpbmcoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTY0OSw3ICs2NDksNyBAQCBO
RVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAg
ICAgICAgICAgYXJyYXlTdGFydFN0YXRlOgogICAgICAgICAgICAgY2FzZSBBcnJheVN0YXJ0U3Rh
dGU6IHsKICAgICAgICAgICAgICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKLSAgICAg
ICAgICAgICAgICBBU1NFUlQoaXNKU0FycmF5KGFzT2JqZWN0KGluVmFsdWUpKSB8fCBhc09iamVj
dChpblZhbHVlKS0+aW5oZXJpdHModm0sIEpTQXJyYXk6OmluZm8oKSkpOworICAgICAgICAgICAg
ICAgIEFTU0VSVChhc09iamVjdChpblZhbHVlKS0+aW5oZXJpdHM8SlNBcnJheT4odm0pKTsKICAg
ICAgICAgICAgICAgICBpZiAobWFya2VkU3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vy
c2lvbikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vycm9y
KG1fZXhlYywgc2NvcGUpOwogCkBAIC03MDQsNyArNzA0LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFs
dWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgIG9iamVjdFN0
YXJ0U3RhdGU6CiAgICAgICAgICAgICBjYXNlIE9iamVjdFN0YXJ0U3RhdGU6IHsKICAgICAgICAg
ICAgICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKLSAgICAgICAgICAgICAgICBBU1NF
UlQoIWlzSlNBcnJheShhc09iamVjdChpblZhbHVlKSkgJiYgIWFzT2JqZWN0KGluVmFsdWUpLT5p
bmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFh
c09iamVjdChpblZhbHVlKS0+aW5oZXJpdHM8SlNBcnJheT4odm0pKTsKICAgICAgICAgICAgICAg
ICBpZiAobWFya2VkU3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYywgc2Nv
cGUpOwogCkBAIC03NjUsNyArNzY1LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3
YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVj
dChpblZhbHVlKTsKLSAgICAgICAgICAgICAgICBpZiAoaXNKU0FycmF5KG9iamVjdCkgfHwgb2Jq
ZWN0LT5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSkKKyAgICAgICAgICAgICAgICBpZiAo
b2JqZWN0LT5pbmhlcml0czxKU0FycmF5Pih2bSkpCiAgICAgICAgICAgICAgICAgICAgIGdvdG8g
YXJyYXlTdGFydFN0YXRlOwogICAgICAgICAgICAgICAgIGdvdG8gb2JqZWN0U3RhcnRTdGF0ZTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9taXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAK
aW5kZXggZjk2ZmVhMTg2ZTViNWQ0YzUyMjc3MGJmNGNkYzc5YTlkNzNmZTFmOS4uM2U2ODg3ZTU5
NWM4NzU2MTk3Y2Q2MGZkZDJjZjQyMWQ2OWFjNjU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1Byb21pc2UuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgSlNQcm9taXNlKiBK
U1Byb21pc2U6OnJlc29sdmUoSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKICAgICBBU1NFUlQoIWFyZ3VtZW50cy5oYXNPdmVyZmxvd2VkKCkpOwogICAgIGF1dG8g
cmVzdWx0ID0gY2FsbChleGVjLCBwcm9taXNlUmVzb2x2ZUZ1bmN0aW9uLCBjYWxsVHlwZSwgY2Fs
bERhdGEsIGdsb2JhbE9iamVjdC5wcm9taXNlQ29uc3RydWN0b3IoKSwgYXJndW1lbnRzKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBBU1NFUlQocmVzdWx0
LmluaGVyaXRzKHZtLCBKU1Byb21pc2U6OmluZm8oKSkpOworICAgIEFTU0VSVChyZXN1bHQuaW5o
ZXJpdHM8SlNQcm9taXNlPih2bSkpOwogICAgIHJldHVybiBqc0Nhc3Q8SlNQcm9taXNlKj4ocmVz
dWx0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9taXNlRGVmZXJyZWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9t
aXNlRGVmZXJyZWQuY3BwCmluZGV4IGJhYTk5MjQ4ZjBkOGJlZThkNzhmNzVhNTVjNzc2ZmY4ZTlm
NzVhZmQuLmQ3ZjdkNzg5ZmUxNDNmNzA5NjIxZTNjNGVhYjljMjU4YTc1MzQ3ZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5jcHAK
QEAgLTYzLDcgKzYzLDcgQEAgSlNQcm9taXNlRGVmZXJyZWQqIEpTUHJvbWlzZURlZmVycmVkOjpj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2wKIAogICAgIEpTVmFsdWUg
cHJvbWlzZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHByb21pc2UuaW5oZXJpdHModm0sIEpTUHJvbWlzZTo6
aW5mbygpKSk7CisgICAgQVNTRVJUKHByb21pc2UuaW5oZXJpdHM8SlNQcm9taXNlPih2bSkpOwog
ICAgIEpTVmFsdWUgcmVzb2x2ZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5yZXNvbHZlUHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgSlNWYWx1ZSByZWplY3QgPSBkZWZlcnJlZC5n
ZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJpdmF0ZU5h
bWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9i
amVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaAppbmRl
eCAyYzk4MTYzNTE5YjM2MTAzOGJlMTQyM2E1ZmFkNzkxN2I2NjI4NTljLi5lYmIxZmEyM2NjNGE3
MzhmYzRhZDg0ZGMwNDA1MGMzM2EyZjQwNjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3h5T2JqZWN0LmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLWNsYXNzIFByb3h5T2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgeworY2xhc3Mg
UHJveHlPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAg
ICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCAwZjUyYWEyNGFi
M2U0ZmZhZWZhNTE1M2M3YmY5ZjMyYTYwYzg3MGYwLi41MDY4NTcyODkxOTVhMTIxYzlhZDE2NjE3
NDZiN2I4NGI0NTBjNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgSlNPYmplY3QqIGNv
bnN0cnVjdFJlZ0V4cChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IEEKICAgICBKU1ZhbHVlIHBhdHRlcm5BcmcgPSBhcmdzLmF0KDApOwogICAgIEpT
VmFsdWUgZmxhZ3NBcmcgPSBhcmdzLmF0KDEpOwogCi0gICAgYm9vbCBpc1BhdHRlcm5SZWdFeHAg
PSBwYXR0ZXJuQXJnLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSk7CisgICAgYm9v
bCBpc1BhdHRlcm5SZWdFeHAgPSBwYXR0ZXJuQXJnLmluaGVyaXRzPFJlZ0V4cE9iamVjdD4odm0p
OwogICAgIGJvb2wgY29uc3RydWN0QXNSZWdleHAgPSBpc1JlZ0V4cCh2bSwgZXhlYywgcGF0dGVy
bkFyZyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4
IGRhNzYwZWMwNGYwYTc4MjdhYTY1N2NjZGI2NzkyOGMxZDZlZTBhNWIuLjAxNjhlNTg1OTgwZmFk
N2QxOWRhYjRjMjA1ZDcxOWJmYjE4YjhmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApAQCAtODYsNyArODYsNyBAQCBKU09iamVj
dCogY29uc3RydWN0UmVnRXhwKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgQXJn
TGlzdCYsIEpTT2JqZWN0KgogCiBpbmxpbmUgUmVnRXhwQ29uc3RydWN0b3IqIGFzUmVnRXhwQ29u
c3RydWN0b3IoSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5p
bmhlcml0cygqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCksIFJlZ0V4cENvbnN0cnVjdG9yOjppbmZv
KCkpKTsKKyAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5pbmhlcml0czxSZWdFeHBDb25zdHJ1
Y3Rvcj4oKnZhbHVlLmdldE9iamVjdCgpLT52bSgpKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFJlZ0V4cENvbnN0cnVjdG9yKj4oYXNPYmplY3QodmFsdWUpKTsKIH0KIApAQCAtMTQwLDcgKzE0
MCw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBpc1JlZ0V4cChWTSYgdm0sIEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSB2YWx1ZSkKICAgICBpZiAoIW1hdGNoVmFsdWUuaXNVbmRlZmluZWQoKSkKICAg
ICAgICAgcmV0dXJuIG1hdGNoVmFsdWUudG9Cb29sZWFuKGV4ZWMpOwogCi0gICAgcmV0dXJuIG9i
amVjdC0+aW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKTsKKyAgICByZXR1cm4gb2Jq
ZWN0LT5pbmhlcml0czxSZWdFeHBPYmplY3Q+KHZtKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBlc1NwZWNSZWdFeHBDcmVhdGUoRXhlY1N0YXRlKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAppbmRleCA0MjUyNDljMjMwNGY5
MzY4ZDdiMGFkY2M5ZjI3YzIyZWM1ZTAzOGYyLi45YTQ2NjI5OTZmYzhhZTFmNmViNGFjNTU5YmEw
OWUyZGQ1MjlmYmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAgdm9pZCBSZWdFeHBPYmplY3Q6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNT
RVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKKyAgICBBU1NFUlQodHlwZSgpID09IFJlZ0V4cE9i
amVjdFR5cGUpOwogfQogCiB2b2lkIFJlZ0V4cE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwq
IGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpAQCAtNjQsNyArNjUsNyBAQCBib29sIFJlZ0V4
cE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
ZXhlYywgUHJvcGVydAogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgaWYgKHByb3Bl
cnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sYXN0SW5kZXgpIHsKLSAgICAgICAgUmVnRXhw
T2JqZWN0KiByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdChvYmplY3QpOworICAgICAgICBSZWdFeHBP
YmplY3QqIHJlZ0V4cCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPihvYmplY3QpOwogICAgICAgICB1
bnNpZ25lZCBhdHRyaWJ1dGVzID0gcmVnRXhwLT5tX2xhc3RJbmRleElzV3JpdGFibGUgPyBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSA6
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5OwogICAgICAgICBzbG90LnNldFZhbHVl
KHJlZ0V4cCwgYXR0cmlidXRlcywgcmVnRXhwLT5nZXRMYXN0SW5kZXgoKSk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwpAQCAtMTEwLDcgKzExMSw3IEBAIGJvb2wgUmVnRXhwT2JqZWN0OjpkZWZpbmVP
d25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKHByb3Bl
cnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sYXN0SW5kZXgpIHsKLSAgICAgICAgUmVnRXhw
T2JqZWN0KiByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdChvYmplY3QpOworICAgICAgICBSZWdFeHBP
YmplY3QqIHJlZ0V4cCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPihvYmplY3QpOwogICAgICAgICBp
ZiAoZGVzY3JpcHRvci5jb25maWd1cmFibGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5jb25maWd1
cmFibGUoKSkKICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZXhlYywgc2NvcGUsIHNob3Vs
ZFRocm93LCBBU0NJSUxpdGVyYWwoVW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZUNvbmZpZ3Vy
YWJpbGl0eUVycm9yKSk7CiAgICAgICAgIGlmIChkZXNjcmlwdG9yLmVudW1lcmFibGVQcmVzZW50
KCkgJiYgZGVzY3JpcHRvci5lbnVtZXJhYmxlKCkpCkBAIC0xMzksMTIgKzE0MCwxMiBAQCBib29s
IFJlZ0V4cE9iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eQogCiBzdGF0aWMgYm9vbCByZWdFeHBPYmplY3RTZXRMYXN0SW5k
ZXhTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIHZhbHVlKQogewotICAgIHJldHVybiBhc1JlZ0V4cE9iamVjdChKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNvZGUodmFs
dWUpLCB0cnVlKTsKKyAgICByZXR1cm4ganNDYXN0PFJlZ0V4cE9iamVjdCo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKS0+c2V0TGFzdEluZGV4KGV4ZWMsIEpTVmFsdWU6OmRlY29kZSh2YWx1
ZSksIHRydWUpOwogfQogCiBzdGF0aWMgYm9vbCByZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhOb25T
dHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIHZhbHVlKQogewotICAgIHJldHVybiBhc1JlZ0V4cE9iamVjdChKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUp
LCBmYWxzZSk7CisgICAgcmV0dXJuIGpzQ2FzdDxSZWdFeHBPYmplY3QqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUp
LCBmYWxzZSk7CiB9CiAKIGJvb2wgUmVnRXhwT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKQEAgLTE1Niw4ICsxNTcsOCBAQCBib29sIFJlZ0V4cE9iamVj
dDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lLAogICAgICAgICByZXR1cm4gb3JkaW5hcnlTZXRTbG93KGV4ZWMsIHRoaXNPYmplY3Qs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QudGhpc1ZhbHVlKCksIHNsb3QuaXNTdHJpY3RNb2Rl
KCkpOwogCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sYXN0SW5k
ZXgpIHsKLSAgICAgICAgYm9vbCByZXN1bHQgPSBhc1JlZ0V4cE9iamVjdChjZWxsKS0+c2V0TGFz
dEluZGV4KGV4ZWMsIHZhbHVlLCBzbG90LmlzU3RyaWN0TW9kZSgpKTsKLSAgICAgICAgc2xvdC5z
ZXRDdXN0b21WYWx1ZShhc1JlZ0V4cE9iamVjdChjZWxsKSwgc2xvdC5pc1N0cmljdE1vZGUoKQor
ICAgICAgICBib29sIHJlc3VsdCA9IHRoaXNPYmplY3QtPnNldExhc3RJbmRleChleGVjLCB2YWx1
ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSk7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tVmFsdWUodGhp
c09iamVjdCwgc2xvdC5pc1N0cmljdE1vZGUoKQogICAgICAgICAgICAgPyByZWdFeHBPYmplY3RT
ZXRMYXN0SW5kZXhTdHJpY3QKICAgICAgICAgICAgIDogcmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4
Tm9uU3RyaWN0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggZGE3OTA5MDVjNGU1ZWYxZDY0MTY1YzBh
OTRjZDY3ZjgwNmVjMWM0ZS4uNGY3YWI1M2QzN2JlNTY5NjYzOWY5YmFhZjhlYTQ2MTY0NzUzM2M0
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAg
LTI3LDkgKzI3LDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgCi1jbGFzcyBSZWdFeHBPYmpl
Y3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CitjbGFzcyBSZWdFeHBPYmplY3QgZmluYWwg
OiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBKU05vbkZp
bmFsT2JqZWN0IEJhc2U7CisgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7CiAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5h
bWVzOwogCiAgICAgc3RhdGljIFJlZ0V4cE9iamVjdCogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIFJlZ0V4cCogcmVnRXhwKQpAQCAtMTM4LDEyICsxMzgsNCBAQCBjbGFzcyBS
ZWdFeHBPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdWludDhfdCBtX2xh
c3RJbmRleElzV3JpdGFibGU7CiB9OwogCi1SZWdFeHBPYmplY3QqIGFzUmVnRXhwT2JqZWN0KEpT
VmFsdWUpOwotCi1pbmxpbmUgUmVnRXhwT2JqZWN0KiBhc1JlZ0V4cE9iamVjdChKU1ZhbHVlIHZh
bHVlKQotewotICAgIEFTU0VSVChhc09iamVjdCh2YWx1ZSktPmluaGVyaXRzKCp2YWx1ZS5nZXRP
YmplY3QoKS0+dm0oKSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8UmVnRXhwT2JqZWN0Kj4oYXNPYmplY3QodmFsdWUpKTsKLX0KLQogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90
eXBlLmNwcAppbmRleCAzNzQwMmEwMjM2MDhlNWNlNmEwY2Y2ZDI0MGQyMzkzMDQ4NjNkNTJkLi4z
N2E5ZGVjMTc3MmFlNjc3MGEwYzA4YWY2YzVkN2IxOWI3NjNkNWE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTEwMywxNCAr
MTAzLDE1IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jVGVz
dEZhc3QoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0g
ICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkKKyAg
ICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlzVmFs
dWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYywgc2NvcGUpOwogICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBleGVjLT5hcmd1
bWVudCgwKS50b1N0cmluZ09yTnVsbChleGVjKTsKICAgICBFWENFUFRJT05fQVNTRVJUKCEhc2Nv
cGUuZXhjZXB0aW9uKCkgPT0gIXN0cmluZyk7CiAgICAgaWYgKCFzdHJpbmcpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgc2NvcGUucmVsZWFzZSgp
OwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwT2JqZWN0KHRo
aXNWYWx1ZSktPnRlc3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJpbmcp
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT50ZXN0KGV4
ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgc3RyaW5nKSkpOwogfQogCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY0V4ZWMoRXhlY1N0YXRlKiBleGVj
KQpAQCAtMTE5LDE5ICsxMjAsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdF
eHBQcm90b0Z1bmNFeGVjKEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6Omlu
Zm8oKSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2
bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCAiQnVpbHRpbiBSZWdFeHAgZXhlYyBjYW4g
b25seSBiZSBjYWxsZWQgb24gYSBSZWdFeHAgb2JqZWN0Iik7CiAgICAgSlNTdHJpbmcqIHN0cmlu
ZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nT3JOdWxsKGV4ZWMpOwogICAgIEVYQ0VQVElP
Tl9BU1NFUlQoISFzY29wZS5leGNlcHRpb24oKSA9PSAhc3RyaW5nKTsKICAgICBpZiAoIXN0cmlu
ZykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBz
Y29wZS5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cE9iamVj
dCh0aGlzVmFsdWUpLT5leGVjKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgc3Ry
aW5nKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWdleHAtPmV4ZWMoZXhlYywgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJpbmcpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QoRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIFJlZ0V4cE9iamVjdCogdGhpc09iamVjdCA9IGFzUmVnRXhwT2JqZWN0KGV4ZWMtPnRo
aXNWYWx1ZSgpKTsKKyAgICBSZWdFeHBPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UmVnRXhw
T2JqZWN0Kj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBqc0Nh
c3Q8SlNTdHJpbmcqPihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCF0aGlz
T2JqZWN0LT5yZWdFeHAoKS0+Z2xvYmFsKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodGhpc09iamVjdC0+ZXhlYyhleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHN0
cmluZykpOwpAQCAtMTQ0LDE3ICsxNDYsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCByZWdFeHBQcm90b0Z1bmNDb21waWxlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBP
YmplY3Q6OmluZm8oKSkpCisgICAgYXV0byogdGhpc1JlZ0V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVn
RXhwT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzUmVnRXhw
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCiAgICAg
UmVnRXhwKiByZWdFeHA7CiAgICAgSlNWYWx1ZSBhcmcwID0gZXhlYy0+YXJndW1lbnQoMCk7CiAg
ICAgSlNWYWx1ZSBhcmcxID0gZXhlYy0+YXJndW1lbnQoMSk7CiAgICAgCi0gICAgaWYgKGFyZzAu
aW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkgeworICAgIGlmIChhdXRvKiByZWdF
eHBPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCBhcmcwKSkgewogICAg
ICAgICBpZiAoIWFyZzEuaXNVbmRlZmluZWQoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBzdXBwbHkgZmxhZ3Mg
d2hlbiBjb25zdHJ1Y3Rpbmcgb25lIFJlZ0V4cCBmcm9tIGFub3RoZXIuIikpOwotICAgICAgICBy
ZWdFeHAgPSBhc1JlZ0V4cE9iamVjdChhcmcwKS0+cmVnRXhwKCk7CisgICAgICAgIHJlZ0V4cCA9
IHJlZ0V4cE9iamVjdC0+cmVnRXhwKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgU3RyaW5nIHBh
dHRlcm4gPSBhcmcwLmlzVW5kZWZpbmVkKCkgPyBlbXB0eVN0cmluZygpIDogYXJnMC50b1dURlN0
cmluZyhleGVjKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7CkBAIC0xNzIsMTAgKzE3NSwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHJlZ0V4cFByb3RvRnVuY0NvbXBpbGUoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghcmVn
RXhwLT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgc2NvcGUs
IGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsIHJlZ0V4cC0+ZXJyb3JNZXNzYWdlKCkpKTsKIAotICAg
IGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnNldFJlZ0V4cCh2bSwgcmVnRXhwKTsKKyAgICB0
aGlzUmVnRXhwLT5zZXRSZWdFeHAodm0sIHJlZ0V4cCk7CiAgICAgc2NvcGUucmVsZWFzZSgpOwot
ICAgIGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnNldExhc3RJbmRleChleGVjLCAwKTsKLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSk7CisgICAgdGhpc1JlZ0V4cC0+c2V0
TGFzdEluZGV4KGV4ZWMsIDApOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc1JlZ0V4
cCk7CiB9CiAKIHR5cGVkZWYgc3RkOjphcnJheTxjaGFyLCA2ICsgMT4gRmxhZ3NTdHJpbmc7IC8v
IDYgZGlmZmVyZW50IGZsYWdzIGFuZCBhIG51bGwgY2hhcmFjdGVyIHRlcm1pbmF0b3IuCkBAIC0y
NTUsMTMgKzI1OCwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
R2V0dGVyR2xvYmFsKEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwotICAgIGlmIChVTkxJS0VMWSghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmpl
Y3Q6OmluZm8oKSkpKSB7Ci0gICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4
cFByb3RvdHlwZTo6aW5mbygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJl
Z0V4cE9iamVjdCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkg
eworICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4odm0pKQog
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiVGhl
IFJlZ0V4cC5wcm90b3R5cGUuZ2xvYmFsIGdldHRlciBjYW4gb25seSBiZSBjYWxsZWQgb24gYSBS
ZWdFeHAgb2JqZWN0IikpOwogICAgIH0KIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpLT5nbG9iYWwoKSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPmds
b2JhbCgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9H
ZXR0ZXJJZ25vcmVDYXNlKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTI3MCwxMyArMjc0LDE0IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJJZ25vcmVDYXNlKEV4
ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmIChV
TkxJS0VMWSghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpKSB7
Ci0gICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cFByb3RvdHlwZTo6aW5m
bygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZt
LCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkgeworICAgICAgICBpZiAo
dGhpc1ZhbHVlLmluaGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4odm0pKQogICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiVGhlIFJlZ0V4cC5wcm90b3R5
cGUuaWdub3JlQ2FzZSBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEgUmVnRXhwIG9iamVj
dCIpKTsKICAgICB9CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1Jl
Z0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+aWdub3JlQ2FzZSgpKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+aWdub3JlQ2Fz
ZSgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0
ZXJNdWx0aWxpbmUoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjg1LDEzICsyOTAsMTQgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlck11bHRpbGluZShFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoVU5MSUtF
TFkoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSkgewotICAg
ICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBQcm90b3R5cGU6OmluZm8oKSkp
CisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgdGhp
c1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpIHsKKyAgICAgICAgaWYgKHRoaXNW
YWx1ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5cGU+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlRoZSBSZWdFeHAucHJvdG90eXBlLm11
bHRpbGluZSBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEgUmVnRXhwIG9iamVjdCIpKTsK
ICAgICB9CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1JlZ0V4cE9i
amVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+bXVsdGlsaW5lKCkpKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT5tdWx0aWxpbmUoKSkpOwog
fQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyRG90QWxs
KEV4ZWNTdGF0ZSogZXhlYykKQEAgLTMwMCwxMyArMzA2LDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJEb3RBbGwoRXhlY1N0YXRlKiBleGVjKQogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAKICAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmIChVTkxJS0VMWSghdGhpc1Zh
bHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpKSB7Ci0gICAgICAgIGlmICh0
aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cFByb3RvdHlwZTo6aW5mbygpKSkKKyAgICBhdXRv
KiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlzVmFsdWUpOwor
ICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkgeworICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVy
aXRzPFJlZ0V4cFByb3RvdHlwZT4odm0pKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiVGhlIFJlZ0V4cC5wcm90b3R5cGUuZG90QWxsIGdldHRl
ciBjYW4gb25seSBiZSBjYWxsZWQgb24gYSBSZWdFeHAgb2JqZWN0IikpOwogICAgIH0KICAgICAK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1JlZ0V4cE9iamVjdCh0aGlz
VmFsdWUpLT5yZWdFeHAoKS0+ZG90QWxsKCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT5kb3RBbGwoKSkpOwogfQogICAgIAogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclN0aWNreShFeGVjU3RhdGUq
IGV4ZWMpCkBAIC0zMTUsMTMgKzMyMiwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHJlZ0V4cFByb3RvR2V0dGVyU3RpY2t5KEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmIChVTkxJS0VMWSghdGhpc1ZhbHVlLmluaGVyaXRzKHZt
LCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpKSB7Ci0gICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJp
dHModm0sIFJlZ0V4cFByb3RvdHlwZTo6aW5mbygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBqc0R5
bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VM
WSghcmVnZXhwKSkgeworICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzPFJlZ0V4cFByb3Rv
dHlwZT4odm0pKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJ
TGl0ZXJhbCgiVGhlIFJlZ0V4cC5wcm90b3R5cGUuc3RpY2t5IGdldHRlciBjYW4gb25seSBiZSBj
YWxsZWQgb24gYSBSZWdFeHAgb2JqZWN0IikpOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAo
KS0+c3RpY2t5KCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdl
eHAtPnJlZ0V4cCgpLT5zdGlja3koKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHJlZ0V4cFByb3RvR2V0dGVyVW5pY29kZShFeGVjU3RhdGUqIGV4ZWMpCkBAIC0zMzAsMTMg
KzMzOCwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVy
VW5pY29kZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
LSAgICBpZiAoVU5MSUtFTFkoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0Ojpp
bmZvKCkpKSkgewotICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBQcm90
b3R5cGU6OmluZm8oKSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBP
YmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpIHsKKyAg
ICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5cGU+KHZtKSkKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlRoZSBSZWdF
eHAucHJvdG90eXBlLnVuaWNvZGUgZ2V0dGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbiBhIFJlZ0V4
cCBvYmplY3QiKSk7CiAgICAgfQogICAgIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpLT51bmljb2RlKCkpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT51
bmljb2RlKCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90
b0dldHRlckZsYWdzKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTQ2NiwxMyArNDc1LDE0IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2UoRXhlY1N0YXRl
KiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKFVOTElLRUxZ
KCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkpIHsKLSAgICAg
ICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwUHJvdG90eXBlOjppbmZvKCkpKQor
ICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odm0sIHRoaXNW
YWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKSB7CisgICAgICAgIGlmICh0aGlzVmFs
dWUuaW5oZXJpdHM8UmVnRXhwUHJvdG90eXBlPih2bSkpCiAgICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiKD86KSIpKSk7CiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlRo
ZSBSZWdFeHAucHJvdG90eXBlLnNvdXJjZSBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEg
UmVnRXhwIG9iamVjdCIpKTsKICAgICB9CiAKLSAgICBTdHJpbmcgcGF0dGVybiA9IGFzUmVnRXhw
T2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpLT5wYXR0ZXJuKCk7CisgICAgU3RyaW5nIHBhdHRl
cm4gPSByZWdleHAtPnJlZ0V4cCgpLT5wYXR0ZXJuKCk7CiAgICAgaWYgKHBhdHRlcm4uaXM4Qml0
KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVnRXhwUHJvdG9HZXR0ZXJTb3Vy
Y2VJbnRlcm5hbChleGVjLCBwYXR0ZXJuLCBwYXR0ZXJuLmNoYXJhY3RlcnM4KCksIHBhdHRlcm4u
bGVuZ3RoKCkpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlZ0V4cFByb3RvR2V0dGVy
U291cmNlSW50ZXJuYWwoZXhlYywgcGF0dGVybiwgcGF0dGVybi5jaGFyYWN0ZXJzMTYoKSwgcGF0
dGVybi5sZW5ndGgoKSkpOwpAQCAtNDgzLDcgKzQ5Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jU2VhcmNoRmFzdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBS
ZWdFeHAqIHJlZ0V4cCA9IGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpOworICAg
IFJlZ0V4cCogcmVnRXhwID0ganNDYXN0PFJlZ0V4cE9iamVjdCo+KHRoaXNWYWx1ZSktPnJlZ0V4
cCgpOwogCiAgICAgSlNTdHJpbmcqIHN0cmluZyA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDAp
LnRvU3RyaW5nKGV4ZWMpOwogICAgIFN0cmluZyBzID0gc3RyaW5nLT52YWx1ZShleGVjKTsKQEAg
LTU5MCw3ICs2MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
RnVuY1NwbGl0RmFzdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgLy8gMS4gW2hhbmRsZWQgYnkgSlMg
YnVpbHRpbl0gTGV0IHJ4IGJlIHRoZSB0aGlzIHZhbHVlLgogICAgIC8vIDIuIFtoYW5kbGVkIGJ5
IEpTIGJ1aWx0aW5dIElmIFR5cGUocngpIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVycm9y
IGV4Y2VwdGlvbi4KICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwot
ICAgIFJlZ0V4cCogcmVnZXhwID0gYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+cmVnRXhwKCk7
CisgICAgUmVnRXhwKiByZWdleHAgPSBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odGhpc1ZhbHVlKS0+
cmVnRXhwKCk7CiAKICAgICAvLyAzLiBbaGFuZGxlZCBieSBKUyBidWlsdGluXSBMZXQgUyBiZSA/
IFRvU3RyaW5nKHN0cmluZykuCiAgICAgSlNTdHJpbmcqIGlucHV0U3RyaW5nID0gZXhlYy0+YXJn
dW1lbnQoMCkudG9TdHJpbmcoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5oCmluZGV4IDI0ZmZmMDBhZDU3ODQ4YjMzZGRiNzBmMzkwMWU5ZmUxNGMw
Zjc4ODAuLjUwNmM0YzViNGQwYTEyZDk1YmQ4OWY2ZjJiNjI3ZDZmNzdhMDg4MGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC03MSwxNCArNzEs
NiBAQCBjbGFzcyBTdHJpbmdPYmplY3QgOiBwdWJsaWMgSlNXcmFwcGVyT2JqZWN0IHsKICAgICBK
U19FWFBPUlRfUFJJVkFURSBTdHJpbmdPYmplY3QoVk0mLCBTdHJ1Y3R1cmUqKTsKIH07CiAKLVN0
cmluZ09iamVjdCogYXNTdHJpbmdPYmplY3QoSlNWYWx1ZSk7Ci0KLWlubGluZSBTdHJpbmdPYmpl
Y3QqIGFzU3RyaW5nT2JqZWN0KEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQVNTRVJUKGFzT2JqZWN0
KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBTdHJpbmdPYmplY3Q6
OmluZm8oKSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxTdHJpbmdPYmplY3QqPihhc09iamVj
dCh2YWx1ZSkpOwotfQotCiBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmdPYmplY3QqIGNvbnN0cnVj
dFN0cmluZyhWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiAKIC8vIEhlbHBlciBmb3Ig
cHJvZHVjaW5nIGEgSlNTdHJpbmcgZm9yICdzdHJpbmcnLCB3aGVyZSAnc3RyaW5nJyB3YXMgYmVl
biBwcm9kdWNlZCBieQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z1Byb3RvdHlwZS5jcHAKaW5kZXggNmU0MWVjN2IzODM4NzhjYTEwNmEyM2EyMjY2NjQ4MTE3NGE2
NmM4OS4uYTBkMzYwMTdkZjQ2OTE3MmJmMTNlNjE5ZDk4MmJhMzZkMTgxNDgwZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC01
MzMsNyArNTMzLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNTdHJpbmcqIHJlcGxhY2VVc2lu
Z1JlZ0V4cFNlYXJjaCgKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZSA9IHN0cmluZy0+dmFsdWUo
ZXhlYyk7CiAgICAgdW5zaWduZWQgc291cmNlTGVuID0gc291cmNlLmxlbmd0aCgpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIFJlZ0V4cE9iamVjdCogcmVn
RXhwT2JqZWN0ID0gYXNSZWdFeHBPYmplY3Qoc2VhcmNoVmFsdWUpOworICAgIFJlZ0V4cE9iamVj
dCogcmVnRXhwT2JqZWN0ID0ganNDYXN0PFJlZ0V4cE9iamVjdCo+KHNlYXJjaFZhbHVlKTsKICAg
ICBSZWdFeHAqIHJlZ0V4cCA9IHJlZ0V4cE9iamVjdC0+cmVnRXhwKCk7CiAgICAgYm9vbCBnbG9i
YWwgPSByZWdFeHAtPmdsb2JhbCgpOwogICAgIGJvb2wgaGFzTmFtZWRDYXB0dXJlcyA9IHJlZ0V4
cC0+aGFzTmFtZWRDYXB0dXJlcygpOwpAQCAtOTU0LDcgKzk1NCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyKEV4ZWNTdGF0ZSog
ZXhlYykKIEFMV0FZU19JTkxJTkUgSlNTdHJpbmcqIHJlcGxhY2UoCiAgICAgVk0mIHZtLCBFeGVj
U3RhdGUqIGV4ZWMsIEpTU3RyaW5nKiBzdHJpbmcsIEpTVmFsdWUgc2VhcmNoVmFsdWUsIEpTVmFs
dWUgcmVwbGFjZVZhbHVlKQogewotICAgIGlmIChzZWFyY2hWYWx1ZS5pbmhlcml0cyh2bSwgUmVn
RXhwT2JqZWN0OjppbmZvKCkpKQorICAgIGlmIChzZWFyY2hWYWx1ZS5pbmhlcml0czxSZWdFeHBP
YmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIHJlcGxhY2VVc2luZ1JlZ0V4cFNlYXJjaCh2bSwg
ZXhlYywgc3RyaW5nLCBzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKTsKICAgICByZXR1cm4gcmVw
bGFjZVVzaW5nU3RyaW5nU2VhcmNoKHZtLCBleGVjLCBzdHJpbmcsIHNlYXJjaFZhbHVlLCByZXBs
YWNlVmFsdWUpOwogfQpAQCAtOTgzLDcgKzk4Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhwKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAg
IEpTVmFsdWUgc2VhcmNoVmFsdWUgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBpZiAoIXNlYXJj
aFZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpCisgICAgaWYgKCFzZWFy
Y2hWYWx1ZS5pbmhlcml0czxSZWdFeHBPYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAogICAgIHNjb3BlLnJlbGVhc2UoKTsKQEAgLTEw
MjUsOCArMTAyNSw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9G
dW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICh0aGlzVmFsdWUuaXNTdHJpbmco
KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpOwogCi0gICAgaWYg
KHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgU3RyaW5nT2JqZWN0OjppbmZvKCkpKQotICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzU3RyaW5nT2JqZWN0KHRoaXNWYWx1ZSktPmludGVybmFs
VmFsdWUoKSk7CisgICAgYXV0byogc3RyaW5nT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxTdHJpbmdP
YmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoc3RyaW5nT2JqZWN0KQorICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHN0cmluZ09iamVjdC0+aW50ZXJuYWxWYWx1ZSgpKTsKIAog
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCmluZGV4IGQxNjY2
MTRkMWNiODQ0NTk3ZWE4OGVkNTY0YzNlMzk2YzVhMTgxMmUuLjNkNzk4YzZkY2U1ZWJiYTI1ODEy
ZmM0MGEyODFiNzZiNDUxYmZmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcApAQCAtODUsNyArODUsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbFByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICAgICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBTeW1ib2xUb1N0cmluZ1R5cGVFcnJvcik7CiAg
ICAgICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gYXNPYmplY3QodGhpc1ZhbHVlKTsKLSAgICAg
ICAgaWYgKCF0aGlzT2JqZWN0LT5pbmhlcml0cyh2bSwgU3ltYm9sT2JqZWN0OjppbmZvKCkpKQor
ICAgICAgICBpZiAoIXRoaXNPYmplY3QtPmluaGVyaXRzPFN5bWJvbE9iamVjdD4odm0pKQogICAg
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIFN5bWJvbFRvU3Ry
aW5nVHlwZUVycm9yKTsKICAgICAgICAgc3ltYm9sID0gYXNTeW1ib2woanNDYXN0PFN5bWJvbE9i
amVjdCo+KHRoaXNPYmplY3QpLT5pbnRlcm5hbFZhbHVlKCkpOwogICAgIH0KQEAgLTEwNiw3ICsx
MDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbFByb3RvRnVuY1ZhbHVl
T2YoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBzY29wZSwgU3ltYm9sVmFsdWVPZlR5cGVFcnJvcik7CiAKICAgICBKU09iamVjdCogdGhpc09i
amVjdCA9IGFzT2JqZWN0KHRoaXNWYWx1ZSk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0LT5pbmhlcml0
cyh2bSwgU3ltYm9sT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghdGhpc09iamVjdC0+aW5oZXJp
dHM8U3ltYm9sT2JqZWN0Pih2bSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIHNjb3BlLCBTeW1ib2xWYWx1ZU9mVHlwZUVycm9yKTsKIAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNDYXN0PFN5bWJvbE9iamVjdCo+KHRoaXNPYmplY3QpLT5pbnRlcm5hbFZhbHVl
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4IDll
MDhhZmVlMjVkYzgxYTE5NGU5YzA0NTk4YWJlY2ZhZDdkY2UwMGEuLjQyYTliNWY5NTI5NzQ2MWYw
Y2IzNzM0Y2ViYWUzM2FkMWU2NzZjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90b29scy9KU0RvbGxhclZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
SlNEb2xsYXJWTS5jcHAKQEAgLTk0OSw3ICs5NDksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
Y3VzdG9tR2V0QWNjZXNzb3IoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cgogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0VmFsdWUoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBzbG90VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBSRUxFQVNF
X0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUoc2xvdFZhbHVlKS5pbmhlcml0cyhleGVjLT52bSgpLCBK
U1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI6OmluZm8oKSkpOworICAgIFJFTEVBU0VfQVNTRVJUKEpT
VmFsdWU6OmRlY29kZShzbG90VmFsdWUpLmluaGVyaXRzPEpTVGVzdEN1c3RvbUdldHRlclNldHRl
cj4oZXhlYy0+dm0oKSkpOwogICAgIC8vIFBhc3NlZCBwcm9wZXJ0eSBob2xkZXIuCiAgICAgcmV0
dXJuIHNsb3RWYWx1ZTsKIH0KQEAgLTk3MSw3ICs5NzEsNyBAQCBzdGF0aWMgYm9vbCBjdXN0b21T
ZXRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RWYWx1ZSwgRW5jb2Rl
ZEpTVgogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAKLSAgICBSRUxFQVNFX0FTU0VSVChK
U1ZhbHVlOjpkZWNvZGUoc2xvdFZhbHVlKS5pbmhlcml0cyhleGVjLT52bSgpLCBKU1Rlc3RDdXN0
b21HZXR0ZXJTZXR0ZXI6OmluZm8oKSkpOworICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRl
Y29kZShzbG90VmFsdWUpLmluaGVyaXRzPEpTVGVzdEN1c3RvbUdldHRlclNldHRlcj4oZXhlYy0+
dm0oKSkpOwogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpOwogICAgIFJFTEVBU0VfQVNTRVJUKHZhbHVlLmlzT2JqZWN0KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXgg
MTQ0ODdmMDFjNmIyZGRkZWM1ZGM0MGUwNTQ4NjE2ZTQ3M2YwMjRhNy4uYWZjNWUxNjZjMWJjZGQz
OGRlMGZlNmMzNzI5YjY0MTE4NDM1ODA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SGVscGVycy5oCkBAIC05NCwxMiArOTQsMTIgQEAg
QUxXQVlTX0lOTElORSBWZWN0b3I8dWludDhfdD4gY3JlYXRlU291cmNlQnVmZmVyRnJvbVZhbHVl
KFZNJiB2bSwgRXhlY1N0YXRlKiBleGUKIAogQUxXQVlTX0lOTElORSBib29sIGlzV2ViQXNzZW1i
bHlIb3N0RnVuY3Rpb24oVk0mIHZtLCBKU09iamVjdCogb2JqZWN0LCBXZWJBc3NlbWJseUZ1bmN0
aW9uKiYgd2FzbUZ1bmN0aW9uLCBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiomIHdhc21XcmFw
cGVyRnVuY3Rpb24pCiB7Ci0gICAgaWYgKG9iamVjdC0+aW5oZXJpdHModm0sIFdlYkFzc2VtYmx5
RnVuY3Rpb246OmluZm8oKSkpIHsKKyAgICBpZiAob2JqZWN0LT5pbmhlcml0czxXZWJBc3NlbWJs
eUZ1bmN0aW9uPih2bSkpIHsKICAgICAgICAgd2FzbUZ1bmN0aW9uID0ganNDYXN0PFdlYkFzc2Vt
Ymx5RnVuY3Rpb24qPihvYmplY3QpOwogICAgICAgICB3YXNtV3JhcHBlckZ1bmN0aW9uID0gbnVs
bHB0cjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGlmIChvYmplY3QtPmluaGVy
aXRzKHZtLCBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlmIChv
YmplY3QtPmluaGVyaXRzPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uPih2bSkpIHsKICAgICAg
ICAgd2FzbVdyYXBwZXJGdW5jdGlvbiA9IGpzQ2FzdDxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlv
bio+KG9iamVjdCk7CiAgICAgICAgIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7CiAgICAgICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwCmluZGV4IDUyYzVkYTJiZDA5NmMzYmNl
ZTJjODE0ZjYyZDM5NWZmOWFiOTM3MDQuLjdhMWFhMzgyOTYyNTMyZGRkYjRjMDUwZTA4YTI0ZmMz
NmQ0ZDIxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OldlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGcKIAogV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qIFdlYkFz
c2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCogZnVuY3Rpb24sIHVuc2lnbmVkIGltcG9ydEluZGV4LCBKU1dl
YkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpTaWduYXR1cmVJbmRleCBzaWduYXR1
cmVJbmRleCkKIHsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFmdW5jdGlvbi0+aW5oZXJpdHMo
dm0sIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjppbmZvKCkpLCAiV2Ugc2hvdWxkIG5ldmVy
IGRvdWJsZSB3cmFwIGEgd3JhcHBlciBmdW5jdGlvbi4iKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNT
QUdFKCFmdW5jdGlvbi0+aW5oZXJpdHM8V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24+KHZtKSwg
IldlIHNob3VsZCBuZXZlciBkb3VibGUgd3JhcCBhIHdyYXBwZXIgZnVuY3Rpb24uIik7CiAgICAg
U3RyaW5nIG5hbWUgPSAiIjsKICAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gdm0u
Z2V0SG9zdEZ1bmN0aW9uKGNhbGxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiwgTm9JbnRyaW5z
aWMsIGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCBudWxscHRyLCBuYW1lKTsKICAgICBX
ZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogcmVzdWx0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0
ZUNlbGw8V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24+KHZtLmhlYXApKSBXZWJBc3NlbWJseVdy
YXBwZXJGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5
V3JhcHBlckZ1bmN0aW9uU3RydWN0dXJlKCksIFdhc206OkNhbGxhYmxlRnVuY3Rpb24geyBzaWdu
YXR1cmVJbmRleCwgJmluc3RhbmNlLT5pbnN0YW5jZSgpLmltcG9ydEZ1bmN0aW9uSW5mbyhpbXBv
cnRJbmRleCktPndhc21Ub0VtYmVkZGVyU3R1YkV4ZWN1dGFibGVBZGRyZXNzIH0gKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKaW5k
ZXggZDc4ZTIyMGIyMDVkMzBlY2IwMzMzMGNkNjYwN2MyNDA3NmNlNGNhMy4uN2RkYTFmYTY2MmU0
ZDg1NDU1NjQ2MGMxOWU2MTVhM2IwMmI5YTJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCBz
dGF0aWMgUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKEV4ZWNTdGF0ZSYgZXhl
YywgSlNWYWx1ZSB2YWx1ZSwgVmVjdAogICAgIGlmICh2YWx1ZS5pc1N0cmluZygpKQogICAgICAg
ICByZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJpbmcoYXNTdHJpbmcodmFsdWUpLT52YWx1ZSgmZXhl
YykpOwogCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkp
IHsKKyAgICBpZiAodmFsdWUuaW5oZXJpdHM8RGF0ZUluc3RhbmNlPih2bSkpIHsKICAgICAgICAg
YXV0byBkYXRlVmFsdWUgPSB2YWx1ZVRvRGF0ZShleGVjLCB2YWx1ZSk7CiAgICAgICAgIGlmICgh
c3RkOjppc25hbihkYXRlVmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRl
RGF0ZShkYXRlVmFsdWUpOwpAQCAtMTU5LDggKzE1OSw3IEBAIHN0YXRpYyBSZWZQdHI8SURCS2V5
PiBjcmVhdGVJREJLZXlGcm9tVmFsdWUoRXhlY1N0YXRlJiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBW
ZWN0CiAKICAgICBpZiAodmFsdWUuaXNPYmplY3QoKSkgewogICAgICAgICBKU09iamVjdCogb2Jq
ZWN0ID0gYXNPYmplY3QodmFsdWUpOwotICAgICAgICBpZiAoaXNKU0FycmF5KG9iamVjdCkgfHwg
b2JqZWN0LT5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSkgewotICAgICAgICAgICAgSlNB
cnJheSogYXJyYXkgPSBhc0FycmF5KG9iamVjdCk7CisgICAgICAgIGlmIChhdXRvKiBhcnJheSA9
IGpzRHluYW1pY0Nhc3Q8SlNBcnJheSo+KHZtLCBvYmplY3QpKSB7CiAgICAgICAgICAgICBzaXpl
X3QgbGVuZ3RoID0gYXJyYXktPmxlbmd0aCgpOwogCiAgICAgICAgICAgICBpZiAoc3RhY2suY29u
dGFpbnMoYXJyYXkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0RGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZl
cnREYXRlLmNwcAppbmRleCA4MGI1M2U4MjE3YTIzZDJiZTIzNTE3Yzc3N2M0NTM2NzFjM2JlZjVk
Li5jMzEyNTA5MDhlMjViYTVkNjAyZWFiM2UwMjlmNmI2OWIxMmRkYjUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcApAQCAtNDAsNyArNDAs
NyBAQCBkb3VibGUgdmFsdWVUb0RhdGUoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlLmFzTnVt
YmVyKCk7Ci0gICAgaWYgKCF2YWx1ZS5pbmhlcml0cyhzdGF0ZS52bSgpLCBEYXRlSW5zdGFuY2U6
OmluZm8oKSkpCisgICAgaWYgKCF2YWx1ZS5pbmhlcml0czxEYXRlSW5zdGFuY2U+KHN0YXRlLnZt
KCkpKQogICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9O
YU4oKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGF0ZUluc3RhbmNlKj4odmFsdWUudG9PYmpl
Y3QoJnN0YXRlKSktPmludGVybmFsTnVtYmVyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggYmNmNjg3MDE3ZDY0ZjYzODNl
YmJlZjI4MmM3ZjQzZDRmMmFkY2RlNC4uN2EzNTQ4NDA3YjI0NTAzZmNkNzRkMzlhM2M3ODk1YjJj
MDA5NDUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcApAQCAtMTk1LDkgKzE5NSw5IEBAIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNPYmplY3QqIHRoaXNWYWx1ZSkKIAogU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogSlNET01HbG9iYWxPYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBj
b25zdAogewotICAgIGlmIChpbmhlcml0cyh2bSgpLCBKU0RPTVdpbmRvd0Jhc2U6OmluZm8oKSkp
CisgICAgaWYgKGluaGVyaXRzPEpTRE9NV2luZG93QmFzZT4odm0oKSkpCiAgICAgICAgIHJldHVy
biBqc0Nhc3Q8Y29uc3QgSlNET01XaW5kb3dCYXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKLSAgICBpZiAoaW5oZXJpdHModm0oKSwgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6
OmluZm8oKSkpCisgICAgaWYgKGluaGVyaXRzPEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlPih2bSgp
KSkKICAgICAgICAgcmV0dXJuIGpzQ2FzdDxjb25zdCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZSo+
KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgZGF0YUxvZygiVW5leHBlY3Rl
ZCBnbG9iYWwgb2JqZWN0OiAiLCBKU1ZhbHVlKHRoaXMpLCAiXG4iKTsKICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dDdXN0b20uY3BwCmluZGV4IGNmN2Q5MDk3NDg2Nzk0NDYwMzYwYTU0ZDBjZGVkNmI2
ZThmZTU4MjQuLmU1ODlhZDY0Y2MzOTQwZjkyMDhhZTU4OGQ0MjFhZGEwOWNmYzFlYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAg
LTQ1OSw5ICs0NTksOSBAQCBET01XaW5kb3cqIEpTRE9NV2luZG93Ojp0b1dyYXBwZWQoVk0mIHZt
LCBKU1ZhbHVlIHZhbHVlKQogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKLSAg
ICBpZiAob2JqZWN0LT5pbmhlcml0cyh2bSwgSlNET01XaW5kb3c6OmluZm8oKSkpCisgICAgaWYg
KG9iamVjdC0+aW5oZXJpdHM8SlNET01XaW5kb3c+KHZtKSkKICAgICAgICAgcmV0dXJuICZqc0Nh
c3Q8SlNET01XaW5kb3cqPihvYmplY3QpLT53cmFwcGVkKCk7Ci0gICAgaWYgKG9iamVjdC0+aW5o
ZXJpdHModm0sIEpTRE9NV2luZG93UHJveHk6OmluZm8oKSkpCisgICAgaWYgKG9iamVjdC0+aW5o
ZXJpdHM8SlNET01XaW5kb3dQcm94eT4odm0pKQogICAgICAgICByZXR1cm4gJmpzQ2FzdDxKU0RP
TVdpbmRvd1Byb3h5Kj4ob2JqZWN0KS0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRyOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9t
LmNwcAppbmRleCBmNGEwMjk0ZmY4ZThlNTcxZDQ1NTY1MTE0OTM5ZWRhMjEwZGM4Zjc0Li4wM2I3
YWUwNzE4NDFjMjVlNzIyMzRjODRjZTYwMDU0YzY1MWY3YjY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcApAQCAtNTcsNyArNTcs
NyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFdmVudFRhcmdldCYgdGFyZwogI3VuZGVmIFRSWV9UT19XUkFQX1dJVEhfSU5U
RVJGQUNFCiAKICNkZWZpbmUgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFDRShpbnRlcmZhY2VO
YW1lKSBcCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKUyMjaW50ZXJmYWNlTmFtZTo6aW5m
bygpKSkgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICh2YWx1ZS5pbmhlcml0czxKUyMj
aW50ZXJmYWNlTmFtZT4odm0pKSAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHJldHVy
biAmanNDYXN0PEpTIyNpbnRlcmZhY2VOYW1lKj4oYXNPYmplY3QodmFsdWUpKS0+d3JhcHBlZCgp
OwogCiBFdmVudFRhcmdldCogSlNFdmVudFRhcmdldDo6dG9XcmFwcGVkKFZNJiB2bSwgSlNWYWx1
ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCmlu
ZGV4IDlmMzZlNzQ1ODM5NDYwMzQyYjczYjQ5YjAwM2EzODQ0NzE1Y2U0NjAuLjA5YTcwZjIyZTg4
Y2YxY2I5ODdhZTdkNzE4MWNmZTI1OTUzNTk0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlQ3VzdG9tLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIGJvb2wgSlNOb2RlT3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4g
aGFuZGxlLCB2CiAKIEpTU2NvcGUqIEpTTm9kZTo6cHVzaEV2ZW50SGFuZGxlclNjb3BlKEV4ZWNT
dGF0ZSogZXhlYywgSlNTY29wZSogbm9kZSkgY29uc3QKIHsKLSAgICBpZiAoaW5oZXJpdHMoZXhl
Yy0+dm0oKSwgSlNIVE1MRWxlbWVudDo6aW5mbygpKSkKKyAgICBpZiAoaW5oZXJpdHM8SlNIVE1M
RWxlbWVudD4oZXhlYy0+dm0oKSkpCiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNIVE1M
RWxlbWVudCo+KHRoaXMpLT5wdXNoRXZlbnRIYW5kbGVyU2NvcGUoZXhlYywgbm9kZSk7CiAgICAg
cmV0dXJuIG5vZGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKaW5kZXggMGRhNTEyOGZjZTRiNjFmNmE3ZDczNGUx
MTgyY2UzODJiZjlmNTVjMS4uMTllOTJiNjI3OTk0NTJjZTNjYzZhNjViZjk0OWMyNWE3YTE4MGM2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aE5TUmVzb2x2
ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhOU1Jl
c29sdmVyQ3VzdG9tLmNwcApAQCAtMzUsNyArMzUsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CiBSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiBKU1hQYXRoTlNSZXNvbHZlcjo6dG9XcmFwcGVkKFZN
JiB2bSwgRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAodmFsdWUu
aW5oZXJpdHModm0sIEpTWFBhdGhOU1Jlc29sdmVyOjppbmZvKCkpKQorICAgIGlmICh2YWx1ZS5p
bmhlcml0czxKU1hQYXRoTlNSZXNvbHZlcj4odm0pKQogICAgICAgICByZXR1cm4gJmpzQ2FzdDxK
U1hQYXRoTlNSZXNvbHZlcio+KGFzT2JqZWN0KHZhbHVlKSktPndyYXBwZWQoKTsKIAogICAgIGF1
dG8gcmVzdWx0ID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZShzdGF0ZSwgdmFsdWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwCmluZGV4IGU0ZTYy
YTFmNmEyMDIzNTIwNDY4ZDliODdmMzMzOWVjMTIwZTQ1ZjUuLjhjMjljNzhlYWJlZGY2Yjc2MGFl
MWJjYzFhNjQzYjlkM2ExMGNmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRTdGF0ZS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgRE9NV2luZG93KiBkb21XaW5kb3dGcm9tRXhl
Y1N0YXRlKEpTQzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSkKIHsKICAgICBKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzY3JpcHRTdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
OwogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGlmICghZ2xvYmFs
T2JqZWN0LT5pbmhlcml0cyh2bSwgSlNET01XaW5kb3dCYXNlOjppbmZvKCkpKQorICAgIGlmICgh
Z2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuICZKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihn
bG9iYWxPYmplY3QpLT53cmFwcGVkKCk7CiB9CkBAIC02Niw3ICs2Niw3IEBAIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKEpTQzo6RXhl
Y1N0YXRlKiBzY3JpCiB7CiAgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0g
c2NyaXB0U3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBKU0M6OlZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdC0+aW5oZXJpdHModm0sIEpT
RE9NR2xvYmFsT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghZ2xvYmFsT2JqZWN0LT5pbmhlcml0
czxKU0RPTUdsb2JhbE9iamVjdD4odm0pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBy
ZXR1cm4gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCBiODU2OWEzZDEzNmUzMGY0M2Iy
OTMyZmM1NWJjY2IzZDZkYjU0M2NhLi41MzJjNzE3ZGM4N2UwNmQ3ZTU4MzM1YTAzYWE4ZDVkZmZk
Y2NiNjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTYwNCw3ICs2MDQsNyBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6
ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2
YWx1ZSk7Ci0gICAgICAgIHJldHVybiBpc0pTQXJyYXkob2JqZWN0KSB8fCBvYmplY3QtPmluaGVy
aXRzKHZtLCBKU0FycmF5OjppbmZvKCkpOworICAgICAgICByZXR1cm4gb2JqZWN0LT5pbmhlcml0
czxKU0FycmF5Pih2bSk7CiAgICAgfQogCiAgICAgYm9vbCBpc01hcChWTSYgdm0sIEpTVmFsdWUg
dmFsdWUpCkBAIC02MTIsMTQgKzYxMiwxNCBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9u
ZUJhc2UgewogICAgICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7Ci0g
ICAgICAgIHJldHVybiBvYmplY3QtPmluaGVyaXRzKHZtLCBKU01hcDo6aW5mbygpKTsKKyAgICAg
ICAgcmV0dXJuIG9iamVjdC0+aW5oZXJpdHM8SlNNYXA+KHZtKTsKICAgICB9CiAgICAgYm9vbCBp
c1NldChWTSYgdm0sIEpTVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBpZiAoIXZhbHVlLmlz
T2JqZWN0KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIEpTT2JqZWN0KiBv
YmplY3QgPSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBvYmplY3QtPmluaGVyaXRz
KHZtLCBKU1NldDo6aW5mbygpKTsKKyAgICAgICAgcmV0dXJuIG9iamVjdC0+aW5oZXJpdHM8SlNT
ZXQ+KHZtKTsKICAgICB9CiAKICAgICBib29sIGNoZWNrRm9yRHVwbGljYXRlKEpTT2JqZWN0KiBv
YmplY3QpCkBAIC03NTQsMjUgKzc1NCwyNSBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9u
ZUJhc2UgewogICAgIHsKICAgICAgICAgVk0mIHZtID0gbV9leGVjLT52bSgpOwogICAgICAgICB3
cml0ZShBcnJheUJ1ZmZlclZpZXdUYWcpOwotICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwg
SlNEYXRhVmlldzo6aW5mbygpKSkKKyAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNEYXRhVmll
dz4odm0pKQogICAgICAgICAgICAgd3JpdGUoRGF0YVZpZXdUYWcpOwotICAgICAgICBlbHNlIGlm
IChvYmotPmluaGVyaXRzKHZtLCBKU1VpbnQ4Q2xhbXBlZEFycmF5OjppbmZvKCkpKQorICAgICAg
ICBlbHNlIGlmIChvYmotPmluaGVyaXRzPEpTVWludDhDbGFtcGVkQXJyYXk+KHZtKSkKICAgICAg
ICAgICAgIHdyaXRlKFVpbnQ4Q2xhbXBlZEFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAob2Jq
LT5pbmhlcml0cyh2bSwgSlNJbnQ4QXJyYXk6OmluZm8oKSkpCisgICAgICAgIGVsc2UgaWYgKG9i
ai0+aW5oZXJpdHM8SlNJbnQ4QXJyYXk+KHZtKSkKICAgICAgICAgICAgIHdyaXRlKEludDhBcnJh
eVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTVWludDhBcnJheTo6
aW5mbygpKSkKKyAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU1VpbnQ4QXJyYXk+KHZt
KSkKICAgICAgICAgICAgIHdyaXRlKFVpbnQ4QXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlmIChv
YmotPmluaGVyaXRzKHZtLCBKU0ludDE2QXJyYXk6OmluZm8oKSkpCisgICAgICAgIGVsc2UgaWYg
KG9iai0+aW5oZXJpdHM8SlNJbnQxNkFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShJbnQx
NkFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNVaW50MTZB
cnJheTo6aW5mbygpKSkKKyAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU1VpbnQxNkFy
cmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShVaW50MTZBcnJheVRhZyk7Ci0gICAgICAgIGVs
c2UgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTSW50MzJBcnJheTo6aW5mbygpKSkKKyAgICAgICAg
ZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU0ludDMyQXJyYXk+KHZtKSkKICAgICAgICAgICAgIHdy
aXRlKEludDMyQXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzKHZtLCBK
U1VpbnQzMkFycmF5OjppbmZvKCkpKQorICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzPEpT
VWludDMyQXJyYXk+KHZtKSkKICAgICAgICAgICAgIHdyaXRlKFVpbnQzMkFycmF5VGFnKTsKLSAg
ICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNGbG9hdDMyQXJyYXk6OmluZm8oKSkp
CisgICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHM8SlNGbG9hdDMyQXJyYXk+KHZtKSkKICAg
ICAgICAgICAgIHdyaXRlKEZsb2F0MzJBcnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKG9iai0+
aW5oZXJpdHModm0sIEpTRmxvYXQ2NEFycmF5OjppbmZvKCkpKQorICAgICAgICBlbHNlIGlmIChv
YmotPmluaGVyaXRzPEpTRmxvYXQ2NEFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShGbG9h
dDY0QXJyYXlUYWcpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC04MDAsNyArODAwLDcgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAg
ICB2b2lkIGR1bXBET01Qb2ludChKU09iamVjdCogb2JqKQogICAgIHsKICAgICAgICAgVk0mIHZt
ID0gbV9leGVjLT52bSgpOwotICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNET01Qb2lu
dDo6aW5mbygpKSkKKyAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNET01Qb2ludD4odm0pKQog
ICAgICAgICAgICAgd3JpdGUoRE9NUG9pbnRUYWcpOwogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICB3cml0ZShET01Qb2ludFJlYWRPbmx5VGFnKTsKQEAgLTgxMSw3ICs4MTEsNyBAQCBjbGFzcyBD
bG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgIHZvaWQgZHVtcERPTVJlY3QoSlNPYmpl
Y3QqIG9iaikKICAgICB7CiAgICAgICAgIFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKLSAgICAgICAg
aWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9NUmVjdDo6aW5mbygpKSkKKyAgICAgICAgaWYgKG9i
ai0+aW5oZXJpdHM8SlNET01SZWN0Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShET01SZWN0VGFn
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgd3JpdGUoRE9NUmVjdFJlYWRPbmx5VGFnKTsK
QEAgLTgyNiw3ICs4MjYsNyBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2Ugewog
ICAgIHZvaWQgZHVtcERPTU1hdHJpeChKU09iamVjdCogb2JqKQogICAgIHsKICAgICAgICAgVk0m
IHZtID0gbV9leGVjLT52bSgpOwotICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNET01N
YXRyaXg6OmluZm8oKSkpCisgICAgICAgIGlmIChvYmotPmluaGVyaXRzPEpTRE9NTWF0cml4Pih2
bSkpCiAgICAgICAgICAgICB3cml0ZShET01NYXRyaXhUYWcpOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICB3cml0ZShET01NYXRyaXhSZWFkT25seVRhZyk7CkBAIC04OTEsMzYgKzg5MSwzNCBA
QCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICB9CiAKICAgICAg
ICAgVk0mIHZtID0gbV9leGVjLT52bSgpOwotICAgICAgICBpZiAodmFsdWUuaXNPYmplY3QoKSAm
JiBhc09iamVjdCh2YWx1ZSktPmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpIHsK
LSAgICAgICAgICAgIHdyaXRlKERhdGVUYWcpOwotICAgICAgICAgICAgd3JpdGUoYXNEYXRlSW5z
dGFuY2UodmFsdWUpLT5pbnRlcm5hbE51bWJlcigpKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgICB9Ci0KICAgICAgICAgaWYgKGlzQXJyYXkodm0sIHZhbHVlKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBpZiAodmFsdWUuaXNPYmplY3QoKSkgewogICAg
ICAgICAgICAgYXV0byogb2JqID0gYXNPYmplY3QodmFsdWUpOwotICAgICAgICAgICAgaWYgKG9i
ai0+aW5oZXJpdHModm0sIEJvb2xlYW5PYmplY3Q6OmluZm8oKSkpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoIXN0YXJ0T2JqZWN0SW50ZXJuYWwob2JqKSkgLy8gaGFuZGxlIGR1cGxpY2F0ZXMKKyAg
ICAgICAgICAgIGlmIChhdXRvKiBkYXRlT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFu
Y2UqPih2bSwgb2JqKSkgeworICAgICAgICAgICAgICAgIHdyaXRlKERhdGVUYWcpOworICAgICAg
ICAgICAgICAgIHdyaXRlKGRhdGVPYmplY3QtPmludGVybmFsTnVtYmVyKCkpOworICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGF1dG8q
IGJvb2xlYW5PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEJvb2xlYW5PYmplY3QqPih2bSwgb2JqKSkg
eworICAgICAgICAgICAgICAgIGlmICghc3RhcnRPYmplY3RJbnRlcm5hbChib29sZWFuT2JqZWN0
KSkgLy8gaGFuZGxlIGR1cGxpY2F0ZXMKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgICAgICAgICAgd3JpdGUoYXNCb29sZWFuT2JqZWN0KHZhbHVlKS0+aW50ZXJuYWxW
YWx1ZSgpLnRvQm9vbGVhbihtX2V4ZWMpID8gVHJ1ZU9iamVjdFRhZyA6IEZhbHNlT2JqZWN0VGFn
KTsKKyAgICAgICAgICAgICAgICB3cml0ZShib29sZWFuT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCku
dG9Cb29sZWFuKG1fZXhlYykgPyBUcnVlT2JqZWN0VGFnIDogRmFsc2VPYmplY3RUYWcpOwogICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYg
KG9iai0+aW5oZXJpdHModm0sIFN0cmluZ09iamVjdDo6aW5mbygpKSkgewotICAgICAgICAgICAg
ICAgIGlmICghc3RhcnRPYmplY3RJbnRlcm5hbChvYmopKSAvLyBoYW5kbGUgZHVwbGljYXRlcwor
ICAgICAgICAgICAgaWYgKGF1dG8qIHN0cmluZ09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8U3RyaW5n
T2JqZWN0Kj4odm0sIG9iaikpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0T2JqZWN0SW50
ZXJuYWwoc3RyaW5nT2JqZWN0KSkgLy8gaGFuZGxlIGR1cGxpY2F0ZXMKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IGFzU3RyaW5n
KGFzU3RyaW5nT2JqZWN0KHZhbHVlKS0+aW50ZXJuYWxWYWx1ZSgpKS0+dmFsdWUobV9leGVjKTsK
KyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gYXNTdHJpbmcoc3RyaW5nT2JqZWN0LT5pbnRl
cm5hbFZhbHVlKCkpLT52YWx1ZShtX2V4ZWMpOwogICAgICAgICAgICAgICAgIGR1bXBTdHJpbmdP
YmplY3Qoc3RyKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBOdW1iZXJPYmplY3Q6OmluZm8oKSkp
IHsKLSAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0T2JqZWN0SW50ZXJuYWwob2JqKSkgLy8gaGFu
ZGxlIGR1cGxpY2F0ZXMKKyAgICAgICAgICAgIGlmIChhdXRvKiBudW1iZXJPYmplY3QgPSBqc0R5
bmFtaWNDYXN0PE51bWJlck9iamVjdCo+KHZtLCBvYmopKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFzdGFydE9iamVjdEludGVybmFsKG51bWJlck9iamVjdCkpIC8vIGhhbmRsZSBkdXBsaWNhdGVz
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIHdyaXRl
KE51bWJlck9iamVjdFRhZyk7Ci0gICAgICAgICAgICAgICAgTnVtYmVyT2JqZWN0KiBvYmogPSBz
dGF0aWNfY2FzdDxOdW1iZXJPYmplY3QqPihhc09iamVjdCh2YWx1ZSkpOwotICAgICAgICAgICAg
ICAgIHdyaXRlKG9iai0+aW50ZXJuYWxWYWx1ZSgpLmFzTnVtYmVyKCkpOworICAgICAgICAgICAg
ICAgIHdyaXRlKG51bWJlck9iamVjdC0+aW50ZXJuYWxWYWx1ZSgpLmFzTnVtYmVyKCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYg
KGF1dG8qIGZpbGUgPSBKU0ZpbGU6OnRvV3JhcHBlZCh2bSwgb2JqKSkgewpAQCAtOTUxLDggKzk0
OSw3IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgICAgICAgICAg
ICAgd3JpdGUoZGF0YS0+ZGF0YSgpLT5kYXRhKCksIGRhdGEtPmRhdGEoKS0+bGVuZ3RoKCkpOwog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKG9iai0+aW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkgewotICAgICAgICAg
ICAgICAgIGF1dG8qIHJlZ0V4cCA9IGFzUmVnRXhwT2JqZWN0KG9iaik7CisgICAgICAgICAgICBp
ZiAoYXV0byogcmVnRXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgb2JqKSkg
ewogICAgICAgICAgICAgICAgIGNoYXIgZmxhZ3NbM107CiAgICAgICAgICAgICAgICAgaW50IGZs
YWdDb3VudCA9IDA7CiAgICAgICAgICAgICAgICAgaWYgKHJlZ0V4cC0+cmVnRXhwKCktPmdsb2Jh
bCgpKQpAQCAtOTY2LDcgKzk2Myw3IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFz
ZSB7CiAgICAgICAgICAgICAgICAgd3JpdGUoU3RyaW5nKGZsYWdzLCBmbGFnQ291bnQpKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
IChvYmotPmluaGVyaXRzKHZtLCBKU01lc3NhZ2VQb3J0OjppbmZvKCkpKSB7CisgICAgICAgICAg
ICBpZiAob2JqLT5pbmhlcml0czxKU01lc3NhZ2VQb3J0Pih2bSkpIHsKICAgICAgICAgICAgICAg
ICBhdXRvIGluZGV4ID0gbV90cmFuc2ZlcnJlZE1lc3NhZ2VQb3J0cy5maW5kKG9iaik7CiAgICAg
ICAgICAgICAgICAgaWYgKGluZGV4ICE9IG1fdHJhbnNmZXJyZWRNZXNzYWdlUG9ydHMuZW5kKCkp
IHsKICAgICAgICAgICAgICAgICAgICAgd3JpdGUoTWVzc2FnZVBvcnRSZWZlcmVuY2VUYWcpOwpA
QCAtMTAwNyw3ICsxMDA0LDcgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsK
ICAgICAgICAgICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlC
dWZmZXItPmRhdGEoKSksIGFycmF5QnVmZmVyLT5ieXRlTGVuZ3RoKCkpOwogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG9iai0+aW5o
ZXJpdHModm0sIEpTQXJyYXlCdWZmZXJWaWV3OjppbmZvKCkpKSB7CisgICAgICAgICAgICBpZiAo
b2JqLT5pbmhlcml0czxKU0FycmF5QnVmZmVyVmlldz4odm0pKSB7CiAgICAgICAgICAgICAgICAg
aWYgKGNoZWNrRm9yRHVwbGljYXRlKG9iaikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICAgICAgICAgIGJvb2wgc3VjY2VzcyA9IGR1bXBBcnJheUJ1ZmZlclZpZXco
b2JqLCBjb2RlKTsKQEAgLTEwNTEsMTkgKzEwNDgsMTkgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVy
IDogQ2xvbmVCYXNlIHsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAg
IH0KICNlbmRpZgotICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9NUG9pbnRS
ZWFkT25seTo6aW5mbygpKSkgeworICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNET01Q
b2ludFJlYWRPbmx5Pih2bSkpIHsKICAgICAgICAgICAgICAgICBkdW1wRE9NUG9pbnQob2JqKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0RPTVJlY3RSZWFkT25seTo6aW5mbygpKSkgeworICAg
ICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNET01SZWN0UmVhZE9ubHk+KHZtKSkgewogICAg
ICAgICAgICAgICAgIGR1bXBET01SZWN0KG9iaik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNE
T01NYXRyaXhSZWFkT25seTo6aW5mbygpKSkgeworICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJp
dHM8SlNET01NYXRyaXhSZWFkT25seT4odm0pKSB7CiAgICAgICAgICAgICAgICAgZHVtcERPTU1h
dHJpeChvYmopOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9NUXVhZDo6aW5mbygpKSkgewor
ICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNET01RdWFkPih2bSkpIHsKICAgICAgICAg
ICAgICAgICBkdW1wRE9NUXVhZChvYmopOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICAgICAgfQpAQCAtMTc1NSw3ICsxNzUyLDcgQEAgY2xhc3MgQ2xvbmVEZXNlcmlhbGl6
ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikK
ICAgICAgICAgOiBDbG9uZUJhc2UoZXhlYykKICAgICAgICAgLCBtX2dsb2JhbE9iamVjdChnbG9i
YWxPYmplY3QpCi0gICAgICAgICwgbV9pc0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPmlu
aGVyaXRzKGdsb2JhbE9iamVjdC0+dm0oKSwgSlNET01HbG9iYWxPYmplY3Q6OmluZm8oKSkpCisg
ICAgICAgICwgbV9pc0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTRE9N
R2xvYmFsT2JqZWN0PihnbG9iYWxPYmplY3QtPnZtKCkpKQogICAgICAgICAsIG1fcHRyKGJ1ZmZl
ci5kYXRhKCkpCiAgICAgICAgICwgbV9lbmQoYnVmZmVyLmRhdGEoKSArIGJ1ZmZlci5zaXplKCkp
CiAgICAgICAgICwgbV92ZXJzaW9uKDB4RkZGRkZGRkYpCkBAIC0xNzc3LDcgKzE3NzQsNyBAQCBj
bGFzcyBDbG9uZURlc2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgICAgICkKICAgICAgICAg
OiBDbG9uZUJhc2UoZXhlYykKICAgICAgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3Qp
Ci0gICAgICAgICwgbV9pc0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPmluaGVyaXRzKGds
b2JhbE9iamVjdC0+dm0oKSwgSlNET01HbG9iYWxPYmplY3Q6OmluZm8oKSkpCisgICAgICAgICwg
bV9pc0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTRE9NR2xvYmFsT2Jq
ZWN0PihnbG9iYWxPYmplY3QtPnZtKCkpKQogICAgICAgICAsIG1fcHRyKGJ1ZmZlci5kYXRhKCkp
CiAgICAgICAgICwgbV9lbmQoYnVmZmVyLmRhdGEoKSArIGJ1ZmZlci5zaXplKCkpCiAgICAgICAg
ICwgbV92ZXJzaW9uKDB4RkZGRkZGRkYpCkBAIC0yMDQ4LDcgKzIwNDUsNyBAQCBjbGFzcyBDbG9u
ZURlc2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgICAgIGlmICghcmVhZChieXRlTGVuZ3Ro
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgSlNPYmplY3QqIGFycmF5QnVm
ZmVyT2JqID0gYXNPYmplY3QocmVhZFRlcm1pbmFsKCkpOwotICAgICAgICBpZiAoIWFycmF5QnVm
ZmVyT2JqIHx8ICFhcnJheUJ1ZmZlck9iai0+aW5oZXJpdHModm0sIEpTQXJyYXlCdWZmZXI6Omlu
Zm8oKSkpCisgICAgICAgIGlmICghYXJyYXlCdWZmZXJPYmogfHwgIWFycmF5QnVmZmVyT2JqLT5p
bmhlcml0czxKU0FycmF5QnVmZmVyPih2bSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICAgICAgdW5zaWduZWQgZWxlbWVudFNpemUgPSB0eXBlZEFycmF5RWxlbWVudFNpemUoYXJy
YXlCdWZmZXJWaWV3U3VidGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZDllYWY4YzZiNDQ0NzI5N2Q2MDU2ZTU5MGY3
NThjZGI5N2ZiNjY2NS4uYzU5N2Q1YTEzMzEyNzhhMzM1YTJjMWEwMjc5NTA2MmNkNDQxMDczMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KQEAgLTM0MDAsMTYgKzM0MDAsMTYgQEAgc3ViIEdlbmVyYXRlT3ZlcmxvYWREaXNwYXRj
aGVyCiAgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlw
ZSgkc3VidHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzQnVmZmVyU291cmNlVHlwZSgkc3VidHlw
ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc3VidHlwZS0+bmFtZSBlcSAiRE9N
V2luZG93IikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCJKU0RPTVdpbmRvd1Byb3h5LmgiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJGdl
bmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vpc2hpbmdB
cmcuaXNPYmplY3QoKSAmJiAoYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2
bSwgSlNET01XaW5kb3dQcm94eTo6aW5mbygpKSB8fCBhc09iamVjdChkaXN0aW5ndWlzaGluZ0Fy
ZyktPmluaGVyaXRzKHZtLCBKU0RPTVdpbmRvdzo6aW5mbygpKSkiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2Fk
LCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiAoYXNPYmplY3QoZGlzdGluZ3Vpc2hp
bmdBcmcpLT5pbmhlcml0czxKU0RPTVdpbmRvd1Byb3h5Pih2bSkgfHwgYXNPYmplY3QoZGlzdGlu
Z3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU0RPTVdpbmRvdz4odm0pKSIpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJGdlbmVy
YXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vpc2hpbmdBcmcu
aXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBK
UyIgLiAkc3VidHlwZS0+bmFtZSAuICI6OmluZm8oKSkiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlz
dGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZykt
PmluaGVyaXRzPEpTIiAuICRzdWJ0eXBlLT5uYW1lIC4gIj4odm0pIik7CiAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgICRvdmVybG9hZCA9IEdldE92ZXJsb2FkVGhhdE1h
dGNoZXMoJFMsICRkLCBcJiRpc09iamVjdE9yRXJyb3JPckRPTUV4Y2VwdGlvblBhcmFtZXRlcik7
Ci0gICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2Fk
LCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGlu
Z0FyZyktPmluaGVyaXRzKHZtLCBKU0RPTUV4Y2VwdGlvbjo6aW5mbygpKSIpOworICAgICAgICAg
ICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0czxKU0RPTUV4Y2VwdGlvbj4odm0pIik7CiAKICAgICAgICAgICAgICRvdmVybG9hZCA9IEdl
dE92ZXJsb2FkVGhhdE1hdGNoZXMoJFMsICRkLCBcJiRpc09iamVjdE9yRXJyb3JQYXJhbWV0ZXIp
OwogICAgICAgICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9h
ZCwgImRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hp
bmdBcmcpLT50eXBlKCkgPT0gRXJyb3JJbnN0YW5jZVR5cGUiKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggZGI0
ZjRiMWY0OTczNDllMjdiYzAzYzg5OTEwMjJiOWFhZmIyZmI3Zi4uOWNlYmI3NzU3NTc5ZmRmOWY3
NzAyNWFjNzkyMjljMGQ2NTgyNzJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTcwMjEsMTcgKzcwMjEsMTcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZE92ZXIKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGlu
Z0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMkJvZHkoc3RhdGUsIGNhc3RlZFRo
aXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3Qo
KSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3RPYmo6
OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFz
T2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0T2JqPih2bSkpCiAgICAg
ICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
MkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGlu
Z3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmlu
aGVyaXRzKHZtLCBKU1Rlc3RDYWxsYmFja0ludGVyZmFjZTo6aW5mbygpKSkKKyAgICAgICAgaWYg
KGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdB
cmcpLT5pbmhlcml0czxKU1Rlc3RDYWxsYmFja0ludGVyZmFjZT4odm0pKQogICAgICAgICAgICAg
cmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDVCb2R5KHN0
YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5n
QXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2
bSwgSlNET01TdHJpbmdMaXN0OjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdB
cmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpT
RE9NU3RyaW5nTGlzdD4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDZCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Nj
b3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmpl
Y3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkpKQor
ICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0
aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE9iaj4odm0pKQogICAgICAgICAgICAgcmV0
dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDhCb2R5KHN0YXRl
LCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0s
IEpTRE9NV2luZG93UHJveHk6OmluZm8oKSkgfHwgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcp
LT5pbmhlcml0cyh2bSwgSlNET01XaW5kb3c6OmluZm8oKSkpKQorICAgICAgICBpZiAoZGlzdGlu
Z3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiAoYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5p
bmhlcml0czxKU0RPTVdpbmRvd1Byb3h5Pih2bSkgfHwgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdB
cmcpLT5pbmhlcml0czxKU0RPTVdpbmRvdz4odm0pKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q5Qm9keShzdGF0ZSwgY2FzdGVk
VGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVj
dCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTQmxvYjo6
aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNP
YmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU0Jsb2I+KHZtKSkKICAgICAgICAg
ICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxM0Jv
ZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICBpZiAoaGFzSXRlcmF0
b3JNZXRob2QoKnN0YXRlLCBkaXN0aW5ndWlzaGluZ0FyZykpCiAgICAgICAgICAgICByZXR1cm4g
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kN0JvZHkoc3RhdGUsIGNh
c3RlZFRoaXMsIHRocm93U2NvcGUpOwpAQCAtNzA0NSw3ICs3MDQ1LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZE92ZXIKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0FyZyA9IHN0YXRlLT51
bmNoZWNrZWRBcmd1bWVudCgxKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzVW5k
ZWZpbmVkKCkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAg
ICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5n
dWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU0Jsb2I6OmluZm8oKSkpCisgICAgICAgIGlmIChk
aXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHM8SlNCbG9iPih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMTNCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0
aHJvd1Njb3BlKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCiAg
ICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwpAQCAtNzA5Niw3ICs3MDk2
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlz
aGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICAgICAgaWYgKGRpc3Rp
bmd1aXNoaW5nQXJnLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4ganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1l
dGVyMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlz
dGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZykt
PmluaGVyaXRzKHZtLCBKU1Rlc3RPYmo6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlz
aGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJp
dHM8SlNUZXN0T2JqPih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMkJvZHkoc3RhdGUs
IGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMUJvZHkoc3Rh
dGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgIH0KQEAgLTcxMDQsNyArNzEwNCw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdB
cmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlz
aGluZ0FyZy5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcjJC
b2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdB
cmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpT
VGVzdE9iaj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcjJCb2R5KHN0YXRlLCBjYXN0
ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcjFCb2R5KHN0YXRlLCBj
YXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICB9CkBAIC03MTQ3LDkgKzcxNDcsOSBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kV2l0aAogICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGQ6Om1pbjxzaXpl
X3Q+KDEsIHN0YXRlLT5hcmd1bWVudENvdW50KCkpOwogICAgIGlmIChhcmdzQ291bnQgPT0gMSkg
ewogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gc3RhdGUtPnVuY2hlY2tlZEFy
Z3VtZW50KDApOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBh
c09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3RPYmo6OmluZm8o
KSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0
KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0T2JqPih2bSkpCiAgICAgICAgICAg
ICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERp
c3Rpbmd1aXNoaW5nVW5pb24xQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0g
ICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rp
bmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE5vZGU6OmluZm8oKSkpCisgICAgICAg
IGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNo
aW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0Tm9kZT4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGlu
Z1VuaW9uMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICBpZiAo
ZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlv
bjJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKQEAgLTcxOTQsMTEgKzcxOTQs
MTEgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICBzaXplX3QgYXJnc0NvdW50ID0gc3Rk
OjptaW48c2l6ZV90PigxLCBzdGF0ZS0+YXJndW1lbnRDb3VudCgpKTsKICAgICBpZiAoYXJnc0Nv
dW50ID09IDEpIHsKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0FyZyA9IHN0YXRlLT51
bmNoZWNrZWRBcmd1bWVudCgwKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2Jq
ZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0
T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAm
JiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE9iaj4odm0pKQog
ICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1l
dGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMxQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhy
b3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFz
T2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE5vZGU6OmluZm8o
KSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0
KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0Tm9kZT4odm0pKQogICAgICAgICAg
ICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgy
RGlzdGluZ3Vpc2hpbmdVbmlvbnMxQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7
Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRp
c3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdEludGVyZmFjZTo6aW5mbygpKSkK
KyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlz
dGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RJbnRlcmZhY2U+KHZtKSkKICAgICAgICAg
ICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRo
MkRpc3Rpbmd1aXNoaW5nVW5pb25zMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUp
OwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAgICAgICAgICAg
IHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoMkRp
c3Rpbmd1aXNoaW5nVW5pb25zMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwpA
QCAtNzI0Nyw5ICs3MjQ3LDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICBzaXplX3Qg
YXJnc0NvdW50ID0gc3RkOjptaW48c2l6ZV90PigyLCBzdGF0ZS0+YXJndW1lbnRDb3VudCgpKTsK
ICAgICBpZiAoYXJnc0NvdW50ID09IDIpIHsKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGlu
Z0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdB
cmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpT
VGVzdE9iaj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uMUJvZHkoc3RhdGUs
IGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcu
aXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBK
U1Rlc3ROb2RlOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmpl
Y3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE5vZGU+
KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbjJCb2R5KHN0YXRlLCBjYXN0ZWRU
aGlzLCB0aHJvd1Njb3BlKTsKICAgICB9CiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDIgPyB0aHJv
d1ZNRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KHN0YXRlKSkgOiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKQEAgLTcyOTMs
OSArNzI5Myw5IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlCiAgICAgICAgIEpTVmFsdWUgZGlz
dGluZ3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CiAgICAgICAgIGlm
IChkaXN0aW5ndWlzaGluZ0FyZy5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgcmV0
dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbjFC
b2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdB
cmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpT
VGVzdE9iaj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbjFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJv
d1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNP
YmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0Tm9kZTo6aW5mbygp
KSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3Qo
ZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3ROb2RlPih2bSkpCiAgICAgICAgICAg
ICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZVVu
aW9uMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICBpZiAoZGlz
dGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24yQm9keShzdGF0ZSwgY2Fz
dGVkVGhpcywgdGhyb3dTY29wZSk7CkBAIC03Mzk0LDcgKzczOTQsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdp
dGhOdWxsYWJsZQogICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGQ6Om1pbjxzaXplX3Q+KDIsIHN0
YXRlLT5hcmd1bWVudENvdW50KCkpOwogICAgIGlmIChhcmdzQ291bnQgPT0gMikgewogICAgICAg
ICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDEp
OwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChk
aXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3ROb2RlOjppbmZvKCkpKQorICAg
ICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5n
dWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE5vZGU+KHZtKSkKICAgICAgICAgICAgIHJldHVy
biBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlzdGlu
Z3Vpc2hpbmdQYXJhbWV0ZXIxQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CiAg
ICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc051bWJlcigpKQogICAgICAgICAgICAgcmV0
dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVOb25EaXN0
aW5ndWlzaGluZ1BhcmFtZXRlcjJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsK
QEAgLTc5ODQsNyArNzk4NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRlCiAgICAgc2l6ZV90
IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4oMSwgc3RhdGUtPmFyZ3VtZW50Q291bnQoKSk7
CiAgICAgaWYgKGFyZ3NDb3VudCA9PSAxKSB7CiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hp
bmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgICAgIGlmIChkaXN0aW5n
dWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5o
ZXJpdHModm0sIEpTRmV0Y2hSZXF1ZXN0OjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzPEpTRmV0Y2hSZXF1ZXN0Pih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbjJCb2R5KHN0YXRlLCBj
YXN0ZWRUaGlzLCBXVEZNb3ZlKHByb21pc2UpLCB0aHJvd1Njb3BlKTsKICAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbjFCb2R5KHN0YXRl
LCBjYXN0ZWRUaGlzLCBXVEZNb3ZlKHByb21pc2UpLCB0aHJvd1Njb3BlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCA2MGZkNTIyN2Q5YWUyNzJm
NmQwMTNmOWJlZDkzNmQ2MzU1MzdmZWEwLi4xOTdlY2Y5Nzg3YmQxM2FiM2ZhMjAwN2VkYzRiNTQ2
OTYxOGVjNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMu
Y3BwCkBAIC0xNDgsMTEgKzE0OCwxMSBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOgogICAgIH0K
ICAgICBpZiAoYXJnc0NvdW50ID09IDEpIHsKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGlu
Z0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0cyh2bSwgSlNBcnJheUJ1ZmZlcjo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNo
aW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0
czxKU0FycmF5QnVmZmVyPih2bSkpCiAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0SlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yczEoc3RhdGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
KHZtLCBKU0FycmF5QnVmZmVyVmlldzo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNo
aW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0
czxKU0FycmF5QnVmZmVyVmlldz4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMyKHN0YXRlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0cyh2bSwgSlNCbG9iOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcu
aXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTQmxv
Yj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMzKHN0YXRlKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVy
KCkpCiAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yczUoc3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0
YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAppbmRleCA3
MzFhNmU4MmI0ZDMzYWFlMDgxZGVkNjY4ZTViNDBlM2I1MGE4OWIwLi4zOThiN2JlMTY0NDFiZjRk
OTBmYWNhMWI1ZWJlN2NhYTMyMjQwMjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvYy9jX2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3Rh
bmNlLmNwcApAQCAtMTU5LDcgKzE1OSw3IEBAIEpTVmFsdWUgQ0luc3RhbmNlOjppbnZva2VNZXRo
b2QoRXhlY1N0YXRlKiBleGVjLCBSdW50aW1lTWV0aG9kKiBydW50aW1lTWV0aG9kKQogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogCi0gICAgaWYgKCFhc09iamVjdChydW50aW1lTWV0aG9kKS0+aW5oZXJpdHModm0sIENS
dW50aW1lTWV0aG9kOjppbmZvKCkpKQorICAgIGlmICghYXNPYmplY3QocnVudGltZU1ldGhvZCkt
PmluaGVyaXRzPENSdW50aW1lTWV0aG9kPih2bSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVF
cnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGludm9rZSBub24tcGx1
Zy1pbiBtZXRob2Qgb24gcGx1Zy1pbiBvYmplY3QuIikpOwogCiAgICAgQ01ldGhvZCogbWV0aG9k
ID0gc3RhdGljX2Nhc3Q8Q01ldGhvZCo+KHJ1bnRpbWVNZXRob2QtPm1ldGhvZCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQppbmRleCBlODJjNTU3
M2I5NWViNzJjYTEzNjUzNzUwNzBkYTg4Njk2ODFlZTkwLi5lYTI0NzNkYWNlNTg2MDZkNTM4OWM5
ZTc1MGZhYjc4MzlmOTQ3NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9XZWJTY3JpcHRPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2Vi
U2NyaXB0T2JqZWN0Lm1tCkBAIC01NzAsMTEgKzU3MCwxMSBAQCArIChpZClfY29udmVydFZhbHVl
VG9PYmpjVmFsdWU6KEpTQzo6SlNWYWx1ZSl2YWx1ZSBvcmlnaW5Sb290T2JqZWN0OihSb290T2Jq
ZWN0KgogICAgICAgICBKU0M6OlZNJiB2bSA9IHJvb3RPYmplY3QtPmdsb2JhbE9iamVjdCgpLT52
bSgpOwogICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAKLSAgICAgICAgaWYgKG9iamVj
dC0+aW5oZXJpdHModm0sIEpTSFRNTEVsZW1lbnQ6OmluZm8oKSkpIHsKKyAgICAgICAgaWYgKG9i
amVjdC0+aW5oZXJpdHM8SlNIVE1MRWxlbWVudD4odm0pKSB7CiAgICAgICAgICAgICAvLyBQbHVn
aW4gZWxlbWVudHMgY2FjaGUgdGhlIGluc3RhbmNlIGludGVybmFsbHkuCiAgICAgICAgICAgICBp
ZiAoT2JqY0luc3RhbmNlKiBpbnN0YW5jZSA9IHN0YXRpY19jYXN0PE9iamNJbnN0YW5jZSo+KHBs
dWdpbkluc3RhbmNlKGpzQ2FzdDxKU0hUTUxFbGVtZW50Kj4ob2JqZWN0KS0+d3JhcHBlZCgpKSkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlLT5nZXRPYmplY3QoKTsKLSAgICAgICAg
fSBlbHNlIGlmIChvYmplY3QtPmluaGVyaXRzKHZtLCBPYmpDUnVudGltZU9iamVjdDo6aW5mbygp
KSkgeworICAgICAgICB9IGVsc2UgaWYgKG9iamVjdC0+aW5oZXJpdHM8T2JqQ1J1bnRpbWVPYmpl
Y3Q+KHZtKSkgewogICAgICAgICAgICAgT2JqQ1J1bnRpbWVPYmplY3QqIHJ1bnRpbWVPYmplY3Qg
PSBzdGF0aWNfY2FzdDxPYmpDUnVudGltZU9iamVjdCo+KG9iamVjdCk7CiAgICAgICAgICAgICBP
YmpjSW5zdGFuY2UqIGluc3RhbmNlID0gcnVudGltZU9iamVjdC0+Z2V0SW50ZXJuYWxPYmpDSW5z
dGFuY2UoKTsKICAgICAgICAgICAgIGlmIChpbnN0YW5jZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCmluZGV4IDNmYmFlMzM3NGQyNGZmZDU2NWZlZTZlZDg3
NjM2MzA1OGU0ZjNkNDguLmI3ZDI0ZDQ0YTI0YTZiMDU1Mjc3NDVmNjFlOTQ3MzdkZTliNzk2OGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQpAQCAtMjEy
LDcgKzIxMiw3IEBAIEpTQzo6SlNWYWx1ZSBPYmpjSW5zdGFuY2U6Omludm9rZU1ldGhvZChFeGVj
U3RhdGUqIGV4ZWMsIFJ1bnRpbWVNZXRob2QqIHJ1bnRpbWVNCiAgICAgSlNDOjpWTSYgdm0gPSBl
eGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAot
ICAgIGlmICghYXNPYmplY3QocnVudGltZU1ldGhvZCktPmluaGVyaXRzKHZtLCBPYmpDUnVudGlt
ZU1ldGhvZDo6aW5mbygpKSkKKyAgICBpZiAoIWFzT2JqZWN0KHJ1bnRpbWVNZXRob2QpLT5pbmhl
cml0czxPYmpDUnVudGltZU1ldGhvZD4odm0pKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJy
b3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBpbnZva2Ugbm9uLXBsdWct
aW4gbWV0aG9kIG9uIHBsdWctaW4gb2JqZWN0LiIpKTsKIAogICAgIE9iamNNZXRob2QgKm1ldGhv
ZCA9IHN0YXRpY19jYXN0PE9iamNNZXRob2QqPihydW50aW1lTWV0aG9kLT5tZXRob2QoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggMGE4OWM4NTg3
NDQwMjhiYzkzNTM3MjkzNDI2YTllYTBjOGNiOTViOC4uMTYzYzFkYTYzYTk4YjNkMTk4ZWIwYTE3
NTlhMTkwMmRlMzdmNWFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
b2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5tbQpAQCAtMjQ5LDcgKzI0OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxPYmpDRmFsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIE9i
akNSdW50aW1lT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzPE9i
akNSdW50aW1lT2JqZWN0Pih2bSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIHNjb3BlKTsKIAogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNVbmRlZmluZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCmluZGV4IGMzNTE4MmJkY2FmMWFkN2Uz
NjJjOWY4MmQwYzNhY2MyM2M0MTE0ODcuLjY3ZWU3NWQ0NGJjMTFiY2QxMGQyYWMzODcyZGEwZWVk
OTFhNjNjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhv
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAt
OTIsMTQgKzkyLDE0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxS
dW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKICAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3Rh
bmNlOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBp
ZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSdW50aW1lT2JqZWN0OjppbmZvKCkpKSB7CisgICAg
aWYgKHRoaXNWYWx1ZS5pbmhlcml0czxSdW50aW1lT2JqZWN0Pih2bSkpIHsKICAgICAgICAgUnVu
dGltZU9iamVjdCogcnVudGltZU9iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVPYmplY3QqPihh
c09iamVjdCh0aGlzVmFsdWUpKTsKICAgICAgICAgaW5zdGFuY2UgPSBydW50aW1lT2JqZWN0LT5n
ZXRJbnRlcm5hbEluc3RhbmNlKCk7CiAgICAgICAgIGlmICghaW5zdGFuY2UpIAogICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShSdW50aW1lT2JqZWN0Ojp0aHJvd0ludmFsaWRBY2Nl
c3NFcnJvcihleGVjLCBzY29wZSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENhbGxpbmcg
YSBydW50aW1lIG9iamVjdCBvZiBhIHBsdWdpbiBlbGVtZW50PwotICAgICAgICBpZiAodGhpc1Zh
bHVlLmluaGVyaXRzKHZtLCBKU0hUTUxFbGVtZW50OjppbmZvKCkpKQorICAgICAgICBpZiAodGhp
c1ZhbHVlLmluaGVyaXRzPEpTSFRNTEVsZW1lbnQ+KHZtKSkKICAgICAgICAgICAgIGluc3RhbmNl
ID0gcGx1Z2luSW5zdGFuY2UoanNDYXN0PEpTSFRNTEVsZW1lbnQqPihhc09iamVjdCh0aGlzVmFs
dWUpKS0+d3JhcHBlZCgpKTsKICAgICAgICAgaWYgKCFpbnN0YW5jZSkKICAgICAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9vYmplY3QuY3BwCmluZGV4IDE1ZjBhOTQxYWQ4ZWY1MTE5MGU1NDZkN2M1NTllY2Uz
NWE4OWEyMzYuLjZhNzI4NGZhMGFiZTU3MDExMWFiMzlkY2U0MWMzZTQ1Zjc1MDRlMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMjI0LDcgKzIyNCw3IEBA
IEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0KiBvYmpl
Y3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJlCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBBU1NFUlQo
ZXhlYy0+anNDYWxsZWUoKS0+aW5oZXJpdHMoZXhlYy0+dm0oKSwgUnVudGltZU9iamVjdDo6aW5m
bygpKSk7CisgICAgQVNTRVJUKGV4ZWMtPmpzQ2FsbGVlKCktPmluaGVyaXRzPFJ1bnRpbWVPYmpl
Y3Q+KGV4ZWMtPnZtKCkpKTsKICAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlKHN0YXRpY19j
YXN0PFJ1bnRpbWVPYmplY3QqPihleGVjLT5qc0NhbGxlZSgpKS0+Z2V0SW50ZXJuYWxJbnN0YW5j
ZSgpKTsKICAgICBpbnN0YW5jZS0+YmVnaW4oKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGluc3Rh
bmNlLT5pbnZva2VEZWZhdWx0TWV0aG9kKGV4ZWMpOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIENhbGxU
eXBlIFJ1bnRpbWVPYmplY3Q6OmdldENhbGxEYXRhKEpTQ2VsbCogY2VsbCwgQ2FsbERhdGEmIGNh
bGxEYXRhKQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1bnRpbWVD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNPYmplY3QqIGNvbnN0cnVjdG9y
ID0gZXhlYy0+anNDYWxsZWUoKTsKLSAgICBBU1NFUlQoY29uc3RydWN0b3ItPmluaGVyaXRzKGV4
ZWMtPnZtKCksIFJ1bnRpbWVPYmplY3Q6OmluZm8oKSkpOworICAgIEFTU0VSVChjb25zdHJ1Y3Rv
ci0+aW5oZXJpdHM8UnVudGltZU9iamVjdD4oZXhlYy0+dm0oKSkpOwogICAgIFJlZlB0cjxJbnN0
YW5jZT4gaW5zdGFuY2Uoc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGV4ZWMtPmpzQ2FsbGVl
KCkpLT5nZXRJbnRlcm5hbEluc3RhbmNlKCkpOwogICAgIGluc3RhbmNlLT5iZWdpbigpOwogICAg
IEFyZ0xpc3QgYXJncyhleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9XZWJJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dl
YkluamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggNTU1Mjc3YmNjNGVlMTk0ZmIzMjk4NDFkNGQ0
NWRiOWM0NzRlYmU5YS4uOTA2NGIyNGE4YjU2ZTNhM2M5NWRkOTI0NTllMGIzY2FjNWFhNjA4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0SG9z
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0SG9z
dC5jcHAKQEAgLTQ3LDEzICs0NywxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogSlNWYWx1ZSBX
ZWJJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZh
bHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRz
KHZtLCBKU05vZGU6OmluZm8oKSkpCisgICAgaWYgKHZhbHVlLmluaGVyaXRzPEpTTm9kZT4odm0p
KQogICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgi
bm9kZSIpKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0sIEpTTm9kZUxpc3Q6OmluZm8oKSkp
CisgICAgaWYgKHZhbHVlLmluaGVyaXRzPEpTTm9kZUxpc3Q+KHZtKSkKICAgICAgICAgcmV0dXJu
IGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImFycmF5IikpOwotICAgIGlm
ICh2YWx1ZS5pbmhlcml0cyh2bSwgSlNIVE1MQ29sbGVjdGlvbjo6aW5mbygpKSkKKyAgICBpZiAo
dmFsdWUuaW5oZXJpdHM8SlNIVE1MQ29sbGVjdGlvbj4odm0pKQogICAgICAgICByZXR1cm4ganNO
b250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7Ci0gICAgaWYgKHZh
bHVlLmluaGVyaXRzKHZtLCBKU0RPTUV4Y2VwdGlvbjo6aW5mbygpKSkKKyAgICBpZiAodmFsdWUu
aW5oZXJpdHM8SlNET01FeGNlcHRpb24+KHZtKSkKICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlh
bFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImVycm9yIikpOwogCiAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CkBAIC0xODUsNyArMTg1LDcgQEAgSlNWYWx1ZSBXZWJJbmplY3RlZFNjcmlwdEhv
c3Q6OmdldEludGVybmFsUHJvcGVydGllcyhWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgSlMKIAog
Ym9vbCBXZWJJbmplY3RlZFNjcmlwdEhvc3Q6OmlzSFRNTEFsbENvbGxlY3Rpb24oSlNDOjpWTSYg
dm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gdmFsdWUuaW5oZXJpdHModm0s
IEpTSFRNTEFsbENvbGxlY3Rpb246OmluZm8oKSk7CisgICAgcmV0dXJuIHZhbHVlLmluaGVyaXRz
PEpTSFRNTEFsbENvbGxlY3Rpb24+KHZtKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE1ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QTWV0aG9kLmNwcAppbmRleCBlNTYwODhmNzMyMThhNGJjN2YwOTA3ODY5ZTZkZGVmMWVhN2Mw
MTE5Li44ZjBkNGRmNGNlZjdlMGMxYzg0MjlkOGJiZmU3YmJjMjVkNWU1YmNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0
aG9kLmNwcApAQCAtNjksNyArNjksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPnRoaXNWYWx1ZSgpOwogCiAgICAgLy8gQ2hlY2sgaWYgd2UncmUgY2FsbGluZyBhIG1l
dGhvZCBvbiB0aGUgcGx1Zy1pbiBzY3JpcHQgb2JqZWN0LgotICAgIGlmICh0aGlzVmFsdWUuaW5o
ZXJpdHModm0sIEpTSFRNTEVsZW1lbnQ6OmluZm8oKSkpIHsKKyAgICBpZiAodGhpc1ZhbHVlLmlu
aGVyaXRzPEpTSFRNTEVsZW1lbnQ+KHZtKSkgewogICAgICAgICBKU0hUTUxFbGVtZW50KiBlbGVt
ZW50ID0ganNDYXN0PEpTSFRNTEVsZW1lbnQqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKIAogICAg
ICAgICAvLyBUcnkgdG8gZ2V0IHRoZSBzY3JpcHQgb2JqZWN0IGZyb20gdGhlIGVsZW1lbnQKQEAg
LTc3LDcgKzc3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1l
dGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICB0aGlzVmFsdWUgPSBzY3JpcHRPYmpl
Y3Q7CiAgICAgfQogCi0gICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgSlNOUE9iamVjdDo6
aW5mbygpKSkgeworICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8SlNOUE9iamVjdD4odm0pKSB7
CiAgICAgICAgIEpTTlBPYmplY3QqIGpzTlBPYmplY3QgPSBqc0Nhc3Q8SlNOUE9iamVjdCo+KGFz
T2JqZWN0KHRoaXNWYWx1ZSkpOwogCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
UE9iamVjdC0+Y2FsbE1ldGhvZChleGVjLCBqc05QTWV0aG9kLT5ucElkZW50aWZpZXIoKSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmNwcAppbmRleCAwN2E0ZTIyMGQ2YzJkYjkyYTU4YzFlOWRjN2UyNDFhNjNmNmEz
YmRhLi4xZmE1OTAxN2FhMzM5MzU1ZDMyZDQ1YzE1MDlkZjVlODg1NDJlNDg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0LmNwcApAQCAtMjQxLDcgKzI0MSw3IEBAIEpTVmFsdWUgSlNOUE9iamVjdDo6Y2FsbENvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxOUEpTT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU09iamVjdCogb2Jq
ZWN0ID0gZXhlYy0+anNDYWxsZWUoKTsKLSAgICBBU1NFUlQob2JqZWN0LT5pbmhlcml0cyhleGVj
LT52bSgpLCBKU05QT2JqZWN0OjppbmZvKCkpKTsKKyAgICBBU1NFUlQob2JqZWN0LT5pbmhlcml0
czxKU05QT2JqZWN0PihleGVjLT52bSgpKSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQ2FzdDxKU05QT2JqZWN0Kj4ob2JqZWN0KS0+Y2FsbE9iamVjdChleGVjKSk7CiB9CkBAIC0y
NjAsNyArMjYwLDcgQEAgSlNDOjpDYWxsVHlwZSBKU05QT2JqZWN0OjpnZXRDYWxsRGF0YShKU0M6
OkpTQ2VsbCogY2VsbCwgSlNDOjpDYWxsRGF0YSYgY2FsbERhdGEKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgSlNPYmplY3QqIGNvbnN0cnVjdG9yID0gZXhlYy0+anNDYWxsZWUoKTsKLSAg
ICBBU1NFUlQoY29uc3RydWN0b3ItPmluaGVyaXRzKGV4ZWMtPnZtKCksIEpTTlBPYmplY3Q6Omlu
Zm8oKSkpOworICAgIEFTU0VSVChjb25zdHJ1Y3Rvci0+aW5oZXJpdHM8SlNOUE9iamVjdD4oZXhl
Yy0+dm0oKSkpOwogCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Nhc3Q8SlNOUE9iamVj
dCo+KGNvbnN0cnVjdG9yKS0+Y2FsbENvbnN0cnVjdG9yKGV4ZWMpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5j
cHAKaW5kZXggODFjYTcwZWU5ZGQyYWUzZDcwOTkzN2UzZGMyY2M4MWZkODFlOWE0MC4uZDEyNjdk
NzdlNTc1ODY2NDFmM2QwYWE0Yjk5OWIzZTI2OWIzNjJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAKQEAg
LTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBOUEpTT2JqZWN0KiBOUEpTT2JqZWN0
OjpjcmVhdGUoVk0mIHZtLCBOUFJ1bnRpbWVPYmplY3RNYXAqIG9iamVjdE1hcCwgSlNPYmplY3Qq
IGpzT2JqZWN0KQogewogICAgIC8vIFdlIHNob3VsZCBuZXZlciBoYXZlIGEgSlNOUE9iamVjdCBp
bnNpZGUgYW4gTlBKU09iamVjdC4KLSAgICBBU1NFUlQoIWpzT2JqZWN0LT5pbmhlcml0cyh2bSwg
SlNOUE9iamVjdDo6aW5mbygpKSk7CisgICAgQVNTRVJUKCFqc09iamVjdC0+aW5oZXJpdHM8SlNO
UE9iamVjdD4odm0pKTsKIAogICAgIE5QSlNPYmplY3QqIG5wSlNPYmplY3QgPSB0b05QSlNPYmpl
Y3QoY3JlYXRlTlBPYmplY3QoMCwgbnBDbGFzcygpKSk7CiAgICAgbnBKU09iamVjdC0+aW5pdGlh
bGl6ZSh2bSwgb2JqZWN0TWFwLCBqc09iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggYWZkMzQyMzlhYjAzNWUyOTkzZTllYWVjNGZm
OWNmNzZmZDVlOWM0Ni4uMTAwZjY3NDZmZDlkNTFkYzMwMWIzZTcyMWVmM2M4YTM0NjYwZGJjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAt
NzM4LDcgKzczOCw3IEBAIEpTVmFsdWVSZWYgV2ViRnJhbWU6OmpzV3JhcHBlckZvcldvcmxkKElu
amVjdGVkQnVuZGxlRmlsZUhhbmRsZSogZmlsZUhhbmRsZSwgSW5qCiAKIFN0cmluZyBXZWJGcmFt
ZTo6Y291bnRlclZhbHVlKEpTT2JqZWN0UmVmIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCF0b0pTKGVs
ZW1lbnQpLT5pbmhlcml0cygqdG9KUyhlbGVtZW50KS0+dm0oKSwgSlNFbGVtZW50OjppbmZvKCkp
KQorICAgIGlmICghdG9KUyhlbGVtZW50KS0+aW5oZXJpdHM8SlNFbGVtZW50PigqdG9KUyhlbGVt
ZW50KS0+dm0oKSkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAogICAgIHJldHVybiBjb3Vu
dGVyVmFsdWVGb3JFbGVtZW50KCZqc0Nhc3Q8SlNFbGVtZW50Kj4odG9KUyhlbGVtZW50KSktPndy
YXBwZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbQppbmRleCA1OWYxMzYzNDI5MTJl
YTAxMDcxMWIyNTI2NWYyMjI0YzM2NWRiNjhmLi5lN2NlNjMxZDBhN2Q4YWE4ZTIwZDgxZDhlNGE3
NmZjNDQxMGM4NTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9N
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0KQEAgLTUzMCw3ICs1
MzAsNyBAQCBAaW1wbGVtZW50YXRpb24gRE9NTm9kZSAoV2ViUHJpdmF0ZSkKICsgKGlkKV9ub2Rl
RnJvbUpTV3JhcHBlcjooSlNPYmplY3RSZWYpanNXcmFwcGVyCiB7CiAgICAgSlNPYmplY3QqIG9i
amVjdCA9IHRvSlMoanNXcmFwcGVyKTsKLSAgICBpZiAoIW9iamVjdC0+aW5oZXJpdHMoKm9iamVj
dC0+dm0oKSwgSlNOb2RlOjppbmZvKCkpKQorICAgIGlmICghb2JqZWN0LT5pbmhlcml0czxKU05v
ZGU+KCpvYmplY3QtPnZtKCkpKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiBraXQo
JmpzQ2FzdDxKU05vZGUqPihvYmplY3QpLT53cmFwcGVkKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IDg1MTU3NGY4NzNjMjQyNzI2MTZiMDFlZDM1
NDQ4NTY4YzNhMTU4YzIuLjZmMmQyNTlmNTlkMDQxMGE1ZTQ3NzQ0NmY1NDk3MDIzNjM1NDJlZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTE0NTMsNyAr
MTQ1Myw3IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpkZW1hcnNoYWxWYWx1
ZXMoRXhlY1N0YXRlKiBleGVjLCBkYXRhX3QgdmFsdWVzCiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5J
bnN0YW5jZVByb3h5OjpyZXRhaW5Mb2NhbE9iamVjdChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0g
ICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpIHx8IHZhbHVlLmluaGVyaXRzKCp2YWx1ZS5nZXRPYmpl
Y3QoKS0+dm0oKSwgUHJveHlSdW50aW1lT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghdmFsdWUu
aXNPYmplY3QoKSB8fCB2YWx1ZS5pbmhlcml0czxQcm94eVJ1bnRpbWVPYmplY3Q+KCp2YWx1ZS5n
ZXRPYmplY3QoKS0+dm0oKSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fbG9jYWxPYmplY3Rz
LnJldGFpbihhc09iamVjdCh2YWx1ZSkpOwpAQCAtMTQ2MSw3ICsxNDYxLDcgQEAgdm9pZCBOZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnJldGFpbkxvY2FsT2JqZWN0KEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKIAogdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnJlbGVhc2VMb2NhbE9i
amVjdChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpIHx8
IHZhbHVlLmluaGVyaXRzKCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSwgUHJveHlSdW50aW1lT2Jq
ZWN0OjppbmZvKCkpKQorICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pbmhlcml0
czxQcm94eVJ1bnRpbWVPYmplY3Q+KCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1fbG9jYWxPYmplY3RzLnJlbGVhc2UoYXNPYmplY3QodmFsdWUpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5
SW5zdGFuY2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94
eUluc3RhbmNlLm1tCmluZGV4IDI2YWIzZWIwZDg1ZTlkYzI5NDFkOTFmY2UxNzk4ZTNkZTFmYWQw
NTIuLjM2ODdiYzFiYzJmYzU0YmY5ODU1ZjM1MmJiY2NkZjFmOTExNjAzMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5j
ZS5tbQpAQCAtMjIzLDcgKzIyMyw3IEBAIEpTVmFsdWUgUHJveHlJbnN0YW5jZTo6aW52b2tlTWV0
aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNDOjpSdW50aW1lTWV0aG9kKiBydW50aW1lCiAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAKLSAgICBpZiAoIWFzT2JqZWN0KHJ1bnRpbWVNZXRob2QpLT5pbmhlcml0cyh2bSwgUHJv
eHlSdW50aW1lTWV0aG9kOjppbmZvKCkpKQorICAgIGlmICghYXNPYmplY3QocnVudGltZU1ldGhv
ZCktPmluaGVyaXRzPFByb3h5UnVudGltZU1ldGhvZD4odm0pKQogICAgICAgICByZXR1cm4gdGhy
b3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBpbnZva2Ug
bm9uLXBsdWctaW4gbWV0aG9kIG9uIHBsdWctaW4gb2JqZWN0LiIpKTsKIAogICAgIFByb3h5TWV0
aG9kKiBtZXRob2QgPSBzdGF0aWNfY2FzdDxQcm94eU1ldGhvZCo+KHJ1bnRpbWVNZXRob2QtPm1l
dGhvZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRl
eCBlYzI2YjJiOTQ1NmMyNmI3NmNjMTZmZGIyODQ3MDQ5ZDZiZTQ2ZjQ4Li40MzVhNTk3MzI0MmNh
YzU5YzY4ODFhNDVjYjVlZDgyNTNhMTc2YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCkBAIC03NjM3LDcgKzc2MzcsNyBAQCBzdGF0aWMgTlNBcHBsZUV2
ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
VmFsdWUgagogICAgIH0KICAgICBpZiAoanNWYWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgIEpT
T2JqZWN0KiBvYmplY3QgPSBqc1ZhbHVlLmdldE9iamVjdCgpOwotICAgICAgICBpZiAob2JqZWN0
LT5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKSB7CisgICAgICAgIGlmIChvYmpl
Y3QtPmluaGVyaXRzPERhdGVJbnN0YW5jZT4odm0pKSB7CiAgICAgICAgICAgICBEYXRlSW5zdGFu
Y2UqIGRhdGUgPSBzdGF0aWNfY2FzdDxEYXRlSW5zdGFuY2UqPihvYmplY3QpOwogICAgICAgICAg
ICAgZG91YmxlIG1zID0gZGF0ZS0+aW50ZXJuYWxOdW1iZXIoKTsKICAgICAgICAgICAgIGlmICgh
c3RkOjppc25hbihtcykpIHsKQEAgLTc2NDYsNyArNzY0Niw3IEBAIHN0YXRpYyBOU0FwcGxlRXZl
bnREZXNjcmlwdG9yKiBhZURlc2NGcm9tSlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNW
YWx1ZSBqCiAgICAgICAgICAgICAgICAgaWYgKG5vRXJyID09IFVDQ29udmVydENGQWJzb2x1dGVU
aW1lVG9Mb25nRGF0ZVRpbWUodXRjU2Vjb25kcywgJmxkdCkpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBbTlNBcHBsZUV2ZW50RGVzY3JpcHRvciBkZXNjcmlwdG9yV2l0aERlc2NyaXB0b3JU
eXBlOnR5cGVMb25nRGF0ZVRpbWUgYnl0ZXM6JmxkdCBsZW5ndGg6c2l6ZW9mKGxkdCldOwogICAg
ICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKG9iamVjdC0+aW5oZXJpdHModm0sIEpTQXJy
YXk6OmluZm8oKSkpIHsKKyAgICAgICAgfSBlbHNlIGlmIChvYmplY3QtPmluaGVyaXRzPEpTQXJy
YXk+KHZtKSkgewogICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8SlNP
YmplY3QqPj4gdmlzaXRlZEVsZW1zOwogICAgICAgICAgICAgaWYgKHZpc2l0ZWRFbGVtcy5nZXQo
KS5hZGQob2JqZWN0KS5pc05ld0VudHJ5KSB7CiAgICAgICAgICAgICAgICAgSlNBcnJheSogYXJy
YXkgPSBzdGF0aWNfY2FzdDxKU0FycmF5Kj4ob2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkZyYW1lLmNwcAppbmRleCA5MzdhMjU3YWExMjA4YjY2NjU4ZmU2NDIzMWU0MjcwMTQxMjI5MmE2
Li44N2RjOTBiNWMwZjk3MmFhYjdkZmJlOWVmNDI2YWU3MmVkNzQ0NTY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViRnJhbWUuY3BwCkBAIC0yMDAyLDcgKzIwMDIsNyBAQCBIUkVTVUxUIFdlYkZy
YW1lOjpzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0SW5TY3JpcHRXb3JsZChJV2ViU2NyaXB0
V29ybGQqIGlXbwogCiAgICAgLy8gVGhlIGdsb2JhbCBvYmplY3QgaXMgcHJvYmFibHkgYSBwcm94
eSBvYmplY3Q/IC0gaWYgc28sIHdlIGtub3cgaG93IHRvIHVzZSB0aGlzIQogICAgIEpTQzo6SlNP
YmplY3QqIGdsb2JhbE9iamVjdE9iaiA9IHRvSlMoZ2xvYmFsT2JqZWN0UmVmKTsKLSAgICBpZiAo
Z2xvYmFsT2JqZWN0T2JqLT5pbmhlcml0cygqZ2xvYmFsT2JqZWN0T2JqLT52bSgpLCBKU0RPTVdp
bmRvd1Byb3h5OjppbmZvKCkpKQorICAgIGlmIChnbG9iYWxPYmplY3RPYmotPmluaGVyaXRzPEpT
RE9NV2luZG93UHJveHk+KCpnbG9iYWxPYmplY3RPYmotPnZtKCkpKQogICAgICAgICBhbnlXb3Js
ZEdsb2JhbE9iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93UHJveHkqPihnbG9iYWxPYmpl
Y3RPYmopLT53aW5kb3coKTsKIAogICAgIC8vIEdldCB0aGUgZnJhbWUgZnJvbWUgdGhlIGdsb2Jh
bCBvYmplY3Qgd2UndmUgc2V0dGxlZCBvbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335282</attachid>
            <date>2018-03-08 01:39:13 -0800</date>
            <delta_ts>2018-03-08 01:48:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183429-20180308183911.patch</filename>
            <type>text/plain</type>
            <size>164300</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MDNmOTVhNTYwNTc0ZjllNDQ1M2RjZjYyZDgyM2FjZTAyY2UxMjkwLi4zNDViNjIyZjRjMjcxNWUy
OTc1MDg3ODkwNTBlNWRkMWZmMWQ1ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDQgQEAKKzIwMTgtMDMtMDggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIGluaGVyaXRzPFQ+KFZNJikgbGV2ZXJhZ2luZyBK
U0Nhc3QgZmFzdCBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODM0MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbiwgSlNDZWxsOjppbmhlcml0czxUPihWTSYp
IGFuZCBKU1ZhbHVlOjppbmhlcml0czxUPihWTSYpLgorICAgICAgICBUaGV5IGRlcGVuZHMgb24g
anNEeW5hbWljQ2FzdDxUPiBpbXBsZW1lbnRhdGlvbiBhbmQgbGV2ZXJhZ2UgSlNUeXBlLWJhc2Vk
IGZhc3QKKyAgICAgICAgcGF0aHMgZGVmaW5lZCBpbiBKU0Nhc3QuaC4gV2UgZXh0cmFjdCBjaGVj
a2luZyBwYXJ0IGFzIGBKU0Nhc3RpbmdIZWxwZXJzOjppbmhlcml0YAorICAgICAgICBhbmQgY29u
c3RydWN0IGpzRHluYW1pY0Nhc3QgYW5kIEpTQ2VsbDo6aW5oZXJpdHMgYmFzZWQgb24gdGhpcy4K
KworICAgICAgICBBbmQgd2UgcmVtb3ZlIHNldmVyYWwgdW5uZWNlc3NhcnkgY2FzdGluZyBmdW5j
dGlvbnMgKGFzUmVnRXhwT2JqZWN0LCBhc0RhdGVJbnN0YW5jZSBldGMuKS4KKyAgICAgICAgSW4g
YWRkaXRpb24sIHdlIGFkZCBqc0R5bmFtaWNDYXN0IGZhc3QgcGF0aCBmb3IgUmVnRXhwT2JqZWN0
IGJ5IHVzaW5nIGV4aXN0aW5nIFJlZ0V4cE9iamVjdFR5cGUuCisKKyAgICAgICAgKiBBUEkvSlNP
YmplY3RSZWYuY3BwOgorICAgICAgICAoSlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkpOgorICAg
ICAgICAoSlNPYmplY3RTZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAoSlNPYmplY3REZWxl
dGVQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlLm1tOgorICAgICAgICAo
aXNEYXRlKToKKyAgICAgICAgKGlzQXJyYXkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlUmVmLmNw
cDoKKyAgICAgICAgKEpTVmFsdWVJc0FycmF5KToKKyAgICAgICAgKEpTVmFsdWVJc0RhdGUpOgor
ICAgICAgICAoSlNWYWx1ZUlzT2JqZWN0T2ZDbGFzcyk6CisgICAgICAgICogQVBJL0pTV2Vha09i
amVjdE1hcFJlZlByaXZhdGUuY3BwOgorICAgICAgICAqIEFQSS9KU1dyYXBwZXJNYXAubW06Cisg
ICAgICAgICh0cnlVbndyYXBPYmpjT2JqZWN0KToKKyAgICAgICAgKiBBUEkvT2JqQ0NhbGxiYWNr
RnVuY3Rpb24ubW06CisgICAgICAgICh0cnlVbndyYXBDb25zdHJ1Y3Rvcik6CisgICAgICAgICog
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlT3ZlcnJpZGVzSGFzSW5zdGFuY2UpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTmV3UmVnZXhwKToKKyAgICAgICAgKiBm
dGwvRlRMT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6b3BlcmF0aW9uTWF0ZXJp
YWxpemVPYmplY3RJbk9TUik6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRI
b3N0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5
cGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6ZnVuY3Rpb25E
ZXRhaWxzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5j
cHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckhlYXBBZ2VudDo6Z2V0UHJldmlldyk6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpu
b3RpZnlEZWJ1Z2dlck9mVW53aW5kaW5nKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TaGFkb3dD
aGlja2VuLmNwcDoKKyAgICAgICAgKEpTQzo6U2hhZG93Q2hpY2tlbjo6dXBkYXRlKToKKyAgICAg
ICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5Q
YXNzKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Om9w
ZXJhdGlvbk5ld0Z1bmN0aW9uQ29tbW9uKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAo
Y2hlY2tFeGNlcHRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAg
ICAgICAoSlNDOjphc0Jvb2xlYW5PYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmJvb2xlYW5Qcm90b0Z1bmNUb1N0
cmluZyk6CisgICAgICAgIChKU0M6OmJvb2xlYW5Qcm90b0Z1bmNWYWx1ZU9mKToKKyAgICAgICAg
KiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdERh
dGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg6CisgICAgICAgIChKU0M6OmFz
RGF0ZUluc3RhbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUu
Y3BwOgorICAgICAgICAoSlNDOjpmb3JtYXRlRGF0ZUluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Rv
TG9jYWxlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvTG9jYWxlRGF0ZVN0
cmluZyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb0xvY2FsZVRpbWVTdHJpbmcpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZSk6CisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNHZXRGdWxsWWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENG
dWxsWWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRNb250aCk6CisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXREYXRlKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0RGF5KToKKyAgICAgICAgKEpTQzo6ZGF0ZVBy
b3RvRnVuY0dldFVUQ0RheSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRIb3Vycyk6
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENIb3Vycyk6CisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRNaW51dGVzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dl
dFVUQ01pbnV0ZXMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk6Cisg
ICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKToKKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1
bmNHZXRVVENNaWxsaXNlY29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGlt
ZXpvbmVPZmZzZXQpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VGltZSk6CisgICAg
ICAgIChKU0M6OnNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKToKKyAgICAgICAgKEpTQzo6c2V0TmV3
VmFsdWVGcm9tRGF0ZUFyZ3MpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0WWVhcik6
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRZZWFyKToKKyAgICAgICAgKiBydW50aW1l
L0V4Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjppc1Rlcm1pbmF0ZWRFeGVjdXRp
b25FeGNlcHRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKToKKyAgICAgICAgKiBydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6YXNJbnRlcm5hbEZ1bmN0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6YXNBcnJheSk6
CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6ZHVtcEZvckJhY2t0cmFjZSBjb25zdCk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVl
Lmg6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjppbmhlcml0cyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9KU0Nhc3QuaDoK
KyAgICAgICAgKEpTQzo6SlNDYXN0aW5nSGVscGVyczo6aW5oZXJpdHNHZW5lcmljSW1wbCk6Cisg
ICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OmluaGVyaXRzSlNUeXBlSW1wbCk6CisgICAg
ICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzOjppbmhlcml0cyk6Cisg
ICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OmluaGVyaXRzKToKKyAgICAgICAgKEpTQzo6
anNEeW5hbWljQ2FzdCk6CisgICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OmpzRHluYW1p
Y0Nhc3RHZW5lcmljSW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBl
cnM6OmpzRHluYW1pY0Nhc3RKU1R5cGVJbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlND
YXN0aW5nSGVscGVyczo6SlNEeW5hbWljQ2FzdFRyYWl0czo6Y2FzdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbElubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjppbmhlcml0cyBjb25zdCk6CisgICAgICAgICogcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6UmV0cmlldmVDYWxsZXJGdW5jdGlv
bkZ1bmN0b3I6Om9wZXJhdG9yKCkgY29uc3QpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpj
YWxsZXJHZXR0ZXIpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpnZXRPd25Ob25JbmRleFBy
b3BlcnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpyZWlmeUxhenlCb3VuZE5h
bWVJZk5lZWRlZCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OmVucXVldWVKb2IpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aDoKKyAgICAgICAgKEpTQzo6YXNHbG9iYWxPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1
bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHA6CisgICAgICAgIChKU0M6OkpTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU0xleGlj
YWxFbnZpcm9ubWVudC5oOgorICAgICAgICAoSlNDOjphc0FjdGl2YXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OnVud3JhcEJveGVkUHJpbWl0
aXZlKToKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OlN0cmluZ2lmaWVyKToKKyAgICAgICAg
KEpTQzo6V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTUHJvbWlzZTo6cmVzb2x2ZSk6CisgICAgICAgICogcnVudGltZS9KU1By
b21pc2VEZWZlcnJlZC5jcHA6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZURlZmVycmVkOjpjcmVh
dGUpOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UHJv
eHlPYmplY3Q6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6dGFy
Z2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OmhhbmRsZXIg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RSZWdFeHApOgorICAgICAgICAqIHJ1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6YXNSZWdFeHBDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChKU0M6OmlzUmVnRXhwKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAoSlNDOjpSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6
OlJlZ0V4cE9iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAoSlNDOjpyZWdFeHBP
YmplY3RTZXRMYXN0SW5kZXhTdHJpY3QpOgorICAgICAgICAoSlNDOjpyZWdFeHBPYmplY3RTZXRM
YXN0SW5kZXhOb25TdHJpY3QpOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnB1dCk6Cisg
ICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2Jq
ZWN0OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnNldFJl
Z0V4cCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6cmVnRXhwIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpzZXRMYXN0SW5kZXgpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OmdldExhc3RJbmRleCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6dGVzdCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6dGVzdElubGluZSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OlJlZ0V4cE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVnRXhwT2JqZWN0OjpvZmZzZXRPZlJlZ0V4cCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OlJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZMYXN0SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpSZWdFeHBPYmplY3Q6Om9mZnNldE9mTGFzdEluZGV4SXNXcml0YWJsZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6YWxsb2NhdGlvblNpemUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjphc1JlZ0V4cE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNUZXN0
RmFzdCk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY0V4ZWMpOgorICAgICAgICAoSlND
OjpyZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1
bmNDb21waWxlKToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwpOgorICAg
ICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlcklnbm9yZUNhc2UpOgorICAgICAgICAoSlNDOjpy
ZWdFeHBQcm90b0dldHRlck11bHRpbGluZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0
dGVyRG90QWxsKToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJTdGlja3kpOgorICAg
ICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlclVuaWNvZGUpOgorICAgICAgICAoSlNDOjpyZWdF
eHBQcm90b0dldHRlclNvdXJjZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY1NlYXJj
aEZhc3QpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OmFzU3RyaW5nT2JqZWN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6OnJlcGxhY2VVc2luZ1JlZ0V4cFNlYXJjaCk6CisgICAgICAgIChKU0M6OnJlcGxh
Y2UpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHApOgor
ICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICogcnVudGlt
ZS9TeW1ib2xQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpzeW1ib2xQcm90b0Z1bmNUb1N0
cmluZyk6CisgICAgICAgIChKU0M6OnN5bWJvbFByb3RvRnVuY1ZhbHVlT2YpOgorICAgICAgICAq
IHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAoV1RGOjpjdXN0b21HZXRWYWx1ZSk6Cisg
ICAgICAgIChXVEY6OmN1c3RvbVNldFZhbHVlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNz
ZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OmlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24p
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6Y3JlYXRlKToKKwogMjAxOC0w
My0wNyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBT
b3J0IGFuZCBzZXBhcmF0ZSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU2
MWYxODkwNzRhZThkNTQ4NzVjZDQ2ZTQwMjBmNTgwOTM2MDg2M2UuLjQzYzE4NzI4ODcyZDlmMjYw
OWE2ZGExZDJhODY4MzU4NWI5YTVmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAx
OC0wMy0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAg
ICBbSlNDXSBBZGQgaW5oZXJpdHM8VD4oVk0mKSBsZXZlcmFnaW5nIEpTQ2FzdCBmYXN0IHBhdGgK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQyOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJ
REJLZXlGcm9tVmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVUb0RhdGUpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFs
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRv
dzo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9t
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNOb2RlOjpwdXNoRXZlbnRIYW5kbGVyU2NvcGUgY29uc3QpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTWFBhdGhOU1Jlc29sdmVyOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1NjcmlwdFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRvbVdpbmRvd0Zyb21FeGVjU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3Rh
dGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmlzQXJyYXkpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xvbmVTZXJpYWxpemVyOjppc01hcCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNl
cmlhbGl6ZXI6OmlzU2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVt
cEFycmF5QnVmZmVyVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1
bXBET01Qb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBET01S
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcERPTU1hdHJpeCk6
CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpDbG9uZURlc2VyaWFsaXplcik6Cisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6cmVhZEFycmF5QnVmZmVyVmlldyk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAg
IChHZW5lcmF0ZU92ZXJsb2FkRGlzcGF0Y2hlcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RPdmVybG9hZERpc3BhdGNoZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0
aE9wdGlvbmFsUGFyYW1ldGVyT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlz
aGluZ1VuaW9uT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlv
bnNPdmVybG9hZERpc3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb25PdmVy
bG9hZERpc3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFi
bGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlck92ZXJsb2FkRGlzcGF0Y2hlcik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRl
ZEZ1bmN0aW9uT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6
CisgICAgICAgICogYnJpZGdlL2MvY19pbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRp
bmdzOjpDSW5zdGFuY2U6Omludm9rZU1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL29iamMvV2Vi
U2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAoK1tXZWJTY3JpcHRPYmplY3QgX2NvbnZlcnRWYWx1
ZVRvT2JqY1ZhbHVlOm9yaWdpblJvb3RPYmplY3Q6cm9vdE9iamVjdDpdKToKKyAgICAgICAgKiBi
cmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tOgorICAgICAgICAoT2JqY0luc3RhbmNlOjppbnZv
a2VNZXRob2QpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OmNhbGxPYmpDRmFsbGJhY2tPYmplY3QpOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX21ldGhvZC5jcHA6CisgICAgICAgIChKU0M6OmNhbGxSdW50aW1lTWV0aG9k
KToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpC
aW5kaW5nczo6Y2FsbFJ1bnRpbWVPYmplY3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Y2Fs
bFJ1bnRpbWVDb25zdHJ1Y3Rvcik6CisgICAgICAgICogaW5zcGVjdG9yL1dlYkluamVjdGVkU2Ny
aXB0SG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJJbmplY3RlZFNjcmlwdEhvc3Q6OnN1
YnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViSW5qZWN0ZWRTY3JpcHRIb3N0Ojppc0hUTUxB
bGxDb2xsZWN0aW9uKToKKwogMjAxOC0wMy0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIGxpbmtpbmcgQXBwbGljYXRpb25TZXJ2aWNlcyBk
aXJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBlZjFiNWYwMjM5NTFhZWY2MWQ5MGUyMTcxN2Q0YjczN2RlNmRm
YTYxLi4yZDdkY2JmY2Y2YjI3ODQyY2JiOGQ0NjFhZTk3YTQ5ODlkOTM3YTg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDE4LTAzLTA4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBpbmhlcml0czxUPihWTSYpIGxldmVyYWdp
bmcgSlNDYXN0IGZhc3QgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgzNDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OmNhbGxNZXRob2QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y2FsbE5QSlNP
YmplY3QpOgorICAgICAgICAoV2ViS2l0Ojpjb25zdHJ1Y3RXaXRoQ29uc3RydWN0b3IpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TlBKU09iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y291bnRlclZh
bHVlKToKKwogMjAxOC0wMy0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBTdG9wIGxpbmtpbmcgQXBwbGljYXRpb25TZXJ2aWNlcyBkaXJlY3RseQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDY0NjkxZjAwZjBmZjQ4Mzc3YTE4Y2I3ZDZj
M2Q5OTY0MmVhYjcyNmUuLmVhZmZlZTc4Y2E4ZGUxOTU3Yjc4ZTk3MWVlZjVhODcyMTcyNzdiZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0wMy0w
OCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlND
XSBBZGQgaW5oZXJpdHM8VD4oVk0mKSBsZXZlcmFnaW5nIEpTQ2FzdCBmYXN0IHBhdGgKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQyOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRE9NL0RPTS5tbToK
KyAgICAgICAgKCtbRE9NTm9kZSBfbm9kZUZyb21KU1dyYXBwZXI6XSk6CisgICAgICAgICogUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnJldGFpbkxvY2FsT2JqZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpyZWxlYXNlTG9jYWxP
YmplY3QpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW06CisgICAg
ICAgIChXZWJLaXQ6OlByb3h5SW5zdGFuY2U6Omludm9rZU1ldGhvZCk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoYWVEZXNjRnJvbUpTVmFsdWUpOgorCiAyMDE4LTAz
LTA4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFN0
b3AgbGlua2luZyBBcHBsaWNhdGlvblNlcnZpY2VzIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cKaW5kZXggMjFkYzc4NTA4YTRlYTRiOWJkZGEzMTE0MTI3NzMwNDJjNjU0NmI4My4u
ZTcyZTNiMDE1N2NkNGJhOTBmYTk5ZjZlM2I5M2RlMTdiMDE0MzIzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTAzLTA4ICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBpbmhlcml0czxU
PihWTSYpIGxldmVyYWdpbmcgSlNDYXN0IGZhc3QgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJG
cmFtZTo6c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEluU2NyaXB0V29ybGQpOgorCiAyMDE4
LTAzLTA4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IFN0b3AgbGlua2luZyBBcHBsaWNhdGlvblNlcnZpY2VzIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDY3NDczMzc2NjI5YmMwNDVkZjFiYWI1
MTg0N2JiYzg5YmZlOGZkOWUuLjRmODg2ODE5NmEyYjczMWFmMjY5ZDQwOGFhZjA2MjE0Y2FlYzc4
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC01MDEs
MTUgKzUwMSwxNSBAQCBKU1ZhbHVlUmVmIEpTT2JqZWN0R2V0UHJpdmF0ZVByb3BlcnR5KEpTQ29u
dGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdAogCiAKICAgICAvLyBHZXQgd3Jh
cHBlZCBvYmplY3QgaWYgcHJveGllZAotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpT
UHJveHk6OmluZm8oKSkpCisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU1Byb3h5Pih2bSkp
CiAgICAgICAgIGpzT2JqZWN0ID0ganNDYXN0PEpTUHJveHkqPihqc09iamVjdCktPnRhcmdldCgp
OwogCi0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0ds
b2JhbE9iamVjdD46OmluZm8oKSkpCisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU0NhbGxi
YWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pj4odm0pKQogICAgICAgICByZXN1bHQgPSBqc0Nhc3Q8
SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4qPihqc09iamVjdCktPmdldFByaXZhdGVQ
cm9wZXJ0eShuYW1lKTsKLSAgICBlbHNlIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2Fs
bGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+OjppbmZvKCkpKQorICAgIGVsc2UgaWYg
KGpzT2JqZWN0LT5pbmhlcml0czxKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
Pj4odm0pKQogICAgICAgICByZXN1bHQgPSBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0Rlc3Ry
dWN0aWJsZU9iamVjdD4qPihqc09iamVjdCktPmdldFByaXZhdGVQcm9wZXJ0eShuYW1lKTsKICNp
ZiBKU0NfT0JKQ19BUElfRU5BQkxFRAotICAgIGVsc2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2
bSwgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjppbmZvKCkpKQorICAgIGVs
c2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9i
amVjdD4+KHZtKSkKICAgICAgICAgcmVzdWx0ID0ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNB
UElXcmFwcGVyT2JqZWN0Pio+KGpzT2JqZWN0KS0+Z2V0UHJpdmF0ZVByb3BlcnR5KG5hbWUpOwog
I2VuZGlmCiAgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHJlc3VsdCk7CkBAIC01MjUsMTkgKzUyNSwx
OSBAQCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZVByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpT
T2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZQogICAgIElkZW50aWZpZXIgbmFtZShwcm9wZXJ0
eU5hbWUtPmlkZW50aWZpZXIoJnZtKSk7CiAKICAgICAvLyBHZXQgd3JhcHBlZCBvYmplY3QgaWYg
cHJveGllZAotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTUHJveHk6OmluZm8oKSkp
CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU1Byb3h5Pih2bSkpCiAgICAgICAgIGpzT2Jq
ZWN0ID0ganNDYXN0PEpTUHJveHkqPihqc09iamVjdCktPnRhcmdldCgpOwogCi0gICAgaWYgKGpz
T2JqZWN0LT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46Omlu
Zm8oKSkpIHsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNH
bG9iYWxPYmplY3Q+Pih2bSkpIHsKICAgICAgICAganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNH
bG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5zZXRQcml2YXRlUHJvcGVydHkodm0sIG5hbWUsIGpz
VmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgaWYgKGpzT2JqZWN0LT5p
bmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9iamVjdD46OmluZm8o
KSkpIHsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0
cnVjdGlibGVPYmplY3Q+Pih2bSkpIHsKICAgICAgICAganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8
SlNEZXN0cnVjdGlibGVPYmplY3Q+Kj4oanNPYmplY3QpLT5zZXRQcml2YXRlUHJvcGVydHkodm0s
IG5hbWUsIGpzVmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAjaWYgSlNDX09C
SkNfQVBJX0VOQUJMRUQKLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNr
T2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkpIHsKKyAgICBpZiAoanNPYmplY3Qt
PmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pj4odm0pKSB7CiAg
ICAgICAgIGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD4qPihqc09i
amVjdCktPnNldFByaXZhdGVQcm9wZXJ0eSh2bSwgbmFtZSwganNWYWx1ZSk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KQEAgLTU1NCwxOSArNTU0LDE5IEBAIGJvb2wgSlNPYmplY3REZWxl
dGVQcml2YXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBK
U1N0cmluCiAgICAgSWRlbnRpZmllciBuYW1lKHByb3BlcnR5TmFtZS0+aWRlbnRpZmllcigmdm0p
KTsKIAogICAgIC8vIEdldCB3cmFwcGVkIG9iamVjdCBpZiBwcm94aWVkCi0gICAgaWYgKGpzT2Jq
ZWN0LT5pbmhlcml0cyh2bSwgSlNQcm94eTo6aW5mbygpKSkKKyAgICBpZiAoanNPYmplY3QtPmlu
aGVyaXRzPEpTUHJveHk+KHZtKSkKICAgICAgICAganNPYmplY3QgPSBqc0Nhc3Q8SlNQcm94eSo+
KGpzT2JqZWN0KS0+dGFyZ2V0KCk7CiAKLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKHZtLCBK
U0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6aW5mbygpKSkgeworICAgIGlmIChqc09i
amVjdC0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4+KHZtKSkgewog
ICAgICAgICBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4qPihqc09iamVj
dCktPmRlbGV0ZVByaXZhdGVQcm9wZXJ0eShuYW1lKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2FsbGJhY2tPYmplY3Q8SlNE
ZXN0cnVjdGlibGVPYmplY3Q+OjppbmZvKCkpKSB7CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0
czxKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pj4odm0pKSB7CiAgICAgICAg
IGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pio+KGpzT2JqZWN0
KS0+ZGVsZXRlUHJpdmF0ZVByb3BlcnR5KG5hbWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRz
KHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkpIHsKKyAg
ICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2Jq
ZWN0Pj4odm0pKSB7CiAgICAgICAgIGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBl
ck9iamVjdD4qPihqc09iamVjdCktPmRlbGV0ZVByaXZhdGVQcm9wZXJ0eShuYW1lKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZhbHVlLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCmlu
ZGV4IDZmM2IxZDhmNjY0ZDQ3Y2M2ZDc5ZWM0NTY4YTNkODkyODFjMjAyZTguLmM4MTBmMTRjNDcy
ZmFhNzE2YWVjZGMyZTI0OGU2Nzg1MDZkMjA3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
VmFsdWUubW0KQEAgLTU3NCwxMyArNTc0LDEzIEBAIEBlbmQKIGlubGluZSBib29sIGlzRGF0ZShK
U0M6OlZNJiB2bSwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4
dCkKIHsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIodG9KUyhjb250ZXh0KSk7Ci0gICAg
cmV0dXJuIHRvSlMob2JqZWN0KS0+aW5oZXJpdHModm0sIEpTQzo6RGF0ZUluc3RhbmNlOjppbmZv
KCkpOworICAgIHJldHVybiB0b0pTKG9iamVjdCktPmluaGVyaXRzPEpTQzo6RGF0ZUluc3RhbmNl
Pih2bSk7CiB9CiAKIGlubGluZSBib29sIGlzQXJyYXkoSlNDOjpWTSYgdm0sIEpTT2JqZWN0UmVm
IG9iamVjdCwgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAgSlNDOjpKU0xvY2tI
b2xkZXIgbG9ja2VyKHRvSlMoY29udGV4dCkpOwotICAgIHJldHVybiB0b0pTKG9iamVjdCktPmlu
aGVyaXRzKHZtLCBKU0M6OkpTQXJyYXk6OmluZm8oKSk7CisgICAgcmV0dXJuIHRvSlMob2JqZWN0
KS0+aW5oZXJpdHM8SlNDOjpKU0FycmF5Pih2bSk7CiB9CiAKIEBpbXBsZW1lbnRhdGlvbiBKU1Zh
bHVlKEludGVybmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Zh
bHVlUmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKaW5k
ZXggMjNkYmM3MjJlZjBiYjdiZDE4YzIwOTYxZGUyY2UxYTgwODU3YmY0ZC4uMDBiZjA2MWFkYTJk
MTZjMTc1ODc0ZDhkODE4MDY5MzQ1N2ZhOTgzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTVmFsdWVSZWYuY3BwCkBAIC0xNzIsNyArMTcyLDcgQEAgYm9vbCBKU1ZhbHVlSXNBcnJheShK
U0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcihleGVjKTsKIAotICAgIHJldHVybiB0b0pTKGV4
ZWMsIHZhbHVlKS5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKTsKKyAgICByZXR1cm4gdG9K
UyhleGVjLCB2YWx1ZSkuaW5oZXJpdHM8SlNBcnJheT4odm0pOwogfQogCiBib29sIEpTVmFsdWVJ
c0RhdGUoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSkKQEAgLTE4NSw3ICsxODUs
NyBAQCBib29sIEpTVmFsdWVJc0RhdGUoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1
ZSkKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoZXhl
Yyk7CiAKLSAgICByZXR1cm4gdG9KUyhleGVjLCB2YWx1ZSkuaW5oZXJpdHModm0sIERhdGVJbnN0
YW5jZTo6aW5mbygpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB2YWx1ZSkuaW5oZXJpdHM8RGF0
ZUluc3RhbmNlPih2bSk7CiB9CiAKIGJvb2wgSlNWYWx1ZUlzT2JqZWN0T2ZDbGFzcyhKU0NvbnRl
eHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU0NsYXNzUmVmIGpzQ2xhc3MpCkBAIC0yMDEs
MTUgKzIwMSwxNSBAQCBib29sIEpTVmFsdWVJc09iamVjdE9mQ2xhc3MoSlNDb250ZXh0UmVmIGN0
eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNDbGFzc1JlZiBqc0NsYQogICAgIEpTVmFsdWUganNWYWx1
ZSA9IHRvSlMoZXhlYywgdmFsdWUpOwogICAgIAogICAgIGlmIChKU09iamVjdCogbyA9IGpzVmFs
dWUuZ2V0T2JqZWN0KCkpIHsKLSAgICAgICAgaWYgKG8tPmluaGVyaXRzKHZtLCBKU1Byb3h5Ojpp
bmZvKCkpKQorICAgICAgICBpZiAoby0+aW5oZXJpdHM8SlNQcm94eT4odm0pKQogICAgICAgICAg
ICAgbyA9IGpzQ2FzdDxKU1Byb3h5Kj4obyktPnRhcmdldCgpOwogCi0gICAgICAgIGlmIChvLT5p
bmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmluZm8oKSkpCisg
ICAgICAgIGlmIChvLT5pbmhlcml0czxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pj4o
dm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFs
T2JqZWN0Pio+KG8pLT5pbmhlcml0cyhqc0NsYXNzKTsKLSAgICAgICAgaWYgKG8tPmluaGVyaXRz
KHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pjo6aW5mbygpKSkKKyAg
ICAgICAgaWYgKG8tPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmpl
Y3Q+Pih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNE
ZXN0cnVjdGlibGVPYmplY3Q+Kj4obyktPmluaGVyaXRzKGpzQ2xhc3MpOwogI2lmIEpTQ19PQkpD
X0FQSV9FTkFCTEVECi0gICAgICAgIGlmIChvLT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVj
dDxKU0FQSVdyYXBwZXJPYmplY3Q+OjppbmZvKCkpKQorICAgICAgICBpZiAoby0+aW5oZXJpdHM8
SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+Pih2bSkpCiAgICAgICAgICAgICBy
ZXR1cm4ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pio+KG8pLT5p
bmhlcml0cyhqc0NsYXNzKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwCmluZGV4IDdmMWNk
NTIyMWMxNDFmNGE3NDQ1NDIxMjM0NmM5YjY3MWQ3NzE0Y2UuLjc4MzMyZDc5YWVjNmQyODViYzFj
M2E2NDU2ZTFkZGU5MmZkMmNhZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcApAQCAtNjMsOSArNjMsOSBAQCB2
b2lkIEpTV2Vha09iamVjdE1hcFNldChKU0NvbnRleHRSZWYgY3R4LCBKU1dlYWtPYmplY3RNYXBS
ZWYgbWFwLCB2b2lkKiBrZXksIEpTTwogICAgIEpTT2JqZWN0KiBvYmogPSB0b0pTKG9iamVjdCk7
CiAgICAgaWYgKCFvYmopCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQob2JqLT5pbmhlcml0
cyh2bSwgSlNQcm94eTo6aW5mbygpKQotICAgICAgICB8fCBvYmotPmluaGVyaXRzKHZtLCBKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6aW5mbygpKQotICAgICAgICB8fCBvYmotPmlu
aGVyaXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pjo6aW5mbygp
KSk7CisgICAgQVNTRVJUKG9iai0+aW5oZXJpdHM8SlNQcm94eT4odm0pCisgICAgICAgIHx8IG9i
ai0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4+KHZtKQorICAgICAg
ICB8fCBvYmotPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+
Pih2bSkpOwogICAgIG1hcC0+bWFwKCkuc2V0KGtleSwgb2JqKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQppbmRleCA5NDI1MTk1ZjhkNjQ0NmY3MjM1YzRi
MWNkMWZmZDdjMTBlNGNjMDNkLi40ZjVhMTNiODAxMmE2NTdhZTIxOWFlNjA0MmFhMDkyZThmMzdj
MjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5t
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpAQCAtNjQ0
LDcgKzY0NCw3IEBAIGlkIHRyeVVud3JhcE9iamNPYmplY3QoSlNHbG9iYWxDb250ZXh0UmVmIGNv
bnRleHQsIEpTVmFsdWVSZWYgdmFsdWUpCiAgICAgQVNTRVJUKCFleGNlcHRpb24pOwogICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2tlcih0b0pTKGNvbnRleHQpKTsKICAgICBKU0M6OlZNJiB2bSA9
IHRvSlMoY29udGV4dCktPnZtKCk7Ci0gICAgaWYgKHRvSlMob2JqZWN0KS0+aW5oZXJpdHModm0s
IEpTQzo6SlNDYWxsYmFja09iamVjdDxKU0M6OkpTQVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkp
CisgICAgaWYgKHRvSlMob2JqZWN0KS0+aW5oZXJpdHM8SlNDOjpKU0NhbGxiYWNrT2JqZWN0PEpT
Qzo6SlNBUElXcmFwcGVyT2JqZWN0Pj4odm0pKQogICAgICAgICByZXR1cm4gKGlkKUpTQzo6anND
YXN0PEpTQzo6SlNBUElXcmFwcGVyT2JqZWN0Kj4odG9KUyhvYmplY3QpKS0+d3JhcHBlZE9iamVj
dCgpOwogICAgIGlmIChpZCB0YXJnZXQgPSB0cnlVbndyYXBDb25zdHJ1Y3Rvcigmdm0sIG9iamVj
dCkpCiAgICAgICAgIHJldHVybiB0YXJnZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbQppbmRleCA2M2Y5MjBlZGIyMjRmMWFkZDFkMDli
N2ExMTIzN2FkNjVhMTg3OTI5Li5hODhhMjcwNWQ3MzE4Mjc0ZmUxNzk4OGEzOWQwZGVjNjJiZjIz
YWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1
bmN0aW9uLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVu
Y3Rpb24ubW0KQEAgLTcwMiw3ICs3MDIsNyBAQCBKU09iamVjdFJlZiBvYmpDQ2FsbGJhY2tGdW5j
dGlvbkZvckJsb2NrKEpTQ29udGV4dCAqY29udGV4dCwgaWQgdGFyZ2V0KQogCiBpZCB0cnlVbndy
YXBDb25zdHJ1Y3RvcihKU0M6OlZNKiB2bSwgSlNPYmplY3RSZWYgb2JqZWN0KQogewotICAgIGlm
ICghdG9KUyhvYmplY3QpLT5pbmhlcml0cygqdm0sIEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb246
OmluZm8oKSkpCisgICAgaWYgKCF0b0pTKG9iamVjdCktPmluaGVyaXRzPEpTQzo6T2JqQ0NhbGxi
YWNrRnVuY3Rpb24+KCp2bSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgSlNDOjpPYmpDQ2Fs
bGJhY2tGdW5jdGlvbkltcGwqIGltcGwgPSBzdGF0aWNfY2FzdDxKU0M6Ok9iakNDYWxsYmFja0Z1
bmN0aW9uKj4odG9KUyhvYmplY3QpKS0+aW1wbCgpOwogICAgIGlmICghaW1wbC0+aXNDb25zdHJ1
Y3RpYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCmluZGV4IGNkZmIwZTI4MmNjNGY3YjUzMjAxYjJjYzFjMjAzMWRmOGRiMDRkOTEuLmE1
NjNkNzgwNDNjZGY4ZDEyMjU1YTRkMGIyZjIwYjRjZWQ5MzE4NzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC00NDYzLDcgKzQ0NjMs
NyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAg
ICAgICAgICAgICAgIGlmIChjYWNoZWRGdW5jdGlvbgogICAgICAgICAgICAgICAgICAgICAmJiBj
YWNoZWRGdW5jdGlvbiAhPSBKU0NlbGw6OnNlZW5NdWx0aXBsZUNhbGxlZU9iamVjdHMoKQogICAg
ICAgICAgICAgICAgICAgICAmJiAhbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNF
eGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2VsbCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
QVNTRVJUKGNhY2hlZEZ1bmN0aW9uLT5pbmhlcml0cygqbV92bSwgSlNGdW5jdGlvbjo6aW5mbygp
KSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChjYWNoZWRGdW5jdGlvbi0+aW5oZXJpdHM8
SlNGdW5jdGlvbj4oKm1fdm0pKTsKIAogICAgICAgICAgICAgICAgICAgICBGcm96ZW5WYWx1ZSog
ZnJvemVuID0gbV9ncmFwaC5mcmVlemUoY2FjaGVkRnVuY3Rpb24pOwogICAgICAgICAgICAgICAg
ICAgICBhZGRUb0dyYXBoKENoZWNrQ2VsbCwgT3BJbmZvKGZyb3plbiksIGNhbGxlZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCAyMzM3YWM1OGNh
YzIzZjkwNTliN2QwNDRlOTczZWJiYTQ0NjZmMzIyLi5iMWRhZGQyZmRjNmZmZDRiYWVkY2VhNjFh
MTRlNWZkNmU3ODY1ZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKQEAgLTEwNDksNyArMTA0OSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUmVnRXhwRXhlY0dlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhCiAg
ICAgSlNWYWx1ZSBiYXNlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKICAgICBKU1Zh
bHVlIGFyZ3VtZW50ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVudCk7CiAgICAgCi0g
ICAgaWYgKCFiYXNlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpCisgICAgYXV0
byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgYmFzZSk7CisgICAg
aWYgKFVOTElLRUxZKCFyZWdleHApKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSk7CiAKICAgICBKU1N0cmluZyogaW5wdXQgPSBhcmd1bWVudC50b1N0cmluZ09y
TnVsbChleGVjKTsKQEAgLTEwNTcsNyArMTA1OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlY0dlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
CiAgICAgaWYgKCFpbnB1dCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShhc1JlZ0V4cE9iamVjdChiYXNlKS0+ZXhlYyhleGVjLCBnbG9iYWxPYmplY3QsIGlucHV0KSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWdleHAtPmV4ZWMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBpbnB1dCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blJlZ0V4cEV4ZWNOb25HbG9iYWxPclN0aWNreShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cCogcmVnRXhwLCBKU1N0cmluZyogc3RyaW5nKQpAQCAt
MTE4MCw3ICsxMTgxLDggQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVz
dEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCoKICAgICBKU1ZhbHVlIGJh
c2UgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgYXJndW1lbnQg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEFyZ3VtZW50KTsKIAotICAgIGlmICghYmFzZS5pbmhl
cml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSB7CisgICAgYXV0byogcmVnZXhwID0ganNE
eW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgYmFzZSk7CisgICAgaWYgKFVOTElLRUxZKCFy
ZWdleHApKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTExOTAsNyArMTE5Miw3IEBAIHNpemVfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqCiAgICAgaWYgKCFpbnB1dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHNj
b3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYXNSZWdFeHBPYmplY3QoYmFzZSktPnRlc3QoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbnB1dCk7CisgICAgcmV0dXJuIHJlZ2V4cC0+dGVzdChleGVjLCBn
bG9iYWxPYmplY3QsIGlucHV0KTsKIH0KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
Q29tcGFyZVN0cmljdEVxQ2VsbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggZDhlYmM5ZmRkNGJhMjQ5OWM0YmM3ZDE5
N2M2ZDY1YjU1MWIzM2I0OC4uMzhiNzQ3MTI0MTQ4OTNmNmIzMTVkNWU4Nzk5ODVlODc2OWY2OTlm
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApA
QCAtOTgwOCw3ICs5ODA4LDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB2b2lkIGNvbXBp
bGVPdmVycmlkZXNIYXNJbnN0YW5jZSgpCiAgICAgewogICAgICAgICBGcm96ZW5WYWx1ZSogZGVm
YXVsdEhhc0luc3RhbmNlRnVuY3Rpb24gPSBtX25vZGUtPmNlbGxPcGVyYW5kKCk7Ci0gICAgICAg
IEFTU0VSVChkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbi0+Y2VsbCgpLT5pbmhlcml0cyh2bSgp
LCBKU0Z1bmN0aW9uOjppbmZvKCkpKTsKKyAgICAgICAgQVNTRVJUKGRlZmF1bHRIYXNJbnN0YW5j
ZUZ1bmN0aW9uLT5jZWxsKCktPmluaGVyaXRzPEpTRnVuY3Rpb24+KHZtKCkpKTsKIAogICAgICAg
ICBMVmFsdWUgY29uc3RydWN0b3IgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAg
ICBMVmFsdWUgaGFzSW5zdGFuY2UgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOwpAQCAt
MTA3MjgsNyArMTA3MjgsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAg
RnJvemVuVmFsdWUqIHJlZ2V4cCA9IG1fbm9kZS0+Y2VsbE9wZXJhbmQoKTsKICAgICAgICAgTFZh
bHVlIGxhc3RJbmRleCA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEFT
U0VSVChyZWdleHAtPmNlbGwoKS0+aW5oZXJpdHModm0oKSwgUmVnRXhwOjppbmZvKCkpKTsKKyAg
ICAgICAgQVNTRVJUKHJlZ2V4cC0+Y2VsbCgpLT5pbmhlcml0czxSZWdFeHA+KHZtKCkpKTsKICAg
ICAgICAgQVNTRVJUKG1fbm9kZS0+Y2FzdE9wZXJhbmQ8UmVnRXhwKj4oKS0+aXNWYWxpZCgpKTsK
IAogICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcAppbmRleCBhYzVhZmM0YmVh
YTI5NDY1YTc3MGIyOGYxM2E5NDA3ODgxYmJkNTQwLi5jYWU4ZTRiODMwM2JmYzg4MzUzMzM0NzMx
MWYyZGI1MzIxYWYzOWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0
aW9ucy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBleHRlcm4gIkMiIEpTQ2VsbCogSklUX09QRVJB
VElPTiBvcGVyYXRpb25NYXRlcmlhbGl6ZU9iamVjdEluT1NSKAogICAgICAgICAgICAgaWYgKHBy
b3BlcnR5LmxvY2F0aW9uKCkgIT0gUHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3IoU3RydWN0dXJl
UExvYykpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0cyh2bSwg
U3RydWN0dXJlOjppbmZvKCkpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6
OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0czxTdHJ1Y3R1cmU+KHZtKSk7CiAg
ICAgICAgICAgICBzdHJ1Y3R1cmUgPSBqc0Nhc3Q8U3RydWN0dXJlKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE4NCwxMSAr
MTg0LDExIEBAIGV4dGVybiAiQyIgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1hdGVy
aWFsaXplT2JqZWN0SW5PU1IoCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1hdGVyaWFsaXph
dGlvbi0+cHJvcGVydGllcygpLnNpemUoKTsgaS0tOykgewogICAgICAgICAgICAgY29uc3QgRXhp
dFByb3BlcnR5VmFsdWUmIHByb3BlcnR5ID0gbWF0ZXJpYWxpemF0aW9uLT5wcm9wZXJ0aWVzKClb
aV07CiAgICAgICAgICAgICBpZiAocHJvcGVydHkubG9jYXRpb24oKSA9PSBQcm9tb3RlZExvY2F0
aW9uRGVzY3JpcHRvcihGdW5jdGlvbkV4ZWN1dGFibGVQTG9jKSkgewotICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhl
cml0cyh2bSwgRnVuY3Rpb25FeGVjdXRhYmxlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+aW5oZXJp
dHM8RnVuY3Rpb25FeGVjdXRhYmxlPih2bSkpOwogICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUg
PSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkp
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHByb3BlcnR5LmxvY2F0aW9uKCkgPT0g
UHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3IoRnVuY3Rpb25BY3RpdmF0aW9uUExvYykpIHsKLSAg
ICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5h
c0NlbGwoKS0+aW5oZXJpdHModm0sIEpTU2NvcGU6OmluZm8oKSkpOworICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhl
cml0czxKU1Njb3BlPih2bSkpOwogICAgICAgICAgICAgICAgIGFjdGl2YXRpb24gPSBqc0Nhc3Q8
SlNTY29wZSo+KEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpAQCAtMjExLDEwICsyMTEsMTAgQEAgZXh0ZXJuICJDIiBKU0NlbGwqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9TUigKICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gbWF0ZXJpYWxpemF0aW9uLT5wcm9wZXJ0aWVzKCkuc2l6ZSgpOyBpLS07KSB7CiAg
ICAgICAgICAgICBjb25zdCBFeGl0UHJvcGVydHlWYWx1ZSYgcHJvcGVydHkgPSBtYXRlcmlhbGl6
YXRpb24tPnByb3BlcnRpZXMoKVtpXTsKICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5sb2NhdGlv
bigpID09IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKEFjdGl2YXRpb25TY29wZVBMb2MpKSB7
Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tp
XSkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBKU1Njb3BlOjppbmZvKCkpKTsKKyAgICAgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+
aW5oZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAgICAgICBzY29wZSA9IGpzQ2FzdDxK
U1Njb3BlKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChwcm9wZXJ0eS5sb2NhdGlvbigpID09IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKEFj
dGl2YXRpb25TeW1ib2xUYWJsZVBMb2MpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBTeW1i
b2xUYWJsZTo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1
ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzPFN5bWJvbFRhYmxlPih2bSkp
OwogICAgICAgICAgICAgICAgIHRhYmxlID0ganNDYXN0PFN5bWJvbFRhYmxlKj4oSlNWYWx1ZTo6
ZGVjb2RlKHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC01NTIsNyAr
NTUyLDcgQEAgZXh0ZXJuICJDIiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0ZXJp
YWxpemVPYmplY3RJbk9TUigKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbWF0ZXJpYWxpemF0
aW9uLT5wcm9wZXJ0aWVzKCkuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBjb25zdCBFeGl0
UHJvcGVydHlWYWx1ZSYgcHJvcGVydHkgPSBtYXRlcmlhbGl6YXRpb24tPnByb3BlcnRpZXMoKVtp
XTsKICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5sb2NhdGlvbigpID09IFByb21vdGVkTG9jYXRp
b25EZXNjcmlwdG9yKFJlZ0V4cE9iamVjdFJlZ0V4cFBMb2MpKSB7Ci0gICAgICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVy
aXRzKHZtLCBSZWdFeHA6OmluZm8oKSkpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0czxSZWdFeHA+KHZt
KSk7CiAgICAgICAgICAgICAgICAgcmVnRXhwID0ganNDYXN0PFJlZ0V4cCo+KEpTVmFsdWU6OmRl
Y29kZSh2YWx1ZXNbaV0pKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNw
cAppbmRleCBlNjYwYTMxMGVmMTM1YjRhZTM4YzU5ZmNmMjdkZWFjNWFmMDg4ZTM1Li4zZDVjMTdh
MzUyYzg0YzMxODcxZTczYjdlMWQ4ZjdmMDQ2NWFlOGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAt
MTUwLDggKzE1MCw3IEBAIEpTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUoRXhl
Y1N0YXRlKiBleGVjKQogICAgIGlmICh2YWx1ZS5pc1N5bWJvbCgpKQogICAgICAgICByZXR1cm4g
dm0uc21hbGxTdHJpbmdzLnN5bWJvbFN0cmluZygpOwogCi0gICAgSlNPYmplY3QqIG9iamVjdCA9
IGFzT2JqZWN0KHZhbHVlKTsKLSAgICBpZiAob2JqZWN0KSB7CisgICAgaWYgKGF1dG8qIG9iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgdmFsdWUpKSB7CiAgICAgICAgIGlmIChv
YmplY3QtPmlzRXJyb3JJbnN0YW5jZSgpKQogICAgICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlh
bFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImVycm9yIikpOwogCkBAIC0xNTksNDkgKzE1OCw0
NyBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rp
b24qPih2bSwgdmFsdWUpOwogICAgICAgICBpZiAoZnVuY3Rpb24gJiYgZnVuY3Rpb24tPmlzQ2xh
c3NDb25zdHJ1Y3RvckZ1bmN0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4ganNOb250cml2aWFs
U3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiY2xhc3MiKSk7Ci0gICAgfQogCi0gICAgaWYgKHZh
bHVlLmluaGVyaXRzKHZtLCBKU0FycmF5OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7Ci0gICAgaWYgKHZhbHVl
LmluaGVyaXRzKHZtLCBEaXJlY3RBcmd1bWVudHM6OmluZm8oKSkgfHwgdmFsdWUuaW5oZXJpdHMo
dm0sIFNjb3BlZEFyZ3VtZW50czo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlh
bFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImFycmF5IikpOwotCi0gICAgaWYgKHZhbHVlLmlu
aGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJkYXRlIikpOwotICAgIGlmICh2YWx1ZS5p
bmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgicmVnZXhwIikpOwotICAgIGlmICh2YWx1
ZS5pbmhlcml0cyh2bSwgUHJveHlPYmplY3Q6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05v
bnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJwcm94eSIpKTsKLQotICAgIGlmICh2
YWx1ZS5pbmhlcml0cyh2bSwgSlNNYXA6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJtYXAiKSk7Ci0gICAgaWYgKHZhbHVlLmlu
aGVyaXRzKHZtLCBKU1NldDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0
cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoInNldCIpKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHMo
dm0sIEpTV2Vha01hcDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmlu
ZyhleGVjLCBBU0NJSUxpdGVyYWwoIndlYWttYXAiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRz
KHZtLCBKU1dlYWtTZXQ6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJp
bmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3ZWFrc2V0IikpOwotCi0gICAgaWYgKHZhbHVlLmluaGVy
aXRzKHZtLCBKU1N0cmluZ0l0ZXJhdG9yOjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiaXRlcmF0b3IiKSk7Ci0KLSAgICBpZiAo
b2JqZWN0KSB7CisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTQXJyYXk+KHZtKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJh
cnJheSIpKTsKKyAgICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8RGlyZWN0QXJndW1lbnRzPih2
bSkgfHwgb2JqZWN0LT5pbmhlcml0czxTY29wZWRBcmd1bWVudHM+KHZtKSkKKyAgICAgICAgICAg
IHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsK
KworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxEYXRlSW5zdGFuY2U+KHZtKSkKKyAgICAg
ICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJkYXRl
IikpOworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxSZWdFeHBPYmplY3Q+KHZtKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJy
ZWdleHAiKSk7CisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPFByb3h5T2JqZWN0Pih2bSkp
CisgICAgICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJh
bCgicHJveHkiKSk7CisKKyAgICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNNYXA+KHZtKSkK
KyAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFs
KCJtYXAiKSk7CisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTU2V0Pih2bSkpCisgICAg
ICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgic2V0
IikpOworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxKU1dlYWtNYXA+KHZtKSkKKyAgICAg
ICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3ZWFr
bWFwIikpOworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxKU1dlYWtTZXQ+KHZtKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3
ZWFrc2V0IikpOworCisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTU3RyaW5nSXRlcmF0
b3I+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVND
SUlMaXRlcmFsKCJpdGVyYXRvciIpKTsKKwogICAgICAgICBpZiAob2JqZWN0LT5nZXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JOZXh0SW5k
ZXhQcml2YXRlTmFtZSgpKQogICAgICAgICAgICAgfHwgb2JqZWN0LT5nZXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm1hcEJ1Y2tldFByaXZhdGVOYW1lKCkpCiAg
ICAgICAgICAgICB8fCBvYmplY3QtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuc2V0QnVja2V0UHJpdmF0ZU5hbWUoKSkpCiAgICAgICAgICAgICByZXR1cm4g
anNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiaXRlcmF0b3IiKSk7Ci0gICAg
fQogCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU0ludDhBcnJheTo6aW5mbygpKQotICAg
ICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgSlNJbnQxNkFycmF5OjppbmZvKCkpCi0gICAgICAg
IHx8IHZhbHVlLmluaGVyaXRzKHZtLCBKU0ludDMyQXJyYXk6OmluZm8oKSkKLSAgICAgICAgfHwg
dmFsdWUuaW5oZXJpdHModm0sIEpTVWludDhBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1
ZS5pbmhlcml0cyh2bSwgSlNVaW50OENsYW1wZWRBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2
YWx1ZS5pbmhlcml0cyh2bSwgSlNVaW50MTZBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1
ZS5pbmhlcml0cyh2bSwgSlNVaW50MzJBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5p
bmhlcml0cyh2bSwgSlNGbG9hdDMyQXJyYXk6OmluZm8oKSkKLSAgICAgICAgfHwgdmFsdWUuaW5o
ZXJpdHModm0sIEpTRmxvYXQ2NEFycmF5OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7CisgICAgICAgIGlmIChv
YmplY3QtPmluaGVyaXRzPEpTSW50OEFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+
aW5oZXJpdHM8SlNJbnQxNkFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJp
dHM8SlNJbnQzMkFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNV
aW50OEFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNVaW50OENs
YW1wZWRBcnJheT4odm0pCisgICAgICAgICAgICB8fCBvYmplY3QtPmluaGVyaXRzPEpTVWludDE2
QXJyYXk+KHZtKQorICAgICAgICAgICAgfHwgb2JqZWN0LT5pbmhlcml0czxKU1VpbnQzMkFycmF5
Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNGbG9hdDMyQXJyYXk+KHZt
KQorICAgICAgICAgICAgfHwgb2JqZWN0LT5pbmhlcml0czxKU0Zsb2F0NjRBcnJheT4odm0pKQor
ICAgICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwo
ImFycmF5IikpOworICAgIH0KIAogICAgIHJldHVybiBpbXBsKCkuc3VidHlwZShleGVjLCB2YWx1
ZSk7CiB9CkBAIC0yMTMsMTQgKzIxMCwxNCBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0
OjpmdW5jdGlvbkRldGFpbHMoRXhlY1N0YXRlKiBleGVjKQogCiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKICAgICBKU1ZhbHVlIHZhbHVlID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0g
ICAgaWYgKCF2YWx1ZS5hc0NlbGwoKS0+aW5oZXJpdHModm0sIEpTRnVuY3Rpb246OmluZm8oKSkp
CisgICAgYXV0byogZnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPih2bSwgdmFs
dWUpOworICAgIGlmICghZnVuY3Rpb24pCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwog
CiAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi84NzE5Mj4gV2ViIEluc3BlY3Rv
cjogRXhwb3NlIGZ1bmN0aW9uIHNjb3BlIC8gY2xvc3VyZSBkYXRhCiAKICAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgcHJvdmlkZSBiZXR0ZXIgZGV0YWlscyBmb3IgSlNCb3VuZEZ1bmN0aW9ucy4K
IAotICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPih2YWx1ZSk7
CiAgICAgY29uc3QgU291cmNlQ29kZSogc291cmNlQ29kZSA9IGZ1bmN0aW9uLT5zb3VyY2VDb2Rl
KCk7CiAgICAgaWYgKCFzb3VyY2VDb2RlKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckhlYXBBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JIZWFwQWdlbnQuY3BwCmluZGV4IGEyYjZkMDQyYWQyMmVmNmM1ZGQxZWE5ZDI3
MzQwYjQ5MTQwZjQ5ZjMuLjJmYjhiN2VjZDdmYjU2YjY5MWM3ZDU5MjMwMjU3OTY4MTI2MTc0NjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckhlYXBBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmNwcApAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgSW5z
cGVjdG9ySGVhcEFnZW50OjpnZXRQcmV2aWV3KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50
IGhlYXBPYmplY3RJZCwKICAgICB9CiAKICAgICAvLyBGdW5jdGlvbiBwcmV2aWV3LgotICAgIGlm
IChjZWxsLT5pbmhlcml0cyh2bSwgSlNGdW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlmIChjZWxs
LT5pbmhlcml0czxKU0Z1bmN0aW9uPih2bSkpIHsKICAgICAgICAgaW5qZWN0ZWRTY3JpcHQuZnVu
Y3Rpb25EZXRhaWxzKGVycm9yU3RyaW5nLCBjZWxsLCBmdW5jdGlvbkRldGFpbHMpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHAKaW5kZXggY2RjMGY3MjIwNzBiZTdlNTM1ZWFkZTA3MWRiYjMyZjY1
MGZmMTFlNi4uZWE3OGFjNjlkZWMyYzE4MzExODI2Mzk5ZDJhMjYwZmExN2RjMWIxNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBA
IC02MzEsNyArNjMxLDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBub3RpZnlEZWJ1Z2dl
ck9mVW53aW5kaW5nKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUKICAgICBpZiAoRGVidWdn
ZXIqIGRlYnVnZ2VyID0gY2FsbEZyYW1lLT52bUVudHJ5R2xvYmFsT2JqZWN0KHZtKS0+ZGVidWdn
ZXIoKSkgewogICAgICAgICBTdXNwZW5kRXhjZXB0aW9uU2NvcGUgc2NvcGUoJnZtKTsKICAgICAg
ICAgaWYgKGNhbGxGcmFtZS0+aXNBbnlXYXNtQ2FsbGVlKCkKLSAgICAgICAgICAgIHx8IChjYWxs
RnJhbWUtPmNhbGxlZSgpLmlzQ2VsbCgpICYmIGNhbGxGcmFtZS0+Y2FsbGVlKCkuYXNDZWxsKCkt
PmluaGVyaXRzKHZtLCBKU0Z1bmN0aW9uOjppbmZvKCkpKSkKKyAgICAgICAgICAgIHx8IChjYWxs
RnJhbWUtPmNhbGxlZSgpLmlzQ2VsbCgpICYmIGNhbGxGcmFtZS0+Y2FsbGVlKCkuYXNDZWxsKCkt
PmluaGVyaXRzPEpTRnVuY3Rpb24+KHZtKSkpCiAgICAgICAgICAgICBkZWJ1Z2dlci0+dW53aW5k
RXZlbnQoY2FsbEZyYW1lKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZGVidWdnZXItPmRp
ZEV4ZWN1dGVQcm9ncmFtKGNhbGxGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5jcHAKaW5kZXggZjcwNjY2ZDg5NzBmNmM3MzMx
NTkwNzgxNzdkM2VhM2M1NTgwYWI3MC4uZTM0NDNmMTg5MWQxNzU2YjAzZGZmOGZhNmEyMjg1Y2E4
ZTU1ZGNiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1No
YWRvd0NoaWNrZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9T
aGFkb3dDaGlja2VuLmNwcApAQCAtMzAyLDExICszMDIsMTEgQEAgdm9pZCBTaGFkb3dDaGlja2Vu
Ojp1cGRhdGUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICBpZiAoY29k
ZUJsb2NrICYmIGNvZGVCbG9jay0+d2FzQ29tcGlsZWRXaXRoRGVidWdnaW5nT3Bjb2RlcygpICYm
IGNvZGVCbG9jay0+c2NvcGVSZWdpc3RlcigpLmlzVmFsaWQoKSkgewogICAgICAgICAgICAgICAg
IHNjb3BlID0gY2FsbEZyYW1lLT5zY29wZShjb2RlQmxvY2stPnNjb3BlUmVnaXN0ZXIoKS5vZmZz
ZXQoKSk7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc2NvcGUtPmluaGVyaXRzKHZt
LCBKU1Njb3BlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzY29w
ZS0+aW5oZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmRG
cmFtZSkgewogICAgICAgICAgICAgICAgIHNjb3BlID0gbV9sb2dbaW5kZXhJbkxvZ10uc2NvcGU7
CiAgICAgICAgICAgICAgICAgaWYgKHNjb3BlKQotICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVChzY29wZS0+aW5oZXJpdHModm0sIEpTU2NvcGU6OmluZm8oKSkpOworICAgICAgICAg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzY29wZS0+aW5oZXJpdHM8SlNTY29wZT4odm0pKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRvUHVzaC5hcHBlbmQoRnJhbWUoanNDYXN0PEpT
T2JqZWN0Kj4odmlzaXRvci0+Y2FsbGVlKCkuYXNDZWxsKCkpLCBjYWxsRnJhbWUsIGlzVGFpbERl
bGV0ZWQsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCksIHNjb3BlLCBjb2RlQmxvY2ssIGNhbGxGcmFt
ZS0+Y2FsbFNpdGVJbmRleCgpKSk7CiAKQEAgLTM1MSw3ICszNTEsNyBAQCB2b2lkIFNoYWRvd0No
aWNrZW46OnVwZGF0ZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICBQYWNrZXQgcGFja2V0ID0gbV9sb2dbaW5kZXhJbkxv
Z107CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNUYWlsRGVsZXRlZCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHRhaWxQYWNrZXQuc2NvcGUtPmluaGVyaXRz
KHZtLCBKU1Njb3BlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQodGFpbFBhY2tldC5zY29wZS0+aW5oZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAg
ICAgICAgICAgdG9QdXNoLmFwcGVuZChGcmFtZShwYWNrZXQuY2FsbGVlLCBwYWNrZXQuZnJhbWUs
IGlzVGFpbERlbGV0ZWQsIHRhaWxQYWNrZXQudGhpc1ZhbHVlLCB0YWlsUGFja2V0LnNjb3BlLCB0
YWlsUGFja2V0LmNvZGVCbG9jaywgdGFpbFBhY2tldC5jYWxsU2l0ZUluZGV4KSk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4
IGY2NDIwY2FlNjE2YWFjNTI0YzJhODE5NGU5YmQwMmY0ZjU3MDk0ZTQuLjU1MTEzOWZiZjI4NjQ0
YTBkNjU2ZmNhZDA0ZjQ2ZTk3ZjcyYjhiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAK
QEAgLTE5Niw3ICsxOTYsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAK
ICAgICBWTSYgdm0gPSAqbV9jb2RlQmxvY2stPnZtKCk7CiAgICAgdW5zaWduZWQgc3RhcnRCeXRl
Y29kZU9mZnNldCA9IDA7Ci0gICAgaWYgKG1fbG9vcE9TUkVudHJ5Qnl0ZWNvZGVPZmZzZXQgJiYg
KG1fY29kZUJsb2NrLT5pbmhlcml0cyh2bSwgUHJvZ3JhbUNvZGVCbG9jazo6aW5mbygpKSB8fCBt
X2NvZGVCbG9jay0+aW5oZXJpdHModm0sIE1vZHVsZVByb2dyYW1Db2RlQmxvY2s6OmluZm8oKSkp
KSB7CisgICAgaWYgKG1fbG9vcE9TUkVudHJ5Qnl0ZWNvZGVPZmZzZXQgJiYgKG1fY29kZUJsb2Nr
LT5pbmhlcml0czxQcm9ncmFtQ29kZUJsb2NrPih2bSkgfHwgbV9jb2RlQmxvY2stPmluaGVyaXRz
PE1vZHVsZVByb2dyYW1Db2RlQmxvY2s+KHZtKSkpIHsKICAgICAgICAgLy8gV2UgY2FuIG9ubHkg
ZG8gdGhpcyBvcHRpbWl6YXRpb24gYmVjYXVzZSB3ZSBleGVjdXRlIFByb2dyYW1Db2RlQmxvY2sn
cyBleGFjdGx5IG9uY2UuCiAgICAgICAgIC8vIFRoaXMgb3B0aW1pemF0aW9uIHdvdWxkIGJlIGlu
dmFsaWQgb3RoZXJ3aXNlLiBXaGVuIHRoZSBMTEludCBkZXRlcm1pbmVzIGl0IHdhbnRzIHRvCiAg
ICAgICAgIC8vIGRvIE9TUiBlbnRyeSBpbnRvIHRoZSBiYXNlbGluZSBKSVQgaW4gYSBsb29wLCBp
dCB3aWxsIHBhc3MgaW4gdGhlIGJ5dGVjb2RlIG9mZnNldCBpdApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggOWRjNTQ0ZWRhNDAwZmQyYTQyZDllMjk3
M2VmNzgyNjFmZTQ2NjNlYy4uZTQ2YTNkNzVkNDc1ZmU0MGVhMTZiZDJhODZjOTY2NGJmN2Y5ZDkx
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0x
MTkxLDcgKzExOTEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+CiBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uTmV3RnVuY3Rpb25Db21tb24oRXhlY1N0YXRlKiBleGVj
LCBKU1Njb3BlKiBzY29wZSwgSlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUsIGJvb2wgaXNJbnZh
bGlkYXRlZCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIEFTU0VSVChmdW5jdGlv
bkV4ZWN1dGFibGUtPmluaGVyaXRzKHZtLCBGdW5jdGlvbkV4ZWN1dGFibGU6OmluZm8oKSkpOwor
ICAgIEFTU0VSVChmdW5jdGlvbkV4ZWN1dGFibGUtPmluaGVyaXRzPEZ1bmN0aW9uRXhlY3V0YWJs
ZT4odm0pKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAg
ICAgaWYgKGlzSW52YWxpZGF0ZWQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRnVu
Y3Rpb25UeXBlOjpjcmVhdGVXaXRoSW52YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50KHZt
LCBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihmdW5jdGlvbkV4ZWN1dGFibGUpLCBz
Y29wZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCA5ZWY4NGFhZWNhYjVjZjA3YWUzYTYzZmMx
ZWY4ZDgwMGYzMWFiMGY1Li5lZjkyYzQyMjkyZjA4NTZhOGQ5N2ZhZTkzODAwNmIyMzEyZDdmN2Ez
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMjI2Myw3ICsyMjYzLDcgQEAgc3RhdGljIHZvaWQg
Y2hlY2tFeGNlcHRpb24oR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGJvb2wgaXNMYXN0Rmls
ZSwgYm9vbCBoYXMKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKLSAgICBp
ZiAob3B0aW9ucy5tX3RyZWF0V2F0Y2hkb2dFeGNlcHRpb25Bc1N1Y2Nlc3MgJiYgdmFsdWUuaW5o
ZXJpdHModm0sIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6aW5mbygpKSkgeworICAgIGlmIChv
cHRpb25zLm1fdHJlYXRXYXRjaGRvZ0V4Y2VwdGlvbkFzU3VjY2VzcyAmJiB2YWx1ZS5pbmhlcml0
czxUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I+KHZtKSkgewogICAgICAgICBBU1NFUlQoaGFzRXhj
ZXB0aW9uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaAppbmRleCA5ZTVhYWY5YjExODk4MjRiZmI2ZTM0MjVj
YTcxYTA2ZDc2ZjFhMDM5Li4yN2M0M2U3OWE1OGFlYmI1MzhlMGEwOTg2ZGI2MjcxM2QyOTIxNzdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCkBA
IC00NywxMiArNDcsNCBAQCBjbGFzcyBCb29sZWFuT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9i
amVjdCB7CiAgICAgfQogfTsKIAotQm9vbGVhbk9iamVjdCogYXNCb29sZWFuT2JqZWN0KEpTVmFs
dWUpOwotCi1pbmxpbmUgQm9vbGVhbk9iamVjdCogYXNCb29sZWFuT2JqZWN0KEpTVmFsdWUgdmFs
dWUpCi17Ci0gICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9i
amVjdCgpLT52bSgpLCBCb29sZWFuT2JqZWN0OjppbmZvKCkpKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Qm9vbGVhbk9iamVjdCo+KGFzT2JqZWN0KHZhbHVlKSk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVh
blByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJv
dG90eXBlLmNwcAppbmRleCAzN2RjZTdlMzQ3OGJmOTY2MDYyMzg4MTdhZGJlN2M4MmUyNDdlYmY4
Li4wNmY5ZmQzMGFkNTI3ODk4MGE1MzEyODQ3ZDM2YWYwNTZjMTI3OWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcApAQCAtNzYs
MTMgKzc2LDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm9vbGVhblByb3RvRnVu
Y1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAodGhpc1ZhbHVlID09IGpzQm9vbGVh
bih0cnVlKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0cmluZ3Mu
dHJ1ZVN0cmluZygpKTsKIAotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBCb29sZWFu
T2JqZWN0OjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEJv
b2xlYW5PYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNPYmpl
Y3QpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAg
ICBpZiAoYXNCb29sZWFuT2JqZWN0KHRoaXNWYWx1ZSktPmludGVybmFsVmFsdWUoKSA9PSBqc0Jv
b2xlYW4oZmFsc2UpKQorICAgIGlmICh0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkgPT0ganNC
b29sZWFuKGZhbHNlKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0
cmluZ3MuZmFsc2VTdHJpbmcoKSk7CiAKLSAgICBBU1NFUlQoYXNCb29sZWFuT2JqZWN0KHRoaXNW
YWx1ZSktPmludGVybmFsVmFsdWUoKSA9PSBqc0Jvb2xlYW4odHJ1ZSkpOworICAgIEFTU0VSVCh0
aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkgPT0ganNCb29sZWFuKHRydWUpKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHZtLnNtYWxsU3RyaW5ncy50cnVlU3RyaW5nKCkpOwogfQogCkBA
IC05NCwxMCArOTUsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJv
dG9GdW5jVmFsdWVPZihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKHRoaXNWYWx1ZS5pc0Jvb2xl
YW4oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpOwogCi0gICAg
aWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIEJvb2xlYW5PYmplY3Q6OmluZm8oKSkpCisgICAg
YXV0byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8Qm9vbGVhbk9iamVjdCo+KHZtLCB0aGlz
VmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc09iamVjdCkpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoYXNCb29sZWFuT2JqZWN0KHRoaXNWYWx1ZSktPmludGVybmFsVmFsdWUoKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuY3BwCmluZGV4IDYxYTU5NTIyYmYzOTVhYmZiYTQwYWY3ZTlkMGE3NGM0
ZTQ1MzMzM2MuLjAwM2ZhOTAwZTdhN2NmNWFkYzBkNjYyMGE1YmJlNDIzNzUzODMyMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApA
QCAtMTMwLDEwICsxMzAsMTEgQEAgSlNPYmplY3QqIGNvbnN0cnVjdERhdGUoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIG4KICAgICBpZiAobnVt
QXJncyA9PSAwKSAvLyBuZXcgRGF0ZSgpIEVDTUEgMTUuOS4zLjMKICAgICAgICAgdmFsdWUgPSBq
c0N1cnJlbnRUaW1lKCk7CiAgICAgZWxzZSBpZiAobnVtQXJncyA9PSAxKSB7Ci0gICAgICAgIGlm
IChhcmdzLmF0KDApLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCi0gICAgICAg
ICAgICB2YWx1ZSA9IGFzRGF0ZUluc3RhbmNlKGFyZ3MuYXQoMCkpLT5pbnRlcm5hbE51bWJlcigp
OworICAgICAgICBKU1ZhbHVlIGFyZzAgPSBhcmdzLmF0KDApOworICAgICAgICBpZiAoYXV0byog
ZGF0ZUluc3RhbmNlID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgYXJnMCkpCisg
ICAgICAgICAgICB2YWx1ZSA9IGRhdGVJbnN0YW5jZS0+aW50ZXJuYWxOdW1iZXIoKTsKICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBKU1ZhbHVlIHByaW1pdGl2ZSA9IGFyZ3MuYXQoMCkudG9Q
cmltaXRpdmUoZXhlYyk7CisgICAgICAgICAgICBKU1ZhbHVlIHByaW1pdGl2ZSA9IGFyZzAudG9Q
cmltaXRpdmUoZXhlYyk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKICAgICAgICAgICAgIGlmIChwcmltaXRpdmUuaXNTdHJpbmcoKSkKICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IHBhcnNlRGF0ZSh2bSwgYXNTdHJpbmcocHJpbWl0aXZlKS0+dmFsdWUo
ZXhlYykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUlu
c3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApp
bmRleCAzZjExYWUzYTYzNmViZGNiYWEyMDVhZTJkYjc0ZDRmYTQ2NTMyYjI4Li41Nzg0MTM1MzAx
MTM5YTdjMzgyNzcyNTQ0ZTNlNmI4M2JlZGNmMzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApAQCAtODAsMTIgKzgwLDQgQEAgY2xhc3MgRGF0ZUlu
c3RhbmNlIDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgbXV0YWJsZSBQb2lzb25lZFJl
ZlB0cjxEYXRlSW5zdGFuY2VQb2lzb24sIERhdGVJbnN0YW5jZURhdGE+IG1fZGF0YTsKIH07CiAK
LURhdGVJbnN0YW5jZSogYXNEYXRlSW5zdGFuY2UoSlNWYWx1ZSk7Ci0KLWlubGluZSBEYXRlSW5z
dGFuY2UqIGFzRGF0ZUluc3RhbmNlKEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQVNTRVJUKGFzT2Jq
ZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBEYXRlSW5zdGFu
Y2U6OmluZm8oKSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxEYXRlSW5zdGFuY2UqPihhc09i
amVjdCh2YWx1ZSkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggNWFiMDA3ZmMxN2Y2NGU5
Y2JkMjhjMTliNWZkNzM5NmVhY2Y5ZDJkMy4uNmYyMzM2ODczNTJjMGJmZGY0YTU5NjQxZjkyNmI4
MTBkNWFmMWUyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5jcHAKQEAgLTMyMiwxMSArMzIyLDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBm
b3JtYXRlRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgRGF0ZVRpbWVGb3JtYXQgZm9ybWF0
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
LSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQor
ICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwg
dGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0
aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7Ci0KICAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBhc1VUQ1ZhcmlhbnQKICAgICAgICAg
PyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYykKICAgICAgICAgOiB0aGlz
RGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CkBAIC01MzksMTAgKzUzOCwxMCBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyhFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50
aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNl
OjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5z
dGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogICAgIAotICAg
IERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAK
ICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCkpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9y
KGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiSW52YWxpZCBEYXRlIikpKTsKIApAQCAtNTg3LDEwICs1ODYs
MTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVT
dHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERh
dGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nh
c3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlz
RGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
IAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFs
dWUpOyAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGZvcm1hdExvY2FsZURhdGUoZXhlYywg
dGhpc0RhdGVPYmosIHRoaXNEYXRlT2JqLT5pbnRlcm5hbE51bWJlcigpLCBMb2NhbGVEYXRlQW5k
VGltZSkpOwogfQogCkBAIC01OTksMTAgKzU5OCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNUb0xvY2FsZURhdGVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0g
ICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAg
ICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRo
aXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhp
c0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGZvcm1hdExvY2FsZURhdGUoZXhlYywgdGhpc0RhdGVPYmosIHRoaXNEYXRlT2Jq
LT5pbnRlcm5hbE51bWJlcigpLCBMb2NhbGVEYXRlKSk7CiB9CiAKQEAgLTYxMSwxMCArNjEwLDEw
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvTG9jYWxlVGlt
ZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwg
RGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWlj
Q2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRo
aXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUp
OwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNW
YWx1ZSk7IAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZm9ybWF0TG9jYWxlRGF0ZShleGVj
LCB0aGlzRGF0ZU9iaiwgdGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCksIExvY2FsZVRpbWUp
KTsKIH0KIApAQCAtNjQ2LDEwICs2NDUsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jR2V0VGltZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1
ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRl
T2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBp
ZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgc2NvcGUpOwogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc0RhdGVJbnN0
YW5jZSh0aGlzVmFsdWUpLT5pbnRlcm5hbFZhbHVlKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUodGhpc0RhdGVPYmotPmludGVybmFsVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykK
QEAgLTY1NywxMSArNjU3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY0dldEZ1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmog
PSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChV
TkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5z
dGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAg
aWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c05hTigpKTsKQEAgLTY3MywxMSArNjcyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICgh
dGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byog
dGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUp
OworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2Jq
ID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVV
VEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTY4OSwxMSArNjg3LDEwIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1vbnRoKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwot
ICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisg
ICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0
aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRo
aXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTcwNSwxMSArNzAyLDEwIEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEV4ZWNTdGF0
ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6Omlu
Zm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5j
ZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5z
dGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+
Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTcyMSwxMSArNzE3
LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERhdGUo
RXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0
YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0
ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9i
aikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAg
IERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAK
LQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNE
YXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVU
aW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtNzM3LDEx
ICs3MzIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0
VVRDRGF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwg
RGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWlj
Q2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRo
aXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUp
OwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNW
YWx1ZSk7IAotCiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1l
ID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGV4ZWMpOwogICAgIGlmICghZ3Jl
Z29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7
CkBAIC03NTMsMTEgKzc0NywxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNHZXREYXkoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJp
dHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpz
RHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElL
RUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5j
ZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5E
YXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAo
IWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFO
KCkpOwpAQCAtNzY5LDExICs3NjIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0VVRDRGF5KEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVl
LmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVP
YmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlm
IChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRl
SW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3Jl
Z29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7
CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc05hTigpKTsKQEAgLTc4NSwxMSArNzc3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEhvdXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICgh
dGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byog
dGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUp
OworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2Jq
ID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUo
ZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc05hTigpKTsKQEAgLTgwMSwxMSArNzkyLDEwIEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwot
ICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisg
ICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0
aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRo
aXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTgxNywxMSArODA3LDEwIEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMoRXhlY1N0
YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6
aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3Rh
bmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJ
bnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODMzLDExICs4MjIs
MTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTWlu
dXRlcyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0
ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2Fz
dDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNE
YXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwog
Ci0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1
ZSk7IAotCiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0g
dGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGV4ZWMpOwogICAgIGlmICghZ3JlZ29y
aWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CkBA
IC04NDksMTEgKzgzNywxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90
b0Z1bmNHZXRTZWNvbmRzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVy
aXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBq
c0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJ
S0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFu
Y2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYg
KCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05h
TigpKTsKQEAgLTg2NSwxMSArODUyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlz
VmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlz
RGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7Cisg
ICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBh
c0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhl
eGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODgxLDEwICs4NjcsMTAgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRzKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgp
OwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkp
CisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZt
LCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2Uq
IHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCiAgICAgZG91YmxlIG1p
bGxpID0gdGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4o
bWlsbGkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODk5
LDEwICs4ODUsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
R2V0VVRDTWlsbGlzZWNvbmRzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmog
PSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChV
TkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5z
dGFuY2UodGhpc1ZhbHVlKTsgCiAgICAgZG91YmxlIG1pbGxpID0gdGhpc0RhdGVPYmotPmludGVy
bmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4obWlsbGkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtOTE3LDExICs5MDMsMTAgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQoRXhlY1N0
YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6
aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3Rh
bmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJ
bnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtOTMzLDExICs5MTgs
MTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VGltZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3Rh
bmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRl
SW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2Jq
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAg
RGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAot
CiAgICAgZG91YmxlIG1pbGxpID0gdGltZUNsaXAoZXhlYy0+YXJndW1lbnQoMCkudG9OdW1iZXIo
ZXhlYykpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIobWlsbGkpOwpAQCAtOTUwLDEwICs5MzQs
MTAgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKEV4ZWNT
dGF0ZSogZXhlYywgaW50IG51bUFyZ3NUb1VzZSwKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRz
KHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5
bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VM
WSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBz
Y29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2Uo
dGhpc1ZhbHVlKTsKICAgICBkb3VibGUgbWlsbGkgPSB0aGlzRGF0ZU9iai0+aW50ZXJuYWxOdW1i
ZXIoKTsKIAogICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpIHx8IHN0ZDo6aXNuYW4obWls
bGkpKSB7CkBAIC05OTIsMTAgKzk3NiwxMCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc2V0TmV3
VmFsdWVGcm9tRGF0ZUFyZ3MoRXhlY1N0YXRlKiBleGVjLCBpbnQgbnVtQXJnc1RvVXNlLAogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAg
aWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBh
dXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNW
YWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0Rh
dGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOwogICAgIGlmICghZXhlYy0+YXJndW1l
bnRDb3VudCgpKSB7CiAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOYU4oKTsKICAgICAgICAg
dGhpc0RhdGVPYmotPnNldEludGVybmFsVmFsdWUodm0sIHJlc3VsdCk7CkBAIC0xMTA3LDEwICsx
MDkxLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFll
YXIoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJ
bnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8
RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0
ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAot
ICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUp
OwogICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpKSB7IAogICAgICAgICBKU1ZhbHVlIHJl
c3VsdCA9IGpzTmFOKCk7CiAgICAgICAgIHRoaXNEYXRlT2JqLT5zZXRJbnRlcm5hbFZhbHVlKHZt
LCByZXN1bHQpOwpAQCAtMTE1MiwxMSArMTEzNiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRZZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhp
c1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhp
c0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOwor
ICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0g
YXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhl
Yyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc05hTigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhjZXB0aW9uSGVscGVycy5jcHAKaW5kZXggOTgyNjhlNTkzYTljYzlkMGZiZWIxNjE2MDBlZjAw
OWY3ZTkyY2IzNS4uNjk5MTQ0YjRhN2VkMzcyZDlhOTM3YjY0YTQ5YzI3OWY5ZDNlN2ZhZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5j
cHAKQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24o
Vk0mIHZtLCBFeGNlcHRpb24qIGV4Y2VwdGlvbikKICAgICBpZiAoIWV4Y2VwdGlvbi0+dmFsdWUo
KS5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gZXhjZXB0
aW9uLT52YWx1ZSgpLmluaGVyaXRzKHZtLCBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I6OmluZm8o
KSk7CisgICAgcmV0dXJuIGV4Y2VwdGlvbi0+dmFsdWUoKS5pbmhlcml0czxUZXJtaW5hdGVkRXhl
Y3V0aW9uRXJyb3I+KHZtKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJv
cihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggZTA0MzEzZjE0NTFlNDYyMGQzNWU1ZmY0ZWMz
MzU5ODQ0ZDFlMjY5Mi4uZDBmZDc2MjQ3Y2JjMTZiNjBhNGJhMmU0ZDNiMzVlODhlNmU0OWZkOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmNwcApAQCAtODUsNyArODUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgSlNGdW5jdGlv
bjo6aW5mbygpKSkgeworICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8SlNGdW5jdGlvbj4odm0p
KSB7CiAgICAgICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPih0
aGlzVmFsdWUpOwogICAgICAgICBpZiAoZnVuY3Rpb24tPmlzSG9zdE9yQnVpbHRpbkZ1bmN0aW9u
KCkpIHsKICAgICAgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKQEAgLTk4LDcgKzk4LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmco
ZXhlYywgY2xhc3NTb3VyY2UudG9TdHJpbmdXaXRob3V0Q29weWluZygpKSk7CiAgICAgICAgIH0K
IAotICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBKU0FzeW5jRnVuY3Rpb246Omlu
Zm8oKSkpIHsKKyAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxKU0FzeW5jRnVuY3Rpb24+
KHZtKSkgewogICAgICAgICAgICAgU3RyaW5nIGZ1bmN0aW9uSGVhZGVyID0gZXhlY3V0YWJsZS0+
aXNBcnJvd0Z1bmN0aW9uKCkgPyAiYXN5bmMgIiA6ICJhc3luYyBmdW5jdGlvbiAiOwogCiAgICAg
ICAgICAgICBTdHJpbmdWaWV3IHNvdXJjZSA9IGV4ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVy
KCktPmdldFJhbmdlKApAQCAtMTE2LDcgKzExNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCBmdW5j
dGlvbkhlYWRlciwgZnVuY3Rpb24tPm5hbWUodm0pLCBzb3VyY2UpKTsKICAgICB9CiAKLSAgICBp
ZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBJbnRlcm5hbEZ1bmN0aW9uOjppbmZvKCkpKSB7Cisg
ICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxJbnRlcm5hbEZ1bmN0aW9uPih2bSkpIHsKICAgICAg
ICAgSW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb24gPSBhc0ludGVybmFsRnVuY3Rpb24odGhpc1Zh
bHVlKTsKICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywgImZ1bmN0aW9uICIsIGZ1bmN0aW9u
LT5uYW1lKCksICIoKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAppbmRleCAyZDliYjUwZWFl
ZTllZDNkMjQ4M2JiMjU1MThiMWQ4OGQ2N2Q0ZWY0Li43YjdjOGJhZTg4MTBmMDFjYzMwNjViOTgy
M2NmOGQ5ZTc1ZDk1ZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50ZXJuYWxGdW5jdGlvbi5oCkBAIC05MSw3ICs5MSw3IEBAIEludGVybmFsRnVuY3Rpb24qIGFz
SW50ZXJuYWxGdW5jdGlvbihKU1ZhbHVlKTsKIAogaW5saW5lIEludGVybmFsRnVuY3Rpb24qIGFz
SW50ZXJuYWxGdW5jdGlvbihKU1ZhbHVlIHZhbHVlKQogewotICAgIEFTU0VSVChhc09iamVjdCh2
YWx1ZSktPmluaGVyaXRzKCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSwgSW50ZXJuYWxGdW5jdGlv
bjo6aW5mbygpKSk7CisgICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHM8SW50ZXJu
YWxGdW5jdGlvbj4oKnZhbHVlLmdldE9iamVjdCgpLT52bSgpKSk7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEludGVybmFsRnVuY3Rpb24qPihhc09iamVjdCh2YWx1ZSkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggODc3MmFhMmE4ODhjYjA1NmNkYTcw
MDljMTU4NjkyMDI2MzMxMWNhMS4uNzE1MGJiZmM0NTBmMGExZDgyNGFhNjVmOTkxOWVlNjcyMjNh
YjEwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtMjg5LDcg
KzI4OSw3IEBAIEpTQXJyYXkqIGFzQXJyYXkoSlNWYWx1ZSk7CiAKIGlubGluZSBKU0FycmF5KiBh
c0FycmF5KEpTQ2VsbCogY2VsbCkKIHsKLSAgICBBU1NFUlQoY2VsbC0+aW5oZXJpdHMoKmNlbGwt
PnZtKCksIEpTQXJyYXk6OmluZm8oKSkpOworICAgIEFTU0VSVChjZWxsLT5pbmhlcml0czxKU0Fy
cmF5PigqY2VsbC0+dm0oKSkpOwogICAgIHJldHVybiBqc0Nhc3Q8SlNBcnJheSo+KGNlbGwpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCmluZGV4
IDExNWQ4YjNkMjU4YjlhYzk0YWJhZTczMTc0Y2I2MjA0MmEyNWUzZmQuLmI1Zjc3YmU1OTc0OWZl
Mzg2Y2YzM2NhMWVjOTQ0N2QyNGNjYmJlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuY3BwCkBAIC0zMDksMTQgKzMwOSwxNCBAQCB2b2lkIEpTVmFsdWU6
OmR1bXBGb3JCYWNrdHJhY2UoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICAgICAgb3V0LnBy
aW50ZigiJWxmIiwgYXNEb3VibGUoKSk7CiAgICAgZWxzZSBpZiAoaXNDZWxsKCkpIHsKICAgICAg
ICAgVk0mIHZtID0gKmFzQ2VsbCgpLT52bSgpOwotICAgICAgICBpZiAoYXNDZWxsKCktPmluaGVy
aXRzKHZtLCBKU1N0cmluZzo6aW5mbygpKSkgeworICAgICAgICBpZiAoYXNDZWxsKCktPmluaGVy
aXRzPEpTU3RyaW5nPih2bSkpIHsKICAgICAgICAgICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBhc1N0
cmluZyhhc0NlbGwoKSk7CiAgICAgICAgICAgICBjb25zdCBTdHJpbmdJbXBsKiBpbXBsID0gc3Ry
aW5nLT50cnlHZXRWYWx1ZUltcGwoKTsKICAgICAgICAgICAgIGlmIChpbXBsKQogICAgICAgICAg
ICAgICAgIG91dC5wcmludCgiXCIiLCBpbXBsLCAiXCIiKTsKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICBvdXQucHJpbnQoIih1bnJlc29sdmVkIHN0cmluZykiKTsKLSAgICAgICAg
fSBlbHNlIGlmIChhc0NlbGwoKS0+aW5oZXJpdHModm0sIFN0cnVjdHVyZTo6aW5mbygpKSkgewor
ICAgICAgICB9IGVsc2UgaWYgKGFzQ2VsbCgpLT5pbmhlcml0czxTdHJ1Y3R1cmU+KHZtKSkgewog
ICAgICAgICAgICAgb3V0LnByaW50KCJTdHJ1Y3R1cmVbICIsIGFzQ2VsbCgpLT5zdHJ1Y3R1cmUo
KS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAg
ICAgIG91dC5wcmludCgiIElEOiAiLCBhc0NlbGwoKS0+c3RydWN0dXJlSUQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMWE0NDk3ZTk2MGE4ZTU4
MTJjOGMyYzI4NWJmZjYyOWY0NTA0ZDI5OS4uMzY2YjBhMjdkYzcwNWRjMzg3NzRhNGRiZTQ5ODA0
Y2E0Y2UxODI2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
aApAQCAtMjM2LDYgKzIzNiw3IEBAIGNsYXNzIEpTVmFsdWUgewogICAgIGJvb2wgaXNDdXN0b21H
ZXR0ZXJTZXR0ZXIoKSBjb25zdDsKICAgICBib29sIGlzT2JqZWN0KCkgY29uc3Q7CiAgICAgYm9v
bCBpbmhlcml0cyhWTSYsIGNvbnN0IENsYXNzSW5mbyopIGNvbnN0OworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFRhcmdldD4gYm9vbCBpbmhlcml0cyhWTSYpIGNvbnN0OwogICAgIGNvbnN0IENsYXNz
SW5mbyogY2xhc3NJbmZvT3JOdWxsKFZNJikgY29uc3Q7CiAgICAgICAgIAogICAgIC8vIEV4dHJh
Y3RpbmcgdGhlIHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0pTVmFsdWVJbmxpbmVzLmgKaW5kZXggYWE1MWRkNWQ3NjZkMDk0NTYyNTkzYzlmNmNkOWM3NjU0
YzIyMDE4MC4uYjVhNGI0YmRiZWU5OGMwMzQwNDhhZWNlMTY1NjRmM2ExZTRkNWM1OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBA
IC03ODUsNiArNzg1LDEyIEBAIGlubGluZSBib29sIEpTVmFsdWU6OmluaGVyaXRzKFZNJiB2bSwg
Y29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pIGNvbnN0CiAgICAgcmV0dXJuIGlzQ2VsbCgpICYm
IGFzQ2VsbCgpLT5pbmhlcml0cyh2bSwgY2xhc3NJbmZvKTsKIH0KIAordGVtcGxhdGU8dHlwZW5h
bWUgVGFyZ2V0PgoraW5saW5lIGJvb2wgSlNWYWx1ZTo6aW5oZXJpdHMoVk0mIHZtKSBjb25zdAor
eworICAgIHJldHVybiBpc0NlbGwoKSAmJiBhc0NlbGwoKS0+aW5oZXJpdHM8VGFyZ2V0Pih2bSk7
Cit9CisKIGlubGluZSBjb25zdCBDbGFzc0luZm8qIEpTVmFsdWU6OmNsYXNzSW5mb09yTnVsbChW
TSYgdm0pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmNsYXNzSW5m
byh2bSkgOiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDYXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAppbmRl
eCAxODU3ZjY4ZTY0NWFiZDIzNjhkODI3ZDU1MGVjMzEzZGFiNmFhYmJmLi43ZGUwMmJiZDBlNDAx
NDIyOTE0YmJmN2FkZWI1NjRiZmIxYjE5ZDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Nhc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Nhc3QuaApAQCAtNTksNiArNTksNyBAQCBpbmxpbmUgVG8ganNDYXN0KEpTVmFsdWUgZnJv
bSkKICAgICBtYWNybyhKU1dlYWtNYXAsIEpTVHlwZTo6SlNXZWFrTWFwVHlwZSwgSlNUeXBlOjpK
U1dlYWtNYXBUeXBlKSBcCiAgICAgbWFjcm8oTnVtYmVyT2JqZWN0LCBKU1R5cGU6Ok51bWJlck9i
amVjdFR5cGUsIEpTVHlwZTo6TnVtYmVyT2JqZWN0VHlwZSkgXAogICAgIG1hY3JvKFByb3h5T2Jq
ZWN0LCBKU1R5cGU6OlByb3h5T2JqZWN0VHlwZSwgSlNUeXBlOjpQcm94eU9iamVjdFR5cGUpIFwK
KyAgICBtYWNybyhSZWdFeHBPYmplY3QsIEpTVHlwZTo6UmVnRXhwT2JqZWN0VHlwZSwgSlNUeXBl
OjpSZWdFeHBPYmplY3RUeXBlKSBcCiAgICAgbWFjcm8oRGlyZWN0QXJndW1lbnRzLCBKU1R5cGU6
OkRpcmVjdEFyZ3VtZW50c1R5cGUsIEpTVHlwZTo6RGlyZWN0QXJndW1lbnRzVHlwZSkgXAogICAg
IG1hY3JvKFNjb3BlZEFyZ3VtZW50cywgSlNUeXBlOjpTY29wZWRBcmd1bWVudHNUeXBlLCBKU1R5
cGU6OlNjb3BlZEFyZ3VtZW50c1R5cGUpIFwKICAgICBtYWNybyhDbG9uZWRBcmd1bWVudHMsIEpT
VHlwZTo6Q2xvbmVkQXJndW1lbnRzVHlwZSwgSlNUeXBlOjpDbG9uZWRBcmd1bWVudHNUeXBlKSBc
CkBAIC03OCw1MiArNzksNTkgQEAgRk9SX0VBQ0hfSlNfRFlOQU1JQ19DQVNUX0pTX1RZUEVfT1ZF
UkxPQUQoRk9SV0FSRF9ERUNMQVJFX09WRVJMT0FEX0NMQVNTKQogCiBuYW1lc3BhY2UgSlNDYXN0
aW5nSGVscGVycyB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFRvLCB0eXBlbmFtZSBGcm9tPgotaW5s
aW5lIFRvIGpzRHluYW1pY0Nhc3RHZW5lcmljSW1wbChWTSYgdm0sIEZyb20qIGZyb20pCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIEZyb20+CitpbmxpbmUgYm9vbCBpbmhlcml0
c0dlbmVyaWNJbXBsKFZNJiB2bSwgRnJvbSogZnJvbSkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KCFz
dGQ6OmlzX3NhbWU8SlNPYmplY3QqLCBUbyo+Ojp2YWx1ZSwgIlRoaXMgZW5zdXJlcyBvdXIgb3Zl
cmxvYWRzIHdvcmsiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGws
IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8VG8+Ojp0eXBlPjo6dmFsdWUgJiYgc3RkOjpp
c19iYXNlX29mPEpTQ2VsbCwgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcG9pbnRlcjxGcm9tPjo6dHlw
ZT46OnZhbHVlLCAiSlMgY2FzdGluZyBleHBlY3RzIHRoYXQgdGhlIHR5cGVzIHlvdSBhcmUgY2Fz
dGluZyB0by9mcm9tIGFyZSBzdWJjbGFzc2VzIG9mIEpTQ2VsbCIpOwotICAgIGlmIChMSUtFTFko
ZnJvbS0+SlNDZWxsOjppbmhlcml0cyh2bSwgc3RkOjpyZW1vdmVfcG9pbnRlcjxUbz46OnR5cGU6
OmluZm8oKSkpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VG8+KGZyb20pOwotICAgIHJl
dHVybiBudWxscHRyOworICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfc2FtZTxKU09iamVjdCos
IFRhcmdldCo+Ojp2YWx1ZSwgIlRoaXMgZW5zdXJlcyBvdXIgb3ZlcmxvYWRzIHdvcmsiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIFRhcmdldD46OnZhbHVlICYm
IHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8RnJv
bT46OnR5cGU+Ojp2YWx1ZSwgIkpTIGNhc3RpbmcgZXhwZWN0cyB0aGF0IHRoZSB0eXBlcyB5b3Ug
YXJlIGNhc3RpbmcgdG8vZnJvbSBhcmUgc3ViY2xhc3NlcyBvZiBKU0NlbGwiKTsKKyAgICAvLyBE
byBub3QgdXNlIGluaGVyaXRzPFRhcmdldD4odm0pIHNpbmNlIGluaGVyaXRzPFQ+IGRlcGVuZHMg
b24gdGhpcyBmdW5jdGlvbi4KKyAgICByZXR1cm4gZnJvbS0+SlNDZWxsOjppbmhlcml0cyh2bSwg
VGFyZ2V0OjppbmZvKCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJv
bT4KLWlubGluZSBUbyBqc0R5bmFtaWNDYXN0SlNUeXBlSW1wbChWTSYgdm0sIEZyb20qIGZyb20s
IEpTVHlwZSBmaXJzdFR5cGUsIEpTVHlwZSBsYXN0VHlwZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFRh
cmdldCwgdHlwZW5hbWUgRnJvbT4KK2lubGluZSBib29sIGluaGVyaXRzSlNUeXBlSW1wbChWTSYg
dm0sIEZyb20qIGZyb20sIEpTVHlwZSBmaXJzdFR5cGUsIEpTVHlwZSBsYXN0VHlwZSkKIHsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIFRhcmdldD46OnZhbHVlICYm
IHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8RnJv
bT46OnR5cGU+Ojp2YWx1ZSwgIkpTIGNhc3RpbmcgZXhwZWN0cyB0aGF0IHRoZSB0eXBlcyB5b3Ug
YXJlIGNhc3RpbmcgdG8vZnJvbSBhcmUgc3ViY2xhc3NlcyBvZiBKU0NlbGwiKTsKICAgICBib29s
IGNhbkNhc3QgPSBmaXJzdFR5cGUgPD0gZnJvbS0+dHlwZSgpICYmIGZyb20tPnR5cGUoKSA8PSBs
YXN0VHlwZTsKLSAgICBBU1NFUlRfVU5VU0VEKHZtLCBjYW5DYXN0ID09IGpzRHluYW1pY0Nhc3RH
ZW5lcmljSW1wbDxUbz4odm0sIGZyb20pKTsKLSAgICBpZiAoTElLRUxZKGNhbkNhc3QpKQotICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VG8+KGZyb20pOwotICAgIHJldHVybiBudWxscHRyOwor
ICAgIEFTU0VSVF9VTlVTRUQodm0sIGNhbkNhc3QgPT0gZnJvbS0+SlNDZWxsOjppbmhlcml0cyh2
bSwgVGFyZ2V0OjppbmZvKCkpKTsKKyAgICByZXR1cm4gY2FuQ2FzdDsKIH0KIAogLy8gQysrIGhh
cyBiYWQgc3ludGF4IHNvIHdlIG5lZWQgdG8gdXNlIHRoaXMgc3RydWN0IGJlY2F1c2UgQysrIGRv
ZXNuJ3QgaGF2ZSBhCiAvLyB3YXkgdG8gc2F5IHRoYXQgd2UgYXJlIG92ZXJsb2FkaW5nIGp1c3Qg
dGhlIGZpcnN0IHR5cGUgaW4gYSB0ZW1wbGF0ZSBsaXN0Li4uCi10ZW1wbGF0ZTx0eXBlbmFtZSB0
bz4KLXN0cnVjdCBKU0R5bmFtaWNDYXN0VHJhaXRzIHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
bywgdHlwZW5hbWUgRnJvbT4KLSAgICBzdGF0aWMgaW5saW5lIFRvIGNhc3QoVk0mIHZtLCBGcm9t
KiBmcm9tKSB7IHJldHVybiBqc0R5bmFtaWNDYXN0R2VuZXJpY0ltcGw8VG8+KHZtLCBmcm9tKTsg
fQordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0Pgorc3RydWN0IEluaGVyaXRzVHJhaXRzIHsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBGcm9tPgorICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhlcml0
cyhWTSYgdm0sIEZyb20qIGZyb20pIHsgcmV0dXJuIGluaGVyaXRzR2VuZXJpY0ltcGw8VGFyZ2V0
Pih2bSwgZnJvbSk7IH0KIH07CiAKICNkZWZpbmUgREVGSU5FX1RSQUlUU19GT1JfSlNfVFlQRV9P
VkVSTE9BRChjbGFzc05hbWUsIGZpcnN0SlNUeXBlLCBsYXN0SlNUeXBlKSBcCiAgICAgdGVtcGxh
dGU8PiBcCi0gICAgc3RydWN0IEpTRHluYW1pY0Nhc3RUcmFpdHM8Y2xhc3NOYW1lKj4geyBcCi0g
ICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFRvLCB0eXBlbmFtZSBGcm9tPiBcCi0gICAgICAgIHN0
YXRpYyBpbmxpbmUgVG8gY2FzdChWTSYgdm0sIEZyb20qIGZyb20pIHsgcmV0dXJuIGpzRHluYW1p
Y0Nhc3RKU1R5cGVJbXBsPFRvPih2bSwgZnJvbSwgZmlyc3RKU1R5cGUsIGxhc3RKU1R5cGUpOyB9
IFwKKyAgICBzdHJ1Y3QgSW5oZXJpdHNUcmFpdHM8Y2xhc3NOYW1lPiB7IFwKKyAgICAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRnJvbT4gXAorICAgICAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJp
dHMoVk0mIHZtLCBGcm9tKiBmcm9tKSB7IHJldHVybiBpbmhlcml0c0pTVHlwZUltcGw8Y2xhc3NO
YW1lLCBGcm9tPih2bSwgZnJvbSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihmaXJzdEpTVHlwZSksIHN0
YXRpY19jYXN0PEpTVHlwZT4obGFzdEpTVHlwZSkpOyB9IFwKICAgICB9OyBcCiAKIEZPUl9FQUNI
X0pTX0RZTkFNSUNfQ0FTVF9KU19UWVBFX09WRVJMT0FEKERFRklORV9UUkFJVFNfRk9SX0pTX1RZ
UEVfT1ZFUkxPQUQpCiAKICN1bmRlZiBERUZJTkVfVFJBSVRTX0ZPUl9KU19UWVBFX09WRVJMT0FE
CiAKKwordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBGcm9tPgorYm9vbCBpbmhl
cml0cyhWTSYgdm0sIEZyb20qIGZyb20pCit7CisgICAgdXNpbmcgRGlzcGF0Y2hlciA9IEluaGVy
aXRzVHJhaXRzPFRhcmdldD47CisgICAgcmV0dXJuIERpc3BhdGNoZXI6OnRlbXBsYXRlIGluaGVy
aXRzKHZtLCBmcm9tKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDYXN0aW5nSGVscGVycwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJvbT4KIFRvIGpzRHluYW1pY0Nhc3QoVk0m
IHZtLCBGcm9tKiBmcm9tKQogewotICAgIHR5cGVkZWYgSlNDYXN0aW5nSGVscGVyczo6SlNEeW5h
bWljQ2FzdFRyYWl0czx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jdjx0eXBlbmFtZSBzdGQ6OnJlbW92
ZV9wb2ludGVyPFRvPjo6dHlwZT46OnR5cGU+IERpc3BhdGNoZXI7Ci0gICAgcmV0dXJuIERpc3Bh
dGNoZXI6OnRlbXBsYXRlIGNhc3Q8VG8+KHZtLCBmcm9tKTsKKyAgICBpZiAoTElLRUxZKEpTQ2Fz
dGluZ0hlbHBlcnM6OmluaGVyaXRzPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2N2PHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX3BvaW50ZXI8VG8+Ojp0eXBlPjo6dHlwZT4odm0sIGZyb20pKSkKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFRvPihmcm9tKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgVG8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5o
CmluZGV4IGNhZGNmNzdkYjZkMGU3NjliODUzNTk3YTBlZmJkYTFlY2E5MTc5ZDYuLmRlMGFhYTll
NmEwMmYxMzE2NDg5MjZjZTJjMTdlNGY3NjJhOTQzMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbC5oCkBAIC0xMTYsNiArMTE2LDcgQEAgY2xhc3MgSlNDZWxsIDogcHVibGlj
IEhlYXBDZWxsIHsKICAgICBib29sIGlzQ3VzdG9tR2V0dGVyU2V0dGVyKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc1Byb3h5KCkgY29uc3Q7CiAgICAgYm9vbCBpbmhlcml0cyhWTSYsIGNvbnN0IENsYXNz
SW5mbyopIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFRhcmdldD4gYm9vbCBpbmhlcml0
cyhWTSYpIGNvbnN0OwogICAgIGJvb2wgaXNBUElWYWx1ZVdyYXBwZXIoKSBjb25zdDsKICAgICAK
ICAgICAvLyBFYWNoIGNlbGwgaGFzIGEgYnVpbHQtaW4gbG9jay4gQ3VycmVudGx5IGl0J3Mgc2lt
cGx5IGF2YWlsYWJsZSBmb3IgdXNlIGlmIHlvdSBuZWVkIGl0LiBJdCdzCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKaW5kZXggY2NmZjZiZDVhOThjMjAy
ZmQyYjRhYTBlYjE2NWZlZDY4MTI3MThmOC4uZjZjYjFjZDllYTYwMGI4OGQ4YzBhOTkyMmNlZDhk
NjJiZDgwY2IyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
ZWxsSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElu
bGluZXMuaApAQCAtMjY1LDYgKzI2NSwxMiBAQCBpbmxpbmUgYm9vbCBKU0NlbGw6OmluaGVyaXRz
KFZNJiB2bSwgY29uc3QgQ2xhc3NJbmZvKiBpbmZvKSBjb25zdAogICAgIHJldHVybiBjbGFzc0lu
Zm8odm0pLT5pc1N1YkNsYXNzT2YoaW5mbyk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdl
dD4KK2lubGluZSBib29sIEpTQ2VsbDo6aW5oZXJpdHMoVk0mIHZtKSBjb25zdAoreworICAgIHJl
dHVybiBKU0Nhc3RpbmdIZWxwZXJzOjppbmhlcml0czxUYXJnZXQ+KHZtLCB0aGlzKTsKK30KKwog
QUxXQVlTX0lOTElORSBKU1ZhbHVlIEpTQ2VsbDo6ZmFzdEdldE93blByb3BlcnR5KFZNJiB2bSwg
U3RydWN0dXJlJiBzdHJ1Y3R1cmUsIFByb3BlcnR5TmFtZSBuYW1lKQogewogICAgIEFTU0VSVChj
YW5Vc2VGYXN0R2V0T3duUHJvcGVydHkoc3RydWN0dXJlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IDA0YzhiMjI3OTk2MzAwMTFmN2JmNDAx
NTZjNmNmNDAxMGYwM2Q2M2MuLmJlYTkyMWUyYjMyMWRhYmEyN2VjZDM2NDFkYjA4ODU2MTNjMDFk
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBA
IC0zMTIsNyArMzEyLDcgQEAgY2xhc3MgUmV0cmlldmVDYWxsZXJGdW5jdGlvbkZ1bmN0b3Igewog
CiAgICAgICAgIEpTQ2VsbCogY2FsbGVlID0gdmlzaXRvci0+Y2FsbGVlKCkuYXNDZWxsKCk7CiAK
LSAgICAgICAgaWYgKGNhbGxlZSAmJiBjYWxsZWUtPmluaGVyaXRzKCpjYWxsZWUtPnZtKCksIEpT
Qm91bmRGdW5jdGlvbjo6aW5mbygpKSkKKyAgICAgICAgaWYgKGNhbGxlZSAmJiBjYWxsZWUtPmlu
aGVyaXRzPEpTQm91bmRGdW5jdGlvbj4oKmNhbGxlZS0+dm0oKSkpCiAgICAgICAgICAgICByZXR1
cm4gU3RhY2tWaXNpdG9yOjpDb250aW51ZTsKIAogICAgICAgICBpZiAoIW1faGFzRm91bmRGcmFt
ZSAmJiAoY2FsbGVlICE9IG1fdGFyZ2V0Q2FsbGVlKSkKQEAgLTM1Myw3ICszNTMsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdQogICAgIEpTVmFsdWUgY2FsbGVyID0gcmV0cmlldmVDYWxsZXJG
dW5jdGlvbihleGVjLCB0aGlzT2JqKTsKIAogICAgIC8vIFNlZSBFUzUuMSAxNS4zLjUuNCAtIEZ1
bmN0aW9uLmNhbGxlciBtYXkgbm90IGJlIHVzZWQgdG8gcmV0cmlldmUgYSBzdHJpY3QgY2FsbGVy
LgotICAgIGlmICghY2FsbGVyLmlzT2JqZWN0KCkgfHwgIWFzT2JqZWN0KGNhbGxlciktPmluaGVy
aXRzKHZtLCBKU0Z1bmN0aW9uOjppbmZvKCkpKSB7CisgICAgaWYgKCFjYWxsZXIuaXNPYmplY3Qo
KSB8fCAhYXNPYmplY3QoY2FsbGVyKS0+aW5oZXJpdHM8SlNGdW5jdGlvbj4odm0pKSB7CiAgICAg
ICAgIC8vIEl0IGlzbid0IGEgSlNGdW5jdGlvbiwgYnV0IGlmIGl0IGlzIGEgSlNDYWxsZWUgZnJv
bSBhIHByb2dyYW0gb3IgZXZhbCBjYWxsIG9yIGFuIGludGVybmFsIGNvbnN0cnVjdG9yLCByZXR1
cm4gbnVsbC4KICAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNDYWxsZWUqPih2bSwgY2FsbGVy
KSB8fCBqc0R5bmFtaWNDYXN0PEludGVybmFsRnVuY3Rpb24qPih2bSwgY2FsbGVyKSkKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOwpAQCAtNDUxLDcgKzQ1MSw3
IEBAIHZvaWQgSlNGdW5jdGlvbjo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IGlmICh0aGlzT2JqZWN0LT5pc0J1aWx0aW5GdW5jdGlvbigpICYmICF0aGlzT2JqZWN0LT5oYXNS
ZWlmaWVkTGVuZ3RoKCkpCiAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQodm0ucHJv
cGVydHlOYW1lcy0+bGVuZ3RoKTsKLSAgICAgICAgICAgIGlmICgodGhpc09iamVjdC0+aXNCdWls
dGluRnVuY3Rpb24oKSB8fCB0aGlzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNCb3VuZEZ1bmN0aW9u
OjppbmZvKCkpKSAmJiAhdGhpc09iamVjdC0+aGFzUmVpZmllZE5hbWUoKSkKKyAgICAgICAgICAg
IGlmICgodGhpc09iamVjdC0+aXNCdWlsdGluRnVuY3Rpb24oKSB8fCB0aGlzT2JqZWN0LT5pbmhl
cml0czxKU0JvdW5kRnVuY3Rpb24+KHZtKSkgJiYgIXRoaXNPYmplY3QtPmhhc1JlaWZpZWROYW1l
KCkpCiAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQodm0ucHJvcGVydHlOYW1lcy0+
bmFtZSk7CiAgICAgICAgIH0KICAgICB9CkBAIC03NTIsNyArNzUyLDcgQEAgSlNGdW5jdGlvbjo6
UHJvcGVydHlTdGF0dXMgSlNGdW5jdGlvbjo6cmVpZnlMYXp5Qm91bmROYW1lSWZOZWVkZWQoVk0m
IHZtLCBFeGVjU3QKIAogICAgIGlmIChpc0J1aWx0aW5GdW5jdGlvbigpKQogICAgICAgICByZWlm
eU5hbWUodm0sIGV4ZWMpOwotICAgIGVsc2UgaWYgKHRoaXMtPmluaGVyaXRzKHZtLCBKU0JvdW5k
RnVuY3Rpb246OmluZm8oKSkpIHsKKyAgICBlbHNlIGlmICh0aGlzLT5pbmhlcml0czxKU0JvdW5k
RnVuY3Rpb24+KHZtKSkgewogICAgICAgICBGdW5jdGlvblJhcmVEYXRhKiByYXJlRGF0YSA9IHRo
aXMtPnJhcmVEYXRhKHZtKTsKICAgICAgICAgU3RyaW5nIG5hbWUgPSBtYWtlU3RyaW5nKCJib3Vu
ZCAiLCBzdGF0aWNfY2FzdDxOYXRpdmVFeGVjdXRhYmxlKj4obV9leGVjdXRhYmxlLmdldCgpKS0+
bmFtZSgpKTsKICAgICAgICAgdW5zaWduZWQgaW5pdGlhbEF0dHJpYnV0ZXMgPSBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggNDYx
ZTAwM2RmYTUwNGZmZTUxMmU4NDRkYjg4NjQxMmQ1MmUyMDEwMi4uMDFlMWJjYmUyZGFmZTQwMjYz
M2YzNzlhOGY2MGMzYzc2NWRkNTg5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMzI3LDcgKzMyNyw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVucXVldWVKb2IoRXhlY1N0YXRlKiBleGVjKQogCiAg
ICAgSlNWYWx1ZSBqb2IgPSBleGVjLT5hcmd1bWVudCgwKTsKICAgICBKU1ZhbHVlIGFyZ3VtZW50
cyA9IGV4ZWMtPmFyZ3VtZW50KDEpOwotICAgIEFTU0VSVChhcmd1bWVudHMuaW5oZXJpdHModm0s
IEpTQXJyYXk6OmluZm8oKSkpOworICAgIEFTU0VSVChhcmd1bWVudHMuaW5oZXJpdHM8SlNBcnJh
eT4odm0pKTsKIAogICAgIGdsb2JhbE9iamVjdC0+cXVldWVNaWNyb3Rhc2soY3JlYXRlSlNKb2Io
dm0sIGpvYiwganNDYXN0PEpTQXJyYXkqPihhcmd1bWVudHMpKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IGNlZmU2ZDU1YTcyOWRj
Zjk0MWIyOWVmOWQ2YjBhMjM3MTA0ZGQ5NDkuLjZhYjcwMjMzZjY2YjVlM2VkNTJkMzFhODc2ZDJi
ZWY3YThjYzllMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaApAQCAtOTI1LDE0ICs5MjUsNiBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1
YmxpYyBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IHsKICAgICBSZWZQdHI8VGhyZWFkTG9jYWxD
YWNoZT4gbV90aHJlYWRMb2NhbENhY2hlOwogfTsKIAotSlNHbG9iYWxPYmplY3QqIGFzR2xvYmFs
T2JqZWN0KEpTVmFsdWUpOwotCi1pbmxpbmUgSlNHbG9iYWxPYmplY3QqIGFzR2xvYmFsT2JqZWN0
KEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aXNHbG9iYWxP
YmplY3QoKSk7Ci0gICAgcmV0dXJuIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGFzT2JqZWN0KHZh
bHVlKSk7Ci19Ci0KIGlubGluZSBKU0FycmF5KiBjb25zdHJ1Y3RFbXB0eUFycmF5KEV4ZWNTdGF0
ZSogZXhlYywgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW5pdGlhbExlbmd0aCA9IDAsIEpTVmFsdWUgbmV3VGFy
Z2V0ID0gSlNWYWx1ZSgpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZC5jcHAKaW5kZXggMTc5YmE3NmZlMmRlY2RlNDk4MmY5YmIwNTA5OGI4N2U4
NTgxY2U5OC4uNDQ5Y2M5ZThkMzM0ZWU1ZjljMGRkNGNlYzk4ZGQ3ZjcxOWQzMTNiYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFBy
b21pc2VEZWZlcnJlZC5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgSlNJbnRlcm5hbFByb21pc2VEZWZl
cnJlZCogSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywg
SlMKIAogICAgIEpTVmFsdWUgcHJvbWlzZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHByb21pc2UuaW5oZXJp
dHModm0sIEpTSW50ZXJuYWxQcm9taXNlOjppbmZvKCkpKTsKKyAgICBBU1NFUlQocHJvbWlzZS5p
bmhlcml0czxKU0ludGVybmFsUHJvbWlzZT4odm0pKTsKICAgICBKU1ZhbHVlIHJlc29sdmUgPSBk
ZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVzb2x2
ZVByaXZhdGVOYW1lKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIp
OwogICAgIEpTVmFsdWUgcmVqZWN0ID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLnJlamVjdFByaXZhdGVOYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmgKaW5kZXggZWUw
MTVlMjY5NGI1ZDZmZDA3YTdlOTliNDQyMDg1MjcyMzQ2MThlYy4uZmQzZTRlMGU1ZTIxMmI3NjZh
Y2JmMDE5MGJlZjBjN2JkNDg4ZWVjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oCkBAIC0xNDUsNyArMTQ1LDcgQEAgaW5s
aW5lIEpTTGV4aWNhbEVudmlyb25tZW50OjpKU0xleGljYWxFbnZpcm9ubWVudChWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlLAogCiBpbmxpbmUgSlNMZXhpY2FsRW52aXJvbm1lbnQqIGFzQWN0
aXZhdGlvbihKU1ZhbHVlIHZhbHVlKQogewotICAgIEFTU0VSVChhc09iamVjdCh2YWx1ZSktPmlu
aGVyaXRzKCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSwgSlNMZXhpY2FsRW52aXJvbm1lbnQ6Omlu
Zm8oKSkpOworICAgIEFTU0VSVChhc09iamVjdCh2YWx1ZSktPmluaGVyaXRzPEpTTGV4aWNhbEVu
dmlyb25tZW50PigqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCkpKTsKICAgICByZXR1cm4ganNDYXN0
PEpTTGV4aWNhbEVudmlyb25tZW50Kj4oYXNPYmplY3QodmFsdWUpKTsKIH0KICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKaW5kZXggZWNkYmQwMzdi
MjE4ZmY5MzI2NzgxZWI1MDJkMDBmNWRkMDNkOWRkNS4uYjM4ZDg4YzdhZjI3OTVjN2VmYjZjODZi
YWI2YjI5MWQ5OWQ1ZTFlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
Tk9iamVjdC5jcHAKQEAgLTE0MywxMSArMTQzLDExIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSB1
bndyYXBCb3hlZFByaW1pdGl2ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiAgICAg
aWYgKCF2YWx1ZS5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgSlNPYmpl
Y3QqIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKLSAgICBpZiAob2JqZWN0LT5pbmhlcml0cyh2
bSwgTnVtYmVyT2JqZWN0OjppbmZvKCkpKQorICAgIGlmIChvYmplY3QtPmluaGVyaXRzPE51bWJl
ck9iamVjdD4odm0pKQogICAgICAgICByZXR1cm4ganNOdW1iZXIob2JqZWN0LT50b051bWJlcihl
eGVjKSk7Ci0gICAgaWYgKG9iamVjdC0+aW5oZXJpdHModm0sIFN0cmluZ09iamVjdDo6aW5mbygp
KSkKKyAgICBpZiAob2JqZWN0LT5pbmhlcml0czxTdHJpbmdPYmplY3Q+KHZtKSkKICAgICAgICAg
cmV0dXJuIG9iamVjdC0+dG9TdHJpbmcoZXhlYyk7Ci0gICAgaWYgKG9iamVjdC0+aW5oZXJpdHMo
dm0sIEJvb2xlYW5PYmplY3Q6OmluZm8oKSkpCisgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8Qm9v
bGVhbk9iamVjdD4odm0pKQogICAgICAgICByZXR1cm4gb2JqZWN0LT50b1ByaW1pdGl2ZShleGVj
KTsKIAogICAgIC8vIERvIG5vdCB1bndyYXAgU3ltYm9sT2JqZWN0IHRvIFN5bWJvbC4gSXQgaXMg
bm90IHBlcmZvcm1lZCBpbiB0aGUgc3BlYy4KQEAgLTIzNSw3ICsyMzUsNyBAQCBTdHJpbmdpZmll
cjo6U3RyaW5naWZpZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHJlcGxhY2VyLCBKU1ZhbHVl
IHNwYWNlKQogICAgICAgICByZXR1cm47CiAKICAgICBKU09iamVjdCogcmVwbGFjZXJPYmplY3Qg
PSBhc09iamVjdChtX3JlcGxhY2VyKTsKLSAgICBpZiAocmVwbGFjZXJPYmplY3QtPmluaGVyaXRz
KHZtLCBKU0FycmF5OjppbmZvKCkpKSB7CisgICAgaWYgKHJlcGxhY2VyT2JqZWN0LT5pbmhlcml0
czxKU0FycmF5Pih2bSkpIHsKICAgICAgICAgbV91c2luZ0FycmF5UmVwbGFjZXIgPSB0cnVlOwog
ICAgICAgICBKU0FycmF5KiBhcnJheSA9IGpzQ2FzdDxKU0FycmF5Kj4ocmVwbGFjZXJPYmplY3Qp
OwogICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBhcnJheS0+Z2V0KGV4ZWMsIHZtLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCkudG9VSW50MzIoZXhlYyk7CkBAIC0yNDYsOCArMjQ2LDggQEAgU3RyaW5n
aWZpZXI6OlN0cmluZ2lmaWVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSByZXBsYWNlciwgSlNW
YWx1ZSBzcGFjZSkKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkp
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIGlmIChuYW1lLmlzT2JqZWN0
KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWFzT2JqZWN0KG5hbWUpLT5pbmhlcml0cyh2bSwg
TnVtYmVyT2JqZWN0OjppbmZvKCkpICYmICFhc09iamVjdChuYW1lKS0+aW5oZXJpdHModm0sIFN0
cmluZ09iamVjdDo6aW5mbygpKSkKKyAgICAgICAgICAgIGlmIChhdXRvKiBuYW1lT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU09iamVjdCo+KHZtLCBuYW1lKSkgeworICAgICAgICAgICAgICAgIGlm
ICghbmFtZU9iamVjdC0+aW5oZXJpdHM8TnVtYmVyT2JqZWN0Pih2bSkgJiYgIW5hbWVPYmplY3Qt
PmluaGVyaXRzPFN0cmluZ09iamVjdD4odm0pKQogICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoIW5hbWUuaXNOdW1iZXIoKSAmJiAhbmFtZS5pc1N0
cmluZygpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNjQ5LDcgKzY0OSw3IEBAIE5F
VkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAg
ICAgICAgICBhcnJheVN0YXJ0U3RhdGU6CiAgICAgICAgICAgICBjYXNlIEFycmF5U3RhcnRTdGF0
ZTogewogICAgICAgICAgICAgICAgIEFTU0VSVChpblZhbHVlLmlzT2JqZWN0KCkpOwotICAgICAg
ICAgICAgICAgIEFTU0VSVChpc0pTQXJyYXkoYXNPYmplY3QoaW5WYWx1ZSkpIHx8IGFzT2JqZWN0
KGluVmFsdWUpLT5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSk7CisgICAgICAgICAgICAg
ICAgQVNTRVJUKGFzT2JqZWN0KGluVmFsdWUpLT5pbmhlcml0czxKU0FycmF5Pih2bSkpOwogICAg
ICAgICAgICAgICAgIGlmIChtYXJrZWRTdGFjay5zaXplKCkgPiBtYXhpbXVtRmlsdGVyUmVjdXJz
aW9uKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dTdGFja092ZXJmbG93RXJyb3Io
bV9leGVjLCBzY29wZSk7CiAKQEAgLTcwNCw3ICs3MDQsNyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1
ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAgICAgICAgICAgb2JqZWN0U3Rh
cnRTdGF0ZToKICAgICAgICAgICAgIGNhc2UgT2JqZWN0U3RhcnRTdGF0ZTogewogICAgICAgICAg
ICAgICAgIEFTU0VSVChpblZhbHVlLmlzT2JqZWN0KCkpOwotICAgICAgICAgICAgICAgIEFTU0VS
VCghaXNKU0FycmF5KGFzT2JqZWN0KGluVmFsdWUpKSAmJiAhYXNPYmplY3QoaW5WYWx1ZSktPmlu
aGVyaXRzKHZtLCBKU0FycmF5OjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIWFz
T2JqZWN0KGluVmFsdWUpLT5pbmhlcml0czxKU0FycmF5Pih2bSkpOwogICAgICAgICAgICAgICAg
IGlmIChtYXJrZWRTdGFjay5zaXplKCkgPiBtYXhpbXVtRmlsdGVyUmVjdXJzaW9uKQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdGhyb3dTdGFja092ZXJmbG93RXJyb3IobV9leGVjLCBzY29w
ZSk7CiAKQEAgLTc2NSw3ICs3NjUsNyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6Ondh
bGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0
KGluVmFsdWUpOwotICAgICAgICAgICAgICAgIGlmIChpc0pTQXJyYXkob2JqZWN0KSB8fCBvYmpl
Y3QtPmluaGVyaXRzKHZtLCBKU0FycmF5OjppbmZvKCkpKQorICAgICAgICAgICAgICAgIGlmIChv
YmplY3QtPmluaGVyaXRzPEpTQXJyYXk+KHZtKSkKICAgICAgICAgICAgICAgICAgICAgZ290byBh
cnJheVN0YXJ0U3RhdGU7CiAgICAgICAgICAgICAgICAgZ290byBvYmplY3RTdGFydFN0YXRlOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1By
b21pc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNwcApp
bmRleCBmOTZmZWExODZlNWI1ZDRjNTIyNzcwYmY0Y2RjNzlhOWQ3M2ZlMWY5Li4zZTY4ODdlNTk1
Yzg3NTYxOTdjZDYwZmRkMmNmNDIxZDY5YWM2NTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBKU1Byb21pc2UqIEpT
UHJvbWlzZTo6cmVzb2x2ZShKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQogICAgIEFTU0VSVCghYXJndW1lbnRzLmhhc092ZXJmbG93ZWQoKSk7CiAgICAgYXV0byBy
ZXN1bHQgPSBjYWxsKGV4ZWMsIHByb21pc2VSZXNvbHZlRnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxs
RGF0YSwgZ2xvYmFsT2JqZWN0LnByb21pc2VDb25zdHJ1Y3RvcigpLCBhcmd1bWVudHMpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIEFTU0VSVChyZXN1bHQu
aW5oZXJpdHModm0sIEpTUHJvbWlzZTo6aW5mbygpKSk7CisgICAgQVNTRVJUKHJlc3VsdC5pbmhl
cml0czxKU1Byb21pc2U+KHZtKSk7CiAgICAgcmV0dXJuIGpzQ2FzdDxKU1Byb21pc2UqPihyZXN1
bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1By
b21pc2VEZWZlcnJlZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21p
c2VEZWZlcnJlZC5jcHAKaW5kZXggYmFhOTkyNDhmMGQ4YmVlOGQ3OGY3NWE1NWM3NzZmZjhlOWY3
NWFmZC4uZDdmN2Q3ODlmZTE0M2Y3MDk2MjFlM2M0ZWFiOWMyNThhNzUzNDdkMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlRGVmZXJyZWQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcApA
QCAtNjMsNyArNjMsNyBAQCBKU1Byb21pc2VEZWZlcnJlZCogSlNQcm9taXNlRGVmZXJyZWQ6OmNy
ZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbAogCiAgICAgSlNWYWx1ZSBw
cm9taXNlID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLnByb21pc2VQcml2YXRlTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKLSAgICBBU1NFUlQocHJvbWlzZS5pbmhlcml0cyh2bSwgSlNQcm9taXNlOjpp
bmZvKCkpKTsKKyAgICBBU1NFUlQocHJvbWlzZS5pbmhlcml0czxKU1Byb21pc2U+KHZtKSk7CiAg
ICAgSlNWYWx1ZSByZXNvbHZlID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnJlc29sdmVQcml2YXRlTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICBKU1ZhbHVlIHJlamVjdCA9IGRlZmVycmVkLmdl
dChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWplY3RQcml2YXRlTmFt
ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCmluZGV4
IDJjOTgxNjM1MTliMzYxMDM4YmUxNDIzYTVmYWQ3OTE3YjY2Mjg1OWMuLmViYjFmYTIzY2M0YTcz
OGZjNGFkODRkYzA0MDUwYzMzYTJmNDA2M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJveHlPYmplY3QuaApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotY2xhc3MgUHJveHlPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CitjbGFzcyBQ
cm94eU9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IDBmNTJhYTI0YWIz
ZTRmZmFlZmE1MTUzYzdiZjlmMzJhNjBjODcwZjAuLjUwNjg1NzI4OTE5NWExMjFjOWFkMTY2MTc0
NmI3Yjg0YjQ1MGM2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKQEAgLTI1Nyw3ICsyNTcsNyBAQCBKU09iamVjdCogY29u
c3RydWN0UmVnRXhwKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgQQogICAgIEpTVmFsdWUgcGF0dGVybkFyZyA9IGFyZ3MuYXQoMCk7CiAgICAgSlNW
YWx1ZSBmbGFnc0FyZyA9IGFyZ3MuYXQoMSk7CiAKLSAgICBib29sIGlzUGF0dGVyblJlZ0V4cCA9
IHBhdHRlcm5BcmcuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKTsKKyAgICBib29s
IGlzUGF0dGVyblJlZ0V4cCA9IHBhdHRlcm5BcmcuaW5oZXJpdHM8UmVnRXhwT2JqZWN0Pih2bSk7
CiAgICAgYm9vbCBjb25zdHJ1Y3RBc1JlZ2V4cCA9IGlzUmVnRXhwKHZtLCBleGVjLCBwYXR0ZXJu
QXJnKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKaW5kZXgg
ZGE3NjBlYzA0ZjBhNzgyN2FhNjU3Y2NkYjY3OTI4YzFkNmVlMGE1Yi4uMDE2OGU1ODU5ODBmYWQ3
ZDE5ZGFiNGMyMDVkNzE5YmZiMThiOGY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC04Niw3ICs4Niw3IEBAIEpTT2JqZWN0
KiBjb25zdHJ1Y3RSZWdFeHAoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBBcmdM
aXN0JiwgSlNPYmplY3QqCiAKIGlubGluZSBSZWdFeHBDb25zdHJ1Y3RvciogYXNSZWdFeHBDb25z
dHJ1Y3RvcihKU1ZhbHVlIHZhbHVlKQogewotICAgIEFTU0VSVChhc09iamVjdCh2YWx1ZSktPmlu
aGVyaXRzKCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSwgUmVnRXhwQ29uc3RydWN0b3I6OmluZm8o
KSkpOworICAgIEFTU0VSVChhc09iamVjdCh2YWx1ZSktPmluaGVyaXRzPFJlZ0V4cENvbnN0cnVj
dG9yPigqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCkpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
UmVnRXhwQ29uc3RydWN0b3IqPihhc09iamVjdCh2YWx1ZSkpOwogfQogCkBAIC0xNDAsNyArMTQw
LDcgQEAgQUxXQVlTX0lOTElORSBib29sIGlzUmVnRXhwKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlKQogICAgIGlmICghbWF0Y2hWYWx1ZS5pc1VuZGVmaW5lZCgpKQogICAg
ICAgICByZXR1cm4gbWF0Y2hWYWx1ZS50b0Jvb2xlYW4oZXhlYyk7CiAKLSAgICByZXR1cm4gb2Jq
ZWN0LT5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpOworICAgIHJldHVybiBvYmpl
Y3QtPmluaGVyaXRzPFJlZ0V4cE9iamVjdD4odm0pOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGVzU3BlY1JlZ0V4cENyZWF0ZShFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4IDQyNTI0OWMyMzA0Zjkz
NjhkN2IwYWRjYzlmMjdjMjJlYzVlMDM4ZjIuLjlhNDY2Mjk5NmZjOGFlMWY2ZWI0YWM1NTliYTA5
ZTJkZDUyOWZiYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmNwcApAQCAtNDksNiArNDksNyBAQCB2b2lkIFJlZ0V4cE9iamVjdDo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NF
UlQoaW5oZXJpdHModm0sIGluZm8oKSkpOworICAgIEFTU0VSVCh0eXBlKCkgPT0gUmVnRXhwT2Jq
ZWN0VHlwZSk7CiB9CiAKIHZvaWQgUmVnRXhwT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCog
Y2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCkBAIC02NCw3ICs2NSw3IEBAIGJvb2wgUmVnRXhw
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0CiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBpZiAocHJvcGVy
dHlOYW1lID09IHZtLnByb3BlcnR5TmFtZXMtPmxhc3RJbmRleCkgewotICAgICAgICBSZWdFeHBP
YmplY3QqIHJlZ0V4cCA9IGFzUmVnRXhwT2JqZWN0KG9iamVjdCk7CisgICAgICAgIFJlZ0V4cE9i
amVjdCogcmVnRXhwID0ganNDYXN0PFJlZ0V4cE9iamVjdCo+KG9iamVjdCk7CiAgICAgICAgIHVu
c2lnbmVkIGF0dHJpYnV0ZXMgPSByZWdFeHAtPm1fbGFzdEluZGV4SXNXcml0YWJsZSA/IFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIDog
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHk7CiAgICAgICAgIHNsb3Quc2V0VmFsdWUo
cmVnRXhwLCBhdHRyaWJ1dGVzLCByZWdFeHAtPmdldExhc3RJbmRleCgpKTsKICAgICAgICAgcmV0
dXJuIHRydWU7CkBAIC0xMTAsNyArMTExLDcgQEAgYm9vbCBSZWdFeHBPYmplY3Q6OmRlZmluZU93
blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHkKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAocHJvcGVy
dHlOYW1lID09IHZtLnByb3BlcnR5TmFtZXMtPmxhc3RJbmRleCkgewotICAgICAgICBSZWdFeHBP
YmplY3QqIHJlZ0V4cCA9IGFzUmVnRXhwT2JqZWN0KG9iamVjdCk7CisgICAgICAgIFJlZ0V4cE9i
amVjdCogcmVnRXhwID0ganNDYXN0PFJlZ0V4cE9iamVjdCo+KG9iamVjdCk7CiAgICAgICAgIGlm
IChkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZVByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLmNvbmZpZ3Vy
YWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihleGVjLCBzY29wZSwgc2hvdWxk
VGhyb3csIEFTQ0lJTGl0ZXJhbChVbmNvbmZpZ3VyYWJsZVByb3BlcnR5Q2hhbmdlQ29uZmlndXJh
YmlsaXR5RXJyb3IpKTsKICAgICAgICAgaWYgKGRlc2NyaXB0b3IuZW51bWVyYWJsZVByZXNlbnQo
KSAmJiBkZXNjcmlwdG9yLmVudW1lcmFibGUoKSkKQEAgLTEzOSwxMiArMTQwLDEyIEBAIGJvb2wg
UmVnRXhwT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5CiAKIHN0YXRpYyBib29sIHJlZ0V4cE9iamVjdFNldExhc3RJbmRl
eFN0cmljdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIGFzUmVnRXhwT2JqZWN0KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKS0+c2V0TGFzdEluZGV4KGV4ZWMsIEpTVmFsdWU6OmRlY29kZSh2YWx1
ZSksIHRydWUpOworICAgIHJldHVybiBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpLT5zZXRMYXN0SW5kZXgoZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVl
KSwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyBib29sIHJlZ0V4cE9iamVjdFNldExhc3RJbmRleE5vblN0
cmljdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIGFzUmVnRXhwT2JqZWN0KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKS0+c2V0TGFzdEluZGV4KGV4ZWMsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSks
IGZhbHNlKTsKKyAgICByZXR1cm4ganNDYXN0PFJlZ0V4cE9iamVjdCo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKS0+c2V0TGFzdEluZGV4KGV4ZWMsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSks
IGZhbHNlKTsKIH0KIAogYm9vbCBSZWdFeHBPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KQpAQCAtMTU2LDggKzE1Nyw4IEBAIGJvb2wgUmVnRXhwT2JqZWN0
OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0
eU5hbWUsCiAgICAgICAgIHJldHVybiBvcmRpbmFyeVNldFNsb3coZXhlYywgdGhpc09iamVjdCwg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdC50aGlzVmFsdWUoKSwgc2xvdC5pc1N0cmljdE1vZGUo
KSk7CiAKICAgICBpZiAocHJvcGVydHlOYW1lID09IHZtLnByb3BlcnR5TmFtZXMtPmxhc3RJbmRl
eCkgewotICAgICAgICBib29sIHJlc3VsdCA9IGFzUmVnRXhwT2JqZWN0KGNlbGwpLT5zZXRMYXN0
SW5kZXgoZXhlYywgdmFsdWUsIHNsb3QuaXNTdHJpY3RNb2RlKCkpOwotICAgICAgICBzbG90LnNl
dEN1c3RvbVZhbHVlKGFzUmVnRXhwT2JqZWN0KGNlbGwpLCBzbG90LmlzU3RyaWN0TW9kZSgpCisg
ICAgICAgIGJvb2wgcmVzdWx0ID0gdGhpc09iamVjdC0+c2V0TGFzdEluZGV4KGV4ZWMsIHZhbHVl
LCBzbG90LmlzU3RyaWN0TW9kZSgpKTsKKyAgICAgICAgc2xvdC5zZXRDdXN0b21WYWx1ZSh0aGlz
T2JqZWN0LCBzbG90LmlzU3RyaWN0TW9kZSgpCiAgICAgICAgICAgICA/IHJlZ0V4cE9iamVjdFNl
dExhc3RJbmRleFN0cmljdAogICAgICAgICAgICAgOiByZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhO
b25TdHJpY3QpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAppbmRleCBkYTc5MDkwNWM0ZTVlZjFkNjQxNjVjMGE5
NGNkNjdmODA2ZWMxYzRlLi40ZjdhYjUzZDM3YmU1Njk2NjM5ZjliYWFmOGVhNDYxNjQ3NTMzYzQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApAQCAt
MjcsOSArMjcsOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKICAgICAKLWNsYXNzIFJlZ0V4cE9iamVj
dCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK2NsYXNzIFJlZ0V4cE9iamVjdCBmaW5hbCA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEpTTm9uRmlu
YWxPYmplY3QgQmFzZTsKKyAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFt
ZXM7CiAKICAgICBzdGF0aWMgUmVnRXhwT2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgUmVnRXhwKiByZWdFeHApCkBAIC0xMzgsMTIgKzEzOCw0IEBAIGNsYXNzIFJl
Z0V4cE9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICB1aW50OF90IG1fbGFz
dEluZGV4SXNXcml0YWJsZTsKIH07CiAKLVJlZ0V4cE9iamVjdCogYXNSZWdFeHBPYmplY3QoSlNW
YWx1ZSk7Ci0KLWlubGluZSBSZWdFeHBPYmplY3QqIGFzUmVnRXhwT2JqZWN0KEpTVmFsdWUgdmFs
dWUpCi17Ci0gICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9i
amVjdCgpLT52bSgpLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxSZWdFeHBPYmplY3QqPihhc09iamVjdCh2YWx1ZSkpOwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuY3BwCmluZGV4IDM3NDAyYTAyMzYwOGU1Y2U2YTBjZjZkMjQwZDIzOTMwNDg2M2Q1MmQuLjM3
YTlkZWMxNzcyYWU2NzcwYTBjMDhhZjZjNWQ3YjE5Yjc2M2Q1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcApAQCAtMTAzLDE0ICsx
MDMsMTUgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNUZXN0
RmFzdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAg
ICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKQorICAg
IGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odm0sIHRoaXNWYWx1
ZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBzY29wZSk7CiAgICAgSlNTdHJpbmcqIHN0cmluZyA9IGV4ZWMtPmFyZ3Vt
ZW50KDApLnRvU3RyaW5nT3JOdWxsKGV4ZWMpOwogICAgIEVYQ0VQVElPTl9BU1NFUlQoISFzY29w
ZS5leGNlcHRpb24oKSA9PSAhc3RyaW5nKTsKICAgICBpZiAoIXN0cmluZykKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBzY29wZS5yZWxlYXNlKCk7
Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYXNSZWdFeHBPYmplY3QodGhp
c1ZhbHVlKS0+dGVzdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHN0cmluZykp
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnRlc3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJpbmcpKSk7CiB9CiAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jRXhlYyhFeGVjU3RhdGUqIGV4ZWMp
CkBAIC0xMTksMTkgKzEyMCwyMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4
cFByb3RvRnVuY0V4ZWMoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5m
bygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZt
LCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsICJCdWlsdGluIFJlZ0V4cCBleGVjIGNhbiBv
bmx5IGJlIGNhbGxlZCBvbiBhIFJlZ0V4cCBvYmplY3QiKTsKICAgICBKU1N0cmluZyogc3RyaW5n
ID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmdPck51bGwoZXhlYyk7CiAgICAgRVhDRVBUSU9O
X0FTU0VSVCghIXNjb3BlLmV4Y2VwdGlvbigpID09ICFzdHJpbmcpOwogICAgIGlmICghc3RyaW5n
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIHNj
b3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwT2JqZWN0
KHRoaXNWYWx1ZSktPmV4ZWMoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJp
bmcpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlZ2V4cC0+ZXhlYyhleGVjLCBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHN0cmluZykpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY01hdGNoRmFzdChFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgUmVnRXhwT2JqZWN0KiB0aGlzT2JqZWN0ID0gYXNSZWdFeHBPYmplY3QoZXhlYy0+dGhp
c1ZhbHVlKCkpOworICAgIFJlZ0V4cE9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxSZWdFeHBP
YmplY3QqPihleGVjLT50aGlzVmFsdWUoKSk7CiAgICAgSlNTdHJpbmcqIHN0cmluZyA9IGpzQ2Fz
dDxKU1N0cmluZyo+KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIXRoaXNP
YmplY3QtPnJlZ0V4cCgpLT5nbG9iYWwoKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZSh0aGlzT2JqZWN0LT5leGVjKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgc3Ry
aW5nKSk7CkBAIC0xNDQsMTcgKzE0NiwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHJlZ0V4cFByb3RvRnVuY0NvbXBpbGUoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9i
amVjdDo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzUmVnRXhwID0ganNEeW5hbWljQ2FzdDxSZWdF
eHBPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNSZWdFeHAp
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKICAgICBS
ZWdFeHAqIHJlZ0V4cDsKICAgICBKU1ZhbHVlIGFyZzAgPSBleGVjLT5hcmd1bWVudCgwKTsKICAg
ICBKU1ZhbHVlIGFyZzEgPSBleGVjLT5hcmd1bWVudCgxKTsKICAgICAKLSAgICBpZiAoYXJnMC5p
bmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSB7CisgICAgaWYgKGF1dG8qIHJlZ0V4
cE9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odm0sIGFyZzApKSB7CiAgICAg
ICAgIGlmICghYXJnMS5pc1VuZGVmaW5lZCgpKQogICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IHN1cHBseSBmbGFncyB3
aGVuIGNvbnN0cnVjdGluZyBvbmUgUmVnRXhwIGZyb20gYW5vdGhlci4iKSk7Ci0gICAgICAgIHJl
Z0V4cCA9IGFzUmVnRXhwT2JqZWN0KGFyZzApLT5yZWdFeHAoKTsKKyAgICAgICAgcmVnRXhwID0g
cmVnRXhwT2JqZWN0LT5yZWdFeHAoKTsKICAgICB9IGVsc2UgewogICAgICAgICBTdHJpbmcgcGF0
dGVybiA9IGFyZzAuaXNVbmRlZmluZWQoKSA/IGVtcHR5U3RyaW5nKCkgOiBhcmcwLnRvV1RGU3Ry
aW5nKGV4ZWMpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKQEAgLTE3MiwxMCArMTc1LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgcmVnRXhwUHJvdG9GdW5jQ29tcGlsZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFyZWdF
eHAtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBzY29wZSwg
Y3JlYXRlU3ludGF4RXJyb3IoZXhlYywgcmVnRXhwLT5lcnJvck1lc3NhZ2UoKSkpOwogCi0gICAg
YXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+c2V0UmVnRXhwKHZtLCByZWdFeHApOworICAgIHRo
aXNSZWdFeHAtPnNldFJlZ0V4cCh2bSwgcmVnRXhwKTsKICAgICBzY29wZS5yZWxlYXNlKCk7Ci0g
ICAgYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+c2V0TGFzdEluZGV4KGV4ZWMsIDApOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKTsKKyAgICB0aGlzUmVnRXhwLT5zZXRM
YXN0SW5kZXgoZXhlYywgMCk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzUmVnRXhw
KTsKIH0KIAogdHlwZWRlZiBzdGQ6OmFycmF5PGNoYXIsIDYgKyAxPiBGbGFnc1N0cmluZzsgLy8g
NiBkaWZmZXJlbnQgZmxhZ3MgYW5kIGEgbnVsbCBjaGFyYWN0ZXIgdGVybWluYXRvci4KQEAgLTI1
NSwxMyArMjU4LDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9H
ZXR0ZXJHbG9iYWwoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVl
KCk7Ci0gICAgaWYgKFVOTElLRUxZKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVj
dDo6aW5mbygpKSkpIHsKLSAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhw
UHJvdG90eXBlOjppbmZvKCkpKQorICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVn
RXhwT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKSB7
CisgICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8UmVnRXhwUHJvdG90eXBlPih2bSkpCiAg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJUaGUg
UmVnRXhwLnByb3RvdHlwZS5nbG9iYWwgZ2V0dGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbiBhIFJl
Z0V4cCBvYmplY3QiKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jv
b2xlYW4oYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+cmVnRXhwKCktPmdsb2JhbCgpKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+Z2xv
YmFsKCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dl
dHRlcklnbm9yZUNhc2UoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjcwLDEzICsyNzQsMTQgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlcklnbm9yZUNhc2UoRXhl
Y1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
IAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKFVO
TElLRUxZKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkpIHsK
LSAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwUHJvdG90eXBlOjppbmZv
KCkpKQorICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odm0s
IHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKSB7CisgICAgICAgIGlmICh0
aGlzVmFsdWUuaW5oZXJpdHM8UmVnRXhwUHJvdG90eXBlPih2bSkpCiAgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJUaGUgUmVnRXhwLnByb3RvdHlw
ZS5pZ25vcmVDYXNlIGdldHRlciBjYW4gb25seSBiZSBjYWxsZWQgb24gYSBSZWdFeHAgb2JqZWN0
IikpOwogICAgIH0KIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVn
RXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpLT5pZ25vcmVDYXNlKCkpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT5pZ25vcmVDYXNl
KCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRl
ck11bHRpbGluZShFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yODUsMTMgKzI5MCwxNCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyTXVsdGlsaW5lKEV4ZWNTdGF0
ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmIChVTkxJS0VM
WSghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpKSB7Ci0gICAg
ICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cFByb3RvdHlwZTo6aW5mbygpKSkK
KyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlz
VmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkgeworICAgICAgICBpZiAodGhpc1Zh
bHVlLmluaGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4odm0pKQogICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiVGhlIFJlZ0V4cC5wcm90b3R5cGUubXVs
dGlsaW5lIGdldHRlciBjYW4gb25seSBiZSBjYWxsZWQgb24gYSBSZWdFeHAgb2JqZWN0IikpOwog
ICAgIH0KIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwT2Jq
ZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpLT5tdWx0aWxpbmUoKSkpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPm11bHRpbGluZSgpKSk7CiB9
CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJEb3RBbGwo
RXhlY1N0YXRlKiBleGVjKQpAQCAtMzAwLDEzICszMDYsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlckRvdEFsbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIAogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKFVOTElLRUxZKCF0aGlzVmFs
dWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkpIHsKLSAgICAgICAgaWYgKHRo
aXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwUHJvdG90eXBlOjppbmZvKCkpKQorICAgIGF1dG8q
IHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSk7Cisg
ICAgaWYgKFVOTElLRUxZKCFyZWdleHApKSB7CisgICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJp
dHM8UmVnRXhwUHJvdG90eXBlPih2bSkpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBzY29wZSwgQVNDSUlMaXRlcmFsKCJUaGUgUmVnRXhwLnByb3RvdHlwZS5kb3RBbGwgZ2V0dGVy
IGNhbiBvbmx5IGJlIGNhbGxlZCBvbiBhIFJlZ0V4cCBvYmplY3QiKSk7CiAgICAgfQogICAgIAot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwT2JqZWN0KHRoaXNW
YWx1ZSktPnJlZ0V4cCgpLT5kb3RBbGwoKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPmRvdEFsbCgpKSk7CiB9CiAgICAgCiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyU3RpY2t5KEV4ZWNTdGF0ZSog
ZXhlYykKQEAgLTMxNSwxMyArMzIyLDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
cmVnRXhwUHJvdG9HZXR0ZXJTdGlja3koRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKFVOTElLRUxZKCF0aGlzVmFsdWUuaW5oZXJpdHModm0s
IFJlZ0V4cE9iamVjdDo6aW5mbygpKSkpIHsKLSAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0
cyh2bSwgUmVnRXhwUHJvdG90eXBlOjppbmZvKCkpKQorICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHlu
YW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZ
KCFyZWdleHApKSB7CisgICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8UmVnRXhwUHJvdG90
eXBlPih2bSkpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlM
aXRlcmFsKCJUaGUgUmVnRXhwLnByb3RvdHlwZS5zdGlja3kgZ2V0dGVyIGNhbiBvbmx5IGJlIGNh
bGxlZCBvbiBhIFJlZ0V4cCBvYmplY3QiKSk7CiAgICAgfQogICAgIAotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgp
LT5zdGlja3koKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4
cC0+cmVnRXhwKCktPnN0aWNreSgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgcmVnRXhwUHJvdG9HZXR0ZXJVbmljb2RlKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTMzMCwxMyAr
MzM4LDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJV
bmljb2RlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwot
ICAgIGlmIChVTkxJS0VMWSghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6Omlu
Zm8oKSkpKSB7Ci0gICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cFByb3Rv
dHlwZTo6aW5mbygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9i
amVjdCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkgeworICAg
ICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4odm0pKQogICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiVGhlIFJlZ0V4
cC5wcm90b3R5cGUudW5pY29kZSBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEgUmVnRXhw
IG9iamVjdCIpKTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jv
b2xlYW4oYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+cmVnRXhwKCktPnVuaWNvZGUoKSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPnVu
aWNvZGUoKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
R2V0dGVyRmxhZ3MoRXhlY1N0YXRlKiBleGVjKQpAQCAtNDY2LDEzICs0NzUsMTQgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclNvdXJjZShFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoVU5MSUtFTFko
IXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSkgewotICAgICAg
ICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBQcm90b3R5cGU6OmluZm8oKSkpCisg
ICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgdGhpc1Zh
bHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpIHsKKyAgICAgICAgaWYgKHRoaXNWYWx1
ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5cGU+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCIoPzopIikpKTsKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiVGhl
IFJlZ0V4cC5wcm90b3R5cGUuc291cmNlIGdldHRlciBjYW4gb25seSBiZSBjYWxsZWQgb24gYSBS
ZWdFeHAgb2JqZWN0IikpOwogICAgIH0KIAotICAgIFN0cmluZyBwYXR0ZXJuID0gYXNSZWdFeHBP
YmplY3QodGhpc1ZhbHVlKS0+cmVnRXhwKCktPnBhdHRlcm4oKTsKKyAgICBTdHJpbmcgcGF0dGVy
biA9IHJlZ2V4cC0+cmVnRXhwKCktPnBhdHRlcm4oKTsKICAgICBpZiAocGF0dGVybi5pczhCaXQo
KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWdFeHBQcm90b0dldHRlclNvdXJj
ZUludGVybmFsKGV4ZWMsIHBhdHRlcm4sIHBhdHRlcm4uY2hhcmFjdGVyczgoKSwgcGF0dGVybi5s
ZW5ndGgoKSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVnRXhwUHJvdG9HZXR0ZXJT
b3VyY2VJbnRlcm5hbChleGVjLCBwYXR0ZXJuLCBwYXR0ZXJuLmNoYXJhY3RlcnMxNigpLCBwYXR0
ZXJuLmxlbmd0aCgpKSk7CkBAIC00ODMsNyArNDkzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNTZWFyY2hGYXN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIFJl
Z0V4cCogcmVnRXhwID0gYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+cmVnRXhwKCk7CisgICAg
UmVnRXhwKiByZWdFeHAgPSBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odGhpc1ZhbHVlKS0+cmVnRXhw
KCk7CiAKICAgICBKU1N0cmluZyogc3RyaW5nID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCku
dG9TdHJpbmcoZXhlYyk7CiAgICAgU3RyaW5nIHMgPSBzdHJpbmctPnZhbHVlKGV4ZWMpOwpAQCAt
NTkwLDcgKzYwMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9G
dW5jU3BsaXRGYXN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAvLyAxLiBbaGFuZGxlZCBieSBKUyBi
dWlsdGluXSBMZXQgcnggYmUgdGhlIHRoaXMgdmFsdWUuCiAgICAgLy8gMi4gW2hhbmRsZWQgYnkg
SlMgYnVpbHRpbl0gSWYgVHlwZShyeCkgaXMgbm90IE9iamVjdCwgdGhyb3cgYSBUeXBlRXJyb3Ig
ZXhjZXB0aW9uLgogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0g
ICAgUmVnRXhwKiByZWdleHAgPSBhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKTsK
KyAgICBSZWdFeHAqIHJlZ2V4cCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPih0aGlzVmFsdWUpLT5y
ZWdFeHAoKTsKIAogICAgIC8vIDMuIFtoYW5kbGVkIGJ5IEpTIGJ1aWx0aW5dIExldCBTIGJlID8g
VG9TdHJpbmcoc3RyaW5nKS4KICAgICBKU1N0cmluZyogaW5wdXRTdHJpbmcgPSBleGVjLT5hcmd1
bWVudCgwKS50b1N0cmluZyhleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nT2JqZWN0LmgKaW5kZXggMjRmZmYwMGFkNTc4NDhiMzNkZGI3MGYzOTAxZTlmZTE0YzBm
Nzg4MC4uNTA2YzRjNWI0ZDBhMTJkOTViZDg5ZjZmMmI2MjdkNmY3N2EwODgwYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKQEAgLTcxLDE0ICs3MSw2
IEBAIGNsYXNzIFN0cmluZ09iamVjdCA6IHB1YmxpYyBKU1dyYXBwZXJPYmplY3QgewogICAgIEpT
X0VYUE9SVF9QUklWQVRFIFN0cmluZ09iamVjdChWTSYsIFN0cnVjdHVyZSopOwogfTsKIAotU3Ry
aW5nT2JqZWN0KiBhc1N0cmluZ09iamVjdChKU1ZhbHVlKTsKLQotaW5saW5lIFN0cmluZ09iamVj
dCogYXNTdHJpbmdPYmplY3QoSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBBU1NFUlQoYXNPYmplY3Qo
dmFsdWUpLT5pbmhlcml0cygqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCksIFN0cmluZ09iamVjdDo6
aW5mbygpKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFN0cmluZ09iamVjdCo+KGFzT2JqZWN0
KHZhbHVlKSk7Ci19Ci0KIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZ09iamVjdCogY29uc3RydWN0
U3RyaW5nKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKIAogLy8gSGVscGVyIGZvciBw
cm9kdWNpbmcgYSBKU1N0cmluZyBmb3IgJ3N0cmluZycsIHdoZXJlICdzdHJpbmcnIHdhcyBiZWVu
IHByb2R1Y2VkIGJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcAppbmRleCA2ZTQxZWM3YjM4Mzg3OGNhMTA2YTIzYTIyNjY2NDgxMTc0YTY2
Yzg5Li5hMGQzNjAxN2RmNDY5MTcyYmYxM2U2MTlkOTgyYmEzNmQxODE0ODBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTUz
Myw3ICs1MzMsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1N0cmluZyogcmVwbGFjZVVzaW5n
UmVnRXhwU2VhcmNoKAogICAgIGNvbnN0IFN0cmluZyYgc291cmNlID0gc3RyaW5nLT52YWx1ZShl
eGVjKTsKICAgICB1bnNpZ25lZCBzb3VyY2VMZW4gPSBzb3VyY2UubGVuZ3RoKCk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgUmVnRXhwT2JqZWN0KiByZWdF
eHBPYmplY3QgPSBhc1JlZ0V4cE9iamVjdChzZWFyY2hWYWx1ZSk7CisgICAgUmVnRXhwT2JqZWN0
KiByZWdFeHBPYmplY3QgPSBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4oc2VhcmNoVmFsdWUpOwogICAg
IFJlZ0V4cCogcmVnRXhwID0gcmVnRXhwT2JqZWN0LT5yZWdFeHAoKTsKICAgICBib29sIGdsb2Jh
bCA9IHJlZ0V4cC0+Z2xvYmFsKCk7CiAgICAgYm9vbCBoYXNOYW1lZENhcHR1cmVzID0gcmVnRXhw
LT5oYXNOYW1lZENhcHR1cmVzKCk7CkBAIC05NTQsNyArOTU0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIoRXhlY1N0YXRlKiBl
eGVjKQogQUxXQVlTX0lOTElORSBKU1N0cmluZyogcmVwbGFjZSgKICAgICBWTSYgdm0sIEV4ZWNT
dGF0ZSogZXhlYywgSlNTdHJpbmcqIHN0cmluZywgSlNWYWx1ZSBzZWFyY2hWYWx1ZSwgSlNWYWx1
ZSByZXBsYWNlVmFsdWUpCiB7Ci0gICAgaWYgKHNlYXJjaFZhbHVlLmluaGVyaXRzKHZtLCBSZWdF
eHBPYmplY3Q6OmluZm8oKSkpCisgICAgaWYgKHNlYXJjaFZhbHVlLmluaGVyaXRzPFJlZ0V4cE9i
amVjdD4odm0pKQogICAgICAgICByZXR1cm4gcmVwbGFjZVVzaW5nUmVnRXhwU2VhcmNoKHZtLCBl
eGVjLCBzdHJpbmcsIHNlYXJjaFZhbHVlLCByZXBsYWNlVmFsdWUpOwogICAgIHJldHVybiByZXBs
YWNlVXNpbmdTdHJpbmdTZWFyY2godm0sIGV4ZWMsIHN0cmluZywgc2VhcmNoVmFsdWUsIHJlcGxh
Y2VWYWx1ZSk7CiB9CkBAIC05ODMsNyArOTgzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHAoRXhlY1N0YXRlKiBleGVjKQog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCiAgICAg
SlNWYWx1ZSBzZWFyY2hWYWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDApOwotICAgIGlmICghc2VhcmNo
VmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAoIXNlYXJj
aFZhbHVlLmluaGVyaXRzPFJlZ0V4cE9iamVjdD4odm0pKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCiAgICAgc2NvcGUucmVsZWFzZSgpOwpAQCAtMTAy
NSw4ICsxMDI1LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKHRoaXNWYWx1ZS5pc1N0cmluZygp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSk7CiAKLSAgICBpZiAo
dGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBTdHJpbmdPYmplY3Q6OmluZm8oKSkpCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoYXNTdHJpbmdPYmplY3QodGhpc1ZhbHVlKS0+aW50ZXJuYWxW
YWx1ZSgpKTsKKyAgICBhdXRvKiBzdHJpbmdPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFN0cmluZ09i
amVjdCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChzdHJpbmdPYmplY3QpCisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoc3RyaW5nT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkpOwogCiAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAKaW5kZXggZDE2NjYx
NGQxY2I4NDQ1OTdlYTg4ZWQ1NjRjM2UzOTZjNWExODEyZS4uM2Q3OThjNmRjZTVlYmJhMjU4MTJm
YzQwYTI4MWI3NmI0NTFiZmYyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCkBAIC04NSw3ICs4NSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3ltYm9sUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQog
ICAgICAgICBpZiAoIXRoaXNWYWx1ZS5pc09iamVjdCgpKQogICAgICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIFN5bWJvbFRvU3RyaW5nVHlwZUVycm9yKTsKICAg
ICAgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBhc09iamVjdCh0aGlzVmFsdWUpOwotICAgICAg
ICBpZiAoIXRoaXNPYmplY3QtPmluaGVyaXRzKHZtLCBTeW1ib2xPYmplY3Q6OmluZm8oKSkpCisg
ICAgICAgIGlmICghdGhpc09iamVjdC0+aW5oZXJpdHM8U3ltYm9sT2JqZWN0Pih2bSkpCiAgICAg
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgU3ltYm9sVG9TdHJp
bmdUeXBlRXJyb3IpOwogICAgICAgICBzeW1ib2wgPSBhc1N5bWJvbChqc0Nhc3Q8U3ltYm9sT2Jq
ZWN0Kj4odGhpc09iamVjdCktPmludGVybmFsVmFsdWUoKSk7CiAgICAgfQpAQCAtMTA2LDcgKzEw
Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sUHJvdG9GdW5jVmFsdWVP
ZihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IHNjb3BlLCBTeW1ib2xWYWx1ZU9mVHlwZUVycm9yKTsKIAogICAgIEpTT2JqZWN0KiB0aGlzT2Jq
ZWN0ID0gYXNPYmplY3QodGhpc1ZhbHVlKTsKLSAgICBpZiAoIXRoaXNPYmplY3QtPmluaGVyaXRz
KHZtLCBTeW1ib2xPYmplY3Q6OmluZm8oKSkpCisgICAgaWYgKCF0aGlzT2JqZWN0LT5pbmhlcml0
czxTeW1ib2xPYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yywgc2NvcGUsIFN5bWJvbFZhbHVlT2ZUeXBlRXJyb3IpOwogCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0Nhc3Q8U3ltYm9sT2JqZWN0Kj4odGhpc09iamVjdCktPmludGVybmFsVmFsdWUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggOWUw
OGFmZWUyNWRjODFhMTk0ZTljMDQ1OThhYmVjZmFkN2RjZTAwYS4uNDJhOWI1Zjk1Mjk3NDYxZjBj
YjM3MzRjZWJhZTMzYWQxZTY3NmMyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9K
U0RvbGxhclZNLmNwcApAQCAtOTQ5LDcgKzk0OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBj
dXN0b21HZXRBY2Nlc3NvcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIHNsb3RWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIFJFTEVBU0Vf
QVNTRVJUKEpTVmFsdWU6OmRlY29kZShzbG90VmFsdWUpLmluaGVyaXRzKGV4ZWMtPnZtKCksIEpT
VGVzdEN1c3RvbUdldHRlclNldHRlcjo6aW5mbygpKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoSlNW
YWx1ZTo6ZGVjb2RlKHNsb3RWYWx1ZSkuaW5oZXJpdHM8SlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVy
PihleGVjLT52bSgpKSk7CiAgICAgLy8gUGFzc2VkIHByb3BlcnR5IGhvbGRlci4KICAgICByZXR1
cm4gc2xvdFZhbHVlOwogfQpAQCAtOTcxLDcgKzk3MSw3IEBAIHN0YXRpYyBib29sIGN1c3RvbVNl
dFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdFZhbHVlLCBFbmNvZGVk
SlNWCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKIAotICAgIFJFTEVBU0VfQVNTRVJUKEpT
VmFsdWU6OmRlY29kZShzbG90VmFsdWUpLmluaGVyaXRzKGV4ZWMtPnZtKCksIEpTVGVzdEN1c3Rv
bUdldHRlclNldHRlcjo6aW5mbygpKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVj
b2RlKHNsb3RWYWx1ZSkuaW5oZXJpdHM8SlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyPihleGVjLT52
bSgpKSk7CiAKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1
ZSk7CiAgICAgUkVMRUFTRV9BU1NFUlQodmFsdWUuaXNPYmplY3QoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SGVscGVycy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaAppbmRleCAx
NDQ4N2YwMWM2YjJkZGRlYzVkYzQwZTA1NDg2MTZlNDczZjAyNGE3Li5hZmM1ZTE2NmMxYmNkZDM4
ZGUwZmU2YzM3MjliNjQxMTg0MzU4MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTk0LDEyICs5NCwxMiBAQCBB
TFdBWVNfSU5MSU5FIFZlY3Rvcjx1aW50OF90PiBjcmVhdGVTb3VyY2VCdWZmZXJGcm9tVmFsdWUo
Vk0mIHZtLCBFeGVjU3RhdGUqIGV4ZQogCiBBTFdBWVNfSU5MSU5FIGJvb2wgaXNXZWJBc3NlbWJs
eUhvc3RGdW5jdGlvbihWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QsIFdlYkFzc2VtYmx5RnVuY3Rp
b24qJiB3YXNtRnVuY3Rpb24sIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiYgd2FzbVdyYXBw
ZXJGdW5jdGlvbikKIHsKLSAgICBpZiAob2JqZWN0LT5pbmhlcml0cyh2bSwgV2ViQXNzZW1ibHlG
dW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlmIChvYmplY3QtPmluaGVyaXRzPFdlYkFzc2VtYmx5
RnVuY3Rpb24+KHZtKSkgewogICAgICAgICB3YXNtRnVuY3Rpb24gPSBqc0Nhc3Q8V2ViQXNzZW1i
bHlGdW5jdGlvbio+KG9iamVjdCk7CiAgICAgICAgIHdhc21XcmFwcGVyRnVuY3Rpb24gPSBudWxs
cHRyOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgaWYgKG9iamVjdC0+aW5oZXJp
dHModm0sIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjppbmZvKCkpKSB7CisgICAgaWYgKG9i
amVjdC0+aW5oZXJpdHM8V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24+KHZtKSkgewogICAgICAg
ICB3YXNtV3JhcHBlckZ1bmN0aW9uID0ganNDYXN0PFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9u
Kj4ob2JqZWN0KTsKICAgICAgICAgd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKICAgICAgICAgcmV0
dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHAKaW5kZXggNTJjNWRhMmJkMDk2YzNiY2Vl
MmM4MTRmNjJkMzk1ZmY5YWI5MzcwNC4uN2ExYWEzODI5NjI1MzJkZGRiNGMwNTBlMDhhMjRmYzM2
ZDRkMjE2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcApAQCAtNjAsNyArNjAsNyBAQCBXZWJB
c3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZwogCiBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogV2ViQXNz
ZW1ibHlXcmFwcGVyRnVuY3Rpb246OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBmdW5jdGlvbiwgdW5zaWduZWQgaW1wb3J0SW5kZXgsIEpTV2Vi
QXNzZW1ibHlJbnN0YW5jZSogaW5zdGFuY2UsIFdhc206OlNpZ25hdHVyZUluZGV4IHNpZ25hdHVy
ZUluZGV4KQogewotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWZ1bmN0aW9uLT5pbmhlcml0cyh2
bSwgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmluZm8oKSksICJXZSBzaG91bGQgbmV2ZXIg
ZG91YmxlIHdyYXAgYSB3cmFwcGVyIGZ1bmN0aW9uLiIpOworICAgIEFTU0VSVF9XSVRIX01FU1NB
R0UoIWZ1bmN0aW9uLT5pbmhlcml0czxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj4odm0pLCAi
V2Ugc2hvdWxkIG5ldmVyIGRvdWJsZSB3cmFwIGEgd3JhcHBlciBmdW5jdGlvbi4iKTsKICAgICBT
dHJpbmcgbmFtZSA9ICIiOwogICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSB2bS5n
ZXRIb3N0RnVuY3Rpb24oY2FsbFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLCBOb0ludHJpbnNp
YywgY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IsIG51bGxwdHIsIG5hbWUpOwogICAgIFdl
YkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiByZXN1bHQgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRl
Q2VsbDxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj4odm0uaGVhcCkpIFdlYkFzc2VtYmx5V3Jh
cHBlckZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlX
cmFwcGVyRnVuY3Rpb25TdHJ1Y3R1cmUoKSwgV2FzbTo6Q2FsbGFibGVGdW5jdGlvbiB7IHNpZ25h
dHVyZUluZGV4LCAmaW5zdGFuY2UtPmluc3RhbmNlKCkuaW1wb3J0RnVuY3Rpb25JbmZvKGltcG9y
dEluZGV4KS0+d2FzbVRvRW1iZWRkZXJTdHViRXhlY3V0YWJsZUFkZHJlc3MgfSApOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAppbmRl
eCBkNzhlMjIwYjIwNWQzMGVjYjAzMzMwY2Q2NjA3YzI0MDc2Y2U0Y2EzLi43ZGRhMWZhNjYyZTRk
ODU0NTU2NDYwYzE5ZTYxNWEzYjAyYjlhMmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApAQCAtMTUxLDcgKzE1MSw3IEBAIHN0
YXRpYyBSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJLZXlGcm9tVmFsdWUoRXhlY1N0YXRlJiBleGVj
LCBKU1ZhbHVlIHZhbHVlLCBWZWN0CiAgICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpCiAgICAgICAg
IHJldHVybiBJREJLZXk6OmNyZWF0ZVN0cmluZyhhc1N0cmluZyh2YWx1ZSktPnZhbHVlKCZleGVj
KSk7CiAKLSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkg
eworICAgIGlmICh2YWx1ZS5pbmhlcml0czxEYXRlSW5zdGFuY2U+KHZtKSkgewogICAgICAgICBh
dXRvIGRhdGVWYWx1ZSA9IHZhbHVlVG9EYXRlKGV4ZWMsIHZhbHVlKTsKICAgICAgICAgaWYgKCFz
dGQ6OmlzbmFuKGRhdGVWYWx1ZSkpCiAgICAgICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVE
YXRlKGRhdGVWYWx1ZSk7CkBAIC0xNTksOCArMTU5LDcgQEAgc3RhdGljIFJlZlB0cjxJREJLZXk+
IGNyZWF0ZUlEQktleUZyb21WYWx1ZShFeGVjU3RhdGUmIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIFZl
Y3QKIAogICAgIGlmICh2YWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgIEpTT2JqZWN0KiBvYmpl
Y3QgPSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgICAgIGlmIChpc0pTQXJyYXkob2JqZWN0KSB8fCBv
YmplY3QtPmluaGVyaXRzKHZtLCBKU0FycmF5OjppbmZvKCkpKSB7Ci0gICAgICAgICAgICBKU0Fy
cmF5KiBhcnJheSA9IGFzQXJyYXkob2JqZWN0KTsKKyAgICAgICAgaWYgKGF1dG8qIGFycmF5ID0g
anNEeW5hbWljQ2FzdDxKU0FycmF5Kj4odm0sIG9iamVjdCkpIHsKICAgICAgICAgICAgIHNpemVf
dCBsZW5ndGggPSBhcnJheS0+bGVuZ3RoKCk7CiAKICAgICAgICAgICAgIGlmIChzdGFjay5jb250
YWlucyhhcnJheSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUNvbnZlcnREYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dERhdGUuY3BwCmluZGV4IDgwYjUzZTgyMTdhMjNkMmJlMjM1MTdjNzc3YzQ1MzY3MWMzYmVmNWQu
LmMzMTI1MDkwOGUyNWJhNWQ2MDJlYWIzZTAyOWY2YjY5YjEyZGRiNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwCkBAIC00MCw3ICs0MCw3
IEBAIGRvdWJsZSB2YWx1ZVRvRGF0ZShFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQog
ewogICAgIGlmICh2YWx1ZS5pc051bWJlcigpKQogICAgICAgICByZXR1cm4gdmFsdWUuYXNOdW1i
ZXIoKTsKLSAgICBpZiAoIXZhbHVlLmluaGVyaXRzKHN0YXRlLnZtKCksIERhdGVJbnN0YW5jZTo6
aW5mbygpKSkKKyAgICBpZiAoIXZhbHVlLmluaGVyaXRzPERhdGVJbnN0YW5jZT4oc3RhdGUudm0o
KSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05h
TigpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxEYXRlSW5zdGFuY2UqPih2YWx1ZS50b09iamVj
dCgmc3RhdGUpKS0+aW50ZXJuYWxOdW1iZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCBiY2Y2ODcwMTdkNjRmNjM4M2Vi
YmVmMjgyYzdmNDNkNGYyYWRjZGU0Li43YTM1NDg0MDdiMjQ1MDNmY2Q3NGQzOWEzYzc4OTViMmMw
MDk0NTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2Jh
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxP
YmplY3QuY3BwCkBAIC0xOTUsOSArMTk1LDkgQEAgdm9pZCBKU0RPTUdsb2JhbE9iamVjdDo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU09iamVjdCogdGhpc1ZhbHVlKQogCiBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBKU0RPTUdsb2JhbE9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0CiB7Ci0gICAgaWYgKGluaGVyaXRzKHZtKCksIEpTRE9NV2luZG93QmFzZTo6aW5mbygpKSkK
KyAgICBpZiAoaW5oZXJpdHM8SlNET01XaW5kb3dCYXNlPih2bSgpKSkKICAgICAgICAgcmV0dXJu
IGpzQ2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jhc2UqPih0aGlzKS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOwotICAgIGlmIChpbmhlcml0cyh2bSgpLCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6
aW5mbygpKSkKKyAgICBpZiAoaW5oZXJpdHM8SlNXb3JrZXJHbG9iYWxTY29wZUJhc2U+KHZtKCkp
KQogICAgICAgICByZXR1cm4ganNDYXN0PGNvbnN0IEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKj4o
dGhpcyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBkYXRhTG9nKCJVbmV4cGVjdGVk
IGdsb2JhbCBvYmplY3Q6ICIsIEpTVmFsdWUodGhpcyksICJcbiIpOwogICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggY2Y3ZDkwOTc0ODY3OTQ0NjAzNjBhNTRkMGNkZWQ2YjZl
OGZlNTgyNC4uZTU4OWFkNjRjYzM5NDBmOTIwOGFlNTg4ZDQyMWFkYTA5Y2ZjMWVjOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAt
NDU5LDkgKzQ1OSw5IEBAIERPTVdpbmRvdyogSlNET01XaW5kb3c6OnRvV3JhcHBlZChWTSYgdm0s
IEpTVmFsdWUgdmFsdWUpCiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwotICAg
IGlmIChvYmplY3QtPmluaGVyaXRzKHZtLCBKU0RPTVdpbmRvdzo6aW5mbygpKSkKKyAgICBpZiAo
b2JqZWN0LT5pbmhlcml0czxKU0RPTVdpbmRvdz4odm0pKQogICAgICAgICByZXR1cm4gJmpzQ2Fz
dDxKU0RPTVdpbmRvdyo+KG9iamVjdCktPndyYXBwZWQoKTsKLSAgICBpZiAob2JqZWN0LT5pbmhl
cml0cyh2bSwgSlNET01XaW5kb3dQcm94eTo6aW5mbygpKSkKKyAgICBpZiAob2JqZWN0LT5pbmhl
cml0czxKU0RPTVdpbmRvd1Byb3h5Pih2bSkpCiAgICAgICAgIHJldHVybiAmanNDYXN0PEpTRE9N
V2luZG93UHJveHkqPihvYmplY3QpLT53cmFwcGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20u
Y3BwCmluZGV4IGY0YTAyOTRmZjhlOGU1NzFkNDU1NjUxMTQ5MzllZGEyMTBkYzhmNzQuLjAzYjdh
ZTA3MTg0MWMyNWU3MjIzNGM4NGNlNjAwNTRjNjUxZjdiNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwCkBAIC01Nyw3ICs1Nyw3
IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEV2ZW50VGFyZ2V0JiB0YXJnCiAjdW5kZWYgVFJZX1RPX1dSQVBfV0lUSF9JTlRF
UkZBQ0UKIAogI2RlZmluZSBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKGludGVyZmFjZU5h
bWUpIFwKLSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0sIEpTIyNpbnRlcmZhY2VOYW1lOjppbmZv
KCkpKSAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKHZhbHVlLmluaGVyaXRzPEpTIyNp
bnRlcmZhY2VOYW1lPih2bSkpICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgcmV0dXJu
ICZqc0Nhc3Q8SlMjI2ludGVyZmFjZU5hbWUqPihhc09iamVjdCh2YWx1ZSkpLT53cmFwcGVkKCk7
CiAKIEV2ZW50VGFyZ2V0KiBKU0V2ZW50VGFyZ2V0Ojp0b1dyYXBwZWQoVk0mIHZtLCBKU1ZhbHVl
IHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKaW5k
ZXggOWYzNmU3NDU4Mzk0NjAzNDJiNzNiNDliMDAzYTM4NDQ3MTVjZTQ2MC4uMDlhNzBmMjJlODhj
ZjFjYjk4N2FlN2Q3MTgxY2ZlMjU5NTM1OTQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgYm9vbCBKU05vZGVPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHYKIAogSlNTY29wZSogSlNOb2RlOjpwdXNoRXZlbnRIYW5kbGVyU2NvcGUoRXhlY1N0
YXRlKiBleGVjLCBKU1Njb3BlKiBub2RlKSBjb25zdAogewotICAgIGlmIChpbmhlcml0cyhleGVj
LT52bSgpLCBKU0hUTUxFbGVtZW50OjppbmZvKCkpKQorICAgIGlmIChpbmhlcml0czxKU0hUTUxF
bGVtZW50PihleGVjLT52bSgpKSkKICAgICAgICAgcmV0dXJuIGpzQ2FzdDxjb25zdCBKU0hUTUxF
bGVtZW50Kj4odGhpcyktPnB1c2hFdmVudEhhbmRsZXJTY29wZShleGVjLCBub2RlKTsKICAgICBy
ZXR1cm4gbm9kZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcAppbmRleCAwZGE1MTI4ZmNlNGI2MWY2YTdkNzM0ZTEx
ODJjZTM4MmJmOWY1NWMxLi4xOWU5MmI2Mjc5OTQ1MmNlM2NjNmE2NWJmOTQ5YzI1YTdhMTgwYzY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoTlNSZXNvbHZl
ckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aE5TUmVz
b2x2ZXJDdXN0b20uY3BwCkBAIC0zNSw3ICszNSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
IFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IEpTWFBhdGhOU1Jlc29sdmVyOjp0b1dyYXBwZWQoVk0m
IHZtLCBFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmICh2YWx1ZS5p
bmhlcml0cyh2bSwgSlNYUGF0aE5TUmVzb2x2ZXI6OmluZm8oKSkpCisgICAgaWYgKHZhbHVlLmlu
aGVyaXRzPEpTWFBhdGhOU1Jlc29sdmVyPih2bSkpCiAgICAgICAgIHJldHVybiAmanNDYXN0PEpT
WFBhdGhOU1Jlc29sdmVyKj4oYXNPYmplY3QodmFsdWUpKS0+d3JhcHBlZCgpOwogCiAgICAgYXV0
byByZXN1bHQgPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKHN0YXRlLCB2YWx1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5jcHAKaW5kZXggZTRlNjJh
MWY2YTIwMjM1MjA0NjhkOWI4N2YzMzM5ZWMxMjBlNDVmNS4uOGMyOWM3OGVhYmVkZjZiNzYwYWUx
YmNjMWE2NDNiOWQzYTEwY2Y5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dFN0YXRlLmNwcApAQCAtNTAsNyArNTAsNyBAQCBET01XaW5kb3cqIGRvbVdpbmRvd0Zyb21FeGVj
U3RhdGUoSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlKQogewogICAgIEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IHNjcmlwdFN0YXRlLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7
CiAgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgaWYgKCFnbG9iYWxP
YmplY3QtPmluaGVyaXRzKHZtLCBKU0RPTVdpbmRvd0Jhc2U6OmluZm8oKSkpCisgICAgaWYgKCFn
bG9iYWxPYmplY3QtPmluaGVyaXRzPEpTRE9NV2luZG93QmFzZT4odm0pKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICByZXR1cm4gJkpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGds
b2JhbE9iamVjdCktPndyYXBwZWQoKTsKIH0KQEAgLTY2LDcgKzY2LDcgQEAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoSlNDOjpFeGVj
U3RhdGUqIHNjcmkKIHsKICAgICBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBz
Y3JpcHRTdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogICAgIEpTQzo6Vk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwotICAgIGlmICghZ2xvYmFsT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNE
T01HbG9iYWxPYmplY3Q6OmluZm8oKSkpCisgICAgaWYgKCFnbG9iYWxPYmplY3QtPmluaGVyaXRz
PEpTRE9NR2xvYmFsT2JqZWN0Pih2bSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJl
dHVybiBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGI4NTY5YTNkMTM2ZTMwZjQzYjI5
MzJmYzU1YmNjYjNkNmRiNTQzY2EuLjUzMmM3MTdkYzg3ZTA2ZDdlNTgzMzVhMDNhYThkNWRmZmRj
Y2I2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcApAQCAtNjA0LDcgKzYwNCw3IEBAIGNsYXNzIENsb25lU2VyaWFsaXpl
ciA6IENsb25lQmFzZSB7CiAgICAgICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHZh
bHVlKTsKLSAgICAgICAgcmV0dXJuIGlzSlNBcnJheShvYmplY3QpIHx8IG9iamVjdC0+aW5oZXJp
dHModm0sIEpTQXJyYXk6OmluZm8oKSk7CisgICAgICAgIHJldHVybiBvYmplY3QtPmluaGVyaXRz
PEpTQXJyYXk+KHZtKTsKICAgICB9CiAKICAgICBib29sIGlzTWFwKFZNJiB2bSwgSlNWYWx1ZSB2
YWx1ZSkKQEAgLTYxMiwxNCArNjEyLDE0IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25l
QmFzZSB7CiAgICAgICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKLSAg
ICAgICAgcmV0dXJuIG9iamVjdC0+aW5oZXJpdHModm0sIEpTTWFwOjppbmZvKCkpOworICAgICAg
ICByZXR1cm4gb2JqZWN0LT5pbmhlcml0czxKU01hcD4odm0pOwogICAgIH0KICAgICBib29sIGlz
U2V0KFZNJiB2bSwgSlNWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmICghdmFsdWUuaXNP
YmplY3QoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgSlNPYmplY3QqIG9i
amVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKLSAgICAgICAgcmV0dXJuIG9iamVjdC0+aW5oZXJpdHMo
dm0sIEpTU2V0OjppbmZvKCkpOworICAgICAgICByZXR1cm4gb2JqZWN0LT5pbmhlcml0czxKU1Nl
dD4odm0pOwogICAgIH0KIAogICAgIGJvb2wgY2hlY2tGb3JEdXBsaWNhdGUoSlNPYmplY3QqIG9i
amVjdCkKQEAgLTc1NCwyNSArNzU0LDI1IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25l
QmFzZSB7CiAgICAgewogICAgICAgICBWTSYgdm0gPSBtX2V4ZWMtPnZtKCk7CiAgICAgICAgIHdy
aXRlKEFycmF5QnVmZmVyVmlld1RhZyk7Ci0gICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBK
U0RhdGFWaWV3OjppbmZvKCkpKQorICAgICAgICBpZiAob2JqLT5pbmhlcml0czxKU0RhdGFWaWV3
Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShEYXRhVmlld1RhZyk7Ci0gICAgICAgIGVsc2UgaWYg
KG9iai0+aW5oZXJpdHModm0sIEpTVWludDhDbGFtcGVkQXJyYXk6OmluZm8oKSkpCisgICAgICAg
IGVsc2UgaWYgKG9iai0+aW5oZXJpdHM8SlNVaW50OENsYW1wZWRBcnJheT4odm0pKQogICAgICAg
ICAgICAgd3JpdGUoVWludDhDbGFtcGVkQXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlmIChvYmot
PmluaGVyaXRzKHZtLCBKU0ludDhBcnJheTo6aW5mbygpKSkKKyAgICAgICAgZWxzZSBpZiAob2Jq
LT5pbmhlcml0czxKU0ludDhBcnJheT4odm0pKQogICAgICAgICAgICAgd3JpdGUoSW50OEFycmF5
VGFnKTsKLSAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNVaW50OEFycmF5Ojpp
bmZvKCkpKQorICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzPEpTVWludDhBcnJheT4odm0p
KQogICAgICAgICAgICAgd3JpdGUoVWludDhBcnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKG9i
ai0+aW5oZXJpdHModm0sIEpTSW50MTZBcnJheTo6aW5mbygpKSkKKyAgICAgICAgZWxzZSBpZiAo
b2JqLT5pbmhlcml0czxKU0ludDE2QXJyYXk+KHZtKSkKICAgICAgICAgICAgIHdyaXRlKEludDE2
QXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU1VpbnQxNkFy
cmF5OjppbmZvKCkpKQorICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzPEpTVWludDE2QXJy
YXk+KHZtKSkKICAgICAgICAgICAgIHdyaXRlKFVpbnQxNkFycmF5VGFnKTsKLSAgICAgICAgZWxz
ZSBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNJbnQzMkFycmF5OjppbmZvKCkpKQorICAgICAgICBl
bHNlIGlmIChvYmotPmluaGVyaXRzPEpTSW50MzJBcnJheT4odm0pKQogICAgICAgICAgICAgd3Jp
dGUoSW50MzJBcnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHModm0sIEpT
VWludDMyQXJyYXk6OmluZm8oKSkpCisgICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHM8SlNV
aW50MzJBcnJheT4odm0pKQogICAgICAgICAgICAgd3JpdGUoVWludDMyQXJyYXlUYWcpOwotICAg
ICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0Zsb2F0MzJBcnJheTo6aW5mbygpKSkK
KyAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU0Zsb2F0MzJBcnJheT4odm0pKQogICAg
ICAgICAgICAgd3JpdGUoRmxvYXQzMkFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAob2JqLT5p
bmhlcml0cyh2bSwgSlNGbG9hdDY0QXJyYXk6OmluZm8oKSkpCisgICAgICAgIGVsc2UgaWYgKG9i
ai0+aW5oZXJpdHM8SlNGbG9hdDY0QXJyYXk+KHZtKSkKICAgICAgICAgICAgIHdyaXRlKEZsb2F0
NjRBcnJheVRhZyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTgwMCw3ICs4MDAsNyBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAg
IHZvaWQgZHVtcERPTVBvaW50KEpTT2JqZWN0KiBvYmopCiAgICAgewogICAgICAgICBWTSYgdm0g
PSBtX2V4ZWMtPnZtKCk7Ci0gICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0RPTVBvaW50
OjppbmZvKCkpKQorICAgICAgICBpZiAob2JqLT5pbmhlcml0czxKU0RPTVBvaW50Pih2bSkpCiAg
ICAgICAgICAgICB3cml0ZShET01Qb2ludFRhZyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
IHdyaXRlKERPTVBvaW50UmVhZE9ubHlUYWcpOwpAQCAtODExLDcgKzgxMSw3IEBAIGNsYXNzIENs
b25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgdm9pZCBkdW1wRE9NUmVjdChKU09iamVj
dCogb2JqKQogICAgIHsKICAgICAgICAgVk0mIHZtID0gbV9leGVjLT52bSgpOwotICAgICAgICBp
ZiAob2JqLT5pbmhlcml0cyh2bSwgSlNET01SZWN0OjppbmZvKCkpKQorICAgICAgICBpZiAob2Jq
LT5pbmhlcml0czxKU0RPTVJlY3Q+KHZtKSkKICAgICAgICAgICAgIHdyaXRlKERPTVJlY3RUYWcp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB3cml0ZShET01SZWN0UmVhZE9ubHlUYWcpOwpA
QCAtODI2LDcgKzgyNiw3IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAg
ICAgdm9pZCBkdW1wRE9NTWF0cml4KEpTT2JqZWN0KiBvYmopCiAgICAgewogICAgICAgICBWTSYg
dm0gPSBtX2V4ZWMtPnZtKCk7Ci0gICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0RPTU1h
dHJpeDo6aW5mbygpKSkKKyAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNET01NYXRyaXg+KHZt
KSkKICAgICAgICAgICAgIHdyaXRlKERPTU1hdHJpeFRhZyk7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIHdyaXRlKERPTU1hdHJpeFJlYWRPbmx5VGFnKTsKQEAgLTg5MSwzNiArODkxLDM0IEBA
IGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgICAgIH0KIAogICAgICAg
ICBWTSYgdm0gPSBtX2V4ZWMtPnZtKCk7Ci0gICAgICAgIGlmICh2YWx1ZS5pc09iamVjdCgpICYm
IGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkgewot
ICAgICAgICAgICAgd3JpdGUoRGF0ZVRhZyk7Ci0gICAgICAgICAgICB3cml0ZShhc0RhdGVJbnN0
YW5jZSh2YWx1ZSktPmludGVybmFsTnVtYmVyKCkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAoaXNBcnJheSh2bSwgdmFsdWUpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlmICh2YWx1ZS5pc09iamVjdCgpKSB7CiAgICAg
ICAgICAgICBhdXRvKiBvYmogPSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgICAgICAgICBpZiAob2Jq
LT5pbmhlcml0cyh2bSwgQm9vbGVhbk9iamVjdDo6aW5mbygpKSkgewotICAgICAgICAgICAgICAg
IGlmICghc3RhcnRPYmplY3RJbnRlcm5hbChvYmopKSAvLyBoYW5kbGUgZHVwbGljYXRlcworICAg
ICAgICAgICAgaWYgKGF1dG8qIGRhdGVPYmplY3QgPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5j
ZSo+KHZtLCBvYmopKSB7CisgICAgICAgICAgICAgICAgd3JpdGUoRGF0ZVRhZyk7CisgICAgICAg
ICAgICAgICAgd3JpdGUoZGF0ZU9iamVjdC0+aW50ZXJuYWxOdW1iZXIoKSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXV0byog
Ym9vbGVhbk9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8Qm9vbGVhbk9iamVjdCo+KHZtLCBvYmopKSB7
CisgICAgICAgICAgICAgICAgaWYgKCFzdGFydE9iamVjdEludGVybmFsKGJvb2xlYW5PYmplY3Qp
KSAvLyBoYW5kbGUgZHVwbGljYXRlcwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgICAgICAgICB3cml0ZShhc0Jvb2xlYW5PYmplY3QodmFsdWUpLT5pbnRlcm5hbFZh
bHVlKCkudG9Cb29sZWFuKG1fZXhlYykgPyBUcnVlT2JqZWN0VGFnIDogRmFsc2VPYmplY3RUYWcp
OworICAgICAgICAgICAgICAgIHdyaXRlKGJvb2xlYW5PYmplY3QtPmludGVybmFsVmFsdWUoKS50
b0Jvb2xlYW4obV9leGVjKSA/IFRydWVPYmplY3RUYWcgOiBGYWxzZU9iamVjdFRhZyk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAo
b2JqLT5pbmhlcml0cyh2bSwgU3RyaW5nT2JqZWN0OjppbmZvKCkpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFzdGFydE9iamVjdEludGVybmFsKG9iaikpIC8vIGhhbmRsZSBkdXBsaWNhdGVzCisg
ICAgICAgICAgICBpZiAoYXV0byogc3RyaW5nT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxTdHJpbmdP
YmplY3QqPih2bSwgb2JqKSkgeworICAgICAgICAgICAgICAgIGlmICghc3RhcnRPYmplY3RJbnRl
cm5hbChzdHJpbmdPYmplY3QpKSAvLyBoYW5kbGUgZHVwbGljYXRlcwogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gYXNTdHJpbmco
YXNTdHJpbmdPYmplY3QodmFsdWUpLT5pbnRlcm5hbFZhbHVlKCkpLT52YWx1ZShtX2V4ZWMpOwor
ICAgICAgICAgICAgICAgIFN0cmluZyBzdHIgPSBhc1N0cmluZyhzdHJpbmdPYmplY3QtPmludGVy
bmFsVmFsdWUoKSktPnZhbHVlKG1fZXhlYyk7CiAgICAgICAgICAgICAgICAgZHVtcFN0cmluZ09i
amVjdChzdHIpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIE51bWJlck9iamVjdDo6aW5mbygpKSkg
ewotICAgICAgICAgICAgICAgIGlmICghc3RhcnRPYmplY3RJbnRlcm5hbChvYmopKSAvLyBoYW5k
bGUgZHVwbGljYXRlcworICAgICAgICAgICAgaWYgKGF1dG8qIG51bWJlck9iamVjdCA9IGpzRHlu
YW1pY0Nhc3Q8TnVtYmVyT2JqZWN0Kj4odm0sIG9iaikpIHsKKyAgICAgICAgICAgICAgICBpZiAo
IXN0YXJ0T2JqZWN0SW50ZXJuYWwobnVtYmVyT2JqZWN0KSkgLy8gaGFuZGxlIGR1cGxpY2F0ZXMK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgd3JpdGUo
TnVtYmVyT2JqZWN0VGFnKTsKLSAgICAgICAgICAgICAgICBOdW1iZXJPYmplY3QqIG9iaiA9IHN0
YXRpY19jYXN0PE51bWJlck9iamVjdCo+KGFzT2JqZWN0KHZhbHVlKSk7Ci0gICAgICAgICAgICAg
ICAgd3JpdGUob2JqLT5pbnRlcm5hbFZhbHVlKCkuYXNOdW1iZXIoKSk7CisgICAgICAgICAgICAg
ICAgd3JpdGUobnVtYmVyT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkuYXNOdW1iZXIoKSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAo
YXV0byogZmlsZSA9IEpTRmlsZTo6dG9XcmFwcGVkKHZtLCBvYmopKSB7CkBAIC05NTEsOCArOTQ5
LDcgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgICAgICAg
ICB3cml0ZShkYXRhLT5kYXRhKCktPmRhdGEoKSwgZGF0YS0+ZGF0YSgpLT5sZW5ndGgoKSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAob2JqLT5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSB7Ci0gICAgICAgICAg
ICAgICAgYXV0byogcmVnRXhwID0gYXNSZWdFeHBPYmplY3Qob2JqKTsKKyAgICAgICAgICAgIGlm
IChhdXRvKiByZWdFeHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCBvYmopKSB7
CiAgICAgICAgICAgICAgICAgY2hhciBmbGFnc1szXTsKICAgICAgICAgICAgICAgICBpbnQgZmxh
Z0NvdW50ID0gMDsKICAgICAgICAgICAgICAgICBpZiAocmVnRXhwLT5yZWdFeHAoKS0+Z2xvYmFs
KCkpCkBAIC05NjYsNyArOTYzLDcgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNl
IHsKICAgICAgICAgICAgICAgICB3cml0ZShTdHJpbmcoZmxhZ3MsIGZsYWdDb3VudCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYg
KG9iai0+aW5oZXJpdHModm0sIEpTTWVzc2FnZVBvcnQ6OmluZm8oKSkpIHsKKyAgICAgICAgICAg
IGlmIChvYmotPmluaGVyaXRzPEpTTWVzc2FnZVBvcnQ+KHZtKSkgewogICAgICAgICAgICAgICAg
IGF1dG8gaW5kZXggPSBtX3RyYW5zZmVycmVkTWVzc2FnZVBvcnRzLmZpbmQob2JqKTsKICAgICAg
ICAgICAgICAgICBpZiAoaW5kZXggIT0gbV90cmFuc2ZlcnJlZE1lc3NhZ2VQb3J0cy5lbmQoKSkg
ewogICAgICAgICAgICAgICAgICAgICB3cml0ZShNZXNzYWdlUG9ydFJlZmVyZW5jZVRhZyk7CkBA
IC0xMDA3LDcgKzEwMDQsNyBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2Ugewog
ICAgICAgICAgICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihhcnJheUJ1
ZmZlci0+ZGF0YSgpKSwgYXJyYXlCdWZmZXItPmJ5dGVMZW5ndGgoKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAob2JqLT5pbmhl
cml0cyh2bSwgSlNBcnJheUJ1ZmZlclZpZXc6OmluZm8oKSkpIHsKKyAgICAgICAgICAgIGlmIChv
YmotPmluaGVyaXRzPEpTQXJyYXlCdWZmZXJWaWV3Pih2bSkpIHsKICAgICAgICAgICAgICAgICBp
ZiAoY2hlY2tGb3JEdXBsaWNhdGUob2JqKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICAgICAgYm9vbCBzdWNjZXNzID0gZHVtcEFycmF5QnVmZmVyVmlldyhv
YmosIGNvZGUpOwpAQCAtMTA1MSwxOSArMTA0OCwxOSBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIg
OiBDbG9uZUJhc2UgewogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAg
fQogI2VuZGlmCi0gICAgICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNET01Qb2ludFJl
YWRPbmx5OjppbmZvKCkpKSB7CisgICAgICAgICAgICBpZiAob2JqLT5pbmhlcml0czxKU0RPTVBv
aW50UmVhZE9ubHk+KHZtKSkgewogICAgICAgICAgICAgICAgIGR1bXBET01Qb2ludChvYmopOwog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9NUmVjdFJlYWRPbmx5OjppbmZvKCkpKSB7CisgICAg
ICAgICAgICBpZiAob2JqLT5pbmhlcml0czxKU0RPTVJlY3RSZWFkT25seT4odm0pKSB7CiAgICAg
ICAgICAgICAgICAgZHVtcERPTVJlY3Qob2JqKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0RP
TU1hdHJpeFJlYWRPbmx5OjppbmZvKCkpKSB7CisgICAgICAgICAgICBpZiAob2JqLT5pbmhlcml0
czxKU0RPTU1hdHJpeFJlYWRPbmx5Pih2bSkpIHsKICAgICAgICAgICAgICAgICBkdW1wRE9NTWF0
cml4KG9iaik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNET01RdWFkOjppbmZvKCkpKSB7Cisg
ICAgICAgICAgICBpZiAob2JqLT5pbmhlcml0czxKU0RPTVF1YWQ+KHZtKSkgewogICAgICAgICAg
ICAgICAgIGR1bXBET01RdWFkKG9iaik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgICAgICB9CkBAIC0xNzU1LDcgKzE3NTIsNyBAQCBjbGFzcyBDbG9uZURlc2VyaWFsaXpl
ciA6IENsb25lQmFzZSB7CiAgICAgICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQog
ICAgICAgICA6IENsb25lQmFzZShleGVjKQogICAgICAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2Jh
bE9iamVjdCkKLSAgICAgICAgLCBtX2lzRE9NR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+aW5o
ZXJpdHMoZ2xvYmFsT2JqZWN0LT52bSgpLCBKU0RPTUdsb2JhbE9iamVjdDo6aW5mbygpKSkKKyAg
ICAgICAgLCBtX2lzRE9NR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNET01H
bG9iYWxPYmplY3Q+KGdsb2JhbE9iamVjdC0+dm0oKSkpCiAgICAgICAgICwgbV9wdHIoYnVmZmVy
LmRhdGEoKSkKICAgICAgICAgLCBtX2VuZChidWZmZXIuZGF0YSgpICsgYnVmZmVyLnNpemUoKSkK
ICAgICAgICAgLCBtX3ZlcnNpb24oMHhGRkZGRkZGRikKQEAgLTE3NzcsNyArMTc3NCw3IEBAIGNs
YXNzIENsb25lRGVzZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgKQogICAgICAgICA6
IENsb25lQmFzZShleGVjKQogICAgICAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCkK
LSAgICAgICAgLCBtX2lzRE9NR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+aW5oZXJpdHMoZ2xv
YmFsT2JqZWN0LT52bSgpLCBKU0RPTUdsb2JhbE9iamVjdDo6aW5mbygpKSkKKyAgICAgICAgLCBt
X2lzRE9NR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNET01HbG9iYWxPYmpl
Y3Q+KGdsb2JhbE9iamVjdC0+dm0oKSkpCiAgICAgICAgICwgbV9wdHIoYnVmZmVyLmRhdGEoKSkK
ICAgICAgICAgLCBtX2VuZChidWZmZXIuZGF0YSgpICsgYnVmZmVyLnNpemUoKSkKICAgICAgICAg
LCBtX3ZlcnNpb24oMHhGRkZGRkZGRikKQEAgLTIwNDgsNyArMjA0NSw3IEBAIGNsYXNzIENsb25l
RGVzZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgaWYgKCFyZWFkKGJ5dGVMZW5ndGgp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBKU09iamVjdCogYXJyYXlCdWZm
ZXJPYmogPSBhc09iamVjdChyZWFkVGVybWluYWwoKSk7Ci0gICAgICAgIGlmICghYXJyYXlCdWZm
ZXJPYmogfHwgIWFycmF5QnVmZmVyT2JqLT5pbmhlcml0cyh2bSwgSlNBcnJheUJ1ZmZlcjo6aW5m
bygpKSkKKyAgICAgICAgaWYgKCFhcnJheUJ1ZmZlck9iaiB8fCAhYXJyYXlCdWZmZXJPYmotPmlu
aGVyaXRzPEpTQXJyYXlCdWZmZXI+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgICAgICB1bnNpZ25lZCBlbGVtZW50U2l6ZSA9IHR5cGVkQXJyYXlFbGVtZW50U2l6ZShhcnJh
eUJ1ZmZlclZpZXdTdWJ0YWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBkOWVhZjhjNmI0NDQ3Mjk3ZDYwNTZlNTkwZjc1
OGNkYjk3ZmI2NjY1Li5jNTk3ZDVhMTMzMTI3OGEzMzVhMmMxYTAyNzk1MDYyY2Q0NDEwNzMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQpAQCAtMzQwMCwxNiArMzQwMCwxNiBAQCBzdWIgR2VuZXJhdGVPdmVybG9hZERpc3BhdGNo
ZXIKICAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBl
KCRzdWJ0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNCdWZmZXJTb3VyY2VUeXBlKCRzdWJ0eXBl
KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdWJ0eXBlLT5uYW1lIGVxICJET01X
aW5kb3ciKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMo
IkpTRE9NV2luZG93UHJveHkuaCIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkZ2Vu
ZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0Fy
Zy5pc09iamVjdCgpICYmIChhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZt
LCBKU0RPTVdpbmRvd1Byb3h5OjppbmZvKCkpIHx8IGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHModm0sIEpTRE9NV2luZG93OjppbmZvKCkpKSIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQs
ICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIChhc09iamVjdChkaXN0aW5ndWlzaGlu
Z0FyZyktPmluaGVyaXRzPEpTRE9NV2luZG93UHJveHk+KHZtKSB8fCBhc09iamVjdChkaXN0aW5n
dWlzaGluZ0FyZyktPmluaGVyaXRzPEpTRE9NV2luZG93Pih2bSkpIik7CiAgICAgICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkZ2VuZXJh
dGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5p
c09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpT
IiAuICRzdWJ0eXBlLT5uYW1lIC4gIjo6aW5mbygpKSIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0
aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+
aW5oZXJpdHM8SlMiIC4gJHN1YnR5cGUtPm5hbWUgLiAiPih2bSkiKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgJG92ZXJsb2FkID0gR2V0T3ZlcmxvYWRUaGF0TWF0
Y2hlcygkUywgJGQsIFwmJGlzT2JqZWN0T3JFcnJvck9yRE9NRXhjZXB0aW9uUGFyYW1ldGVyKTsK
LSAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQs
ICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5n
QXJnKS0+aW5oZXJpdHModm0sIEpTRE9NRXhjZXB0aW9uOjppbmZvKCkpIik7CisgICAgICAgICAg
ICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzPEpTRE9NRXhjZXB0aW9uPih2bSkiKTsKIAogICAgICAgICAgICAgJG92ZXJsb2FkID0gR2V0
T3ZlcmxvYWRUaGF0TWF0Y2hlcygkUywgJGQsIFwmJGlzT2JqZWN0T3JFcnJvclBhcmFtZXRlcik7
CiAgICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2Fk
LCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGlu
Z0FyZyktPnR5cGUoKSA9PSBFcnJvckluc3RhbmNlVHlwZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBkYjRm
NGIxZjQ5NzM0OWUyN2JjMDNjODk5MTAyMmI5YWFmYjJmYjdmLi45Y2ViYjc3NTc1NzlmZGY5Zjc3
MDI1YWM3OTIyOWMwZDY1ODI3MmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtNzAyMSwxNyArNzAyMSwxNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kT3ZlcgogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5n
QXJnID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwogICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyQm9keShzdGF0ZSwgY2FzdGVkVGhp
cywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgp
ICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE9iajo6
aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNP
YmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RPYmo+KHZtKSkKICAgICAg
ICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Qy
Qm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5n
dWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5o
ZXJpdHModm0sIEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlOjppbmZvKCkpKQorICAgICAgICBpZiAo
ZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0Fy
ZyktPmluaGVyaXRzPEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlPih2bSkpCiAgICAgICAgICAgICBy
ZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kNUJvZHkoc3Rh
dGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdB
cmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZt
LCBKU0RPTVN0cmluZ0xpc3Q6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0Fy
Zy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNE
T01TdHJpbmdMaXN0Pih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kNkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2Nv
cGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVj
dChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3RPYmo6OmluZm8oKSkpCisg
ICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rp
bmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0T2JqPih2bSkpCiAgICAgICAgICAgICByZXR1
cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kOEJvZHkoc3RhdGUs
IGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcu
aXNPYmplY3QoKSAmJiAoYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwg
SlNET01XaW5kb3dQcm94eTo6aW5mbygpKSB8fCBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZykt
PmluaGVyaXRzKHZtLCBKU0RPTVdpbmRvdzo6aW5mbygpKSkpCisgICAgICAgIGlmIChkaXN0aW5n
dWlzaGluZ0FyZy5pc09iamVjdCgpICYmIChhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmlu
aGVyaXRzPEpTRE9NV2luZG93UHJveHk+KHZtKSB8fCBhc09iamVjdChkaXN0aW5ndWlzaGluZ0Fy
ZyktPmluaGVyaXRzPEpTRE9NV2luZG93Pih2bSkpKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDlCb2R5KHN0YXRlLCBjYXN0ZWRU
aGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0
KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNCbG9iOjpp
bmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09i
amVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTQmxvYj4odm0pKQogICAgICAgICAg
ICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEzQm9k
eShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CiAgICAgICAgIGlmIChoYXNJdGVyYXRv
ck1ldGhvZCgqc3RhdGUsIGRpc3Rpbmd1aXNoaW5nQXJnKSkKICAgICAgICAgICAgIHJldHVybiBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q3Qm9keShzdGF0ZSwgY2Fz
dGVkVGhpcywgdGhyb3dTY29wZSk7CkBAIC03MDQ1LDcgKzcwNDUsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kT3ZlcgogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gc3RhdGUtPnVu
Y2hlY2tlZEFyZ3VtZW50KDEpOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNVbmRl
ZmluZWQoKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2QyQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAg
ICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1
aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTQmxvYjo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcp
LT5pbmhlcml0czxKU0Jsb2I+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxM0JvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRo
cm93U2NvcGUpOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAg
ICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2QyQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CkBAIC03MDk2LDcgKzcwOTYs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aAogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNo
aW5nQXJnID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwogICAgICAgICBpZiAoZGlzdGlu
Z3Vpc2hpbmdBcmcuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0
ZXIyQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0
aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+
aW5oZXJpdHModm0sIEpTVGVzdE9iajo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNo
aW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0
czxKU1Rlc3RPYmo+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIyQm9keShzdGF0ZSwg
Y2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIxQm9keShzdGF0
ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CiAgICAgfQpAQCAtNzEwNCw3ICs3MTA0LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0Fy
ZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNo
aW5nQXJnLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMkJv
ZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzKHZtLCBKU1Rlc3RPYmo6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0Fy
Zy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNU
ZXN0T2JqPih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMkJvZHkoc3RhdGUsIGNhc3Rl
ZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMUJvZHkoc3RhdGUsIGNh
c3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgIH0KQEAgLTcxNDcsOSArNzE0Nyw5IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVf
dD4oMSwgc3RhdGUtPmFyZ3VtZW50Q291bnQoKSk7CiAgICAgaWYgKGFyZ3NDb3VudCA9PSAxKSB7
CiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJn
dW1lbnQoMCk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFz
T2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE9iajo6aW5mbygp
KSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3Qo
ZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RPYmo+KHZtKSkKICAgICAgICAgICAg
IHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlz
dGluZ3Vpc2hpbmdVbmlvbjFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAg
ICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGlu
Z3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0Tm9kZTo6aW5mbygpKSkKKyAgICAgICAg
aWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hp
bmdBcmcpLT5pbmhlcml0czxKU1Rlc3ROb2RlPih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5n
VW5pb24xQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CiAgICAgICAgIGlmIChk
aXN0aW5ndWlzaGluZ0FyZy5pc051bWJlcigpKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9u
MkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwpAQCAtNzE5NCwxMSArNzE5NCwx
MSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aAogICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGQ6
Om1pbjxzaXplX3Q+KDEsIHN0YXRlLT5hcmd1bWVudENvdW50KCkpOwogICAgIGlmIChhcmdzQ291
bnQgPT0gMSkgewogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gc3RhdGUtPnVu
Y2hlY2tlZEFyZ3VtZW50KDApOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmpl
Y3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3RP
Ymo6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYm
IGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0T2JqPih2bSkpCiAg
ICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9uczFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJv
d1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNP
YmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0Tm9kZTo6aW5mbygp
KSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3Qo
ZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3ROb2RlPih2bSkpCiAgICAgICAgICAg
ICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aDJE
aXN0aW5ndWlzaGluZ1VuaW9uczFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsK
LSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlz
dGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0SW50ZXJmYWNlOjppbmZvKCkpKQor
ICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0
aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdEludGVyZmFjZT4odm0pKQogICAgICAgICAg
ICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgy
RGlzdGluZ3Vpc2hpbmdVbmlvbnMyQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7
CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc051bWJlcigpKQogICAgICAgICAgICAg
cmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlz
dGluZ3Vpc2hpbmdVbmlvbnMyQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CkBA
IC03MjQ3LDkgKzcyNDcsOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aAogICAgIHNpemVfdCBh
cmdzQ291bnQgPSBzdGQ6Om1pbjxzaXplX3Q+KDIsIHN0YXRlLT5hcmd1bWVudENvdW50KCkpOwog
ICAgIGlmIChhcmdzQ291bnQgPT0gMikgewogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5n
QXJnID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpOwotICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzKHZtLCBKU1Rlc3RPYmo6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0Fy
Zy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNU
ZXN0T2JqPih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24xQm9keShzdGF0ZSwg
Y2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5p
c09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpT
VGVzdE5vZGU6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVj
dCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0Tm9kZT4o
dm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uMkJvZHkoc3RhdGUsIGNhc3RlZFRo
aXMsIHRocm93U2NvcGUpOwogICAgIH0KICAgICByZXR1cm4gYXJnc0NvdW50IDwgMiA/IHRocm93
Vk1FcnJvcihzdGF0ZSwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
c3RhdGUpKSA6IHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwpAQCAtNzI5Myw5
ICs3MjkzLDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGUKICAgICAgICAgSlNWYWx1ZSBkaXN0
aW5ndWlzaGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICAgICAgaWYg
KGRpc3Rpbmd1aXNoaW5nQXJnLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1
cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uMUJv
ZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzKHZtLCBKU1Rlc3RPYmo6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0Fy
Zy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNU
ZXN0T2JqPih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93
U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09i
amVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3ROb2RlOjppbmZvKCkp
KQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChk
aXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE5vZGU+KHZtKSkKICAgICAgICAgICAg
IHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlVW5p
b24xQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CiAgICAgICAgIGlmIChkaXN0
aW5ndWlzaGluZ0FyZy5pc051bWJlcigpKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbjJCb2R5KHN0YXRlLCBjYXN0
ZWRUaGlzLCB0aHJvd1Njb3BlKTsKQEAgLTczOTQsNyArNzM5NCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0
aE51bGxhYmxlCiAgICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4oMiwgc3Rh
dGUtPmFyZ3VtZW50Q291bnQoKSk7CiAgICAgaWYgKGFyZ3NDb3VudCA9PSAyKSB7CiAgICAgICAg
IEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMSk7
Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRp
c3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE5vZGU6OmluZm8oKSkpCisgICAg
ICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1
aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0Tm9kZT4odm0pKQogICAgICAgICAgICAgcmV0dXJu
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVOb25EaXN0aW5n
dWlzaGluZ1BhcmFtZXRlcjFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAg
ICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCiAgICAgICAgICAgICByZXR1
cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rp
bmd1aXNoaW5nUGFyYW1ldGVyMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwpA
QCAtNzk4NCw3ICs3OTg0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGUKICAgICBzaXplX3Qg
YXJnc0NvdW50ID0gc3RkOjptaW48c2l6ZV90PigxLCBzdGF0ZS0+YXJndW1lbnRDb3VudCgpKTsK
ICAgICBpZiAoYXJnc0NvdW50ID09IDEpIHsKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGlu
Z0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0cyh2bSwgSlNGZXRjaFJlcXVlc3Q6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlz
aGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJp
dHM8SlNGZXRjaFJlcXVlc3Q+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uMkJvZHkoc3RhdGUsIGNh
c3RlZFRoaXMsIFdURk1vdmUocHJvbWlzZSksIHRocm93U2NvcGUpOwogICAgICAgICBpZiAoZGlz
dGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uMUJvZHkoc3RhdGUs
IGNhc3RlZFRoaXMsIFdURk1vdmUocHJvbWlzZSksIHRocm93U2NvcGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCmluZGV4IDYwZmQ1MjI3ZDlhZTI3MmY2
ZDAxM2Y5YmVkOTM2ZDYzNTUzN2ZlYTAuLjE5N2VjZjk3ODdiZDEzYWIzZmEyMDA3ZWRjNGI1NDY5
NjE4ZWM2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5j
cHAKQEAgLTE0OCwxMSArMTQ4LDExIEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6CiAgICAgfQog
ICAgIGlmIChhcmdzQ291bnQgPT0gMSkgewogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5n
QXJnID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzKHZtLCBKU0FycmF5QnVmZmVyOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
PEpTQXJyYXlCdWZmZXI+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzMShzdGF0ZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGlu
Z0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHMo
dm0sIEpTQXJyYXlCdWZmZXJWaWV3OjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
PEpTQXJyYXlCdWZmZXJWaWV3Pih2bSkpCiAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0SlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczIoc3RhdGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzKHZtLCBKU0Jsb2I6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5p
c09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNCbG9i
Pih2bSkpCiAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yczMoc3RhdGUpOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIo
KSkKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzNShzdGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3Rh
bmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCmluZGV4IDcz
MWE2ZTgyYjRkMzNhYWUwODFkZWQ2NjhlNWI0MGUzYjUwYTg5YjAuLjM5OGI3YmUxNjQ0MWJmNGQ5
MGZhY2ExYjVlYmU3Y2FhMzIyNDAyM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9jL2NfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFu
Y2UuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgSlNWYWx1ZSBDSW5zdGFuY2U6Omludm9rZU1ldGhv
ZChFeGVjU3RhdGUqIGV4ZWMsIFJ1bnRpbWVNZXRob2QqIHJ1bnRpbWVNZXRob2QpCiAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAKLSAgICBpZiAoIWFzT2JqZWN0KHJ1bnRpbWVNZXRob2QpLT5pbmhlcml0cyh2bSwgQ1J1
bnRpbWVNZXRob2Q6OmluZm8oKSkpCisgICAgaWYgKCFhc09iamVjdChydW50aW1lTWV0aG9kKS0+
aW5oZXJpdHM8Q1J1bnRpbWVNZXRob2Q+KHZtKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gaW52b2tlIG5vbi1wbHVn
LWluIG1ldGhvZCBvbiBwbHVnLWluIG9iamVjdC4iKSk7CiAKICAgICBDTWV0aG9kKiBtZXRob2Qg
PSBzdGF0aWNfY2FzdDxDTWV0aG9kKj4ocnVudGltZU1ldGhvZC0+bWV0aG9kKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCmluZGV4IGU4MmM1NTcz
Yjk1ZWI3MmNhMTM2NTM3NTA3MGRhODg2OTY4MWVlOTAuLmVhMjQ3M2RhY2U1ODYwNmQ1Mzg5Yzll
NzUwZmFiNzgzOWY5NDc1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L1dlYlNjcmlwdE9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJT
Y3JpcHRPYmplY3QubW0KQEAgLTU3MCwxMSArNTcwLDExIEBAICsgKGlkKV9jb252ZXJ0VmFsdWVU
b09iamNWYWx1ZTooSlNDOjpKU1ZhbHVlKXZhbHVlIG9yaWdpblJvb3RPYmplY3Q6KFJvb3RPYmpl
Y3QqCiAgICAgICAgIEpTQzo6Vk0mIHZtID0gcm9vdE9iamVjdC0+Z2xvYmFsT2JqZWN0KCktPnZt
KCk7CiAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKIAotICAgICAgICBpZiAob2JqZWN0
LT5pbmhlcml0cyh2bSwgSlNIVE1MRWxlbWVudDo6aW5mbygpKSkgeworICAgICAgICBpZiAob2Jq
ZWN0LT5pbmhlcml0czxKU0hUTUxFbGVtZW50Pih2bSkpIHsKICAgICAgICAgICAgIC8vIFBsdWdp
biBlbGVtZW50cyBjYWNoZSB0aGUgaW5zdGFuY2UgaW50ZXJuYWxseS4KICAgICAgICAgICAgIGlm
IChPYmpjSW5zdGFuY2UqIGluc3RhbmNlID0gc3RhdGljX2Nhc3Q8T2JqY0luc3RhbmNlKj4ocGx1
Z2luSW5zdGFuY2UoanNDYXN0PEpTSFRNTEVsZW1lbnQqPihvYmplY3QpLT53cmFwcGVkKCkpKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UtPmdldE9iamVjdCgpOwotICAgICAgICB9
IGVsc2UgaWYgKG9iamVjdC0+aW5oZXJpdHModm0sIE9iakNSdW50aW1lT2JqZWN0OjppbmZvKCkp
KSB7CisgICAgICAgIH0gZWxzZSBpZiAob2JqZWN0LT5pbmhlcml0czxPYmpDUnVudGltZU9iamVj
dD4odm0pKSB7CiAgICAgICAgICAgICBPYmpDUnVudGltZU9iamVjdCogcnVudGltZU9iamVjdCA9
IHN0YXRpY19jYXN0PE9iakNSdW50aW1lT2JqZWN0Kj4ob2JqZWN0KTsKICAgICAgICAgICAgIE9i
amNJbnN0YW5jZSogaW5zdGFuY2UgPSBydW50aW1lT2JqZWN0LT5nZXRJbnRlcm5hbE9iakNJbnN0
YW5jZSgpOwogICAgICAgICAgICAgaWYgKGluc3RhbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfaW5zdGFuY2UubW0KaW5kZXggM2ZiYWUzMzc0ZDI0ZmZkNTY1ZmVlNmVkODc2
MzYzMDU4ZTRmM2Q0OC4uYjdkMjRkNDRhMjRhNmIwNTUyNzc0NWY2MWU5NDczN2RlOWI3OTY4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCkBAIC0yMTIs
NyArMjEyLDcgQEAgSlNDOjpKU1ZhbHVlIE9iamNJbnN0YW5jZTo6aW52b2tlTWV0aG9kKEV4ZWNT
dGF0ZSogZXhlYywgUnVudGltZU1ldGhvZCogcnVudGltZU0KICAgICBKU0M6OlZNJiB2bSA9IGV4
ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0g
ICAgaWYgKCFhc09iamVjdChydW50aW1lTWV0aG9kKS0+aW5oZXJpdHModm0sIE9iakNSdW50aW1l
TWV0aG9kOjppbmZvKCkpKQorICAgIGlmICghYXNPYmplY3QocnVudGltZU1ldGhvZCktPmluaGVy
aXRzPE9iakNSdW50aW1lTWV0aG9kPih2bSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJv
cihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGludm9rZSBub24tcGx1Zy1p
biBtZXRob2Qgb24gcGx1Zy1pbiBvYmplY3QuIikpOwogCiAgICAgT2JqY01ldGhvZCAqbWV0aG9k
ID0gc3RhdGljX2Nhc3Q8T2JqY01ldGhvZCo+KHJ1bnRpbWVNZXRob2QtPm1ldGhvZCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQppbmRleCAwYTg5Yzg1ODc0
NDAyOGJjOTM1MzcyOTM0MjZhOWVhMGM4Y2I5NWI4Li4xNjNjMWRhNjNhOThiM2QxOThlYjBhMTc1
OWExOTAyZGUzN2Y1YWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLm1tCkBAIC0yNDksNyArMjQ5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbE9iakNGYWxsYmFja09iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgT2Jq
Q1J1bnRpbWVPYmplY3Q6OmluZm8oKSkpCisgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHM8T2Jq
Q1J1bnRpbWVPYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yywgc2NvcGUpOwogCiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc1VuZGVmaW5lZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKaW5kZXggYzM1MTgyYmRjYWYxYWQ3ZTM2
MmM5ZjgyZDBjM2FjYzIzYzQxMTQ4Ny4uNjdlZTc1ZDQ0YmMxMWJjZDEwZDJhYzM4NzJkYTBlZWQ5
MWE2M2M0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCkBAIC05
MiwxNCArOTIsMTQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1
bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjKQogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFu
Y2U7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlm
ICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJ1bnRpbWVPYmplY3Q6OmluZm8oKSkpIHsKKyAgICBp
ZiAodGhpc1ZhbHVlLmluaGVyaXRzPFJ1bnRpbWVPYmplY3Q+KHZtKSkgewogICAgICAgICBSdW50
aW1lT2JqZWN0KiBydW50aW1lT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGFz
T2JqZWN0KHRoaXNWYWx1ZSkpOwogICAgICAgICBpbnN0YW5jZSA9IHJ1bnRpbWVPYmplY3QtPmdl
dEludGVybmFsSW5zdGFuY2UoKTsKICAgICAgICAgaWYgKCFpbnN0YW5jZSkgCiAgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFJ1bnRpbWVPYmplY3Q6OnRocm93SW52YWxpZEFjY2Vz
c0Vycm9yKGV4ZWMsIHNjb3BlKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQ2FsbGluZyBh
IHJ1bnRpbWUgb2JqZWN0IG9mIGEgcGx1Z2luIGVsZW1lbnQ/Ci0gICAgICAgIGlmICh0aGlzVmFs
dWUuaW5oZXJpdHModm0sIEpTSFRNTEVsZW1lbnQ6OmluZm8oKSkpCisgICAgICAgIGlmICh0aGlz
VmFsdWUuaW5oZXJpdHM8SlNIVE1MRWxlbWVudD4odm0pKQogICAgICAgICAgICAgaW5zdGFuY2Ug
PSBwbHVnaW5JbnN0YW5jZShqc0Nhc3Q8SlNIVE1MRWxlbWVudCo+KGFzT2JqZWN0KHRoaXNWYWx1
ZSkpLT53cmFwcGVkKCkpOwogICAgICAgICBpZiAoIWluc3RhbmNlKQogICAgICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5jcHAKaW5kZXggMTVmMGE5NDFhZDhlZjUxMTkwZTU0NmQ3YzU1OWVjZTM1
YTg5YTIzNi4uNmE3Mjg0ZmEwYWJlNTcwMTExYWIzOWRjZTQxYzNlNDVmNzUwNGUyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0yMjQsNyArMjI0LDcgQEAg
SlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpkZWZhdWx0VmFsdWUoY29uc3QgSlNPYmplY3QqIG9iamVj
dCwgRXhlY1N0YXRlKiBleGVjLCBQcmUKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEFTU0VSVChl
eGVjLT5qc0NhbGxlZSgpLT5pbmhlcml0cyhleGVjLT52bSgpLCBSdW50aW1lT2JqZWN0OjppbmZv
KCkpKTsKKyAgICBBU1NFUlQoZXhlYy0+anNDYWxsZWUoKS0+aW5oZXJpdHM8UnVudGltZU9iamVj
dD4oZXhlYy0+dm0oKSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2Uoc3RhdGljX2Nh
c3Q8UnVudGltZU9iamVjdCo+KGV4ZWMtPmpzQ2FsbGVlKCkpLT5nZXRJbnRlcm5hbEluc3RhbmNl
KCkpOwogICAgIGluc3RhbmNlLT5iZWdpbigpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gaW5zdGFu
Y2UtPmludm9rZURlZmF1bHRNZXRob2QoZXhlYyk7CkBAIC0yNDksNyArMjQ5LDcgQEAgQ2FsbFR5
cGUgUnVudGltZU9iamVjdDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsLCBDYWxsRGF0YSYgY2Fs
bERhdGEpCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUnVudGltZUNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU09iamVjdCogY29uc3RydWN0b3Ig
PSBleGVjLT5qc0NhbGxlZSgpOwotICAgIEFTU0VSVChjb25zdHJ1Y3Rvci0+aW5oZXJpdHMoZXhl
Yy0+dm0oKSwgUnVudGltZU9iamVjdDo6aW5mbygpKSk7CisgICAgQVNTRVJUKGNvbnN0cnVjdG9y
LT5pbmhlcml0czxSdW50aW1lT2JqZWN0PihleGVjLT52bSgpKSk7CiAgICAgUmVmUHRyPEluc3Rh
bmNlPiBpbnN0YW5jZShzdGF0aWNfY2FzdDxSdW50aW1lT2JqZWN0Kj4oZXhlYy0+anNDYWxsZWUo
KSktPmdldEludGVybmFsSW5zdGFuY2UoKSk7CiAgICAgaW5zdGFuY2UtPmJlZ2luKCk7CiAgICAg
QXJnTGlzdCBhcmdzKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dlYkluamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2Vi
SW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCA1NTUyNzdiY2M0ZWUxOTRmYjMyOTg0MWQ0ZDQ1
ZGI5YzQ3NGViZTlhLi45MDY0YjI0YThiNTZlM2EzYzk1ZGQ5MjQ1OWUwYjNjYWM1YWE2MDhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRIb3N0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRIb3N0
LmNwcApAQCAtNDcsMTMgKzQ3LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiBKU1ZhbHVlIFdl
YkluamVjdGVkU2NyaXB0SG9zdDo6c3VidHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHMo
dm0sIEpTTm9kZTo6aW5mbygpKSkKKyAgICBpZiAodmFsdWUuaW5oZXJpdHM8SlNOb2RlPih2bSkp
CiAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJu
b2RlIikpOwotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgSlNOb2RlTGlzdDo6aW5mbygpKSkK
KyAgICBpZiAodmFsdWUuaW5oZXJpdHM8SlNOb2RlTGlzdD4odm0pKQogICAgICAgICByZXR1cm4g
anNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7Ci0gICAgaWYg
KHZhbHVlLmluaGVyaXRzKHZtLCBKU0hUTUxDb2xsZWN0aW9uOjppbmZvKCkpKQorICAgIGlmICh2
YWx1ZS5pbmhlcml0czxKU0hUTUxDb2xsZWN0aW9uPih2bSkpCiAgICAgICAgIHJldHVybiBqc05v
bnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsKLSAgICBpZiAodmFs
dWUuaW5oZXJpdHModm0sIEpTRE9NRXhjZXB0aW9uOjppbmZvKCkpKQorICAgIGlmICh2YWx1ZS5p
bmhlcml0czxKU0RPTUV4Y2VwdGlvbj4odm0pKQogICAgICAgICByZXR1cm4ganNOb250cml2aWFs
U3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiZXJyb3IiKSk7CiAKICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKQEAgLTE4NSw3ICsxODUsNyBAQCBKU1ZhbHVlIFdlYkluamVjdGVkU2NyaXB0SG9z
dDo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBKUwogCiBi
b29sIFdlYkluamVjdGVkU2NyaXB0SG9zdDo6aXNIVE1MQWxsQ29sbGVjdGlvbihKU0M6OlZNJiB2
bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIHJldHVybiB2YWx1ZS5pbmhlcml0cyh2bSwg
SlNIVE1MQWxsQ29sbGVjdGlvbjo6aW5mbygpKTsKKyAgICByZXR1cm4gdmFsdWUuaW5oZXJpdHM8
SlNIVE1MQWxsQ29sbGVjdGlvbj4odm0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
TWV0aG9kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBNZXRob2QuY3BwCmluZGV4IGU1NjA4OGY3MzIxOGE0YmM3ZjA5MDc4NjllNmRkZWYxZWE3YzAx
MTkuLjhmMGQ0ZGY0Y2VmN2UwYzFjODQyOWQ4YmJmZTdiYmMyNWQ1ZTViY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRo
b2QuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxNZXRob2QoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7CiAKICAgICAvLyBDaGVjayBpZiB3ZSdyZSBjYWxsaW5nIGEgbWV0
aG9kIG9uIHRoZSBwbHVnLWluIHNjcmlwdCBvYmplY3QuCi0gICAgaWYgKHRoaXNWYWx1ZS5pbmhl
cml0cyh2bSwgSlNIVE1MRWxlbWVudDo6aW5mbygpKSkgeworICAgIGlmICh0aGlzVmFsdWUuaW5o
ZXJpdHM8SlNIVE1MRWxlbWVudD4odm0pKSB7CiAgICAgICAgIEpTSFRNTEVsZW1lbnQqIGVsZW1l
bnQgPSBqc0Nhc3Q8SlNIVE1MRWxlbWVudCo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogCiAgICAg
ICAgIC8vIFRyeSB0byBnZXQgdGhlIHNjcmlwdCBvYmplY3QgZnJvbSB0aGUgZWxlbWVudApAQCAt
NzcsNyArNzcsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTWV0
aG9kKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIHRoaXNWYWx1ZSA9IHNjcmlwdE9iamVj
dDsKICAgICB9CiAKLSAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBKU05QT2JqZWN0Ojpp
bmZvKCkpKSB7CisgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxKU05QT2JqZWN0Pih2bSkpIHsK
ICAgICAgICAgSlNOUE9iamVjdCoganNOUE9iamVjdCA9IGpzQ2FzdDxKU05QT2JqZWN0Kj4oYXNP
YmplY3QodGhpc1ZhbHVlKSk7CiAKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05Q
T2JqZWN0LT5jYWxsTWV0aG9kKGV4ZWMsIGpzTlBNZXRob2QtPm5wSWRlbnRpZmllcigpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuY3BwCmluZGV4IDA3YTRlMjIwZDZjMmRiOTJhNThjMWU5ZGM3ZTI0MWE2M2Y2YTNi
ZGEuLjFmYTU5MDE3YWEzMzkzNTVkMzJkNDVjMTUwOWRmNWU4ODU0MmU0ODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmpl
Y3QuY3BwCkBAIC0yNDEsNyArMjQxLDcgQEAgSlNWYWx1ZSBKU05QT2JqZWN0OjpjYWxsQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjKQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbE5QSlNPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTT2JqZWN0KiBvYmpl
Y3QgPSBleGVjLT5qc0NhbGxlZSgpOwotICAgIEFTU0VSVChvYmplY3QtPmluaGVyaXRzKGV4ZWMt
PnZtKCksIEpTTlBPYmplY3Q6OmluZm8oKSkpOworICAgIEFTU0VSVChvYmplY3QtPmluaGVyaXRz
PEpTTlBPYmplY3Q+KGV4ZWMtPnZtKCkpKTsKIAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNDYXN0PEpTTlBPYmplY3QqPihvYmplY3QpLT5jYWxsT2JqZWN0KGV4ZWMpKTsKIH0KQEAgLTI2
MCw3ICsyNjAsNyBAQCBKU0M6OkNhbGxUeXBlIEpTTlBPYmplY3Q6OmdldENhbGxEYXRhKEpTQzo6
SlNDZWxsKiBjZWxsLCBKU0M6OkNhbGxEYXRhJiBjYWxsRGF0YQogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBKU09iamVjdCogY29uc3RydWN0b3IgPSBleGVjLT5qc0NhbGxlZSgpOwotICAg
IEFTU0VSVChjb25zdHJ1Y3Rvci0+aW5oZXJpdHMoZXhlYy0+dm0oKSwgSlNOUE9iamVjdDo6aW5m
bygpKSk7CisgICAgQVNTRVJUKGNvbnN0cnVjdG9yLT5pbmhlcml0czxKU05QT2JqZWN0PihleGVj
LT52bSgpKSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQ2FzdDxKU05QT2JqZWN0
Kj4oY29uc3RydWN0b3IpLT5jYWxsQ29uc3RydWN0b3IoZXhlYykpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNw
cAppbmRleCA4MWNhNzBlZTlkZDJhZTNkNzA5OTM3ZTNkYzJjYzgxZmQ4MWU5YTQwLi5kMTI2N2Q3
N2U1NzU4NjY0MWYzZDBhYTRiOTk5YjNlMjY5YjM2MmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcApAQCAt
NDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIE5QSlNPYmplY3QqIE5QSlNPYmplY3Q6
OmNyZWF0ZShWTSYgdm0sIE5QUnVudGltZU9iamVjdE1hcCogb2JqZWN0TWFwLCBKU09iamVjdCog
anNPYmplY3QpCiB7CiAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYSBKU05QT2JqZWN0IGlu
c2lkZSBhbiBOUEpTT2JqZWN0LgotICAgIEFTU0VSVCghanNPYmplY3QtPmluaGVyaXRzKHZtLCBK
U05QT2JqZWN0OjppbmZvKCkpKTsKKyAgICBBU1NFUlQoIWpzT2JqZWN0LT5pbmhlcml0czxKU05Q
T2JqZWN0Pih2bSkpOwogCiAgICAgTlBKU09iamVjdCogbnBKU09iamVjdCA9IHRvTlBKU09iamVj
dChjcmVhdGVOUE9iamVjdCgwLCBucENsYXNzKCkpKTsKICAgICBucEpTT2JqZWN0LT5pbml0aWFs
aXplKHZtLCBvYmplY3RNYXAsIGpzT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCBhZmQzNDIzOWFiMDM1ZTI5OTNlOWVhZWM0ZmY5
Y2Y3NmZkNWU5YzQ2Li4xMDBmNjc0NmZkOWQ1MWRjMzAxYjNlNzIxZWYzYzhhMzQ2NjBkYmNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC03
MzgsNyArNzM4LDcgQEAgSlNWYWx1ZVJlZiBXZWJGcmFtZTo6anNXcmFwcGVyRm9yV29ybGQoSW5q
ZWN0ZWRCdW5kbGVGaWxlSGFuZGxlKiBmaWxlSGFuZGxlLCBJbmoKIAogU3RyaW5nIFdlYkZyYW1l
Ojpjb3VudGVyVmFsdWUoSlNPYmplY3RSZWYgZWxlbWVudCkKIHsKLSAgICBpZiAoIXRvSlMoZWxl
bWVudCktPmluaGVyaXRzKCp0b0pTKGVsZW1lbnQpLT52bSgpLCBKU0VsZW1lbnQ6OmluZm8oKSkp
CisgICAgaWYgKCF0b0pTKGVsZW1lbnQpLT5pbmhlcml0czxKU0VsZW1lbnQ+KCp0b0pTKGVsZW1l
bnQpLT52bSgpKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgcmV0dXJuIGNvdW50
ZXJWYWx1ZUZvckVsZW1lbnQoJmpzQ2FzdDxKU0VsZW1lbnQqPih0b0pTKGVsZW1lbnQpKS0+d3Jh
cHBlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1tCmluZGV4IDU5ZjEzNjM0MjkxMmVh
MDEwNzExYjI1MjY1ZjIyMjRjMzY1ZGI2OGYuLmU3Y2U2MzFkMGE3ZDhhYThlMjBkODFkOGU0YTc2
ZmM0NDEwYzg1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00u
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbQpAQCAtNTMwLDcgKzUz
MCw3IEBAIEBpbXBsZW1lbnRhdGlvbiBET01Ob2RlIChXZWJQcml2YXRlKQogKyAoaWQpX25vZGVG
cm9tSlNXcmFwcGVyOihKU09iamVjdFJlZilqc1dyYXBwZXIKIHsKICAgICBKU09iamVjdCogb2Jq
ZWN0ID0gdG9KUyhqc1dyYXBwZXIpOwotICAgIGlmICghb2JqZWN0LT5pbmhlcml0cygqb2JqZWN0
LT52bSgpLCBKU05vZGU6OmluZm8oKSkpCisgICAgaWYgKCFvYmplY3QtPmluaGVyaXRzPEpTTm9k
ZT4oKm9iamVjdC0+dm0oKSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgcmV0dXJuIGtpdCgm
anNDYXN0PEpTTm9kZSo+KG9iamVjdCktPndyYXBwZWQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggODUxNTc0Zjg3M2MyNDI3MjYxNmIwMWVkMzU0
NDg1NjhjM2ExNThjMi4uNmYyZDI1OWY1OWQwNDEwYTVlNDc3NDQ2ZjU0OTcwMjM2MzU0MmVkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtMTQ1Myw3ICsx
NDUzLDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmRlbWFyc2hhbFZhbHVl
cyhFeGVjU3RhdGUqIGV4ZWMsIGRhdGFfdCB2YWx1ZXMKIAogdm9pZCBOZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHk6OnJldGFpbkxvY2FsT2JqZWN0KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAg
ICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFsdWUuaW5oZXJpdHMoKnZhbHVlLmdldE9iamVj
dCgpLT52bSgpLCBQcm94eVJ1bnRpbWVPYmplY3Q6OmluZm8oKSkpCisgICAgaWYgKCF2YWx1ZS5p
c09iamVjdCgpIHx8IHZhbHVlLmluaGVyaXRzPFByb3h5UnVudGltZU9iamVjdD4oKnZhbHVlLmdl
dE9iamVjdCgpLT52bSgpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9sb2NhbE9iamVjdHMu
cmV0YWluKGFzT2JqZWN0KHZhbHVlKSk7CkBAIC0xNDYxLDcgKzE0NjEsNyBAQCB2b2lkIE5ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6cmV0YWluTG9jYWxPYmplY3QoSlNDOjpKU1ZhbHVlIHZh
bHVlKQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6cmVsZWFzZUxvY2FsT2Jq
ZWN0KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwg
dmFsdWUuaW5oZXJpdHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBQcm94eVJ1bnRpbWVPYmpl
Y3Q6OmluZm8oKSkpCisgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpIHx8IHZhbHVlLmluaGVyaXRz
PFByb3h5UnVudGltZU9iamVjdD4oKnZhbHVlLmdldE9iamVjdCgpLT52bSgpKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgbV9sb2NhbE9iamVjdHMucmVsZWFzZShhc09iamVjdCh2YWx1ZSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJ
bnN0YW5jZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5
SW5zdGFuY2UubW0KaW5kZXggMjZhYjNlYjBkODVlOWRjMjk0MWQ5MWZjZTE3OThlM2RlMWZhZDA1
Mi4uMzY4N2JjMWJjMmZjNTRiZjk4NTVmMzUyYmJjY2RmMWY5MTE2MDMzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNl
Lm1tCkBAIC0yMjMsNyArMjIzLDcgQEAgSlNWYWx1ZSBQcm94eUluc3RhbmNlOjppbnZva2VNZXRo
b2QoRXhlY1N0YXRlKiBleGVjLCBKU0M6OlJ1bnRpbWVNZXRob2QqIHJ1bnRpbWUKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAotICAgIGlmICghYXNPYmplY3QocnVudGltZU1ldGhvZCktPmluaGVyaXRzKHZtLCBQcm94
eVJ1bnRpbWVNZXRob2Q6OmluZm8oKSkpCisgICAgaWYgKCFhc09iamVjdChydW50aW1lTWV0aG9k
KS0+aW5oZXJpdHM8UHJveHlSdW50aW1lTWV0aG9kPih2bSkpCiAgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGludm9rZSBu
b24tcGx1Zy1pbiBtZXRob2Qgb24gcGx1Zy1pbiBvYmplY3QuIikpOwogCiAgICAgUHJveHlNZXRo
b2QqIG1ldGhvZCA9IHN0YXRpY19jYXN0PFByb3h5TWV0aG9kKj4ocnVudGltZU1ldGhvZC0+bWV0
aG9kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IGVjMjZiMmI5NDU2YzI2Yjc2Y2MxNmZkYjI4NDcwNDlkNmJlNDZmNDguLjQzNWE1OTczMjQyY2Fj
NTljNjg4MWE0NWNiNWVkODI1M2ExNzZiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTc2MzcsNyArNzYzNyw3IEBAIHN0YXRpYyBOU0FwcGxlRXZl
bnREZXNjcmlwdG9yKiBhZURlc2NGcm9tSlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNW
YWx1ZSBqCiAgICAgfQogICAgIGlmIChqc1ZhbHVlLmlzT2JqZWN0KCkpIHsKICAgICAgICAgSlNP
YmplY3QqIG9iamVjdCA9IGpzVmFsdWUuZ2V0T2JqZWN0KCk7Ci0gICAgICAgIGlmIChvYmplY3Qt
PmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpIHsKKyAgICAgICAgaWYgKG9iamVj
dC0+aW5oZXJpdHM8RGF0ZUluc3RhbmNlPih2bSkpIHsKICAgICAgICAgICAgIERhdGVJbnN0YW5j
ZSogZGF0ZSA9IHN0YXRpY19jYXN0PERhdGVJbnN0YW5jZSo+KG9iamVjdCk7CiAgICAgICAgICAg
ICBkb3VibGUgbXMgPSBkYXRlLT5pbnRlcm5hbE51bWJlcigpOwogICAgICAgICAgICAgaWYgKCFz
dGQ6OmlzbmFuKG1zKSkgewpAQCAtNzY0Niw3ICs3NjQ2LDcgQEAgc3RhdGljIE5TQXBwbGVFdmVu
dERlc2NyaXB0b3IqIGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1Zh
bHVlIGoKICAgICAgICAgICAgICAgICBpZiAobm9FcnIgPT0gVUNDb252ZXJ0Q0ZBYnNvbHV0ZVRp
bWVUb0xvbmdEYXRlVGltZSh1dGNTZWNvbmRzLCAmbGR0KSkKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIFtOU0FwcGxlRXZlbnREZXNjcmlwdG9yIGRlc2NyaXB0b3JXaXRoRGVzY3JpcHRvclR5
cGU6dHlwZUxvbmdEYXRlVGltZSBieXRlczombGR0IGxlbmd0aDpzaXplb2YobGR0KV07CiAgICAg
ICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAob2JqZWN0LT5pbmhlcml0cyh2bSwgSlNBcnJh
eTo6aW5mbygpKSkgeworICAgICAgICB9IGVsc2UgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNBcnJh
eT4odm0pKSB7CiAgICAgICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxKU09i
amVjdCo+PiB2aXNpdGVkRWxlbXM7CiAgICAgICAgICAgICBpZiAodmlzaXRlZEVsZW1zLmdldCgp
LmFkZChvYmplY3QpLmlzTmV3RW50cnkpIHsKICAgICAgICAgICAgICAgICBKU0FycmF5KiBhcnJh
eSA9IHN0YXRpY19jYXN0PEpTQXJyYXkqPihvYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
RnJhbWUuY3BwCmluZGV4IDkzN2EyNTdhYTEyMDhiNjY2NThmZTY0MjMxZTQyNzAxNDEyMjkyYTYu
Ljg3ZGM5MGI1YzBmOTcyYWFiN2RmYmU5ZWY0MjZhZTcyZWQ3NDQ1NjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJGcmFtZS5jcHAKQEAgLTIwMDIsNyArMjAwMiw3IEBAIEhSRVNVTFQgV2ViRnJh
bWU6OnN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHRJblNjcmlwdFdvcmxkKElXZWJTY3JpcHRX
b3JsZCogaVdvCiAKICAgICAvLyBUaGUgZ2xvYmFsIG9iamVjdCBpcyBwcm9iYWJseSBhIHByb3h5
IG9iamVjdD8gLSBpZiBzbywgd2Uga25vdyBob3cgdG8gdXNlIHRoaXMhCiAgICAgSlNDOjpKU09i
amVjdCogZ2xvYmFsT2JqZWN0T2JqID0gdG9KUyhnbG9iYWxPYmplY3RSZWYpOwotICAgIGlmIChn
bG9iYWxPYmplY3RPYmotPmluaGVyaXRzKCpnbG9iYWxPYmplY3RPYmotPnZtKCksIEpTRE9NV2lu
ZG93UHJveHk6OmluZm8oKSkpCisgICAgaWYgKGdsb2JhbE9iamVjdE9iai0+aW5oZXJpdHM8SlNE
T01XaW5kb3dQcm94eT4oKmdsb2JhbE9iamVjdE9iai0+dm0oKSkpCiAgICAgICAgIGFueVdvcmxk
R2xvYmFsT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3dQcm94eSo+KGdsb2JhbE9iamVj
dE9iaiktPndpbmRvdygpOwogCiAgICAgLy8gR2V0IHRoZSBmcmFtZSBmcm9tZSB0aGUgZ2xvYmFs
IG9iamVjdCB3ZSd2ZSBzZXR0bGVkIG9uLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335285</attachid>
            <date>2018-03-08 01:48:51 -0800</date>
            <delta_ts>2018-03-08 03:10:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183429-20180308184850.patch</filename>
            <type>text/plain</type>
            <size>164361</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MDNmOTVhNTYwNTc0ZjllNDQ1M2RjZjYyZDgyM2FjZTAyY2UxMjkwLi4zNDViNjIyZjRjMjcxNWUy
OTc1MDg3ODkwNTBlNWRkMWZmMWQ1ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDQgQEAKKzIwMTgtMDMtMDggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIGluaGVyaXRzPFQ+KFZNJikgbGV2ZXJhZ2luZyBK
U0Nhc3QgZmFzdCBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODM0MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbiwgSlNDZWxsOjppbmhlcml0czxUPihWTSYp
IGFuZCBKU1ZhbHVlOjppbmhlcml0czxUPihWTSYpLgorICAgICAgICBUaGV5IGRlcGVuZHMgb24g
anNEeW5hbWljQ2FzdDxUPiBpbXBsZW1lbnRhdGlvbiBhbmQgbGV2ZXJhZ2UgSlNUeXBlLWJhc2Vk
IGZhc3QKKyAgICAgICAgcGF0aHMgZGVmaW5lZCBpbiBKU0Nhc3QuaC4gV2UgZXh0cmFjdCBjaGVj
a2luZyBwYXJ0IGFzIGBKU0Nhc3RpbmdIZWxwZXJzOjppbmhlcml0YAorICAgICAgICBhbmQgY29u
c3RydWN0IGpzRHluYW1pY0Nhc3QgYW5kIEpTQ2VsbDo6aW5oZXJpdHMgYmFzZWQgb24gdGhpcy4K
KworICAgICAgICBBbmQgd2UgcmVtb3ZlIHNldmVyYWwgdW5uZWNlc3NhcnkgY2FzdGluZyBmdW5j
dGlvbnMgKGFzUmVnRXhwT2JqZWN0LCBhc0RhdGVJbnN0YW5jZSBldGMuKS4KKyAgICAgICAgSW4g
YWRkaXRpb24sIHdlIGFkZCBqc0R5bmFtaWNDYXN0IGZhc3QgcGF0aCBmb3IgUmVnRXhwT2JqZWN0
IGJ5IHVzaW5nIGV4aXN0aW5nIFJlZ0V4cE9iamVjdFR5cGUuCisKKyAgICAgICAgKiBBUEkvSlNP
YmplY3RSZWYuY3BwOgorICAgICAgICAoSlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkpOgorICAg
ICAgICAoSlNPYmplY3RTZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAoSlNPYmplY3REZWxl
dGVQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlLm1tOgorICAgICAgICAo
aXNEYXRlKToKKyAgICAgICAgKGlzQXJyYXkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlUmVmLmNw
cDoKKyAgICAgICAgKEpTVmFsdWVJc0FycmF5KToKKyAgICAgICAgKEpTVmFsdWVJc0RhdGUpOgor
ICAgICAgICAoSlNWYWx1ZUlzT2JqZWN0T2ZDbGFzcyk6CisgICAgICAgICogQVBJL0pTV2Vha09i
amVjdE1hcFJlZlByaXZhdGUuY3BwOgorICAgICAgICAqIEFQSS9KU1dyYXBwZXJNYXAubW06Cisg
ICAgICAgICh0cnlVbndyYXBPYmpjT2JqZWN0KToKKyAgICAgICAgKiBBUEkvT2JqQ0NhbGxiYWNr
RnVuY3Rpb24ubW06CisgICAgICAgICh0cnlVbndyYXBDb25zdHJ1Y3Rvcik6CisgICAgICAgICog
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlT3ZlcnJpZGVzSGFzSW5zdGFuY2UpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTmV3UmVnZXhwKToKKyAgICAgICAgKiBm
dGwvRlRMT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6b3BlcmF0aW9uTWF0ZXJp
YWxpemVPYmplY3RJbk9TUik6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRI
b3N0LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5
cGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6ZnVuY3Rpb25E
ZXRhaWxzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5j
cHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckhlYXBBZ2VudDo6Z2V0UHJldmlldyk6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpu
b3RpZnlEZWJ1Z2dlck9mVW53aW5kaW5nKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TaGFkb3dD
aGlja2VuLmNwcDoKKyAgICAgICAgKEpTQzo6U2hhZG93Q2hpY2tlbjo6dXBkYXRlKToKKyAgICAg
ICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5Q
YXNzKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Om9w
ZXJhdGlvbk5ld0Z1bmN0aW9uQ29tbW9uKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAo
Y2hlY2tFeGNlcHRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhbk9iamVjdC5oOgorICAg
ICAgICAoSlNDOjphc0Jvb2xlYW5PYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmJvb2xlYW5Qcm90b0Z1bmNUb1N0
cmluZyk6CisgICAgICAgIChKU0M6OmJvb2xlYW5Qcm90b0Z1bmNWYWx1ZU9mKToKKyAgICAgICAg
KiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdERh
dGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg6CisgICAgICAgIChKU0M6OmFz
RGF0ZUluc3RhbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUu
Y3BwOgorICAgICAgICAoSlNDOjpmb3JtYXRlRGF0ZUluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Rv
TG9jYWxlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvTG9jYWxlRGF0ZVN0
cmluZyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb0xvY2FsZVRpbWVTdHJpbmcpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZSk6CisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNHZXRGdWxsWWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENG
dWxsWWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRNb250aCk6CisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXREYXRlKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0RGF5KToKKyAgICAgICAgKEpTQzo6ZGF0ZVBy
b3RvRnVuY0dldFVUQ0RheSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRIb3Vycyk6
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENIb3Vycyk6CisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRNaW51dGVzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dl
dFVUQ01pbnV0ZXMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk6Cisg
ICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKToKKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1
bmNHZXRVVENNaWxsaXNlY29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGlt
ZXpvbmVPZmZzZXQpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VGltZSk6CisgICAg
ICAgIChKU0M6OnNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKToKKyAgICAgICAgKEpTQzo6c2V0TmV3
VmFsdWVGcm9tRGF0ZUFyZ3MpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0WWVhcik6
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRZZWFyKToKKyAgICAgICAgKiBydW50aW1l
L0V4Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjppc1Rlcm1pbmF0ZWRFeGVjdXRp
b25FeGNlcHRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKToKKyAgICAgICAgKiBydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6YXNJbnRlcm5hbEZ1bmN0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6YXNBcnJheSk6
CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6ZHVtcEZvckJhY2t0cmFjZSBjb25zdCk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVl
Lmg6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlND
OjpKU1ZhbHVlOjppbmhlcml0cyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9KU0Nhc3QuaDoK
KyAgICAgICAgKEpTQzo6SlNDYXN0aW5nSGVscGVyczo6aW5oZXJpdHNHZW5lcmljSW1wbCk6Cisg
ICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OmluaGVyaXRzSlNUeXBlSW1wbCk6CisgICAg
ICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OkluaGVyaXRzVHJhaXRzOjppbmhlcml0cyk6Cisg
ICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OmluaGVyaXRzKToKKyAgICAgICAgKEpTQzo6
anNEeW5hbWljQ2FzdCk6CisgICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OmpzRHluYW1p
Y0Nhc3RHZW5lcmljSW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBl
cnM6OmpzRHluYW1pY0Nhc3RKU1R5cGVJbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlND
YXN0aW5nSGVscGVyczo6SlNEeW5hbWljQ2FzdFRyYWl0czo6Y2FzdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbElubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjppbmhlcml0cyBjb25zdCk6CisgICAgICAgICogcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6UmV0cmlldmVDYWxsZXJGdW5jdGlv
bkZ1bmN0b3I6Om9wZXJhdG9yKCkgY29uc3QpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpj
YWxsZXJHZXR0ZXIpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpnZXRPd25Ob25JbmRleFBy
b3BlcnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpyZWlmeUxhenlCb3VuZE5h
bWVJZk5lZWRlZCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OmVucXVldWVKb2IpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aDoKKyAgICAgICAgKEpTQzo6YXNHbG9iYWxPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1
bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHA6CisgICAgICAgIChKU0M6OkpTSW50
ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU0xleGlj
YWxFbnZpcm9ubWVudC5oOgorICAgICAgICAoSlNDOjphc0FjdGl2YXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OnVud3JhcEJveGVkUHJpbWl0
aXZlKToKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OlN0cmluZ2lmaWVyKToKKyAgICAgICAg
KEpTQzo6V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTUHJvbWlzZTo6cmVzb2x2ZSk6CisgICAgICAgICogcnVudGltZS9KU1By
b21pc2VEZWZlcnJlZC5jcHA6CisgICAgICAgIChKU0M6OkpTUHJvbWlzZURlZmVycmVkOjpjcmVh
dGUpOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UHJv
eHlPYmplY3Q6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6dGFy
Z2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OmhhbmRsZXIg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RSZWdFeHApOgorICAgICAgICAqIHJ1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6YXNSZWdFeHBDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChKU0M6OmlzUmVnRXhwKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAoSlNDOjpSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6
OlJlZ0V4cE9iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAoSlNDOjpyZWdFeHBP
YmplY3RTZXRMYXN0SW5kZXhTdHJpY3QpOgorICAgICAgICAoSlNDOjpyZWdFeHBPYmplY3RTZXRM
YXN0SW5kZXhOb25TdHJpY3QpOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnB1dCk6Cisg
ICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2Jq
ZWN0OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnNldFJl
Z0V4cCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6cmVnRXhwIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpzZXRMYXN0SW5kZXgpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OmdldExhc3RJbmRleCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6dGVzdCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6dGVzdElubGluZSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OlJlZ0V4cE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6UmVnRXhwT2JqZWN0OjpvZmZzZXRPZlJlZ0V4cCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OlJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZMYXN0SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpSZWdFeHBPYmplY3Q6Om9mZnNldE9mTGFzdEluZGV4SXNXcml0YWJsZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6YWxsb2NhdGlvblNpemUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjphc1JlZ0V4cE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9SZWdFeHBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNUZXN0
RmFzdCk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY0V4ZWMpOgorICAgICAgICAoSlND
OjpyZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1
bmNDb21waWxlKToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwpOgorICAg
ICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlcklnbm9yZUNhc2UpOgorICAgICAgICAoSlNDOjpy
ZWdFeHBQcm90b0dldHRlck11bHRpbGluZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0
dGVyRG90QWxsKToKKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJTdGlja3kpOgorICAg
ICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlclVuaWNvZGUpOgorICAgICAgICAoSlNDOjpyZWdF
eHBQcm90b0dldHRlclNvdXJjZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY1NlYXJj
aEZhc3QpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OmFzU3RyaW5nT2JqZWN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6OnJlcGxhY2VVc2luZ1JlZ0V4cFNlYXJjaCk6CisgICAgICAgIChKU0M6OnJlcGxh
Y2UpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHApOgor
ICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICogcnVudGlt
ZS9TeW1ib2xQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpzeW1ib2xQcm90b0Z1bmNUb1N0
cmluZyk6CisgICAgICAgIChKU0M6OnN5bWJvbFByb3RvRnVuY1ZhbHVlT2YpOgorICAgICAgICAq
IHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAoV1RGOjpjdXN0b21HZXRWYWx1ZSk6Cisg
ICAgICAgIChXVEY6OmN1c3RvbVNldFZhbHVlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNz
ZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OmlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24p
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6Y3JlYXRlKToKKwogMjAxOC0w
My0wNyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBT
b3J0IGFuZCBzZXBhcmF0ZSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU2
MWYxODkwNzRhZThkNTQ4NzVjZDQ2ZTQwMjBmNTgwOTM2MDg2M2UuLjQzYzE4NzI4ODcyZDlmMjYw
OWE2ZGExZDJhODY4MzU4NWI5YTVmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAx
OC0wMy0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAg
ICBbSlNDXSBBZGQgaW5oZXJpdHM8VD4oVk0mKSBsZXZlcmFnaW5nIEpTQ2FzdCBmYXN0IHBhdGgK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQyOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJ
REJLZXlGcm9tVmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVUb0RhdGUpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFs
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRv
dzo6dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9t
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNOb2RlOjpwdXNoRXZlbnRIYW5kbGVyU2NvcGUgY29uc3QpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTWFBhdGhOU1Jlc29sdmVyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTWFBhdGhOU1Jlc29sdmVyOjp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1NjcmlwdFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRvbVdpbmRvd0Zyb21FeGVjU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3Rh
dGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmlzQXJyYXkpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xvbmVTZXJpYWxpemVyOjppc01hcCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNl
cmlhbGl6ZXI6OmlzU2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVt
cEFycmF5QnVmZmVyVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1
bXBET01Qb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBET01S
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcERPTU1hdHJpeCk6
CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpDbG9uZURlc2VyaWFsaXplcik6Cisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6cmVhZEFycmF5QnVmZmVyVmlldyk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAg
IChHZW5lcmF0ZU92ZXJsb2FkRGlzcGF0Y2hlcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RPdmVybG9hZERpc3BhdGNoZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0
aE9wdGlvbmFsUGFyYW1ldGVyT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlz
aGluZ1VuaW9uT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlv
bnNPdmVybG9hZERpc3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb25PdmVy
bG9hZERpc3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFi
bGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlck92ZXJsb2FkRGlzcGF0Y2hlcik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRl
ZEZ1bmN0aW9uT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6
CisgICAgICAgICogYnJpZGdlL2MvY19pbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRp
bmdzOjpDSW5zdGFuY2U6Omludm9rZU1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL29iamMvV2Vi
U2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAoK1tXZWJTY3JpcHRPYmplY3QgX2NvbnZlcnRWYWx1
ZVRvT2JqY1ZhbHVlOm9yaWdpblJvb3RPYmplY3Q6cm9vdE9iamVjdDpdKToKKyAgICAgICAgKiBi
cmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tOgorICAgICAgICAoT2JqY0luc3RhbmNlOjppbnZv
a2VNZXRob2QpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OmNhbGxPYmpDRmFsbGJhY2tPYmplY3QpOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX21ldGhvZC5jcHA6CisgICAgICAgIChKU0M6OmNhbGxSdW50aW1lTWV0aG9k
KToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpC
aW5kaW5nczo6Y2FsbFJ1bnRpbWVPYmplY3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Y2Fs
bFJ1bnRpbWVDb25zdHJ1Y3Rvcik6CisgICAgICAgICogaW5zcGVjdG9yL1dlYkluamVjdGVkU2Ny
aXB0SG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJJbmplY3RlZFNjcmlwdEhvc3Q6OnN1
YnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViSW5qZWN0ZWRTY3JpcHRIb3N0Ojppc0hUTUxB
bGxDb2xsZWN0aW9uKToKKwogMjAxOC0wMy0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIGxpbmtpbmcgQXBwbGljYXRpb25TZXJ2aWNlcyBk
aXJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBlZjFiNWYwMjM5NTFhZWY2MWQ5MGUyMTcxN2Q0YjczN2RlNmRm
YTYxLi4yZDdkY2JmY2Y2YjI3ODQyY2JiOGQ0NjFhZTk3YTQ5ODlkOTM3YTg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDE4LTAzLTA4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBpbmhlcml0czxUPihWTSYpIGxldmVyYWdp
bmcgSlNDYXN0IGZhc3QgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgzNDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OmNhbGxNZXRob2QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y2FsbE5QSlNP
YmplY3QpOgorICAgICAgICAoV2ViS2l0Ojpjb25zdHJ1Y3RXaXRoQ29uc3RydWN0b3IpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TlBKU09iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y291bnRlclZh
bHVlKToKKwogMjAxOC0wMy0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBTdG9wIGxpbmtpbmcgQXBwbGljYXRpb25TZXJ2aWNlcyBkaXJlY3RseQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDY0NjkxZjAwZjBmZjQ4Mzc3YTE4Y2I3ZDZj
M2Q5OTY0MmVhYjcyNmUuLmVhZmZlZTc4Y2E4ZGUxOTU3Yjc4ZTk3MWVlZjVhODcyMTcyNzdiZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0wMy0w
OCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlND
XSBBZGQgaW5oZXJpdHM8VD4oVk0mKSBsZXZlcmFnaW5nIEpTQ2FzdCBmYXN0IHBhdGgKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQyOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRE9NL0RPTS5tbToK
KyAgICAgICAgKCtbRE9NTm9kZSBfbm9kZUZyb21KU1dyYXBwZXI6XSk6CisgICAgICAgICogUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnJldGFpbkxvY2FsT2JqZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpyZWxlYXNlTG9jYWxP
YmplY3QpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW06CisgICAg
ICAgIChXZWJLaXQ6OlByb3h5SW5zdGFuY2U6Omludm9rZU1ldGhvZCk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoYWVEZXNjRnJvbUpTVmFsdWUpOgorCiAyMDE4LTAz
LTA4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFN0
b3AgbGlua2luZyBBcHBsaWNhdGlvblNlcnZpY2VzIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cKaW5kZXggMjFkYzc4NTA4YTRlYTRiOWJkZGEzMTE0MTI3NzMwNDJjNjU0NmI4My4u
ZTcyZTNiMDE1N2NkNGJhOTBmYTk5ZjZlM2I5M2RlMTdiMDE0MzIzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTAzLTA4ICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBpbmhlcml0czxU
PihWTSYpIGxldmVyYWdpbmcgSlNDYXN0IGZhc3QgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJG
cmFtZTo6c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEluU2NyaXB0V29ybGQpOgorCiAyMDE4
LTAzLTA4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IFN0b3AgbGlua2luZyBBcHBsaWNhdGlvblNlcnZpY2VzIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDY3NDczMzc2NjI5YmMwNDVkZjFiYWI1
MTg0N2JiYzg5YmZlOGZkOWUuLjRmODg2ODE5NmEyYjczMWFmMjY5ZDQwOGFhZjA2MjE0Y2FlYzc4
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC01MDEs
MTUgKzUwMSwxNSBAQCBKU1ZhbHVlUmVmIEpTT2JqZWN0R2V0UHJpdmF0ZVByb3BlcnR5KEpTQ29u
dGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdAogCiAKICAgICAvLyBHZXQgd3Jh
cHBlZCBvYmplY3QgaWYgcHJveGllZAotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpT
UHJveHk6OmluZm8oKSkpCisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU1Byb3h5Pih2bSkp
CiAgICAgICAgIGpzT2JqZWN0ID0ganNDYXN0PEpTUHJveHkqPihqc09iamVjdCktPnRhcmdldCgp
OwogCi0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0ds
b2JhbE9iamVjdD46OmluZm8oKSkpCisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU0NhbGxi
YWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pj4odm0pKQogICAgICAgICByZXN1bHQgPSBqc0Nhc3Q8
SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4qPihqc09iamVjdCktPmdldFByaXZhdGVQ
cm9wZXJ0eShuYW1lKTsKLSAgICBlbHNlIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2Fs
bGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+OjppbmZvKCkpKQorICAgIGVsc2UgaWYg
KGpzT2JqZWN0LT5pbmhlcml0czxKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
Pj4odm0pKQogICAgICAgICByZXN1bHQgPSBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0Rlc3Ry
dWN0aWJsZU9iamVjdD4qPihqc09iamVjdCktPmdldFByaXZhdGVQcm9wZXJ0eShuYW1lKTsKICNp
ZiBKU0NfT0JKQ19BUElfRU5BQkxFRAotICAgIGVsc2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2
bSwgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjppbmZvKCkpKQorICAgIGVs
c2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9i
amVjdD4+KHZtKSkKICAgICAgICAgcmVzdWx0ID0ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNB
UElXcmFwcGVyT2JqZWN0Pio+KGpzT2JqZWN0KS0+Z2V0UHJpdmF0ZVByb3BlcnR5KG5hbWUpOwog
I2VuZGlmCiAgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHJlc3VsdCk7CkBAIC01MjUsMTkgKzUyNSwx
OSBAQCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZVByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpT
T2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZQogICAgIElkZW50aWZpZXIgbmFtZShwcm9wZXJ0
eU5hbWUtPmlkZW50aWZpZXIoJnZtKSk7CiAKICAgICAvLyBHZXQgd3JhcHBlZCBvYmplY3QgaWYg
cHJveGllZAotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTUHJveHk6OmluZm8oKSkp
CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU1Byb3h5Pih2bSkpCiAgICAgICAgIGpzT2Jq
ZWN0ID0ganNDYXN0PEpTUHJveHkqPihqc09iamVjdCktPnRhcmdldCgpOwogCi0gICAgaWYgKGpz
T2JqZWN0LT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46Omlu
Zm8oKSkpIHsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNH
bG9iYWxPYmplY3Q+Pih2bSkpIHsKICAgICAgICAganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNH
bG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5zZXRQcml2YXRlUHJvcGVydHkodm0sIG5hbWUsIGpz
VmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgaWYgKGpzT2JqZWN0LT5p
bmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9iamVjdD46OmluZm8o
KSkpIHsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0
cnVjdGlibGVPYmplY3Q+Pih2bSkpIHsKICAgICAgICAganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8
SlNEZXN0cnVjdGlibGVPYmplY3Q+Kj4oanNPYmplY3QpLT5zZXRQcml2YXRlUHJvcGVydHkodm0s
IG5hbWUsIGpzVmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAjaWYgSlNDX09C
SkNfQVBJX0VOQUJMRUQKLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNr
T2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkpIHsKKyAgICBpZiAoanNPYmplY3Qt
PmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pj4odm0pKSB7CiAg
ICAgICAgIGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD4qPihqc09i
amVjdCktPnNldFByaXZhdGVQcm9wZXJ0eSh2bSwgbmFtZSwganNWYWx1ZSk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KQEAgLTU1NCwxOSArNTU0LDE5IEBAIGJvb2wgSlNPYmplY3REZWxl
dGVQcml2YXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBK
U1N0cmluCiAgICAgSWRlbnRpZmllciBuYW1lKHByb3BlcnR5TmFtZS0+aWRlbnRpZmllcigmdm0p
KTsKIAogICAgIC8vIEdldCB3cmFwcGVkIG9iamVjdCBpZiBwcm94aWVkCi0gICAgaWYgKGpzT2Jq
ZWN0LT5pbmhlcml0cyh2bSwgSlNQcm94eTo6aW5mbygpKSkKKyAgICBpZiAoanNPYmplY3QtPmlu
aGVyaXRzPEpTUHJveHk+KHZtKSkKICAgICAgICAganNPYmplY3QgPSBqc0Nhc3Q8SlNQcm94eSo+
KGpzT2JqZWN0KS0+dGFyZ2V0KCk7CiAKLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKHZtLCBK
U0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6aW5mbygpKSkgeworICAgIGlmIChqc09i
amVjdC0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4+KHZtKSkgewog
ICAgICAgICBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4qPihqc09iamVj
dCktPmRlbGV0ZVByaXZhdGVQcm9wZXJ0eShuYW1lKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQotICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2FsbGJhY2tPYmplY3Q8SlNE
ZXN0cnVjdGlibGVPYmplY3Q+OjppbmZvKCkpKSB7CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0
czxKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pj4odm0pKSB7CiAgICAgICAg
IGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pio+KGpzT2JqZWN0
KS0+ZGVsZXRlUHJpdmF0ZVByb3BlcnR5KG5hbWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRz
KHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkpIHsKKyAg
ICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2Jq
ZWN0Pj4odm0pKSB7CiAgICAgICAgIGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBl
ck9iamVjdD4qPihqc09iamVjdCktPmRlbGV0ZVByaXZhdGVQcm9wZXJ0eShuYW1lKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1ZhbHVlLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCmlu
ZGV4IDZmM2IxZDhmNjY0ZDQ3Y2M2ZDc5ZWM0NTY4YTNkODkyODFjMjAyZTguLmM4MTBmMTRjNDcy
ZmFhNzE2YWVjZGMyZTI0OGU2Nzg1MDZkMjA3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
VmFsdWUubW0KQEAgLTU3NCwxMyArNTc0LDEzIEBAIEBlbmQKIGlubGluZSBib29sIGlzRGF0ZShK
U0M6OlZNJiB2bSwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4
dCkKIHsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIodG9KUyhjb250ZXh0KSk7Ci0gICAg
cmV0dXJuIHRvSlMob2JqZWN0KS0+aW5oZXJpdHModm0sIEpTQzo6RGF0ZUluc3RhbmNlOjppbmZv
KCkpOworICAgIHJldHVybiB0b0pTKG9iamVjdCktPmluaGVyaXRzPEpTQzo6RGF0ZUluc3RhbmNl
Pih2bSk7CiB9CiAKIGlubGluZSBib29sIGlzQXJyYXkoSlNDOjpWTSYgdm0sIEpTT2JqZWN0UmVm
IG9iamVjdCwgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAgSlNDOjpKU0xvY2tI
b2xkZXIgbG9ja2VyKHRvSlMoY29udGV4dCkpOwotICAgIHJldHVybiB0b0pTKG9iamVjdCktPmlu
aGVyaXRzKHZtLCBKU0M6OkpTQXJyYXk6OmluZm8oKSk7CisgICAgcmV0dXJuIHRvSlMob2JqZWN0
KS0+aW5oZXJpdHM8SlNDOjpKU0FycmF5Pih2bSk7CiB9CiAKIEBpbXBsZW1lbnRhdGlvbiBKU1Zh
bHVlKEludGVybmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Zh
bHVlUmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKaW5k
ZXggMjNkYmM3MjJlZjBiYjdiZDE4YzIwOTYxZGUyY2UxYTgwODU3YmY0ZC4uMDBiZjA2MWFkYTJk
MTZjMTc1ODc0ZDhkODE4MDY5MzQ1N2ZhOTgzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTVmFsdWVSZWYuY3BwCkBAIC0xNzIsNyArMTcyLDcgQEAgYm9vbCBKU1ZhbHVlSXNBcnJheShK
U0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZt
KCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcihleGVjKTsKIAotICAgIHJldHVybiB0b0pTKGV4
ZWMsIHZhbHVlKS5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKTsKKyAgICByZXR1cm4gdG9K
UyhleGVjLCB2YWx1ZSkuaW5oZXJpdHM8SlNBcnJheT4odm0pOwogfQogCiBib29sIEpTVmFsdWVJ
c0RhdGUoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSkKQEAgLTE4NSw3ICsxODUs
NyBAQCBib29sIEpTVmFsdWVJc0RhdGUoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1
ZSkKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoZXhl
Yyk7CiAKLSAgICByZXR1cm4gdG9KUyhleGVjLCB2YWx1ZSkuaW5oZXJpdHModm0sIERhdGVJbnN0
YW5jZTo6aW5mbygpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB2YWx1ZSkuaW5oZXJpdHM8RGF0
ZUluc3RhbmNlPih2bSk7CiB9CiAKIGJvb2wgSlNWYWx1ZUlzT2JqZWN0T2ZDbGFzcyhKU0NvbnRl
eHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU0NsYXNzUmVmIGpzQ2xhc3MpCkBAIC0yMDEs
MTUgKzIwMSwxNSBAQCBib29sIEpTVmFsdWVJc09iamVjdE9mQ2xhc3MoSlNDb250ZXh0UmVmIGN0
eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNDbGFzc1JlZiBqc0NsYQogICAgIEpTVmFsdWUganNWYWx1
ZSA9IHRvSlMoZXhlYywgdmFsdWUpOwogICAgIAogICAgIGlmIChKU09iamVjdCogbyA9IGpzVmFs
dWUuZ2V0T2JqZWN0KCkpIHsKLSAgICAgICAgaWYgKG8tPmluaGVyaXRzKHZtLCBKU1Byb3h5Ojpp
bmZvKCkpKQorICAgICAgICBpZiAoby0+aW5oZXJpdHM8SlNQcm94eT4odm0pKQogICAgICAgICAg
ICAgbyA9IGpzQ2FzdDxKU1Byb3h5Kj4obyktPnRhcmdldCgpOwogCi0gICAgICAgIGlmIChvLT5p
bmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmluZm8oKSkpCisg
ICAgICAgIGlmIChvLT5pbmhlcml0czxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pj4o
dm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFs
T2JqZWN0Pio+KG8pLT5pbmhlcml0cyhqc0NsYXNzKTsKLSAgICAgICAgaWYgKG8tPmluaGVyaXRz
KHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pjo6aW5mbygpKSkKKyAg
ICAgICAgaWYgKG8tPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmpl
Y3Q+Pih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNE
ZXN0cnVjdGlibGVPYmplY3Q+Kj4obyktPmluaGVyaXRzKGpzQ2xhc3MpOwogI2lmIEpTQ19PQkpD
X0FQSV9FTkFCTEVECi0gICAgICAgIGlmIChvLT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVj
dDxKU0FQSVdyYXBwZXJPYmplY3Q+OjppbmZvKCkpKQorICAgICAgICBpZiAoby0+aW5oZXJpdHM8
SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+Pih2bSkpCiAgICAgICAgICAgICBy
ZXR1cm4ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pio+KG8pLT5p
bmhlcml0cyhqc0NsYXNzKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwCmluZGV4IDdmMWNk
NTIyMWMxNDFmNGE3NDQ1NDIxMjM0NmM5YjY3MWQ3NzE0Y2UuLjc4MzMyZDc5YWVjNmQyODViYzFj
M2E2NDU2ZTFkZGU5MmZkMmNhZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcApAQCAtNjMsOSArNjMsOSBAQCB2
b2lkIEpTV2Vha09iamVjdE1hcFNldChKU0NvbnRleHRSZWYgY3R4LCBKU1dlYWtPYmplY3RNYXBS
ZWYgbWFwLCB2b2lkKiBrZXksIEpTTwogICAgIEpTT2JqZWN0KiBvYmogPSB0b0pTKG9iamVjdCk7
CiAgICAgaWYgKCFvYmopCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQob2JqLT5pbmhlcml0
cyh2bSwgSlNQcm94eTo6aW5mbygpKQotICAgICAgICB8fCBvYmotPmluaGVyaXRzKHZtLCBKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6aW5mbygpKQotICAgICAgICB8fCBvYmotPmlu
aGVyaXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pjo6aW5mbygp
KSk7CisgICAgQVNTRVJUKG9iai0+aW5oZXJpdHM8SlNQcm94eT4odm0pCisgICAgICAgIHx8IG9i
ai0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4+KHZtKQorICAgICAg
ICB8fCBvYmotPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+
Pih2bSkpOwogICAgIG1hcC0+bWFwKCkuc2V0KGtleSwgb2JqKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQppbmRleCA5NDI1MTk1ZjhkNjQ0NmY3MjM1YzRi
MWNkMWZmZDdjMTBlNGNjMDNkLi40ZjVhMTNiODAxMmE2NTdhZTIxOWFlNjA0MmFhMDkyZThmMzdj
MjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5t
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpAQCAtNjQ0
LDcgKzY0NCw3IEBAIGlkIHRyeVVud3JhcE9iamNPYmplY3QoSlNHbG9iYWxDb250ZXh0UmVmIGNv
bnRleHQsIEpTVmFsdWVSZWYgdmFsdWUpCiAgICAgQVNTRVJUKCFleGNlcHRpb24pOwogICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2tlcih0b0pTKGNvbnRleHQpKTsKICAgICBKU0M6OlZNJiB2bSA9
IHRvSlMoY29udGV4dCktPnZtKCk7Ci0gICAgaWYgKHRvSlMob2JqZWN0KS0+aW5oZXJpdHModm0s
IEpTQzo6SlNDYWxsYmFja09iamVjdDxKU0M6OkpTQVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkp
CisgICAgaWYgKHRvSlMob2JqZWN0KS0+aW5oZXJpdHM8SlNDOjpKU0NhbGxiYWNrT2JqZWN0PEpT
Qzo6SlNBUElXcmFwcGVyT2JqZWN0Pj4odm0pKQogICAgICAgICByZXR1cm4gKGlkKUpTQzo6anND
YXN0PEpTQzo6SlNBUElXcmFwcGVyT2JqZWN0Kj4odG9KUyhvYmplY3QpKS0+d3JhcHBlZE9iamVj
dCgpOwogICAgIGlmIChpZCB0YXJnZXQgPSB0cnlVbndyYXBDb25zdHJ1Y3Rvcigmdm0sIG9iamVj
dCkpCiAgICAgICAgIHJldHVybiB0YXJnZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbQppbmRleCA2M2Y5MjBlZGIyMjRmMWFkZDFkMDli
N2ExMTIzN2FkNjVhMTg3OTI5Li5hODhhMjcwNWQ3MzE4Mjc0ZmUxNzk4OGEzOWQwZGVjNjJiZjIz
YWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1
bmN0aW9uLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVu
Y3Rpb24ubW0KQEAgLTcwMiw3ICs3MDIsNyBAQCBKU09iamVjdFJlZiBvYmpDQ2FsbGJhY2tGdW5j
dGlvbkZvckJsb2NrKEpTQ29udGV4dCAqY29udGV4dCwgaWQgdGFyZ2V0KQogCiBpZCB0cnlVbndy
YXBDb25zdHJ1Y3RvcihKU0M6OlZNKiB2bSwgSlNPYmplY3RSZWYgb2JqZWN0KQogewotICAgIGlm
ICghdG9KUyhvYmplY3QpLT5pbmhlcml0cygqdm0sIEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb246
OmluZm8oKSkpCisgICAgaWYgKCF0b0pTKG9iamVjdCktPmluaGVyaXRzPEpTQzo6T2JqQ0NhbGxi
YWNrRnVuY3Rpb24+KCp2bSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgSlNDOjpPYmpDQ2Fs
bGJhY2tGdW5jdGlvbkltcGwqIGltcGwgPSBzdGF0aWNfY2FzdDxKU0M6Ok9iakNDYWxsYmFja0Z1
bmN0aW9uKj4odG9KUyhvYmplY3QpKS0+aW1wbCgpOwogICAgIGlmICghaW1wbC0+aXNDb25zdHJ1
Y3RpYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCmluZGV4IGNkZmIwZTI4MmNjNGY3YjUzMjAxYjJjYzFjMjAzMWRmOGRiMDRkOTEuLmE1
NjNkNzgwNDNjZGY4ZDEyMjU1YTRkMGIyZjIwYjRjZWQ5MzE4NzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC00NDYzLDcgKzQ0NjMs
NyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAg
ICAgICAgICAgICAgIGlmIChjYWNoZWRGdW5jdGlvbgogICAgICAgICAgICAgICAgICAgICAmJiBj
YWNoZWRGdW5jdGlvbiAhPSBKU0NlbGw6OnNlZW5NdWx0aXBsZUNhbGxlZU9iamVjdHMoKQogICAg
ICAgICAgICAgICAgICAgICAmJiAhbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNF
eGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2VsbCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
QVNTRVJUKGNhY2hlZEZ1bmN0aW9uLT5pbmhlcml0cygqbV92bSwgSlNGdW5jdGlvbjo6aW5mbygp
KSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChjYWNoZWRGdW5jdGlvbi0+aW5oZXJpdHM8
SlNGdW5jdGlvbj4oKm1fdm0pKTsKIAogICAgICAgICAgICAgICAgICAgICBGcm96ZW5WYWx1ZSog
ZnJvemVuID0gbV9ncmFwaC5mcmVlemUoY2FjaGVkRnVuY3Rpb24pOwogICAgICAgICAgICAgICAg
ICAgICBhZGRUb0dyYXBoKENoZWNrQ2VsbCwgT3BJbmZvKGZyb3plbiksIGNhbGxlZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCAyMzM3YWM1OGNh
YzIzZjkwNTliN2QwNDRlOTczZWJiYTQ0NjZmMzIyLi5iMWRhZGQyZmRjNmZmZDRiYWVkY2VhNjFh
MTRlNWZkNmU3ODY1ZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKQEAgLTEwNDksNyArMTA0OSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUmVnRXhwRXhlY0dlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhCiAg
ICAgSlNWYWx1ZSBiYXNlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKICAgICBKU1Zh
bHVlIGFyZ3VtZW50ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRBcmd1bWVudCk7CiAgICAgCi0g
ICAgaWYgKCFiYXNlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpCisgICAgYXV0
byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgYmFzZSk7CisgICAg
aWYgKFVOTElLRUxZKCFyZWdleHApKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSk7CiAKICAgICBKU1N0cmluZyogaW5wdXQgPSBhcmd1bWVudC50b1N0cmluZ09y
TnVsbChleGVjKTsKQEAgLTEwNTcsNyArMTA1OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlY0dlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
CiAgICAgaWYgKCFpbnB1dCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKICAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShhc1JlZ0V4cE9iamVjdChiYXNlKS0+ZXhlYyhleGVjLCBnbG9iYWxPYmplY3QsIGlucHV0KSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWdleHAtPmV4ZWMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBpbnB1dCkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blJlZ0V4cEV4ZWNOb25HbG9iYWxPclN0aWNreShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4cCogcmVnRXhwLCBKU1N0cmluZyogc3RyaW5nKQpAQCAt
MTE4MCw3ICsxMTgxLDggQEAgc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVz
dEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCoKICAgICBKU1ZhbHVlIGJh
c2UgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgYXJndW1lbnQg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEFyZ3VtZW50KTsKIAotICAgIGlmICghYmFzZS5pbmhl
cml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSB7CisgICAgYXV0byogcmVnZXhwID0ganNE
eW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgYmFzZSk7CisgICAgaWYgKFVOTElLRUxZKCFy
ZWdleHApKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTExOTAsNyArMTE5Miw3IEBAIHNpemVfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRlc3RHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqCiAgICAgaWYgKCFpbnB1dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHNj
b3BlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYXNSZWdFeHBPYmplY3QoYmFzZSktPnRlc3QoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbnB1dCk7CisgICAgcmV0dXJuIHJlZ2V4cC0+dGVzdChleGVjLCBn
bG9iYWxPYmplY3QsIGlucHV0KTsKIH0KIAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
Q29tcGFyZVN0cmljdEVxQ2VsbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggZDhlYmM5ZmRkNGJhMjQ5OWM0YmM3ZDE5
N2M2ZDY1YjU1MWIzM2I0OC4uMzhiNzQ3MTI0MTQ4OTNmNmIzMTVkNWU4Nzk5ODVlODc2OWY2OTlm
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApA
QCAtOTgwOCw3ICs5ODA4LDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB2b2lkIGNvbXBp
bGVPdmVycmlkZXNIYXNJbnN0YW5jZSgpCiAgICAgewogICAgICAgICBGcm96ZW5WYWx1ZSogZGVm
YXVsdEhhc0luc3RhbmNlRnVuY3Rpb24gPSBtX25vZGUtPmNlbGxPcGVyYW5kKCk7Ci0gICAgICAg
IEFTU0VSVChkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbi0+Y2VsbCgpLT5pbmhlcml0cyh2bSgp
LCBKU0Z1bmN0aW9uOjppbmZvKCkpKTsKKyAgICAgICAgQVNTRVJUKGRlZmF1bHRIYXNJbnN0YW5j
ZUZ1bmN0aW9uLT5jZWxsKCktPmluaGVyaXRzPEpTRnVuY3Rpb24+KHZtKCkpKTsKIAogICAgICAg
ICBMVmFsdWUgY29uc3RydWN0b3IgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAg
ICBMVmFsdWUgaGFzSW5zdGFuY2UgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOwpAQCAt
MTA3MjgsNyArMTA3MjgsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAg
RnJvemVuVmFsdWUqIHJlZ2V4cCA9IG1fbm9kZS0+Y2VsbE9wZXJhbmQoKTsKICAgICAgICAgTFZh
bHVlIGxhc3RJbmRleCA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEFT
U0VSVChyZWdleHAtPmNlbGwoKS0+aW5oZXJpdHModm0oKSwgUmVnRXhwOjppbmZvKCkpKTsKKyAg
ICAgICAgQVNTRVJUKHJlZ2V4cC0+Y2VsbCgpLT5pbmhlcml0czxSZWdFeHA+KHZtKCkpKTsKICAg
ICAgICAgQVNTRVJUKG1fbm9kZS0+Y2FzdE9wZXJhbmQ8UmVnRXhwKj4oKS0+aXNWYWxpZCgpKTsK
IAogICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPcGVyYXRpb25zLmNwcAppbmRleCBhYzVhZmM0YmVh
YTI5NDY1YTc3MGIyOGYxM2E5NDA3ODgxYmJkNTQwLi5jYWU4ZTRiODMwM2JmYzg4MzUzMzM0NzMx
MWYyZGI1MzIxYWYzOWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0
aW9ucy5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBleHRlcm4gIkMiIEpTQ2VsbCogSklUX09QRVJB
VElPTiBvcGVyYXRpb25NYXRlcmlhbGl6ZU9iamVjdEluT1NSKAogICAgICAgICAgICAgaWYgKHBy
b3BlcnR5LmxvY2F0aW9uKCkgIT0gUHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3IoU3RydWN0dXJl
UExvYykpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0cyh2bSwg
U3RydWN0dXJlOjppbmZvKCkpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6
OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0czxTdHJ1Y3R1cmU+KHZtKSk7CiAg
ICAgICAgICAgICBzdHJ1Y3R1cmUgPSBqc0Nhc3Q8U3RydWN0dXJlKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE4NCwxMSAr
MTg0LDExIEBAIGV4dGVybiAiQyIgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1hdGVy
aWFsaXplT2JqZWN0SW5PU1IoCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1hdGVyaWFsaXph
dGlvbi0+cHJvcGVydGllcygpLnNpemUoKTsgaS0tOykgewogICAgICAgICAgICAgY29uc3QgRXhp
dFByb3BlcnR5VmFsdWUmIHByb3BlcnR5ID0gbWF0ZXJpYWxpemF0aW9uLT5wcm9wZXJ0aWVzKClb
aV07CiAgICAgICAgICAgICBpZiAocHJvcGVydHkubG9jYXRpb24oKSA9PSBQcm9tb3RlZExvY2F0
aW9uRGVzY3JpcHRvcihGdW5jdGlvbkV4ZWN1dGFibGVQTG9jKSkgewotICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhl
cml0cyh2bSwgRnVuY3Rpb25FeGVjdXRhYmxlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+aW5oZXJp
dHM8RnVuY3Rpb25FeGVjdXRhYmxlPih2bSkpOwogICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUg
PSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkp
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHByb3BlcnR5LmxvY2F0aW9uKCkgPT0g
UHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3IoRnVuY3Rpb25BY3RpdmF0aW9uUExvYykpIHsKLSAg
ICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5h
c0NlbGwoKS0+aW5oZXJpdHModm0sIEpTU2NvcGU6OmluZm8oKSkpOworICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhl
cml0czxKU1Njb3BlPih2bSkpOwogICAgICAgICAgICAgICAgIGFjdGl2YXRpb24gPSBqc0Nhc3Q8
SlNTY29wZSo+KEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpAQCAtMjExLDEwICsyMTEsMTAgQEAgZXh0ZXJuICJDIiBKU0NlbGwqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9TUigKICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gbWF0ZXJpYWxpemF0aW9uLT5wcm9wZXJ0aWVzKCkuc2l6ZSgpOyBpLS07KSB7CiAg
ICAgICAgICAgICBjb25zdCBFeGl0UHJvcGVydHlWYWx1ZSYgcHJvcGVydHkgPSBtYXRlcmlhbGl6
YXRpb24tPnByb3BlcnRpZXMoKVtpXTsKICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5sb2NhdGlv
bigpID09IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKEFjdGl2YXRpb25TY29wZVBMb2MpKSB7
Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tp
XSkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBKU1Njb3BlOjppbmZvKCkpKTsKKyAgICAgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+
aW5oZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAgICAgICBzY29wZSA9IGpzQ2FzdDxK
U1Njb3BlKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChwcm9wZXJ0eS5sb2NhdGlvbigpID09IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKEFj
dGl2YXRpb25TeW1ib2xUYWJsZVBMb2MpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBTeW1i
b2xUYWJsZTo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1
ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzPFN5bWJvbFRhYmxlPih2bSkp
OwogICAgICAgICAgICAgICAgIHRhYmxlID0ganNDYXN0PFN5bWJvbFRhYmxlKj4oSlNWYWx1ZTo6
ZGVjb2RlKHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC01NTIsNyAr
NTUyLDcgQEAgZXh0ZXJuICJDIiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0ZXJp
YWxpemVPYmplY3RJbk9TUigKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbWF0ZXJpYWxpemF0
aW9uLT5wcm9wZXJ0aWVzKCkuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBjb25zdCBFeGl0
UHJvcGVydHlWYWx1ZSYgcHJvcGVydHkgPSBtYXRlcmlhbGl6YXRpb24tPnByb3BlcnRpZXMoKVtp
XTsKICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5sb2NhdGlvbigpID09IFByb21vdGVkTG9jYXRp
b25EZXNjcmlwdG9yKFJlZ0V4cE9iamVjdFJlZ0V4cFBMb2MpKSB7Ci0gICAgICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVy
aXRzKHZtLCBSZWdFeHA6OmluZm8oKSkpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0czxSZWdFeHA+KHZt
KSk7CiAgICAgICAgICAgICAgICAgcmVnRXhwID0ganNDYXN0PFJlZ0V4cCo+KEpTVmFsdWU6OmRl
Y29kZSh2YWx1ZXNbaV0pKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNw
cAppbmRleCBlNjYwYTMxMGVmMTM1YjRhZTM4YzU5ZmNmMjdkZWFjNWFmMDg4ZTM1Li4zZDVjMTdh
MzUyYzg0YzMxODcxZTczYjdlMWQ4ZjdmMDQ2NWFlOGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAt
MTUwLDggKzE1MCw3IEBAIEpTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUoRXhl
Y1N0YXRlKiBleGVjKQogICAgIGlmICh2YWx1ZS5pc1N5bWJvbCgpKQogICAgICAgICByZXR1cm4g
dm0uc21hbGxTdHJpbmdzLnN5bWJvbFN0cmluZygpOwogCi0gICAgSlNPYmplY3QqIG9iamVjdCA9
IGFzT2JqZWN0KHZhbHVlKTsKLSAgICBpZiAob2JqZWN0KSB7CisgICAgaWYgKGF1dG8qIG9iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgdmFsdWUpKSB7CiAgICAgICAgIGlmIChv
YmplY3QtPmlzRXJyb3JJbnN0YW5jZSgpKQogICAgICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlh
bFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImVycm9yIikpOwogCkBAIC0xNTksNDkgKzE1OCw0
NyBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rp
b24qPih2bSwgdmFsdWUpOwogICAgICAgICBpZiAoZnVuY3Rpb24gJiYgZnVuY3Rpb24tPmlzQ2xh
c3NDb25zdHJ1Y3RvckZ1bmN0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4ganNOb250cml2aWFs
U3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiY2xhc3MiKSk7Ci0gICAgfQogCi0gICAgaWYgKHZh
bHVlLmluaGVyaXRzKHZtLCBKU0FycmF5OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7Ci0gICAgaWYgKHZhbHVl
LmluaGVyaXRzKHZtLCBEaXJlY3RBcmd1bWVudHM6OmluZm8oKSkgfHwgdmFsdWUuaW5oZXJpdHMo
dm0sIFNjb3BlZEFyZ3VtZW50czo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlh
bFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImFycmF5IikpOwotCi0gICAgaWYgKHZhbHVlLmlu
aGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJkYXRlIikpOwotICAgIGlmICh2YWx1ZS5p
bmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgicmVnZXhwIikpOwotICAgIGlmICh2YWx1
ZS5pbmhlcml0cyh2bSwgUHJveHlPYmplY3Q6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05v
bnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJwcm94eSIpKTsKLQotICAgIGlmICh2
YWx1ZS5pbmhlcml0cyh2bSwgSlNNYXA6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJtYXAiKSk7Ci0gICAgaWYgKHZhbHVlLmlu
aGVyaXRzKHZtLCBKU1NldDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0
cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoInNldCIpKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHMo
dm0sIEpTV2Vha01hcDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmlu
ZyhleGVjLCBBU0NJSUxpdGVyYWwoIndlYWttYXAiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRz
KHZtLCBKU1dlYWtTZXQ6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJp
bmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3ZWFrc2V0IikpOwotCi0gICAgaWYgKHZhbHVlLmluaGVy
aXRzKHZtLCBKU1N0cmluZ0l0ZXJhdG9yOjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiaXRlcmF0b3IiKSk7Ci0KLSAgICBpZiAo
b2JqZWN0KSB7CisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTQXJyYXk+KHZtKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJh
cnJheSIpKTsKKyAgICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8RGlyZWN0QXJndW1lbnRzPih2
bSkgfHwgb2JqZWN0LT5pbmhlcml0czxTY29wZWRBcmd1bWVudHM+KHZtKSkKKyAgICAgICAgICAg
IHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsK
KworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxEYXRlSW5zdGFuY2U+KHZtKSkKKyAgICAg
ICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJkYXRl
IikpOworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxSZWdFeHBPYmplY3Q+KHZtKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJy
ZWdleHAiKSk7CisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPFByb3h5T2JqZWN0Pih2bSkp
CisgICAgICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJh
bCgicHJveHkiKSk7CisKKyAgICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNNYXA+KHZtKSkK
KyAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFs
KCJtYXAiKSk7CisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTU2V0Pih2bSkpCisgICAg
ICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgic2V0
IikpOworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxKU1dlYWtNYXA+KHZtKSkKKyAgICAg
ICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3ZWFr
bWFwIikpOworICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxKU1dlYWtTZXQ+KHZtKSkKKyAg
ICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3
ZWFrc2V0IikpOworCisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTU3RyaW5nSXRlcmF0
b3I+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVND
SUlMaXRlcmFsKCJpdGVyYXRvciIpKTsKKwogICAgICAgICBpZiAob2JqZWN0LT5nZXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JOZXh0SW5k
ZXhQcml2YXRlTmFtZSgpKQogICAgICAgICAgICAgfHwgb2JqZWN0LT5nZXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm1hcEJ1Y2tldFByaXZhdGVOYW1lKCkpCiAg
ICAgICAgICAgICB8fCBvYmplY3QtPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuc2V0QnVja2V0UHJpdmF0ZU5hbWUoKSkpCiAgICAgICAgICAgICByZXR1cm4g
anNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiaXRlcmF0b3IiKSk7Ci0gICAg
fQogCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU0ludDhBcnJheTo6aW5mbygpKQotICAg
ICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgSlNJbnQxNkFycmF5OjppbmZvKCkpCi0gICAgICAg
IHx8IHZhbHVlLmluaGVyaXRzKHZtLCBKU0ludDMyQXJyYXk6OmluZm8oKSkKLSAgICAgICAgfHwg
dmFsdWUuaW5oZXJpdHModm0sIEpTVWludDhBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1
ZS5pbmhlcml0cyh2bSwgSlNVaW50OENsYW1wZWRBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2
YWx1ZS5pbmhlcml0cyh2bSwgSlNVaW50MTZBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1
ZS5pbmhlcml0cyh2bSwgSlNVaW50MzJBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5p
bmhlcml0cyh2bSwgSlNGbG9hdDMyQXJyYXk6OmluZm8oKSkKLSAgICAgICAgfHwgdmFsdWUuaW5o
ZXJpdHModm0sIEpTRmxvYXQ2NEFycmF5OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250
cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7CisgICAgICAgIGlmIChv
YmplY3QtPmluaGVyaXRzPEpTSW50OEFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+
aW5oZXJpdHM8SlNJbnQxNkFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJp
dHM8SlNJbnQzMkFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNV
aW50OEFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNVaW50OENs
YW1wZWRBcnJheT4odm0pCisgICAgICAgICAgICB8fCBvYmplY3QtPmluaGVyaXRzPEpTVWludDE2
QXJyYXk+KHZtKQorICAgICAgICAgICAgfHwgb2JqZWN0LT5pbmhlcml0czxKU1VpbnQzMkFycmF5
Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNGbG9hdDMyQXJyYXk+KHZt
KQorICAgICAgICAgICAgfHwgb2JqZWN0LT5pbmhlcml0czxKU0Zsb2F0NjRBcnJheT4odm0pKQor
ICAgICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwo
ImFycmF5IikpOworICAgIH0KIAogICAgIHJldHVybiBpbXBsKCkuc3VidHlwZShleGVjLCB2YWx1
ZSk7CiB9CkBAIC0yMTMsMTQgKzIxMCwxNCBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0
OjpmdW5jdGlvbkRldGFpbHMoRXhlY1N0YXRlKiBleGVjKQogCiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKICAgICBKU1ZhbHVlIHZhbHVlID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0g
ICAgaWYgKCF2YWx1ZS5hc0NlbGwoKS0+aW5oZXJpdHModm0sIEpTRnVuY3Rpb246OmluZm8oKSkp
CisgICAgYXV0byogZnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPih2bSwgdmFs
dWUpOworICAgIGlmICghZnVuY3Rpb24pCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwog
CiAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi84NzE5Mj4gV2ViIEluc3BlY3Rv
cjogRXhwb3NlIGZ1bmN0aW9uIHNjb3BlIC8gY2xvc3VyZSBkYXRhCiAKICAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgcHJvdmlkZSBiZXR0ZXIgZGV0YWlscyBmb3IgSlNCb3VuZEZ1bmN0aW9ucy4K
IAotICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPih2YWx1ZSk7
CiAgICAgY29uc3QgU291cmNlQ29kZSogc291cmNlQ29kZSA9IGZ1bmN0aW9uLT5zb3VyY2VDb2Rl
KCk7CiAgICAgaWYgKCFzb3VyY2VDb2RlKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckhlYXBBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JIZWFwQWdlbnQuY3BwCmluZGV4IGEyYjZkMDQyYWQyMmVmNmM1ZGQxZWE5ZDI3
MzQwYjQ5MTQwZjQ5ZjMuLjJmYjhiN2VjZDdmYjU2YjY5MWM3ZDU5MjMwMjU3OTY4MTI2MTc0NjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckhlYXBBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9ySGVhcEFnZW50LmNwcApAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgSW5z
cGVjdG9ySGVhcEFnZW50OjpnZXRQcmV2aWV3KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50
IGhlYXBPYmplY3RJZCwKICAgICB9CiAKICAgICAvLyBGdW5jdGlvbiBwcmV2aWV3LgotICAgIGlm
IChjZWxsLT5pbmhlcml0cyh2bSwgSlNGdW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlmIChjZWxs
LT5pbmhlcml0czxKU0Z1bmN0aW9uPih2bSkpIHsKICAgICAgICAgaW5qZWN0ZWRTY3JpcHQuZnVu
Y3Rpb25EZXRhaWxzKGVycm9yU3RyaW5nLCBjZWxsLCBmdW5jdGlvbkRldGFpbHMpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHAKaW5kZXggY2RjMGY3MjIwNzBiZTdlNTM1ZWFkZTA3MWRiYjMyZjY1
MGZmMTFlNi4uZWE3OGFjNjlkZWMyYzE4MzExODI2Mzk5ZDJhMjYwZmExN2RjMWIxNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBA
IC02MzEsNyArNjMxLDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBub3RpZnlEZWJ1Z2dl
ck9mVW53aW5kaW5nKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUKICAgICBpZiAoRGVidWdn
ZXIqIGRlYnVnZ2VyID0gY2FsbEZyYW1lLT52bUVudHJ5R2xvYmFsT2JqZWN0KHZtKS0+ZGVidWdn
ZXIoKSkgewogICAgICAgICBTdXNwZW5kRXhjZXB0aW9uU2NvcGUgc2NvcGUoJnZtKTsKICAgICAg
ICAgaWYgKGNhbGxGcmFtZS0+aXNBbnlXYXNtQ2FsbGVlKCkKLSAgICAgICAgICAgIHx8IChjYWxs
RnJhbWUtPmNhbGxlZSgpLmlzQ2VsbCgpICYmIGNhbGxGcmFtZS0+Y2FsbGVlKCkuYXNDZWxsKCkt
PmluaGVyaXRzKHZtLCBKU0Z1bmN0aW9uOjppbmZvKCkpKSkKKyAgICAgICAgICAgIHx8IChjYWxs
RnJhbWUtPmNhbGxlZSgpLmlzQ2VsbCgpICYmIGNhbGxGcmFtZS0+Y2FsbGVlKCkuYXNDZWxsKCkt
PmluaGVyaXRzPEpTRnVuY3Rpb24+KHZtKSkpCiAgICAgICAgICAgICBkZWJ1Z2dlci0+dW53aW5k
RXZlbnQoY2FsbEZyYW1lKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZGVidWdnZXItPmRp
ZEV4ZWN1dGVQcm9ncmFtKGNhbGxGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5jcHAKaW5kZXggZjcwNjY2ZDg5NzBmNmM3MzMx
NTkwNzgxNzdkM2VhM2M1NTgwYWI3MC4uZTM0NDNmMTg5MWQxNzU2YjAzZGZmOGZhNmEyMjg1Y2E4
ZTU1ZGNiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1No
YWRvd0NoaWNrZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9T
aGFkb3dDaGlja2VuLmNwcApAQCAtMzAyLDExICszMDIsMTEgQEAgdm9pZCBTaGFkb3dDaGlja2Vu
Ojp1cGRhdGUoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICBpZiAoY29k
ZUJsb2NrICYmIGNvZGVCbG9jay0+d2FzQ29tcGlsZWRXaXRoRGVidWdnaW5nT3Bjb2RlcygpICYm
IGNvZGVCbG9jay0+c2NvcGVSZWdpc3RlcigpLmlzVmFsaWQoKSkgewogICAgICAgICAgICAgICAg
IHNjb3BlID0gY2FsbEZyYW1lLT5zY29wZShjb2RlQmxvY2stPnNjb3BlUmVnaXN0ZXIoKS5vZmZz
ZXQoKSk7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc2NvcGUtPmluaGVyaXRzKHZt
LCBKU1Njb3BlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzY29w
ZS0+aW5oZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmRG
cmFtZSkgewogICAgICAgICAgICAgICAgIHNjb3BlID0gbV9sb2dbaW5kZXhJbkxvZ10uc2NvcGU7
CiAgICAgICAgICAgICAgICAgaWYgKHNjb3BlKQotICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVChzY29wZS0+aW5oZXJpdHModm0sIEpTU2NvcGU6OmluZm8oKSkpOworICAgICAgICAg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzY29wZS0+aW5oZXJpdHM8SlNTY29wZT4odm0pKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRvUHVzaC5hcHBlbmQoRnJhbWUoanNDYXN0PEpT
T2JqZWN0Kj4odmlzaXRvci0+Y2FsbGVlKCkuYXNDZWxsKCkpLCBjYWxsRnJhbWUsIGlzVGFpbERl
bGV0ZWQsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCksIHNjb3BlLCBjb2RlQmxvY2ssIGNhbGxGcmFt
ZS0+Y2FsbFNpdGVJbmRleCgpKSk7CiAKQEAgLTM1MSw3ICszNTEsNyBAQCB2b2lkIFNoYWRvd0No
aWNrZW46OnVwZGF0ZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICBQYWNrZXQgcGFja2V0ID0gbV9sb2dbaW5kZXhJbkxv
Z107CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNUYWlsRGVsZXRlZCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHRhaWxQYWNrZXQuc2NvcGUtPmluaGVyaXRz
KHZtLCBKU1Njb3BlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQodGFpbFBhY2tldC5zY29wZS0+aW5oZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAg
ICAgICAgICAgdG9QdXNoLmFwcGVuZChGcmFtZShwYWNrZXQuY2FsbGVlLCBwYWNrZXQuZnJhbWUs
IGlzVGFpbERlbGV0ZWQsIHRhaWxQYWNrZXQudGhpc1ZhbHVlLCB0YWlsUGFja2V0LnNjb3BlLCB0
YWlsUGFja2V0LmNvZGVCbG9jaywgdGFpbFBhY2tldC5jYWxsU2l0ZUluZGV4KSk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4
IGY2NDIwY2FlNjE2YWFjNTI0YzJhODE5NGU5YmQwMmY0ZjU3MDk0ZTQuLjU1MTEzOWZiZjI4NjQ0
YTBkNjU2ZmNhZDA0ZjQ2ZTk3ZjcyYjhiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAK
QEAgLTE5Niw3ICsxOTYsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAK
ICAgICBWTSYgdm0gPSAqbV9jb2RlQmxvY2stPnZtKCk7CiAgICAgdW5zaWduZWQgc3RhcnRCeXRl
Y29kZU9mZnNldCA9IDA7Ci0gICAgaWYgKG1fbG9vcE9TUkVudHJ5Qnl0ZWNvZGVPZmZzZXQgJiYg
KG1fY29kZUJsb2NrLT5pbmhlcml0cyh2bSwgUHJvZ3JhbUNvZGVCbG9jazo6aW5mbygpKSB8fCBt
X2NvZGVCbG9jay0+aW5oZXJpdHModm0sIE1vZHVsZVByb2dyYW1Db2RlQmxvY2s6OmluZm8oKSkp
KSB7CisgICAgaWYgKG1fbG9vcE9TUkVudHJ5Qnl0ZWNvZGVPZmZzZXQgJiYgKG1fY29kZUJsb2Nr
LT5pbmhlcml0czxQcm9ncmFtQ29kZUJsb2NrPih2bSkgfHwgbV9jb2RlQmxvY2stPmluaGVyaXRz
PE1vZHVsZVByb2dyYW1Db2RlQmxvY2s+KHZtKSkpIHsKICAgICAgICAgLy8gV2UgY2FuIG9ubHkg
ZG8gdGhpcyBvcHRpbWl6YXRpb24gYmVjYXVzZSB3ZSBleGVjdXRlIFByb2dyYW1Db2RlQmxvY2sn
cyBleGFjdGx5IG9uY2UuCiAgICAgICAgIC8vIFRoaXMgb3B0aW1pemF0aW9uIHdvdWxkIGJlIGlu
dmFsaWQgb3RoZXJ3aXNlLiBXaGVuIHRoZSBMTEludCBkZXRlcm1pbmVzIGl0IHdhbnRzIHRvCiAg
ICAgICAgIC8vIGRvIE9TUiBlbnRyeSBpbnRvIHRoZSBiYXNlbGluZSBKSVQgaW4gYSBsb29wLCBp
dCB3aWxsIHBhc3MgaW4gdGhlIGJ5dGVjb2RlIG9mZnNldCBpdApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggOWRjNTQ0ZWRhNDAwZmQyYTQyZDllMjk3
M2VmNzgyNjFmZTQ2NjNlYy4uZTQ2YTNkNzVkNDc1ZmU0MGVhMTZiZDJhODZjOTY2NGJmN2Y5ZDkx
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0x
MTkxLDcgKzExOTEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+CiBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uTmV3RnVuY3Rpb25Db21tb24oRXhlY1N0YXRlKiBleGVj
LCBKU1Njb3BlKiBzY29wZSwgSlNDZWxsKiBmdW5jdGlvbkV4ZWN1dGFibGUsIGJvb2wgaXNJbnZh
bGlkYXRlZCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIEFTU0VSVChmdW5jdGlv
bkV4ZWN1dGFibGUtPmluaGVyaXRzKHZtLCBGdW5jdGlvbkV4ZWN1dGFibGU6OmluZm8oKSkpOwor
ICAgIEFTU0VSVChmdW5jdGlvbkV4ZWN1dGFibGUtPmluaGVyaXRzPEZ1bmN0aW9uRXhlY3V0YWJs
ZT4odm0pKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAg
ICAgaWYgKGlzSW52YWxpZGF0ZWQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRnVu
Y3Rpb25UeXBlOjpjcmVhdGVXaXRoSW52YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50KHZt
LCBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihmdW5jdGlvbkV4ZWN1dGFibGUpLCBz
Y29wZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCA5ZWY4NGFhZWNhYjVjZjA3YWUzYTYzZmMx
ZWY4ZDgwMGYzMWFiMGY1Li5lZjkyYzQyMjkyZjA4NTZhOGQ5N2ZhZTkzODAwNmIyMzEyZDdmN2Ez
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMjI2Myw3ICsyMjYzLDcgQEAgc3RhdGljIHZvaWQg
Y2hlY2tFeGNlcHRpb24oR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGJvb2wgaXNMYXN0Rmls
ZSwgYm9vbCBoYXMKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKLSAgICBp
ZiAob3B0aW9ucy5tX3RyZWF0V2F0Y2hkb2dFeGNlcHRpb25Bc1N1Y2Nlc3MgJiYgdmFsdWUuaW5o
ZXJpdHModm0sIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6aW5mbygpKSkgeworICAgIGlmIChv
cHRpb25zLm1fdHJlYXRXYXRjaGRvZ0V4Y2VwdGlvbkFzU3VjY2VzcyAmJiB2YWx1ZS5pbmhlcml0
czxUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I+KHZtKSkgewogICAgICAgICBBU1NFUlQoaGFzRXhj
ZXB0aW9uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaAppbmRleCA5ZTVhYWY5YjExODk4MjRiZmI2ZTM0MjVj
YTcxYTA2ZDc2ZjFhMDM5Li4yN2M0M2U3OWE1OGFlYmI1MzhlMGEwOTg2ZGI2MjcxM2QyOTIxNzdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCkBA
IC00NywxMiArNDcsNCBAQCBjbGFzcyBCb29sZWFuT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9i
amVjdCB7CiAgICAgfQogfTsKIAotQm9vbGVhbk9iamVjdCogYXNCb29sZWFuT2JqZWN0KEpTVmFs
dWUpOwotCi1pbmxpbmUgQm9vbGVhbk9iamVjdCogYXNCb29sZWFuT2JqZWN0KEpTVmFsdWUgdmFs
dWUpCi17Ci0gICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9i
amVjdCgpLT52bSgpLCBCb29sZWFuT2JqZWN0OjppbmZvKCkpKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Qm9vbGVhbk9iamVjdCo+KGFzT2JqZWN0KHZhbHVlKSk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVh
blByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJv
dG90eXBlLmNwcAppbmRleCAzN2RjZTdlMzQ3OGJmOTY2MDYyMzg4MTdhZGJlN2M4MmUyNDdlYmY4
Li4wNmY5ZmQzMGFkNTI3ODk4MGE1MzEyODQ3ZDM2YWYwNTZjMTI3OWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcApAQCAtNzYs
MTMgKzc2LDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm9vbGVhblByb3RvRnVu
Y1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAodGhpc1ZhbHVlID09IGpzQm9vbGVh
bih0cnVlKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0cmluZ3Mu
dHJ1ZVN0cmluZygpKTsKIAotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBCb29sZWFu
T2JqZWN0OjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEJv
b2xlYW5PYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNPYmpl
Y3QpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAg
ICBpZiAoYXNCb29sZWFuT2JqZWN0KHRoaXNWYWx1ZSktPmludGVybmFsVmFsdWUoKSA9PSBqc0Jv
b2xlYW4oZmFsc2UpKQorICAgIGlmICh0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkgPT0ganNC
b29sZWFuKGZhbHNlKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0
cmluZ3MuZmFsc2VTdHJpbmcoKSk7CiAKLSAgICBBU1NFUlQoYXNCb29sZWFuT2JqZWN0KHRoaXNW
YWx1ZSktPmludGVybmFsVmFsdWUoKSA9PSBqc0Jvb2xlYW4odHJ1ZSkpOworICAgIEFTU0VSVCh0
aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkgPT0ganNCb29sZWFuKHRydWUpKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHZtLnNtYWxsU3RyaW5ncy50cnVlU3RyaW5nKCkpOwogfQogCkBA
IC05NCwxMCArOTUsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJv
dG9GdW5jVmFsdWVPZihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKHRoaXNWYWx1ZS5pc0Jvb2xl
YW4oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpOwogCi0gICAg
aWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIEJvb2xlYW5PYmplY3Q6OmluZm8oKSkpCisgICAg
YXV0byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8Qm9vbGVhbk9iamVjdCo+KHZtLCB0aGlz
VmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc09iamVjdCkpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoYXNCb29sZWFuT2JqZWN0KHRoaXNWYWx1ZSktPmludGVybmFsVmFsdWUoKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuY3BwCmluZGV4IDYxYTU5NTIyYmYzOTVhYmZiYTQwYWY3ZTlkMGE3NGM0
ZTQ1MzMzM2MuLjAwM2ZhOTAwZTdhN2NmNWFkYzBkNjYyMGE1YmJlNDIzNzUzODMyMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApA
QCAtMTMwLDEwICsxMzAsMTEgQEAgSlNPYmplY3QqIGNvbnN0cnVjdERhdGUoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIG4KICAgICBpZiAobnVt
QXJncyA9PSAwKSAvLyBuZXcgRGF0ZSgpIEVDTUEgMTUuOS4zLjMKICAgICAgICAgdmFsdWUgPSBq
c0N1cnJlbnRUaW1lKCk7CiAgICAgZWxzZSBpZiAobnVtQXJncyA9PSAxKSB7Ci0gICAgICAgIGlm
IChhcmdzLmF0KDApLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCi0gICAgICAg
ICAgICB2YWx1ZSA9IGFzRGF0ZUluc3RhbmNlKGFyZ3MuYXQoMCkpLT5pbnRlcm5hbE51bWJlcigp
OworICAgICAgICBKU1ZhbHVlIGFyZzAgPSBhcmdzLmF0KDApOworICAgICAgICBpZiAoYXV0byog
ZGF0ZUluc3RhbmNlID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgYXJnMCkpCisg
ICAgICAgICAgICB2YWx1ZSA9IGRhdGVJbnN0YW5jZS0+aW50ZXJuYWxOdW1iZXIoKTsKICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBKU1ZhbHVlIHByaW1pdGl2ZSA9IGFyZ3MuYXQoMCkudG9Q
cmltaXRpdmUoZXhlYyk7CisgICAgICAgICAgICBKU1ZhbHVlIHByaW1pdGl2ZSA9IGFyZzAudG9Q
cmltaXRpdmUoZXhlYyk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKICAgICAgICAgICAgIGlmIChwcmltaXRpdmUuaXNTdHJpbmcoKSkKICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IHBhcnNlRGF0ZSh2bSwgYXNTdHJpbmcocHJpbWl0aXZlKS0+dmFsdWUo
ZXhlYykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUlu
c3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApp
bmRleCAzZjExYWUzYTYzNmViZGNiYWEyMDVhZTJkYjc0ZDRmYTQ2NTMyYjI4Li41Nzg0MTM1MzAx
MTM5YTdjMzgyNzcyNTQ0ZTNlNmI4M2JlZGNmMzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApAQCAtODAsMTIgKzgwLDQgQEAgY2xhc3MgRGF0ZUlu
c3RhbmNlIDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgbXV0YWJsZSBQb2lzb25lZFJl
ZlB0cjxEYXRlSW5zdGFuY2VQb2lzb24sIERhdGVJbnN0YW5jZURhdGE+IG1fZGF0YTsKIH07CiAK
LURhdGVJbnN0YW5jZSogYXNEYXRlSW5zdGFuY2UoSlNWYWx1ZSk7Ci0KLWlubGluZSBEYXRlSW5z
dGFuY2UqIGFzRGF0ZUluc3RhbmNlKEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQVNTRVJUKGFzT2Jq
ZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBEYXRlSW5zdGFu
Y2U6OmluZm8oKSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxEYXRlSW5zdGFuY2UqPihhc09i
amVjdCh2YWx1ZSkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggNWFiMDA3ZmMxN2Y2NGU5
Y2JkMjhjMTliNWZkNzM5NmVhY2Y5ZDJkMy4uNmYyMzM2ODczNTJjMGJmZGY0YTU5NjQxZjkyNmI4
MTBkNWFmMWUyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5jcHAKQEAgLTMyMiwxMSArMzIyLDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBm
b3JtYXRlRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgRGF0ZVRpbWVGb3JtYXQgZm9ybWF0
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
LSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQor
ICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwg
dGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0
aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7Ci0KICAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBhc1VUQ1ZhcmlhbnQKICAgICAgICAg
PyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYykKICAgICAgICAgOiB0aGlz
RGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CkBAIC01MzksMTAgKzUzOCwxMCBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyhFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50
aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNl
OjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5z
dGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogICAgIAotICAg
IERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAK
ICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCkpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9y
KGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiSW52YWxpZCBEYXRlIikpKTsKIApAQCAtNTg3LDEwICs1ODYs
MTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVT
dHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERh
dGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nh
c3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlz
RGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
IAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFs
dWUpOyAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGZvcm1hdExvY2FsZURhdGUoZXhlYywg
dGhpc0RhdGVPYmosIHRoaXNEYXRlT2JqLT5pbnRlcm5hbE51bWJlcigpLCBMb2NhbGVEYXRlQW5k
VGltZSkpOwogfQogCkBAIC01OTksMTAgKzU5OCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNUb0xvY2FsZURhdGVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0g
ICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAg
ICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRo
aXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhp
c0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGZvcm1hdExvY2FsZURhdGUoZXhlYywgdGhpc0RhdGVPYmosIHRoaXNEYXRlT2Jq
LT5pbnRlcm5hbE51bWJlcigpLCBMb2NhbGVEYXRlKSk7CiB9CiAKQEAgLTYxMSwxMCArNjEwLDEw
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvTG9jYWxlVGlt
ZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwg
RGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWlj
Q2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRo
aXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUp
OwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNW
YWx1ZSk7IAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZm9ybWF0TG9jYWxlRGF0ZShleGVj
LCB0aGlzRGF0ZU9iaiwgdGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCksIExvY2FsZVRpbWUp
KTsKIH0KIApAQCAtNjQ2LDEwICs2NDUsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jR2V0VGltZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1
ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRl
T2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBp
ZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgc2NvcGUpOwogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc0RhdGVJbnN0
YW5jZSh0aGlzVmFsdWUpLT5pbnRlcm5hbFZhbHVlKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUodGhpc0RhdGVPYmotPmludGVybmFsVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykK
QEAgLTY1NywxMSArNjU3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY0dldEZ1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmog
PSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChV
TkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5z
dGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAg
aWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c05hTigpKTsKQEAgLTY3MywxMSArNjcyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICgh
dGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byog
dGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUp
OworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2Jq
ID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVV
VEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTY4OSwxMSArNjg3LDEwIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1vbnRoKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwot
ICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisg
ICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0
aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRo
aXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTcwNSwxMSArNzAyLDEwIEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEV4ZWNTdGF0
ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6Omlu
Zm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5j
ZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5z
dGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+
Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTcyMSwxMSArNzE3
LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERhdGUo
RXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0
YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0
ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9i
aikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAg
IERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAK
LQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNE
YXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVU
aW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtNzM3LDEx
ICs3MzIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0
VVRDRGF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwg
RGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWlj
Q2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRo
aXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUp
OwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNW
YWx1ZSk7IAotCiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1l
ID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGV4ZWMpOwogICAgIGlmICghZ3Jl
Z29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7
CkBAIC03NTMsMTEgKzc0NywxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNHZXREYXkoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJp
dHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpz
RHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElL
RUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5j
ZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5E
YXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAo
IWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFO
KCkpOwpAQCAtNzY5LDExICs3NjIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0VVRDRGF5KEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVl
LmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVP
YmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlm
IChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRl
SW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3Jl
Z29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7
CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc05hTigpKTsKQEAgLTc4NSwxMSArNzc3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEhvdXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICgh
dGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byog
dGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUp
OworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2Jq
ID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUo
ZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc05hTigpKTsKQEAgLTgwMSwxMSArNzkyLDEwIEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwot
ICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisg
ICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0
aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRo
aXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTgxNywxMSArODA3LDEwIEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMoRXhlY1N0
YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6
aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3Rh
bmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJ
bnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODMzLDExICs4MjIs
MTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTWlu
dXRlcyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0
ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2Fz
dDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNE
YXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwog
Ci0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1
ZSk7IAotCiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0g
dGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGV4ZWMpOwogICAgIGlmICghZ3JlZ29y
aWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CkBA
IC04NDksMTEgKzgzNywxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90
b0Z1bmNHZXRTZWNvbmRzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVy
aXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBq
c0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJ
S0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFu
Y2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYg
KCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05h
TigpKTsKQEAgLTg2NSwxMSArODUyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlz
VmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlz
RGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7Cisg
ICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBh
c0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhl
eGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODgxLDEwICs4NjcsMTAgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRzKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgp
OwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkp
CisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZt
LCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2Uq
IHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCiAgICAgZG91YmxlIG1p
bGxpID0gdGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4o
bWlsbGkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODk5
LDEwICs4ODUsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
R2V0VVRDTWlsbGlzZWNvbmRzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmog
PSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChV
TkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5z
dGFuY2UodGhpc1ZhbHVlKTsgCiAgICAgZG91YmxlIG1pbGxpID0gdGhpc0RhdGVPYmotPmludGVy
bmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4obWlsbGkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtOTE3LDExICs5MDMsMTAgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQoRXhlY1N0
YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhp
c1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6
aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3Rh
bmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJ
bnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtOTMzLDExICs5MTgs
MTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VGltZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3Rh
bmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRl
SW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2Jq
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAg
RGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAot
CiAgICAgZG91YmxlIG1pbGxpID0gdGltZUNsaXAoZXhlYy0+YXJndW1lbnQoMCkudG9OdW1iZXIo
ZXhlYykpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIobWlsbGkpOwpAQCAtOTUwLDEwICs5MzQs
MTAgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKEV4ZWNT
dGF0ZSogZXhlYywgaW50IG51bUFyZ3NUb1VzZSwKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRz
KHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5
bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VM
WSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBz
Y29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2Uo
dGhpc1ZhbHVlKTsKICAgICBkb3VibGUgbWlsbGkgPSB0aGlzRGF0ZU9iai0+aW50ZXJuYWxOdW1i
ZXIoKTsKIAogICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpIHx8IHN0ZDo6aXNuYW4obWls
bGkpKSB7CkBAIC05OTIsMTAgKzk3NiwxMCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc2V0TmV3
VmFsdWVGcm9tRGF0ZUFyZ3MoRXhlY1N0YXRlKiBleGVjLCBpbnQgbnVtQXJnc1RvVXNlLAogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAg
aWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBh
dXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNW
YWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0Rh
dGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOwogICAgIGlmICghZXhlYy0+YXJndW1l
bnRDb3VudCgpKSB7CiAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOYU4oKTsKICAgICAgICAg
dGhpc0RhdGVPYmotPnNldEludGVybmFsVmFsdWUodm0sIHJlc3VsdCk7CkBAIC0xMTA3LDEwICsx
MDkxLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFll
YXIoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJ
bnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8
RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0
ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAot
ICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUp
OwogICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpKSB7IAogICAgICAgICBKU1ZhbHVlIHJl
c3VsdCA9IGpzTmFOKCk7CiAgICAgICAgIHRoaXNEYXRlT2JqLT5zZXRJbnRlcm5hbFZhbHVlKHZt
LCByZXN1bHQpOwpAQCAtMTE1MiwxMSArMTEzNiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRZZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhp
c1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhp
c0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOwor
ICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0g
YXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhl
Yyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc05hTigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhjZXB0aW9uSGVscGVycy5jcHAKaW5kZXggOTgyNjhlNTkzYTljYzlkMGZiZWIxNjE2MDBlZjAw
OWY3ZTkyY2IzNS4uNjk5MTQ0YjRhN2VkMzcyZDlhOTM3YjY0YTQ5YzI3OWY5ZDNlN2ZhZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5j
cHAKQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24o
Vk0mIHZtLCBFeGNlcHRpb24qIGV4Y2VwdGlvbikKICAgICBpZiAoIWV4Y2VwdGlvbi0+dmFsdWUo
KS5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gZXhjZXB0
aW9uLT52YWx1ZSgpLmluaGVyaXRzKHZtLCBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I6OmluZm8o
KSk7CisgICAgcmV0dXJuIGV4Y2VwdGlvbi0+dmFsdWUoKS5pbmhlcml0czxUZXJtaW5hdGVkRXhl
Y3V0aW9uRXJyb3I+KHZtKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJv
cihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggZTA0MzEzZjE0NTFlNDYyMGQzNWU1ZmY0ZWMz
MzU5ODQ0ZDFlMjY5Mi4uZDBmZDc2MjQ3Y2JjMTZiNjBhNGJhMmU0ZDNiMzVlODhlNmU0OWZkOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmNwcApAQCAtODUsNyArODUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgSlNGdW5jdGlv
bjo6aW5mbygpKSkgeworICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8SlNGdW5jdGlvbj4odm0p
KSB7CiAgICAgICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPih0
aGlzVmFsdWUpOwogICAgICAgICBpZiAoZnVuY3Rpb24tPmlzSG9zdE9yQnVpbHRpbkZ1bmN0aW9u
KCkpIHsKICAgICAgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKQEAgLTk4LDcgKzk4LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmco
ZXhlYywgY2xhc3NTb3VyY2UudG9TdHJpbmdXaXRob3V0Q29weWluZygpKSk7CiAgICAgICAgIH0K
IAotICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBKU0FzeW5jRnVuY3Rpb246Omlu
Zm8oKSkpIHsKKyAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxKU0FzeW5jRnVuY3Rpb24+
KHZtKSkgewogICAgICAgICAgICAgU3RyaW5nIGZ1bmN0aW9uSGVhZGVyID0gZXhlY3V0YWJsZS0+
aXNBcnJvd0Z1bmN0aW9uKCkgPyAiYXN5bmMgIiA6ICJhc3luYyBmdW5jdGlvbiAiOwogCiAgICAg
ICAgICAgICBTdHJpbmdWaWV3IHNvdXJjZSA9IGV4ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVy
KCktPmdldFJhbmdlKApAQCAtMTE2LDcgKzExNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCBmdW5j
dGlvbkhlYWRlciwgZnVuY3Rpb24tPm5hbWUodm0pLCBzb3VyY2UpKTsKICAgICB9CiAKLSAgICBp
ZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBJbnRlcm5hbEZ1bmN0aW9uOjppbmZvKCkpKSB7Cisg
ICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxJbnRlcm5hbEZ1bmN0aW9uPih2bSkpIHsKICAgICAg
ICAgSW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb24gPSBhc0ludGVybmFsRnVuY3Rpb24odGhpc1Zh
bHVlKTsKICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywgImZ1bmN0aW9uICIsIGZ1bmN0aW9u
LT5uYW1lKCksICIoKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAppbmRleCAyZDliYjUwZWFl
ZTllZDNkMjQ4M2JiMjU1MThiMWQ4OGQ2N2Q0ZWY0Li43YjdjOGJhZTg4MTBmMDFjYzMwNjViOTgy
M2NmOGQ5ZTc1ZDk1ZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50ZXJuYWxGdW5jdGlvbi5oCkBAIC05MSw3ICs5MSw3IEBAIEludGVybmFsRnVuY3Rpb24qIGFz
SW50ZXJuYWxGdW5jdGlvbihKU1ZhbHVlKTsKIAogaW5saW5lIEludGVybmFsRnVuY3Rpb24qIGFz
SW50ZXJuYWxGdW5jdGlvbihKU1ZhbHVlIHZhbHVlKQogewotICAgIEFTU0VSVChhc09iamVjdCh2
YWx1ZSktPmluaGVyaXRzKCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSwgSW50ZXJuYWxGdW5jdGlv
bjo6aW5mbygpKSk7CisgICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHM8SW50ZXJu
YWxGdW5jdGlvbj4oKnZhbHVlLmdldE9iamVjdCgpLT52bSgpKSk7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEludGVybmFsRnVuY3Rpb24qPihhc09iamVjdCh2YWx1ZSkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggODc3MmFhMmE4ODhjYjA1NmNkYTcw
MDljMTU4NjkyMDI2MzMxMWNhMS4uNzE1MGJiZmM0NTBmMGExZDgyNGFhNjVmOTkxOWVlNjcyMjNh
YjEwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtMjg5LDcg
KzI4OSw3IEBAIEpTQXJyYXkqIGFzQXJyYXkoSlNWYWx1ZSk7CiAKIGlubGluZSBKU0FycmF5KiBh
c0FycmF5KEpTQ2VsbCogY2VsbCkKIHsKLSAgICBBU1NFUlQoY2VsbC0+aW5oZXJpdHMoKmNlbGwt
PnZtKCksIEpTQXJyYXk6OmluZm8oKSkpOworICAgIEFTU0VSVChjZWxsLT5pbmhlcml0czxKU0Fy
cmF5PigqY2VsbC0+dm0oKSkpOwogICAgIHJldHVybiBqc0Nhc3Q8SlNBcnJheSo+KGNlbGwpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCmluZGV4
IDExNWQ4YjNkMjU4YjlhYzk0YWJhZTczMTc0Y2I2MjA0MmEyNWUzZmQuLmI1Zjc3YmU1OTc0OWZl
Mzg2Y2YzM2NhMWVjOTQ0N2QyNGNjYmJlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuY3BwCkBAIC0zMDksMTQgKzMwOSwxNCBAQCB2b2lkIEpTVmFsdWU6
OmR1bXBGb3JCYWNrdHJhY2UoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICAgICAgb3V0LnBy
aW50ZigiJWxmIiwgYXNEb3VibGUoKSk7CiAgICAgZWxzZSBpZiAoaXNDZWxsKCkpIHsKICAgICAg
ICAgVk0mIHZtID0gKmFzQ2VsbCgpLT52bSgpOwotICAgICAgICBpZiAoYXNDZWxsKCktPmluaGVy
aXRzKHZtLCBKU1N0cmluZzo6aW5mbygpKSkgeworICAgICAgICBpZiAoYXNDZWxsKCktPmluaGVy
aXRzPEpTU3RyaW5nPih2bSkpIHsKICAgICAgICAgICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBhc1N0
cmluZyhhc0NlbGwoKSk7CiAgICAgICAgICAgICBjb25zdCBTdHJpbmdJbXBsKiBpbXBsID0gc3Ry
aW5nLT50cnlHZXRWYWx1ZUltcGwoKTsKICAgICAgICAgICAgIGlmIChpbXBsKQogICAgICAgICAg
ICAgICAgIG91dC5wcmludCgiXCIiLCBpbXBsLCAiXCIiKTsKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICBvdXQucHJpbnQoIih1bnJlc29sdmVkIHN0cmluZykiKTsKLSAgICAgICAg
fSBlbHNlIGlmIChhc0NlbGwoKS0+aW5oZXJpdHModm0sIFN0cnVjdHVyZTo6aW5mbygpKSkgewor
ICAgICAgICB9IGVsc2UgaWYgKGFzQ2VsbCgpLT5pbmhlcml0czxTdHJ1Y3R1cmU+KHZtKSkgewog
ICAgICAgICAgICAgb3V0LnByaW50KCJTdHJ1Y3R1cmVbICIsIGFzQ2VsbCgpLT5zdHJ1Y3R1cmUo
KS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAg
ICAgIG91dC5wcmludCgiIElEOiAiLCBhc0NlbGwoKS0+c3RydWN0dXJlSUQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKaW5kZXggMWE0NDk3ZTk2MGE4ZTU4
MTJjOGMyYzI4NWJmZjYyOWY0NTA0ZDI5OS4uMzY2YjBhMjdkYzcwNWRjMzg3NzRhNGRiZTQ5ODA0
Y2E0Y2UxODI2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
aApAQCAtMjM2LDYgKzIzNiw3IEBAIGNsYXNzIEpTVmFsdWUgewogICAgIGJvb2wgaXNDdXN0b21H
ZXR0ZXJTZXR0ZXIoKSBjb25zdDsKICAgICBib29sIGlzT2JqZWN0KCkgY29uc3Q7CiAgICAgYm9v
bCBpbmhlcml0cyhWTSYsIGNvbnN0IENsYXNzSW5mbyopIGNvbnN0OworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFRhcmdldD4gYm9vbCBpbmhlcml0cyhWTSYpIGNvbnN0OwogICAgIGNvbnN0IENsYXNz
SW5mbyogY2xhc3NJbmZvT3JOdWxsKFZNJikgY29uc3Q7CiAgICAgICAgIAogICAgIC8vIEV4dHJh
Y3RpbmcgdGhlIHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0pTVmFsdWVJbmxpbmVzLmgKaW5kZXggYWE1MWRkNWQ3NjZkMDk0NTYyNTkzYzlmNmNkOWM3NjU0
YzIyMDE4MC4uYjVhNGI0YmRiZWU5OGMwMzQwNDhhZWNlMTY1NjRmM2ExZTRkNWM1OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBA
IC03ODUsNiArNzg1LDEyIEBAIGlubGluZSBib29sIEpTVmFsdWU6OmluaGVyaXRzKFZNJiB2bSwg
Y29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pIGNvbnN0CiAgICAgcmV0dXJuIGlzQ2VsbCgpICYm
IGFzQ2VsbCgpLT5pbmhlcml0cyh2bSwgY2xhc3NJbmZvKTsKIH0KIAordGVtcGxhdGU8dHlwZW5h
bWUgVGFyZ2V0PgoraW5saW5lIGJvb2wgSlNWYWx1ZTo6aW5oZXJpdHMoVk0mIHZtKSBjb25zdAor
eworICAgIHJldHVybiBpc0NlbGwoKSAmJiBhc0NlbGwoKS0+aW5oZXJpdHM8VGFyZ2V0Pih2bSk7
Cit9CisKIGlubGluZSBjb25zdCBDbGFzc0luZm8qIEpTVmFsdWU6OmNsYXNzSW5mb09yTnVsbChW
TSYgdm0pIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmNsYXNzSW5m
byh2bSkgOiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDYXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAppbmRl
eCAxODU3ZjY4ZTY0NWFiZDIzNjhkODI3ZDU1MGVjMzEzZGFiNmFhYmJmLi4wYzVkNGVhOGY4MzZj
OGZmODFlNDU4OTk1ZGJjMWE3MjJkM2MzNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Nhc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Nhc3QuaApAQCAtNTksNiArNTksNyBAQCBpbmxpbmUgVG8ganNDYXN0KEpTVmFsdWUgZnJv
bSkKICAgICBtYWNybyhKU1dlYWtNYXAsIEpTVHlwZTo6SlNXZWFrTWFwVHlwZSwgSlNUeXBlOjpK
U1dlYWtNYXBUeXBlKSBcCiAgICAgbWFjcm8oTnVtYmVyT2JqZWN0LCBKU1R5cGU6Ok51bWJlck9i
amVjdFR5cGUsIEpTVHlwZTo6TnVtYmVyT2JqZWN0VHlwZSkgXAogICAgIG1hY3JvKFByb3h5T2Jq
ZWN0LCBKU1R5cGU6OlByb3h5T2JqZWN0VHlwZSwgSlNUeXBlOjpQcm94eU9iamVjdFR5cGUpIFwK
KyAgICBtYWNybyhSZWdFeHBPYmplY3QsIEpTVHlwZTo6UmVnRXhwT2JqZWN0VHlwZSwgSlNUeXBl
OjpSZWdFeHBPYmplY3RUeXBlKSBcCiAgICAgbWFjcm8oRGlyZWN0QXJndW1lbnRzLCBKU1R5cGU6
OkRpcmVjdEFyZ3VtZW50c1R5cGUsIEpTVHlwZTo6RGlyZWN0QXJndW1lbnRzVHlwZSkgXAogICAg
IG1hY3JvKFNjb3BlZEFyZ3VtZW50cywgSlNUeXBlOjpTY29wZWRBcmd1bWVudHNUeXBlLCBKU1R5
cGU6OlNjb3BlZEFyZ3VtZW50c1R5cGUpIFwKICAgICBtYWNybyhDbG9uZWRBcmd1bWVudHMsIEpT
VHlwZTo6Q2xvbmVkQXJndW1lbnRzVHlwZSwgSlNUeXBlOjpDbG9uZWRBcmd1bWVudHNUeXBlKSBc
CkBAIC03OCw1MiArNzksNjAgQEAgRk9SX0VBQ0hfSlNfRFlOQU1JQ19DQVNUX0pTX1RZUEVfT1ZF
UkxPQUQoRk9SV0FSRF9ERUNMQVJFX09WRVJMT0FEX0NMQVNTKQogCiBuYW1lc3BhY2UgSlNDYXN0
aW5nSGVscGVycyB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFRvLCB0eXBlbmFtZSBGcm9tPgotaW5s
aW5lIFRvIGpzRHluYW1pY0Nhc3RHZW5lcmljSW1wbChWTSYgdm0sIEZyb20qIGZyb20pCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIEZyb20+CitpbmxpbmUgYm9vbCBpbmhlcml0
c0dlbmVyaWNJbXBsKFZNJiB2bSwgRnJvbSogZnJvbSkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KCFz
dGQ6OmlzX3NhbWU8SlNPYmplY3QqLCBUbyo+Ojp2YWx1ZSwgIlRoaXMgZW5zdXJlcyBvdXIgb3Zl
cmxvYWRzIHdvcmsiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGws
IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8VG8+Ojp0eXBlPjo6dmFsdWUgJiYgc3RkOjpp
c19iYXNlX29mPEpTQ2VsbCwgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcG9pbnRlcjxGcm9tPjo6dHlw
ZT46OnZhbHVlLCAiSlMgY2FzdGluZyBleHBlY3RzIHRoYXQgdGhlIHR5cGVzIHlvdSBhcmUgY2Fz
dGluZyB0by9mcm9tIGFyZSBzdWJjbGFzc2VzIG9mIEpTQ2VsbCIpOwotICAgIGlmIChMSUtFTFko
ZnJvbS0+SlNDZWxsOjppbmhlcml0cyh2bSwgc3RkOjpyZW1vdmVfcG9pbnRlcjxUbz46OnR5cGU6
OmluZm8oKSkpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VG8+KGZyb20pOwotICAgIHJl
dHVybiBudWxscHRyOworICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfc2FtZTxKU09iamVjdCos
IFRhcmdldCo+Ojp2YWx1ZSwgIlRoaXMgZW5zdXJlcyBvdXIgb3ZlcmxvYWRzIHdvcmsiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIFRhcmdldD46OnZhbHVlICYm
IHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8RnJv
bT46OnR5cGU+Ojp2YWx1ZSwgIkpTIGNhc3RpbmcgZXhwZWN0cyB0aGF0IHRoZSB0eXBlcyB5b3Ug
YXJlIGNhc3RpbmcgdG8vZnJvbSBhcmUgc3ViY2xhc3NlcyBvZiBKU0NlbGwiKTsKKyAgICAvLyBE
byBub3QgdXNlIGluaGVyaXRzPFRhcmdldD4odm0pIHNpbmNlIGluaGVyaXRzPFQ+IGRlcGVuZHMg
b24gdGhpcyBmdW5jdGlvbi4KKyAgICByZXR1cm4gZnJvbS0+SlNDZWxsOjppbmhlcml0cyh2bSwg
VGFyZ2V0OjppbmZvKCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJv
bT4KLWlubGluZSBUbyBqc0R5bmFtaWNDYXN0SlNUeXBlSW1wbChWTSYgdm0sIEZyb20qIGZyb20s
IEpTVHlwZSBmaXJzdFR5cGUsIEpTVHlwZSBsYXN0VHlwZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFRh
cmdldCwgdHlwZW5hbWUgRnJvbT4KK2lubGluZSBib29sIGluaGVyaXRzSlNUeXBlSW1wbChWTSYg
dm0sIEZyb20qIGZyb20sIEpTVHlwZSBmaXJzdFR5cGUsIEpTVHlwZSBsYXN0VHlwZSkKIHsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIFRhcmdldD46OnZhbHVlICYm
IHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8RnJv
bT46OnR5cGU+Ojp2YWx1ZSwgIkpTIGNhc3RpbmcgZXhwZWN0cyB0aGF0IHRoZSB0eXBlcyB5b3Ug
YXJlIGNhc3RpbmcgdG8vZnJvbSBhcmUgc3ViY2xhc3NlcyBvZiBKU0NlbGwiKTsKICAgICBib29s
IGNhbkNhc3QgPSBmaXJzdFR5cGUgPD0gZnJvbS0+dHlwZSgpICYmIGZyb20tPnR5cGUoKSA8PSBs
YXN0VHlwZTsKLSAgICBBU1NFUlRfVU5VU0VEKHZtLCBjYW5DYXN0ID09IGpzRHluYW1pY0Nhc3RH
ZW5lcmljSW1wbDxUbz4odm0sIGZyb20pKTsKLSAgICBpZiAoTElLRUxZKGNhbkNhc3QpKQotICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VG8+KGZyb20pOwotICAgIHJldHVybiBudWxscHRyOwor
ICAgIEFTU0VSVF9VTlVTRUQodm0sIGNhbkNhc3QgPT0gZnJvbS0+SlNDZWxsOjppbmhlcml0cyh2
bSwgVGFyZ2V0OjppbmZvKCkpKTsKKyAgICByZXR1cm4gY2FuQ2FzdDsKIH0KIAogLy8gQysrIGhh
cyBiYWQgc3ludGF4IHNvIHdlIG5lZWQgdG8gdXNlIHRoaXMgc3RydWN0IGJlY2F1c2UgQysrIGRv
ZXNuJ3QgaGF2ZSBhCiAvLyB3YXkgdG8gc2F5IHRoYXQgd2UgYXJlIG92ZXJsb2FkaW5nIGp1c3Qg
dGhlIGZpcnN0IHR5cGUgaW4gYSB0ZW1wbGF0ZSBsaXN0Li4uCi10ZW1wbGF0ZTx0eXBlbmFtZSB0
bz4KLXN0cnVjdCBKU0R5bmFtaWNDYXN0VHJhaXRzIHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
bywgdHlwZW5hbWUgRnJvbT4KLSAgICBzdGF0aWMgaW5saW5lIFRvIGNhc3QoVk0mIHZtLCBGcm9t
KiBmcm9tKSB7IHJldHVybiBqc0R5bmFtaWNDYXN0R2VuZXJpY0ltcGw8VG8+KHZtLCBmcm9tKTsg
fQordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0Pgorc3RydWN0IEluaGVyaXRzVHJhaXRzIHsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBGcm9tPgorICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpbmhlcml0
cyhWTSYgdm0sIEZyb20qIGZyb20pIHsgcmV0dXJuIGluaGVyaXRzR2VuZXJpY0ltcGw8VGFyZ2V0
Pih2bSwgZnJvbSk7IH0KIH07CiAKICNkZWZpbmUgREVGSU5FX1RSQUlUU19GT1JfSlNfVFlQRV9P
VkVSTE9BRChjbGFzc05hbWUsIGZpcnN0SlNUeXBlLCBsYXN0SlNUeXBlKSBcCiAgICAgdGVtcGxh
dGU8PiBcCi0gICAgc3RydWN0IEpTRHluYW1pY0Nhc3RUcmFpdHM8Y2xhc3NOYW1lKj4geyBcCi0g
ICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFRvLCB0eXBlbmFtZSBGcm9tPiBcCi0gICAgICAgIHN0
YXRpYyBpbmxpbmUgVG8gY2FzdChWTSYgdm0sIEZyb20qIGZyb20pIHsgcmV0dXJuIGpzRHluYW1p
Y0Nhc3RKU1R5cGVJbXBsPFRvPih2bSwgZnJvbSwgZmlyc3RKU1R5cGUsIGxhc3RKU1R5cGUpOyB9
IFwKKyAgICBzdHJ1Y3QgSW5oZXJpdHNUcmFpdHM8Y2xhc3NOYW1lPiB7IFwKKyAgICAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRnJvbT4gXAorICAgICAgICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJp
dHMoVk0mIHZtLCBGcm9tKiBmcm9tKSB7IHJldHVybiBpbmhlcml0c0pTVHlwZUltcGw8Y2xhc3NO
YW1lLCBGcm9tPih2bSwgZnJvbSwgc3RhdGljX2Nhc3Q8SlNUeXBlPihmaXJzdEpTVHlwZSksIHN0
YXRpY19jYXN0PEpTVHlwZT4obGFzdEpTVHlwZSkpOyB9IFwKICAgICB9OyBcCiAKIEZPUl9FQUNI
X0pTX0RZTkFNSUNfQ0FTVF9KU19UWVBFX09WRVJMT0FEKERFRklORV9UUkFJVFNfRk9SX0pTX1RZ
UEVfT1ZFUkxPQUQpCiAKICN1bmRlZiBERUZJTkVfVFJBSVRTX0ZPUl9KU19UWVBFX09WRVJMT0FE
CiAKKwordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBGcm9tPgorYm9vbCBpbmhl
cml0cyhWTSYgdm0sIEZyb20qIGZyb20pCit7CisgICAgdXNpbmcgRGlzcGF0Y2hlciA9IEluaGVy
aXRzVHJhaXRzPFRhcmdldD47CisgICAgcmV0dXJuIERpc3BhdGNoZXI6OnRlbXBsYXRlIGluaGVy
aXRzKHZtLCBmcm9tKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDYXN0aW5nSGVscGVycwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUbywgdHlwZW5hbWUgRnJvbT4KIFRvIGpzRHluYW1pY0Nhc3QoVk0m
IHZtLCBGcm9tKiBmcm9tKQogewotICAgIHR5cGVkZWYgSlNDYXN0aW5nSGVscGVyczo6SlNEeW5h
bWljQ2FzdFRyYWl0czx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jdjx0eXBlbmFtZSBzdGQ6OnJlbW92
ZV9wb2ludGVyPFRvPjo6dHlwZT46OnR5cGU+IERpc3BhdGNoZXI7Ci0gICAgcmV0dXJuIERpc3Bh
dGNoZXI6OnRlbXBsYXRlIGNhc3Q8VG8+KHZtLCBmcm9tKTsKKyAgICB1c2luZyBEaXNwYXRjaGVy
ID0gSlNDYXN0aW5nSGVscGVyczo6SW5oZXJpdHNUcmFpdHM8dHlwZW5hbWUgc3RkOjpyZW1vdmVf
Y3Y8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcG9pbnRlcjxUbz46OnR5cGU+Ojp0eXBlPjsKKyAgICBp
ZiAoTElLRUxZKERpc3BhdGNoZXI6OnRlbXBsYXRlIGluaGVyaXRzKHZtLCBmcm9tKSkpCisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxUbz4oZnJvbSk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFRvPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGwuaAppbmRleCBjYWRjZjc3ZGI2ZDBlNzY5Yjg1MzU5N2EwZWZiZGExZWNhOTE3OWQ2Li5kZTBh
YWE5ZTZhMDJmMTMxNjQ4OTI2Y2UyYzE3ZTRmNzYyYTk0MzE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuaApAQCAtMTE2LDYgKzExNiw3IEBAIGNsYXNzIEpTQ2VsbCA6IHB1
YmxpYyBIZWFwQ2VsbCB7CiAgICAgYm9vbCBpc0N1c3RvbUdldHRlclNldHRlcigpIGNvbnN0Owog
ICAgIGJvb2wgaXNQcm94eSgpIGNvbnN0OwogICAgIGJvb2wgaW5oZXJpdHMoVk0mLCBjb25zdCBD
bGFzc0luZm8qKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQ+IGJvb2wgaW5o
ZXJpdHMoVk0mKSBjb25zdDsKICAgICBib29sIGlzQVBJVmFsdWVXcmFwcGVyKCkgY29uc3Q7CiAg
ICAgCiAgICAgLy8gRWFjaCBjZWxsIGhhcyBhIGJ1aWx0LWluIGxvY2suIEN1cnJlbnRseSBpdCdz
IHNpbXBseSBhdmFpbGFibGUgZm9yIHVzZSBpZiB5b3UgbmVlZCBpdC4gSXQncwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCmluZGV4IGNjZmY2YmQ1YTk4
YzIwMmZkMmI0YWEwZWIxNjVmZWQ2ODEyNzE4ZjguLmY2Y2IxY2Q5ZWE2MDBiODhkOGMwYTk5MjJj
ZWQ4ZDYyYmQ4MGNiMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGxJbmxpbmVzLmgKQEAgLTI2NSw2ICsyNjUsMTIgQEAgaW5saW5lIGJvb2wgSlNDZWxsOjppbmhl
cml0cyhWTSYgdm0sIGNvbnN0IENsYXNzSW5mbyogaW5mbykgY29uc3QKICAgICByZXR1cm4gY2xh
c3NJbmZvKHZtKS0+aXNTdWJDbGFzc09mKGluZm8pOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
YXJnZXQ+CitpbmxpbmUgYm9vbCBKU0NlbGw6OmluaGVyaXRzKFZNJiB2bSkgY29uc3QKK3sKKyAg
ICByZXR1cm4gSlNDYXN0aW5nSGVscGVyczo6aW5oZXJpdHM8VGFyZ2V0Pih2bSwgdGhpcyk7Cit9
CisKIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBKU0NlbGw6OmZhc3RHZXRPd25Qcm9wZXJ0eShWTSYg
dm0sIFN0cnVjdHVyZSYgc3RydWN0dXJlLCBQcm9wZXJ0eU5hbWUgbmFtZSkKIHsKICAgICBBU1NF
UlQoY2FuVXNlRmFzdEdldE93blByb3BlcnR5KHN0cnVjdHVyZSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAwNGM4YjIyNzk5NjMwMDExZjdi
ZjQwMTU2YzZjZjQwMTBmMDNkNjNjLi5iZWE5MjFlMmIzMjFkYWJhMjdlY2QzNjQxZGIwODg1NjEz
YzAxZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNw
cApAQCAtMzEyLDcgKzMxMiw3IEBAIGNsYXNzIFJldHJpZXZlQ2FsbGVyRnVuY3Rpb25GdW5jdG9y
IHsKIAogICAgICAgICBKU0NlbGwqIGNhbGxlZSA9IHZpc2l0b3ItPmNhbGxlZSgpLmFzQ2VsbCgp
OwogCi0gICAgICAgIGlmIChjYWxsZWUgJiYgY2FsbGVlLT5pbmhlcml0cygqY2FsbGVlLT52bSgp
LCBKU0JvdW5kRnVuY3Rpb246OmluZm8oKSkpCisgICAgICAgIGlmIChjYWxsZWUgJiYgY2FsbGVl
LT5pbmhlcml0czxKU0JvdW5kRnVuY3Rpb24+KCpjYWxsZWUtPnZtKCkpKQogICAgICAgICAgICAg
cmV0dXJuIFN0YWNrVmlzaXRvcjo6Q29udGludWU7CiAKICAgICAgICAgaWYgKCFtX2hhc0ZvdW5k
RnJhbWUgJiYgKGNhbGxlZSAhPSBtX3RhcmdldENhbGxlZSkpCkBAIC0zNTMsNyArMzUzLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHUKICAgICBKU1ZhbHVlIGNhbGxlciA9IHJldHJpZXZlQ2Fs
bGVyRnVuY3Rpb24oZXhlYywgdGhpc09iaik7CiAKICAgICAvLyBTZWUgRVM1LjEgMTUuMy41LjQg
LSBGdW5jdGlvbi5jYWxsZXIgbWF5IG5vdCBiZSB1c2VkIHRvIHJldHJpZXZlIGEgc3RyaWN0IGNh
bGxlci4KLSAgICBpZiAoIWNhbGxlci5pc09iamVjdCgpIHx8ICFhc09iamVjdChjYWxsZXIpLT5p
bmhlcml0cyh2bSwgSlNGdW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlmICghY2FsbGVyLmlzT2Jq
ZWN0KCkgfHwgIWFzT2JqZWN0KGNhbGxlciktPmluaGVyaXRzPEpTRnVuY3Rpb24+KHZtKSkgewog
ICAgICAgICAvLyBJdCBpc24ndCBhIEpTRnVuY3Rpb24sIGJ1dCBpZiBpdCBpcyBhIEpTQ2FsbGVl
IGZyb20gYSBwcm9ncmFtIG9yIGV2YWwgY2FsbCBvciBhbiBpbnRlcm5hbCBjb25zdHJ1Y3Rvciwg
cmV0dXJuIG51bGwuCiAgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTQ2FsbGVlKj4odm0sIGNh
bGxlcikgfHwganNEeW5hbWljQ2FzdDxJbnRlcm5hbEZ1bmN0aW9uKj4odm0sIGNhbGxlcikpCiAg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKQEAgLTQ1MSw3ICs0
NTEsNyBAQCB2b2lkIEpTRnVuY3Rpb246OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyhKU09i
amVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBpZiAodGhpc09iamVjdC0+aXNCdWlsdGluRnVuY3Rpb24oKSAmJiAhdGhpc09iamVjdC0+
aGFzUmVpZmllZExlbmd0aCgpKQogICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAoKHRoaXNPYmplY3QtPmlz
QnVpbHRpbkZ1bmN0aW9uKCkgfHwgdGhpc09iamVjdC0+aW5oZXJpdHModm0sIEpTQm91bmRGdW5j
dGlvbjo6aW5mbygpKSkgJiYgIXRoaXNPYmplY3QtPmhhc1JlaWZpZWROYW1lKCkpCisgICAgICAg
ICAgICBpZiAoKHRoaXNPYmplY3QtPmlzQnVpbHRpbkZ1bmN0aW9uKCkgfHwgdGhpc09iamVjdC0+
aW5oZXJpdHM8SlNCb3VuZEZ1bmN0aW9uPih2bSkpICYmICF0aGlzT2JqZWN0LT5oYXNSZWlmaWVk
TmFtZSgpKQogICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKHZtLnByb3BlcnR5TmFt
ZXMtPm5hbWUpOwogICAgICAgICB9CiAgICAgfQpAQCAtNzUyLDcgKzc1Miw3IEBAIEpTRnVuY3Rp
b246OlByb3BlcnR5U3RhdHVzIEpTRnVuY3Rpb246OnJlaWZ5TGF6eUJvdW5kTmFtZUlmTmVlZGVk
KFZNJiB2bSwgRXhlY1N0CiAKICAgICBpZiAoaXNCdWlsdGluRnVuY3Rpb24oKSkKICAgICAgICAg
cmVpZnlOYW1lKHZtLCBleGVjKTsKLSAgICBlbHNlIGlmICh0aGlzLT5pbmhlcml0cyh2bSwgSlNC
b3VuZEZ1bmN0aW9uOjppbmZvKCkpKSB7CisgICAgZWxzZSBpZiAodGhpcy0+aW5oZXJpdHM8SlNC
b3VuZEZ1bmN0aW9uPih2bSkpIHsKICAgICAgICAgRnVuY3Rpb25SYXJlRGF0YSogcmFyZURhdGEg
PSB0aGlzLT5yYXJlRGF0YSh2bSk7CiAgICAgICAgIFN0cmluZyBuYW1lID0gbWFrZVN0cmluZygi
Ym91bmQgIiwgc3RhdGljX2Nhc3Q8TmF0aXZlRXhlY3V0YWJsZSo+KG1fZXhlY3V0YWJsZS5nZXQo
KSktPm5hbWUoKSk7CiAgICAgICAgIHVuc2lnbmVkIGluaXRpYWxBdHRyaWJ1dGVzID0gUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4
IDQ2MWUwMDNkZmE1MDRmZmU1MTJlODQ0ZGI4ODY0MTJkNTJlMjAxMDIuLjAxZTFiY2JlMmRhZmU0
MDI2MzNmMzc5YThmNjBjM2M3NjVkZDU4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBlbnF1ZXVlSm9iKEV4ZWNTdGF0ZSogZXhlYykK
IAogICAgIEpTVmFsdWUgam9iID0gZXhlYy0+YXJndW1lbnQoMCk7CiAgICAgSlNWYWx1ZSBhcmd1
bWVudHMgPSBleGVjLT5hcmd1bWVudCgxKTsKLSAgICBBU1NFUlQoYXJndW1lbnRzLmluaGVyaXRz
KHZtLCBKU0FycmF5OjppbmZvKCkpKTsKKyAgICBBU1NFUlQoYXJndW1lbnRzLmluaGVyaXRzPEpT
QXJyYXk+KHZtKSk7CiAKICAgICBnbG9iYWxPYmplY3QtPnF1ZXVlTWljcm90YXNrKGNyZWF0ZUpT
Sm9iKHZtLCBqb2IsIGpzQ2FzdDxKU0FycmF5Kj4oYXJndW1lbnRzKSkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBjZWZlNmQ1NWE3
MjlkY2Y5NDFiMjllZjlkNmIwYTIzNzEwNGRkOTQ5Li42YWI3MDIzM2Y2NmI1ZTNlZDUyZDMxYTg3
NmQyYmVmN2E4Y2M5ZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKQEAgLTkyNSwxNCArOTI1LDYgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3Qg
OiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgUmVmUHRyPFRocmVhZExv
Y2FsQ2FjaGU+IG1fdGhyZWFkTG9jYWxDYWNoZTsKIH07CiAKLUpTR2xvYmFsT2JqZWN0KiBhc0ds
b2JhbE9iamVjdChKU1ZhbHVlKTsKLQotaW5saW5lIEpTR2xvYmFsT2JqZWN0KiBhc0dsb2JhbE9i
amVjdChKU1ZhbHVlIHZhbHVlKQotewotICAgIEFTU0VSVChhc09iamVjdCh2YWx1ZSktPmlzR2xv
YmFsT2JqZWN0KCkpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihhc09iamVj
dCh2YWx1ZSkpOwotfQotCiBpbmxpbmUgSlNBcnJheSogY29uc3RydWN0RW1wdHlBcnJheShFeGVj
U3RhdGUqIGV4ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGggPSAwLCBKU1ZhbHVlIG5l
d1RhcmdldCA9IEpTVmFsdWUoKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJv
bWlzZURlZmVycmVkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQuY3BwCmluZGV4IDE3OWJhNzZmZTJkZWNkZTQ5ODJmOWJiMDUwOThi
ODdlODU4MWNlOTguLjQ0OWNjOWU4ZDMzNGVlNWY5YzBkZDRjZWM5OGRkN2Y3MTlkMzEzYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIEpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQqIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShFeGVjU3RhdGUqIGV4
ZWMsIEpTCiAKICAgICBKU1ZhbHVlIHByb21pc2UgPSBkZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVByaXZhdGVOYW1lKCkpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIEFTU0VSVChwcm9taXNlLmlu
aGVyaXRzKHZtLCBKU0ludGVybmFsUHJvbWlzZTo6aW5mbygpKSk7CisgICAgQVNTRVJUKHByb21p
c2UuaW5oZXJpdHM8SlNJbnRlcm5hbFByb21pc2U+KHZtKSk7CiAgICAgSlNWYWx1ZSByZXNvbHZl
ID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJl
c29sdmVQcml2YXRlTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxs
cHRyKTsKICAgICBKU1ZhbHVlIHJlamVjdCA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZWplY3RQcml2YXRlTmFtZSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oCmluZGV4
IGVlMDE1ZTI2OTRiNWQ2ZmQwN2E3ZTk5YjQ0MjA4NTI3MjM0NjE4ZWMuLmZkM2U0ZTBlNWUyMTJi
NzY2YWNiZjAxOTBiZWYwYzdiZDQ4OGVlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaApAQCAtMTQ1LDcgKzE0NSw3IEBA
IGlubGluZSBKU0xleGljYWxFbnZpcm9ubWVudDo6SlNMZXhpY2FsRW52aXJvbm1lbnQoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwKIAogaW5saW5lIEpTTGV4aWNhbEVudmlyb25tZW50KiBh
c0FjdGl2YXRpb24oSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUp
LT5pbmhlcml0cygqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCksIEpTTGV4aWNhbEVudmlyb25tZW50
OjppbmZvKCkpKTsKKyAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5pbmhlcml0czxKU0xleGlj
YWxFbnZpcm9ubWVudD4oKnZhbHVlLmdldE9iamVjdCgpLT52bSgpKSk7CiAgICAgcmV0dXJuIGpz
Q2FzdDxKU0xleGljYWxFbnZpcm9ubWVudCo+KGFzT2JqZWN0KHZhbHVlKSk7CiB9CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IGVjZGJk
MDM3YjIxOGZmOTMyNjc4MWViNTAyZDAwZjVkZDAzZDlkZDUuLmIzOGQ4OGM3YWYyNzk1YzdlZmI2
Yzg2YmFiNmIyOTFkOTlkNWUxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuY3BwCkBAIC0xNDMsMTEgKzE0MywxMSBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUgdW53cmFwQm94ZWRQcmltaXRpdmUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQog
ICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIEpT
T2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgaWYgKG9iamVjdC0+aW5oZXJp
dHModm0sIE51bWJlck9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAob2JqZWN0LT5pbmhlcml0czxO
dW1iZXJPYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKG9iamVjdC0+dG9OdW1i
ZXIoZXhlYykpOwotICAgIGlmIChvYmplY3QtPmluaGVyaXRzKHZtLCBTdHJpbmdPYmplY3Q6Omlu
Zm8oKSkpCisgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8U3RyaW5nT2JqZWN0Pih2bSkpCiAgICAg
ICAgIHJldHVybiBvYmplY3QtPnRvU3RyaW5nKGV4ZWMpOwotICAgIGlmIChvYmplY3QtPmluaGVy
aXRzKHZtLCBCb29sZWFuT2JqZWN0OjppbmZvKCkpKQorICAgIGlmIChvYmplY3QtPmluaGVyaXRz
PEJvb2xlYW5PYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIG9iamVjdC0+dG9QcmltaXRpdmUo
ZXhlYyk7CiAKICAgICAvLyBEbyBub3QgdW53cmFwIFN5bWJvbE9iamVjdCB0byBTeW1ib2wuIEl0
IGlzIG5vdCBwZXJmb3JtZWQgaW4gdGhlIHNwZWMuCkBAIC0yMzUsNyArMjM1LDcgQEAgU3RyaW5n
aWZpZXI6OlN0cmluZ2lmaWVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSByZXBsYWNlciwgSlNW
YWx1ZSBzcGFjZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgSlNPYmplY3QqIHJlcGxhY2VyT2Jq
ZWN0ID0gYXNPYmplY3QobV9yZXBsYWNlcik7Ci0gICAgaWYgKHJlcGxhY2VyT2JqZWN0LT5pbmhl
cml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSkgeworICAgIGlmIChyZXBsYWNlck9iamVjdC0+aW5o
ZXJpdHM8SlNBcnJheT4odm0pKSB7CiAgICAgICAgIG1fdXNpbmdBcnJheVJlcGxhY2VyID0gdHJ1
ZTsKICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBqc0Nhc3Q8SlNBcnJheSo+KHJlcGxhY2VyT2Jq
ZWN0KTsKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gYXJyYXktPmdldChleGVjLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgpLnRvVUludDMyKGV4ZWMpOwpAQCAtMjQ2LDggKzI0Niw4IEBAIFN0
cmluZ2lmaWVyOjpTdHJpbmdpZmllcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgcmVwbGFjZXIs
IEpTVmFsdWUgc3BhY2UpCiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9u
KCkpKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBpZiAobmFtZS5pc09i
amVjdCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFhc09iamVjdChuYW1lKS0+aW5oZXJpdHMo
dm0sIE51bWJlck9iamVjdDo6aW5mbygpKSAmJiAhYXNPYmplY3QobmFtZSktPmluaGVyaXRzKHZt
LCBTdHJpbmdPYmplY3Q6OmluZm8oKSkpCisgICAgICAgICAgICBpZiAoYXV0byogbmFtZU9iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgbmFtZSkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIW5hbWVPYmplY3QtPmluaGVyaXRzPE51bWJlck9iamVjdD4odm0pICYmICFuYW1lT2Jq
ZWN0LT5pbmhlcml0czxTdHJpbmdPYmplY3Q+KHZtKSkKICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFuYW1lLmlzTnVtYmVyKCkgJiYgIW5hbWUu
aXNTdHJpbmcoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTY0OSw3ICs2NDksNyBA
QCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQog
ICAgICAgICAgICAgYXJyYXlTdGFydFN0YXRlOgogICAgICAgICAgICAgY2FzZSBBcnJheVN0YXJ0
U3RhdGU6IHsKICAgICAgICAgICAgICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKLSAg
ICAgICAgICAgICAgICBBU1NFUlQoaXNKU0FycmF5KGFzT2JqZWN0KGluVmFsdWUpKSB8fCBhc09i
amVjdChpblZhbHVlKS0+aW5oZXJpdHModm0sIEpTQXJyYXk6OmluZm8oKSkpOworICAgICAgICAg
ICAgICAgIEFTU0VSVChhc09iamVjdChpblZhbHVlKS0+aW5oZXJpdHM8SlNBcnJheT4odm0pKTsK
ICAgICAgICAgICAgICAgICBpZiAobWFya2VkU3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJl
Y3Vyc2lvbikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vy
cm9yKG1fZXhlYywgc2NvcGUpOwogCkBAIC03MDQsNyArNzA0LDcgQEAgTkVWRVJfSU5MSU5FIEpT
VmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgIG9iamVj
dFN0YXJ0U3RhdGU6CiAgICAgICAgICAgICBjYXNlIE9iamVjdFN0YXJ0U3RhdGU6IHsKICAgICAg
ICAgICAgICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKLSAgICAgICAgICAgICAgICBB
U1NFUlQoIWlzSlNBcnJheShhc09iamVjdChpblZhbHVlKSkgJiYgIWFzT2JqZWN0KGluVmFsdWUp
LT5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgQVNTRVJU
KCFhc09iamVjdChpblZhbHVlKS0+aW5oZXJpdHM8SlNBcnJheT4odm0pKTsKICAgICAgICAgICAg
ICAgICBpZiAobWFya2VkU3RhY2suc2l6ZSgpID4gbWF4aW11bUZpbHRlclJlY3Vyc2lvbikKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYywg
c2NvcGUpOwogCkBAIC03NjUsNyArNzY1LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2Vy
Ojp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09i
amVjdChpblZhbHVlKTsKLSAgICAgICAgICAgICAgICBpZiAoaXNKU0FycmF5KG9iamVjdCkgfHwg
b2JqZWN0LT5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSkKKyAgICAgICAgICAgICAgICBp
ZiAob2JqZWN0LT5pbmhlcml0czxKU0FycmF5Pih2bSkpCiAgICAgICAgICAgICAgICAgICAgIGdv
dG8gYXJyYXlTdGFydFN0YXRlOwogICAgICAgICAgICAgICAgIGdvdG8gb2JqZWN0U3RhcnRTdGF0
ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNQcm9taXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5j
cHAKaW5kZXggZjk2ZmVhMTg2ZTViNWQ0YzUyMjc3MGJmNGNkYzc5YTlkNzNmZTFmOS4uM2U2ODg3
ZTU5NWM4NzU2MTk3Y2Q2MGZkZDJjZjQyMWQ2OWFjNjU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgSlNQcm9taXNl
KiBKU1Byb21pc2U6OnJlc29sdmUoSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKICAgICBBU1NFUlQoIWFyZ3VtZW50cy5oYXNPdmVyZmxvd2VkKCkpOwogICAgIGF1
dG8gcmVzdWx0ID0gY2FsbChleGVjLCBwcm9taXNlUmVzb2x2ZUZ1bmN0aW9uLCBjYWxsVHlwZSwg
Y2FsbERhdGEsIGdsb2JhbE9iamVjdC5wcm9taXNlQ29uc3RydWN0b3IoKSwgYXJndW1lbnRzKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBBU1NFUlQocmVz
dWx0LmluaGVyaXRzKHZtLCBKU1Byb21pc2U6OmluZm8oKSkpOworICAgIEFTU0VSVChyZXN1bHQu
aW5oZXJpdHM8SlNQcm9taXNlPih2bSkpOwogICAgIHJldHVybiBqc0Nhc3Q8SlNQcm9taXNlKj4o
cmVzdWx0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNQcm9taXNlRGVmZXJyZWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9taXNlRGVmZXJyZWQuY3BwCmluZGV4IGJhYTk5MjQ4ZjBkOGJlZThkNzhmNzVhNTVjNzc2ZmY4
ZTlmNzVhZmQuLmQ3ZjdkNzg5ZmUxNDNmNzA5NjIxZTNjNGVhYjljMjU4YTc1MzQ3ZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5j
cHAKQEAgLTYzLDcgKzYzLDcgQEAgSlNQcm9taXNlRGVmZXJyZWQqIEpTUHJvbWlzZURlZmVycmVk
OjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2wKIAogICAgIEpTVmFs
dWUgcHJvbWlzZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHByb21pc2UuaW5oZXJpdHModm0sIEpTUHJvbWlz
ZTo6aW5mbygpKSk7CisgICAgQVNTRVJUKHByb21pc2UuaW5oZXJpdHM8SlNQcm9taXNlPih2bSkp
OwogICAgIEpTVmFsdWUgcmVzb2x2ZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS5yZXNvbHZlUHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgSlNWYWx1ZSByZWplY3QgPSBkZWZlcnJl
ZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0UHJpdmF0
ZU5hbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94
eU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaApp
bmRleCAyYzk4MTYzNTE5YjM2MTAzOGJlMTQyM2E1ZmFkNzkxN2I2NjI4NTljLi5lYmIxZmEyM2Nj
NGE3MzhmYzRhZDg0ZGMwNDA1MGMzM2EyZjQwNjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb3h5T2JqZWN0LmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLWNsYXNzIFByb3h5T2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgeworY2xh
c3MgUHJveHlPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCAwZjUyYWEy
NGFiM2U0ZmZhZWZhNTE1M2M3YmY5ZjMyYTYwYzg3MGYwLi41MDY4NTcyODkxOTVhMTIxYzlhZDE2
NjE3NDZiN2I4NGI0NTBjNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgSlNPYmplY3Qq
IGNvbnN0cnVjdFJlZ0V4cChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IEEKICAgICBKU1ZhbHVlIHBhdHRlcm5BcmcgPSBhcmdzLmF0KDApOwogICAg
IEpTVmFsdWUgZmxhZ3NBcmcgPSBhcmdzLmF0KDEpOwogCi0gICAgYm9vbCBpc1BhdHRlcm5SZWdF
eHAgPSBwYXR0ZXJuQXJnLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSk7CisgICAg
Ym9vbCBpc1BhdHRlcm5SZWdFeHAgPSBwYXR0ZXJuQXJnLmluaGVyaXRzPFJlZ0V4cE9iamVjdD4o
dm0pOwogICAgIGJvb2wgY29uc3RydWN0QXNSZWdleHAgPSBpc1JlZ0V4cCh2bSwgZXhlYywgcGF0
dGVybkFyZyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmlu
ZGV4IGRhNzYwZWMwNGYwYTc4MjdhYTY1N2NjZGI2NzkyOGMxZDZlZTBhNWIuLjAxNjhlNTg1OTgw
ZmFkN2QxOWRhYjRjMjA1ZDcxOWJmYjE4YjhmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApAQCAtODYsNyArODYsNyBAQCBKU09i
amVjdCogY29uc3RydWN0UmVnRXhwKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgY29uc3Qg
QXJnTGlzdCYsIEpTT2JqZWN0KgogCiBpbmxpbmUgUmVnRXhwQ29uc3RydWN0b3IqIGFzUmVnRXhw
Q29uc3RydWN0b3IoSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUp
LT5pbmhlcml0cygqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCksIFJlZ0V4cENvbnN0cnVjdG9yOjpp
bmZvKCkpKTsKKyAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5pbmhlcml0czxSZWdFeHBDb25z
dHJ1Y3Rvcj4oKnZhbHVlLmdldE9iamVjdCgpLT52bSgpKSk7CiAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oYXNPYmplY3QodmFsdWUpKTsKIH0KIApAQCAtMTQwLDcg
KzE0MCw3IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBpc1JlZ0V4cChWTSYgdm0sIEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2YWx1ZSkKICAgICBpZiAoIW1hdGNoVmFsdWUuaXNVbmRlZmluZWQoKSkK
ICAgICAgICAgcmV0dXJuIG1hdGNoVmFsdWUudG9Cb29sZWFuKGV4ZWMpOwogCi0gICAgcmV0dXJu
IG9iamVjdC0+aW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKTsKKyAgICByZXR1cm4g
b2JqZWN0LT5pbmhlcml0czxSZWdFeHBPYmplY3Q+KHZtKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBlc1NwZWNSZWdFeHBDcmVhdGUoRXhlY1N0YXRlKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAppbmRleCA0MjUyNDljMjMw
NGY5MzY4ZDdiMGFkY2M5ZjI3YzIyZWM1ZTAzOGYyLi45YTQ2NjI5OTZmYzhhZTFmNmViNGFjNTU5
YmEwOWUyZGQ1MjlmYmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE9iamVjdC5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAgdm9pZCBSZWdFeHBPYmplY3Q6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAg
QVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKKyAgICBBU1NFUlQodHlwZSgpID09IFJlZ0V4
cE9iamVjdFR5cGUpOwogfQogCiB2b2lkIFJlZ0V4cE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpAQCAtNjQsNyArNjUsNyBAQCBib29sIFJl
Z0V4cE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydAogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgaWYgKHBy
b3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sYXN0SW5kZXgpIHsKLSAgICAgICAgUmVn
RXhwT2JqZWN0KiByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdChvYmplY3QpOworICAgICAgICBSZWdF
eHBPYmplY3QqIHJlZ0V4cCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPihvYmplY3QpOwogICAgICAg
ICB1bnNpZ25lZCBhdHRyaWJ1dGVzID0gcmVnRXhwLT5tX2xhc3RJbmRleElzV3JpdGFibGUgPyBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSA6IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5OwogICAgICAgICBzbG90LnNldFZh
bHVlKHJlZ0V4cCwgYXR0cmlidXRlcywgcmVnRXhwLT5nZXRMYXN0SW5kZXgoKSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwpAQCAtMTEwLDcgKzExMSw3IEBAIGJvb2wgUmVnRXhwT2JqZWN0OjpkZWZp
bmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKHBy
b3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sYXN0SW5kZXgpIHsKLSAgICAgICAgUmVn
RXhwT2JqZWN0KiByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdChvYmplY3QpOworICAgICAgICBSZWdF
eHBPYmplY3QqIHJlZ0V4cCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPihvYmplY3QpOwogICAgICAg
ICBpZiAoZGVzY3JpcHRvci5jb25maWd1cmFibGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5jb25m
aWd1cmFibGUoKSkKICAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZXhlYywgc2NvcGUsIHNo
b3VsZFRocm93LCBBU0NJSUxpdGVyYWwoVW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZUNvbmZp
Z3VyYWJpbGl0eUVycm9yKSk7CiAgICAgICAgIGlmIChkZXNjcmlwdG9yLmVudW1lcmFibGVQcmVz
ZW50KCkgJiYgZGVzY3JpcHRvci5lbnVtZXJhYmxlKCkpCkBAIC0xMzksMTIgKzE0MCwxMiBAQCBi
b29sIFJlZ0V4cE9iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhl
Y1N0YXRlKiBleGVjLCBQcm9wZXJ0eQogCiBzdGF0aWMgYm9vbCByZWdFeHBPYmplY3RTZXRMYXN0
SW5kZXhTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIHZhbHVlKQogewotICAgIHJldHVybiBhc1JlZ0V4cE9iamVjdChKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNvZGUo
dmFsdWUpLCB0cnVlKTsKKyAgICByZXR1cm4ganNDYXN0PFJlZ0V4cE9iamVjdCo+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKS0+c2V0TGFzdEluZGV4KGV4ZWMsIEpTVmFsdWU6OmRlY29kZSh2
YWx1ZSksIHRydWUpOwogfQogCiBzdGF0aWMgYm9vbCByZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhO
b25TdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIHZhbHVlKQogewotICAgIHJldHVybiBhc1JlZ0V4cE9iamVjdChKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNvZGUodmFs
dWUpLCBmYWxzZSk7CisgICAgcmV0dXJuIGpzQ2FzdDxSZWdFeHBPYmplY3QqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNvZGUodmFs
dWUpLCBmYWxzZSk7CiB9CiAKIGJvb2wgUmVnRXhwT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKQEAgLTE1Niw4ICsxNTcsOCBAQCBib29sIFJlZ0V4cE9i
amVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLAogICAgICAgICByZXR1cm4gb3JkaW5hcnlTZXRTbG93KGV4ZWMsIHRoaXNPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QudGhpc1ZhbHVlKCksIHNsb3QuaXNTdHJpY3RN
b2RlKCkpOwogCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sYXN0
SW5kZXgpIHsKLSAgICAgICAgYm9vbCByZXN1bHQgPSBhc1JlZ0V4cE9iamVjdChjZWxsKS0+c2V0
TGFzdEluZGV4KGV4ZWMsIHZhbHVlLCBzbG90LmlzU3RyaWN0TW9kZSgpKTsKLSAgICAgICAgc2xv
dC5zZXRDdXN0b21WYWx1ZShhc1JlZ0V4cE9iamVjdChjZWxsKSwgc2xvdC5pc1N0cmljdE1vZGUo
KQorICAgICAgICBib29sIHJlc3VsdCA9IHRoaXNPYmplY3QtPnNldExhc3RJbmRleChleGVjLCB2
YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSk7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tVmFsdWUo
dGhpc09iamVjdCwgc2xvdC5pc1N0cmljdE1vZGUoKQogICAgICAgICAgICAgPyByZWdFeHBPYmpl
Y3RTZXRMYXN0SW5kZXhTdHJpY3QKICAgICAgICAgICAgIDogcmVnRXhwT2JqZWN0U2V0TGFzdElu
ZGV4Tm9uU3RyaWN0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggZGE3OTA5MDVjNGU1ZWYxZDY0MTY1
YzBhOTRjZDY3ZjgwNmVjMWM0ZS4uNGY3YWI1M2QzN2JlNTY5NjYzOWY5YmFhZjhlYTQ2MTY0NzUz
M2M0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgK
QEAgLTI3LDkgKzI3LDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgCi1jbGFzcyBSZWdFeHBP
YmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CitjbGFzcyBSZWdFeHBPYmplY3QgZmlu
YWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBKU05v
bkZpbmFsT2JqZWN0IEJhc2U7CisgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7CiAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0
eU5hbWVzOwogCiAgICAgc3RhdGljIFJlZ0V4cE9iamVjdCogY3JlYXRlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIFJlZ0V4cCogcmVnRXhwKQpAQCAtMTM4LDEyICsxMzgsNCBAQCBjbGFz
cyBSZWdFeHBPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdWludDhfdCBt
X2xhc3RJbmRleElzV3JpdGFibGU7CiB9OwogCi1SZWdFeHBPYmplY3QqIGFzUmVnRXhwT2JqZWN0
KEpTVmFsdWUpOwotCi1pbmxpbmUgUmVnRXhwT2JqZWN0KiBhc1JlZ0V4cE9iamVjdChKU1ZhbHVl
IHZhbHVlKQotewotICAgIEFTU0VSVChhc09iamVjdCh2YWx1ZSktPmluaGVyaXRzKCp2YWx1ZS5n
ZXRPYmplY3QoKS0+dm0oKSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKTsKLSAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8UmVnRXhwT2JqZWN0Kj4oYXNPYmplY3QodmFsdWUpKTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJv
dG90eXBlLmNwcAppbmRleCAzNzQwMmEwMjM2MDhlNWNlNmEwY2Y2ZDI0MGQyMzkzMDQ4NjNkNTJk
Li4zN2E5ZGVjMTc3MmFlNjc3MGEwYzA4YWY2YzVkN2IxOWI3NjNkNWE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTEwMywx
NCArMTAzLDE1IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5j
VGVzdEZhc3QoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkK
KyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlz
VmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBleGVjLT5h
cmd1bWVudCgwKS50b1N0cmluZ09yTnVsbChleGVjKTsKICAgICBFWENFUFRJT05fQVNTRVJUKCEh
c2NvcGUuZXhjZXB0aW9uKCkgPT0gIXN0cmluZyk7CiAgICAgaWYgKCFzdHJpbmcpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgc2NvcGUucmVsZWFz
ZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwT2JqZWN0
KHRoaXNWYWx1ZSktPnRlc3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJp
bmcpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT50ZXN0
KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgc3RyaW5nKSkpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY0V4ZWMoRXhlY1N0YXRlKiBl
eGVjKQpAQCAtMTE5LDE5ICsxMjAsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBy
ZWdFeHBQcm90b0Z1bmNFeGVjKEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6
OmluZm8oKSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3Qq
Pih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCAiQnVpbHRpbiBSZWdFeHAgZXhlYyBj
YW4gb25seSBiZSBjYWxsZWQgb24gYSBSZWdFeHAgb2JqZWN0Iik7CiAgICAgSlNTdHJpbmcqIHN0
cmluZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nT3JOdWxsKGV4ZWMpOwogICAgIEVYQ0VQ
VElPTl9BU1NFUlQoISFzY29wZS5leGNlcHRpb24oKSA9PSAhc3RyaW5nKTsKICAgICBpZiAoIXN0
cmluZykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cE9i
amVjdCh0aGlzVmFsdWUpLT5leGVjKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwg
c3RyaW5nKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWdleHAtPmV4ZWMoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJpbmcpKTsKIH0KIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QoRXhlY1N0YXRlKiBleGVj
KQogewotICAgIFJlZ0V4cE9iamVjdCogdGhpc09iamVjdCA9IGFzUmVnRXhwT2JqZWN0KGV4ZWMt
PnRoaXNWYWx1ZSgpKTsKKyAgICBSZWdFeHBPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UmVn
RXhwT2JqZWN0Kj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwogICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBq
c0Nhc3Q8SlNTdHJpbmcqPihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCF0
aGlzT2JqZWN0LT5yZWdFeHAoKS0+Z2xvYmFsKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUodGhpc09iamVjdC0+ZXhlYyhleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCks
IHN0cmluZykpOwpAQCAtMTQ0LDE3ICsxNDYsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCByZWdFeHBQcm90b0Z1bmNDb21waWxlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdF
eHBPYmplY3Q6OmluZm8oKSkpCisgICAgYXV0byogdGhpc1JlZ0V4cCA9IGpzRHluYW1pY0Nhc3Q8
UmVnRXhwT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzUmVn
RXhwKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCiAg
ICAgUmVnRXhwKiByZWdFeHA7CiAgICAgSlNWYWx1ZSBhcmcwID0gZXhlYy0+YXJndW1lbnQoMCk7
CiAgICAgSlNWYWx1ZSBhcmcxID0gZXhlYy0+YXJndW1lbnQoMSk7CiAgICAgCi0gICAgaWYgKGFy
ZzAuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkgeworICAgIGlmIChhdXRvKiBy
ZWdFeHBPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCBhcmcwKSkgewog
ICAgICAgICBpZiAoIWFyZzEuaXNVbmRlZmluZWQoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBzdXBwbHkgZmxh
Z3Mgd2hlbiBjb25zdHJ1Y3Rpbmcgb25lIFJlZ0V4cCBmcm9tIGFub3RoZXIuIikpOwotICAgICAg
ICByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdChhcmcwKS0+cmVnRXhwKCk7CisgICAgICAgIHJlZ0V4
cCA9IHJlZ0V4cE9iamVjdC0+cmVnRXhwKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgU3RyaW5n
IHBhdHRlcm4gPSBhcmcwLmlzVW5kZWZpbmVkKCkgPyBlbXB0eVN0cmluZygpIDogYXJnMC50b1dU
RlN0cmluZyhleGVjKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7CkBAIC0xNzIsMTAgKzE3NSwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHJlZ0V4cFByb3RvRnVuY0NvbXBpbGUoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICgh
cmVnRXhwLT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgc2Nv
cGUsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsIHJlZ0V4cC0+ZXJyb3JNZXNzYWdlKCkpKTsKIAot
ICAgIGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnNldFJlZ0V4cCh2bSwgcmVnRXhwKTsKKyAg
ICB0aGlzUmVnRXhwLT5zZXRSZWdFeHAodm0sIHJlZ0V4cCk7CiAgICAgc2NvcGUucmVsZWFzZSgp
OwotICAgIGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnNldExhc3RJbmRleChleGVjLCAwKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSk7CisgICAgdGhpc1JlZ0V4cC0+
c2V0TGFzdEluZGV4KGV4ZWMsIDApOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc1Jl
Z0V4cCk7CiB9CiAKIHR5cGVkZWYgc3RkOjphcnJheTxjaGFyLCA2ICsgMT4gRmxhZ3NTdHJpbmc7
IC8vIDYgZGlmZmVyZW50IGZsYWdzIGFuZCBhIG51bGwgY2hhcmFjdGVyIHRlcm1pbmF0b3IuCkBA
IC0yNTUsMTMgKzI1OCwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFBy
b3RvR2V0dGVyR2xvYmFsKEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwotICAgIGlmIChVTkxJS0VMWSghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBP
YmplY3Q6OmluZm8oKSkpKSB7Ci0gICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJl
Z0V4cFByb3RvdHlwZTo6aW5mbygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0
PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhw
KSkgeworICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4odm0p
KQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgi
VGhlIFJlZ0V4cC5wcm90b3R5cGUuZ2xvYmFsIGdldHRlciBjYW4gb25seSBiZSBjYWxsZWQgb24g
YSBSZWdFeHAgb2JqZWN0IikpOwogICAgIH0KIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNCb29sZWFuKGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpLT5nbG9iYWwoKSkp
OworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCkt
Pmdsb2JhbCgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJv
dG9HZXR0ZXJJZ25vcmVDYXNlKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTI3MCwxMyArMjc0LDE0IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJJZ25vcmVDYXNl
KEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlm
IChVTkxJS0VMWSghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkp
KSB7Ci0gICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cFByb3RvdHlwZTo6
aW5mbygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+
KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkgeworICAgICAgICBp
ZiAodGhpc1ZhbHVlLmluaGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4odm0pKQogICAgICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiVGhlIFJlZ0V4cC5wcm90
b3R5cGUuaWdub3JlQ2FzZSBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEgUmVnRXhwIG9i
amVjdCIpKTsKICAgICB9CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihh
c1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+aWdub3JlQ2FzZSgpKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+aWdub3Jl
Q2FzZSgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9H
ZXR0ZXJNdWx0aWxpbmUoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjg1LDEzICsyOTAsMTQgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlck11bHRpbGluZShFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoVU5M
SUtFTFkoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSkgewot
ICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBQcm90b3R5cGU6OmluZm8o
KSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwg
dGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpIHsKKyAgICAgICAgaWYgKHRo
aXNWYWx1ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5cGU+KHZtKSkKICAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlRoZSBSZWdFeHAucHJvdG90eXBl
Lm11bHRpbGluZSBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEgUmVnRXhwIG9iamVjdCIp
KTsKICAgICB9CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1JlZ0V4
cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+bXVsdGlsaW5lKCkpKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT5tdWx0aWxpbmUoKSkp
OwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyRG90
QWxsKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTMwMCwxMyArMzA2LDE0IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJEb3RBbGwoRXhlY1N0YXRlKiBleGVjKQog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmIChVTkxJS0VMWSghdGhp
c1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpKSB7Ci0gICAgICAgIGlm
ICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cFByb3RvdHlwZTo6aW5mbygpKSkKKyAgICBh
dXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlzVmFsdWUp
OworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkgeworICAgICAgICBpZiAodGhpc1ZhbHVlLmlu
aGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4odm0pKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
ZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiVGhlIFJlZ0V4cC5wcm90b3R5cGUuZG90QWxsIGdl
dHRlciBjYW4gb25seSBiZSBjYWxsZWQgb24gYSBSZWdFeHAgb2JqZWN0IikpOwogICAgIH0KICAg
ICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1JlZ0V4cE9iamVjdCh0
aGlzVmFsdWUpLT5yZWdFeHAoKS0+ZG90QWxsKCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT5kb3RBbGwoKSkpOwogfQogICAgIAogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclN0aWNreShFeGVjU3Rh
dGUqIGV4ZWMpCkBAIC0zMTUsMTMgKzMyMiwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHJlZ0V4cFByb3RvR2V0dGVyU3RpY2t5KEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmIChVTkxJS0VMWSghdGhpc1ZhbHVlLmluaGVyaXRz
KHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpKSB7Ci0gICAgICAgIGlmICh0aGlzVmFsdWUuaW5o
ZXJpdHModm0sIFJlZ0V4cFByb3RvdHlwZTo6aW5mbygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBq
c0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJ
S0VMWSghcmVnZXhwKSkgeworICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzPFJlZ0V4cFBy
b3RvdHlwZT4odm0pKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFT
Q0lJTGl0ZXJhbCgiVGhlIFJlZ0V4cC5wcm90b3R5cGUuc3RpY2t5IGdldHRlciBjYW4gb25seSBi
ZSBjYWxsZWQgb24gYSBSZWdFeHAgb2JqZWN0IikpOwogICAgIH0KICAgICAKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdF
eHAoKS0+c3RpY2t5KCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihy
ZWdleHAtPnJlZ0V4cCgpLT5zdGlja3koKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyVW5pY29kZShFeGVjU3RhdGUqIGV4ZWMpCkBAIC0zMzAs
MTMgKzMzOCwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0
dGVyVW5pY29kZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUo
KTsKLSAgICBpZiAoVU5MSUtFTFkoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0
OjppbmZvKCkpKSkgewotICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBQ
cm90b3R5cGU6OmluZm8oKSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdF
eHBPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpIHsK
KyAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5cGU+KHZtKSkKICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlRoZSBS
ZWdFeHAucHJvdG90eXBlLnVuaWNvZGUgZ2V0dGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbiBhIFJl
Z0V4cCBvYmplY3QiKSk7CiAgICAgfQogICAgIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNCb29sZWFuKGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpLT51bmljb2RlKCkp
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgp
LT51bmljb2RlKCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQ
cm90b0dldHRlckZsYWdzKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTQ2NiwxMyArNDc1LDE0IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2UoRXhlY1N0
YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKFVOTElL
RUxZKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkpIHsKLSAg
ICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwUHJvdG90eXBlOjppbmZvKCkp
KQorICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odm0sIHRo
aXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKSB7CisgICAgICAgIGlmICh0aGlz
VmFsdWUuaW5oZXJpdHM8UmVnRXhwUHJvdG90eXBlPih2bSkpCiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiKD86KSIpKSk7CiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwo
IlRoZSBSZWdFeHAucHJvdG90eXBlLnNvdXJjZSBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVkIG9u
IGEgUmVnRXhwIG9iamVjdCIpKTsKICAgICB9CiAKLSAgICBTdHJpbmcgcGF0dGVybiA9IGFzUmVn
RXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpLT5wYXR0ZXJuKCk7CisgICAgU3RyaW5nIHBh
dHRlcm4gPSByZWdleHAtPnJlZ0V4cCgpLT5wYXR0ZXJuKCk7CiAgICAgaWYgKHBhdHRlcm4uaXM4
Qml0KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVnRXhwUHJvdG9HZXR0ZXJT
b3VyY2VJbnRlcm5hbChleGVjLCBwYXR0ZXJuLCBwYXR0ZXJuLmNoYXJhY3RlcnM4KCksIHBhdHRl
cm4ubGVuZ3RoKCkpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlZ0V4cFByb3RvR2V0
dGVyU291cmNlSW50ZXJuYWwoZXhlYywgcGF0dGVybiwgcGF0dGVybi5jaGFyYWN0ZXJzMTYoKSwg
cGF0dGVybi5sZW5ndGgoKSkpOwpAQCAtNDgzLDcgKzQ5Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jU2VhcmNoRmFzdChFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAg
ICBSZWdFeHAqIHJlZ0V4cCA9IGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJlZ0V4cCgpOwor
ICAgIFJlZ0V4cCogcmVnRXhwID0ganNDYXN0PFJlZ0V4cE9iamVjdCo+KHRoaXNWYWx1ZSktPnJl
Z0V4cCgpOwogCiAgICAgSlNTdHJpbmcqIHN0cmluZyA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDApLnRvU3RyaW5nKGV4ZWMpOwogICAgIFN0cmluZyBzID0gc3RyaW5nLT52YWx1ZShleGVjKTsK
QEAgLTU5MCw3ICs2MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFBy
b3RvRnVuY1NwbGl0RmFzdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgLy8gMS4gW2hhbmRsZWQgYnkg
SlMgYnVpbHRpbl0gTGV0IHJ4IGJlIHRoZSB0aGlzIHZhbHVlLgogICAgIC8vIDIuIFtoYW5kbGVk
IGJ5IEpTIGJ1aWx0aW5dIElmIFR5cGUocngpIGlzIG5vdCBPYmplY3QsIHRocm93IGEgVHlwZUVy
cm9yIGV4Y2VwdGlvbi4KICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgp
OwotICAgIFJlZ0V4cCogcmVnZXhwID0gYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+cmVnRXhw
KCk7CisgICAgUmVnRXhwKiByZWdleHAgPSBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odGhpc1ZhbHVl
KS0+cmVnRXhwKCk7CiAKICAgICAvLyAzLiBbaGFuZGxlZCBieSBKUyBidWlsdGluXSBMZXQgUyBi
ZSA/IFRvU3RyaW5nKHN0cmluZykuCiAgICAgSlNTdHJpbmcqIGlucHV0U3RyaW5nID0gZXhlYy0+
YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IDI0ZmZmMDBhZDU3ODQ4YjMzZGRiNzBmMzkwMWU5ZmUx
NGMwZjc4ODAuLjUwNmM0YzViNGQwYTEyZDk1YmQ4OWY2ZjJiNjI3ZDZmNzdhMDg4MGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC03MSwxNCAr
NzEsNiBAQCBjbGFzcyBTdHJpbmdPYmplY3QgOiBwdWJsaWMgSlNXcmFwcGVyT2JqZWN0IHsKICAg
ICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmdPYmplY3QoVk0mLCBTdHJ1Y3R1cmUqKTsKIH07CiAK
LVN0cmluZ09iamVjdCogYXNTdHJpbmdPYmplY3QoSlNWYWx1ZSk7Ci0KLWlubGluZSBTdHJpbmdP
YmplY3QqIGFzU3RyaW5nT2JqZWN0KEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQVNTRVJUKGFzT2Jq
ZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBTdHJpbmdPYmpl
Y3Q6OmluZm8oKSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxTdHJpbmdPYmplY3QqPihhc09i
amVjdCh2YWx1ZSkpOwotfQotCiBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmdPYmplY3QqIGNvbnN0
cnVjdFN0cmluZyhWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiAKIC8vIEhlbHBlciBm
b3IgcHJvZHVjaW5nIGEgSlNTdHJpbmcgZm9yICdzdHJpbmcnLCB3aGVyZSAnc3RyaW5nJyB3YXMg
YmVlbiBwcm9kdWNlZCBieQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggNmU0MWVjN2IzODM4NzhjYTEwNmEyM2EyMjY2NjQ4MTE3
NGE2NmM4OS4uYTBkMzYwMTdkZjQ2OTE3MmJmMTNlNjE5ZDk4MmJhMzZkMTgxNDgwZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBA
IC01MzMsNyArNTMzLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNTdHJpbmcqIHJlcGxhY2VV
c2luZ1JlZ0V4cFNlYXJjaCgKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZSA9IHN0cmluZy0+dmFs
dWUoZXhlYyk7CiAgICAgdW5zaWduZWQgc291cmNlTGVuID0gc291cmNlLmxlbmd0aCgpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIFJlZ0V4cE9iamVjdCog
cmVnRXhwT2JqZWN0ID0gYXNSZWdFeHBPYmplY3Qoc2VhcmNoVmFsdWUpOworICAgIFJlZ0V4cE9i
amVjdCogcmVnRXhwT2JqZWN0ID0ganNDYXN0PFJlZ0V4cE9iamVjdCo+KHNlYXJjaFZhbHVlKTsK
ICAgICBSZWdFeHAqIHJlZ0V4cCA9IHJlZ0V4cE9iamVjdC0+cmVnRXhwKCk7CiAgICAgYm9vbCBn
bG9iYWwgPSByZWdFeHAtPmdsb2JhbCgpOwogICAgIGJvb2wgaGFzTmFtZWRDYXB0dXJlcyA9IHJl
Z0V4cC0+aGFzTmFtZWRDYXB0dXJlcygpOwpAQCAtOTU0LDcgKzk1NCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyKEV4ZWNTdGF0
ZSogZXhlYykKIEFMV0FZU19JTkxJTkUgSlNTdHJpbmcqIHJlcGxhY2UoCiAgICAgVk0mIHZtLCBF
eGVjU3RhdGUqIGV4ZWMsIEpTU3RyaW5nKiBzdHJpbmcsIEpTVmFsdWUgc2VhcmNoVmFsdWUsIEpT
VmFsdWUgcmVwbGFjZVZhbHVlKQogewotICAgIGlmIChzZWFyY2hWYWx1ZS5pbmhlcml0cyh2bSwg
UmVnRXhwT2JqZWN0OjppbmZvKCkpKQorICAgIGlmIChzZWFyY2hWYWx1ZS5pbmhlcml0czxSZWdF
eHBPYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIHJlcGxhY2VVc2luZ1JlZ0V4cFNlYXJjaCh2
bSwgZXhlYywgc3RyaW5nLCBzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKTsKICAgICByZXR1cm4g
cmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoKHZtLCBleGVjLCBzdHJpbmcsIHNlYXJjaFZhbHVlLCBy
ZXBsYWNlVmFsdWUpOwogfQpAQCAtOTgzLDcgKzk4Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhwKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAog
ICAgIEpTVmFsdWUgc2VhcmNoVmFsdWUgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBpZiAoIXNl
YXJjaFZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpCisgICAgaWYgKCFz
ZWFyY2hWYWx1ZS5pbmhlcml0czxSZWdFeHBPYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAogICAgIHNjb3BlLnJlbGVhc2UoKTsKQEAg
LTEwMjUsOCArMTAyNSw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJv
dG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICh0aGlzVmFsdWUuaXNTdHJp
bmcoKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpOwogCi0gICAg
aWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgU3RyaW5nT2JqZWN0OjppbmZvKCkpKQotICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzU3RyaW5nT2JqZWN0KHRoaXNWYWx1ZSktPmludGVy
bmFsVmFsdWUoKSk7CisgICAgYXV0byogc3RyaW5nT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxTdHJp
bmdPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoc3RyaW5nT2JqZWN0KQorICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHN0cmluZ09iamVjdC0+aW50ZXJuYWxWYWx1ZSgpKTsK
IAogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCmluZGV4IGQx
NjY2MTRkMWNiODQ0NTk3ZWE4OGVkNTY0YzNlMzk2YzVhMTgxMmUuLjNkNzk4YzZkY2U1ZWJiYTI1
ODEyZmM0MGEyODFiNzZiNDUxYmZmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcApAQCAtODUsNyArODUsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbFByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBTeW1ib2xUb1N0cmluZ1R5cGVFcnJvcik7
CiAgICAgICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gYXNPYmplY3QodGhpc1ZhbHVlKTsKLSAg
ICAgICAgaWYgKCF0aGlzT2JqZWN0LT5pbmhlcml0cyh2bSwgU3ltYm9sT2JqZWN0OjppbmZvKCkp
KQorICAgICAgICBpZiAoIXRoaXNPYmplY3QtPmluaGVyaXRzPFN5bWJvbE9iamVjdD4odm0pKQog
ICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUsIFN5bWJvbFRv
U3RyaW5nVHlwZUVycm9yKTsKICAgICAgICAgc3ltYm9sID0gYXNTeW1ib2woanNDYXN0PFN5bWJv
bE9iamVjdCo+KHRoaXNPYmplY3QpLT5pbnRlcm5hbFZhbHVlKCkpOwogICAgIH0KQEAgLTEwNiw3
ICsxMDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbFByb3RvRnVuY1Zh
bHVlT2YoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSwgU3ltYm9sVmFsdWVPZlR5cGVFcnJvcik7CiAKICAgICBKU09iamVjdCogdGhp
c09iamVjdCA9IGFzT2JqZWN0KHRoaXNWYWx1ZSk7Ci0gICAgaWYgKCF0aGlzT2JqZWN0LT5pbmhl
cml0cyh2bSwgU3ltYm9sT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghdGhpc09iamVjdC0+aW5o
ZXJpdHM8U3ltYm9sT2JqZWN0Pih2bSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIHNjb3BlLCBTeW1ib2xWYWx1ZU9mVHlwZUVycm9yKTsKIAogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNDYXN0PFN5bWJvbE9iamVjdCo+KHRoaXNPYmplY3QpLT5pbnRlcm5hbFZh
bHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFy
Vk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4
IDllMDhhZmVlMjVkYzgxYTE5NGU5YzA0NTk4YWJlY2ZhZDdkY2UwMGEuLjQyYTliNWY5NTI5NzQ2
MWYwY2IzNzM0Y2ViYWUzM2FkMWU2NzZjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvSlNEb2xsYXJWTS5jcHAKQEAgLTk0OSw3ICs5NDksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgY3VzdG9tR2V0QWNjZXNzb3IoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcgogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0VmFsdWUoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBSRUxF
QVNFX0FTU0VSVChKU1ZhbHVlOjpkZWNvZGUoc2xvdFZhbHVlKS5pbmhlcml0cyhleGVjLT52bSgp
LCBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI6OmluZm8oKSkpOworICAgIFJFTEVBU0VfQVNTRVJU
KEpTVmFsdWU6OmRlY29kZShzbG90VmFsdWUpLmluaGVyaXRzPEpTVGVzdEN1c3RvbUdldHRlclNl
dHRlcj4oZXhlYy0+dm0oKSkpOwogICAgIC8vIFBhc3NlZCBwcm9wZXJ0eSBob2xkZXIuCiAgICAg
cmV0dXJuIHNsb3RWYWx1ZTsKIH0KQEAgLTk3MSw3ICs5NzEsNyBAQCBzdGF0aWMgYm9vbCBjdXN0
b21TZXRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHNsb3RWYWx1ZSwgRW5j
b2RlZEpTVgogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAKLSAgICBSRUxFQVNFX0FTU0VS
VChKU1ZhbHVlOjpkZWNvZGUoc2xvdFZhbHVlKS5pbmhlcml0cyhleGVjLT52bSgpLCBKU1Rlc3RD
dXN0b21HZXR0ZXJTZXR0ZXI6OmluZm8oKSkpOworICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6
OmRlY29kZShzbG90VmFsdWUpLmluaGVyaXRzPEpTVGVzdEN1c3RvbUdldHRlclNldHRlcj4oZXhl
Yy0+dm0oKSkpOwogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpOwogICAgIFJFTEVBU0VfQVNTRVJUKHZhbHVlLmlzT2JqZWN0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmgKaW5k
ZXggMTQ0ODdmMDFjNmIyZGRkZWM1ZGM0MGUwNTQ4NjE2ZTQ3M2YwMjRhNy4uYWZjNWUxNjZjMWJj
ZGQzOGRlMGZlNmMzNzI5YjY0MTE4NDM1ODA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SGVscGVycy5oCkBAIC05NCwxMiArOTQsMTIg
QEAgQUxXQVlTX0lOTElORSBWZWN0b3I8dWludDhfdD4gY3JlYXRlU291cmNlQnVmZmVyRnJvbVZh
bHVlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGUKIAogQUxXQVlTX0lOTElORSBib29sIGlzV2ViQXNz
ZW1ibHlIb3N0RnVuY3Rpb24oVk0mIHZtLCBKU09iamVjdCogb2JqZWN0LCBXZWJBc3NlbWJseUZ1
bmN0aW9uKiYgd2FzbUZ1bmN0aW9uLCBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiomIHdhc21X
cmFwcGVyRnVuY3Rpb24pCiB7Ci0gICAgaWYgKG9iamVjdC0+aW5oZXJpdHModm0sIFdlYkFzc2Vt
Ymx5RnVuY3Rpb246OmluZm8oKSkpIHsKKyAgICBpZiAob2JqZWN0LT5pbmhlcml0czxXZWJBc3Nl
bWJseUZ1bmN0aW9uPih2bSkpIHsKICAgICAgICAgd2FzbUZ1bmN0aW9uID0ganNDYXN0PFdlYkFz
c2VtYmx5RnVuY3Rpb24qPihvYmplY3QpOwogICAgICAgICB3YXNtV3JhcHBlckZ1bmN0aW9uID0g
bnVsbHB0cjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGlmIChvYmplY3QtPmlu
aGVyaXRzKHZtLCBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlm
IChvYmplY3QtPmluaGVyaXRzPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uPih2bSkpIHsKICAg
ICAgICAgd2FzbVdyYXBwZXJGdW5jdGlvbiA9IGpzQ2FzdDxXZWJBc3NlbWJseVdyYXBwZXJGdW5j
dGlvbio+KG9iamVjdCk7CiAgICAgICAgIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7CiAgICAgICAg
IHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwCmluZGV4IDUyYzVkYTJiZDA5NmMz
YmNlZTJjODE0ZjYyZDM5NWZmOWFiOTM3MDQuLjdhMWFhMzgyOTYyNTMyZGRkYjRjMDUwZTA4YTI0
ZmMzNmQ0ZDIxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHAKQEAgLTYwLDcgKzYwLDcgQEAg
V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OldlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGcKIAogV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qIFdl
YkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogZnVuY3Rpb24sIHVuc2lnbmVkIGltcG9ydEluZGV4LCBK
U1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlLCBXYXNtOjpTaWduYXR1cmVJbmRleCBzaWdu
YXR1cmVJbmRleCkKIHsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFmdW5jdGlvbi0+aW5oZXJp
dHModm0sIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjppbmZvKCkpLCAiV2Ugc2hvdWxkIG5l
dmVyIGRvdWJsZSB3cmFwIGEgd3JhcHBlciBmdW5jdGlvbi4iKTsKKyAgICBBU1NFUlRfV0lUSF9N
RVNTQUdFKCFmdW5jdGlvbi0+aW5oZXJpdHM8V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24+KHZt
KSwgIldlIHNob3VsZCBuZXZlciBkb3VibGUgd3JhcCBhIHdyYXBwZXIgZnVuY3Rpb24uIik7CiAg
ICAgU3RyaW5nIG5hbWUgPSAiIjsKICAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0g
dm0uZ2V0SG9zdEZ1bmN0aW9uKGNhbGxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiwgTm9JbnRy
aW5zaWMsIGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9yLCBudWxscHRyLCBuYW1lKTsKICAg
ICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogcmVzdWx0ID0gbmV3IChOb3ROdWxsLCBhbGxv
Y2F0ZUNlbGw8V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24+KHZtLmhlYXApKSBXZWJBc3NlbWJs
eVdyYXBwZXJGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPndlYkFzc2Vt
Ymx5V3JhcHBlckZ1bmN0aW9uU3RydWN0dXJlKCksIFdhc206OkNhbGxhYmxlRnVuY3Rpb24geyBz
aWduYXR1cmVJbmRleCwgJmluc3RhbmNlLT5pbnN0YW5jZSgpLmltcG9ydEZ1bmN0aW9uSW5mbyhp
bXBvcnRJbmRleCktPndhc21Ub0VtYmVkZGVyU3R1YkV4ZWN1dGFibGVBZGRyZXNzIH0gKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAK
aW5kZXggZDc4ZTIyMGIyMDVkMzBlY2IwMzMzMGNkNjYwN2MyNDA3NmNlNGNhMy4uN2RkYTFmYTY2
MmU0ZDg1NDU1NjQ2MGMxOWU2MTVhM2IwMmI5YTJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKQEAgLTE1MSw3ICsxNTEsNyBA
QCBzdGF0aWMgUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKEV4ZWNTdGF0ZSYg
ZXhlYywgSlNWYWx1ZSB2YWx1ZSwgVmVjdAogICAgIGlmICh2YWx1ZS5pc1N0cmluZygpKQogICAg
ICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJpbmcoYXNTdHJpbmcodmFsdWUpLT52YWx1ZSgm
ZXhlYykpOwogCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8o
KSkpIHsKKyAgICBpZiAodmFsdWUuaW5oZXJpdHM8RGF0ZUluc3RhbmNlPih2bSkpIHsKICAgICAg
ICAgYXV0byBkYXRlVmFsdWUgPSB2YWx1ZVRvRGF0ZShleGVjLCB2YWx1ZSk7CiAgICAgICAgIGlm
ICghc3RkOjppc25hbihkYXRlVmFsdWUpKQogICAgICAgICAgICAgcmV0dXJuIElEQktleTo6Y3Jl
YXRlRGF0ZShkYXRlVmFsdWUpOwpAQCAtMTU5LDggKzE1OSw3IEBAIHN0YXRpYyBSZWZQdHI8SURC
S2V5PiBjcmVhdGVJREJLZXlGcm9tVmFsdWUoRXhlY1N0YXRlJiBleGVjLCBKU1ZhbHVlIHZhbHVl
LCBWZWN0CiAKICAgICBpZiAodmFsdWUuaXNPYmplY3QoKSkgewogICAgICAgICBKU09iamVjdCog
b2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwotICAgICAgICBpZiAoaXNKU0FycmF5KG9iamVjdCkg
fHwgb2JqZWN0LT5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSkgewotICAgICAgICAgICAg
SlNBcnJheSogYXJyYXkgPSBhc0FycmF5KG9iamVjdCk7CisgICAgICAgIGlmIChhdXRvKiBhcnJh
eSA9IGpzRHluYW1pY0Nhc3Q8SlNBcnJheSo+KHZtLCBvYmplY3QpKSB7CiAgICAgICAgICAgICBz
aXplX3QgbGVuZ3RoID0gYXJyYXktPmxlbmd0aCgpOwogCiAgICAgICAgICAgICBpZiAoc3RhY2su
Y29udGFpbnMoYXJyYXkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Db252ZXJ0RGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnZlcnREYXRlLmNwcAppbmRleCA4MGI1M2U4MjE3YTIzZDJiZTIzNTE3Yzc3N2M0NTM2NzFjM2Jl
ZjVkLi5jMzEyNTA5MDhlMjViYTVkNjAyZWFiM2UwMjlmNmI2OWIxMmRkYjUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcApAQCAtNDAsNyAr
NDAsNyBAQCBkb3VibGUgdmFsdWVUb0RhdGUoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlLmFz
TnVtYmVyKCk7Ci0gICAgaWYgKCF2YWx1ZS5pbmhlcml0cyhzdGF0ZS52bSgpLCBEYXRlSW5zdGFu
Y2U6OmluZm8oKSkpCisgICAgaWYgKCF2YWx1ZS5pbmhlcml0czxEYXRlSW5zdGFuY2U+KHN0YXRl
LnZtKCkpKQogICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGF0ZUluc3RhbmNlKj4odmFsdWUudG9P
YmplY3QoJnN0YXRlKSktPmludGVybmFsTnVtYmVyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggYmNmNjg3MDE3ZDY0ZjYz
ODNlYmJlZjI4MmM3ZjQzZDRmMmFkY2RlNC4uN2EzNTQ4NDA3YjI0NTAzZmNkNzRkMzlhM2M3ODk1
YjJjMDA5NDUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xv
YmFsT2JqZWN0LmNwcApAQCAtMTk1LDkgKzE5NSw5IEBAIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNPYmplY3QqIHRoaXNWYWx1ZSkKIAogU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogSlNET01HbG9iYWxPYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdAogewotICAgIGlmIChpbmhlcml0cyh2bSgpLCBKU0RPTVdpbmRvd0Jhc2U6OmluZm8o
KSkpCisgICAgaWYgKGluaGVyaXRzPEpTRE9NV2luZG93QmFzZT4odm0oKSkpCiAgICAgICAgIHJl
dHVybiBqc0Nhc3Q8Y29uc3QgSlNET01XaW5kb3dCYXNlKj4odGhpcyktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKLSAgICBpZiAoaW5oZXJpdHModm0oKSwgSlNXb3JrZXJHbG9iYWxTY29wZUJh
c2U6OmluZm8oKSkpCisgICAgaWYgKGluaGVyaXRzPEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlPih2
bSgpKSkKICAgICAgICAgcmV0dXJuIGpzQ2FzdDxjb25zdCBKU1dvcmtlckdsb2JhbFNjb3BlQmFz
ZSo+KHRoaXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgZGF0YUxvZygiVW5leHBl
Y3RlZCBnbG9iYWwgb2JqZWN0OiAiLCBKU1ZhbHVlKHRoaXMpLCAiXG4iKTsKICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IGNmN2Q5MDk3NDg2Nzk0NDYwMzYwYTU0ZDBjZGVk
NmI2ZThmZTU4MjQuLmU1ODlhZDY0Y2MzOTQwZjkyMDhhZTU4OGQ0MjFhZGEwOWNmYzFlYzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAK
QEAgLTQ1OSw5ICs0NTksOSBAQCBET01XaW5kb3cqIEpTRE9NV2luZG93Ojp0b1dyYXBwZWQoVk0m
IHZtLCBKU1ZhbHVlIHZhbHVlKQogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsK
LSAgICBpZiAob2JqZWN0LT5pbmhlcml0cyh2bSwgSlNET01XaW5kb3c6OmluZm8oKSkpCisgICAg
aWYgKG9iamVjdC0+aW5oZXJpdHM8SlNET01XaW5kb3c+KHZtKSkKICAgICAgICAgcmV0dXJuICZq
c0Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpLT53cmFwcGVkKCk7Ci0gICAgaWYgKG9iamVjdC0+
aW5oZXJpdHModm0sIEpTRE9NV2luZG93UHJveHk6OmluZm8oKSkpCisgICAgaWYgKG9iamVjdC0+
aW5oZXJpdHM8SlNET01XaW5kb3dQcm94eT4odm0pKQogICAgICAgICByZXR1cm4gJmpzQ2FzdDxK
U0RPTVdpbmRvd1Byb3h5Kj4ob2JqZWN0KS0+d3JhcHBlZCgpOwogICAgIHJldHVybiBudWxscHRy
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdl
dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3Vz
dG9tLmNwcAppbmRleCBmNGEwMjk0ZmY4ZThlNTcxZDQ1NTY1MTE0OTM5ZWRhMjEwZGM4Zjc0Li4w
M2I3YWUwNzE4NDFjMjVlNzIyMzRjODRjZTYwMDU0YzY1MWY3YjY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcApAQCAtNTcsNyAr
NTcsNyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBFdmVudFRhcmdldCYgdGFyZwogI3VuZGVmIFRSWV9UT19XUkFQX1dJVEhf
SU5URVJGQUNFCiAKICNkZWZpbmUgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFDRShpbnRlcmZh
Y2VOYW1lKSBcCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKUyMjaW50ZXJmYWNlTmFtZTo6
aW5mbygpKSkgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICh2YWx1ZS5pbmhlcml0czxK
UyMjaW50ZXJmYWNlTmFtZT4odm0pKSAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHJl
dHVybiAmanNDYXN0PEpTIyNpbnRlcmZhY2VOYW1lKj4oYXNPYmplY3QodmFsdWUpKS0+d3JhcHBl
ZCgpOwogCiBFdmVudFRhcmdldCogSlNFdmVudFRhcmdldDo6dG9XcmFwcGVkKFZNJiB2bSwgSlNW
YWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
CmluZGV4IDlmMzZlNzQ1ODM5NDYwMzQyYjczYjQ5YjAwM2EzODQ0NzE1Y2U0NjAuLjA5YTcwZjIy
ZTg4Y2YxY2I5ODdhZTdkNzE4MWNmZTI1OTUzNTk0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIGJvb2wgSlNOb2Rl
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2CiAKIEpTU2NvcGUqIEpTTm9kZTo6cHVzaEV2ZW50SGFuZGxlclNjb3BlKEV4
ZWNTdGF0ZSogZXhlYywgSlNTY29wZSogbm9kZSkgY29uc3QKIHsKLSAgICBpZiAoaW5oZXJpdHMo
ZXhlYy0+dm0oKSwgSlNIVE1MRWxlbWVudDo6aW5mbygpKSkKKyAgICBpZiAoaW5oZXJpdHM8SlNI
VE1MRWxlbWVudD4oZXhlYy0+dm0oKSkpCiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNI
VE1MRWxlbWVudCo+KHRoaXMpLT5wdXNoRXZlbnRIYW5kbGVyU2NvcGUoZXhlYywgbm9kZSk7CiAg
ICAgcmV0dXJuIG5vZGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1hQYXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKaW5kZXggMGRhNTEyOGZjZTRiNjFmNmE3ZDcz
NGUxMTgyY2UzODJiZjlmNTVjMS4uMTllOTJiNjI3OTk0NTJjZTNjYzZhNjViZjk0OWMyNWE3YTE4
MGM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aE5TUmVz
b2x2ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhO
U1Jlc29sdmVyQ3VzdG9tLmNwcApAQCAtMzUsNyArMzUsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiBSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiBKU1hQYXRoTlNSZXNvbHZlcjo6dG9XcmFwcGVk
KFZNJiB2bSwgRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAodmFs
dWUuaW5oZXJpdHModm0sIEpTWFBhdGhOU1Jlc29sdmVyOjppbmZvKCkpKQorICAgIGlmICh2YWx1
ZS5pbmhlcml0czxKU1hQYXRoTlNSZXNvbHZlcj4odm0pKQogICAgICAgICByZXR1cm4gJmpzQ2Fz
dDxKU1hQYXRoTlNSZXNvbHZlcio+KGFzT2JqZWN0KHZhbHVlKSktPndyYXBwZWQoKTsKIAogICAg
IGF1dG8gcmVzdWx0ID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZShzdGF0ZSwgdmFs
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U3RhdGUuY3BwCmluZGV4IGU0
ZTYyYTFmNmEyMDIzNTIwNDY4ZDliODdmMzMzOWVjMTIwZTQ1ZjUuLjhjMjljNzhlYWJlZGY2Yjc2
MGFlMWJjYzFhNjQzYjlkM2ExMGNmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRTdGF0ZS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgRE9NV2luZG93KiBkb21XaW5kb3dGcm9t
RXhlY1N0YXRlKEpTQzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSkKIHsKICAgICBKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzY3JpcHRTdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpOwogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGlmICghZ2xv
YmFsT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNET01XaW5kb3dCYXNlOjppbmZvKCkpKQorICAgIGlm
ICghZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuICZKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2Uq
PihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCk7CiB9CkBAIC02Niw3ICs2Niw3IEBAIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKEpTQzo6
RXhlY1N0YXRlKiBzY3JpCiB7CiAgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
ID0gc2NyaXB0U3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBKU0M6OlZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdC0+aW5oZXJpdHModm0s
IEpTRE9NR2xvYmFsT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghZ2xvYmFsT2JqZWN0LT5pbmhl
cml0czxKU0RPTUdsb2JhbE9iamVjdD4odm0pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICByZXR1cm4gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCBiODU2OWEzZDEzNmUzMGY0
M2IyOTMyZmM1NWJjY2IzZDZkYjU0M2NhLi41MzJjNzE3ZGM4N2UwNmQ3ZTU4MzM1YTAzYWE4ZDVk
ZmZkY2NiNjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTYwNCw3ICs2MDQsNyBAQCBjbGFzcyBDbG9uZVNlcmlh
bGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVj
dCh2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBpc0pTQXJyYXkob2JqZWN0KSB8fCBvYmplY3QtPmlu
aGVyaXRzKHZtLCBKU0FycmF5OjppbmZvKCkpOworICAgICAgICByZXR1cm4gb2JqZWN0LT5pbmhl
cml0czxKU0FycmF5Pih2bSk7CiAgICAgfQogCiAgICAgYm9vbCBpc01hcChWTSYgdm0sIEpTVmFs
dWUgdmFsdWUpCkBAIC02MTIsMTQgKzYxMiwxNCBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBD
bG9uZUJhc2UgewogICAgICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7
Ci0gICAgICAgIHJldHVybiBvYmplY3QtPmluaGVyaXRzKHZtLCBKU01hcDo6aW5mbygpKTsKKyAg
ICAgICAgcmV0dXJuIG9iamVjdC0+aW5oZXJpdHM8SlNNYXA+KHZtKTsKICAgICB9CiAgICAgYm9v
bCBpc1NldChWTSYgdm0sIEpTVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBpZiAoIXZhbHVl
LmlzT2JqZWN0KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIEpTT2JqZWN0
KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBvYmplY3QtPmluaGVy
aXRzKHZtLCBKU1NldDo6aW5mbygpKTsKKyAgICAgICAgcmV0dXJuIG9iamVjdC0+aW5oZXJpdHM8
SlNTZXQ+KHZtKTsKICAgICB9CiAKICAgICBib29sIGNoZWNrRm9yRHVwbGljYXRlKEpTT2JqZWN0
KiBvYmplY3QpCkBAIC03NTQsMjUgKzc1NCwyNSBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBD
bG9uZUJhc2UgewogICAgIHsKICAgICAgICAgVk0mIHZtID0gbV9leGVjLT52bSgpOwogICAgICAg
ICB3cml0ZShBcnJheUJ1ZmZlclZpZXdUYWcpOwotICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2
bSwgSlNEYXRhVmlldzo6aW5mbygpKSkKKyAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNEYXRh
Vmlldz4odm0pKQogICAgICAgICAgICAgd3JpdGUoRGF0YVZpZXdUYWcpOwotICAgICAgICBlbHNl
IGlmIChvYmotPmluaGVyaXRzKHZtLCBKU1VpbnQ4Q2xhbXBlZEFycmF5OjppbmZvKCkpKQorICAg
ICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzPEpTVWludDhDbGFtcGVkQXJyYXk+KHZtKSkKICAg
ICAgICAgICAgIHdyaXRlKFVpbnQ4Q2xhbXBlZEFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAo
b2JqLT5pbmhlcml0cyh2bSwgSlNJbnQ4QXJyYXk6OmluZm8oKSkpCisgICAgICAgIGVsc2UgaWYg
KG9iai0+aW5oZXJpdHM8SlNJbnQ4QXJyYXk+KHZtKSkKICAgICAgICAgICAgIHdyaXRlKEludDhB
cnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTVWludDhBcnJh
eTo6aW5mbygpKSkKKyAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU1VpbnQ4QXJyYXk+
KHZtKSkKICAgICAgICAgICAgIHdyaXRlKFVpbnQ4QXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlm
IChvYmotPmluaGVyaXRzKHZtLCBKU0ludDE2QXJyYXk6OmluZm8oKSkpCisgICAgICAgIGVsc2Ug
aWYgKG9iai0+aW5oZXJpdHM8SlNJbnQxNkFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShJ
bnQxNkFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNVaW50
MTZBcnJheTo6aW5mbygpKSkKKyAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU1VpbnQx
NkFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShVaW50MTZBcnJheVRhZyk7Ci0gICAgICAg
IGVsc2UgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTSW50MzJBcnJheTo6aW5mbygpKSkKKyAgICAg
ICAgZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU0ludDMyQXJyYXk+KHZtKSkKICAgICAgICAgICAg
IHdyaXRlKEludDMyQXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzKHZt
LCBKU1VpbnQzMkFycmF5OjppbmZvKCkpKQorICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRz
PEpTVWludDMyQXJyYXk+KHZtKSkKICAgICAgICAgICAgIHdyaXRlKFVpbnQzMkFycmF5VGFnKTsK
LSAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNGbG9hdDMyQXJyYXk6OmluZm8o
KSkpCisgICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHM8SlNGbG9hdDMyQXJyYXk+KHZtKSkK
ICAgICAgICAgICAgIHdyaXRlKEZsb2F0MzJBcnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKG9i
ai0+aW5oZXJpdHModm0sIEpTRmxvYXQ2NEFycmF5OjppbmZvKCkpKQorICAgICAgICBlbHNlIGlm
IChvYmotPmluaGVyaXRzPEpTRmxvYXQ2NEFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShG
bG9hdDY0QXJyYXlUYWcpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC04MDAsNyArODAwLDcgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsK
ICAgICB2b2lkIGR1bXBET01Qb2ludChKU09iamVjdCogb2JqKQogICAgIHsKICAgICAgICAgVk0m
IHZtID0gbV9leGVjLT52bSgpOwotICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNET01Q
b2ludDo6aW5mbygpKSkKKyAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNET01Qb2ludD4odm0p
KQogICAgICAgICAgICAgd3JpdGUoRE9NUG9pbnRUYWcpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICB3cml0ZShET01Qb2ludFJlYWRPbmx5VGFnKTsKQEAgLTgxMSw3ICs4MTEsNyBAQCBjbGFz
cyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgIHZvaWQgZHVtcERPTVJlY3QoSlNP
YmplY3QqIG9iaikKICAgICB7CiAgICAgICAgIFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKLSAgICAg
ICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9NUmVjdDo6aW5mbygpKSkKKyAgICAgICAgaWYg
KG9iai0+aW5oZXJpdHM8SlNET01SZWN0Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShET01SZWN0
VGFnKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgd3JpdGUoRE9NUmVjdFJlYWRPbmx5VGFn
KTsKQEAgLTgyNiw3ICs4MjYsNyBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2Ug
ewogICAgIHZvaWQgZHVtcERPTU1hdHJpeChKU09iamVjdCogb2JqKQogICAgIHsKICAgICAgICAg
Vk0mIHZtID0gbV9leGVjLT52bSgpOwotICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNE
T01NYXRyaXg6OmluZm8oKSkpCisgICAgICAgIGlmIChvYmotPmluaGVyaXRzPEpTRE9NTWF0cml4
Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShET01NYXRyaXhUYWcpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICB3cml0ZShET01NYXRyaXhSZWFkT25seVRhZyk7CkBAIC04OTEsMzYgKzg5MSwz
NCBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICB9CiAKICAg
ICAgICAgVk0mIHZtID0gbV9leGVjLT52bSgpOwotICAgICAgICBpZiAodmFsdWUuaXNPYmplY3Qo
KSAmJiBhc09iamVjdCh2YWx1ZSktPmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkp
IHsKLSAgICAgICAgICAgIHdyaXRlKERhdGVUYWcpOwotICAgICAgICAgICAgd3JpdGUoYXNEYXRl
SW5zdGFuY2UodmFsdWUpLT5pbnRlcm5hbE51bWJlcigpKTsKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICB9Ci0KICAgICAgICAgaWYgKGlzQXJyYXkodm0sIHZhbHVlKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBpZiAodmFsdWUuaXNPYmplY3QoKSkgewog
ICAgICAgICAgICAgYXV0byogb2JqID0gYXNPYmplY3QodmFsdWUpOwotICAgICAgICAgICAgaWYg
KG9iai0+aW5oZXJpdHModm0sIEJvb2xlYW5PYmplY3Q6OmluZm8oKSkpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoIXN0YXJ0T2JqZWN0SW50ZXJuYWwob2JqKSkgLy8gaGFuZGxlIGR1cGxpY2F0ZXMK
KyAgICAgICAgICAgIGlmIChhdXRvKiBkYXRlT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxEYXRlSW5z
dGFuY2UqPih2bSwgb2JqKSkgeworICAgICAgICAgICAgICAgIHdyaXRlKERhdGVUYWcpOworICAg
ICAgICAgICAgICAgIHdyaXRlKGRhdGVPYmplY3QtPmludGVybmFsTnVtYmVyKCkpOworICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGF1
dG8qIGJvb2xlYW5PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEJvb2xlYW5PYmplY3QqPih2bSwgb2Jq
KSkgeworICAgICAgICAgICAgICAgIGlmICghc3RhcnRPYmplY3RJbnRlcm5hbChib29sZWFuT2Jq
ZWN0KSkgLy8gaGFuZGxlIGR1cGxpY2F0ZXMKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgICAgICAgICAgd3JpdGUoYXNCb29sZWFuT2JqZWN0KHZhbHVlKS0+aW50ZXJu
YWxWYWx1ZSgpLnRvQm9vbGVhbihtX2V4ZWMpID8gVHJ1ZU9iamVjdFRhZyA6IEZhbHNlT2JqZWN0
VGFnKTsKKyAgICAgICAgICAgICAgICB3cml0ZShib29sZWFuT2JqZWN0LT5pbnRlcm5hbFZhbHVl
KCkudG9Cb29sZWFuKG1fZXhlYykgPyBUcnVlT2JqZWN0VGFnIDogRmFsc2VPYmplY3RUYWcpOwog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKG9iai0+aW5oZXJpdHModm0sIFN0cmluZ09iamVjdDo6aW5mbygpKSkgewotICAgICAgICAg
ICAgICAgIGlmICghc3RhcnRPYmplY3RJbnRlcm5hbChvYmopKSAvLyBoYW5kbGUgZHVwbGljYXRl
cworICAgICAgICAgICAgaWYgKGF1dG8qIHN0cmluZ09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8U3Ry
aW5nT2JqZWN0Kj4odm0sIG9iaikpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0T2JqZWN0
SW50ZXJuYWwoc3RyaW5nT2JqZWN0KSkgLy8gaGFuZGxlIGR1cGxpY2F0ZXMKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IGFzU3Ry
aW5nKGFzU3RyaW5nT2JqZWN0KHZhbHVlKS0+aW50ZXJuYWxWYWx1ZSgpKS0+dmFsdWUobV9leGVj
KTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gYXNTdHJpbmcoc3RyaW5nT2JqZWN0LT5p
bnRlcm5hbFZhbHVlKCkpLT52YWx1ZShtX2V4ZWMpOwogICAgICAgICAgICAgICAgIGR1bXBTdHJp
bmdPYmplY3Qoc3RyKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBOdW1iZXJPYmplY3Q6OmluZm8o
KSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0T2JqZWN0SW50ZXJuYWwob2JqKSkgLy8g
aGFuZGxlIGR1cGxpY2F0ZXMKKyAgICAgICAgICAgIGlmIChhdXRvKiBudW1iZXJPYmplY3QgPSBq
c0R5bmFtaWNDYXN0PE51bWJlck9iamVjdCo+KHZtLCBvYmopKSB7CisgICAgICAgICAgICAgICAg
aWYgKCFzdGFydE9iamVjdEludGVybmFsKG51bWJlck9iamVjdCkpIC8vIGhhbmRsZSBkdXBsaWNh
dGVzCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIHdy
aXRlKE51bWJlck9iamVjdFRhZyk7Ci0gICAgICAgICAgICAgICAgTnVtYmVyT2JqZWN0KiBvYmog
PSBzdGF0aWNfY2FzdDxOdW1iZXJPYmplY3QqPihhc09iamVjdCh2YWx1ZSkpOwotICAgICAgICAg
ICAgICAgIHdyaXRlKG9iai0+aW50ZXJuYWxWYWx1ZSgpLmFzTnVtYmVyKCkpOworICAgICAgICAg
ICAgICAgIHdyaXRlKG51bWJlck9iamVjdC0+aW50ZXJuYWxWYWx1ZSgpLmFzTnVtYmVyKCkpOwog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
aWYgKGF1dG8qIGZpbGUgPSBKU0ZpbGU6OnRvV3JhcHBlZCh2bSwgb2JqKSkgewpAQCAtOTUxLDgg
Kzk0OSw3IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgICAgICAg
ICAgICAgd3JpdGUoZGF0YS0+ZGF0YSgpLT5kYXRhKCksIGRhdGEtPmRhdGEoKS0+bGVuZ3RoKCkp
OwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaWYgKG9iai0+aW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkgewotICAgICAg
ICAgICAgICAgIGF1dG8qIHJlZ0V4cCA9IGFzUmVnRXhwT2JqZWN0KG9iaik7CisgICAgICAgICAg
ICBpZiAoYXV0byogcmVnRXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgb2Jq
KSkgewogICAgICAgICAgICAgICAgIGNoYXIgZmxhZ3NbM107CiAgICAgICAgICAgICAgICAgaW50
IGZsYWdDb3VudCA9IDA7CiAgICAgICAgICAgICAgICAgaWYgKHJlZ0V4cC0+cmVnRXhwKCktPmds
b2JhbCgpKQpAQCAtOTY2LDcgKzk2Myw3IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25l
QmFzZSB7CiAgICAgICAgICAgICAgICAgd3JpdGUoU3RyaW5nKGZsYWdzLCBmbGFnQ291bnQpKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGlmIChvYmotPmluaGVyaXRzKHZtLCBKU01lc3NhZ2VQb3J0OjppbmZvKCkpKSB7CisgICAgICAg
ICAgICBpZiAob2JqLT5pbmhlcml0czxKU01lc3NhZ2VQb3J0Pih2bSkpIHsKICAgICAgICAgICAg
ICAgICBhdXRvIGluZGV4ID0gbV90cmFuc2ZlcnJlZE1lc3NhZ2VQb3J0cy5maW5kKG9iaik7CiAg
ICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9IG1fdHJhbnNmZXJyZWRNZXNzYWdlUG9ydHMuZW5k
KCkpIHsKICAgICAgICAgICAgICAgICAgICAgd3JpdGUoTWVzc2FnZVBvcnRSZWZlcmVuY2VUYWcp
OwpAQCAtMTAwNyw3ICsxMDA0LDcgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNl
IHsKICAgICAgICAgICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJy
YXlCdWZmZXItPmRhdGEoKSksIGFycmF5QnVmZmVyLT5ieXRlTGVuZ3RoKCkpOwogICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG9iai0+
aW5oZXJpdHModm0sIEpTQXJyYXlCdWZmZXJWaWV3OjppbmZvKCkpKSB7CisgICAgICAgICAgICBp
ZiAob2JqLT5pbmhlcml0czxKU0FycmF5QnVmZmVyVmlldz4odm0pKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKGNoZWNrRm9yRHVwbGljYXRlKG9iaikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICAgICAgICAgIGJvb2wgc3VjY2VzcyA9IGR1bXBBcnJheUJ1ZmZlclZp
ZXcob2JqLCBjb2RlKTsKQEAgLTEwNTEsMTkgKzEwNDgsMTkgQEAgY2xhc3MgQ2xvbmVTZXJpYWxp
emVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
ICAgIH0KICNlbmRpZgotICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9NUG9p
bnRSZWFkT25seTo6aW5mbygpKSkgeworICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNE
T01Qb2ludFJlYWRPbmx5Pih2bSkpIHsKICAgICAgICAgICAgICAgICBkdW1wRE9NUG9pbnQob2Jq
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0RPTVJlY3RSZWFkT25seTo6aW5mbygpKSkgewor
ICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNET01SZWN0UmVhZE9ubHk+KHZtKSkgewog
ICAgICAgICAgICAgICAgIGR1bXBET01SZWN0KG9iaik7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwg
SlNET01NYXRyaXhSZWFkT25seTo6aW5mbygpKSkgeworICAgICAgICAgICAgaWYgKG9iai0+aW5o
ZXJpdHM8SlNET01NYXRyaXhSZWFkT25seT4odm0pKSB7CiAgICAgICAgICAgICAgICAgZHVtcERP
TU1hdHJpeChvYmopOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRE9NUXVhZDo6aW5mbygpKSkg
eworICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNET01RdWFkPih2bSkpIHsKICAgICAg
ICAgICAgICAgICBkdW1wRE9NUXVhZChvYmopOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICAgICAgfQpAQCAtMTc1NSw3ICsxNzUyLDcgQEAgY2xhc3MgQ2xvbmVEZXNlcmlh
bGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZl
cikKICAgICAgICAgOiBDbG9uZUJhc2UoZXhlYykKICAgICAgICAgLCBtX2dsb2JhbE9iamVjdChn
bG9iYWxPYmplY3QpCi0gICAgICAgICwgbV9pc0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmplY3Qt
PmluaGVyaXRzKGdsb2JhbE9iamVjdC0+dm0oKSwgSlNET01HbG9iYWxPYmplY3Q6OmluZm8oKSkp
CisgICAgICAgICwgbV9pc0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpT
RE9NR2xvYmFsT2JqZWN0PihnbG9iYWxPYmplY3QtPnZtKCkpKQogICAgICAgICAsIG1fcHRyKGJ1
ZmZlci5kYXRhKCkpCiAgICAgICAgICwgbV9lbmQoYnVmZmVyLmRhdGEoKSArIGJ1ZmZlci5zaXpl
KCkpCiAgICAgICAgICwgbV92ZXJzaW9uKDB4RkZGRkZGRkYpCkBAIC0xNzc3LDcgKzE3NzQsNyBA
QCBjbGFzcyBDbG9uZURlc2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgICAgICkKICAgICAg
ICAgOiBDbG9uZUJhc2UoZXhlYykKICAgICAgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmpl
Y3QpCi0gICAgICAgICwgbV9pc0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPmluaGVyaXRz
KGdsb2JhbE9iamVjdC0+dm0oKSwgSlNET01HbG9iYWxPYmplY3Q6OmluZm8oKSkpCisgICAgICAg
ICwgbV9pc0RPTUdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTRE9NR2xvYmFs
T2JqZWN0PihnbG9iYWxPYmplY3QtPnZtKCkpKQogICAgICAgICAsIG1fcHRyKGJ1ZmZlci5kYXRh
KCkpCiAgICAgICAgICwgbV9lbmQoYnVmZmVyLmRhdGEoKSArIGJ1ZmZlci5zaXplKCkpCiAgICAg
ICAgICwgbV92ZXJzaW9uKDB4RkZGRkZGRkYpCkBAIC0yMDQ4LDcgKzIwNDUsNyBAQCBjbGFzcyBD
bG9uZURlc2VyaWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgICAgIGlmICghcmVhZChieXRlTGVu
Z3RoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgSlNPYmplY3QqIGFycmF5
QnVmZmVyT2JqID0gYXNPYmplY3QocmVhZFRlcm1pbmFsKCkpOwotICAgICAgICBpZiAoIWFycmF5
QnVmZmVyT2JqIHx8ICFhcnJheUJ1ZmZlck9iai0+aW5oZXJpdHModm0sIEpTQXJyYXlCdWZmZXI6
OmluZm8oKSkpCisgICAgICAgIGlmICghYXJyYXlCdWZmZXJPYmogfHwgIWFycmF5QnVmZmVyT2Jq
LT5pbmhlcml0czxKU0FycmF5QnVmZmVyPih2bSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICAgICAgdW5zaWduZWQgZWxlbWVudFNpemUgPSB0eXBlZEFycmF5RWxlbWVudFNpemUo
YXJyYXlCdWZmZXJWaWV3U3VidGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZDllYWY4YzZiNDQ0NzI5N2Q2MDU2ZTU5
MGY3NThjZGI5N2ZiNjY2NS4uYzU5N2Q1YTEzMzEyNzhhMzM1YTJjMWEwMjc5NTA2MmNkNDQxMDcz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KQEAgLTM0MDAsMTYgKzM0MDAsMTYgQEAgc3ViIEdlbmVyYXRlT3ZlcmxvYWREaXNw
YXRjaGVyCiAgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVy
VHlwZSgkc3VidHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzQnVmZmVyU291cmNlVHlwZSgkc3Vi
dHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc3VidHlwZS0+bmFtZSBlcSAi
RE9NV2luZG93IikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1
ZGVzKCJKU0RPTVdpbmRvd1Byb3h5LmgiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
JGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSAmJiAoYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0
cyh2bSwgSlNET01XaW5kb3dQcm94eTo6aW5mbygpKSB8fCBhc09iamVjdChkaXN0aW5ndWlzaGlu
Z0FyZyktPmluaGVyaXRzKHZtLCBKU0RPTVdpbmRvdzo6aW5mbygpKSkiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJs
b2FkLCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiAoYXNPYmplY3QoZGlzdGluZ3Vp
c2hpbmdBcmcpLT5pbmhlcml0czxKU0RPTVdpbmRvd1Byb3h5Pih2bSkgfHwgYXNPYmplY3QoZGlz
dGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU0RPTVdpbmRvdz4odm0pKSIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJGdl
bmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vpc2hpbmdB
cmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZt
LCBKUyIgLiAkc3VidHlwZS0+bmFtZSAuICI6OmluZm8oKSkiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAi
ZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0Fy
ZyktPmluaGVyaXRzPEpTIiAuICRzdWJ0eXBlLT5uYW1lIC4gIj4odm0pIik7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICRvdmVybG9hZCA9IEdldE92ZXJsb2FkVGhh
dE1hdGNoZXMoJFMsICRkLCBcJiRpc09iamVjdE9yRXJyb3JPckRPTUV4Y2VwdGlvblBhcmFtZXRl
cik7Ci0gICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZOZWNlc3NhcnkoJG92ZXJs
b2FkLCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlz
aGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU0RPTUV4Y2VwdGlvbjo6aW5mbygpKSIpOworICAgICAg
ICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5p
bmhlcml0czxKU0RPTUV4Y2VwdGlvbj4odm0pIik7CiAKICAgICAgICAgICAgICRvdmVybG9hZCA9
IEdldE92ZXJsb2FkVGhhdE1hdGNoZXMoJFMsICRkLCBcJiRpc09iamVjdE9yRXJyb3JQYXJhbWV0
ZXIpOwogICAgICAgICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVy
bG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vp
c2hpbmdBcmcpLT50eXBlKCkgPT0gRXJyb3JJbnN0YW5jZVR5cGUiKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXgg
ZGI0ZjRiMWY0OTczNDllMjdiYzAzYzg5OTEwMjJiOWFhZmIyZmI3Zi4uOWNlYmI3NzU3NTc5ZmRm
OWY3NzAyNWFjNzkyMjljMGQ2NTgyNzJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTcwMjEsMTcgKzcwMjEs
MTcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZE92ZXIKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlz
aGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICAgICAgaWYgKGRpc3Rp
bmd1aXNoaW5nQXJnLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4ganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMkJvZHkoc3RhdGUsIGNhc3Rl
ZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmpl
Y3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3RP
Ymo6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYm
IGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0T2JqPih2bSkpCiAg
ICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlz
dGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZykt
PmluaGVyaXRzKHZtLCBKU1Rlc3RDYWxsYmFja0ludGVyZmFjZTo6aW5mbygpKSkKKyAgICAgICAg
aWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hp
bmdBcmcpLT5pbmhlcml0czxKU1Rlc3RDYWxsYmFja0ludGVyZmFjZT4odm0pKQogICAgICAgICAg
ICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDVCb2R5
KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNo
aW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0
cyh2bSwgSlNET01TdHJpbmdMaXN0OjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
PEpTRE9NU3RyaW5nTGlzdD4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDZCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJv
d1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNP
YmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkp
KQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChk
aXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE9iaj4odm0pKQogICAgICAgICAgICAg
cmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDhCb2R5KHN0
YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5n
QXJnLmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHMo
dm0sIEpTRE9NV2luZG93UHJveHk6OmluZm8oKSkgfHwgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdB
cmcpLT5pbmhlcml0cyh2bSwgSlNET01XaW5kb3c6OmluZm8oKSkpKQorICAgICAgICBpZiAoZGlz
dGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiAoYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcp
LT5pbmhlcml0czxKU0RPTVdpbmRvd1Byb3h5Pih2bSkgfHwgYXNPYmplY3QoZGlzdGluZ3Vpc2hp
bmdBcmcpLT5pbmhlcml0czxKU0RPTVdpbmRvdz4odm0pKSkKICAgICAgICAgICAgIHJldHVybiBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q5Qm9keShzdGF0ZSwgY2Fz
dGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09i
amVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTQmxv
Yjo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYg
YXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU0Jsb2I+KHZtKSkKICAgICAg
ICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Qx
M0JvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICBpZiAoaGFzSXRl
cmF0b3JNZXRob2QoKnN0YXRlLCBkaXN0aW5ndWlzaGluZ0FyZykpCiAgICAgICAgICAgICByZXR1
cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kN0JvZHkoc3RhdGUs
IGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwpAQCAtNzA0NSw3ICs3MDQ1LDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZE92ZXIKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0FyZyA9IHN0YXRl
LT51bmNoZWNrZWRBcmd1bWVudCgxKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlz
VW5kZWZpbmVkKCkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwot
ICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0
aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU0Jsb2I6OmluZm8oKSkpCisgICAgICAgIGlm
IChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5n
QXJnKS0+aW5oZXJpdHM8SlNCbG9iPih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMTNCb2R5KHN0YXRlLCBjYXN0ZWRUaGlz
LCB0aHJvd1Njb3BlKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkp
CiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwpAQCAtNzA5Niw3ICs3
MDk2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5n
dWlzaGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4g
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFy
YW1ldGVyMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAo
ZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0Fy
ZyktPmluaGVyaXRzKHZtLCBKU1Rlc3RPYmo6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5n
dWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5o
ZXJpdHM8SlNUZXN0T2JqPih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMkJvZHkoc3Rh
dGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMUJvZHko
c3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgIH0KQEAgLTcxMDQsNyArNzEwNCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hp
bmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CiAgICAgICAgIGlmIChkaXN0aW5n
dWlzaGluZ0FyZy5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRl
cjJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5p
bmhlcml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
PEpTVGVzdE9iaj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcjJCb2R5KHN0YXRlLCBj
YXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcjFCb2R5KHN0YXRl
LCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICB9CkBAIC03MTQ3LDkgKzcxNDcsOSBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kV2l0aAogICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGQ6Om1pbjxz
aXplX3Q+KDEsIHN0YXRlLT5hcmd1bWVudENvdW50KCkpOwogICAgIGlmIChhcmdzQ291bnQgPT0g
MSkgewogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gc3RhdGUtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAm
JiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3RPYmo6Omlu
Zm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2Jq
ZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0T2JqPih2bSkpCiAgICAgICAg
ICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0
aERpc3Rpbmd1aXNoaW5nVW5pb24xQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7
Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRp
c3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE5vZGU6OmluZm8oKSkpCisgICAg
ICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1
aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0Tm9kZT4odm0pKQogICAgICAgICAgICAgcmV0dXJu
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlz
aGluZ1VuaW9uMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICBp
ZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdV
bmlvbjJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKQEAgLTcxOTQsMTEgKzcx
OTQsMTEgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICBzaXplX3QgYXJnc0NvdW50ID0g
c3RkOjptaW48c2l6ZV90PigxLCBzdGF0ZS0+YXJndW1lbnRDb3VudCgpKTsKICAgICBpZiAoYXJn
c0NvdW50ID09IDEpIHsKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0FyZyA9IHN0YXRl
LT51bmNoZWNrZWRBcmd1bWVudCgwKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlz
T2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNU
ZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3Qo
KSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE9iaj4odm0p
KQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMxQm9keShzdGF0ZSwgY2FzdGVkVGhpcywg
dGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYm
IGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE5vZGU6Omlu
Zm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2Jq
ZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0Tm9kZT4odm0pKQogICAgICAg
ICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdp
dGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMxQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29w
ZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0
KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdEludGVyZmFjZTo6aW5mbygp
KSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3Qo
ZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RJbnRlcmZhY2U+KHZtKSkKICAgICAg
ICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RX
aXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2Nv
cGUpOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAgICAgICAg
ICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRo
MkRpc3Rpbmd1aXNoaW5nVW5pb25zMkJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUp
OwpAQCAtNzI0Nyw5ICs3MjQ3LDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICBzaXpl
X3QgYXJnc0NvdW50ID0gc3RkOjptaW48c2l6ZV90PigyLCBzdGF0ZS0+YXJndW1lbnRDb3VudCgp
KTsKICAgICBpZiAoYXJnc0NvdW50ID09IDIpIHsKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlz
aGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKLSAgICAgICAgaWYgKGRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5p
bmhlcml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
PEpTVGVzdE9iaj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uMUJvZHkoc3Rh
dGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdB
cmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZt
LCBKU1Rlc3ROb2RlOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNP
YmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE5v
ZGU+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbjJCb2R5KHN0YXRlLCBjYXN0
ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICB9CiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDIgPyB0
aHJvd1ZNRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKHN0YXRlKSkgOiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKQEAgLTcy
OTMsOSArNzI5Myw5IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlCiAgICAgICAgIEpTVmFsdWUg
ZGlzdGluZ3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CiAgICAgICAg
IGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAg
cmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlv
bjFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5p
bmhlcml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hp
bmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
PEpTVGVzdE9iaj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbjFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0
aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYg
YXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0Tm9kZTo6aW5m
bygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmpl
Y3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3ROb2RlPih2bSkpCiAgICAgICAg
ICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJs
ZVVuaW9uMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICBpZiAo
ZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24yQm9keShzdGF0ZSwg
Y2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CkBAIC03Mzk0LDcgKzczOTQsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZFdpdGhOdWxsYWJsZQogICAgIHNpemVfdCBhcmdzQ291bnQgPSBzdGQ6Om1pbjxzaXplX3Q+KDIs
IHN0YXRlLT5hcmd1bWVudENvdW50KCkpOwogICAgIGlmIChhcmdzQ291bnQgPT0gMikgewogICAg
ICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50
KDEpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVj
dChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3ROb2RlOjppbmZvKCkpKQor
ICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0
aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE5vZGU+KHZtKSkKICAgICAgICAgICAgIHJl
dHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlz
dGluZ3Vpc2hpbmdQYXJhbWV0ZXIxQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7
CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc051bWJlcigpKQogICAgICAgICAgICAg
cmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVOb25E
aXN0aW5ndWlzaGluZ1BhcmFtZXRlcjJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3Bl
KTsKQEAgLTc5ODQsNyArNzk4NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRlCiAgICAgc2l6
ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4oMSwgc3RhdGUtPmFyZ3VtZW50Q291bnQo
KSk7CiAgICAgaWYgKGFyZ3NDb3VudCA9PSAxKSB7CiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vp
c2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgICAgIGlmIChkaXN0
aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+
aW5oZXJpdHModm0sIEpTRmV0Y2hSZXF1ZXN0OjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGlu
Z3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmlu
aGVyaXRzPEpTRmV0Y2hSZXF1ZXN0Pih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbjJCb2R5KHN0YXRl
LCBjYXN0ZWRUaGlzLCBXVEZNb3ZlKHByb21pc2UpLCB0aHJvd1Njb3BlKTsKICAgICAgICAgaWYg
KGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbjFCb2R5KHN0
YXRlLCBjYXN0ZWRUaGlzLCBXVEZNb3ZlKHByb21pc2UpLCB0aHJvd1Njb3BlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCA2MGZkNTIyN2Q5YWUy
NzJmNmQwMTNmOWJlZDkzNmQ2MzU1MzdmZWEwLi4xOTdlY2Y5Nzg3YmQxM2FiM2ZhMjAwN2VkYzRi
NTQ2OTYxOGVjNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnMuY3BwCkBAIC0xNDgsMTEgKzE0OCwxMSBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOgogICAg
IH0KICAgICBpZiAoYXJnc0NvdW50ID09IDEpIHsKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlz
aGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKLSAgICAgICAgaWYgKGRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5p
bmhlcml0cyh2bSwgSlNBcnJheUJ1ZmZlcjo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0czxKU0FycmF5QnVmZmVyPih2bSkpCiAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0SlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczEoc3RhdGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vp
c2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzKHZtLCBKU0FycmF5QnVmZmVyVmlldzo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0czxKU0FycmF5QnVmZmVyVmlldz4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVj
dEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMyKHN0YXRlKTsKLSAgICAgICAgaWYgKGRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5p
bmhlcml0cyh2bSwgSlNCbG9iOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdB
cmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpT
QmxvYj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMzKHN0YXRlKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVt
YmVyKCkpCiAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yczUoc3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19p
bnN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcAppbmRl
eCA3MzFhNmU4MmI0ZDMzYWFlMDgxZGVkNjY4ZTViNDBlM2I1MGE4OWIwLi4zOThiN2JlMTY0NDFi
ZjRkOTBmYWNhMWI1ZWJlN2NhYTMyMjQwMjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9jX2luc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2lu
c3RhbmNlLmNwcApAQCAtMTU5LDcgKzE1OSw3IEBAIEpTVmFsdWUgQ0luc3RhbmNlOjppbnZva2VN
ZXRob2QoRXhlY1N0YXRlKiBleGVjLCBSdW50aW1lTWV0aG9kKiBydW50aW1lTWV0aG9kKQogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCi0gICAgaWYgKCFhc09iamVjdChydW50aW1lTWV0aG9kKS0+aW5oZXJpdHModm0s
IENSdW50aW1lTWV0aG9kOjppbmZvKCkpKQorICAgIGlmICghYXNPYmplY3QocnVudGltZU1ldGhv
ZCktPmluaGVyaXRzPENSdW50aW1lTWV0aG9kPih2bSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5
cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGludm9rZSBub24t
cGx1Zy1pbiBtZXRob2Qgb24gcGx1Zy1pbiBvYmplY3QuIikpOwogCiAgICAgQ01ldGhvZCogbWV0
aG9kID0gc3RhdGljX2Nhc3Q8Q01ldGhvZCo+KHJ1bnRpbWVNZXRob2QtPm1ldGhvZCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbSBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQppbmRleCBlODJj
NTU3M2I5NWViNzJjYTEzNjUzNzUwNzBkYTg4Njk2ODFlZTkwLi5lYTI0NzNkYWNlNTg2MDZkNTM4
OWM5ZTc1MGZhYjc4MzlmOTQ3NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9XZWJTY3JpcHRPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
V2ViU2NyaXB0T2JqZWN0Lm1tCkBAIC01NzAsMTEgKzU3MCwxMSBAQCArIChpZClfY29udmVydFZh
bHVlVG9PYmpjVmFsdWU6KEpTQzo6SlNWYWx1ZSl2YWx1ZSBvcmlnaW5Sb290T2JqZWN0OihSb290
T2JqZWN0KgogICAgICAgICBKU0M6OlZNJiB2bSA9IHJvb3RPYmplY3QtPmdsb2JhbE9iamVjdCgp
LT52bSgpOwogICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAKLSAgICAgICAgaWYgKG9i
amVjdC0+aW5oZXJpdHModm0sIEpTSFRNTEVsZW1lbnQ6OmluZm8oKSkpIHsKKyAgICAgICAgaWYg
KG9iamVjdC0+aW5oZXJpdHM8SlNIVE1MRWxlbWVudD4odm0pKSB7CiAgICAgICAgICAgICAvLyBQ
bHVnaW4gZWxlbWVudHMgY2FjaGUgdGhlIGluc3RhbmNlIGludGVybmFsbHkuCiAgICAgICAgICAg
ICBpZiAoT2JqY0luc3RhbmNlKiBpbnN0YW5jZSA9IHN0YXRpY19jYXN0PE9iamNJbnN0YW5jZSo+
KHBsdWdpbkluc3RhbmNlKGpzQ2FzdDxKU0hUTUxFbGVtZW50Kj4ob2JqZWN0KS0+d3JhcHBlZCgp
KSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlLT5nZXRPYmplY3QoKTsKLSAgICAg
ICAgfSBlbHNlIGlmIChvYmplY3QtPmluaGVyaXRzKHZtLCBPYmpDUnVudGltZU9iamVjdDo6aW5m
bygpKSkgeworICAgICAgICB9IGVsc2UgaWYgKG9iamVjdC0+aW5oZXJpdHM8T2JqQ1J1bnRpbWVP
YmplY3Q+KHZtKSkgewogICAgICAgICAgICAgT2JqQ1J1bnRpbWVPYmplY3QqIHJ1bnRpbWVPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxPYmpDUnVudGltZU9iamVjdCo+KG9iamVjdCk7CiAgICAgICAgICAg
ICBPYmpjSW5zdGFuY2UqIGluc3RhbmNlID0gcnVudGltZU9iamVjdC0+Z2V0SW50ZXJuYWxPYmpD
SW5zdGFuY2UoKTsKICAgICAgICAgICAgIGlmIChpbnN0YW5jZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCmluZGV4IDNmYmFlMzM3NGQyNGZmZDU2NWZlZTZl
ZDg3NjM2MzA1OGU0ZjNkNDguLmI3ZDI0ZDQ0YTI0YTZiMDU1Mjc3NDVmNjFlOTQ3MzdkZTliNzk2
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2Uu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQpAQCAt
MjEyLDcgKzIxMiw3IEBAIEpTQzo6SlNWYWx1ZSBPYmpjSW5zdGFuY2U6Omludm9rZU1ldGhvZChF
eGVjU3RhdGUqIGV4ZWMsIFJ1bnRpbWVNZXRob2QqIHJ1bnRpbWVNCiAgICAgSlNDOjpWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
IAotICAgIGlmICghYXNPYmplY3QocnVudGltZU1ldGhvZCktPmluaGVyaXRzKHZtLCBPYmpDUnVu
dGltZU1ldGhvZDo6aW5mbygpKSkKKyAgICBpZiAoIWFzT2JqZWN0KHJ1bnRpbWVNZXRob2QpLT5p
bmhlcml0czxPYmpDUnVudGltZU1ldGhvZD4odm0pKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBpbnZva2Ugbm9uLXBs
dWctaW4gbWV0aG9kIG9uIHBsdWctaW4gb2JqZWN0LiIpKTsKIAogICAgIE9iamNNZXRob2QgKm1l
dGhvZCA9IHN0YXRpY19jYXN0PE9iamNNZXRob2QqPihydW50aW1lTWV0aG9kLT5tZXRob2QoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggMGE4OWM4
NTg3NDQwMjhiYzkzNTM3MjkzNDI2YTllYTBjOGNiOTViOC4uMTYzYzFkYTYzYTk4YjNkMTk4ZWIw
YTE3NTlhMTkwMmRlMzdmNWFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
cnVudGltZS5tbQpAQCAtMjQ5LDcgKzI0OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxPYmpDRmFsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0s
IE9iakNSdW50aW1lT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRz
PE9iakNSdW50aW1lT2JqZWN0Pih2bSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIHNjb3BlKTsKIAogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNVbmRlZmluZWQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCmluZGV4IGMzNTE4MmJkY2FmMWFk
N2UzNjJjOWY4MmQwYzNhY2MyM2M0MTE0ODcuLjY3ZWU3NWQ0NGJjMTFiY2QxMGQyYWMzODcyZGEw
ZWVkOTFhNjNjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApA
QCAtOTIsMTQgKzkyLDE0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKICAgICBSZWZQdHI8SW5zdGFuY2U+IGlu
c3RhbmNlOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAg
ICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSdW50aW1lT2JqZWN0OjppbmZvKCkpKSB7Cisg
ICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxSdW50aW1lT2JqZWN0Pih2bSkpIHsKICAgICAgICAg
UnVudGltZU9iamVjdCogcnVudGltZU9iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVPYmplY3Qq
Pihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICAgICAgaW5zdGFuY2UgPSBydW50aW1lT2JqZWN0
LT5nZXRJbnRlcm5hbEluc3RhbmNlKCk7CiAgICAgICAgIGlmICghaW5zdGFuY2UpIAogICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShSdW50aW1lT2JqZWN0Ojp0aHJvd0ludmFsaWRB
Y2Nlc3NFcnJvcihleGVjLCBzY29wZSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENhbGxp
bmcgYSBydW50aW1lIG9iamVjdCBvZiBhIHBsdWdpbiBlbGVtZW50PwotICAgICAgICBpZiAodGhp
c1ZhbHVlLmluaGVyaXRzKHZtLCBKU0hUTUxFbGVtZW50OjppbmZvKCkpKQorICAgICAgICBpZiAo
dGhpc1ZhbHVlLmluaGVyaXRzPEpTSFRNTEVsZW1lbnQ+KHZtKSkKICAgICAgICAgICAgIGluc3Rh
bmNlID0gcGx1Z2luSW5zdGFuY2UoanNDYXN0PEpTSFRNTEVsZW1lbnQqPihhc09iamVjdCh0aGlz
VmFsdWUpKS0+d3JhcHBlZCgpKTsKICAgICAgICAgaWYgKCFpbnN0YW5jZSkKICAgICAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDE1ZjBhOTQxYWQ4ZWY1MTE5MGU1NDZkN2M1NTll
Y2UzNWE4OWEyMzYuLjZhNzI4NGZhMGFiZTU3MDExMWFiMzlkY2U0MWMzZTQ1Zjc1MDRlMmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMjI0LDcgKzIyNCw3
IEBAIEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJlCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBBU1NF
UlQoZXhlYy0+anNDYWxsZWUoKS0+aW5oZXJpdHMoZXhlYy0+dm0oKSwgUnVudGltZU9iamVjdDo6
aW5mbygpKSk7CisgICAgQVNTRVJUKGV4ZWMtPmpzQ2FsbGVlKCktPmluaGVyaXRzPFJ1bnRpbWVP
YmplY3Q+KGV4ZWMtPnZtKCkpKTsKICAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlKHN0YXRp
Y19jYXN0PFJ1bnRpbWVPYmplY3QqPihleGVjLT5qc0NhbGxlZSgpKS0+Z2V0SW50ZXJuYWxJbnN0
YW5jZSgpKTsKICAgICBpbnN0YW5jZS0+YmVnaW4oKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGlu
c3RhbmNlLT5pbnZva2VEZWZhdWx0TWV0aG9kKGV4ZWMpOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIENh
bGxUeXBlIFJ1bnRpbWVPYmplY3Q6OmdldENhbGxEYXRhKEpTQ2VsbCogY2VsbCwgQ2FsbERhdGEm
IGNhbGxEYXRhKQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1bnRp
bWVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNPYmplY3QqIGNvbnN0cnVj
dG9yID0gZXhlYy0+anNDYWxsZWUoKTsKLSAgICBBU1NFUlQoY29uc3RydWN0b3ItPmluaGVyaXRz
KGV4ZWMtPnZtKCksIFJ1bnRpbWVPYmplY3Q6OmluZm8oKSkpOworICAgIEFTU0VSVChjb25zdHJ1
Y3Rvci0+aW5oZXJpdHM8UnVudGltZU9iamVjdD4oZXhlYy0+dm0oKSkpOwogICAgIFJlZlB0cjxJ
bnN0YW5jZT4gaW5zdGFuY2Uoc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGV4ZWMtPmpzQ2Fs
bGVlKCkpLT5nZXRJbnRlcm5hbEluc3RhbmNlKCkpOwogICAgIGluc3RhbmNlLT5iZWdpbigpOwog
ICAgIEFyZ0xpc3QgYXJncyhleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9XZWJJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dlYkluamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggNTU1Mjc3YmNjNGVlMTk0ZmIzMjk4NDFk
NGQ0NWRiOWM0NzRlYmU5YS4uOTA2NGIyNGE4YjU2ZTNhM2M5NWRkOTI0NTllMGIzY2FjNWFhNjA4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0
SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0
SG9zdC5jcHAKQEAgLTQ3LDEzICs0NywxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogSlNWYWx1
ZSBXZWJJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgaWYgKHZhbHVlLmluaGVy
aXRzKHZtLCBKU05vZGU6OmluZm8oKSkpCisgICAgaWYgKHZhbHVlLmluaGVyaXRzPEpTTm9kZT4o
dm0pKQogICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJh
bCgibm9kZSIpKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0sIEpTTm9kZUxpc3Q6OmluZm8o
KSkpCisgICAgaWYgKHZhbHVlLmluaGVyaXRzPEpTTm9kZUxpc3Q+KHZtKSkKICAgICAgICAgcmV0
dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImFycmF5IikpOwotICAg
IGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgSlNIVE1MQ29sbGVjdGlvbjo6aW5mbygpKSkKKyAgICBp
ZiAodmFsdWUuaW5oZXJpdHM8SlNIVE1MQ29sbGVjdGlvbj4odm0pKQogICAgICAgICByZXR1cm4g
anNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiYXJyYXkiKSk7Ci0gICAgaWYg
KHZhbHVlLmluaGVyaXRzKHZtLCBKU0RPTUV4Y2VwdGlvbjo6aW5mbygpKSkKKyAgICBpZiAodmFs
dWUuaW5oZXJpdHM8SlNET01FeGNlcHRpb24+KHZtKSkKICAgICAgICAgcmV0dXJuIGpzTm9udHJp
dmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImVycm9yIikpOwogCiAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CkBAIC0xODUsNyArMTg1LDcgQEAgSlNWYWx1ZSBXZWJJbmplY3RlZFNjcmlw
dEhvc3Q6OmdldEludGVybmFsUHJvcGVydGllcyhWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgSlMK
IAogYm9vbCBXZWJJbmplY3RlZFNjcmlwdEhvc3Q6OmlzSFRNTEFsbENvbGxlY3Rpb24oSlNDOjpW
TSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gdmFsdWUuaW5oZXJpdHMo
dm0sIEpTSFRNTEFsbENvbGxlY3Rpb246OmluZm8oKSk7CisgICAgcmV0dXJuIHZhbHVlLmluaGVy
aXRzPEpTSFRNTEFsbENvbGxlY3Rpb24+KHZtKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE1ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QTWV0aG9kLmNwcAppbmRleCBlNTYwODhmNzMyMThhNGJjN2YwOTA3ODY5ZTZkZGVmMWVh
N2MwMTE5Li44ZjBkNGRmNGNlZjdlMGMxYzg0MjlkOGJiZmU3YmJjMjVkNWU1YmNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9k
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
TWV0aG9kLmNwcApAQCAtNjksNyArNjksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjYWxsTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogCiAgICAgLy8gQ2hlY2sgaWYgd2UncmUgY2FsbGluZyBh
IG1ldGhvZCBvbiB0aGUgcGx1Zy1pbiBzY3JpcHQgb2JqZWN0LgotICAgIGlmICh0aGlzVmFsdWUu
aW5oZXJpdHModm0sIEpTSFRNTEVsZW1lbnQ6OmluZm8oKSkpIHsKKyAgICBpZiAodGhpc1ZhbHVl
LmluaGVyaXRzPEpTSFRNTEVsZW1lbnQ+KHZtKSkgewogICAgICAgICBKU0hUTUxFbGVtZW50KiBl
bGVtZW50ID0ganNDYXN0PEpTSFRNTEVsZW1lbnQqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKIAog
ICAgICAgICAvLyBUcnkgdG8gZ2V0IHRoZSBzY3JpcHQgb2JqZWN0IGZyb20gdGhlIGVsZW1lbnQK
QEAgLTc3LDcgKzc3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICB0aGlzVmFsdWUgPSBzY3JpcHRP
YmplY3Q7CiAgICAgfQogCi0gICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgSlNOUE9iamVj
dDo6aW5mbygpKSkgeworICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8SlNOUE9iamVjdD4odm0p
KSB7CiAgICAgICAgIEpTTlBPYmplY3QqIGpzTlBPYmplY3QgPSBqc0Nhc3Q8SlNOUE9iamVjdCo+
KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOwogCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOUE9iamVjdC0+Y2FsbE1ldGhvZChleGVjLCBqc05QTWV0aG9kLT5ucElkZW50aWZpZXIoKSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmNwcAppbmRleCAwN2E0ZTIyMGQ2YzJkYjkyYTU4YzFlOWRjN2UyNDFhNjNm
NmEzYmRhLi4xZmE1OTAxN2FhMzM5MzU1ZDMyZDQ1YzE1MDlkZjVlODg1NDJlNDg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmNwcApAQCAtMjQxLDcgKzI0MSw3IEBAIEpTVmFsdWUgSlNOUE9iamVjdDo6Y2FsbENv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxOUEpTT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU09iamVjdCog
b2JqZWN0ID0gZXhlYy0+anNDYWxsZWUoKTsKLSAgICBBU1NFUlQob2JqZWN0LT5pbmhlcml0cyhl
eGVjLT52bSgpLCBKU05QT2JqZWN0OjppbmZvKCkpKTsKKyAgICBBU1NFUlQob2JqZWN0LT5pbmhl
cml0czxKU05QT2JqZWN0PihleGVjLT52bSgpKSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQ2FzdDxKU05QT2JqZWN0Kj4ob2JqZWN0KS0+Y2FsbE9iamVjdChleGVjKSk7CiB9CkBA
IC0yNjAsNyArMjYwLDcgQEAgSlNDOjpDYWxsVHlwZSBKU05QT2JqZWN0OjpnZXRDYWxsRGF0YShK
U0M6OkpTQ2VsbCogY2VsbCwgSlNDOjpDYWxsRGF0YSYgY2FsbERhdGEKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgSlNPYmplY3QqIGNvbnN0cnVjdG9yID0gZXhlYy0+anNDYWxsZWUoKTsK
LSAgICBBU1NFUlQoY29uc3RydWN0b3ItPmluaGVyaXRzKGV4ZWMtPnZtKCksIEpTTlBPYmplY3Q6
OmluZm8oKSkpOworICAgIEFTU0VSVChjb25zdHJ1Y3Rvci0+aW5oZXJpdHM8SlNOUE9iamVjdD4o
ZXhlYy0+dm0oKSkpOwogCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Nhc3Q8SlNOUE9i
amVjdCo+KGNvbnN0cnVjdG9yKS0+Y2FsbENvbnN0cnVjdG9yKGV4ZWMpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVj
dC5jcHAKaW5kZXggODFjYTcwZWU5ZGQyYWUzZDcwOTkzN2UzZGMyY2M4MWZkODFlOWE0MC4uZDEy
NjdkNzdlNTc1ODY2NDFmM2QwYWE0Yjk5OWIzZTI2OWIzNjJjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAK
QEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBOUEpTT2JqZWN0KiBOUEpTT2Jq
ZWN0OjpjcmVhdGUoVk0mIHZtLCBOUFJ1bnRpbWVPYmplY3RNYXAqIG9iamVjdE1hcCwgSlNPYmpl
Y3QqIGpzT2JqZWN0KQogewogICAgIC8vIFdlIHNob3VsZCBuZXZlciBoYXZlIGEgSlNOUE9iamVj
dCBpbnNpZGUgYW4gTlBKU09iamVjdC4KLSAgICBBU1NFUlQoIWpzT2JqZWN0LT5pbmhlcml0cyh2
bSwgSlNOUE9iamVjdDo6aW5mbygpKSk7CisgICAgQVNTRVJUKCFqc09iamVjdC0+aW5oZXJpdHM8
SlNOUE9iamVjdD4odm0pKTsKIAogICAgIE5QSlNPYmplY3QqIG5wSlNPYmplY3QgPSB0b05QSlNP
YmplY3QoY3JlYXRlTlBPYmplY3QoMCwgbnBDbGFzcygpKSk7CiAgICAgbnBKU09iamVjdC0+aW5p
dGlhbGl6ZSh2bSwgb2JqZWN0TWFwLCBqc09iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggYWZkMzQyMzlhYjAzNWUyOTkzZTllYWVj
NGZmOWNmNzZmZDVlOWM0Ni4uMTAwZjY3NDZmZDlkNTFkYzMwMWIzZTcyMWVmM2M4YTM0NjYwZGJj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApA
QCAtNzM4LDcgKzczOCw3IEBAIEpTVmFsdWVSZWYgV2ViRnJhbWU6OmpzV3JhcHBlckZvcldvcmxk
KEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZSogZmlsZUhhbmRsZSwgSW5qCiAKIFN0cmluZyBXZWJG
cmFtZTo6Y291bnRlclZhbHVlKEpTT2JqZWN0UmVmIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCF0b0pT
KGVsZW1lbnQpLT5pbmhlcml0cygqdG9KUyhlbGVtZW50KS0+dm0oKSwgSlNFbGVtZW50OjppbmZv
KCkpKQorICAgIGlmICghdG9KUyhlbGVtZW50KS0+aW5oZXJpdHM8SlNFbGVtZW50PigqdG9KUyhl
bGVtZW50KS0+dm0oKSkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAogICAgIHJldHVybiBj
b3VudGVyVmFsdWVGb3JFbGVtZW50KCZqc0Nhc3Q8SlNFbGVtZW50Kj4odG9KUyhlbGVtZW50KSkt
PndyYXBwZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9N
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTS5tbQppbmRleCA1OWYxMzYzNDI5
MTJlYTAxMDcxMWIyNTI2NWYyMjI0YzM2NWRiNjhmLi5lN2NlNjMxZDBhN2Q4YWE4ZTIwZDgxZDhl
NGE3NmZjNDQxMGM4NTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00v
RE9NLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0KQEAgLTUzMCw3
ICs1MzAsNyBAQCBAaW1wbGVtZW50YXRpb24gRE9NTm9kZSAoV2ViUHJpdmF0ZSkKICsgKGlkKV9u
b2RlRnJvbUpTV3JhcHBlcjooSlNPYmplY3RSZWYpanNXcmFwcGVyCiB7CiAgICAgSlNPYmplY3Qq
IG9iamVjdCA9IHRvSlMoanNXcmFwcGVyKTsKLSAgICBpZiAoIW9iamVjdC0+aW5oZXJpdHMoKm9i
amVjdC0+dm0oKSwgSlNOb2RlOjppbmZvKCkpKQorICAgIGlmICghb2JqZWN0LT5pbmhlcml0czxK
U05vZGU+KCpvYmplY3QtPnZtKCkpKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiBr
aXQoJmpzQ2FzdDxKU05vZGUqPihvYmplY3QpLT53cmFwcGVkKCkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCmluZGV4IDg1MTU3NGY4NzNjMjQyNzI2MTZiMDFl
ZDM1NDQ4NTY4YzNhMTU4YzIuLjZmMmQyNTlmNTlkMDQxMGE1ZTQ3NzQ0NmY1NDk3MDIzNjM1NDJl
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KQEAgLTE0NTMs
NyArMTQ1Myw3IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpkZW1hcnNoYWxW
YWx1ZXMoRXhlY1N0YXRlKiBleGVjLCBkYXRhX3QgdmFsdWVzCiAKIHZvaWQgTmV0c2NhcGVQbHVn
aW5JbnN0YW5jZVByb3h5OjpyZXRhaW5Mb2NhbE9iamVjdChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7
Ci0gICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpIHx8IHZhbHVlLmluaGVyaXRzKCp2YWx1ZS5nZXRP
YmplY3QoKS0+dm0oKSwgUHJveHlSdW50aW1lT2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghdmFs
dWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pbmhlcml0czxQcm94eVJ1bnRpbWVPYmplY3Q+KCp2YWx1
ZS5nZXRPYmplY3QoKS0+dm0oKSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fbG9jYWxPYmpl
Y3RzLnJldGFpbihhc09iamVjdCh2YWx1ZSkpOwpAQCAtMTQ2MSw3ICsxNDYxLDcgQEAgdm9pZCBO
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnJldGFpbkxvY2FsT2JqZWN0KEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIAogdm9pZCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnJlbGVhc2VMb2Nh
bE9iamVjdChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKCF2YWx1ZS5pc09iamVjdCgp
IHx8IHZhbHVlLmluaGVyaXRzKCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSwgUHJveHlSdW50aW1l
T2JqZWN0OjppbmZvKCkpKQorICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pbmhl
cml0czxQcm94eVJ1bnRpbWVPYmplY3Q+KCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fbG9jYWxPYmplY3RzLnJlbGVhc2UoYXNPYmplY3QodmFsdWUp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1By
b3h5SW5zdGFuY2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9Q
cm94eUluc3RhbmNlLm1tCmluZGV4IDI2YWIzZWIwZDg1ZTlkYzI5NDFkOTFmY2UxNzk4ZTNkZTFm
YWQwNTIuLjM2ODdiYzFiYzJmYzU0YmY5ODU1ZjM1MmJiY2NkZjFmOTExNjAzMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2Uu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0
YW5jZS5tbQpAQCAtMjIzLDcgKzIyMyw3IEBAIEpTVmFsdWUgUHJveHlJbnN0YW5jZTo6aW52b2tl
TWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNDOjpSdW50aW1lTWV0aG9kKiBydW50aW1lCiAgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKLSAgICBpZiAoIWFzT2JqZWN0KHJ1bnRpbWVNZXRob2QpLT5pbmhlcml0cyh2bSwg
UHJveHlSdW50aW1lTWV0aG9kOjppbmZvKCkpKQorICAgIGlmICghYXNPYmplY3QocnVudGltZU1l
dGhvZCktPmluaGVyaXRzPFByb3h5UnVudGltZU1ldGhvZD4odm0pKQogICAgICAgICByZXR1cm4g
dGhyb3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBpbnZv
a2Ugbm9uLXBsdWctaW4gbWV0aG9kIG9uIHBsdWctaW4gb2JqZWN0LiIpKTsKIAogICAgIFByb3h5
TWV0aG9kKiBtZXRob2QgPSBzdGF0aWNfY2FzdDxQcm94eU1ldGhvZCo+KHJ1bnRpbWVNZXRob2Qt
Pm1ldGhvZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpp
bmRleCBlYzI2YjJiOTQ1NmMyNmI3NmNjMTZmZGIyODQ3MDQ5ZDZiZTQ2ZjQ4Li40MzVhNTk3MzI0
MmNhYzU5YzY4ODFhNDVjYjVlZDgyNTNhMTc2YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC03NjM3LDcgKzc2MzcsNyBAQCBzdGF0aWMgTlNBcHBs
ZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU0M6
OkpTVmFsdWUgagogICAgIH0KICAgICBpZiAoanNWYWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAg
IEpTT2JqZWN0KiBvYmplY3QgPSBqc1ZhbHVlLmdldE9iamVjdCgpOwotICAgICAgICBpZiAob2Jq
ZWN0LT5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKSB7CisgICAgICAgIGlmIChv
YmplY3QtPmluaGVyaXRzPERhdGVJbnN0YW5jZT4odm0pKSB7CiAgICAgICAgICAgICBEYXRlSW5z
dGFuY2UqIGRhdGUgPSBzdGF0aWNfY2FzdDxEYXRlSW5zdGFuY2UqPihvYmplY3QpOwogICAgICAg
ICAgICAgZG91YmxlIG1zID0gZGF0ZS0+aW50ZXJuYWxOdW1iZXIoKTsKICAgICAgICAgICAgIGlm
ICghc3RkOjppc25hbihtcykpIHsKQEAgLTc2NDYsNyArNzY0Niw3IEBAIHN0YXRpYyBOU0FwcGxl
RXZlbnREZXNjcmlwdG9yKiBhZURlc2NGcm9tSlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6
SlNWYWx1ZSBqCiAgICAgICAgICAgICAgICAgaWYgKG5vRXJyID09IFVDQ29udmVydENGQWJzb2x1
dGVUaW1lVG9Mb25nRGF0ZVRpbWUodXRjU2Vjb25kcywgJmxkdCkpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBbTlNBcHBsZUV2ZW50RGVzY3JpcHRvciBkZXNjcmlwdG9yV2l0aERlc2NyaXB0
b3JUeXBlOnR5cGVMb25nRGF0ZVRpbWUgYnl0ZXM6JmxkdCBsZW5ndGg6c2l6ZW9mKGxkdCldOwog
ICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKG9iamVjdC0+aW5oZXJpdHModm0sIEpT
QXJyYXk6OmluZm8oKSkpIHsKKyAgICAgICAgfSBlbHNlIGlmIChvYmplY3QtPmluaGVyaXRzPEpT
QXJyYXk+KHZtKSkgewogICAgICAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8
SlNPYmplY3QqPj4gdmlzaXRlZEVsZW1zOwogICAgICAgICAgICAgaWYgKHZpc2l0ZWRFbGVtcy5n
ZXQoKS5hZGQob2JqZWN0KS5pc05ld0VudHJ5KSB7CiAgICAgICAgICAgICAgICAgSlNBcnJheSog
YXJyYXkgPSBzdGF0aWNfY2FzdDxKU0FycmF5Kj4ob2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkZyYW1lLmNwcAppbmRleCA5MzdhMjU3YWExMjA4YjY2NjU4ZmU2NDIzMWU0MjcwMTQxMjI5
MmE2Li44N2RjOTBiNWMwZjk3MmFhYjdkZmJlOWVmNDI2YWU3MmVkNzQ0NTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCkBAIC0yMDAyLDcgKzIwMDIsNyBAQCBIUkVTVUxUIFdl
YkZyYW1lOjpzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0SW5TY3JpcHRXb3JsZChJV2ViU2Ny
aXB0V29ybGQqIGlXbwogCiAgICAgLy8gVGhlIGdsb2JhbCBvYmplY3QgaXMgcHJvYmFibHkgYSBw
cm94eSBvYmplY3Q/IC0gaWYgc28sIHdlIGtub3cgaG93IHRvIHVzZSB0aGlzIQogICAgIEpTQzo6
SlNPYmplY3QqIGdsb2JhbE9iamVjdE9iaiA9IHRvSlMoZ2xvYmFsT2JqZWN0UmVmKTsKLSAgICBp
ZiAoZ2xvYmFsT2JqZWN0T2JqLT5pbmhlcml0cygqZ2xvYmFsT2JqZWN0T2JqLT52bSgpLCBKU0RP
TVdpbmRvd1Byb3h5OjppbmZvKCkpKQorICAgIGlmIChnbG9iYWxPYmplY3RPYmotPmluaGVyaXRz
PEpTRE9NV2luZG93UHJveHk+KCpnbG9iYWxPYmplY3RPYmotPnZtKCkpKQogICAgICAgICBhbnlX
b3JsZEdsb2JhbE9iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93UHJveHkqPihnbG9iYWxP
YmplY3RPYmopLT53aW5kb3coKTsKIAogICAgIC8vIEdldCB0aGUgZnJhbWUgZnJvbWUgdGhlIGds
b2JhbCBvYmplY3Qgd2UndmUgc2V0dGxlZCBvbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>335286</attachid>
            <date>2018-03-08 03:02:17 -0800</date>
            <delta_ts>2018-03-08 03:28:01 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews112 for mac-sierra</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>445222</size>
            <attacher name="EWS Watchlist">ews-watchlist</attacher>
            
              <data encoding="base64">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
G7lR+4cuN2h1enUvGE06zY7nTILqbS3sdPzp3fOczWXllB3XWXV8b3duhg5reeNTa9yR3B8GrldO
ndBln627s3RXvZnrhGGwj3e190wpZavJlh/2TY4Vtlz0WHR3kmbJPvu+cw/91WfoO1pv8iq+vmOh
H31/V3tm9blRjHLcKf3h+2v3sOysr1HPwchq7tDxV6tg4Pi4YHjw8Nl1epuGnYsX4xrLwFgPru+8
0W1qm8ZBnZnq6+Tev19to1uuAlur+dbNOt3m/ZdRt9EM3l4Wzb5rmqpbTLLGNWin9siaNW87aY4U
3hezIu69G+3lhOnnY7A7TcKa1dO766mMshNvThpv1mzd7vdeB7f9eLrVZ67cGsvFab4IPxuLzVzb
rJurfK6837onfh3O44ZSe3kZF1xrpVd+G/fdwnrxujKKcye4lafPefnm7MzTmmm71jBbDvZeg/d4
rHYWGydUOhmf9Gvnva2+3g8bzZUNhb+cnbVy/WDd85Jpy9lgup6Ml+/R1d+cO4bqOz052QfnUXBf
y2aQj863Xo2p98+GX+RbzZ5ustwrZ3YotOPdLJulszgN+4qpNN/sTWu79ZwycBzRdz/unvvhY1tg
5WrtURi4E8d3hu0GlrTlKNPYXw3nrjuZf6xKw14e18b752Afh7Pe+aAeNpKJidumze1xGNSGvvOy
+tNiEayPrlW2J4EM3S05CJyyHMfqLHtbuHntfTH6kPy1eFuMdhEf3VersDvPp6VXvvuzERu4DrpY
dYLQDavoXofDMHQOLc/LW85w2qy5JX560veOhnMxdD5dvngrjUmUBtu5H/Z62UdcduPlttWadLsv
A7MW8vWbJx3R9RdNGzvlYITp5vUoO8tkcFSPs32ZDMViI9XX0/X95XxZd/x7I1dWyv69GB0GUS3c
vqingr/pt357eRsduv2rKSTfz5bDfHXcGYi12m723I3tvcSacmo0lMnduh1HWVebLbqvNXnX/XjV
2F/zYJ4E7bUi381BM/Q0Tdn4w0iX53A89gvNaiUDmTda22PTvfplIxnLteCWqPnK1stGW/lpy2l7
Lpu5EnT27X600tuDW9bpWK7XOoVDfdct/VO23/JizLu3zn3czK53ps9rjWl3yrblpdtjPS6bxb6v
jluN8L71J7LUG5p32Q1H79Ht8hFtLlMncDOmfmGooOf/yk//BVBLAwQUAAIACAAaEWhMruYrfkEF
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
XC1uryyuY9l2lfQ1PBcOOf/lqRu9APWkMtirO3V7H0fTWqOplKa0k1zJGjxHi0xPwK/Qe78o/Bq9
/ope3yGb9N5LqRpD49sFvukEPWfH1hqzKGTwnyugb4n67LVFkbmzYkaJsYPZb+bk5jeR3aW9nvUx
X0PjK2zTKLEd1zU+Dls9Oczi/qMBoUZQlaSQ+fz5VL3lMU5j9a6HYoM0lWt5G/VcQw1K1+JZzKTg
UQRCv7pCuZxdCcxK8e64iHydZ7fM0zVNvw7wOSM2EfxlUYtYKk3PdrtWHSJoUVYJjlnm3KyYejwV
FAaqaLpFSuS6BlXjri2NXijE+skxBKm6rURX3FpxouC/hdN7yGyLmCsFMYPAD15FHEWwfOKA2kSp
hOxGCWn1e+0IreDtEh5Mau6EjwXERECBq8/VFF7khCdh1m++SqXifwkPhC50R+ClccyFVKFzJSB9
x+k4xubLYel+m6qGVtVSpGx7Rjl+cW9soaTiuGUcO4CgLk5exOZrPdkIVy8sG6aZwtSx6xoFuz6x
qbX9/TQhItmoQ3LGxUS3777uv7PWVommQuus0KjTrUeLVRM/5T+Ahf+AuOQ8btaaewtGHwVnPE2u
MnXVndzaF58oOA/U7uNM5fUvUEsDBBQAAgAIAHIRaEws5wOmnAAAAPQBAAA7ABwAYW5pbWF0aW9u
cy8zZC9tYXRyaXgtdHJhbnNmb3JtLXR5cGUtYW5pbWF0aW9uLWNyYXNoLWxvZy50eHRVVAkAA1gM
oVpYDKFadXgLAAEE9QEAAAQUAAAAxY89D4IwFAB3fsXbmLC0+BVmcSKaNDoZQwp9QhPkkdcSw7+X
3Zm43nJ3hdZXncPZuB4tBAJGYyEWd4/sRT253tYUROlqNjyLklovTs60A/ngGo0jcVjI9B41Dhb5
xoiVSuUxSbMkPSRyn2ZyV+HHS6k2DRvfxTk8CuaBQD3hQuCnpoPX4gdisI6xCcRzvnJEVKx/ruT2
/+c/EdEXUEsDBBQAAgAIAHIRaExc4ltWjQQAAGEQAAA4ABwAYW5pbWF0aW9ucy8zZC9tYXRyaXgt
dHJhbnNmb3JtLXR5cGUtYW5pbWF0aW9uLXN0ZGVyci50eHRVVAkAA1gMoVpYDKFadXgLAAEE9QEA
AAQUAAAAzVdbb+I6EH7nV/i8VLBqIQmEEKutznLplp7eVND2YbWqHHtSshti5Di0/ffHhlwgBVp6
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
Zc1SgIfUFMPKYRyPiliWYziwgJVdGwZiE/P2jyLrM/aQqRCyO0+aHJ42YGFv2lWdP2eudPneMArW
JqDTFlhWHaxDLHyfmzgF9ZIlOcNjR6PgBryH6GhA1hFGvVc62MDkMNaORhpmTdGytDFPsBKzBhMe
lHDoNpHLsiSgj4tRGfzCdiYgCIkO1orgx+2P1bazX59LwFEDKJRWccHwDBRlBq2RLE6NVgxsv7QQ
Ye2sz82DERK3su0dTNIZsFwxJwOm+zGYC8SF94BSTWOw8NFHaK3lYX9Cy24yabITRFe75equOdv9
6XGzme+f3gDIAlavQ7SZL6vo9ina1V+rffSw32HNhOoQ1fP9fYWnzaL66+rQ/PDGPVw9P3ybgfCZ
PayWb6Lk+Z6b8rMFfNaVd/NQ1bND3d4fNvw/s4f/9J4KesC1h8Y1GLOh9kDCkF9rcvL5KvpY3Q+6
F0/FXW/XTxGegMVfdndRm9n4TTTd1fP1WwHyVl1FoNGvltW2fptcvkp+ex0dfmCgyHK2e6xngOpx
69QMaGx5pHgFQu6315Mv+1U9v11XwAAbb9mSs/Q8+gE/wsLa8Bxpo7nVbwdZHFuJ3HOPXZ8vPk5v
9Hv49tGeX1x/iCbHf6d//m5fIvp08Zf7rbi++TCNXm1323ixm6+rw6Javo4mb7srSN7+1nyZ6EW9
+o7Zh6cgEXDcnl4pF5ft92hSnEeYChD/9lCjXXVCQJT0KVaupvyL1wmFSxJ0pEKXRYCEpH0Kc3RN
RmCMwvx7dPN2AI2ps+SqR/HuU/TuYhrdP0fuV0ugXHrtkLPkvCWPJpdOvY80vu/oersIPpDqo7rS
799fFyODgDBQbRpUadZS3D/O98voIdxprGsDKD5NdXEZnd/oj+aFRkBBJm0bEihqeH+jYxMUQdmn
+Hw1c7j01L5M06Hi0eRLdYv1/K7c5Ag/Oj1LmzYI9NVsZvRUj6JiOO+fv1KOFBdX+tyOkfB08D5m
s/cXHy6tgfcevihGx7eoCFJM7R/TMVBKtBRHVDcfLoprM4KLD2fUxgmVF8a5u0Rv7CKqgysEEG2q
DRbpCPauOKN9il+XDNPrqZNOY8/ezg+Bb3DyD1BLAwQUAAIACAByEWhMAvVKvNEEAAD/EAAAKwAc
AGFuaW1hdGlvbnMvYWRkZWQtd2hpbGUtc3VzcGVuZGVkLXN0ZGVyci50eHRVVAkAA1gMoVpYDKFa
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
fI0BAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1jcmFzaC13aXRoLWR5bmFtaWMtaW5saW5l
LWNvbnRlbnQtY3Jhc2gtbG9nLnR4dFVUBQADWAyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AHIRaEwNe2p+0gQAAP0QAABIABgAAAAAAAEAAACkgZGOAQBhY2Nlc3NpYmlsaXR5L2FjY2Vzc2li
aWxpdHktY3Jhc2gtd2l0aC1keW5hbWljLWlubGluZS1jb250ZW50LXN0ZGVyci50eHRVVAUAA1gM
oVp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAByEWhMAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA
7UHlkwEAYWNjZXNzaWJpbGl0eS9tYWMvVVQFAANYDKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAiRFoTKXsQCnrQwAAywEBADwAGAAAAAAAAQAAAKSBMZQBAGFjY2Vzc2liaWxpdHkvbWFjL0FP
TS1ldmVudC1hY2Nlc3NpYmxlc2V0dmFsdWUtY3Jhc2gtbG9nLnR4dFVUBQADggyhWnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIADoRaEw2CuGRjQQAAF8QAAA5ABgAAAAAAAEAAACkgZLYAQBhY2Nl
c3NpYmlsaXR5L21hYy9BT00tZXZlbnQtYWNjZXNzaWJsZXNldHZhbHVlLXN0ZGVyci50eHRVVAUA
A+8LoVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACJEWhMHXqPyWtCAADv+QAAMQAYAAAAAAAB
AAAApIGS3QEAYWNjZXNzaWJpbGl0eS9tYWMvYWJici1hY3JvbnltLXRhZ3MtY3Jhc2gtbG9nLnR4
dFVUBQADggyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFYRaExD9oDnjgQAAF8QAAAuABgA
AAAAAAEAAACkgWggAgBhY2Nlc3NpYmlsaXR5L21hYy9hYmJyLWFjcm9ueW0tdGFncy1zdGRlcnIu
dHh0VVQFAAMjDKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAiRFoTJteID65QwAAkwABACkA
GAAAAAAAAQAAAKSBXiUCAGFjY2Vzc2liaWxpdHkvbWFjL2FjY2Vzc2tleS1jcmFzaC1sb2cudHh0
VVQFAAOCDKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAchFoTBVPcRnRBAAA/xAAACYAGAAA
AAAAAQAAAKSBemkCAGFjY2Vzc2liaWxpdHkvbWFjL2FjY2Vzc2tleS1zdGRlcnIudHh0VVQFAANY
DKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAVRFoTAAAAAAAAAAAAAAAACQAGAAAAAAAAAAQ
AO1Bq24CAGFjY2Vzc2liaWxpdHkvbWFjL2F0dHJpYnV0ZWQtc3RyaW5nL1VUBQADIgyhWnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAIkRaEyrKI1u20MAALYAAQBNABgAAAAAAAEAAACkgQlvAgBh
Y2Nlc3NpYmlsaXR5L21hYy9hdHRyaWJ1dGVkLXN0cmluZy9hdHRyaWJ1dGVkLXN0cmluZy1mb3It
cmFuZ2UtY3Jhc2gtbG9nLnR4dFVUBQADggyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFUR
aExfHnwd0gQAAP0QAABKABgAAAAAAAEAAACkgWuzAgBhY2Nlc3NpYmlsaXR5L21hYy9hdHRyaWJ1
dGVkLXN0cmluZy9hdHRyaWJ1dGVkLXN0cmluZy1mb3ItcmFuZ2Utc3RkZXJyLnR4dFVUBQADIgyh
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIkRaEyhJ22uZ0UAADsIAQBaABgAAAAAAAEAAACk
gcG4AgBhY2Nlc3NpYmlsaXR5L21hYy9hdHRyaWJ1dGVkLXN0cmluZy9hdHRyaWJ1dGVkLXN0cmlu
Zy1mb3ItcmFuZ2Utd2l0aC1vcHRpb25zLWNyYXNoLWxvZy50eHRVVAUAA4IMoVp1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAA6EWhMq4M2gdEEAAD9EAAAVwAYAAAAAAABAAAApIG8/gIAYWNjZXNz
aWJpbGl0eS9tYWMvYXR0cmlidXRlZC1zdHJpbmcvYXR0cmlidXRlZC1zdHJpbmctZm9yLXJhbmdl
LXdpdGgtb3B0aW9ucy1zdGRlcnIudHh0VVQFAAPvC6FadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAbhFoTAAAAAAAAAAAAAAAAB4AGAAAAAAAAAAQAO1BHgQDAGFjY2Vzc2liaWxpdHkvbWFjL3Nl
bGVjdC10ZXh0L1VUBQADTwyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIkRaEzi8u2K6UMA
AMcBAQA5ABgAAAAAAAEAAACkgXYEAwBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3QtdGV4dC9zZWxl
Y3QtdGV4dC0xLWNyYXNoLWxvZy50eHRVVAUAA4IMoVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAA6EWhMSWvkYY0EAABfEAAANgAYAAAAAAABAAAApIHSSAMAYWNjZXNzaWJpbGl0eS9tYWMvc2Vs
ZWN0LXRleHQvc2VsZWN0LXRleHQtMS1zdGRlcnIudHh0VVQFAAPvC6FadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAiRFoTJFww2X0QQAA5eoAADkAGAAAAAAAAQAAAKSBz00DAGFjY2Vzc2liaWxp
dHkvbWFjL3NlbGVjdC10ZXh0L3NlbGVjdC10ZXh0LTItY3Jhc2gtbG9nLnR4dFVUBQADggyhWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFYRaExQgOmZjgQAAF8QAAA2ABgAAAAAAAEAAACkgTaQ
AwBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3QtdGV4dC9zZWxlY3QtdGV4dC0yLXN0ZGVyci50eHRV
VAUAAyMMoVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACJEWhM/lcAwlVCAAAq/AAAOQAYAAAA
AAABAAAApIE0lQMAYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0LXRleHQvc2VsZWN0LXRleHQtMy1j
cmFzaC1sb2cudHh0VVQFAAOCDKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbhFoTJf0auuQ
BAAAYRAAADYAGAAAAAAAAQAAAKSB/NcDAGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdC10ZXh0L3Nl
bGVjdC10ZXh0LTMtc3RkZXJyLnR4dFVUBQADTwyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
ADoRaEwAAAAAAAAAAAAAAAAfABgAAAAAAAAAEADtQfzcAwBhY2Nlc3NpYmlsaXR5L21hYy92YWx1
ZS1jaGFuZ2UvVVQFAAPvC6FadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAiRFoTBXsGqz2QwAA
4gEBAFMAGAAAAAAAAQAAAKSBVd0DAGFjY2Vzc2liaWxpdHkvbWFjL3ZhbHVlLWNoYW5nZS92YWx1
ZS1jaGFuZ2UtdXNlci1pbmZvLWNvbnRlbnRlZGl0YWJsZS1jcmFzaC1sb2cudHh0VVQFAAOCDKFa
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOhFoTOaEINOOBAAAXxAAAFAAGAAAAAAAAQAAAKSB
2CEEAGFjY2Vzc2liaWxpdHkvbWFjL3ZhbHVlLWNoYW5nZS92YWx1ZS1jaGFuZ2UtdXNlci1pbmZv
LWNvbnRlbnRlZGl0YWJsZS1zdGRlcnIudHh0VVQFAAPvC6FadXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAXRFoTAAAAAAAAAAAAAAAABoAGAAAAAAAAAAQAO1B8CYEAGFjY2Vzc2liaWxpdHkvdGV4
dC1tYXJrZXIvVVQFAAMyDKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXRFoTDisqTeuBAAA
nxAAAFkAGAAAAAAAAQAAAKSBRCcEAGFjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvY2hhcmFjdGVy
LW9mZnNldC12aXNpYmxlLXBvc2l0aW9uLWNvbnZlcnNpb24taGFuZy1jcmFzaC1sb2cudHh0VVQF
AAMyDKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXRFoTC1fPpKOBAAAXxAAAFYAGAAAAAAA
AQAAAKSBhSwEAGFjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvY2hhcmFjdGVyLW9mZnNldC12aXNp
YmxlLXBvc2l0aW9uLWNvbnZlcnNpb24taGFuZy1zdGRlcnIudHh0VVQFAAMyDKFadXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAchFoTAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BozEEAGFuaW1h
dGlvbnMvVVQFAANYDKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAchFoTAAAAAAAAAAAAAAA
AA4AGAAAAAAAAAAQAO1B6DEEAGFuaW1hdGlvbnMvM2QvVVQFAANYDKFadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAXRFoTAVuJU3zBAAAPREAADkAGAAAAAAAAQAAAKSBMDIEAGFuaW1hdGlvbnMv
M2QvY2hhbmdlLXRyYW5zZm9ybS1pbi1lbmQtZXZlbnQtY3Jhc2gtbG9nLnR4dFVUBQADMgyhWnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAF0RaEwtwO791AQAAP0QAAA2ABgAAAAAAAEAAACkgZY3
BABhbmltYXRpb25zLzNkL2NoYW5nZS10cmFuc2Zvcm0taW4tZW5kLWV2ZW50LXN0ZGVyci50eHRV
VAUAAzIMoVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAByEWhMLOcDppwAAAD0AQAAOwAYAAAA
AAABAAAApIHaPAQAYW5pbWF0aW9ucy8zZC9tYXRyaXgtdHJhbnNmb3JtLXR5cGUtYW5pbWF0aW9u
LWNyYXNoLWxvZy50eHRVVAUAA1gMoVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAByEWhMXOJb
Vo0EAABhEAAAOAAYAAAAAAABAAAApIHrPQQAYW5pbWF0aW9ucy8zZC9tYXRyaXgtdHJhbnNmb3Jt
LXR5cGUtYW5pbWF0aW9uLXN0ZGVyci50eHRVVAUAA1gMoVp1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAA6EWhMEmBbP5wAAAD0AQAAMwAYAAAAAAABAAAApIHqQgQAYW5pbWF0aW9ucy9DU1NLZXlm
cmFtZXNSdWxlLW5hbWUtbnVsbC1jcmFzaC1sb2cudHh0VVQFAAPvC6FadXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAOhFoTNRCFiqOBAAAXxAAADAAGAAAAAAAAQAAAKSB80MEAGFuaW1hdGlvbnMv
Q1NTS2V5ZnJhbWVzUnVsZS1uYW1lLW51bGwtc3RkZXJyLnR4dFVUBQAD7wuhWnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIkRaEwX7IGj+0QAAC8JAQA0ABgAAAAAAAEAAACkgetIBABhbmltYXRp
b25zL0NTU0tleWZyYW1lc1J1bGUtcGFyYW1ldGVycy1jcmFzaC1sb2cudHh0VVQFAAOCDKFadXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVhFoTKVxlwyOBAAAXxAAADEAGAAAAAAAAQAAAKSBVI4E
AGFuaW1hdGlvbnMvQ1NTS2V5ZnJhbWVzUnVsZS1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAUAAyMM
oVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAByEWhM/hqLSrVDAAByAgEALgAYAAAAAAABAAAA
pIFNkwQAYW5pbWF0aW9ucy9hZGRlZC13aGlsZS1zdXNwZW5kZWQtY3Jhc2gtbG9nLnR4dFVUBQAD
WAyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHIRaEwC9Uq80QQAAP8QAAArABgAAAAAAAEA
AACkgWrXBABhbmltYXRpb25zL2FkZGVkLXdoaWxlLXN1c3BlbmRlZC1zdGRlcnIudHh0VVQFAANY
DKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAXRFoTAAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQ
AO1BoNwEAGNhbnZhcy9VVAUAAzIMoVp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABdEWhMAAAA
AAAAAAAAAAAADgAYAAAAAAAAABAA7UHh3AQAY2FudmFzL3BoaWxpcC9VVAUAAzIMoVp1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAABdEWhMAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UEp3QQAY2Fu
dmFzL3BoaWxpcC90ZXN0cy9VVAUAAzIMoVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABdEWhM
RlcAFqsEAACfEAAANAAYAAAAAAABAAAApIF33QQAY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jYW52
YXMucmVhZG9ubHktY3Jhc2gtbG9nLnR4dFVUBQADMgyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAF0RaEyehwLbjAQAAF8QAAAxABgAAAAAAAEAAACkgZDiBABjYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLmNhbnZhcy5yZWFkb25seS1zdGRlcnIudHh0VVQFAAMyDKFadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAchFoTAAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1Bh+cEAGNvbXBvc2l0aW5nL1VU
BQADWAyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADoRaEy71+Y9kAAAAPoAAAA7ABgAAAAA
AAEAAACkgc3nBABjb21wb3NpdGluZy9hYnNvbHV0ZS1pbnNpZGUtb3V0LW9mLXZpZXctZml4ZWQt
Y3Jhc2gtbG9nLnR4dFVUBQAD7wuhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADoRaEw5Xzlo
0QQAAP0QAAA4ABgAAAAAAAEAAACkgdLoBABjb21wb3NpdGluZy9hYnNvbHV0ZS1pbnNpZGUtb3V0
LW9mLXZpZXctZml4ZWQtc3RkZXJyLnR4dFVUBQAD7wuhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAIkRaEyMOGsRdUMAAEXxAABHABgAAAAAAAEAAACkgRXuBABjb21wb3NpdGluZy9hYnNvbHV0
ZS1wb3NpdGlvbi1jaGFuZ2VkLWluLWNvbXBvc2l0ZWQtbGF5ZXItY3Jhc2gtbG9nLnR4dFVUBQAD
ggyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFYRaEy7X2o80AQAAP0QAABEABgAAAAAAAEA
AACkgQsyBQBjb21wb3NpdGluZy9hYnNvbHV0ZS1wb3NpdGlvbi1jaGFuZ2VkLWluLWNvbXBvc2l0
ZWQtbGF5ZXItc3RkZXJyLnR4dFVUBQADIwyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHIR
aExt6+IGzUMAAJQCAQBQABgAAAAAAAEAAACkgVk3BQBjb21wb3NpdGluZy9hYnNvbHV0ZS1wb3Np
dGlvbi1jaGFuZ2VkLXdpdGgtY29tcG9zaXRlZC1wYXJlbnQtbGF5ZXItY3Jhc2gtbG9nLnR4dFVU
BQADWAyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHIRaEzB7m5T0QQAAP8QAABNABgAAAAA
AAEAAACkgbB7BQBjb21wb3NpdGluZy9hYnNvbHV0ZS1wb3NpdGlvbi1jaGFuZ2VkLXdpdGgtY29t
cG9zaXRlZC1wYXJlbnQtbGF5ZXItc3RkZXJyLnR4dFVUBQADWAyhWnV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAF0RaEwAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQQiBBQBjb21wb3NpdGluZy9h
bmltYXRpb24vVVQFAAMyDKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXRFoTFlqnWutBAAA
nxAAAEUAGAAAAAAAAQAAAKSBWIEFAGNvbXBvc2l0aW5nL2FuaW1hdGlvbi9hbmltYXRlZC1jb21w
b3NpdGVkLWluc2lkZS1oaWRkZW4tY3Jhc2gtbG9nLnR4dFVUBQADMgyhWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAF0RaExBQhmUjQQAAF8QAABCABgAAAAAAAEAAACkgYSGBQBjb21wb3NpdGlu
Zy9hbmltYXRpb24vYW5pbWF0ZWQtY29tcG9zaXRlZC1pbnNpZGUtaGlkZGVuLXN0ZGVyci50eHRV
VAUAAzIMoVp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABdEWhMAAAAAAAAAAAAAAAAIAAYAAAA
AAAAABAA7UGNiwUAY29tcG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS9VVAUAAzIMoVp1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABdEWhM+uaT/+4EAAA9EQAARAAYAAAAAAABAAAApIHniwUA
Y29tcG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS9iYWNrZmFjZS12aXNpYmlsaXR5LTNkLWNy
YXNoLWxvZy50eHRVVAUAAzIMoVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABdEWhM37zFI88E
AAD9EAAAQQAYAAAAAAABAAAApIFTkQUAY29tcG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS9i
YWNrZmFjZS12aXNpYmlsaXR5LTNkLXN0ZGVyci50eHRVVAUAAzIMoVp1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAABgEWhMAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UGdlgUAY29tcG9zaXRpbmcv
YmFja2luZy9VVAUAAzMMoVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABgEWhMczOj2fAEAAA9
EQAAOgAYAAAAAAABAAAApIHrlgUAY29tcG9zaXRpbmcvYmFja2luZy9iYWNrZmFjZS12aXNpYmls
aXR5LWZsaXAtY3Jhc2gtbG9nLnR4dFVUBQADMwyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AGARaEy0KDo60AQAAP0QAAA3ABgAAAAAAAEAAACkgU+cBQBjb21wb3NpdGluZy9iYWNraW5nL2Jh
Y2tmYWNlLXZpc2liaWxpdHktZmxpcC1zdGRlcnIudHh0VVQFAAMzDKFadXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAYBFoTAAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BkKEFAGNvbXBvc2l0aW5n
L2NhbnZhcy9VVAUAAzMMoVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABgEWhMTpUDhvAEAAA9
EQAASgAYAAAAAAABAAAApIHdoQUAY29tcG9zaXRpbmcvY2FudmFzL2FjY2VsZXJhdGVkLWNhbnZh
cy1jb21wb3NpdGluZy1zaXplLWxpbWl0LWNyYXNoLWxvZy50eHRVVAUAAzMMoVp1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABgEWhMjY+nP9EEAAD9EAAARwAYAAAAAAABAAAApIFRpwUAY29tcG9z
aXRpbmcvY2FudmFzL2FjY2VsZXJhdGVkLWNhbnZhcy1jb21wb3NpdGluZy1zaXplLWxpbWl0LXN0
ZGVyci50eHRVVAUAAzMMoVp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABgEWhMAAAAAAAAAAAA
AAAAFQAYAAAAAAAAABAA7UGjrAUAY29tcG9zaXRpbmcvY2xpcHBpbmcvVVQFAAMzDKFadXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAYBFoTEugpnPvBAAAPREAAFEAGAAAAAAAAQAAAKSB8qwFAGNv
bXBvc2l0aW5nL2NsaXBwaW5nL2JvcmRlci1yYWRpdXMtb3ZlcmZsb3ctaGlkZGVuLXN0YWNraW5n
LWNvbnRleHQtY3Jhc2gtbG9nLnR4dFVUBQADMwyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AGARaExYL65A0AQAAP0QAABOABgAAAAAAAEAAACkgWyyBQBjb21wb3NpdGluZy9jbGlwcGluZy9i
b3JkZXItcmFkaXVzLW92ZXJmbG93LWhpZGRlbi1zdGFja2luZy1jb250ZXh0LXN0ZGVyci50eHRV
VAUAAzMMoVp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAByEWhMAAAAAAAAAAAAAAAAGwAYAAAA
AAAAABAA7UHEtwUAY29tcG9zaXRpbmcvY29sb3ItbWF0Y2hpbmcvVVQFAANYDKFadXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAYBFoTFad+ayQBAAAVw8AAD0AGAAAAAAAAQAAAKSBGbgFAGNvbXBv
c2l0aW5nL2NvbG9yLW1hdGNoaW5nL2ltYWdlLWNvbG9yLW1hdGNoaW5nLWNyYXNoLWxvZy50eHRV
VAUAAzMMoVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABgEWhMwEMZ3nAEAAAXDwAAOgAYAAAA
AAABAAAApIEgvQUAY29tcG9zaXRpbmcvY29sb3ItbWF0Y2hpbmcvaW1hZ2UtY29sb3ItbWF0Y2hp
bmctc3RkZXJyLnR4dFVUBQADMwyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHIRaEws5wOm
nAAAAPQBAAA4ABgAAAAAAAEAAACkgQTCBQBjb21wb3NpdGluZy9jb2xvci1tYXRjaGluZy9wZGYt
aW1hZ2UtbWF0Y2gtY3Jhc2gtbG9nLnR4dFVUBQADWAyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAHIRaExV+19FbQQAABkPAAA1ABgAAAAAAAEAAACkgRLDBQBjb21wb3NpdGluZy9jb2xvci1t
YXRjaGluZy9wZGYtaW1hZ2UtbWF0Y2gtc3RkZXJyLnR4dFVUBQADWAyhWnV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAGARaEwAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQe7HBQBjb21wb3NpdGlu
Zy9jb2x1bW5zL1VUBQADMwyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGARaExgl9Jj9AQA
AD0RAAA/ABgAAAAAAAEAAACkgTzIBQBjb21wb3NpdGluZy9jb2x1bW5zL2FuY2VzdG9yLWNsaXBw
ZWQtaW4tcGFnaW5hdGVkLWNyYXNoLWxvZy50eHRVVAUAAzMMoVp1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABgEWhMyNddodQEAAD9EAAAPAAYAAAAAAABAAAApIGpzQUAY29tcG9zaXRpbmcvY29s
dW1ucy9hbmNlc3Rvci1jbGlwcGVkLWluLXBhZ2luYXRlZC1zdGRlcnIudHh0VVQFAAMzDKFadXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAYBFoTAAAAAAAAAAAAAAAABwAGAAAAAAAAAAQAO1B89IF
AGNvbXBvc2l0aW5nL2NvbnRlbnRzLWZvcm1hdC9VVAUAAzMMoVp1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABgEWhMBcK+afIEAAA9EQAASwAYAAAAAAABAAAApIFJ0wUAY29tcG9zaXRpbmcvY29u
dGVudHMtZm9ybWF0L3N1YnBpeGVsLWFudGlhbGlhc2VkLW5lc3RlZC1sYXllci1jcmFzaC1sb2cu
dHh0VVQFAAMzDKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYBFoTAclA/fTBAAA/RAAAEgA
GAAAAAAAAQAAAKSBwNgFAGNvbXBvc2l0aW5nL2NvbnRlbnRzLWZvcm1hdC9zdWJwaXhlbC1hbnRp
YWxpYXNlZC1uZXN0ZWQtbGF5ZXItc3RkZXJyLnR4dFVUBQADMwyhWnV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAGARaEwAAAAAAAAAAAAAAAAcABgAAAAAAAAAEADtQRXeBQBjb21wb3NpdGluZy9j
b250ZW50cy1vcGFxdWUvVVQFAAMzDKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYBFoTMhT
DarxBAAAPREAADkAGAAAAAAAAQAAAKSBa94FAGNvbXBvc2l0aW5nL2NvbnRlbnRzLW9wYXF1ZS9i
YWNrZ3JvdW5kLWNsaXAtY3Jhc2gtbG9nLnR4dFVUBQADMwyhWnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAGARaEz626/o0gQAAP0QAAA2ABgAAAAAAAEAAACkgc/jBQBjb21wb3NpdGluZy9jb250
ZW50cy1vcGFxdWUvYmFja2dyb3VuZC1jbGlwLXN0ZGVyci50eHRVVAUAAzMMoVp1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAABgEWhMAAAAAAAAAAAAAAAAGwAYAAAAAAAAABAA7UER6QUAY29tcG9z
aXRpbmcvY29udGVudHMtc2NhbGUvVVQFAAM0DKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
YBFoTOCV51fyBAAAPREAADIAGAAAAAAAAQAAAKSBZukFAGNvbXBvc2l0aW5nL2NvbnRlbnRzLXNj
YWxlL2FuaW1hdGluZy1jcmFzaC1sb2cudHh0VVQFAAM0DKFadXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAYBFoTGJ7aLXTBAAA/RAAAC8AGAAAAAAAAQAAAKSBxO4FAGNvbXBvc2l0aW5nL2NvbnRl
bnRzLXNjYWxlL2FuaW1hdGluZy1zdGRlcnIudHh0VVQFAAM0DKFadXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAYBFoTAAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BAPQFAGNvbXBvc2l0aW5nL2N1
bGxpbmcvVVQFAAM0DKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYBFoTA3be3HxBAAAPREA
ADQAGAAAAAAAAQAAAKSBTvQFAGNvbXBvc2l0aW5nL2N1bGxpbmcvY2xlYXItZml4ZWQtaWZyYW1l
LWNyYXNoLWxvZy50eHRVVAUAAzQMoVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABgEWhM7vX6
HtEEAAD9EAAAMQAYAAAAAAABAAAApIGt+QUAY29tcG9zaXRpbmcvY3VsbGluZy9jbGVhci1maXhl
ZC1pZnJhbWUtc3RkZXJyLnR4dFVUBQADNAyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGAR
aEwAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQen+BQBjb21wb3NpdGluZy9maWx0ZXJzL1VUBQAD
NAyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGARaExUivXH8QQAAD0RAAA3ABgAAAAAAAEA
AACkgTf/BQBjb21wb3NpdGluZy9maWx0ZXJzL2JsZW5kLW1vZGUtc2F0dXJhdGlvbi1jcmFzaC1s
b2cudHh0VVQFAAM0DKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYBFoTNEDNVbRBAAA/RAA
ADQAGAAAAAAAAQAAAKSBmQQGAGNvbXBvc2l0aW5nL2ZpbHRlcnMvYmxlbmQtbW9kZS1zYXR1cmF0
aW9uLXN0ZGVyci50eHRVVAUAAzQMoVp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABsEWhMAAAA
AAAAAAAAAAAAFgAYAAAAAAAAABAA7UHYCQYAY29tcG9zaXRpbmcvZnJhbWVzZXRzL1VUBQADSwyh
WnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIkRaEx2gofZv0IAAAz8AAA+ABgAAAAAAAEAAACk
gSgKBgBjb21wb3NpdGluZy9mcmFtZXNldHMvY29tcG9zaXRlZC1mcmFtZS1hbGlnbm1lbnQtY3Jh
c2gtbG9nLnR4dFVUBQADggyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGwRaEyJ9h1JbQQA
ABkPAAA7ABgAAAAAAAEAAACkgV9NBgBjb21wb3NpdGluZy9mcmFtZXNldHMvY29tcG9zaXRlZC1m
cmFtZS1hbGlnbm1lbnQtc3RkZXJyLnR4dFVUBQADSwyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAHMRaExmZklPwwIAAFgIAAANABgAAAAAAAEAAACkgUFSBgBlcnJvcl9sb2cudHh0VVQFAANZ
DKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAihFoTAQsSKaUAwAARBAAABEAGAAAAAAAAQAA
AKSBS1UGAGZ1bGxfcmVzdWx0cy5qc29uVVQFAAODDKFadXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAGBFoTFsEWA6iBQAATRAAAAoAGAAAAAAAAQAAAKSBKlkGAGh0dHBkLmNvbmZVVAUAA7ALoVp1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAZEWhMAAAAAAAAAAAAAAAAGgAYAAAAAAAAAAAApIEQ
XwYAcHl3ZWJzb2NrZXQud3MubG9nLWVyci50eHRVVAUAA7ILoVp1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAAZEWhMAAAAAAAAAAAAAAAAGgAYAAAAAAAAAAAApIFkXwYAcHl3ZWJzb2NrZXQud3Mu
bG9nLW91dC50eHRVVAUAA7ELoVp1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAaEWhMAAAAAAAA
AAAAAAAAGwAYAAAAAAAAAAAApIG4XwYAcHl3ZWJzb2NrZXQud3NzLmxvZy1lcnIudHh0VVQFAAOz
C6FadXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAGRFoTAAAAAAAAAAAAAAAABsAGAAAAAAAAAAA
AKSBDWAGAHB5d2Vic29ja2V0Lndzcy5sb2ctb3V0LnR4dFVUBQADsguhWnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAIoRaEyPylJacSkAAMavAAAMABgAAAAAAAEAAACkgWJgBgByZXN1bHRzLmh0
bWxVVAUAA4QMoVp1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACKEWhMK7WmYgsEAAC8CwAACgAY
AAAAAAABAAAApIEZigYAc3RhdHMuanNvblVUBQADgwyhWnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIABwRaEweIXwUXgUAAAgjAAAZABgAAAAAAAEAAACkgWiOBgB3cHR3a19wcm9jZXNzX2xvZy5v
dXQudHh0VVQFAAO3C6FadXgLAAEE9QEAAAQUAAAAUEsFBgAAAAB7AHsA9zYAABmUBgAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335287</attachid>
            <date>2018-03-08 03:10:56 -0800</date>
            <delta_ts>2018-03-08 07:54:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183429-20180308201055.patch</filename>
            <type>text/plain</type>
            <size>166132</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MDNmOTVhNTYwNTc0ZjllNDQ1M2RjZjYyZDgyM2FjZTAyY2UxMjkwLi5lY2NiOWMwNjUyOGE4YmU0
NTk3ZWVhMGQyODFkZjBmNmRiYWE1OWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDggQEAKKzIwMTgtMDMtMDggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIGluaGVyaXRzPFQ+KFZNJikgbGV2ZXJhZ2luZyBK
U0Nhc3QgZmFzdCBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODM0MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbiwgSlNDZWxsOjppbmhlcml0czxUPihWTSYp
IGFuZCBKU1ZhbHVlOjppbmhlcml0czxUPihWTSYpLgorICAgICAgICBUaGV5IGRlcGVuZHMgb24g
anNEeW5hbWljQ2FzdDxUPiBpbXBsZW1lbnRhdGlvbiBhbmQgbGV2ZXJhZ2UgSlNUeXBlLWJhc2Vk
IGZhc3QKKyAgICAgICAgcGF0aHMgZGVmaW5lZCBpbiBKU0Nhc3QuaC4gV2UgZXh0cmFjdCBjaGVj
a2luZyBwYXJ0IGFzIGBKU0Nhc3RpbmdIZWxwZXJzOjppbmhlcml0YAorICAgICAgICBhbmQgY29u
c3RydWN0IGpzRHluYW1pY0Nhc3QgYW5kIEpTQ2VsbDo6aW5oZXJpdHMgYmFzZWQgb24gdGhpcy4K
KworICAgICAgICBBbmQgd2UgcmVtb3ZlIHNldmVyYWwgdW5uZWNlc3NhcnkgY2FzdGluZyBmdW5j
dGlvbnMgKGFzUmVnRXhwT2JqZWN0LCBhc0RhdGVJbnN0YW5jZSBldGMuKS4KKyAgICAgICAgSW4g
YWRkaXRpb24sIHdlIGFkZCBqc0R5bmFtaWNDYXN0IGZhc3QgcGF0aCBmb3IgUmVnRXhwT2JqZWN0
IGJ5IHVzaW5nIGV4aXN0aW5nIFJlZ0V4cE9iamVjdFR5cGUuCisKKyAgICAgICAgV2UgYWxzbyBm
aXggdGhlIGltcGxlbWVudGF0aW9uIG9mIGpzRHluYW1pY0Nhc3QgZm9yIEpTT2JqZWN0IHNpbmNl
IGl0IHVzZXMgTGFzdEpTQ09iamVjdFR5cGUuCisgICAgICAgIFRoZSBlbWJlZGRlciBjYW4gYWRk
IHRoZWlyIGV4dGVuZGVkIG9iamVjdCB0eXBlcyBhZnRlciB0aGF0LgorCisgICAgICAgICogQVBJ
L0pTT2JqZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2JqZWN0R2V0UHJpdmF0ZVByb3BlcnR5KToK
KyAgICAgICAgKEpTT2JqZWN0U2V0UHJpdmF0ZVByb3BlcnR5KToKKyAgICAgICAgKEpTT2JqZWN0
RGVsZXRlUHJpdmF0ZVByb3BlcnR5KToKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAg
ICAgKGlzRGF0ZSk6CisgICAgICAgIChpc0FycmF5KToKKyAgICAgICAgKiBBUEkvSlNWYWx1ZVJl
Zi5jcHA6CisgICAgICAgIChKU1ZhbHVlSXNBcnJheSk6CisgICAgICAgIChKU1ZhbHVlSXNEYXRl
KToKKyAgICAgICAgKEpTVmFsdWVJc09iamVjdE9mQ2xhc3MpOgorICAgICAgICAqIEFQSS9KU1dl
YWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcDoKKyAgICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1t
OgorICAgICAgICAodHJ5VW53cmFwT2JqY09iamVjdCk6CisgICAgICAgICogQVBJL09iakNDYWxs
YmFja0Z1bmN0aW9uLm1tOgorICAgICAgICAodHJ5VW53cmFwQ29uc3RydWN0b3IpOgorICAgICAg
ICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNv
ZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoK
KyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU92ZXJyaWRlc0hhc0luc3RhbmNlKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5ld1JlZ2V4cCk6CisgICAgICAg
ICogZnRsL0ZUTE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Om9wZXJhdGlvbk1h
dGVyaWFsaXplT2JqZWN0SW5PU1IpOgorICAgICAgICAqIGluc3BlY3Rvci9KU0luamVjdGVkU2Ny
aXB0SG9zdC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTSW5qZWN0ZWRTY3JpcHRIb3N0Ojpz
dWJ0eXBlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OmZ1bmN0
aW9uRGV0YWlscyk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdl
bnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JIZWFwQWdlbnQ6OmdldFByZXZp
ZXcpOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6bm90aWZ5RGVidWdnZXJPZlVud2luZGluZyk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU2hh
ZG93Q2hpY2tlbi5jcHA6CisgICAgICAgIChKU0M6OlNoYWRvd0NoaWNrZW46OnVwZGF0ZSk6Cisg
ICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVN
YWluUGFzcyk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlND
OjpvcGVyYXRpb25OZXdGdW5jdGlvbkNvbW1vbik6CisgICAgICAgICoganNjLmNwcDoKKyAgICAg
ICAgKGNoZWNrRXhjZXB0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5PYmplY3QuaDoK
KyAgICAgICAgKEpTQzo6YXNCb29sZWFuT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpib29sZWFuUHJvdG9GdW5j
VG9TdHJpbmcpOgorICAgICAgICAoSlNDOjpib29sZWFuUHJvdG9GdW5jVmFsdWVPZik6CisgICAg
ICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3REYXRlKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZS5oOgorICAgICAgICAoSlND
Ojphc0RhdGVJbnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Zm9ybWF0ZURhdGVJbnN0YW5jZSk6CisgICAgICAgIChK
U0M6OmRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1
bmNUb0xvY2FsZVN0cmluZyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb0xvY2FsZURh
dGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jVG9Mb2NhbGVUaW1lU3RyaW5n
KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFRpbWUpOgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jR2V0RnVsbFllYXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0
VVRDRnVsbFllYXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0TW9udGgpOgorICAg
ICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGgpOgorICAgICAgICAoSlNDOjpkYXRl
UHJvdG9GdW5jR2V0RGF0ZSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENEYXRl
KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldERheSk6CisgICAgICAgIChKU0M6OmRh
dGVQcm90b0Z1bmNHZXRVVENEYXkpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0SG91
cnMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMpOgorICAgICAgICAo
SlNDOjpkYXRlUHJvdG9GdW5jR2V0TWludXRlcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1
bmNHZXRVVENNaW51dGVzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFNlY29uZHMp
OgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyk6CisgICAgICAgIChK
U0M6OmRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJv
dG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dl
dFRpbWV6b25lT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1NldFRpbWUpOgor
ICAgICAgICAoSlNDOjpzZXROZXdWYWx1ZUZyb21UaW1lQXJncyk6CisgICAgICAgIChKU0M6OnNl
dE5ld1ZhbHVlRnJvbURhdGVBcmdzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1NldFll
YXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0WWVhcik6CisgICAgICAgICogcnVu
dGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6aXNUZXJtaW5hdGVkRXhl
Y3V0aW9uRXhjZXB0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICog
cnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmg6CisgICAgICAgIChKU0M6OmFzSW50ZXJuYWxGdW5j
dGlvbik6CisgICAgICAgICogcnVudGltZS9KU0FycmF5Lmg6CisgICAgICAgIChKU0M6OmFzQXJy
YXkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkpT
VmFsdWU6OmR1bXBGb3JCYWNrdHJhY2UgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNW
YWx1ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAg
KEpTQzo6SlNWYWx1ZTo6aW5oZXJpdHMgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDYXN0
Lmg6CisgICAgICAgIChKU0M6OkpTQ2FzdGluZ0hlbHBlcnM6OmluaGVyaXRzR2VuZXJpY0ltcGwp
OgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjppbmhlcml0c0pTVHlwZUltcGwpOgor
ICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjpJbmhlcml0c1RyYWl0czo6aW5oZXJpdHMp
OgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjppbmhlcml0cyk6CisgICAgICAgIChK
U0M6OmpzRHluYW1pY0Nhc3QpOgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdIZWxwZXJzOjpqc0R5
bmFtaWNDYXN0R2VuZXJpY0ltcGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0Nhc3RpbmdI
ZWxwZXJzOjpqc0R5bmFtaWNDYXN0SlNUeXBlSW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkpTQ2FzdGluZ0hlbHBlcnM6OkpTRHluYW1pY0Nhc3RUcmFpdHM6OmNhc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgICogcnVudGltZS9KU0NlbGxJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6aW5oZXJpdHMgY29uc3QpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OlJldHJpZXZlQ2FsbGVyRnVu
Y3Rpb25GdW5jdG9yOjpvcGVyYXRvcigpIGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlv
bjo6Y2FsbGVyR2V0dGVyKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duTm9uSW5k
ZXhQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6cmVpZnlMYXp5Qm91
bmROYW1lSWZOZWVkZWQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjplbnF1ZXVlSm9iKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0Lmg6CisgICAgICAgIChKU0M6OmFzR2xvYmFsT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAoSlNDOjpK
U0ludGVybmFsUHJvbWlzZURlZmVycmVkOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNM
ZXhpY2FsRW52aXJvbm1lbnQuaDoKKyAgICAgICAgKEpTQzo6YXNBY3RpdmF0aW9uKToKKyAgICAg
ICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjp1bndyYXBCb3hlZFBy
aW1pdGl2ZSk6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpTdHJpbmdpZmllcik6CisgICAg
ICAgIChKU0M6OldhbGtlcjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2UuY3Bw
OgorICAgICAgICAoSlNDOjpKU1Byb21pc2U6OnJlc29sdmUpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNQcm9taXNlRGVmZXJyZWQuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb21pc2VEZWZlcnJlZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUv
UHJveHlPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OmNyZWF0ZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OlByb3h5T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpQcm94eU9iamVjdDo6dGFyZ2V0IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6UHJveHlPYmplY3Q6OmhhbmRsZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RSZWdFeHApOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAg
ICAgKEpTQzo6YXNSZWdFeHBDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmlzUmVnRXhwKToK
KyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4
cE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6ZGVmaW5lT3du
UHJvcGVydHkpOgorICAgICAgICAoSlNDOjpyZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhTdHJpY3Qp
OgorICAgICAgICAoSlNDOjpyZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhOb25TdHJpY3QpOgorICAg
ICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnB1dCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBP
YmplY3QuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpjcmVhdGUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OnNldFJlZ0V4cCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OlJlZ0V4cE9iamVjdDo6cmVnRXhwIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6UmVnRXhwT2JqZWN0OjpzZXRMYXN0SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpS
ZWdFeHBPYmplY3Q6OmdldExhc3RJbmRleCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OlJlZ0V4cE9iamVjdDo6dGVzdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVj
dDo6dGVzdElubGluZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6Y3Jl
YXRlU3RydWN0dXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpvZmZz
ZXRPZlJlZ0V4cCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6b2Zmc2V0
T2ZMYXN0SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6Om9mZnNl
dE9mTGFzdEluZGV4SXNXcml0YWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlJlZ0V4cE9i
amVjdDo6YWxsb2NhdGlvblNpemUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphc1JlZ0V4cE9i
amVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNUZXN0RmFzdCk6CisgICAgICAgIChKU0M6OnJl
Z0V4cFByb3RvRnVuY0V4ZWMpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNNYXRjaEZh
c3QpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNDb21waWxlKToKKyAgICAgICAgKEpT
Qzo6cmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dl
dHRlcklnbm9yZUNhc2UpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlck11bHRpbGlu
ZSk6CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0dGVyRG90QWxsKToKKyAgICAgICAgKEpT
Qzo6cmVnRXhwUHJvdG9HZXR0ZXJTdGlja3kpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dl
dHRlclVuaWNvZGUpOgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlclNvdXJjZSk6Cisg
ICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY1NlYXJjaEZhc3QpOgorICAgICAgICAoSlNDOjpy
ZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0
Lmg6CisgICAgICAgIChKU0M6OmFzU3RyaW5nT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnJlcGxhY2VVc2luZ1Jl
Z0V4cFNlYXJjaCk6CisgICAgICAgIChKU0M6OnJlcGxhY2UpOgorICAgICAgICAoSlNDOjpzdHJp
bmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHApOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90
b0Z1bmNUb1N0cmluZyk6CisgICAgICAgICogcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpzeW1ib2xQcm90b0Z1bmNUb1N0cmluZyk6CisgICAgICAgIChKU0M6OnN5
bWJvbFByb3RvRnVuY1ZhbHVlT2YpOgorICAgICAgICAqIHRvb2xzL0pTRG9sbGFyVk0uY3BwOgor
ICAgICAgICAoV1RGOjpjdXN0b21HZXRWYWx1ZSk6CisgICAgICAgIChXVEY6OmN1c3RvbVNldFZh
bHVlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAg
IChKU0M6OmlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24pOgorICAgICAgICAqIHdhc20vanMvV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseVdy
YXBwZXJGdW5jdGlvbjo6Y3JlYXRlKToKKwogMjAxOC0wMy0wNyAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBTb3J0IGFuZCBzZXBhcmF0ZSBGZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU2MWYxODkwNzRhZThkNTQ4NzVjZDQ2ZTQw
MjBmNTgwOTM2MDg2M2UuLjQzYzE4NzI4ODcyZDlmMjYwOWE2ZGExZDJhODY4MzU4NWI5YTVmNzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAxOC0wMy0wOCAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgaW5oZXJpdHM8VD4o
Vk0mKSBsZXZlcmFnaW5nIEpTQ2FzdCBmYXN0IHBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGll
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJREJLZXlGcm9tVmFsdWUpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dmFsdWVUb0RhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0IGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6dG9XcmFwcGVkKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU05vZGVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjpwdXNoRXZl
bnRIYW5kbGVyU2NvcGUgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWFBhdGhOU1Jl
c29sdmVyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTWFBhdGhOU1Jlc29sdmVyOjp0
b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFN0YXRlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmRvbVdpbmRvd0Zyb21FeGVjU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNl
cmlhbGl6ZXI6OmlzQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpp
c01hcCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmlzU2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcEFycmF5QnVmZmVyVmlldyk6CisgICAg
ICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBET01Qb2ludCk6CisgICAgICAgIChX
ZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OmR1bXBET01SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lU2VyaWFsaXplcjo6ZHVtcERPTU1hdHJpeCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9u
ZVNlcmlhbGl6ZXI6OmR1bXBJZlRlcm1pbmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVz
ZXJpYWxpemVyOjpDbG9uZURlc2VyaWFsaXplcik6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZURl
c2VyaWFsaXplcjo6cmVhZEFycmF5QnVmZmVyVmlldyk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZU92ZXJsb2FkRGlzcGF0
Y2hlcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2RPdmVybG9hZERpc3BhdGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyT3Zlcmxv
YWREaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uT3ZlcmxvYWREaXNwYXRj
aGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnNPdmVybG9hZERpc3BhdGNoZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb25PdmVybG9hZERpc3BhdGNoZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJs
ZVVuaW9uT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGluZ1BhcmFt
ZXRlck92ZXJsb2FkRGlzcGF0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uT3ZlcmxvYWREaXNwYXRj
aGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgICogYnJpZGdlL2MvY19p
bnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpDSW5zdGFuY2U6Omludm9rZU1l
dGhvZCk6CisgICAgICAgICogYnJpZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAg
ICAoK1tXZWJTY3JpcHRPYmplY3QgX2NvbnZlcnRWYWx1ZVRvT2JqY1ZhbHVlOm9yaWdpblJvb3RP
YmplY3Q6cm9vdE9iamVjdDpdKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNl
Lm1tOgorICAgICAgICAoT2JqY0luc3RhbmNlOjppbnZva2VNZXRob2QpOgorICAgICAgICAqIGJy
aWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNhbGxP
YmpDRmFsbGJhY2tPYmplY3QpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5jcHA6
CisgICAgICAgIChKU0M6OmNhbGxSdW50aW1lTWV0aG9kKToKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Y2FsbFJ1bnRpbWVPYmpl
Y3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Y2FsbFJ1bnRpbWVDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgICogaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0SG9zdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViSW5qZWN0ZWRTY3JpcHRIb3N0Ojppc0hUTUxBbGxDb2xsZWN0aW9uKToKKwogMjAxOC0w
My0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBT
dG9wIGxpbmtpbmcgQXBwbGljYXRpb25TZXJ2aWNlcyBkaXJlY3RseQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlZjFi
NWYwMjM5NTFhZWY2MWQ5MGUyMTcxN2Q0YjczN2RlNmRmYTYxLi4yZDdkY2JmY2Y2YjI3ODQyY2Ji
OGQ0NjFhZTk3YTQ5ODlkOTM3YTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTAz
LTA4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtK
U0NdIEFkZCBpbmhlcml0czxUPihWTSYpIGxldmVyYWdpbmcgSlNDYXN0IGZhc3QgcGF0aAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNDI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNhbGxN
ZXRob2QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Y2FsbE5QSlNPYmplY3QpOgorICAgICAgICAoV2ViS2l0
Ojpjb25zdHJ1Y3RXaXRoQ29uc3RydWN0b3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TlBKU09iamVjdDo6
Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y291bnRlclZhbHVlKToKKwogMjAxOC0wMy0wOCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIGxpbmtp
bmcgQXBwbGljYXRpb25TZXJ2aWNlcyBkaXJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CmluZGV4IDY0NjkxZjAwZjBmZjQ4Mzc3YTE4Y2I3ZDZjM2Q5OTY0MmVhYjcyNmUuLmVhZmZlZTc4
Y2E4ZGUxOTU3Yjc4ZTk3MWVlZjVhODcyMTcyNzdiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0wMy0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgaW5oZXJpdHM8VD4oVk0mKSBs
ZXZlcmFnaW5nIEpTQ2FzdCBmYXN0IHBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MzQyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogRE9NL0RPTS5tbToKKyAgICAgICAgKCtbRE9NTm9kZSBfbm9k
ZUZyb21KU1dyYXBwZXI6XSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVn
aW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHk6OnJldGFpbkxvY2FsT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5OjpyZWxlYXNlTG9jYWxPYmplY3QpOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW06CisgICAgICAgIChXZWJLaXQ6OlByb3h5SW5zdGFu
Y2U6Omludm9rZU1ldGhvZCk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAg
ICAoYWVEZXNjRnJvbUpTVmFsdWUpOgorCiAyMDE4LTAzLTA4ICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgbGlua2luZyBBcHBsaWNhdGlvblNl
cnZpY2VzIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggMjFkYzc4NTA4
YTRlYTRiOWJkZGEzMTE0MTI3NzMwNDJjNjU0NmI4My4uZTcyZTNiMDE1N2NkNGJhOTBmYTk5ZjZl
M2I5M2RlMTdiMDE0MzIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDE4LTAzLTA4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29t
PgorCisgICAgICAgIFtKU0NdIEFkZCBpbmhlcml0czxUPihWTSYpIGxldmVyYWdpbmcgSlNDYXN0
IGZhc3QgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgzNDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJGcmFtZTo6c3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdEluU2NyaXB0V29ybGQpOgorCiAyMDE4LTAzLTA4ICBUaW0gSG9ydG9uICA8dGlt
b3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgbGlua2luZyBBcHBsaWNhdGlv
blNlcnZpY2VzIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYu
Y3BwCmluZGV4IDY3NDczMzc2NjI5YmMwNDVkZjFiYWI1MTg0N2JiYzg5YmZlOGZkOWUuLjRmODg2
ODE5NmEyYjczMWFmMjY5ZDQwOGFhZjA2MjE0Y2FlYzc4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC01MDEsMTUgKzUwMSwxNSBAQCBKU1ZhbHVlUmVm
IEpTT2JqZWN0R2V0UHJpdmF0ZVByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVm
IG9iamVjdCwgSlNTdAogCiAKICAgICAvLyBHZXQgd3JhcHBlZCBvYmplY3QgaWYgcHJveGllZAot
ICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTUHJveHk6OmluZm8oKSkpCisgICAgaWYg
KGpzT2JqZWN0LT5pbmhlcml0czxKU1Byb3h5Pih2bSkpCiAgICAgICAgIGpzT2JqZWN0ID0ganND
YXN0PEpTUHJveHkqPihqc09iamVjdCktPnRhcmdldCgpOwogCi0gICAgaWYgKGpzT2JqZWN0LT5p
bmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmluZm8oKSkpCisg
ICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0
Pj4odm0pKQogICAgICAgICByZXN1bHQgPSBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0dsb2Jh
bE9iamVjdD4qPihqc09iamVjdCktPmdldFByaXZhdGVQcm9wZXJ0eShuYW1lKTsKLSAgICBlbHNl
IGlmIChqc09iamVjdC0+aW5oZXJpdHModm0sIEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGli
bGVPYmplY3Q+OjppbmZvKCkpKQorICAgIGVsc2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU0Nh
bGxiYWNrT2JqZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pj4odm0pKQogICAgICAgICByZXN1bHQg
PSBqc0Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0Rlc3RydWN0aWJsZU9iamVjdD4qPihqc09iamVj
dCktPmdldFByaXZhdGVQcm9wZXJ0eShuYW1lKTsKICNpZiBKU0NfT0JKQ19BUElfRU5BQkxFRAot
ICAgIGVsc2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0FQ
SVdyYXBwZXJPYmplY3Q+OjppbmZvKCkpKQorICAgIGVsc2UgaWYgKGpzT2JqZWN0LT5pbmhlcml0
czxKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD4+KHZtKSkKICAgICAgICAgcmVz
dWx0ID0ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pio+KGpzT2Jq
ZWN0KS0+Z2V0UHJpdmF0ZVByb3BlcnR5KG5hbWUpOwogI2VuZGlmCiAgICAgcmV0dXJuIHRvUmVm
KGV4ZWMsIHJlc3VsdCk7CkBAIC01MjUsMTkgKzUyNSwxOSBAQCBib29sIEpTT2JqZWN0U2V0UHJp
dmF0ZVByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJp
bmdSZQogICAgIElkZW50aWZpZXIgbmFtZShwcm9wZXJ0eU5hbWUtPmlkZW50aWZpZXIoJnZtKSk7
CiAKICAgICAvLyBHZXQgd3JhcHBlZCBvYmplY3QgaWYgcHJveGllZAotICAgIGlmIChqc09iamVj
dC0+aW5oZXJpdHModm0sIEpTUHJveHk6OmluZm8oKSkpCisgICAgaWYgKGpzT2JqZWN0LT5pbmhl
cml0czxKU1Byb3h5Pih2bSkpCiAgICAgICAgIGpzT2JqZWN0ID0ganNDYXN0PEpTUHJveHkqPihq
c09iamVjdCktPnRhcmdldCgpOwogCi0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlND
YWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmluZm8oKSkpIHsKKyAgICBpZiAoanNPYmpl
Y3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Pih2bSkpIHsKICAg
ICAgICAganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3Qp
LT5zZXRQcml2YXRlUHJvcGVydHkodm0sIG5hbWUsIGpzVmFsdWUpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9Ci0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09i
amVjdDxKU0Rlc3RydWN0aWJsZU9iamVjdD46OmluZm8oKSkpIHsKKyAgICBpZiAoanNPYmplY3Qt
PmluaGVyaXRzPEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+Pih2bSkpIHsK
ICAgICAgICAganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+Kj4o
anNPYmplY3QpLT5zZXRQcml2YXRlUHJvcGVydHkodm0sIG5hbWUsIGpzVmFsdWUpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKLSAgICBpZiAo
anNPYmplY3QtPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVj
dD46OmluZm8oKSkpIHsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTQ2FsbGJhY2tPYmpl
Y3Q8SlNBUElXcmFwcGVyT2JqZWN0Pj4odm0pKSB7CiAgICAgICAgIGpzQ2FzdDxKU0NhbGxiYWNr
T2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZhdGVQcm9wZXJ0
eSh2bSwgbmFtZSwganNWYWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTU1
NCwxOSArNTU0LDE5IEBAIGJvb2wgSlNPYmplY3REZWxldGVQcml2YXRlUHJvcGVydHkoSlNDb250
ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluCiAgICAgSWRlbnRpZmllciBu
YW1lKHByb3BlcnR5TmFtZS0+aWRlbnRpZmllcigmdm0pKTsKIAogICAgIC8vIEdldCB3cmFwcGVk
IG9iamVjdCBpZiBwcm94aWVkCi0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cyh2bSwgSlNQcm94
eTo6aW5mbygpKSkKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzPEpTUHJveHk+KHZtKSkKICAg
ICAgICAganNPYmplY3QgPSBqc0Nhc3Q8SlNQcm94eSo+KGpzT2JqZWN0KS0+dGFyZ2V0KCk7CiAK
LSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFs
T2JqZWN0Pjo6aW5mbygpKSkgeworICAgIGlmIChqc09iamVjdC0+aW5oZXJpdHM8SlNDYWxsYmFj
a09iamVjdDxKU0dsb2JhbE9iamVjdD4+KHZtKSkgewogICAgICAgICBqc0Nhc3Q8SlNDYWxsYmFj
a09iamVjdDxKU0dsb2JhbE9iamVjdD4qPihqc09iamVjdCktPmRlbGV0ZVByaXZhdGVQcm9wZXJ0
eShuYW1lKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGlmIChqc09iamVjdC0+
aW5oZXJpdHModm0sIEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+OjppbmZv
KCkpKSB7CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0czxKU0NhbGxiYWNrT2JqZWN0PEpTRGVz
dHJ1Y3RpYmxlT2JqZWN0Pj4odm0pKSB7CiAgICAgICAgIGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0
PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pio+KGpzT2JqZWN0KS0+ZGVsZXRlUHJpdmF0ZVByb3BlcnR5
KG5hbWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAjaWYgSlNDX09CSkNfQVBJX0VO
QUJMRUQKLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpT
QVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkpIHsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRz
PEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pj4odm0pKSB7CiAgICAgICAgIGpz
Q2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD4qPihqc09iamVjdCktPmRl
bGV0ZVByaXZhdGVQcm9wZXJ0eShuYW1lKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCmluZGV4IDZmM2IxZDhmNjY0ZDQ3Y2M2ZDc5
ZWM0NTY4YTNkODkyODFjMjAyZTguLmM4MTBmMTRjNDcyZmFhNzE2YWVjZGMyZTI0OGU2Nzg1MDZk
MjA3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KQEAgLTU3NCwxMyArNTc0
LDEzIEBAIEBlbmQKIGlubGluZSBib29sIGlzRGF0ZShKU0M6OlZNJiB2bSwgSlNPYmplY3RSZWYg
b2JqZWN0LCBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCkKIHsKICAgICBKU0M6OkpTTG9ja0hv
bGRlciBsb2NrZXIodG9KUyhjb250ZXh0KSk7Ci0gICAgcmV0dXJuIHRvSlMob2JqZWN0KS0+aW5o
ZXJpdHModm0sIEpTQzo6RGF0ZUluc3RhbmNlOjppbmZvKCkpOworICAgIHJldHVybiB0b0pTKG9i
amVjdCktPmluaGVyaXRzPEpTQzo6RGF0ZUluc3RhbmNlPih2bSk7CiB9CiAKIGlubGluZSBib29s
IGlzQXJyYXkoSlNDOjpWTSYgdm0sIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNHbG9iYWxDb250ZXh0
UmVmIGNvbnRleHQpCiB7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHRvSlMoY29udGV4
dCkpOwotICAgIHJldHVybiB0b0pTKG9iamVjdCktPmluaGVyaXRzKHZtLCBKU0M6OkpTQXJyYXk6
OmluZm8oKSk7CisgICAgcmV0dXJuIHRvSlMob2JqZWN0KS0+aW5oZXJpdHM8SlNDOjpKU0FycmF5
Pih2bSk7CiB9CiAKIEBpbXBsZW1lbnRhdGlvbiBKU1ZhbHVlKEludGVybmFsKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKaW5kZXggMjNkYmM3MjJlZjBiYjdiZDE4YzIw
OTYxZGUyY2UxYTgwODU3YmY0ZC4uMDBiZjA2MWFkYTJkMTZjMTc1ODc0ZDhkODE4MDY5MzQ1N2Zh
OTgzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC0xNzIs
NyArMTcyLDcgQEAgYm9vbCBKU1ZhbHVlSXNBcnJheShKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVl
UmVmIHZhbHVlKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2tlcihleGVjKTsKIAotICAgIHJldHVybiB0b0pTKGV4ZWMsIHZhbHVlKS5pbmhlcml0cyh2bSwg
SlNBcnJheTo6aW5mbygpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB2YWx1ZSkuaW5oZXJpdHM8
SlNBcnJheT4odm0pOwogfQogCiBib29sIEpTVmFsdWVJc0RhdGUoSlNDb250ZXh0UmVmIGN0eCwg
SlNWYWx1ZVJlZiB2YWx1ZSkKQEAgLTE4NSw3ICsxODUsNyBAQCBib29sIEpTVmFsdWVJc0RhdGUo
SlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSkKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoZXhlYyk7CiAKLSAgICByZXR1cm4gdG9KUyhl
eGVjLCB2YWx1ZSkuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKTsKKyAgICByZXR1
cm4gdG9KUyhleGVjLCB2YWx1ZSkuaW5oZXJpdHM8RGF0ZUluc3RhbmNlPih2bSk7CiB9CiAKIGJv
b2wgSlNWYWx1ZUlzT2JqZWN0T2ZDbGFzcyhKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZh
bHVlLCBKU0NsYXNzUmVmIGpzQ2xhc3MpCkBAIC0yMDEsMTUgKzIwMSwxNSBAQCBib29sIEpTVmFs
dWVJc09iamVjdE9mQ2xhc3MoSlNDb250ZXh0UmVmIGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlND
bGFzc1JlZiBqc0NsYQogICAgIEpTVmFsdWUganNWYWx1ZSA9IHRvSlMoZXhlYywgdmFsdWUpOwog
ICAgIAogICAgIGlmIChKU09iamVjdCogbyA9IGpzVmFsdWUuZ2V0T2JqZWN0KCkpIHsKLSAgICAg
ICAgaWYgKG8tPmluaGVyaXRzKHZtLCBKU1Byb3h5OjppbmZvKCkpKQorICAgICAgICBpZiAoby0+
aW5oZXJpdHM8SlNQcm94eT4odm0pKQogICAgICAgICAgICAgbyA9IGpzQ2FzdDxKU1Byb3h5Kj4o
byktPnRhcmdldCgpOwogCi0gICAgICAgIGlmIChvLT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09i
amVjdDxKU0dsb2JhbE9iamVjdD46OmluZm8oKSkpCisgICAgICAgIGlmIChvLT5pbmhlcml0czxK
U0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pj4odm0pKQogICAgICAgICAgICAgcmV0dXJu
IGpzQ2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KG8pLT5pbmhlcml0cyhq
c0NsYXNzKTsKLSAgICAgICAgaWYgKG8tPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpT
RGVzdHJ1Y3RpYmxlT2JqZWN0Pjo6aW5mbygpKSkKKyAgICAgICAgaWYgKG8tPmluaGVyaXRzPEpT
Q2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+Pih2bSkpCiAgICAgICAgICAgICBy
ZXR1cm4ganNDYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+Kj4obykt
PmluaGVyaXRzKGpzQ2xhc3MpOwogI2lmIEpTQ19PQkpDX0FQSV9FTkFCTEVECi0gICAgICAgIGlm
IChvLT5pbmhlcml0cyh2bSwgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+Ojpp
bmZvKCkpKQorICAgICAgICBpZiAoby0+aW5oZXJpdHM8SlNDYWxsYmFja09iamVjdDxKU0FQSVdy
YXBwZXJPYmplY3Q+Pih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNDYXN0PEpTQ2FsbGJhY2tP
YmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pio+KG8pLT5pbmhlcml0cyhqc0NsYXNzKTsKICNlbmRp
ZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2Jq
ZWN0TWFwUmVmUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV2Vha09i
amVjdE1hcFJlZlByaXZhdGUuY3BwCmluZGV4IDdmMWNkNTIyMWMxNDFmNGE3NDQ1NDIxMjM0NmM5
YjY3MWQ3NzE0Y2UuLjc4MzMyZDc5YWVjNmQyODViYzFjM2E2NDU2ZTFkZGU5MmZkMmNhZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJp
dmF0ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBS
ZWZQcml2YXRlLmNwcApAQCAtNjMsOSArNjMsOSBAQCB2b2lkIEpTV2Vha09iamVjdE1hcFNldChK
U0NvbnRleHRSZWYgY3R4LCBKU1dlYWtPYmplY3RNYXBSZWYgbWFwLCB2b2lkKiBrZXksIEpTTwog
ICAgIEpTT2JqZWN0KiBvYmogPSB0b0pTKG9iamVjdCk7CiAgICAgaWYgKCFvYmopCiAgICAgICAg
IHJldHVybjsKLSAgICBBU1NFUlQob2JqLT5pbmhlcml0cyh2bSwgSlNQcm94eTo6aW5mbygpKQot
ICAgICAgICB8fCBvYmotPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2Jq
ZWN0Pjo6aW5mbygpKQotICAgICAgICB8fCBvYmotPmluaGVyaXRzKHZtLCBKU0NhbGxiYWNrT2Jq
ZWN0PEpTRGVzdHJ1Y3RpYmxlT2JqZWN0Pjo6aW5mbygpKSk7CisgICAgQVNTRVJUKG9iai0+aW5o
ZXJpdHM8SlNQcm94eT4odm0pCisgICAgICAgIHx8IG9iai0+aW5oZXJpdHM8SlNDYWxsYmFja09i
amVjdDxKU0dsb2JhbE9iamVjdD4+KHZtKQorICAgICAgICB8fCBvYmotPmluaGVyaXRzPEpTQ2Fs
bGJhY2tPYmplY3Q8SlNEZXN0cnVjdGlibGVPYmplY3Q+Pih2bSkpOwogICAgIG1hcC0+bWFwKCku
c2V0KGtleSwgb2JqKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1h
cC5tbQppbmRleCA5NDI1MTk1ZjhkNjQ0NmY3MjM1YzRiMWNkMWZmZDdjMTBlNGNjMDNkLi40ZjVh
MTNiODAxMmE2NTdhZTIxOWFlNjA0MmFhMDkyZThmMzdjMjA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpAQCAtNjQ0LDcgKzY0NCw3IEBAIGlkIHRyeVVud3Jh
cE9iamNPYmplY3QoSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUp
CiAgICAgQVNTRVJUKCFleGNlcHRpb24pOwogICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tlcih0
b0pTKGNvbnRleHQpKTsKICAgICBKU0M6OlZNJiB2bSA9IHRvSlMoY29udGV4dCktPnZtKCk7Ci0g
ICAgaWYgKHRvSlMob2JqZWN0KS0+aW5oZXJpdHModm0sIEpTQzo6SlNDYWxsYmFja09iamVjdDxK
U0M6OkpTQVBJV3JhcHBlck9iamVjdD46OmluZm8oKSkpCisgICAgaWYgKHRvSlMob2JqZWN0KS0+
aW5oZXJpdHM8SlNDOjpKU0NhbGxiYWNrT2JqZWN0PEpTQzo6SlNBUElXcmFwcGVyT2JqZWN0Pj4o
dm0pKQogICAgICAgICByZXR1cm4gKGlkKUpTQzo6anNDYXN0PEpTQzo6SlNBUElXcmFwcGVyT2Jq
ZWN0Kj4odG9KUyhvYmplY3QpKS0+d3JhcHBlZE9iamVjdCgpOwogICAgIGlmIChpZCB0YXJnZXQg
PSB0cnlVbndyYXBDb25zdHJ1Y3Rvcigmdm0sIG9iamVjdCkpCiAgICAgICAgIHJldHVybiB0YXJn
ZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1
bmN0aW9uLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlv
bi5tbQppbmRleCA2M2Y5MjBlZGIyMjRmMWFkZDFkMDliN2ExMTIzN2FkNjVhMTg3OTI5Li5hODhh
MjcwNWQ3MzE4Mjc0ZmUxNzk4OGEzOWQwZGVjNjJiZjIzYWIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KQEAgLTcwMiw3ICs3MDIs
NyBAQCBKU09iamVjdFJlZiBvYmpDQ2FsbGJhY2tGdW5jdGlvbkZvckJsb2NrKEpTQ29udGV4dCAq
Y29udGV4dCwgaWQgdGFyZ2V0KQogCiBpZCB0cnlVbndyYXBDb25zdHJ1Y3RvcihKU0M6OlZNKiB2
bSwgSlNPYmplY3RSZWYgb2JqZWN0KQogewotICAgIGlmICghdG9KUyhvYmplY3QpLT5pbmhlcml0
cygqdm0sIEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb246OmluZm8oKSkpCisgICAgaWYgKCF0b0pT
KG9iamVjdCktPmluaGVyaXRzPEpTQzo6T2JqQ0NhbGxiYWNrRnVuY3Rpb24+KCp2bSkpCiAgICAg
ICAgIHJldHVybiBuaWw7CiAgICAgSlNDOjpPYmpDQ2FsbGJhY2tGdW5jdGlvbkltcGwqIGltcGwg
PSBzdGF0aWNfY2FzdDxKU0M6Ok9iakNDYWxsYmFja0Z1bmN0aW9uKj4odG9KUyhvYmplY3QpKS0+
aW1wbCgpOwogICAgIGlmICghaW1wbC0+aXNDb25zdHJ1Y3RpYmxlKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGNkZmIwZTI4MmNj
NGY3YjUzMjAxYjJjYzFjMjAzMWRmOGRiMDRkOTEuLmE1NjNkNzgwNDNjZGY4ZDEyMjU1YTRkMGIy
ZjIwYjRjZWQ5MzE4NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCkBAIC00NDYzLDcgKzQ0NjMsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2Vy
OjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgICAgIGlmIChjYWNoZWRG
dW5jdGlvbgogICAgICAgICAgICAgICAgICAgICAmJiBjYWNoZWRGdW5jdGlvbiAhPSBKU0NlbGw6
OnNlZW5NdWx0aXBsZUNhbGxlZU9iamVjdHMoKQogICAgICAgICAgICAgICAgICAgICAmJiAhbV9p
bmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwg
QmFkQ2VsbCkpIHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGNhY2hlZEZ1bmN0aW9uLT5p
bmhlcml0cygqbV92bSwgSlNGdW5jdGlvbjo6aW5mbygpKSk7CisgICAgICAgICAgICAgICAgICAg
IEFTU0VSVChjYWNoZWRGdW5jdGlvbi0+aW5oZXJpdHM8SlNGdW5jdGlvbj4oKm1fdm0pKTsKIAog
ICAgICAgICAgICAgICAgICAgICBGcm96ZW5WYWx1ZSogZnJvemVuID0gbV9ncmFwaC5mcmVlemUo
Y2FjaGVkRnVuY3Rpb24pOwogICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrQ2Vs
bCwgT3BJbmZvKGZyb3plbiksIGNhbGxlZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmNwcAppbmRleCAyMzM3YWM1OGNhYzIzZjkwNTliN2QwNDRlOTczZWJiYTQ0
NjZmMzIyLi5iMWRhZGQyZmRjNmZmZDRiYWVkY2VhNjFhMTRlNWZkNmU3ODY1ZTc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTEwNDksNyArMTA0
OSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwRXhlY0dl
bmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhCiAgICAgSlNWYWx1ZSBiYXNlID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRBcmd1bWVudCk7CiAgICAgCi0gICAgaWYgKCFiYXNlLmluaGVyaXRzKHZt
LCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2Fz
dDxSZWdFeHBPYmplY3QqPih2bSwgYmFzZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKICAgICBKU1N0
cmluZyogaW5wdXQgPSBhcmd1bWVudC50b1N0cmluZ09yTnVsbChleGVjKTsKQEAgLTEwNTcsNyAr
MTA1OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwRXhl
Y0dlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhCiAgICAgaWYgKCFpbnB1dCkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBzY29wZS5yZWxl
YXNlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cE9iamVjdChiYXNlKS0+
ZXhlYyhleGVjLCBnbG9iYWxPYmplY3QsIGlucHV0KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZWdleHAtPmV4ZWMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnB1dCkpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cEV4ZWNOb25HbG9iYWxPclN0
aWNreShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZ0V4
cCogcmVnRXhwLCBKU1N0cmluZyogc3RyaW5nKQpAQCAtMTE4MCw3ICsxMTgxLDggQEAgc2l6ZV90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVzdEdlbmVyaWMoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCoKICAgICBKU1ZhbHVlIGJhc2UgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZEJhc2UpOwogICAgIEpTVmFsdWUgYXJndW1lbnQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZEFyZ3VtZW50KTsKIAotICAgIGlmICghYmFzZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0Ojpp
bmZvKCkpKSB7CisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3Qq
Pih2bSwgYmFzZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKSB7CiAgICAgICAgIHRocm93
VHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAg
LTExOTAsNyArMTE5Miw3IEBAIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlZ0V4cFRl
c3RHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqCiAgICAgaWYgKCFpbnB1
dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICByZXR1
cm4gYXNSZWdFeHBPYmplY3QoYmFzZSktPnRlc3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnB1dCk7
CisgICAgcmV0dXJuIHJlZ2V4cC0+dGVzdChleGVjLCBnbG9iYWxPYmplY3QsIGlucHV0KTsKIH0K
IAogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbChFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKaW5kZXggZDhlYmM5ZmRkNGJhMjQ5OWM0YmM3ZDE5N2M2ZDY1YjU1MWIzM2I0OC4uMzhiNzQ3
MTI0MTQ4OTNmNmIzMTVkNWU4Nzk5ODVlODc2OWY2OTlmNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtOTgwOCw3ICs5ODA4LDcgQEAgY2xh
c3MgTG93ZXJERkdUb0IzIHsKICAgICB2b2lkIGNvbXBpbGVPdmVycmlkZXNIYXNJbnN0YW5jZSgp
CiAgICAgewogICAgICAgICBGcm96ZW5WYWx1ZSogZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24g
PSBtX25vZGUtPmNlbGxPcGVyYW5kKCk7Ci0gICAgICAgIEFTU0VSVChkZWZhdWx0SGFzSW5zdGFu
Y2VGdW5jdGlvbi0+Y2VsbCgpLT5pbmhlcml0cyh2bSgpLCBKU0Z1bmN0aW9uOjppbmZvKCkpKTsK
KyAgICAgICAgQVNTRVJUKGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uLT5jZWxsKCktPmluaGVy
aXRzPEpTRnVuY3Rpb24+KHZtKCkpKTsKIAogICAgICAgICBMVmFsdWUgY29uc3RydWN0b3IgPSBs
b3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBMVmFsdWUgaGFzSW5zdGFuY2UgPSBs
b3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOwpAQCAtMTA3MjgsNyArMTA3MjgsNyBAQCBjbGFz
cyBMb3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAgRnJvemVuVmFsdWUqIHJlZ2V4cCA9IG1f
bm9kZS0+Y2VsbE9wZXJhbmQoKTsKICAgICAgICAgTFZhbHVlIGxhc3RJbmRleCA9IGxvd0pTVmFs
dWUobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEFTU0VSVChyZWdleHAtPmNlbGwoKS0+aW5o
ZXJpdHModm0oKSwgUmVnRXhwOjppbmZvKCkpKTsKKyAgICAgICAgQVNTRVJUKHJlZ2V4cC0+Y2Vs
bCgpLT5pbmhlcml0czxSZWdFeHA+KHZtKCkpKTsKICAgICAgICAgQVNTRVJUKG1fbm9kZS0+Y2Fz
dE9wZXJhbmQ8UmVnRXhwKj4oKS0+aXNWYWxpZCgpKTsKIAogICAgICAgICBMQmFzaWNCbG9jayBz
bG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPcGVyYXRpb25zLmNwcAppbmRleCBhYzVhZmM0YmVhYTI5NDY1YTc3MGIyOGYxM2E5NDA3ODgx
YmJkNTQwLi5jYWU4ZTRiODMwM2JmYzg4MzUzMzM0NzMxMWYyZGI1MzIxYWYzOWJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9wZXJhdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3BlcmF0aW9ucy5jcHAKQEAgLTE1MCw3ICsxNTAs
NyBAQCBleHRlcm4gIkMiIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25NYXRlcmlhbGl6
ZU9iamVjdEluT1NSKAogICAgICAgICAgICAgaWYgKHByb3BlcnR5LmxvY2F0aW9uKCkgIT0gUHJv
bW90ZWRMb2NhdGlvbkRlc2NyaXB0b3IoU3RydWN0dXJlUExvYykpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2
YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0cyh2bSwgU3RydWN0dXJlOjppbmZvKCkpKTsKKyAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2Vs
bCgpLT5pbmhlcml0czxTdHJ1Y3R1cmU+KHZtKSk7CiAgICAgICAgICAgICBzdHJ1Y3R1cmUgPSBq
c0Nhc3Q8U3RydWN0dXJlKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE4NCwxMSArMTg0LDExIEBAIGV4dGVybiAiQyIgSlND
ZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1hdGVyaWFsaXplT2JqZWN0SW5PU1IoCiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IG1hdGVyaWFsaXphdGlvbi0+cHJvcGVydGllcygpLnNpemUo
KTsgaS0tOykgewogICAgICAgICAgICAgY29uc3QgRXhpdFByb3BlcnR5VmFsdWUmIHByb3BlcnR5
ID0gbWF0ZXJpYWxpemF0aW9uLT5wcm9wZXJ0aWVzKClbaV07CiAgICAgICAgICAgICBpZiAocHJv
cGVydHkubG9jYXRpb24oKSA9PSBQcm9tb3RlZExvY2F0aW9uRGVzY3JpcHRvcihGdW5jdGlvbkV4
ZWN1dGFibGVQTG9jKSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6
OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0cyh2bSwgRnVuY3Rpb25FeGVjdXRh
YmxlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChKU1ZhbHVlOjpk
ZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+aW5oZXJpdHM8RnVuY3Rpb25FeGVjdXRhYmxlPih2
bSkpOwogICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRh
YmxlKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgaWYgKHByb3BlcnR5LmxvY2F0aW9uKCkgPT0gUHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0
b3IoRnVuY3Rpb25BY3RpdmF0aW9uUExvYykpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChKU1ZhbHVlOjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+aW5oZXJpdHModm0sIEpT
U2NvcGU6OmluZm8oKSkpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6
OmRlY29kZSh2YWx1ZXNbaV0pLmFzQ2VsbCgpLT5pbmhlcml0czxKU1Njb3BlPih2bSkpOwogICAg
ICAgICAgICAgICAgIGFjdGl2YXRpb24gPSBqc0Nhc3Q8SlNTY29wZSo+KEpTVmFsdWU6OmRlY29k
ZSh2YWx1ZXNbaV0pKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjExLDEwICsyMTEs
MTAgQEAgZXh0ZXJuICJDIiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0ZXJpYWxp
emVPYmplY3RJbk9TUigKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbWF0ZXJpYWxpemF0aW9u
LT5wcm9wZXJ0aWVzKCkuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBjb25zdCBFeGl0UHJv
cGVydHlWYWx1ZSYgcHJvcGVydHkgPSBtYXRlcmlhbGl6YXRpb24tPnByb3BlcnRpZXMoKVtpXTsK
ICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5sb2NhdGlvbigpID09IFByb21vdGVkTG9jYXRpb25E
ZXNjcmlwdG9yKEFjdGl2YXRpb25TY29wZVBMb2MpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzKHZt
LCBKU1Njb3BlOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChKU1Zh
bHVlOjpkZWNvZGUodmFsdWVzW2ldKS5hc0NlbGwoKS0+aW5oZXJpdHM8SlNTY29wZT4odm0pKTsK
ICAgICAgICAgICAgICAgICBzY29wZSA9IGpzQ2FzdDxKU1Njb3BlKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHZhbHVlc1tpXSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eS5sb2NhdGlvbigp
ID09IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKEFjdGl2YXRpb25TeW1ib2xUYWJsZVBMb2Mp
KSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVl
c1tpXSkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBTeW1ib2xUYWJsZTo6aW5mbygpKSk7CisgICAg
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkuYXND
ZWxsKCktPmluaGVyaXRzPFN5bWJvbFRhYmxlPih2bSkpOwogICAgICAgICAgICAgICAgIHRhYmxl
ID0ganNDYXN0PFN5bWJvbFRhYmxlKj4oSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlc1tpXSkpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CkBAIC01NTIsNyArNTUyLDcgQEAgZXh0ZXJuICJDIiBKU0Nl
bGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWF0ZXJpYWxpemVPYmplY3RJbk9TUigKICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gbWF0ZXJpYWxpemF0aW9uLT5wcm9wZXJ0aWVzKCkuc2l6ZSgp
OyBpLS07KSB7CiAgICAgICAgICAgICBjb25zdCBFeGl0UHJvcGVydHlWYWx1ZSYgcHJvcGVydHkg
PSBtYXRlcmlhbGl6YXRpb24tPnByb3BlcnRpZXMoKVtpXTsKICAgICAgICAgICAgIGlmIChwcm9w
ZXJ0eS5sb2NhdGlvbigpID09IFByb21vdGVkTG9jYXRpb25EZXNjcmlwdG9yKFJlZ0V4cE9iamVj
dFJlZ0V4cFBMb2MpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6
ZGVjb2RlKHZhbHVlc1tpXSkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBSZWdFeHA6OmluZm8oKSkp
OworICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNb
aV0pLmFzQ2VsbCgpLT5pbmhlcml0czxSZWdFeHA+KHZtKSk7CiAgICAgICAgICAgICAgICAgcmVn
RXhwID0ganNDYXN0PFJlZ0V4cCo+KEpTVmFsdWU6OmRlY29kZSh2YWx1ZXNbaV0pKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCBlNjYwYTMxMGVmMTM1YjRh
ZTM4YzU5ZmNmMjdkZWFjNWFmMDg4ZTM1Li4zZDVjMTdhMzUyYzg0YzMxODcxZTczYjdlMWQ4Zjdm
MDQ2NWFlOGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
SW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAtMTUwLDggKzE1MCw3IEBAIEpTVmFsdWUg
SlNJbmplY3RlZFNjcmlwdEhvc3Q6OnN1YnR5cGUoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICh2
YWx1ZS5pc1N5bWJvbCgpKQogICAgICAgICByZXR1cm4gdm0uc21hbGxTdHJpbmdzLnN5bWJvbFN0
cmluZygpOwogCi0gICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKLSAgICBp
ZiAob2JqZWN0KSB7CisgICAgaWYgKGF1dG8qIG9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmpl
Y3QqPih2bSwgdmFsdWUpKSB7CiAgICAgICAgIGlmIChvYmplY3QtPmlzRXJyb3JJbnN0YW5jZSgp
KQogICAgICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVy
YWwoImVycm9yIikpOwogCkBAIC0xNTksNDkgKzE1OCw0NyBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRT
Y3JpcHRIb3N0OjpzdWJ0eXBlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgSlNGdW5jdGlvbiog
ZnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPih2bSwgdmFsdWUpOwogICAgICAg
ICBpZiAoZnVuY3Rpb24gJiYgZnVuY3Rpb24tPmlzQ2xhc3NDb25zdHJ1Y3RvckZ1bmN0aW9uKCkp
CiAgICAgICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJh
bCgiY2xhc3MiKSk7Ci0gICAgfQogCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU0FycmF5
OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiYXJyYXkiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBEaXJlY3RBcmd1
bWVudHM6OmluZm8oKSkgfHwgdmFsdWUuaW5oZXJpdHModm0sIFNjb3BlZEFyZ3VtZW50czo6aW5m
bygpKSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVy
YWwoImFycmF5IikpOwotCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6
OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlM
aXRlcmFsKCJkYXRlIikpOwotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0
OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgicmVnZXhwIikpOwotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgUHJveHlPYmpl
Y3Q6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVND
SUlMaXRlcmFsKCJwcm94eSIpKTsKLQotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgSlNNYXA6
OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlM
aXRlcmFsKCJtYXAiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU1NldDo6aW5mbygp
KSkKLSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwo
InNldCIpKTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0sIEpTV2Vha01hcDo6aW5mbygpKSkK
LSAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoIndl
YWttYXAiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU1dlYWtTZXQ6OmluZm8oKSkp
Ci0gICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3
ZWFrc2V0IikpOwotCi0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU1N0cmluZ0l0ZXJhdG9y
OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiaXRlcmF0b3IiKSk7Ci0KLSAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlmIChv
YmplY3QtPmluaGVyaXRzPEpTQXJyYXk+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsKKyAgICAgICAgaWYgKG9i
amVjdC0+aW5oZXJpdHM8RGlyZWN0QXJndW1lbnRzPih2bSkgfHwgb2JqZWN0LT5pbmhlcml0czxT
Y29wZWRBcmd1bWVudHM+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJp
bmcoZXhlYywgQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsKKworICAgICAgICBpZiAob2JqZWN0LT5p
bmhlcml0czxEYXRlSW5zdGFuY2U+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZp
YWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJkYXRlIikpOworICAgICAgICBpZiAob2JqZWN0
LT5pbmhlcml0czxSZWdFeHBPYmplY3Q+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJyZWdleHAiKSk7CisgICAgICAgIGlmIChv
YmplY3QtPmluaGVyaXRzPFByb3h5T2JqZWN0Pih2bSkpCisgICAgICAgICAgICByZXR1cm4ganNO
b250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgicHJveHkiKSk7CisKKyAgICAgICAg
aWYgKG9iamVjdC0+aW5oZXJpdHM8SlNNYXA+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05v
bnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJtYXAiKSk7CisgICAgICAgIGlmIChv
YmplY3QtPmluaGVyaXRzPEpTU2V0Pih2bSkpCisgICAgICAgICAgICByZXR1cm4ganNOb250cml2
aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgic2V0IikpOworICAgICAgICBpZiAob2JqZWN0
LT5pbmhlcml0czxKU1dlYWtNYXA+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05vbnRyaXZp
YWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3ZWFrbWFwIikpOworICAgICAgICBpZiAob2Jq
ZWN0LT5pbmhlcml0czxKU1dlYWtTZXQ+KHZtKSkKKyAgICAgICAgICAgIHJldHVybiBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3ZWFrc2V0IikpOworCisgICAgICAgIGlm
IChvYmplY3QtPmluaGVyaXRzPEpTU3RyaW5nSXRlcmF0b3I+KHZtKSkKKyAgICAgICAgICAgIHJl
dHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJpdGVyYXRvciIpKTsK
KwogICAgICAgICBpZiAob2JqZWN0LT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmFycmF5SXRlcmF0b3JOZXh0SW5kZXhQcml2YXRlTmFtZSgpKQogICAgICAg
ICAgICAgfHwgb2JqZWN0LT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLm1hcEJ1Y2tldFByaXZhdGVOYW1lKCkpCiAgICAgICAgICAgICB8fCBvYmplY3QtPmdl
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc2V0QnVja2V0UHJp
dmF0ZU5hbWUoKSkpCiAgICAgICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiaXRlcmF0b3IiKSk7Ci0gICAgfQogCi0gICAgaWYgKHZhbHVlLmluaGVy
aXRzKHZtLCBKU0ludDhBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2
bSwgSlNJbnQxNkFycmF5OjppbmZvKCkpCi0gICAgICAgIHx8IHZhbHVlLmluaGVyaXRzKHZtLCBK
U0ludDMyQXJyYXk6OmluZm8oKSkKLSAgICAgICAgfHwgdmFsdWUuaW5oZXJpdHModm0sIEpTVWlu
dDhBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgSlNVaW50OENs
YW1wZWRBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgSlNVaW50
MTZBcnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgSlNVaW50MzJB
cnJheTo6aW5mbygpKQotICAgICAgICB8fCB2YWx1ZS5pbmhlcml0cyh2bSwgSlNGbG9hdDMyQXJy
YXk6OmluZm8oKSkKLSAgICAgICAgfHwgdmFsdWUuaW5oZXJpdHModm0sIEpTRmxvYXQ2NEFycmF5
OjppbmZvKCkpKQotICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiYXJyYXkiKSk7CisgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTSW50OEFy
cmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNJbnQxNkFycmF5Pih2
bSkKKyAgICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNJbnQzMkFycmF5Pih2bSkKKyAg
ICAgICAgICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNVaW50OEFycmF5Pih2bSkKKyAgICAgICAg
ICAgIHx8IG9iamVjdC0+aW5oZXJpdHM8SlNVaW50OENsYW1wZWRBcnJheT4odm0pCisgICAgICAg
ICAgICB8fCBvYmplY3QtPmluaGVyaXRzPEpTVWludDE2QXJyYXk+KHZtKQorICAgICAgICAgICAg
fHwgb2JqZWN0LT5pbmhlcml0czxKU1VpbnQzMkFycmF5Pih2bSkKKyAgICAgICAgICAgIHx8IG9i
amVjdC0+aW5oZXJpdHM8SlNGbG9hdDMyQXJyYXk+KHZtKQorICAgICAgICAgICAgfHwgb2JqZWN0
LT5pbmhlcml0czxKU0Zsb2F0NjRBcnJheT4odm0pKQorICAgICAgICAgICAgcmV0dXJuIGpzTm9u
dHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImFycmF5IikpOworICAgIH0KIAogICAg
IHJldHVybiBpbXBsKCkuc3VidHlwZShleGVjLCB2YWx1ZSk7CiB9CkBAIC0yMTMsMTQgKzIxMCwx
NCBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpmdW5jdGlvbkRldGFpbHMoRXhlY1N0
YXRlKiBleGVjKQogCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBKU1ZhbHVlIHZhbHVl
ID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgaWYgKCF2YWx1ZS5hc0NlbGwoKS0+
aW5oZXJpdHModm0sIEpTRnVuY3Rpb246OmluZm8oKSkpCisgICAgYXV0byogZnVuY3Rpb24gPSBq
c0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPih2bSwgdmFsdWUpOworICAgIGlmICghZnVuY3Rpb24p
CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgLy8gRklYTUU6IDxodHRwczov
L3dlYmtpdC5vcmcvYi84NzE5Mj4gV2ViIEluc3BlY3RvcjogRXhwb3NlIGZ1bmN0aW9uIHNjb3Bl
IC8gY2xvc3VyZSBkYXRhCiAKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvdmlkZSBiZXR0
ZXIgZGV0YWlscyBmb3IgSlNCb3VuZEZ1bmN0aW9ucy4KIAotICAgIEpTRnVuY3Rpb24qIGZ1bmN0
aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPih2YWx1ZSk7CiAgICAgY29uc3QgU291cmNlQ29kZSog
c291cmNlQ29kZSA9IGZ1bmN0aW9uLT5zb3VyY2VDb2RlKCk7CiAgICAgaWYgKCFzb3VyY2VDb2Rl
KQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuY3Bw
CmluZGV4IGEyYjZkMDQyYWQyMmVmNmM1ZGQxZWE5ZDI3MzQwYjQ5MTQwZjQ5ZjMuLjJmYjhiN2Vj
ZDdmYjU2YjY5MWM3ZDU5MjMwMjU3OTY4MTI2MTc0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50
LmNwcApAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgSW5zcGVjdG9ySGVhcEFnZW50OjpnZXRQcmV2
aWV3KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IGhlYXBPYmplY3RJZCwKICAgICB9CiAK
ICAgICAvLyBGdW5jdGlvbiBwcmV2aWV3LgotICAgIGlmIChjZWxsLT5pbmhlcml0cyh2bSwgSlNG
dW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlmIChjZWxsLT5pbmhlcml0czxKU0Z1bmN0aW9uPih2
bSkpIHsKICAgICAgICAgaW5qZWN0ZWRTY3JpcHQuZnVuY3Rpb25EZXRhaWxzKGVycm9yU3RyaW5n
LCBjZWxsLCBmdW5jdGlvbkRldGFpbHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXgg
Y2RjMGY3MjIwNzBiZTdlNTM1ZWFkZTA3MWRiYjMyZjY1MGZmMTFlNi4uZWE3OGFjNjlkZWMyYzE4
MzExODI2Mzk5ZDJhMjYwZmExN2RjMWIxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgQUxXQVlT
X0lOTElORSBzdGF0aWMgdm9pZCBub3RpZnlEZWJ1Z2dlck9mVW53aW5kaW5nKFZNJiB2bSwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUKICAgICBpZiAoRGVidWdnZXIqIGRlYnVnZ2VyID0gY2FsbEZyYW1l
LT52bUVudHJ5R2xvYmFsT2JqZWN0KHZtKS0+ZGVidWdnZXIoKSkgewogICAgICAgICBTdXNwZW5k
RXhjZXB0aW9uU2NvcGUgc2NvcGUoJnZtKTsKICAgICAgICAgaWYgKGNhbGxGcmFtZS0+aXNBbnlX
YXNtQ2FsbGVlKCkKLSAgICAgICAgICAgIHx8IChjYWxsRnJhbWUtPmNhbGxlZSgpLmlzQ2VsbCgp
ICYmIGNhbGxGcmFtZS0+Y2FsbGVlKCkuYXNDZWxsKCktPmluaGVyaXRzKHZtLCBKU0Z1bmN0aW9u
OjppbmZvKCkpKSkKKyAgICAgICAgICAgIHx8IChjYWxsRnJhbWUtPmNhbGxlZSgpLmlzQ2VsbCgp
ICYmIGNhbGxGcmFtZS0+Y2FsbGVlKCkuYXNDZWxsKCktPmluaGVyaXRzPEpTRnVuY3Rpb24+KHZt
KSkpCiAgICAgICAgICAgICBkZWJ1Z2dlci0+dW53aW5kRXZlbnQoY2FsbEZyYW1lKTsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgZGVidWdnZXItPmRpZEV4ZWN1dGVQcm9ncmFtKGNhbGxGcmFt
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93
Q2hpY2tlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hp
Y2tlbi5jcHAKaW5kZXggZjcwNjY2ZDg5NzBmNmM3MzMxNTkwNzgxNzdkM2VhM2M1NTgwYWI3MC4u
ZTM0NDNmMTg5MWQxNzU2YjAzZGZmOGZhNmEyMjg1Y2E4ZTU1ZGNiMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TaGFkb3dDaGlja2VuLmNwcApAQCAtMzAy
LDExICszMDIsMTEgQEAgdm9pZCBTaGFkb3dDaGlja2VuOjp1cGRhdGUoVk0mIHZtLCBFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+
Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICBpZiAoY29kZUJsb2NrICYmIGNvZGVCbG9jay0+d2Fz
Q29tcGlsZWRXaXRoRGVidWdnaW5nT3Bjb2RlcygpICYmIGNvZGVCbG9jay0+c2NvcGVSZWdpc3Rl
cigpLmlzVmFsaWQoKSkgewogICAgICAgICAgICAgICAgIHNjb3BlID0gY2FsbEZyYW1lLT5zY29w
ZShjb2RlQmxvY2stPnNjb3BlUmVnaXN0ZXIoKS5vZmZzZXQoKSk7Ci0gICAgICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoc2NvcGUtPmluaGVyaXRzKHZtLCBKU1Njb3BlOjppbmZvKCkpKTsKKyAg
ICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzY29wZS0+aW5oZXJpdHM8SlNTY29wZT4odm0p
KTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmRGcmFtZSkgewogICAgICAgICAgICAgICAg
IHNjb3BlID0gbV9sb2dbaW5kZXhJbkxvZ10uc2NvcGU7CiAgICAgICAgICAgICAgICAgaWYgKHNj
b3BlKQotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzY29wZS0+aW5oZXJpdHMo
dm0sIEpTU2NvcGU6OmluZm8oKSkpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VChzY29wZS0+aW5oZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHRvUHVzaC5hcHBlbmQoRnJhbWUoanNDYXN0PEpTT2JqZWN0Kj4odmlzaXRvci0+Y2FsbGVl
KCkuYXNDZWxsKCkpLCBjYWxsRnJhbWUsIGlzVGFpbERlbGV0ZWQsIGNhbGxGcmFtZS0+dGhpc1Zh
bHVlKCksIHNjb3BlLCBjb2RlQmxvY2ssIGNhbGxGcmFtZS0+Y2FsbFNpdGVJbmRleCgpKSk7CiAK
QEAgLTM1MSw3ICszNTEsNyBAQCB2b2lkIFNoYWRvd0NoaWNrZW46OnVwZGF0ZShWTSYgdm0sIEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICBQYWNrZXQgcGFja2V0ID0gbV9sb2dbaW5kZXhJbkxvZ107CiAgICAgICAgICAgICAgICAgICAg
IGJvb2wgaXNUYWlsRGVsZXRlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKHRhaWxQYWNrZXQuc2NvcGUtPmluaGVyaXRzKHZtLCBKU1Njb3BlOjppbmZvKCkpKTsK
KyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQodGFpbFBhY2tldC5zY29wZS0+aW5o
ZXJpdHM8SlNTY29wZT4odm0pKTsKICAgICAgICAgICAgICAgICAgICAgdG9QdXNoLmFwcGVuZChG
cmFtZShwYWNrZXQuY2FsbGVlLCBwYWNrZXQuZnJhbWUsIGlzVGFpbERlbGV0ZWQsIHRhaWxQYWNr
ZXQudGhpc1ZhbHVlLCB0YWlsUGFja2V0LnNjb3BlLCB0YWlsUGFja2V0LmNvZGVCbG9jaywgdGFp
bFBhY2tldC5jYWxsU2l0ZUluZGV4KSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGY2NDIwY2FlNjE2YWFjNTI0YzJhODE5
NGU5YmQwMmY0ZjU3MDk0ZTQuLjU1MTEzOWZiZjI4NjQ0YTBkNjU2ZmNhZDA0ZjQ2ZTk3ZjcyYjhi
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTE5Niw3ICsxOTYsNyBAQCB2b2lk
IEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAKICAgICBWTSYgdm0gPSAqbV9jb2RlQmxv
Y2stPnZtKCk7CiAgICAgdW5zaWduZWQgc3RhcnRCeXRlY29kZU9mZnNldCA9IDA7Ci0gICAgaWYg
KG1fbG9vcE9TUkVudHJ5Qnl0ZWNvZGVPZmZzZXQgJiYgKG1fY29kZUJsb2NrLT5pbmhlcml0cyh2
bSwgUHJvZ3JhbUNvZGVCbG9jazo6aW5mbygpKSB8fCBtX2NvZGVCbG9jay0+aW5oZXJpdHModm0s
IE1vZHVsZVByb2dyYW1Db2RlQmxvY2s6OmluZm8oKSkpKSB7CisgICAgaWYgKG1fbG9vcE9TUkVu
dHJ5Qnl0ZWNvZGVPZmZzZXQgJiYgKG1fY29kZUJsb2NrLT5pbmhlcml0czxQcm9ncmFtQ29kZUJs
b2NrPih2bSkgfHwgbV9jb2RlQmxvY2stPmluaGVyaXRzPE1vZHVsZVByb2dyYW1Db2RlQmxvY2s+
KHZtKSkpIHsKICAgICAgICAgLy8gV2UgY2FuIG9ubHkgZG8gdGhpcyBvcHRpbWl6YXRpb24gYmVj
YXVzZSB3ZSBleGVjdXRlIFByb2dyYW1Db2RlQmxvY2sncyBleGFjdGx5IG9uY2UuCiAgICAgICAg
IC8vIFRoaXMgb3B0aW1pemF0aW9uIHdvdWxkIGJlIGludmFsaWQgb3RoZXJ3aXNlLiBXaGVuIHRo
ZSBMTEludCBkZXRlcm1pbmVzIGl0IHdhbnRzIHRvCiAgICAgICAgIC8vIGRvIE9TUiBlbnRyeSBp
bnRvIHRoZSBiYXNlbGluZSBKSVQgaW4gYSBsb29wLCBpdCB3aWxsIHBhc3MgaW4gdGhlIGJ5dGVj
b2RlIG9mZnNldCBpdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5j
cHAKaW5kZXggOWRjNTQ0ZWRhNDAwZmQyYTQyZDllMjk3M2VmNzgyNjFmZTQ2NjNlYy4uZTQ2YTNk
NzVkNDc1ZmU0MGVhMTZiZDJhODZjOTY2NGJmN2Y5ZDkxNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0xMTkxLDcgKzExOTEsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9u
TmV3RnVuY3Rpb25Db21tb24oRXhlY1N0YXRlKiBleGVjLCBKU1Njb3BlKiBzY29wZSwgSlNDZWxs
KiBmdW5jdGlvbkV4ZWN1dGFibGUsIGJvb2wgaXNJbnZhbGlkYXRlZCkKIHsKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwotICAgIEFTU0VSVChmdW5jdGlvbkV4ZWN1dGFibGUtPmluaGVyaXRzKHZt
LCBGdW5jdGlvbkV4ZWN1dGFibGU6OmluZm8oKSkpOworICAgIEFTU0VSVChmdW5jdGlvbkV4ZWN1
dGFibGUtPmluaGVyaXRzPEZ1bmN0aW9uRXhlY3V0YWJsZT4odm0pKTsKICAgICBOYXRpdmVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgaWYgKGlzSW52YWxpZGF0ZWQpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRnVuY3Rpb25UeXBlOjpjcmVhdGVXaXRoSW52
YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50KHZtLCBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4
ZWN1dGFibGUqPihmdW5jdGlvbkV4ZWN1dGFibGUpLCBzY29wZSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAppbmRleCA5ZWY4NGFhZWNhYjVjZjA3YWUzYTYzZmMxZWY4ZDgwMGYzMWFiMGY1Li5lZjkyYzQy
MjkyZjA4NTZhOGQ5N2ZhZTkzODAwNmIyMzEyZDdmN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApA
QCAtMjI2Myw3ICsyMjYzLDcgQEAgc3RhdGljIHZvaWQgY2hlY2tFeGNlcHRpb24oR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGJvb2wgaXNMYXN0RmlsZSwgYm9vbCBoYXMKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKLSAgICBpZiAob3B0aW9ucy5tX3RyZWF0V2F0Y2hk
b2dFeGNlcHRpb25Bc1N1Y2Nlc3MgJiYgdmFsdWUuaW5oZXJpdHModm0sIFRlcm1pbmF0ZWRFeGVj
dXRpb25FcnJvcjo6aW5mbygpKSkgeworICAgIGlmIChvcHRpb25zLm1fdHJlYXRXYXRjaGRvZ0V4
Y2VwdGlvbkFzU3VjY2VzcyAmJiB2YWx1ZS5pbmhlcml0czxUZXJtaW5hdGVkRXhlY3V0aW9uRXJy
b3I+KHZtKSkgewogICAgICAgICBBU1NFUlQoaGFzRXhjZXB0aW9uKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3Qu
aAppbmRleCA5ZTVhYWY5YjExODk4MjRiZmI2ZTM0MjVjYTcxYTA2ZDc2ZjFhMDM5Li4yN2M0M2U3
OWE1OGFlYmI1MzhlMGEwOTg2ZGI2MjcxM2QyOTIxNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCkBAIC00NywxMiArNDcsNCBAQCBjbGFzcyBC
b29sZWFuT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgfQogfTsKIAotQm9v
bGVhbk9iamVjdCogYXNCb29sZWFuT2JqZWN0KEpTVmFsdWUpOwotCi1pbmxpbmUgQm9vbGVhbk9i
amVjdCogYXNCb29sZWFuT2JqZWN0KEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgQVNTRVJUKGFzT2Jq
ZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBCb29sZWFuT2Jq
ZWN0OjppbmZvKCkpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Qm9vbGVhbk9iamVjdCo+KGFz
T2JqZWN0KHZhbHVlKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAppbmRleCAzN2RjZTdl
MzQ3OGJmOTY2MDYyMzg4MTdhZGJlN2M4MmUyNDdlYmY4Li4wNmY5ZmQzMGFkNTI3ODk4MGE1MzEy
ODQ3ZDM2YWYwNTZjMTI3OWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcApAQCAtNzYsMTMgKzc2LDE0IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYm9vbGVhblByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBpZiAodGhpc1ZhbHVlID09IGpzQm9vbGVhbih0cnVlKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0cmluZ3MudHJ1ZVN0cmluZygpKTsKIAotICAgIGlm
ICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBCb29sZWFuT2JqZWN0OjppbmZvKCkpKQorICAgIGF1
dG8qIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEJvb2xlYW5PYmplY3QqPih2bSwgdGhpc1Zh
bHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNPYmplY3QpKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBpZiAoYXNCb29sZWFuT2JqZWN0KHRo
aXNWYWx1ZSktPmludGVybmFsVmFsdWUoKSA9PSBqc0Jvb2xlYW4oZmFsc2UpKQorICAgIGlmICh0
aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkgPT0ganNCb29sZWFuKGZhbHNlKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0cmluZ3MuZmFsc2VTdHJpbmcoKSk7CiAK
LSAgICBBU1NFUlQoYXNCb29sZWFuT2JqZWN0KHRoaXNWYWx1ZSktPmludGVybmFsVmFsdWUoKSA9
PSBqc0Jvb2xlYW4odHJ1ZSkpOworICAgIEFTU0VSVCh0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVl
KCkgPT0ganNCb29sZWFuKHRydWUpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZtLnNt
YWxsU3RyaW5ncy50cnVlU3RyaW5nKCkpOwogfQogCkBAIC05NCwxMCArOTUsMTEgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVmFsdWVPZihFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgaWYgKHRoaXNWYWx1ZS5pc0Jvb2xlYW4oKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpOwogCi0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMo
dm0sIEJvb2xlYW5PYmplY3Q6OmluZm8oKSkpCisgICAgYXV0byogdGhpc09iamVjdCA9IGpzRHlu
YW1pY0Nhc3Q8Qm9vbGVhbk9iamVjdCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VM
WSghdGhpc09iamVjdCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNj
b3BlKTsKIAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNCb29sZWFuT2JqZWN0KHRoaXNW
YWx1ZSktPmludGVybmFsVmFsdWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlz
T2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCmluZGV4
IDYxYTU5NTIyYmYzOTVhYmZiYTQwYWY3ZTlkMGE3NGM0ZTQ1MzMzM2MuLjAwM2ZhOTAwZTdhN2Nm
NWFkYzBkNjYyMGE1YmJlNDIzNzUzODMyMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAtMTMwLDEwICsxMzAsMTEgQEAgSlNP
YmplY3QqIGNvbnN0cnVjdERhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIG4KICAgICBpZiAobnVtQXJncyA9PSAwKSAvLyBuZXcgRGF0ZSgp
IEVDTUEgMTUuOS4zLjMKICAgICAgICAgdmFsdWUgPSBqc0N1cnJlbnRUaW1lKCk7CiAgICAgZWxz
ZSBpZiAobnVtQXJncyA9PSAxKSB7Ci0gICAgICAgIGlmIChhcmdzLmF0KDApLmluaGVyaXRzKHZt
LCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCi0gICAgICAgICAgICB2YWx1ZSA9IGFzRGF0ZUluc3Rh
bmNlKGFyZ3MuYXQoMCkpLT5pbnRlcm5hbE51bWJlcigpOworICAgICAgICBKU1ZhbHVlIGFyZzAg
PSBhcmdzLmF0KDApOworICAgICAgICBpZiAoYXV0byogZGF0ZUluc3RhbmNlID0ganNEeW5hbWlj
Q2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgYXJnMCkpCisgICAgICAgICAgICB2YWx1ZSA9IGRhdGVJ
bnN0YW5jZS0+aW50ZXJuYWxOdW1iZXIoKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBK
U1ZhbHVlIHByaW1pdGl2ZSA9IGFyZ3MuYXQoMCkudG9QcmltaXRpdmUoZXhlYyk7CisgICAgICAg
ICAgICBKU1ZhbHVlIHByaW1pdGl2ZSA9IGFyZzAudG9QcmltaXRpdmUoZXhlYyk7CiAgICAgICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICAgICAgICAgIGlm
IChwcmltaXRpdmUuaXNTdHJpbmcoKSkKICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRGF0
ZSh2bSwgYXNTdHJpbmcocHJpbWl0aXZlKS0+dmFsdWUoZXhlYykpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAppbmRleCAzZjExYWUzYTYzNmViZGNiYWEy
MDVhZTJkYjc0ZDRmYTQ2NTMyYjI4Li41Nzg0MTM1MzAxMTM5YTdjMzgyNzcyNTQ0ZTNlNmI4M2Jl
ZGNmMzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5z
dGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2Uu
aApAQCAtODAsMTIgKzgwLDQgQEAgY2xhc3MgRGF0ZUluc3RhbmNlIDogcHVibGljIEpTV3JhcHBl
ck9iamVjdCB7CiAgICAgbXV0YWJsZSBQb2lzb25lZFJlZlB0cjxEYXRlSW5zdGFuY2VQb2lzb24s
IERhdGVJbnN0YW5jZURhdGE+IG1fZGF0YTsKIH07CiAKLURhdGVJbnN0YW5jZSogYXNEYXRlSW5z
dGFuY2UoSlNWYWx1ZSk7Ci0KLWlubGluZSBEYXRlSW5zdGFuY2UqIGFzRGF0ZUluc3RhbmNlKEpT
VmFsdWUgdmFsdWUpCi17Ci0gICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZh
bHVlLmdldE9iamVjdCgpLT52bSgpLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpOwotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxEYXRlSW5zdGFuY2UqPihhc09iamVjdCh2YWx1ZSkpOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5jcHAKaW5kZXggNWFiMDA3ZmMxN2Y2NGU5Y2JkMjhjMTliNWZkNzM5NmVhY2Y5ZDJk
My4uNmYyMzM2ODczNTJjMGJmZGY0YTU5NjQxZjkyNmI4MTBkNWFmMWUyMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKQEAgLTMyMiwxMSAr
MzIyLDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBmb3JtYXRlRGF0ZUluc3RhbmNlKEV4ZWNT
dGF0ZSogZXhlYywgRGF0ZVRpbWVGb3JtYXQgZm9ybWF0CiAgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhl
cml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0g
anNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5M
SUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3Rh
bmNlKHRoaXNWYWx1ZSk7Ci0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSBhc1VUQ1ZhcmlhbnQKICAgICAgICAgPyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWVVVEMoZXhlYykKICAgICAgICAgOiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRp
bWUoZXhlYyk7CkBAIC01MzksMTAgKzUzOCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZt
ID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRo
aXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRo
aXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsK
KyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYywgc2NvcGUpOwogICAgIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVP
YmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUo
dGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVy
cm9yKGV4ZWMsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiSW52
YWxpZCBEYXRlIikpKTsKIApAQCAtNTg3LDEwICs1ODYsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0g
ICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAg
ICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRo
aXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhp
c0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGZvcm1hdExvY2FsZURhdGUoZXhlYywgdGhpc0RhdGVPYmosIHRoaXNEYXRlT2Jq
LT5pbnRlcm5hbE51bWJlcigpLCBMb2NhbGVEYXRlQW5kVGltZSkpOwogfQogCkBAIC01OTksMTAg
KzU5OCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0xv
Y2FsZURhdGVTdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJp
dHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpz
RHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElL
RUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMs
IHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5j
ZSh0aGlzVmFsdWUpOyAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGZvcm1hdExvY2FsZURh
dGUoZXhlYywgdGhpc0RhdGVPYmosIHRoaXNEYXRlT2JqLT5pbnRlcm5hbE51bWJlcigpLCBMb2Nh
bGVEYXRlKSk7CiB9CiAKQEAgLTYxMSwxMCArNjEwLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvTG9jYWxlVGltZVN0cmluZyhFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
LSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQor
ICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwg
dGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0
aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoZm9ybWF0TG9jYWxlRGF0ZShleGVjLCB0aGlzRGF0ZU9iaiwgdGhpc0RhdGVP
YmotPmludGVybmFsTnVtYmVyKCksIExvY2FsZVRpbWUpKTsKIH0KIApAQCAtNjQ2LDEwICs2NDUs
MTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGltZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3Rh
bmNlOjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRl
SW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2Jq
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpLT5pbnRlcm5h
bFZhbHVlKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc0RhdGVPYmotPmludGVy
bmFsVmFsdWUoKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY0dldEZ1bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTY1NywxMSArNjU3LDEwIEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyKEV4ZWNT
dGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6
OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0
YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRl
SW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9i
ai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTY3MywxMSArNjcy
LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1
bGxZZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBE
YXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWND
YXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhp
c0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7
CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1Zh
bHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUg
PSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgaWYgKCFncmVn
b3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsK
QEAgLTY4OSwxMSArNjg3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY0dldE1vbnRoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVy
aXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBq
c0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJ
S0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFu
Y2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYg
KCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05h
TigpKTsKQEAgLTcwNSwxMSArNzAyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1Zh
bHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0Rh
dGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAg
IGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNE
YXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSog
Z3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhl
Yyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc05hTigpKTsKQEAgLTcyMSwxMSArNzE3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERhdGUoRXhlY1N0YXRlKiBleGVjKQogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYg
KCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRv
KiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1
ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVP
YmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRh
dGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGlt
ZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtNzM3LDExICs3MzIsMTAgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZShFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsK
LSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQor
ICAgIGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwg
dGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0
aGlzRGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAotCiAgICAgY29uc3QgR3Jl
Z29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlh
bkRhdGVUaW1lVVRDKGV4ZWMpOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CkBAIC03NTMsMTEgKzc0NywxMCBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXkoRXhlY1N0YXRl
KiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5m
bygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNl
Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0
YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNv
bnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5n
cmVnb3JpYW5EYXRlVGltZShleGVjKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtNzY5LDExICs3NjIsMTAg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF5KEV4
ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
PnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFu
Y2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJ
bnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmop
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBE
YXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0K
ICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRl
VGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTc4NSwx
MSArNzc3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dEhvdXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBE
YXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWND
YXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhp
c0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7
CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1Zh
bHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUg
PSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYgKCFncmVnb3Jp
YW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAg
LTgwMSwxMSArNzkyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY0dldFVUQ0hvdXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVy
aXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBq
c0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJ
S0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVj
LCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFu
Y2UodGhpc1ZhbHVlKTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZXhlYyk7CiAgICAg
aWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c05hTigpKTsKQEAgLTgxNywxMSArODA3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlz
VmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlz
RGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7Cisg
ICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBh
c0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVj
KTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODMzLDExICs4MjIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRlcyhFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAg
ICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAg
IGF1dG8qIHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhp
c1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlz
RGF0ZU9iaiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAotCiAgICAgY29uc3QgR3JlZ29y
aWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRh
dGVUaW1lVVRDKGV4ZWMpOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CkBAIC04NDksMTEgKzgzNywxMCBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRTZWNvbmRzKEV4ZWNTdGF0
ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6Omlu
Zm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5j
ZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5z
dGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCi0KICAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+
Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKQEAgLTg2NSwxMSArODUyLDEw
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ1NlY29u
ZHMoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJ
bnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8
RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0
ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAot
ICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUp
OyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRo
aXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhleGVjKTsKICAgICBpZiAoIWdyZWdvcmlh
bkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAt
ODgxLDEwICs4NjcsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0TWlsbGlTZWNvbmRzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmog
PSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChV
TkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5z
dGFuY2UodGhpc1ZhbHVlKTsgCiAgICAgZG91YmxlIG1pbGxpID0gdGhpc0RhdGVPYmotPmludGVy
bmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4obWlsbGkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwpAQCAtODk5LDEwICs4ODUsMTAgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzKEV4ZWNT
dGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRo
aXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6
OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0
YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRl
SW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsgCiAgICAg
ZG91YmxlIG1pbGxpID0gdGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0
ZDo6aXNuYW4obWlsbGkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkp
OwpAQCAtOTE3LDExICs5MDMsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQoRXhlY1N0YXRlKiBleGVjKQogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlz
VmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlz
RGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7Cisg
ICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBh
c0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOyAKLQogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShleGVj
KTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTmFOKCkpOwpAQCAtOTMzLDExICs5MTgsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VGltZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAo
IXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZvKCkpKQorICAgIGF1dG8q
IHRoaXNEYXRlT2JqID0ganNEeW5hbWljQ2FzdDxEYXRlSW5zdGFuY2UqPih2bSwgdGhpc1ZhbHVl
KTsKKyAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwogCi0gICAgRGF0ZUluc3RhbmNlKiB0aGlzRGF0ZU9i
aiA9IGFzRGF0ZUluc3RhbmNlKHRoaXNWYWx1ZSk7IAotCiAgICAgZG91YmxlIG1pbGxpID0gdGlt
ZUNsaXAoZXhlYy0+YXJndW1lbnQoMCkudG9OdW1iZXIoZXhlYykpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0g
anNOdW1iZXIobWlsbGkpOwpAQCAtOTUwLDEwICs5MzQsMTAgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKEV4ZWNTdGF0ZSogZXhlYywgaW50IG51bUFyZ3NU
b1VzZSwKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRlSW5zdGFuY2U6OmluZm8o
KSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0PERhdGVJbnN0YW5jZSo+
KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKLSAgICBEYXRlSW5zdGFu
Y2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVlKTsKICAgICBkb3VibGUg
bWlsbGkgPSB0aGlzRGF0ZU9iai0+aW50ZXJuYWxOdW1iZXIoKTsKIAogICAgIGlmICghZXhlYy0+
YXJndW1lbnRDb3VudCgpIHx8IHN0ZDo6aXNuYW4obWlsbGkpKSB7CkBAIC05OTIsMTAgKzk3Niwx
MCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3MoRXhlY1N0
YXRlKiBleGVjLCBpbnQgbnVtQXJnc1RvVXNlLAogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMo
dm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBhdXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHlu
YW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZ
KCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNj
b3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0RhdGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0
aGlzVmFsdWUpOwogICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpKSB7CiAgICAgICAgIEpT
VmFsdWUgcmVzdWx0ID0ganNOYU4oKTsKICAgICAgICAgdGhpc0RhdGVPYmotPnNldEludGVybmFs
VmFsdWUodm0sIHJlc3VsdCk7CkBAIC0xMTA3LDEwICsxMDkxLDEwIEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFllYXIoRXhlY1N0YXRlKiBleGVjKQogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAg
aWYgKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkKKyAgICBh
dXRvKiB0aGlzRGF0ZU9iaiA9IGpzRHluYW1pY0Nhc3Q8RGF0ZUluc3RhbmNlKj4odm0sIHRoaXNW
YWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIERhdGVJbnN0YW5jZSogdGhpc0Rh
dGVPYmogPSBhc0RhdGVJbnN0YW5jZSh0aGlzVmFsdWUpOwogICAgIGlmICghZXhlYy0+YXJndW1l
bnRDb3VudCgpKSB7IAogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTmFOKCk7CiAgICAgICAg
IHRoaXNEYXRlT2JqLT5zZXRJbnRlcm5hbFZhbHVlKHZtLCByZXN1bHQpOwpAQCAtMTE1MiwxMSAr
MTEzNiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRZ
ZWFyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBEYXRl
SW5zdGFuY2U6OmluZm8oKSkpCisgICAgYXV0byogdGhpc0RhdGVPYmogPSBqc0R5bmFtaWNDYXN0
PERhdGVJbnN0YW5jZSo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhpc0Rh
dGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAK
LSAgICBEYXRlSW5zdGFuY2UqIHRoaXNEYXRlT2JqID0gYXNEYXRlSW5zdGFuY2UodGhpc1ZhbHVl
KTsgCi0KICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZXhlYyk7CiAgICAgaWYgKCFncmVnb3JpYW5E
YXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKaW5k
ZXggOTgyNjhlNTkzYTljYzlkMGZiZWIxNjE2MDBlZjAwOWY3ZTkyY2IzNS4uNjk5MTQ0YjRhN2Vk
MzcyZDlhOTM3YjY0YTQ5YzI3OWY5ZDNlN2ZhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgYm9v
bCBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oVk0mIHZtLCBFeGNlcHRpb24qIGV4Y2Vw
dGlvbikKICAgICBpZiAoIWV4Y2VwdGlvbi0+dmFsdWUoKS5pc09iamVjdCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gZXhjZXB0aW9uLT52YWx1ZSgpLmluaGVyaXRzKHZt
LCBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I6OmluZm8oKSk7CisgICAgcmV0dXJuIGV4Y2VwdGlv
bi0+dmFsdWUoKS5pbmhlcml0czxUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I+KHZtKTsKIH0KIAog
SlNPYmplY3QqIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAK
aW5kZXggZTA0MzEzZjE0NTFlNDYyMGQzNWU1ZmY0ZWMzMzU5ODQ0ZDFlMjY5Mi4uZDBmZDc2MjQ3
Y2JjMTZiNjBhNGJhMmU0ZDNiMzVlODhlNmU0OWZkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcApAQCAtODUsNyArODUsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmco
RXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYg
KHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgSlNGdW5jdGlvbjo6aW5mbygpKSkgeworICAgIGlmICh0
aGlzVmFsdWUuaW5oZXJpdHM8SlNGdW5jdGlvbj4odm0pKSB7CiAgICAgICAgIEpTRnVuY3Rpb24q
IGZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPih0aGlzVmFsdWUpOwogICAgICAgICBpZiAo
ZnVuY3Rpb24tPmlzSG9zdE9yQnVpbHRpbkZ1bmN0aW9uKCkpIHsKICAgICAgICAgICAgIHNjb3Bl
LnJlbGVhc2UoKTsKQEAgLTk4LDcgKzk4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgY2xhc3NTb3VyY2UudG9TdHJp
bmdXaXRob3V0Q29weWluZygpKSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodGhpc1ZhbHVl
LmluaGVyaXRzKHZtLCBKU0FzeW5jRnVuY3Rpb246OmluZm8oKSkpIHsKKyAgICAgICAgaWYgKHRo
aXNWYWx1ZS5pbmhlcml0czxKU0FzeW5jRnVuY3Rpb24+KHZtKSkgewogICAgICAgICAgICAgU3Ry
aW5nIGZ1bmN0aW9uSGVhZGVyID0gZXhlY3V0YWJsZS0+aXNBcnJvd0Z1bmN0aW9uKCkgPyAiYXN5
bmMgIiA6ICJhc3luYyBmdW5jdGlvbiAiOwogCiAgICAgICAgICAgICBTdHJpbmdWaWV3IHNvdXJj
ZSA9IGV4ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVyKCktPmdldFJhbmdlKApAQCAtMTE2LDcg
KzExNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNU
b1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCBmdW5jdGlvbkhlYWRlciwgZnVuY3Rpb24tPm5h
bWUodm0pLCBzb3VyY2UpKTsKICAgICB9CiAKLSAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZt
LCBJbnRlcm5hbEZ1bmN0aW9uOjppbmZvKCkpKSB7CisgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0
czxJbnRlcm5hbEZ1bmN0aW9uPih2bSkpIHsKICAgICAgICAgSW50ZXJuYWxGdW5jdGlvbiogZnVu
Y3Rpb24gPSBhc0ludGVybmFsRnVuY3Rpb24odGhpc1ZhbHVlKTsKICAgICAgICAgc2NvcGUucmVs
ZWFzZSgpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxT
dHJpbmcoZXhlYywgImZ1bmN0aW9uICIsIGZ1bmN0aW9uLT5uYW1lKCksICIoKSB7XG4gICAgW25h
dGl2ZSBjb2RlXVxufSIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGVybmFsRnVuY3Rpb24uaAppbmRleCAyZDliYjUwZWFlZTllZDNkMjQ4M2JiMjU1MThiMWQ4OGQ2
N2Q0ZWY0Li43YjdjOGJhZTg4MTBmMDFjYzMwNjViOTgyM2NmOGQ5ZTc1ZDk1ZGI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCkBAIC05
MSw3ICs5MSw3IEBAIEludGVybmFsRnVuY3Rpb24qIGFzSW50ZXJuYWxGdW5jdGlvbihKU1ZhbHVl
KTsKIAogaW5saW5lIEludGVybmFsRnVuY3Rpb24qIGFzSW50ZXJuYWxGdW5jdGlvbihKU1ZhbHVl
IHZhbHVlKQogewotICAgIEFTU0VSVChhc09iamVjdCh2YWx1ZSktPmluaGVyaXRzKCp2YWx1ZS5n
ZXRPYmplY3QoKS0+dm0oKSwgSW50ZXJuYWxGdW5jdGlvbjo6aW5mbygpKSk7CisgICAgQVNTRVJU
KGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHM8SW50ZXJuYWxGdW5jdGlvbj4oKnZhbHVlLmdldE9i
amVjdCgpLT52bSgpKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEludGVybmFsRnVuY3Rpb24q
Pihhc09iamVjdCh2YWx1ZSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cmF5LmgKaW5kZXggODc3MmFhMmE4ODhjYjA1NmNkYTcwMDljMTU4NjkyMDI2MzMxMWNhMS4uNzE1
MGJiZmM0NTBmMGExZDgyNGFhNjVmOTkxOWVlNjcyMjNhYjEwZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtMjg5LDcgKzI4OSw3IEBAIEpTQXJyYXkqIGFzQXJy
YXkoSlNWYWx1ZSk7CiAKIGlubGluZSBKU0FycmF5KiBhc0FycmF5KEpTQ2VsbCogY2VsbCkKIHsK
LSAgICBBU1NFUlQoY2VsbC0+aW5oZXJpdHMoKmNlbGwtPnZtKCksIEpTQXJyYXk6OmluZm8oKSkp
OworICAgIEFTU0VSVChjZWxsLT5pbmhlcml0czxKU0FycmF5PigqY2VsbC0+dm0oKSkpOwogICAg
IHJldHVybiBqc0Nhc3Q8SlNBcnJheSo+KGNlbGwpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCmluZGV4IDExNWQ4YjNkMjU4YjlhYzk0YWJhZTcz
MTc0Y2I2MjA0MmEyNWUzZmQuLmI1Zjc3YmU1OTc0OWZlMzg2Y2YzM2NhMWVjOTQ0N2QyNGNjYmJl
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCkBA
IC0zMDksMTQgKzMwOSwxNCBAQCB2b2lkIEpTVmFsdWU6OmR1bXBGb3JCYWNrdHJhY2UoUHJpbnRT
dHJlYW0mIG91dCkgY29uc3QKICAgICAgICAgb3V0LnByaW50ZigiJWxmIiwgYXNEb3VibGUoKSk7
CiAgICAgZWxzZSBpZiAoaXNDZWxsKCkpIHsKICAgICAgICAgVk0mIHZtID0gKmFzQ2VsbCgpLT52
bSgpOwotICAgICAgICBpZiAoYXNDZWxsKCktPmluaGVyaXRzKHZtLCBKU1N0cmluZzo6aW5mbygp
KSkgeworICAgICAgICBpZiAoYXNDZWxsKCktPmluaGVyaXRzPEpTU3RyaW5nPih2bSkpIHsKICAg
ICAgICAgICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBhc1N0cmluZyhhc0NlbGwoKSk7CiAgICAgICAg
ICAgICBjb25zdCBTdHJpbmdJbXBsKiBpbXBsID0gc3RyaW5nLT50cnlHZXRWYWx1ZUltcGwoKTsK
ICAgICAgICAgICAgIGlmIChpbXBsKQogICAgICAgICAgICAgICAgIG91dC5wcmludCgiXCIiLCBp
bXBsLCAiXCIiKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBvdXQucHJpbnQo
Iih1bnJlc29sdmVkIHN0cmluZykiKTsKLSAgICAgICAgfSBlbHNlIGlmIChhc0NlbGwoKS0+aW5o
ZXJpdHModm0sIFN0cnVjdHVyZTo6aW5mbygpKSkgeworICAgICAgICB9IGVsc2UgaWYgKGFzQ2Vs
bCgpLT5pbmhlcml0czxTdHJ1Y3R1cmU+KHZtKSkgewogICAgICAgICAgICAgb3V0LnByaW50KCJT
dHJ1Y3R1cmVbICIsIGFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFt
ZSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgICAgIG91dC5wcmludCgiIElEOiAiLCBh
c0NlbGwoKS0+c3RydWN0dXJlSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NKU1ZhbHVlLmgKaW5kZXggMWE0NDk3ZTk2MGE4ZTU4MTJjOGMyYzI4NWJmZjYyOWY0NTA0ZDI5
OS4uMzY2YjBhMjdkYzcwNWRjMzg3NzRhNGRiZTQ5ODA0Y2E0Y2UxODI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaApAQCAtMjM2LDYgKzIzNiw3IEBAIGNs
YXNzIEpTVmFsdWUgewogICAgIGJvb2wgaXNDdXN0b21HZXR0ZXJTZXR0ZXIoKSBjb25zdDsKICAg
ICBib29sIGlzT2JqZWN0KCkgY29uc3Q7CiAgICAgYm9vbCBpbmhlcml0cyhWTSYsIGNvbnN0IENs
YXNzSW5mbyopIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFRhcmdldD4gYm9vbCBpbmhl
cml0cyhWTSYpIGNvbnN0OwogICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvT3JOdWxsKFZN
JikgY29uc3Q7CiAgICAgICAgIAogICAgIC8vIEV4dHJhY3RpbmcgdGhlIHZhbHVlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmgKaW5kZXgg
YWE1MWRkNWQ3NjZkMDk0NTYyNTkzYzlmNmNkOWM3NjU0YzIyMDE4MC4uYjVhNGI0YmRiZWU5OGMw
MzQwNDhhZWNlMTY1NjRmM2ExZTRkNWM1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCkBAIC03ODUsNiArNzg1LDEyIEBAIGlubGlu
ZSBib29sIEpTVmFsdWU6OmluaGVyaXRzKFZNJiB2bSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0lu
Zm8pIGNvbnN0CiAgICAgcmV0dXJuIGlzQ2VsbCgpICYmIGFzQ2VsbCgpLT5pbmhlcml0cyh2bSwg
Y2xhc3NJbmZvKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0PgoraW5saW5lIGJvb2wg
SlNWYWx1ZTo6aW5oZXJpdHMoVk0mIHZtKSBjb25zdAoreworICAgIHJldHVybiBpc0NlbGwoKSAm
JiBhc0NlbGwoKS0+aW5oZXJpdHM8VGFyZ2V0Pih2bSk7Cit9CisKIGlubGluZSBjb25zdCBDbGFz
c0luZm8qIEpTVmFsdWU6OmNsYXNzSW5mb09yTnVsbChWTSYgdm0pIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPmNsYXNzSW5mbyh2bSkgOiBudWxscHRyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAppbmRleCAxODU3ZjY4ZTY0NWFiZDIzNjhkODI3
ZDU1MGVjMzEzZGFiNmFhYmJmLi45Mjg1YTFiMjlhNWNmZDU2OTBhMGUyNjgxOTU0MGM0N2I4YWJj
MzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaApAQCAtNDcsNyArNDcs
NyBAQCBpbmxpbmUgVG8ganNDYXN0KEpTVmFsdWUgZnJvbSkKIAogLy8gU3BlY2lmaWMgdHlwZSBv
dmVybG9hZHMuCiAjZGVmaW5lIEZPUl9FQUNIX0pTX0RZTkFNSUNfQ0FTVF9KU19UWVBFX09WRVJM
T0FEKG1hY3JvKSBcCi0gICAgbWFjcm8oSlNPYmplY3QsIEpTVHlwZTo6T2JqZWN0VHlwZSwgSlNU
eXBlOjpMYXN0SlNDT2JqZWN0VHlwZSkgXAorICAgIG1hY3JvKEpTT2JqZWN0LCBGaXJzdE9iamVj
dFR5cGUsIExhc3RPYmplY3RUeXBlKSBcCiAgICAgbWFjcm8oSlNGaW5hbE9iamVjdCwgSlNUeXBl
OjpGaW5hbE9iamVjdFR5cGUsIEpTVHlwZTo6RmluYWxPYmplY3RUeXBlKSBcCiAgICAgbWFjcm8o
SlNGdW5jdGlvbiwgSlNUeXBlOjpKU0Z1bmN0aW9uVHlwZSwgSlNUeXBlOjpKU0Z1bmN0aW9uVHlw
ZSkgXAogICAgIG1hY3JvKEludGVybmFsRnVuY3Rpb24sIEpTVHlwZTo6SW50ZXJuYWxGdW5jdGlv
blR5cGUsIEpTVHlwZTo6SW50ZXJuYWxGdW5jdGlvblR5cGUpIFwKQEAgLTU5LDYgKzU5LDcgQEAg
aW5saW5lIFRvIGpzQ2FzdChKU1ZhbHVlIGZyb20pCiAgICAgbWFjcm8oSlNXZWFrTWFwLCBKU1R5
cGU6OkpTV2Vha01hcFR5cGUsIEpTVHlwZTo6SlNXZWFrTWFwVHlwZSkgXAogICAgIG1hY3JvKE51
bWJlck9iamVjdCwgSlNUeXBlOjpOdW1iZXJPYmplY3RUeXBlLCBKU1R5cGU6Ok51bWJlck9iamVj
dFR5cGUpIFwKICAgICBtYWNybyhQcm94eU9iamVjdCwgSlNUeXBlOjpQcm94eU9iamVjdFR5cGUs
IEpTVHlwZTo6UHJveHlPYmplY3RUeXBlKSBcCisgICAgbWFjcm8oUmVnRXhwT2JqZWN0LCBKU1R5
cGU6OlJlZ0V4cE9iamVjdFR5cGUsIEpTVHlwZTo6UmVnRXhwT2JqZWN0VHlwZSkgXAogICAgIG1h
Y3JvKERpcmVjdEFyZ3VtZW50cywgSlNUeXBlOjpEaXJlY3RBcmd1bWVudHNUeXBlLCBKU1R5cGU6
OkRpcmVjdEFyZ3VtZW50c1R5cGUpIFwKICAgICBtYWNybyhTY29wZWRBcmd1bWVudHMsIEpTVHlw
ZTo6U2NvcGVkQXJndW1lbnRzVHlwZSwgSlNUeXBlOjpTY29wZWRBcmd1bWVudHNUeXBlKSBcCiAg
ICAgbWFjcm8oQ2xvbmVkQXJndW1lbnRzLCBKU1R5cGU6OkNsb25lZEFyZ3VtZW50c1R5cGUsIEpT
VHlwZTo6Q2xvbmVkQXJndW1lbnRzVHlwZSkgXApAQCAtNzgsNTIgKzc5LDYwIEBAIEZPUl9FQUNI
X0pTX0RZTkFNSUNfQ0FTVF9KU19UWVBFX09WRVJMT0FEKEZPUldBUkRfREVDTEFSRV9PVkVSTE9B
RF9DTEFTUykKIAogbmFtZXNwYWNlIEpTQ2FzdGluZ0hlbHBlcnMgewogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBUbywgdHlwZW5hbWUgRnJvbT4KLWlubGluZSBUbyBqc0R5bmFtaWNDYXN0R2VuZXJpY0lt
cGwoVk0mIHZtLCBGcm9tKiBmcm9tKQordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFt
ZSBGcm9tPgoraW5saW5lIGJvb2wgaW5oZXJpdHNHZW5lcmljSW1wbChWTSYgdm0sIEZyb20qIGZy
b20pCiB7Ci0gICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19zYW1lPEpTT2JqZWN0KiwgVG8qPjo6
dmFsdWUsICJUaGlzIGVuc3VyZXMgb3VyIG92ZXJsb2FkcyB3b3JrIik7Ci0gICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX2Jhc2Vfb2Y8SlNDZWxsLCB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9wb2ludGVy
PFRvPjo6dHlwZT46OnZhbHVlICYmIHN0ZDo6aXNfYmFzZV9vZjxKU0NlbGwsIHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX3BvaW50ZXI8RnJvbT46OnR5cGU+Ojp2YWx1ZSwgIkpTIGNhc3RpbmcgZXhwZWN0
cyB0aGF0IHRoZSB0eXBlcyB5b3UgYXJlIGNhc3RpbmcgdG8vZnJvbSBhcmUgc3ViY2xhc3NlcyBv
ZiBKU0NlbGwiKTsKLSAgICBpZiAoTElLRUxZKGZyb20tPkpTQ2VsbDo6aW5oZXJpdHModm0sIHN0
ZDo6cmVtb3ZlX3BvaW50ZXI8VG8+Ojp0eXBlOjppbmZvKCkpKSkKLSAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFRvPihmcm9tKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBzdGF0aWNfYXNz
ZXJ0KCFzdGQ6OmlzX3NhbWU8SlNPYmplY3QqLCBUYXJnZXQqPjo6dmFsdWUsICJUaGlzIGVuc3Vy
ZXMgb3VyIG92ZXJsb2FkcyB3b3JrIik7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vf
b2Y8SlNDZWxsLCBUYXJnZXQ+Ojp2YWx1ZSAmJiBzdGQ6OmlzX2Jhc2Vfb2Y8SlNDZWxsLCB0eXBl
bmFtZSBzdGQ6OnJlbW92ZV9wb2ludGVyPEZyb20+Ojp0eXBlPjo6dmFsdWUsICJKUyBjYXN0aW5n
IGV4cGVjdHMgdGhhdCB0aGUgdHlwZXMgeW91IGFyZSBjYXN0aW5nIHRvL2Zyb20gYXJlIHN1YmNs
YXNzZXMgb2YgSlNDZWxsIik7CisgICAgLy8gRG8gbm90IHVzZSBpbmhlcml0czxUYXJnZXQ+KHZt
KSBzaW5jZSBpbmhlcml0czxUPiBkZXBlbmRzIG9uIHRoaXMgZnVuY3Rpb24uCisgICAgcmV0dXJu
IGZyb20tPkpTQ2VsbDo6aW5oZXJpdHModm0sIFRhcmdldDo6aW5mbygpKTsKIH0KIAotdGVtcGxh
dGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+Ci1pbmxpbmUgVG8ganNEeW5hbWljQ2FzdEpT
VHlwZUltcGwoVk0mIHZtLCBGcm9tKiBmcm9tLCBKU1R5cGUgZmlyc3RUeXBlLCBKU1R5cGUgbGFz
dFR5cGUpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIEZyb20+CitpbmxpbmUg
Ym9vbCBpbmhlcml0c0pTVHlwZUltcGwoVk0mIHZtLCBGcm9tKiBmcm9tLCBKU1R5cGUgZmlyc3RU
eXBlLCBKU1R5cGUgbGFzdFR5cGUpCiB7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vf
b2Y8SlNDZWxsLCBUYXJnZXQ+Ojp2YWx1ZSAmJiBzdGQ6OmlzX2Jhc2Vfb2Y8SlNDZWxsLCB0eXBl
bmFtZSBzdGQ6OnJlbW92ZV9wb2ludGVyPEZyb20+Ojp0eXBlPjo6dmFsdWUsICJKUyBjYXN0aW5n
IGV4cGVjdHMgdGhhdCB0aGUgdHlwZXMgeW91IGFyZSBjYXN0aW5nIHRvL2Zyb20gYXJlIHN1YmNs
YXNzZXMgb2YgSlNDZWxsIik7CiAgICAgYm9vbCBjYW5DYXN0ID0gZmlyc3RUeXBlIDw9IGZyb20t
PnR5cGUoKSAmJiBmcm9tLT50eXBlKCkgPD0gbGFzdFR5cGU7Ci0gICAgQVNTRVJUX1VOVVNFRCh2
bSwgY2FuQ2FzdCA9PSBqc0R5bmFtaWNDYXN0R2VuZXJpY0ltcGw8VG8+KHZtLCBmcm9tKSk7Ci0g
ICAgaWYgKExJS0VMWShjYW5DYXN0KSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRvPihm
cm9tKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBBU1NFUlRfVU5VU0VEKHZtLCBjYW5DYXN0
ID09IGZyb20tPkpTQ2VsbDo6aW5oZXJpdHModm0sIFRhcmdldDo6aW5mbygpKSk7CisgICAgcmV0
dXJuIGNhbkNhc3Q7CiB9CiAKIC8vIEMrKyBoYXMgYmFkIHN5bnRheCBzbyB3ZSBuZWVkIHRvIHVz
ZSB0aGlzIHN0cnVjdCBiZWNhdXNlIEMrKyBkb2Vzbid0IGhhdmUgYQogLy8gd2F5IHRvIHNheSB0
aGF0IHdlIGFyZSBvdmVybG9hZGluZyBqdXN0IHRoZSBmaXJzdCB0eXBlIGluIGEgdGVtcGxhdGUg
bGlzdC4uLgotdGVtcGxhdGU8dHlwZW5hbWUgdG8+Ci1zdHJ1Y3QgSlNEeW5hbWljQ2FzdFRyYWl0
cyB7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1lIEZyb20+Ci0gICAgc3RhdGlj
IGlubGluZSBUbyBjYXN0KFZNJiB2bSwgRnJvbSogZnJvbSkgeyByZXR1cm4ganNEeW5hbWljQ2Fz
dEdlbmVyaWNJbXBsPFRvPih2bSwgZnJvbSk7IH0KK3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdldD4K
K3N0cnVjdCBJbmhlcml0c1RyYWl0cyB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnJvbT4KKyAg
ICBzdGF0aWMgaW5saW5lIGJvb2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9tKSB7IHJldHVy
biBpbmhlcml0c0dlbmVyaWNJbXBsPFRhcmdldD4odm0sIGZyb20pOyB9CiB9OwogCiAjZGVmaW5l
IERFRklORV9UUkFJVFNfRk9SX0pTX1RZUEVfT1ZFUkxPQUQoY2xhc3NOYW1lLCBmaXJzdEpTVHlw
ZSwgbGFzdEpTVHlwZSkgXAogICAgIHRlbXBsYXRlPD4gXAotICAgIHN0cnVjdCBKU0R5bmFtaWND
YXN0VHJhaXRzPGNsYXNzTmFtZSo+IHsgXAotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUbywg
dHlwZW5hbWUgRnJvbT4gXAotICAgICAgICBzdGF0aWMgaW5saW5lIFRvIGNhc3QoVk0mIHZtLCBG
cm9tKiBmcm9tKSB7IHJldHVybiBqc0R5bmFtaWNDYXN0SlNUeXBlSW1wbDxUbz4odm0sIGZyb20s
IGZpcnN0SlNUeXBlLCBsYXN0SlNUeXBlKTsgfSBcCisgICAgc3RydWN0IEluaGVyaXRzVHJhaXRz
PGNsYXNzTmFtZT4geyBcCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZyb20+IFwKKyAgICAg
ICAgc3RhdGljIGlubGluZSBib29sIGluaGVyaXRzKFZNJiB2bSwgRnJvbSogZnJvbSkgeyByZXR1
cm4gaW5oZXJpdHNKU1R5cGVJbXBsPGNsYXNzTmFtZSwgRnJvbT4odm0sIGZyb20sIHN0YXRpY19j
YXN0PEpTVHlwZT4oZmlyc3RKU1R5cGUpLCBzdGF0aWNfY2FzdDxKU1R5cGU+KGxhc3RKU1R5cGUp
KTsgfSBcCiAgICAgfTsgXAogCiBGT1JfRUFDSF9KU19EWU5BTUlDX0NBU1RfSlNfVFlQRV9PVkVS
TE9BRChERUZJTkVfVFJBSVRTX0ZPUl9KU19UWVBFX09WRVJMT0FEKQogCiAjdW5kZWYgREVGSU5F
X1RSQUlUU19GT1JfSlNfVFlQRV9PVkVSTE9BRAogCisKK3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdl
dCwgdHlwZW5hbWUgRnJvbT4KK2Jvb2wgaW5oZXJpdHMoVk0mIHZtLCBGcm9tKiBmcm9tKQorewor
ICAgIHVzaW5nIERpc3BhdGNoZXIgPSBJbmhlcml0c1RyYWl0czxUYXJnZXQ+OworICAgIHJldHVy
biBEaXNwYXRjaGVyOjp0ZW1wbGF0ZSBpbmhlcml0cyh2bSwgZnJvbSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIEpTQ2FzdGluZ0hlbHBlcnMKIAogdGVtcGxhdGU8dHlwZW5hbWUgVG8sIHR5cGVuYW1l
IEZyb20+CiBUbyBqc0R5bmFtaWNDYXN0KFZNJiB2bSwgRnJvbSogZnJvbSkKIHsKLSAgICB0eXBl
ZGVmIEpTQ2FzdGluZ0hlbHBlcnM6OkpTRHluYW1pY0Nhc3RUcmFpdHM8dHlwZW5hbWUgc3RkOjpy
ZW1vdmVfY3Y8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcG9pbnRlcjxUbz46OnR5cGU+Ojp0eXBlPiBE
aXNwYXRjaGVyOwotICAgIHJldHVybiBEaXNwYXRjaGVyOjp0ZW1wbGF0ZSBjYXN0PFRvPih2bSwg
ZnJvbSk7CisgICAgdXNpbmcgRGlzcGF0Y2hlciA9IEpTQ2FzdGluZ0hlbHBlcnM6OkluaGVyaXRz
VHJhaXRzPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2N2PHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50
ZXI8VG8+Ojp0eXBlPjo6dHlwZT47CisgICAgaWYgKExJS0VMWShEaXNwYXRjaGVyOjp0ZW1wbGF0
ZSBpbmhlcml0cyh2bSwgZnJvbSkpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VG8+KGZy
b20pOworICAgIHJldHVybiBudWxscHRyOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUbz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggY2FkY2Y3N2RiNmQwZTc2OWI4
NTM1OTdhMGVmYmRhMWVjYTkxNzlkNi4uZGUwYWFhOWU2YTAyZjEzMTY0ODkyNmNlMmMxN2U0Zjc2
MmE5NDMxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxs
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTExNiw2
ICsxMTYsNyBAQCBjbGFzcyBKU0NlbGwgOiBwdWJsaWMgSGVhcENlbGwgewogICAgIGJvb2wgaXND
dXN0b21HZXR0ZXJTZXR0ZXIoKSBjb25zdDsKICAgICBib29sIGlzUHJveHkoKSBjb25zdDsKICAg
ICBib29sIGluaGVyaXRzKFZNJiwgY29uc3QgQ2xhc3NJbmZvKikgY29uc3Q7CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVGFyZ2V0PiBib29sIGluaGVyaXRzKFZNJikgY29uc3Q7CiAgICAgYm9vbCBp
c0FQSVZhbHVlV3JhcHBlcigpIGNvbnN0OwogICAgIAogICAgIC8vIEVhY2ggY2VsbCBoYXMgYSBi
dWlsdC1pbiBsb2NrLiBDdXJyZW50bHkgaXQncyBzaW1wbHkgYXZhaWxhYmxlIGZvciB1c2UgaWYg
eW91IG5lZWQgaXQuIEl0J3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ2VsbElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bElubGluZXMuaAppbmRleCBjY2ZmNmJkNWE5OGMyMDJmZDJiNGFhMGViMTY1ZmVkNjgxMjcxOGY4
Li5mNmNiMWNkOWVhNjAwYjg4ZDhjMGE5OTIyY2VkOGQ2MmJkODBjYjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCkBAIC0yNjUsNiArMjY1LDEy
IEBAIGlubGluZSBib29sIEpTQ2VsbDo6aW5oZXJpdHMoVk0mIHZtLCBjb25zdCBDbGFzc0luZm8q
IGluZm8pIGNvbnN0CiAgICAgcmV0dXJuIGNsYXNzSW5mbyh2bSktPmlzU3ViQ2xhc3NPZihpbmZv
KTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0PgoraW5saW5lIGJvb2wgSlNDZWxsOjpp
bmhlcml0cyhWTSYgdm0pIGNvbnN0Cit7CisgICAgcmV0dXJuIEpTQ2FzdGluZ0hlbHBlcnM6Omlu
aGVyaXRzPFRhcmdldD4odm0sIHRoaXMpOworfQorCiBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgSlND
ZWxsOjpmYXN0R2V0T3duUHJvcGVydHkoVk0mIHZtLCBTdHJ1Y3R1cmUmIHN0cnVjdHVyZSwgUHJv
cGVydHlOYW1lIG5hbWUpCiB7CiAgICAgQVNTRVJUKGNhblVzZUZhc3RHZXRPd25Qcm9wZXJ0eShz
dHJ1Y3R1cmUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKaW5kZXggMDRjOGIyMjc5OTYzMDAxMWY3YmY0MDE1NmM2Y2Y0MDEwZjAzZDYzYy4uYmVhOTIx
ZTJiMzIxZGFiYTI3ZWNkMzY0MWRiMDg4NTYxM2MwMWQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTMxMiw3ICszMTIsNyBAQCBjbGFzcyBS
ZXRyaWV2ZUNhbGxlckZ1bmN0aW9uRnVuY3RvciB7CiAKICAgICAgICAgSlNDZWxsKiBjYWxsZWUg
PSB2aXNpdG9yLT5jYWxsZWUoKS5hc0NlbGwoKTsKIAotICAgICAgICBpZiAoY2FsbGVlICYmIGNh
bGxlZS0+aW5oZXJpdHMoKmNhbGxlZS0+dm0oKSwgSlNCb3VuZEZ1bmN0aW9uOjppbmZvKCkpKQor
ICAgICAgICBpZiAoY2FsbGVlICYmIGNhbGxlZS0+aW5oZXJpdHM8SlNCb3VuZEZ1bmN0aW9uPigq
Y2FsbGVlLT52bSgpKSkKICAgICAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkNvbnRpbnVl
OwogCiAgICAgICAgIGlmICghbV9oYXNGb3VuZEZyYW1lICYmIChjYWxsZWUgIT0gbV90YXJnZXRD
YWxsZWUpKQpAQCAtMzUzLDcgKzM1Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmNh
bGxlckdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1CiAgICAg
SlNWYWx1ZSBjYWxsZXIgPSByZXRyaWV2ZUNhbGxlckZ1bmN0aW9uKGV4ZWMsIHRoaXNPYmopOwog
CiAgICAgLy8gU2VlIEVTNS4xIDE1LjMuNS40IC0gRnVuY3Rpb24uY2FsbGVyIG1heSBub3QgYmUg
dXNlZCB0byByZXRyaWV2ZSBhIHN0cmljdCBjYWxsZXIuCi0gICAgaWYgKCFjYWxsZXIuaXNPYmpl
Y3QoKSB8fCAhYXNPYmplY3QoY2FsbGVyKS0+aW5oZXJpdHModm0sIEpTRnVuY3Rpb246OmluZm8o
KSkpIHsKKyAgICBpZiAoIWNhbGxlci5pc09iamVjdCgpIHx8ICFhc09iamVjdChjYWxsZXIpLT5p
bmhlcml0czxKU0Z1bmN0aW9uPih2bSkpIHsKICAgICAgICAgLy8gSXQgaXNuJ3QgYSBKU0Z1bmN0
aW9uLCBidXQgaWYgaXQgaXMgYSBKU0NhbGxlZSBmcm9tIGEgcHJvZ3JhbSBvciBldmFsIGNhbGwg
b3IgYW4gaW50ZXJuYWwgY29uc3RydWN0b3IsIHJldHVybiBudWxsLgogICAgICAgICBpZiAoanNE
eW5hbWljQ2FzdDxKU0NhbGxlZSo+KHZtLCBjYWxsZXIpIHx8IGpzRHluYW1pY0Nhc3Q8SW50ZXJu
YWxGdW5jdGlvbio+KHZtLCBjYWxsZXIpKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bGwoKSk7CkBAIC00NTEsNyArNDUxLDcgQEAgdm9pZCBKU0Z1bmN0aW9uOjpnZXRP
d25Ob25JbmRleFByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVj
LAogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKHRoaXNPYmplY3QtPmlzQnVpbHRp
bkZ1bmN0aW9uKCkgJiYgIXRoaXNPYmplY3QtPmhhc1JlaWZpZWRMZW5ndGgoKSkKICAgICAgICAg
ICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZCh2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpOwotICAg
ICAgICAgICAgaWYgKCh0aGlzT2JqZWN0LT5pc0J1aWx0aW5GdW5jdGlvbigpIHx8IHRoaXNPYmpl
Y3QtPmluaGVyaXRzKHZtLCBKU0JvdW5kRnVuY3Rpb246OmluZm8oKSkpICYmICF0aGlzT2JqZWN0
LT5oYXNSZWlmaWVkTmFtZSgpKQorICAgICAgICAgICAgaWYgKCh0aGlzT2JqZWN0LT5pc0J1aWx0
aW5GdW5jdGlvbigpIHx8IHRoaXNPYmplY3QtPmluaGVyaXRzPEpTQm91bmRGdW5jdGlvbj4odm0p
KSAmJiAhdGhpc09iamVjdC0+aGFzUmVpZmllZE5hbWUoKSkKICAgICAgICAgICAgICAgICBwcm9w
ZXJ0eU5hbWVzLmFkZCh2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lKTsKICAgICAgICAgfQogICAgIH0K
QEAgLTc1Miw3ICs3NTIsNyBAQCBKU0Z1bmN0aW9uOjpQcm9wZXJ0eVN0YXR1cyBKU0Z1bmN0aW9u
OjpyZWlmeUxhenlCb3VuZE5hbWVJZk5lZWRlZChWTSYgdm0sIEV4ZWNTdAogCiAgICAgaWYgKGlz
QnVpbHRpbkZ1bmN0aW9uKCkpCiAgICAgICAgIHJlaWZ5TmFtZSh2bSwgZXhlYyk7Ci0gICAgZWxz
ZSBpZiAodGhpcy0+aW5oZXJpdHModm0sIEpTQm91bmRGdW5jdGlvbjo6aW5mbygpKSkgeworICAg
IGVsc2UgaWYgKHRoaXMtPmluaGVyaXRzPEpTQm91bmRGdW5jdGlvbj4odm0pKSB7CiAgICAgICAg
IEZ1bmN0aW9uUmFyZURhdGEqIHJhcmVEYXRhID0gdGhpcy0+cmFyZURhdGEodm0pOwogICAgICAg
ICBTdHJpbmcgbmFtZSA9IG1ha2VTdHJpbmcoImJvdW5kICIsIHN0YXRpY19jYXN0PE5hdGl2ZUV4
ZWN1dGFibGUqPihtX2V4ZWN1dGFibGUuZ2V0KCkpLT5uYW1lKCkpOwogICAgICAgICB1bnNpZ25l
ZCBpbml0aWFsQXR0cmlidXRlcyA9IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA0NjFlMDAzZGZhNTA0ZmZlNTEyZTg0NGRiODg2
NDEyZDUyZTIwMTAyLi4wMWUxYmNiZTJkYWZlNDAyNjMzZjM3OWE4ZjYwYzNjNzY1ZGQ1ODljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
CkBAIC0zMjcsNyArMzI3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZW5xdWV1ZUpvYihFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBKU1ZhbHVlIGpvYiA9IGV4ZWMtPmFy
Z3VtZW50KDApOwogICAgIEpTVmFsdWUgYXJndW1lbnRzID0gZXhlYy0+YXJndW1lbnQoMSk7Ci0g
ICAgQVNTRVJUKGFyZ3VtZW50cy5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKSk7CisgICAg
QVNTRVJUKGFyZ3VtZW50cy5pbmhlcml0czxKU0FycmF5Pih2bSkpOwogCiAgICAgZ2xvYmFsT2Jq
ZWN0LT5xdWV1ZU1pY3JvdGFzayhjcmVhdGVKU0pvYih2bSwgam9iLCBqc0Nhc3Q8SlNBcnJheSo+
KGFyZ3VtZW50cykpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKaW5kZXggY2VmZTZkNTVhNzI5ZGNmOTQxYjI5ZWY5ZDZiMGEyMzcxMDRkZDk0
OS4uNmFiNzAyMzNmNjZiNWUzZWQ1MmQzMWE4NzZkMmJlZjdhOGNjOWUzNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC05MjUsMTQgKzky
NSw2IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFibGVP
YmplY3QgewogICAgIFJlZlB0cjxUaHJlYWRMb2NhbENhY2hlPiBtX3RocmVhZExvY2FsQ2FjaGU7
CiB9OwogCi1KU0dsb2JhbE9iamVjdCogYXNHbG9iYWxPYmplY3QoSlNWYWx1ZSk7Ci0KLWlubGlu
ZSBKU0dsb2JhbE9iamVjdCogYXNHbG9iYWxPYmplY3QoSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBB
U1NFUlQoYXNPYmplY3QodmFsdWUpLT5pc0dsb2JhbE9iamVjdCgpKTsKLSAgICByZXR1cm4ganND
YXN0PEpTR2xvYmFsT2JqZWN0Kj4oYXNPYmplY3QodmFsdWUpKTsKLX0KLQogaW5saW5lIEpTQXJy
YXkqIGNvbnN0cnVjdEVtcHR5QXJyYXkoRXhlY1N0YXRlKiBleGVjLCBBcnJheUFsbG9jYXRpb25Q
cm9maWxlKiBwcm9maWxlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBp
bml0aWFsTGVuZ3RoID0gMCwgSlNWYWx1ZSBuZXdUYXJnZXQgPSBKU1ZhbHVlKCkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAppbmRleCAx
NzliYTc2ZmUyZGVjZGU0OTgyZjliYjA1MDk4Yjg3ZTg1ODFjZTk4Li40NDljYzllOGQzMzRlZTVm
OWMwZGQ0Y2VjOThkZDdmNzE5ZDMxM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcApAQCAtNDcs
NyArNDcsNyBAQCBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkKiBKU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKUwogCiAgICAgSlNWYWx1ZSBwcm9taXNl
ID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnBy
b21pc2VQcml2YXRlTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxs
cHRyKTsKLSAgICBBU1NFUlQocHJvbWlzZS5pbmhlcml0cyh2bSwgSlNJbnRlcm5hbFByb21pc2U6
OmluZm8oKSkpOworICAgIEFTU0VSVChwcm9taXNlLmluaGVyaXRzPEpTSW50ZXJuYWxQcm9taXNl
Pih2bSkpOwogICAgIEpTVmFsdWUgcmVzb2x2ZSA9IGRlZmVycmVkLmdldChleGVjLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5yZXNvbHZlUHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgSlNWYWx1ZSByZWplY3QgPSBk
ZWZlcnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVqZWN0
UHJpdmF0ZU5hbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0xleGljYWxFbnZpcm9ubWVudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNMZXhpY2FsRW52aXJvbm1lbnQuaAppbmRleCBlZTAxNWUyNjk0YjVkNmZkMDdhN2U5OWI0NDIw
ODUyNzIzNDYxOGVjLi5mZDNlNGUwZTVlMjEyYjc2NmFjYmYwMTkwYmVmMGM3YmQ0ODhlZWM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9u
bWVudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmly
b25tZW50LmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBpbmxpbmUgSlNMZXhpY2FsRW52aXJvbm1lbnQ6
OkpTTGV4aWNhbEVudmlyb25tZW50KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsCiAKIGlu
bGluZSBKU0xleGljYWxFbnZpcm9ubWVudCogYXNBY3RpdmF0aW9uKEpTVmFsdWUgdmFsdWUpCiB7
Ci0gICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9iamVjdCgp
LT52bSgpLCBKU0xleGljYWxFbnZpcm9ubWVudDo6aW5mbygpKSk7CisgICAgQVNTRVJUKGFzT2Jq
ZWN0KHZhbHVlKS0+aW5oZXJpdHM8SlNMZXhpY2FsRW52aXJvbm1lbnQ+KCp2YWx1ZS5nZXRPYmpl
Y3QoKS0+dm0oKSkpOwogICAgIHJldHVybiBqc0Nhc3Q8SlNMZXhpY2FsRW52aXJvbm1lbnQqPihh
c09iamVjdCh2YWx1ZSkpOwogfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09OT2JqZWN0LmNwcAppbmRleCBlY2RiZDAzN2IyMThmZjkzMjY3ODFlYjUwMmQwMGY1ZGQw
M2Q5ZGQ1Li5iMzhkODhjN2FmMjc5NWM3ZWZiNmM4NmJhYjZiMjkxZDk5ZDVlMWVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtMTQzLDExICsx
NDMsMTEgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIHVud3JhcEJveGVkUHJpbWl0aXZlKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAg
ICAgICAgIHJldHVybiB2YWx1ZTsKICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFs
dWUpOwotICAgIGlmIChvYmplY3QtPmluaGVyaXRzKHZtLCBOdW1iZXJPYmplY3Q6OmluZm8oKSkp
CisgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8TnVtYmVyT2JqZWN0Pih2bSkpCiAgICAgICAgIHJl
dHVybiBqc051bWJlcihvYmplY3QtPnRvTnVtYmVyKGV4ZWMpKTsKLSAgICBpZiAob2JqZWN0LT5p
bmhlcml0cyh2bSwgU3RyaW5nT2JqZWN0OjppbmZvKCkpKQorICAgIGlmIChvYmplY3QtPmluaGVy
aXRzPFN0cmluZ09iamVjdD4odm0pKQogICAgICAgICByZXR1cm4gb2JqZWN0LT50b1N0cmluZyhl
eGVjKTsKLSAgICBpZiAob2JqZWN0LT5pbmhlcml0cyh2bSwgQm9vbGVhbk9iamVjdDo6aW5mbygp
KSkKKyAgICBpZiAob2JqZWN0LT5pbmhlcml0czxCb29sZWFuT2JqZWN0Pih2bSkpCiAgICAgICAg
IHJldHVybiBvYmplY3QtPnRvUHJpbWl0aXZlKGV4ZWMpOwogCiAgICAgLy8gRG8gbm90IHVud3Jh
cCBTeW1ib2xPYmplY3QgdG8gU3ltYm9sLiBJdCBpcyBub3QgcGVyZm9ybWVkIGluIHRoZSBzcGVj
LgpAQCAtMjM1LDcgKzIzNSw3IEBAIFN0cmluZ2lmaWVyOjpTdHJpbmdpZmllcihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgcmVwbGFjZXIsIEpTVmFsdWUgc3BhY2UpCiAgICAgICAgIHJldHVybjsK
IAogICAgIEpTT2JqZWN0KiByZXBsYWNlck9iamVjdCA9IGFzT2JqZWN0KG1fcmVwbGFjZXIpOwot
ICAgIGlmIChyZXBsYWNlck9iamVjdC0+aW5oZXJpdHModm0sIEpTQXJyYXk6OmluZm8oKSkpIHsK
KyAgICBpZiAocmVwbGFjZXJPYmplY3QtPmluaGVyaXRzPEpTQXJyYXk+KHZtKSkgewogICAgICAg
ICBtX3VzaW5nQXJyYXlSZXBsYWNlciA9IHRydWU7CiAgICAgICAgIEpTQXJyYXkqIGFycmF5ID0g
anNDYXN0PEpTQXJyYXkqPihyZXBsYWNlck9iamVjdCk7CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0
aCA9IGFycmF5LT5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoKS50b1VJbnQzMihl
eGVjKTsKQEAgLTI0Niw4ICsyNDYsOCBAQCBTdHJpbmdpZmllcjo6U3RyaW5naWZpZXIoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHJlcGxhY2VyLCBKU1ZhbHVlIHNwYWNlKQogICAgICAgICAgICAg
aWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkKICAgICAgICAgICAgICAgICBicmVhazsK
IAotICAgICAgICAgICAgaWYgKG5hbWUuaXNPYmplY3QoKSkgewotICAgICAgICAgICAgICAgIGlm
ICghYXNPYmplY3QobmFtZSktPmluaGVyaXRzKHZtLCBOdW1iZXJPYmplY3Q6OmluZm8oKSkgJiYg
IWFzT2JqZWN0KG5hbWUpLT5pbmhlcml0cyh2bSwgU3RyaW5nT2JqZWN0OjppbmZvKCkpKQorICAg
ICAgICAgICAgaWYgKGF1dG8qIG5hbWVPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4o
dm0sIG5hbWUpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFuYW1lT2JqZWN0LT5pbmhlcml0czxO
dW1iZXJPYmplY3Q+KHZtKSAmJiAhbmFtZU9iamVjdC0+aW5oZXJpdHM8U3RyaW5nT2JqZWN0Pih2
bSkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfSBlbHNlIGlm
ICghbmFtZS5pc051bWJlcigpICYmICFuYW1lLmlzU3RyaW5nKCkpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7CkBAIC02NDksNyArNjQ5LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2Vy
Ojp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgIGFycmF5U3RhcnRTdGF0ZToK
ICAgICAgICAgICAgIGNhc2UgQXJyYXlTdGFydFN0YXRlOiB7CiAgICAgICAgICAgICAgICAgQVNT
RVJUKGluVmFsdWUuaXNPYmplY3QoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlzSlNBcnJh
eShhc09iamVjdChpblZhbHVlKSkgfHwgYXNPYmplY3QoaW5WYWx1ZSktPmluaGVyaXRzKHZtLCBK
U0FycmF5OjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoYXNPYmplY3QoaW5WYWx1
ZSktPmluaGVyaXRzPEpTQXJyYXk+KHZtKSk7CiAgICAgICAgICAgICAgICAgaWYgKG1hcmtlZFN0
YWNrLnNpemUoKSA+IG1heGltdW1GaWx0ZXJSZWN1cnNpb24pCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMsIHNjb3BlKTsKIApAQCAtNzA0
LDcgKzcwNCw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVu
ZmlsdGVyZWQpCiAgICAgICAgICAgICBvYmplY3RTdGFydFN0YXRlOgogICAgICAgICAgICAgY2Fz
ZSBPYmplY3RTdGFydFN0YXRlOiB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGluVmFsdWUuaXNP
YmplY3QoKSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCFpc0pTQXJyYXkoYXNPYmplY3QoaW5W
YWx1ZSkpICYmICFhc09iamVjdChpblZhbHVlKS0+aW5oZXJpdHModm0sIEpTQXJyYXk6OmluZm8o
KSkpOworICAgICAgICAgICAgICAgIEFTU0VSVCghYXNPYmplY3QoaW5WYWx1ZSktPmluaGVyaXRz
PEpTQXJyYXk+KHZtKSk7CiAgICAgICAgICAgICAgICAgaWYgKG1hcmtlZFN0YWNrLnNpemUoKSA+
IG1heGltdW1GaWx0ZXJSZWN1cnNpb24pCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJv
d1N0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMsIHNjb3BlKTsKIApAQCAtNzY1LDcgKzc2NSw3IEBA
IE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoaW5WYWx1ZSk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGlzSlNBcnJheShvYmplY3QpIHx8IG9iamVjdC0+aW5oZXJpdHModm0sIEpTQXJyYXk6
OmluZm8oKSkpCisgICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNBcnJheT4o
dm0pKQogICAgICAgICAgICAgICAgICAgICBnb3RvIGFycmF5U3RhcnRTdGF0ZTsKICAgICAgICAg
ICAgICAgICBnb3RvIG9iamVjdFN0YXJ0U3RhdGU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCmluZGV4IGY5NmZlYTE4NmU1YjVkNGM1MjI3
NzBiZjRjZGM3OWE5ZDczZmUxZjkuLjNlNjg4N2U1OTVjODc1NjE5N2NkNjBmZGQyY2Y0MjFkNjlh
YzY1OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNwcApA
QCAtMTA5LDcgKzEwOSw3IEBAIEpTUHJvbWlzZSogSlNQcm9taXNlOjpyZXNvbHZlKEpTR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiAgICAgQVNTRVJUKCFhcmd1bWVu
dHMuaGFzT3ZlcmZsb3dlZCgpKTsKICAgICBhdXRvIHJlc3VsdCA9IGNhbGwoZXhlYywgcHJvbWlz
ZVJlc29sdmVGdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBnbG9iYWxPYmplY3QucHJvbWlz
ZUNvbnN0cnVjdG9yKCksIGFyZ3VtZW50cyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgbnVsbHB0cik7Ci0gICAgQVNTRVJUKHJlc3VsdC5pbmhlcml0cyh2bSwgSlNQcm9taXNlOjpp
bmZvKCkpKTsKKyAgICBBU1NFUlQocmVzdWx0LmluaGVyaXRzPEpTUHJvbWlzZT4odm0pKTsKICAg
ICByZXR1cm4ganNDYXN0PEpTUHJvbWlzZSo+KHJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcAppbmRleCBiYWE5
OTI0OGYwZDhiZWU4ZDc4Zjc1YTU1Yzc3NmZmOGU5Zjc1YWZkLi5kN2Y3ZDc4OWZlMTQzZjcwOTYy
MWUzYzRlYWI5YzI1OGE3NTM0N2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb21pc2VEZWZlcnJlZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9taXNlRGVmZXJyZWQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIEpTUHJvbWlz
ZURlZmVycmVkKiBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsCiAKICAgICBKU1ZhbHVlIHByb21pc2UgPSBkZWZlcnJlZC5nZXQoZXhl
Yywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVByaXZhdGVOYW1lKCkp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIEFTU0VSVChw
cm9taXNlLmluaGVyaXRzKHZtLCBKU1Byb21pc2U6OmluZm8oKSkpOworICAgIEFTU0VSVChwcm9t
aXNlLmluaGVyaXRzPEpTUHJvbWlzZT4odm0pKTsKICAgICBKU1ZhbHVlIHJlc29sdmUgPSBkZWZl
cnJlZC5nZXQoZXhlYywgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVzb2x2ZVBy
aXZhdGVOYW1lKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwog
ICAgIEpTVmFsdWUgcmVqZWN0ID0gZGVmZXJyZWQuZ2V0KGV4ZWMsIHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnJlamVjdFByaXZhdGVOYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGUuaAppbmRleCBiM2Y3Y2QyOTgyMWY3OTBhNzVlMTVhZTQ1YTUzZGRlYzY4
NjE4OWM0Li5jNjU1NTg1NmFiNTZjYTU1MjU5NzRkZmRjNDY3NjNlMDVkZjhlMGU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaApAQCAtMTExLDEyICsxMTEsMTQgQEAgZW51
bSBKU1R5cGUgOiB1aW50OF90IHsKICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uVHlwZSwKICAgICBX
ZWJBc3NlbWJseVRvSlNDYWxsZWVUeXBlLAogCi0gICAgTGFzdEpTQ09iamVjdFR5cGUgPSBXZWJB
c3NlbWJseVRvSlNDYWxsZWVUeXBlLAorICAgIExhc3RKU0NPYmplY3RUeXBlID0gV2ViQXNzZW1i
bHlUb0pTQ2FsbGVlVHlwZSwgLy8gVGhpcyBpcyB0aGUgbGFzdCAiSlNDIiBPYmplY3QgdHlwZS4g
QWZ0ZXIgdGhpcywgd2UgaGF2ZSBlbWJlZGRlcidzIChlLmcuLCBXZWJDb3JlKSBleHRlbmRlZCBv
YmplY3QgdHlwZXMuCiAgICAgTWF4SlNUeXBlID0gMGIxMTExMTExMSwKIH07CiAKIHN0YXRpYyBj
b25zdCB1aW50MzJfdCBGaXJzdFR5cGVkQXJyYXlUeXBlID0gSW50OEFycmF5VHlwZTsKIHN0YXRp
YyBjb25zdCB1aW50MzJfdCBMYXN0VHlwZWRBcnJheVR5cGUgPSBEYXRhVmlld1R5cGU7CitzdGF0
aWMgY29uc3QgdWludDMyX3QgRmlyc3RPYmplY3RUeXBlID0gT2JqZWN0VHlwZTsKK3N0YXRpYyBj
b25zdCB1aW50MzJfdCBMYXN0T2JqZWN0VHlwZSA9IE1heEpTVHlwZTsKIHN0YXRpYyBjb25zdGV4
cHIgdWludDMyX3QgTnVtYmVyT2ZUeXBlZEFycmF5VHlwZXMgPSBMYXN0VHlwZWRBcnJheVR5cGUg
LSBGaXJzdFR5cGVkQXJyYXlUeXBlICsgMTsKIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgTnVt
YmVyT2ZUeXBlZEFycmF5VHlwZXNFeGNsdWRpbmdEYXRhVmlldyA9IE51bWJlck9mVHlwZWRBcnJh
eVR5cGVzIC0gMTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJveHlPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0
LmgKaW5kZXggMmM5ODE2MzUxOWIzNjEwMzhiZTE0MjNhNWZhZDc5MTdiNjYyODU5Yy4uZWJiMWZh
MjNjYzRhNzM4ZmM0YWQ4NGRjMDQwNTBjMzNhMmY0MDYzYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5oCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCi1jbGFzcyBQcm94eU9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsK
K2NsYXNzIFByb3h5T2JqZWN0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMGY1
MmFhMjRhYjNlNGZmYWVmYTUxNTNjN2JmOWYzMmE2MGM4NzBmMC4uNTA2ODU3Mjg5MTk1YTEyMWM5
YWQxNjYxNzQ2YjdiODRiNDUwYzYwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3RSZWdFeHAoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBjb25zdCBBCiAgICAgSlNWYWx1ZSBwYXR0ZXJuQXJnID0gYXJncy5hdCgwKTsK
ICAgICBKU1ZhbHVlIGZsYWdzQXJnID0gYXJncy5hdCgxKTsKIAotICAgIGJvb2wgaXNQYXR0ZXJu
UmVnRXhwID0gcGF0dGVybkFyZy5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpOwor
ICAgIGJvb2wgaXNQYXR0ZXJuUmVnRXhwID0gcGF0dGVybkFyZy5pbmhlcml0czxSZWdFeHBPYmpl
Y3Q+KHZtKTsKICAgICBib29sIGNvbnN0cnVjdEFzUmVnZXhwID0gaXNSZWdFeHAodm0sIGV4ZWMs
IHBhdHRlcm5BcmcpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
aAppbmRleCBkYTc2MGVjMDRmMGE3ODI3YWE2NTdjY2RiNjc5MjhjMWQ2ZWUwYTViLi4wMTY4ZTU4
NTk4MGZhZDdkMTlkYWI0YzIwNWQ3MTliZmIxOGI4ZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKQEAgLTg2LDcgKzg2LDcgQEAg
SlNPYmplY3QqIGNvbnN0cnVjdFJlZ0V4cChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIGNv
bnN0IEFyZ0xpc3QmLCBKU09iamVjdCoKIAogaW5saW5lIFJlZ0V4cENvbnN0cnVjdG9yKiBhc1Jl
Z0V4cENvbnN0cnVjdG9yKEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgQVNTRVJUKGFzT2JqZWN0KHZh
bHVlKS0+aW5oZXJpdHMoKnZhbHVlLmdldE9iamVjdCgpLT52bSgpLCBSZWdFeHBDb25zdHJ1Y3Rv
cjo6aW5mbygpKSk7CisgICAgQVNTRVJUKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHM8UmVnRXhw
Q29uc3RydWN0b3I+KCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSkpOwogICAgIHJldHVybiBzdGF0
aWNfY2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KGFzT2JqZWN0KHZhbHVlKSk7CiB9CiAKQEAgLTE0
MCw3ICsxNDAsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgaXNSZWdFeHAoVk0mIHZtLCBFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiAgICAgaWYgKCFtYXRjaFZhbHVlLmlzVW5kZWZpbmVk
KCkpCiAgICAgICAgIHJldHVybiBtYXRjaFZhbHVlLnRvQm9vbGVhbihleGVjKTsKIAotICAgIHJl
dHVybiBvYmplY3QtPmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSk7CisgICAgcmV0
dXJuIG9iamVjdC0+aW5oZXJpdHM8UmVnRXhwT2JqZWN0Pih2bSk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZXNTcGVjUmVnRXhwQ3JlYXRlKEV4ZWNTdGF0ZSopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggNDI1MjQ5
YzIzMDRmOTM2OGQ3YjBhZGNjOWYyN2MyMmVjNWUwMzhmMi4uOWE0NjYyOTk2ZmM4YWUxZjZlYjRh
YzU1OWJhMDllMmRkNTI5ZmJiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBPYmplY3QuY3BwCkBAIC00OSw2ICs0OSw3IEBAIHZvaWQgUmVnRXhwT2JqZWN0Ojpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwog
ICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CisgICAgQVNTRVJUKHR5cGUoKSA9PSBS
ZWdFeHBPYmplY3RUeXBlKTsKIH0KIAogdm9pZCBSZWdFeHBPYmplY3Q6OnZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKQEAgLTY0LDcgKzY1LDcgQEAgYm9v
bCBSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnQKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGlm
IChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+bGFzdEluZGV4KSB7Ci0gICAgICAg
IFJlZ0V4cE9iamVjdCogcmVnRXhwID0gYXNSZWdFeHBPYmplY3Qob2JqZWN0KTsKKyAgICAgICAg
UmVnRXhwT2JqZWN0KiByZWdFeHAgPSBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4ob2JqZWN0KTsKICAg
ICAgICAgdW5zaWduZWQgYXR0cmlidXRlcyA9IHJlZ0V4cC0+bV9sYXN0SW5kZXhJc1dyaXRhYmxl
ID8gUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0gOiBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seTsKICAgICAgICAgc2xvdC5z
ZXRWYWx1ZShyZWdFeHAsIGF0dHJpYnV0ZXMsIHJlZ0V4cC0+Z2V0TGFzdEluZGV4KCkpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExMCw3ICsxMTEsNyBAQCBib29sIFJlZ0V4cE9iamVjdDo6
ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlm
IChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+bGFzdEluZGV4KSB7Ci0gICAgICAg
IFJlZ0V4cE9iamVjdCogcmVnRXhwID0gYXNSZWdFeHBPYmplY3Qob2JqZWN0KTsKKyAgICAgICAg
UmVnRXhwT2JqZWN0KiByZWdFeHAgPSBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4ob2JqZWN0KTsKICAg
ICAgICAgaWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlUHJlc2VudCgpICYmIGRlc2NyaXB0b3Iu
Y29uZmlndXJhYmxlKCkpCiAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGV4ZWMsIHNjb3Bl
LCBzaG91bGRUaHJvdywgQVNDSUlMaXRlcmFsKFVuY29uZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VD
b25maWd1cmFiaWxpdHlFcnJvcikpOwogICAgICAgICBpZiAoZGVzY3JpcHRvci5lbnVtZXJhYmxl
UHJlc2VudCgpICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZSgpKQpAQCAtMTM5LDEyICsxNDAsMTIg
QEAgYm9vbCBSZWdFeHBPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3Qs
IEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHkKIAogc3RhdGljIGJvb2wgcmVnRXhwT2JqZWN0U2V0
TGFzdEluZGV4U3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gYXNSZWdFeHBPYmplY3QoSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5zZXRMYXN0SW5kZXgoZXhlYywgSlNWYWx1ZTo6ZGVj
b2RlKHZhbHVlKSwgdHJ1ZSk7CisgICAgcmV0dXJuIGpzQ2FzdDxSZWdFeHBPYmplY3QqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNv
ZGUodmFsdWUpLCB0cnVlKTsKIH0KIAogc3RhdGljIGJvb2wgcmVnRXhwT2JqZWN0U2V0TGFzdElu
ZGV4Tm9uU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gYXNSZWdFeHBPYmplY3QoSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5zZXRMYXN0SW5kZXgoZXhlYywgSlNWYWx1ZTo6ZGVjb2Rl
KHZhbHVlKSwgZmFsc2UpOworICAgIHJldHVybiBqc0Nhc3Q8UmVnRXhwT2JqZWN0Kj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5zZXRMYXN0SW5kZXgoZXhlYywgSlNWYWx1ZTo6ZGVjb2Rl
KHZhbHVlKSwgZmFsc2UpOwogfQogCiBib29sIFJlZ0V4cE9iamVjdDo6cHV0KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC0xNTYsOCArMTU3LDggQEAgYm9vbCBSZWdF
eHBPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSwKICAgICAgICAgcmV0dXJuIG9yZGluYXJ5U2V0U2xvdyhleGVjLCB0aGlz
T2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90LnRoaXNWYWx1ZSgpLCBzbG90LmlzU3Ry
aWN0TW9kZSgpKTsKIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+
bGFzdEluZGV4KSB7Ci0gICAgICAgIGJvb2wgcmVzdWx0ID0gYXNSZWdFeHBPYmplY3QoY2VsbCkt
PnNldExhc3RJbmRleChleGVjLCB2YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSk7Ci0gICAgICAg
IHNsb3Quc2V0Q3VzdG9tVmFsdWUoYXNSZWdFeHBPYmplY3QoY2VsbCksIHNsb3QuaXNTdHJpY3RN
b2RlKCkKKyAgICAgICAgYm9vbCByZXN1bHQgPSB0aGlzT2JqZWN0LT5zZXRMYXN0SW5kZXgoZXhl
YywgdmFsdWUsIHNsb3QuaXNTdHJpY3RNb2RlKCkpOworICAgICAgICBzbG90LnNldEN1c3RvbVZh
bHVlKHRoaXNPYmplY3QsIHNsb3QuaXNTdHJpY3RNb2RlKCkKICAgICAgICAgICAgID8gcmVnRXhw
T2JqZWN0U2V0TGFzdEluZGV4U3RyaWN0CiAgICAgICAgICAgICA6IHJlZ0V4cE9iamVjdFNldExh
c3RJbmRleE5vblN0cmljdCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCmluZGV4IGRhNzkwOTA1YzRlNWVmMWQ2
NDE2NWMwYTk0Y2Q2N2Y4MDZlYzFjNGUuLjRmN2FiNTNkMzdiZTU2OTY2MzlmOWJhYWY4ZWE0NjE2
NDc1MzNjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5oCkBAIC0yNyw5ICsyNyw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogICAgIAotY2xhc3MgUmVn
RXhwT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgeworY2xhc3MgUmVnRXhwT2JqZWN0
IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgotICAgIHR5cGVkZWYg
SlNOb25GaW5hbE9iamVjdCBCYXNlOworICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0
OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lczsKIAogICAgIHN0YXRpYyBSZWdFeHBPYmplY3QqIGNyZWF0ZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBSZWdFeHAqIHJlZ0V4cCkKQEAgLTEzOCwxMiArMTM4LDQgQEAg
Y2xhc3MgUmVnRXhwT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHVpbnQ4
X3QgbV9sYXN0SW5kZXhJc1dyaXRhYmxlOwogfTsKIAotUmVnRXhwT2JqZWN0KiBhc1JlZ0V4cE9i
amVjdChKU1ZhbHVlKTsKLQotaW5saW5lIFJlZ0V4cE9iamVjdCogYXNSZWdFeHBPYmplY3QoSlNW
YWx1ZSB2YWx1ZSkKLXsKLSAgICBBU1NFUlQoYXNPYmplY3QodmFsdWUpLT5pbmhlcml0cygqdmFs
dWUuZ2V0T2JqZWN0KCktPnZtKCksIFJlZ0V4cE9iamVjdDo6aW5mbygpKSk7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PFJlZ0V4cE9iamVjdCo+KGFzT2JqZWN0KHZhbHVlKSk7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cFByb3RvdHlwZS5jcHAKaW5kZXggMzc0MDJhMDIzNjA4ZTVjZTZhMGNmNmQyNDBkMjM5MzA0ODYz
ZDUyZC4uMzdhOWRlYzE3NzJhZTY3NzBhMGMwOGFmNmM1ZDdiMTliNzYzZDVhNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC0x
MDMsMTQgKzEwMywxNSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
RnVuY1Rlc3RGYXN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1
ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8o
KSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwg
dGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKICAgICBKU1N0cmluZyogc3RyaW5nID0gZXhl
Yy0+YXJndW1lbnQoMCkudG9TdHJpbmdPck51bGwoZXhlYyk7CiAgICAgRVhDRVBUSU9OX0FTU0VS
VCghIXNjb3BlLmV4Y2VwdGlvbigpID09ICFzdHJpbmcpOwogICAgIGlmICghc3RyaW5nKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIHNjb3BlLnJl
bGVhc2UoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc1JlZ0V4cE9i
amVjdCh0aGlzVmFsdWUpLT50ZXN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwg
c3RyaW5nKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+
dGVzdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHN0cmluZykpKTsKIH0KIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNFeGVjKEV4ZWNTdGF0
ZSogZXhlYykKQEAgLTExOSwxOSArMTIwLDIwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgcmVnRXhwUHJvdG9GdW5jRXhlYyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2Jq
ZWN0OjppbmZvKCkpKQorICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2Jq
ZWN0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgIkJ1aWx0aW4gUmVnRXhwIGV4
ZWMgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEgUmVnRXhwIG9iamVjdCIpOwogICAgIEpTU3RyaW5n
KiBzdHJpbmcgPSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZ09yTnVsbChleGVjKTsKICAgICBF
WENFUFRJT05fQVNTRVJUKCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gIXN0cmluZyk7CiAgICAgaWYg
KCFzdHJpbmcpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAgICAgc2NvcGUucmVsZWFzZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdF
eHBPYmplY3QodGhpc1ZhbHVlKS0+ZXhlYyhleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCksIHN0cmluZykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVnZXhwLT5leGVjKGV4
ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgc3RyaW5nKSk7CiB9CiAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0KEV4ZWNTdGF0ZSog
ZXhlYykKIHsKLSAgICBSZWdFeHBPYmplY3QqIHRoaXNPYmplY3QgPSBhc1JlZ0V4cE9iamVjdChl
eGVjLT50aGlzVmFsdWUoKSk7CisgICAgUmVnRXhwT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0
PFJlZ0V4cE9iamVjdCo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKICAgICBKU1N0cmluZyogc3RyaW5n
ID0ganNDYXN0PEpTU3RyaW5nKj4oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlm
ICghdGhpc09iamVjdC0+cmVnRXhwKCktPmdsb2JhbCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHRoaXNPYmplY3QtPmV4ZWMoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLCBzdHJpbmcpKTsKQEAgLTE0NCwxNyArMTQ2LDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jQ29tcGlsZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwg
UmVnRXhwT2JqZWN0OjppbmZvKCkpKQorICAgIGF1dG8qIHRoaXNSZWdFeHAgPSBqc0R5bmFtaWND
YXN0PFJlZ0V4cE9iamVjdCo+KHZtLCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghdGhp
c1JlZ0V4cCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
IAogICAgIFJlZ0V4cCogcmVnRXhwOwogICAgIEpTVmFsdWUgYXJnMCA9IGV4ZWMtPmFyZ3VtZW50
KDApOwogICAgIEpTVmFsdWUgYXJnMSA9IGV4ZWMtPmFyZ3VtZW50KDEpOwogICAgIAotICAgIGlm
IChhcmcwLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpIHsKKyAgICBpZiAoYXV0
byogcmVnRXhwT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgYXJnMCkp
IHsKICAgICAgICAgaWYgKCFhcmcxLmlzVW5kZWZpbmVkKCkpCiAgICAgICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJDYW5ub3Qgc3VwcGx5
IGZsYWdzIHdoZW4gY29uc3RydWN0aW5nIG9uZSBSZWdFeHAgZnJvbSBhbm90aGVyLiIpKTsKLSAg
ICAgICAgcmVnRXhwID0gYXNSZWdFeHBPYmplY3QoYXJnMCktPnJlZ0V4cCgpOworICAgICAgICBy
ZWdFeHAgPSByZWdFeHBPYmplY3QtPnJlZ0V4cCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFN0
cmluZyBwYXR0ZXJuID0gYXJnMC5pc1VuZGVmaW5lZCgpID8gZW1wdHlTdHJpbmcoKSA6IGFyZzAu
dG9XVEZTdHJpbmcoZXhlYyk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOwpAQCAtMTcyLDEwICsxNzUsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNDb21waWxlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBp
ZiAoIXJlZ0V4cC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMs
IHNjb3BlLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCByZWdFeHAtPmVycm9yTWVzc2FnZSgpKSk7
CiAKLSAgICBhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5zZXRSZWdFeHAodm0sIHJlZ0V4cCk7
CisgICAgdGhpc1JlZ0V4cC0+c2V0UmVnRXhwKHZtLCByZWdFeHApOwogICAgIHNjb3BlLnJlbGVh
c2UoKTsKLSAgICBhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5zZXRMYXN0SW5kZXgoZXhlYywg
MCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpOworICAgIHRoaXNSZWdF
eHAtPnNldExhc3RJbmRleChleGVjLCAwKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRo
aXNSZWdFeHApOwogfQogCiB0eXBlZGVmIHN0ZDo6YXJyYXk8Y2hhciwgNiArIDE+IEZsYWdzU3Ry
aW5nOyAvLyA2IGRpZmZlcmVudCBmbGFncyBhbmQgYSBudWxsIGNoYXJhY3RlciB0ZXJtaW5hdG9y
LgpAQCAtMjU1LDEzICsyNTgsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdF
eHBQcm90b0dldHRlckdsb2JhbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50
aGlzVmFsdWUoKTsKLSAgICBpZiAoVU5MSUtFTFkoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVn
RXhwT2JqZWN0OjppbmZvKCkpKSkgewotICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZt
LCBSZWdFeHBQcm90b3R5cGU6OmluZm8oKSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWlj
Q2FzdDxSZWdFeHBPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJl
Z2V4cCkpIHsKKyAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5cGU+
KHZtKSkKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVy
YWwoIlRoZSBSZWdFeHAucHJvdG90eXBlLmdsb2JhbCBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVk
IG9uIGEgUmVnRXhwIG9iamVjdCIpKTsKICAgICB9CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQm9vbGVhbihhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+Z2xvYmFs
KCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4
cCgpLT5nbG9iYWwoKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4
cFByb3RvR2V0dGVySWdub3JlQ2FzZShFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yNzAsMTMgKzI3NCwx
NCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVySWdub3Jl
Q2FzZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAg
ICBpZiAoVU5MSUtFTFkoIXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZv
KCkpKSkgewotICAgICAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBQcm90b3R5
cGU6OmluZm8oKSkpCisgICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmpl
Y3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpIHsKKyAgICAg
ICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5cGU+KHZtKSkKICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlRoZSBSZWdFeHAu
cHJvdG90eXBlLmlnbm9yZUNhc2UgZ2V0dGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbiBhIFJlZ0V4
cCBvYmplY3QiKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4oYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+cmVnRXhwKCktPmlnbm9yZUNhc2UoKSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPmln
bm9yZUNhc2UoKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFBy
b3RvR2V0dGVyTXVsdGlsaW5lKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTI4NSwxMyArMjkwLDE0IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJNdWx0aWxpbmUo
RXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7Ci0gICAgaWYg
KFVOTElLRUxZKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkp
IHsKLSAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwUHJvdG90eXBlOjpp
bmZvKCkpKQorICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4o
dm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHApKSB7CisgICAgICAgIGlm
ICh0aGlzVmFsdWUuaW5oZXJpdHM8UmVnRXhwUHJvdG90eXBlPih2bSkpCiAgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJUaGUgUmVnRXhwLnByb3Rv
dHlwZS5tdWx0aWxpbmUgZ2V0dGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbiBhIFJlZ0V4cCBvYmpl
Y3QiKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYXNS
ZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+cmVnRXhwKCktPm11bHRpbGluZSgpKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+bXVsdGlsaW5l
KCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRl
ckRvdEFsbChFeGVjU3RhdGUqIGV4ZWMpCkBAIC0zMDAsMTMgKzMwNiwxNCBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyRG90QWxsKEV4ZWNTdGF0ZSogZXhl
YykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgCiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoVU5MSUtFTFko
IXRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSkgewotICAgICAg
ICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBQcm90b3R5cGU6OmluZm8oKSkpCisg
ICAgYXV0byogcmVnZXhwID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgdGhpc1Zh
bHVlKTsKKyAgICBpZiAoVU5MSUtFTFkoIXJlZ2V4cCkpIHsKKyAgICAgICAgaWYgKHRoaXNWYWx1
ZS5pbmhlcml0czxSZWdFeHBQcm90b3R5cGU+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlRoZSBSZWdFeHAucHJvdG90eXBlLmRvdEFs
bCBnZXR0ZXIgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGEgUmVnRXhwIG9iamVjdCIpKTsKICAgICB9
CiAgICAgCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYXNSZWdFeHBPYmpl
Y3QodGhpc1ZhbHVlKS0+cmVnRXhwKCktPmRvdEFsbCgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+ZG90QWxsKCkpKTsKIH0KICAgICAK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJTdGlja3koRXhl
Y1N0YXRlKiBleGVjKQpAQCAtMzE1LDEzICszMjIsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclN0aWNreShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKLSAgICBpZiAoVU5MSUtFTFkoIXRoaXNWYWx1ZS5pbmhl
cml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKSkgewotICAgICAgICBpZiAodGhpc1ZhbHVl
LmluaGVyaXRzKHZtLCBSZWdFeHBQcm90b3R5cGU6OmluZm8oKSkpCisgICAgYXV0byogcmVnZXhw
ID0ganNEeW5hbWljQ2FzdDxSZWdFeHBPYmplY3QqPih2bSwgdGhpc1ZhbHVlKTsKKyAgICBpZiAo
VU5MSUtFTFkoIXJlZ2V4cCkpIHsKKyAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxSZWdF
eHBQcm90b3R5cGU+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3Bl
LCBBU0NJSUxpdGVyYWwoIlRoZSBSZWdFeHAucHJvdG90eXBlLnN0aWNreSBnZXR0ZXIgY2FuIG9u
bHkgYmUgY2FsbGVkIG9uIGEgUmVnRXhwIG9iamVjdCIpKTsKICAgICB9CiAgICAgCi0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYXNSZWdFeHBPYmplY3QodGhpc1ZhbHVlKS0+
cmVnRXhwKCktPnN0aWNreSgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4ocmVnZXhwLT5yZWdFeHAoKS0+c3RpY2t5KCkpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclVuaWNvZGUoRXhlY1N0YXRlKiBleGVjKQpAQCAt
MzMwLDEzICszMzgsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90
b0dldHRlclVuaWNvZGUoRXhlY1N0YXRlKiBleGVjKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7Ci0gICAgaWYgKFVOTElLRUxZKCF0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cE9i
amVjdDo6aW5mbygpKSkpIHsKLSAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUmVn
RXhwUHJvdG90eXBlOjppbmZvKCkpKQorICAgIGF1dG8qIHJlZ2V4cCA9IGpzRHluYW1pY0Nhc3Q8
UmVnRXhwT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKFVOTElLRUxZKCFyZWdleHAp
KSB7CisgICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8UmVnRXhwUHJvdG90eXBlPih2bSkp
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJU
aGUgUmVnRXhwLnByb3RvdHlwZS51bmljb2RlIGdldHRlciBjYW4gb25seSBiZSBjYWxsZWQgb24g
YSBSZWdFeHAgb2JqZWN0IikpOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQm9vbGVhbihhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+dW5pY29k
ZSgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdF
eHAoKS0+dW5pY29kZSgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVn
RXhwUHJvdG9HZXR0ZXJGbGFncyhFeGVjU3RhdGUqIGV4ZWMpCkBAIC00NjYsMTMgKzQ3NSwxNCBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyU291cmNlKEV4
ZWNTdGF0ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmIChV
TkxJS0VMWSghdGhpc1ZhbHVlLmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpKSB7
Ci0gICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFJlZ0V4cFByb3RvdHlwZTo6aW5m
bygpKSkKKyAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+KHZt
LCB0aGlzVmFsdWUpOworICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkgeworICAgICAgICBpZiAo
dGhpc1ZhbHVlLmluaGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4odm0pKQogICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoIig/OikiKSkp
OwogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlMaXRl
cmFsKCJUaGUgUmVnRXhwLnByb3RvdHlwZS5zb3VyY2UgZ2V0dGVyIGNhbiBvbmx5IGJlIGNhbGxl
ZCBvbiBhIFJlZ0V4cCBvYmplY3QiKSk7CiAgICAgfQogCi0gICAgU3RyaW5nIHBhdHRlcm4gPSBh
c1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAoKS0+cGF0dGVybigpOworICAgIFN0cmlu
ZyBwYXR0ZXJuID0gcmVnZXhwLT5yZWdFeHAoKS0+cGF0dGVybigpOwogICAgIGlmIChwYXR0ZXJu
LmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlZ0V4cFByb3RvR2V0
dGVyU291cmNlSW50ZXJuYWwoZXhlYywgcGF0dGVybiwgcGF0dGVybi5jaGFyYWN0ZXJzOCgpLCBw
YXR0ZXJuLmxlbmd0aCgpKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWdFeHBQcm90
b0dldHRlclNvdXJjZUludGVybmFsKGV4ZWMsIHBhdHRlcm4sIHBhdHRlcm4uY2hhcmFjdGVyczE2
KCksIHBhdHRlcm4ubGVuZ3RoKCkpKTsKQEAgLTQ4Myw3ICs0OTMsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZhc3QoRXhlY1N0YXRlKiBleGVj
KQogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
Ci0gICAgUmVnRXhwKiByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdCh0aGlzVmFsdWUpLT5yZWdFeHAo
KTsKKyAgICBSZWdFeHAqIHJlZ0V4cCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPih0aGlzVmFsdWUp
LT5yZWdFeHAoKTsKIAogICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgwKS50b1N0cmluZyhleGVjKTsKICAgICBTdHJpbmcgcyA9IHN0cmluZy0+dmFsdWUoZXhl
Yyk7CkBAIC01OTAsNyArNjAwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdF
eHBQcm90b0Z1bmNTcGxpdEZhc3QoRXhlY1N0YXRlKiBleGVjKQogICAgIC8vIDEuIFtoYW5kbGVk
IGJ5IEpTIGJ1aWx0aW5dIExldCByeCBiZSB0aGUgdGhpcyB2YWx1ZS4KICAgICAvLyAyLiBbaGFu
ZGxlZCBieSBKUyBidWlsdGluXSBJZiBUeXBlKHJ4KSBpcyBub3QgT2JqZWN0LCB0aHJvdyBhIFR5
cGVFcnJvciBleGNlcHRpb24uCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKLSAgICBSZWdFeHAqIHJlZ2V4cCA9IGFzUmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnJl
Z0V4cCgpOworICAgIFJlZ0V4cCogcmVnZXhwID0ganNDYXN0PFJlZ0V4cE9iamVjdCo+KHRoaXNW
YWx1ZSktPnJlZ0V4cCgpOwogCiAgICAgLy8gMy4gW2hhbmRsZWQgYnkgSlMgYnVpbHRpbl0gTGV0
IFMgYmUgPyBUb1N0cmluZyhzdHJpbmcpLgogICAgIEpTU3RyaW5nKiBpbnB1dFN0cmluZyA9IGV4
ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCAyNGZmZjAwYWQ1Nzg0OGIzM2RkYjcwZjM5MDFl
OWZlMTRjMGY3ODgwLi41MDZjNGM1YjRkMGExMmQ5NWJkODlmNmYyYjYyN2Q2Zjc3YTA4ODBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtNzEs
MTQgKzcxLDYgQEAgY2xhc3MgU3RyaW5nT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nT2JqZWN0KFZNJiwgU3RydWN0dXJlKik7CiB9
OwogCi1TdHJpbmdPYmplY3QqIGFzU3RyaW5nT2JqZWN0KEpTVmFsdWUpOwotCi1pbmxpbmUgU3Ry
aW5nT2JqZWN0KiBhc1N0cmluZ09iamVjdChKU1ZhbHVlIHZhbHVlKQotewotICAgIEFTU0VSVChh
c09iamVjdCh2YWx1ZSktPmluaGVyaXRzKCp2YWx1ZS5nZXRPYmplY3QoKS0+dm0oKSwgU3RyaW5n
T2JqZWN0OjppbmZvKCkpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U3RyaW5nT2JqZWN0Kj4o
YXNPYmplY3QodmFsdWUpKTsKLX0KLQogSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nT2JqZWN0KiBj
b25zdHJ1Y3RTdHJpbmcoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwogCiAvLyBIZWxw
ZXIgZm9yIHByb2R1Y2luZyBhIEpTU3RyaW5nIGZvciAnc3RyaW5nJywgd2hlcmUgJ3N0cmluZycg
d2FzIGJlZW4gcHJvZHVjZWQgYnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDZlNDFlYzdiMzgzODc4Y2ExMDZhMjNhMjI2NjY0
ODExNzRhNjZjODkuLmEwZDM2MDE3ZGY0NjkxNzJiZjEzZTYxOWQ5ODJiYTM2ZDE4MTQ4MGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cApAQCAtNTMzLDcgKzUzMyw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTU3RyaW5nKiByZXBs
YWNlVXNpbmdSZWdFeHBTZWFyY2goCiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UgPSBzdHJpbmct
PnZhbHVlKGV4ZWMpOwogICAgIHVuc2lnbmVkIHNvdXJjZUxlbiA9IHNvdXJjZS5sZW5ndGgoKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBSZWdFeHBPYmpl
Y3QqIHJlZ0V4cE9iamVjdCA9IGFzUmVnRXhwT2JqZWN0KHNlYXJjaFZhbHVlKTsKKyAgICBSZWdF
eHBPYmplY3QqIHJlZ0V4cE9iamVjdCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPihzZWFyY2hWYWx1
ZSk7CiAgICAgUmVnRXhwKiByZWdFeHAgPSByZWdFeHBPYmplY3QtPnJlZ0V4cCgpOwogICAgIGJv
b2wgZ2xvYmFsID0gcmVnRXhwLT5nbG9iYWwoKTsKICAgICBib29sIGhhc05hbWVkQ2FwdHVyZXMg
PSByZWdFeHAtPmhhc05hbWVkQ2FwdHVyZXMoKTsKQEAgLTk1NCw3ICs5NTQsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlcihFeGVj
U3RhdGUqIGV4ZWMpCiBBTFdBWVNfSU5MSU5FIEpTU3RyaW5nKiByZXBsYWNlKAogICAgIFZNJiB2
bSwgRXhlY1N0YXRlKiBleGVjLCBKU1N0cmluZyogc3RyaW5nLCBKU1ZhbHVlIHNlYXJjaFZhbHVl
LCBKU1ZhbHVlIHJlcGxhY2VWYWx1ZSkKIHsKLSAgICBpZiAoc2VhcmNoVmFsdWUuaW5oZXJpdHMo
dm0sIFJlZ0V4cE9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAoc2VhcmNoVmFsdWUuaW5oZXJpdHM8
UmVnRXhwT2JqZWN0Pih2bSkpCiAgICAgICAgIHJldHVybiByZXBsYWNlVXNpbmdSZWdFeHBTZWFy
Y2godm0sIGV4ZWMsIHN0cmluZywgc2VhcmNoVmFsdWUsIHJlcGxhY2VWYWx1ZSk7CiAgICAgcmV0
dXJuIHJlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCh2bSwgZXhlYywgc3RyaW5nLCBzZWFyY2hWYWx1
ZSwgcmVwbGFjZVZhbHVlKTsKIH0KQEAgLTk4Myw3ICs5ODMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2luZ1JlZ0V4cChFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7
CiAKICAgICBKU1ZhbHVlIHNlYXJjaFZhbHVlID0gZXhlYy0+YXJndW1lbnQoMCk7Ci0gICAgaWYg
KCFzZWFyY2hWYWx1ZS5pbmhlcml0cyh2bSwgUmVnRXhwT2JqZWN0OjppbmZvKCkpKQorICAgIGlm
ICghc2VhcmNoVmFsdWUuaW5oZXJpdHM8UmVnRXhwT2JqZWN0Pih2bSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICBzY29wZS5yZWxlYXNlKCk7
CkBAIC0xMDI1LDggKzEwMjUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmlu
Z1Byb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAodGhpc1ZhbHVlLmlz
U3RyaW5nKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKTsKIAot
ICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIFN0cmluZ09iamVjdDo6aW5mbygpKSkKLSAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1N0cmluZ09iamVjdCh0aGlzVmFsdWUpLT5p
bnRlcm5hbFZhbHVlKCkpOworICAgIGF1dG8qIHN0cmluZ09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
U3RyaW5nT2JqZWN0Kj4odm0sIHRoaXNWYWx1ZSk7CisgICAgaWYgKHN0cmluZ09iamVjdCkKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzdHJpbmdPYmplY3QtPmludGVybmFsVmFsdWUo
KSk7CiAKICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcAppbmRl
eCBkMTY2NjE0ZDFjYjg0NDU5N2VhODhlZDU2NGMzZTM5NmM1YTE4MTJlLi4zZDc5OGM2ZGNlNWVi
YmEyNTgxMmZjNDBhMjgxYjc2YjQ1MWJmZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSwgU3ltYm9sVG9TdHJpbmdUeXBlRXJy
b3IpOwogICAgICAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGFzT2JqZWN0KHRoaXNWYWx1ZSk7
Ci0gICAgICAgIGlmICghdGhpc09iamVjdC0+aW5oZXJpdHModm0sIFN5bWJvbE9iamVjdDo6aW5m
bygpKSkKKyAgICAgICAgaWYgKCF0aGlzT2JqZWN0LT5pbmhlcml0czxTeW1ib2xPYmplY3Q+KHZt
KSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBTeW1i
b2xUb1N0cmluZ1R5cGVFcnJvcik7CiAgICAgICAgIHN5bWJvbCA9IGFzU3ltYm9sKGpzQ2FzdDxT
eW1ib2xPYmplY3QqPih0aGlzT2JqZWN0KS0+aW50ZXJuYWxWYWx1ZSgpKTsKICAgICB9CkBAIC0x
MDYsNyArMTA2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xQcm90b0Z1
bmNWYWx1ZU9mKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYywgc2NvcGUsIFN5bWJvbFZhbHVlT2ZUeXBlRXJyb3IpOwogCiAgICAgSlNPYmplY3Qq
IHRoaXNPYmplY3QgPSBhc09iamVjdCh0aGlzVmFsdWUpOwotICAgIGlmICghdGhpc09iamVjdC0+
aW5oZXJpdHModm0sIFN5bWJvbE9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAoIXRoaXNPYmplY3Qt
PmluaGVyaXRzPFN5bWJvbE9iamVjdD4odm0pKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBzY29wZSwgU3ltYm9sVmFsdWVPZlR5cGVFcnJvcik7CiAKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQ2FzdDxTeW1ib2xPYmplY3QqPih0aGlzT2JqZWN0KS0+aW50ZXJu
YWxWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0Rv
bGxhclZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApp
bmRleCA5ZTA4YWZlZTI1ZGM4MWExOTRlOWMwNDU5OGFiZWNmYWQ3ZGNlMDBhLi40MmE5YjVmOTUy
OTc0NjFmMGNiMzczNGNlYmFlMzNhZDFlNjc2YzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0pTRG9sbGFyVk0uY3BwCkBAIC05NDksNyArOTQ5LDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIGN1c3RvbUdldEFjY2Vzc29yKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHIKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIGN1c3RvbUdldFZhbHVlKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgc2xvdFZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAg
UkVMRUFTRV9BU1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHNsb3RWYWx1ZSkuaW5oZXJpdHMoZXhlYy0+
dm0oKSwgSlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyOjppbmZvKCkpKTsKKyAgICBSRUxFQVNFX0FT
U0VSVChKU1ZhbHVlOjpkZWNvZGUoc2xvdFZhbHVlKS5pbmhlcml0czxKU1Rlc3RDdXN0b21HZXR0
ZXJTZXR0ZXI+KGV4ZWMtPnZtKCkpKTsKICAgICAvLyBQYXNzZWQgcHJvcGVydHkgaG9sZGVyLgog
ICAgIHJldHVybiBzbG90VmFsdWU7CiB9CkBAIC05NzEsNyArOTcxLDcgQEAgc3RhdGljIGJvb2wg
Y3VzdG9tU2V0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBzbG90VmFsdWUs
IEVuY29kZWRKU1YKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogCi0gICAgUkVMRUFTRV9B
U1NFUlQoSlNWYWx1ZTo6ZGVjb2RlKHNsb3RWYWx1ZSkuaW5oZXJpdHMoZXhlYy0+dm0oKSwgSlNU
ZXN0Q3VzdG9tR2V0dGVyU2V0dGVyOjppbmZvKCkpKTsKKyAgICBSRUxFQVNFX0FTU0VSVChKU1Zh
bHVlOjpkZWNvZGUoc2xvdFZhbHVlKS5pbmhlcml0czxKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI+
KGV4ZWMtPnZtKCkpKTsKIAogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKTsKICAgICBSRUxFQVNFX0FTU0VSVCh2YWx1ZS5pc09iamVjdCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SGVscGVycy5o
CmluZGV4IDE0NDg3ZjAxYzZiMmRkZGVjNWRjNDBlMDU0ODYxNmU0NzNmMDI0YTcuLmFmYzVlMTY2
YzFiY2RkMzhkZTBmZTZjMzcyOWI2NDExODQzNTgwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaApAQCAtOTQsMTIgKzk0
LDEyIEBAIEFMV0FZU19JTkxJTkUgVmVjdG9yPHVpbnQ4X3Q+IGNyZWF0ZVNvdXJjZUJ1ZmZlckZy
b21WYWx1ZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlCiAKIEFMV0FZU19JTkxJTkUgYm9vbCBpc1dl
YkFzc2VtYmx5SG9zdEZ1bmN0aW9uKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCwgV2ViQXNzZW1i
bHlGdW5jdGlvbiomIHdhc21GdW5jdGlvbiwgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qJiB3
YXNtV3JhcHBlckZ1bmN0aW9uKQogewotICAgIGlmIChvYmplY3QtPmluaGVyaXRzKHZtLCBXZWJB
c3NlbWJseUZ1bmN0aW9uOjppbmZvKCkpKSB7CisgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8V2Vi
QXNzZW1ibHlGdW5jdGlvbj4odm0pKSB7CiAgICAgICAgIHdhc21GdW5jdGlvbiA9IGpzQ2FzdDxX
ZWJBc3NlbWJseUZ1bmN0aW9uKj4ob2JqZWN0KTsKICAgICAgICAgd2FzbVdyYXBwZXJGdW5jdGlv
biA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAob2JqZWN0
LT5pbmhlcml0cyh2bSwgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmluZm8oKSkpIHsKKyAg
ICBpZiAob2JqZWN0LT5pbmhlcml0czxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj4odm0pKSB7
CiAgICAgICAgIHdhc21XcmFwcGVyRnVuY3Rpb24gPSBqc0Nhc3Q8V2ViQXNzZW1ibHlXcmFwcGVy
RnVuY3Rpb24qPihvYmplY3QpOwogICAgICAgICB3YXNtRnVuY3Rpb24gPSBudWxscHRyOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcAppbmRleCA1MmM1ZGEyYmQw
OTZjM2JjZWUyYzgxNGY2MmQzOTVmZjlhYjkzNzA0Li43YTFhYTM4Mjk2MjUzMmRkZGI0YzA1MGUw
OGEyNGZjMzZkNGQyMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwCkBAIC02MCw3ICs2MCw3
IEBAIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnCiAKIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9u
KiBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGZ1bmN0aW9uLCB1bnNpZ25lZCBpbXBvcnRJbmRl
eCwgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSwgV2FzbTo6U2lnbmF0dXJlSW5kZXgg
c2lnbmF0dXJlSW5kZXgpCiB7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghZnVuY3Rpb24tPmlu
aGVyaXRzKHZtLCBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSwgIldlIHNob3Vs
ZCBuZXZlciBkb3VibGUgd3JhcCBhIHdyYXBwZXIgZnVuY3Rpb24uIik7CisgICAgQVNTRVJUX1dJ
VEhfTUVTU0FHRSghZnVuY3Rpb24tPmluaGVyaXRzPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9u
Pih2bSksICJXZSBzaG91bGQgbmV2ZXIgZG91YmxlIHdyYXAgYSB3cmFwcGVyIGZ1bmN0aW9uLiIp
OwogICAgIFN0cmluZyBuYW1lID0gIiI7CiAgICAgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJs
ZSA9IHZtLmdldEhvc3RGdW5jdGlvbihjYWxsV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24sIE5v
SW50cmluc2ljLCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciwgbnVsbHB0ciwgbmFtZSk7
CiAgICAgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qIHJlc3VsdCA9IG5ldyAoTm90TnVsbCwg
YWxsb2NhdGVDZWxsPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uPih2bS5oZWFwKSkgV2ViQXNz
ZW1ibHlXcmFwcGVyRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT53ZWJB
c3NlbWJseVdyYXBwZXJGdW5jdGlvblN0cnVjdHVyZSgpLCBXYXNtOjpDYWxsYWJsZUZ1bmN0aW9u
IHsgc2lnbmF0dXJlSW5kZXgsICZpbnN0YW5jZS0+aW5zdGFuY2UoKS5pbXBvcnRGdW5jdGlvbklu
Zm8oaW1wb3J0SW5kZXgpLT53YXNtVG9FbWJlZGRlclN0dWJFeGVjdXRhYmxlQWRkcmVzcyB9ICk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0
aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMu
Y3BwCmluZGV4IGQ3OGUyMjBiMjA1ZDMwZWNiMDMzMzBjZDY2MDdjMjQwNzZjZTRjYTMuLjdkZGEx
ZmE2NjJlNGQ4NTQ1NTY0NjBjMTllNjE1YTNiMDJiOWEyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC0xNTEsNyArMTUx
LDcgQEAgc3RhdGljIFJlZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktleUZyb21WYWx1ZShFeGVjU3Rh
dGUmIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIFZlY3QKICAgICBpZiAodmFsdWUuaXNTdHJpbmcoKSkK
ICAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlU3RyaW5nKGFzU3RyaW5nKHZhbHVlKS0+dmFs
dWUoJmV4ZWMpKTsKIAotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjpp
bmZvKCkpKSB7CisgICAgaWYgKHZhbHVlLmluaGVyaXRzPERhdGVJbnN0YW5jZT4odm0pKSB7CiAg
ICAgICAgIGF1dG8gZGF0ZVZhbHVlID0gdmFsdWVUb0RhdGUoZXhlYywgdmFsdWUpOwogICAgICAg
ICBpZiAoIXN0ZDo6aXNuYW4oZGF0ZVZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiBJREJLZXk6
OmNyZWF0ZURhdGUoZGF0ZVZhbHVlKTsKQEAgLTE1OSw4ICsxNTksNyBAQCBzdGF0aWMgUmVmUHRy
PElEQktleT4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKEV4ZWNTdGF0ZSYgZXhlYywgSlNWYWx1ZSB2
YWx1ZSwgVmVjdAogCiAgICAgaWYgKHZhbHVlLmlzT2JqZWN0KCkpIHsKICAgICAgICAgSlNPYmpl
Y3QqIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKLSAgICAgICAgaWYgKGlzSlNBcnJheShvYmpl
Y3QpIHx8IG9iamVjdC0+aW5oZXJpdHModm0sIEpTQXJyYXk6OmluZm8oKSkpIHsKLSAgICAgICAg
ICAgIEpTQXJyYXkqIGFycmF5ID0gYXNBcnJheShvYmplY3QpOworICAgICAgICBpZiAoYXV0byog
YXJyYXkgPSBqc0R5bmFtaWNDYXN0PEpTQXJyYXkqPih2bSwgb2JqZWN0KSkgewogICAgICAgICAg
ICAgc2l6ZV90IGxlbmd0aCA9IGFycmF5LT5sZW5ndGgoKTsKIAogICAgICAgICAgICAgaWYgKHN0
YWNrLmNvbnRhaW5zKGFycmF5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQ29udmVydERhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0RGF0ZS5jcHAKaW5kZXggODBiNTNlODIxN2EyM2QyYmUyMzUxN2M3NzdjNDUzNjcx
YzNiZWY1ZC4uYzMxMjUwOTA4ZTI1YmE1ZDYwMmVhYjNlMDI5ZjZiNjliMTJkZGI1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAKQEAgLTQw
LDcgKzQwLDcgQEAgZG91YmxlIHZhbHVlVG9EYXRlKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpCiAgICAgICAgIHJldHVybiB2YWx1
ZS5hc051bWJlcigpOwotICAgIGlmICghdmFsdWUuaW5oZXJpdHMoc3RhdGUudm0oKSwgRGF0ZUlu
c3RhbmNlOjppbmZvKCkpKQorICAgIGlmICghdmFsdWUuaW5oZXJpdHM8RGF0ZUluc3RhbmNlPihz
dGF0ZS52bSgpKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PERhdGVJbnN0YW5jZSo+KHZhbHVl
LnRvT2JqZWN0KCZzdGF0ZSkpLT5pbnRlcm5hbE51bWJlcigpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4IGJjZjY4NzAxN2Q2
NGY2MzgzZWJiZWYyODJjN2Y0M2Q0ZjJhZGNkZTQuLjdhMzU0ODQwN2IyNDUwM2ZjZDc0ZDM5YTNj
Nzg5NWIyYzAwOTQ1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5jcHAKQEAgLTE5NSw5ICsxOTUsOSBAQCB2b2lkIEpTRE9NR2xvYmFsT2Jq
ZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTT2JqZWN0KiB0aGlzVmFsdWUpCiAKIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIEpTRE9NR2xvYmFsT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3QKIHsKLSAgICBpZiAoaW5oZXJpdHModm0oKSwgSlNET01XaW5kb3dCYXNlOjpp
bmZvKCkpKQorICAgIGlmIChpbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKCkpKQogICAgICAg
ICByZXR1cm4ganNDYXN0PGNvbnN0IEpTRE9NV2luZG93QmFzZSo+KHRoaXMpLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7Ci0gICAgaWYgKGluaGVyaXRzKHZtKCksIEpTV29ya2VyR2xvYmFsU2Nv
cGVCYXNlOjppbmZvKCkpKQorICAgIGlmIChpbmhlcml0czxKU1dvcmtlckdsb2JhbFNjb3BlQmFz
ZT4odm0oKSkpCiAgICAgICAgIHJldHVybiBqc0Nhc3Q8Y29uc3QgSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UqPih0aGlzKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGRhdGFMb2coIlVu
ZXhwZWN0ZWQgZ2xvYmFsIG9iamVjdDogIiwgSlNWYWx1ZSh0aGlzKSwgIlxuIik7CiAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCBjZjdkOTA5NzQ4Njc5NDQ2MDM2MGE1NGQw
Y2RlZDZiNmU4ZmU1ODI0Li5lNTg5YWQ2NGNjMzk0MGY5MjA4YWU1ODhkNDIxYWRhMDljZmMxZWM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20u
Y3BwCkBAIC00NTksOSArNDU5LDkgQEAgRE9NV2luZG93KiBKU0RPTVdpbmRvdzo6dG9XcmFwcGVk
KFZNJiB2bSwgSlNWYWx1ZSB2YWx1ZSkKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1
ZSk7Ci0gICAgaWYgKG9iamVjdC0+aW5oZXJpdHModm0sIEpTRE9NV2luZG93OjppbmZvKCkpKQor
ICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEpTRE9NV2luZG93Pih2bSkpCiAgICAgICAgIHJldHVy
biAmanNDYXN0PEpTRE9NV2luZG93Kj4ob2JqZWN0KS0+d3JhcHBlZCgpOwotICAgIGlmIChvYmpl
Y3QtPmluaGVyaXRzKHZtLCBKU0RPTVdpbmRvd1Byb3h5OjppbmZvKCkpKQorICAgIGlmIChvYmpl
Y3QtPmluaGVyaXRzPEpTRE9NV2luZG93UHJveHk+KHZtKSkKICAgICAgICAgcmV0dXJuICZqc0Nh
c3Q8SlNET01XaW5kb3dQcm94eSo+KG9iamVjdCktPndyYXBwZWQoKTsKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRU
YXJnZXRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdl
dEN1c3RvbS5jcHAKaW5kZXggZjRhMDI5NGZmOGU4ZTU3MWQ0NTU2NTExNDkzOWVkYTIxMGRjOGY3
NC4uMDNiN2FlMDcxODQxYzI1ZTcyMjM0Yzg0Y2U2MDA1NGM2NTFmN2I2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKQEAgLTU3
LDcgKzU3LDcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRXZlbnRUYXJnZXQmIHRhcmcKICN1bmRlZiBUUllfVE9fV1JBUF9X
SVRIX0lOVEVSRkFDRQogCiAjZGVmaW5lIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZBQ0UoaW50
ZXJmYWNlTmFtZSkgXAotICAgIGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgSlMjI2ludGVyZmFjZU5h
bWU6OmluZm8oKSkpICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAodmFsdWUuaW5oZXJp
dHM8SlMjI2ludGVyZmFjZU5hbWU+KHZtKSkgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg
ICByZXR1cm4gJmpzQ2FzdDxKUyMjaW50ZXJmYWNlTmFtZSo+KGFzT2JqZWN0KHZhbHVlKSktPndy
YXBwZWQoKTsKIAogRXZlbnRUYXJnZXQqIEpTRXZlbnRUYXJnZXQ6OnRvV3JhcHBlZChWTSYgdm0s
IEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9t
LmNwcAppbmRleCA5ZjM2ZTc0NTgzOTQ2MDM0MmI3M2I0OWIwMDNhMzg0NDcxNWNlNDYwLi4wOWE3
MGYyMmU4OGNmMWNiOTg3YWU3ZDcxODFjZmUyNTk1MzU5NDIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCBib29sIEpT
Tm9kZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+IGhhbmRsZSwgdgogCiBKU1Njb3BlKiBKU05vZGU6OnB1c2hFdmVudEhhbmRsZXJTY29w
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTU2NvcGUqIG5vZGUpIGNvbnN0CiB7Ci0gICAgaWYgKGluaGVy
aXRzKGV4ZWMtPnZtKCksIEpTSFRNTEVsZW1lbnQ6OmluZm8oKSkpCisgICAgaWYgKGluaGVyaXRz
PEpTSFRNTEVsZW1lbnQ+KGV4ZWMtPnZtKCkpKQogICAgICAgICByZXR1cm4ganNDYXN0PGNvbnN0
IEpTSFRNTEVsZW1lbnQqPih0aGlzKS0+cHVzaEV2ZW50SGFuZGxlclNjb3BlKGV4ZWMsIG5vZGUp
OwogICAgIHJldHVybiBub2RlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNYUGF0aE5TUmVzb2x2ZXJDdXN0b20uY3BwCmluZGV4IDBkYTUxMjhmY2U0YjYxZjZh
N2Q3MzRlMTE4MmNlMzgyYmY5ZjU1YzEuLjE5ZTkyYjYyNzk5NDUyY2UzY2M2YTY1YmY5NDljMjVh
N2ExODBjNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhO
U1Jlc29sdmVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQ
YXRoTlNSZXNvbHZlckN1c3RvbS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4gSlNYUGF0aE5TUmVzb2x2ZXI6OnRvV3Jh
cHBlZChWTSYgdm0sIEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYg
KHZhbHVlLmluaGVyaXRzKHZtLCBKU1hQYXRoTlNSZXNvbHZlcjo6aW5mbygpKSkKKyAgICBpZiAo
dmFsdWUuaW5oZXJpdHM8SlNYUGF0aE5TUmVzb2x2ZXI+KHZtKSkKICAgICAgICAgcmV0dXJuICZq
c0Nhc3Q8SlNYUGF0aE5TUmVzb2x2ZXIqPihhc09iamVjdCh2YWx1ZSkpLT53cmFwcGVkKCk7CiAK
ICAgICBhdXRvIHJlc3VsdCA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUoc3RhdGUs
IHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFN0
YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFN0YXRlLmNwcAppbmRl
eCBlNGU2MmExZjZhMjAyMzUyMDQ2OGQ5Yjg3ZjMzMzllYzEyMGU0NWY1Li44YzI5Yzc4ZWFiZWRm
NmI3NjBhZTFiY2MxYTY0M2I5ZDNhMTBjZjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0U3RhdGUuY3BwCkBAIC01MCw3ICs1MCw3IEBAIERPTVdpbmRvdyogZG9tV2luZG93
RnJvbUV4ZWNTdGF0ZShKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUpCiB7CiAgICAgSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc2NyaXB0U3RhdGUtPmxleGljYWxHbG9iYWxP
YmplY3QoKTsKICAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBpZiAo
IWdsb2JhbE9iamVjdC0+aW5oZXJpdHModm0sIEpTRE9NV2luZG93QmFzZTo6aW5mbygpKSkKKyAg
ICBpZiAoIWdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNET01XaW5kb3dCYXNlPih2bSkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiAmSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dC
YXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpOwogfQpAQCAtNjYsNyArNjYsNyBAQCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZShK
U0M6OkV4ZWNTdGF0ZSogc2NyaQogewogICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IHNjcmlwdFN0YXRlLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAgICAgSlNDOjpWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QtPmluaGVyaXRz
KHZtLCBKU0RPTUdsb2JhbE9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAoIWdsb2JhbE9iamVjdC0+
aW5oZXJpdHM8SlNET01HbG9iYWxPYmplY3Q+KHZtKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgcmV0dXJuIEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0
KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggYjg1NjlhM2QxMzZl
MzBmNDNiMjkzMmZjNTViY2NiM2Q2ZGI1NDNjYS4uNTMyYzcxN2RjODdlMDZkN2U1ODMzNWEwM2Fh
OGQ1ZGZmZGNjYjYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC02MDQsNyArNjA0LDcgQEAgY2xhc3MgQ2xvbmVT
ZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNP
YmplY3QodmFsdWUpOwotICAgICAgICByZXR1cm4gaXNKU0FycmF5KG9iamVjdCkgfHwgb2JqZWN0
LT5pbmhlcml0cyh2bSwgSlNBcnJheTo6aW5mbygpKTsKKyAgICAgICAgcmV0dXJuIG9iamVjdC0+
aW5oZXJpdHM8SlNBcnJheT4odm0pOwogICAgIH0KIAogICAgIGJvb2wgaXNNYXAoVk0mIHZtLCBK
U1ZhbHVlIHZhbHVlKQpAQCAtNjEyLDE0ICs2MTIsMTQgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVy
IDogQ2xvbmVCYXNlIHsKICAgICAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFs
dWUpOwotICAgICAgICByZXR1cm4gb2JqZWN0LT5pbmhlcml0cyh2bSwgSlNNYXA6OmluZm8oKSk7
CisgICAgICAgIHJldHVybiBvYmplY3QtPmluaGVyaXRzPEpTTWFwPih2bSk7CiAgICAgfQogICAg
IGJvb2wgaXNTZXQoVk0mIHZtLCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKCF2
YWx1ZS5pc09iamVjdCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBKU09i
amVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwotICAgICAgICByZXR1cm4gb2JqZWN0LT5p
bmhlcml0cyh2bSwgSlNTZXQ6OmluZm8oKSk7CisgICAgICAgIHJldHVybiBvYmplY3QtPmluaGVy
aXRzPEpTU2V0Pih2bSk7CiAgICAgfQogCiAgICAgYm9vbCBjaGVja0ZvckR1cGxpY2F0ZShKU09i
amVjdCogb2JqZWN0KQpAQCAtNzU0LDI1ICs3NTQsMjUgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVy
IDogQ2xvbmVCYXNlIHsKICAgICB7CiAgICAgICAgIFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKICAg
ICAgICAgd3JpdGUoQXJyYXlCdWZmZXJWaWV3VGFnKTsKLSAgICAgICAgaWYgKG9iai0+aW5oZXJp
dHModm0sIEpTRGF0YVZpZXc6OmluZm8oKSkpCisgICAgICAgIGlmIChvYmotPmluaGVyaXRzPEpT
RGF0YVZpZXc+KHZtKSkKICAgICAgICAgICAgIHdyaXRlKERhdGFWaWV3VGFnKTsKLSAgICAgICAg
ZWxzZSBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNVaW50OENsYW1wZWRBcnJheTo6aW5mbygpKSkK
KyAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0czxKU1VpbnQ4Q2xhbXBlZEFycmF5Pih2bSkp
CiAgICAgICAgICAgICB3cml0ZShVaW50OENsYW1wZWRBcnJheVRhZyk7Ci0gICAgICAgIGVsc2Ug
aWYgKG9iai0+aW5oZXJpdHModm0sIEpTSW50OEFycmF5OjppbmZvKCkpKQorICAgICAgICBlbHNl
IGlmIChvYmotPmluaGVyaXRzPEpTSW50OEFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShJ
bnQ4QXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU1VpbnQ4
QXJyYXk6OmluZm8oKSkpCisgICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHM8SlNVaW50OEFy
cmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShVaW50OEFycmF5VGFnKTsKLSAgICAgICAgZWxz
ZSBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNJbnQxNkFycmF5OjppbmZvKCkpKQorICAgICAgICBl
bHNlIGlmIChvYmotPmluaGVyaXRzPEpTSW50MTZBcnJheT4odm0pKQogICAgICAgICAgICAgd3Jp
dGUoSW50MTZBcnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHModm0sIEpT
VWludDE2QXJyYXk6OmluZm8oKSkpCisgICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHM8SlNV
aW50MTZBcnJheT4odm0pKQogICAgICAgICAgICAgd3JpdGUoVWludDE2QXJyYXlUYWcpOwotICAg
ICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0ludDMyQXJyYXk6OmluZm8oKSkpCisg
ICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHM8SlNJbnQzMkFycmF5Pih2bSkpCiAgICAgICAg
ICAgICB3cml0ZShJbnQzMkFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhlcml0
cyh2bSwgSlNVaW50MzJBcnJheTo6aW5mbygpKSkKKyAgICAgICAgZWxzZSBpZiAob2JqLT5pbmhl
cml0czxKU1VpbnQzMkFycmF5Pih2bSkpCiAgICAgICAgICAgICB3cml0ZShVaW50MzJBcnJheVRh
Zyk7Ci0gICAgICAgIGVsc2UgaWYgKG9iai0+aW5oZXJpdHModm0sIEpTRmxvYXQzMkFycmF5Ojpp
bmZvKCkpKQorICAgICAgICBlbHNlIGlmIChvYmotPmluaGVyaXRzPEpTRmxvYXQzMkFycmF5Pih2
bSkpCiAgICAgICAgICAgICB3cml0ZShGbG9hdDMyQXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlm
IChvYmotPmluaGVyaXRzKHZtLCBKU0Zsb2F0NjRBcnJheTo6aW5mbygpKSkKKyAgICAgICAgZWxz
ZSBpZiAob2JqLT5pbmhlcml0czxKU0Zsb2F0NjRBcnJheT4odm0pKQogICAgICAgICAgICAgd3Jp
dGUoRmxvYXQ2NEFycmF5VGFnKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtODAwLDcgKzgwMCw3IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFz
ZSB7CiAgICAgdm9pZCBkdW1wRE9NUG9pbnQoSlNPYmplY3QqIG9iaikKICAgICB7CiAgICAgICAg
IFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKLSAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0sIEpT
RE9NUG9pbnQ6OmluZm8oKSkpCisgICAgICAgIGlmIChvYmotPmluaGVyaXRzPEpTRE9NUG9pbnQ+
KHZtKSkKICAgICAgICAgICAgIHdyaXRlKERPTVBvaW50VGFnKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgd3JpdGUoRE9NUG9pbnRSZWFkT25seVRhZyk7CkBAIC04MTEsNyArODExLDcgQEAg
Y2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICB2b2lkIGR1bXBET01SZWN0
KEpTT2JqZWN0KiBvYmopCiAgICAgewogICAgICAgICBWTSYgdm0gPSBtX2V4ZWMtPnZtKCk7Ci0g
ICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0RPTVJlY3Q6OmluZm8oKSkpCisgICAgICAg
IGlmIChvYmotPmluaGVyaXRzPEpTRE9NUmVjdD4odm0pKQogICAgICAgICAgICAgd3JpdGUoRE9N
UmVjdFRhZyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHdyaXRlKERPTVJlY3RSZWFkT25s
eVRhZyk7CkBAIC04MjYsNyArODI2LDcgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVC
YXNlIHsKICAgICB2b2lkIGR1bXBET01NYXRyaXgoSlNPYmplY3QqIG9iaikKICAgICB7CiAgICAg
ICAgIFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKLSAgICAgICAgaWYgKG9iai0+aW5oZXJpdHModm0s
IEpTRE9NTWF0cml4OjppbmZvKCkpKQorICAgICAgICBpZiAob2JqLT5pbmhlcml0czxKU0RPTU1h
dHJpeD4odm0pKQogICAgICAgICAgICAgd3JpdGUoRE9NTWF0cml4VGFnKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgd3JpdGUoRE9NTWF0cml4UmVhZE9ubHlUYWcpOwpAQCAtODkxLDM2ICs4
OTEsMzQgQEAgY2xhc3MgQ2xvbmVTZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgfQog
CiAgICAgICAgIFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKLSAgICAgICAgaWYgKHZhbHVlLmlzT2Jq
ZWN0KCkgJiYgYXNPYmplY3QodmFsdWUpLT5pbmhlcml0cyh2bSwgRGF0ZUluc3RhbmNlOjppbmZv
KCkpKSB7Ci0gICAgICAgICAgICB3cml0ZShEYXRlVGFnKTsKLSAgICAgICAgICAgIHdyaXRlKGFz
RGF0ZUluc3RhbmNlKHZhbHVlKS0+aW50ZXJuYWxOdW1iZXIoKSk7Ci0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgfQotCiAgICAgICAgIGlmIChpc0FycmF5KHZtLCB2YWx1ZSkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgaWYgKHZhbHVlLmlzT2JqZWN0KCkp
IHsKICAgICAgICAgICAgIGF1dG8qIG9iaiA9IGFzT2JqZWN0KHZhbHVlKTsKLSAgICAgICAgICAg
IGlmIChvYmotPmluaGVyaXRzKHZtLCBCb29sZWFuT2JqZWN0OjppbmZvKCkpKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKCFzdGFydE9iamVjdEludGVybmFsKG9iaikpIC8vIGhhbmRsZSBkdXBsaWNh
dGVzCisgICAgICAgICAgICBpZiAoYXV0byogZGF0ZU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RGF0
ZUluc3RhbmNlKj4odm0sIG9iaikpIHsKKyAgICAgICAgICAgICAgICB3cml0ZShEYXRlVGFnKTsK
KyAgICAgICAgICAgICAgICB3cml0ZShkYXRlT2JqZWN0LT5pbnRlcm5hbE51bWJlcigpKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
IChhdXRvKiBib29sZWFuT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxCb29sZWFuT2JqZWN0Kj4odm0s
IG9iaikpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0T2JqZWN0SW50ZXJuYWwoYm9vbGVh
bk9iamVjdCkpIC8vIGhhbmRsZSBkdXBsaWNhdGVzCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICAgICAgICAgIHdyaXRlKGFzQm9vbGVhbk9iamVjdCh2YWx1ZSktPmlu
dGVybmFsVmFsdWUoKS50b0Jvb2xlYW4obV9leGVjKSA/IFRydWVPYmplY3RUYWcgOiBGYWxzZU9i
amVjdFRhZyk7CisgICAgICAgICAgICAgICAgd3JpdGUoYm9vbGVhbk9iamVjdC0+aW50ZXJuYWxW
YWx1ZSgpLnRvQm9vbGVhbihtX2V4ZWMpID8gVHJ1ZU9iamVjdFRhZyA6IEZhbHNlT2JqZWN0VGFn
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBTdHJpbmdPYmplY3Q6OmluZm8oKSkpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoIXN0YXJ0T2JqZWN0SW50ZXJuYWwob2JqKSkgLy8gaGFuZGxlIGR1cGxp
Y2F0ZXMKKyAgICAgICAgICAgIGlmIChhdXRvKiBzdHJpbmdPYmplY3QgPSBqc0R5bmFtaWNDYXN0
PFN0cmluZ09iamVjdCo+KHZtLCBvYmopKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdGFydE9i
amVjdEludGVybmFsKHN0cmluZ09iamVjdCkpIC8vIGhhbmRsZSBkdXBsaWNhdGVzCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIFN0cmluZyBzdHIgPSBh
c1N0cmluZyhhc1N0cmluZ09iamVjdCh2YWx1ZSktPmludGVybmFsVmFsdWUoKSktPnZhbHVlKG1f
ZXhlYyk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IGFzU3RyaW5nKHN0cmluZ09iamVj
dC0+aW50ZXJuYWxWYWx1ZSgpKS0+dmFsdWUobV9leGVjKTsKICAgICAgICAgICAgICAgICBkdW1w
U3RyaW5nT2JqZWN0KHN0cik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgTnVtYmVyT2JqZWN0Ojpp
bmZvKCkpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFzdGFydE9iamVjdEludGVybmFsKG9iaikp
IC8vIGhhbmRsZSBkdXBsaWNhdGVzCisgICAgICAgICAgICBpZiAoYXV0byogbnVtYmVyT2JqZWN0
ID0ganNEeW5hbWljQ2FzdDxOdW1iZXJPYmplY3QqPih2bSwgb2JqKSkgeworICAgICAgICAgICAg
ICAgIGlmICghc3RhcnRPYmplY3RJbnRlcm5hbChudW1iZXJPYmplY3QpKSAvLyBoYW5kbGUgZHVw
bGljYXRlcwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAg
ICB3cml0ZShOdW1iZXJPYmplY3RUYWcpOwotICAgICAgICAgICAgICAgIE51bWJlck9iamVjdCog
b2JqID0gc3RhdGljX2Nhc3Q8TnVtYmVyT2JqZWN0Kj4oYXNPYmplY3QodmFsdWUpKTsKLSAgICAg
ICAgICAgICAgICB3cml0ZShvYmotPmludGVybmFsVmFsdWUoKS5hc051bWJlcigpKTsKKyAgICAg
ICAgICAgICAgICB3cml0ZShudW1iZXJPYmplY3QtPmludGVybmFsVmFsdWUoKS5hc051bWJlcigp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGlmIChhdXRvKiBmaWxlID0gSlNGaWxlOjp0b1dyYXBwZWQodm0sIG9iaikpIHsKQEAgLTk1
MSw4ICs5NDksNyBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAg
ICAgICAgICAgIHdyaXRlKGRhdGEtPmRhdGEoKS0+ZGF0YSgpLCBkYXRhLT5kYXRhKCktPmxlbmd0
aCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBSZWdFeHBPYmplY3Q6OmluZm8oKSkpIHsKLSAg
ICAgICAgICAgICAgICBhdXRvKiByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdChvYmopOworICAgICAg
ICAgICAgaWYgKGF1dG8qIHJlZ0V4cCA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwT2JqZWN0Kj4odm0s
IG9iaikpIHsKICAgICAgICAgICAgICAgICBjaGFyIGZsYWdzWzNdOwogICAgICAgICAgICAgICAg
IGludCBmbGFnQ291bnQgPSAwOwogICAgICAgICAgICAgICAgIGlmIChyZWdFeHAtPnJlZ0V4cCgp
LT5nbG9iYWwoKSkKQEAgLTk2Niw3ICs5NjMsNyBAQCBjbGFzcyBDbG9uZVNlcmlhbGl6ZXIgOiBD
bG9uZUJhc2UgewogICAgICAgICAgICAgICAgIHdyaXRlKFN0cmluZyhmbGFncywgZmxhZ0NvdW50
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNNZXNzYWdlUG9ydDo6aW5mbygpKSkgeworICAg
ICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHM8SlNNZXNzYWdlUG9ydD4odm0pKSB7CiAgICAgICAg
ICAgICAgICAgYXV0byBpbmRleCA9IG1fdHJhbnNmZXJyZWRNZXNzYWdlUG9ydHMuZmluZChvYmop
OwogICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPSBtX3RyYW5zZmVycmVkTWVzc2FnZVBvcnRz
LmVuZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHdyaXRlKE1lc3NhZ2VQb3J0UmVmZXJlbmNl
VGFnKTsKQEAgLTEwMDcsNyArMTAwNCw3IEBAIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25l
QmFzZSB7CiAgICAgICAgICAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGFycmF5QnVmZmVyLT5kYXRhKCkpLCBhcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChv
YmotPmluaGVyaXRzKHZtLCBKU0FycmF5QnVmZmVyVmlldzo6aW5mbygpKSkgeworICAgICAgICAg
ICAgaWYgKG9iai0+aW5oZXJpdHM8SlNBcnJheUJ1ZmZlclZpZXc+KHZtKSkgewogICAgICAgICAg
ICAgICAgIGlmIChjaGVja0ZvckR1cGxpY2F0ZShvYmopKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICBib29sIHN1Y2Nlc3MgPSBkdW1wQXJyYXlCdWZm
ZXJWaWV3KG9iaiwgY29kZSk7CkBAIC0xMDUxLDE5ICsxMDQ4LDE5IEBAIGNsYXNzIENsb25lU2Vy
aWFsaXplciA6IENsb25lQmFzZSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0RP
TVBvaW50UmVhZE9ubHk6OmluZm8oKSkpIHsKKyAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRz
PEpTRE9NUG9pbnRSZWFkT25seT4odm0pKSB7CiAgICAgICAgICAgICAgICAgZHVtcERPTVBvaW50
KG9iaik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBpZiAob2JqLT5pbmhlcml0cyh2bSwgSlNET01SZWN0UmVhZE9ubHk6OmluZm8oKSkp
IHsKKyAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRzPEpTRE9NUmVjdFJlYWRPbmx5Pih2bSkp
IHsKICAgICAgICAgICAgICAgICBkdW1wRE9NUmVjdChvYmopOwogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG9iai0+aW5oZXJpdHMo
dm0sIEpTRE9NTWF0cml4UmVhZE9ubHk6OmluZm8oKSkpIHsKKyAgICAgICAgICAgIGlmIChvYmot
PmluaGVyaXRzPEpTRE9NTWF0cml4UmVhZE9ubHk+KHZtKSkgewogICAgICAgICAgICAgICAgIGR1
bXBET01NYXRyaXgob2JqKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRzKHZtLCBKU0RPTVF1YWQ6OmluZm8o
KSkpIHsKKyAgICAgICAgICAgIGlmIChvYmotPmluaGVyaXRzPEpTRE9NUXVhZD4odm0pKSB7CiAg
ICAgICAgICAgICAgICAgZHVtcERPTVF1YWQob2JqKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgICAgIH0KQEAgLTE3NTUsNyArMTc1Miw3IEBAIGNsYXNzIENsb25lRGVz
ZXJpYWxpemVyIDogQ2xvbmVCYXNlIHsKICAgICAgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBi
dWZmZXIpCiAgICAgICAgIDogQ2xvbmVCYXNlKGV4ZWMpCiAgICAgICAgICwgbV9nbG9iYWxPYmpl
Y3QoZ2xvYmFsT2JqZWN0KQotICAgICAgICAsIG1faXNET01HbG9iYWxPYmplY3QoZ2xvYmFsT2Jq
ZWN0LT5pbmhlcml0cyhnbG9iYWxPYmplY3QtPnZtKCksIEpTRE9NR2xvYmFsT2JqZWN0OjppbmZv
KCkpKQorICAgICAgICAsIG1faXNET01HbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5pbmhlcml0
czxKU0RPTUdsb2JhbE9iamVjdD4oZ2xvYmFsT2JqZWN0LT52bSgpKSkKICAgICAgICAgLCBtX3B0
cihidWZmZXIuZGF0YSgpKQogICAgICAgICAsIG1fZW5kKGJ1ZmZlci5kYXRhKCkgKyBidWZmZXIu
c2l6ZSgpKQogICAgICAgICAsIG1fdmVyc2lvbigweEZGRkZGRkZGKQpAQCAtMTc3Nyw3ICsxNzc0
LDcgQEAgY2xhc3MgQ2xvbmVEZXNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICApCiAg
ICAgICAgIDogQ2xvbmVCYXNlKGV4ZWMpCiAgICAgICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFs
T2JqZWN0KQotICAgICAgICAsIG1faXNET01HbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5pbmhl
cml0cyhnbG9iYWxPYmplY3QtPnZtKCksIEpTRE9NR2xvYmFsT2JqZWN0OjppbmZvKCkpKQorICAg
ICAgICAsIG1faXNET01HbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU0RPTUds
b2JhbE9iamVjdD4oZ2xvYmFsT2JqZWN0LT52bSgpKSkKICAgICAgICAgLCBtX3B0cihidWZmZXIu
ZGF0YSgpKQogICAgICAgICAsIG1fZW5kKGJ1ZmZlci5kYXRhKCkgKyBidWZmZXIuc2l6ZSgpKQog
ICAgICAgICAsIG1fdmVyc2lvbigweEZGRkZGRkZGKQpAQCAtMjA0OCw3ICsyMDQ1LDcgQEAgY2xh
c3MgQ2xvbmVEZXNlcmlhbGl6ZXIgOiBDbG9uZUJhc2UgewogICAgICAgICBpZiAoIXJlYWQoYnl0
ZUxlbmd0aCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIEpTT2JqZWN0KiBh
cnJheUJ1ZmZlck9iaiA9IGFzT2JqZWN0KHJlYWRUZXJtaW5hbCgpKTsKLSAgICAgICAgaWYgKCFh
cnJheUJ1ZmZlck9iaiB8fCAhYXJyYXlCdWZmZXJPYmotPmluaGVyaXRzKHZtLCBKU0FycmF5QnVm
ZmVyOjppbmZvKCkpKQorICAgICAgICBpZiAoIWFycmF5QnVmZmVyT2JqIHx8ICFhcnJheUJ1ZmZl
ck9iai0+aW5oZXJpdHM8SlNBcnJheUJ1ZmZlcj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgICAgIHVuc2lnbmVkIGVsZW1lbnRTaXplID0gdHlwZWRBcnJheUVsZW1lbnRT
aXplKGFycmF5QnVmZmVyVmlld1N1YnRhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGQ5ZWFmOGM2YjQ0NDcyOTdkNjA1
NmU1OTBmNzU4Y2RiOTdmYjY2NjUuLmM1OTdkNWExMzMxMjc4YTMzNWEyYzFhMDI3OTUwNjJjZDQ0
MTA3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC0zNDAwLDE2ICszNDAwLDE2IEBAIHN1YiBHZW5lcmF0ZU92ZXJsb2Fk
RGlzcGF0Y2hlcgogICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzV3Jh
cHBlclR5cGUoJHN1YnR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc0J1ZmZlclNvdXJjZVR5cGUo
JHN1YnR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHN1YnR5cGUtPm5hbWUg
ZXEgIkRPTVdpbmRvdyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRUb0ltcGxJ
bmNsdWRlcygiSlNET01XaW5kb3dQcm94eS5oIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5o
ZXJpdHModm0sIEpTRE9NV2luZG93UHJveHk6OmluZm8oKSkgfHwgYXNPYmplY3QoZGlzdGluZ3Vp
c2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNET01XaW5kb3c6OmluZm8oKSkpIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRv
dmVybG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rp
bmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNET01XaW5kb3dQcm94eT4odm0pIHx8IGFzT2JqZWN0
KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNET01XaW5kb3c+KHZtKSkiKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
JiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1aXNo
aW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0
cyh2bSwgSlMiIC4gJHN1YnR5cGUtPm5hbWUgLiAiOjppbmZvKCkpIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9h
ZCwgImRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hp
bmdBcmcpLT5pbmhlcml0czxKUyIgLiAkc3VidHlwZS0+bmFtZSAuICI+KHZtKSIpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAkb3ZlcmxvYWQgPSBHZXRPdmVybG9h
ZFRoYXRNYXRjaGVzKCRTLCAkZCwgXCYkaXNPYmplY3RPckVycm9yT3JET01FeGNlcHRpb25QYXJh
bWV0ZXIpOwotICAgICAgICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRv
dmVybG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGlu
Z3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNET01FeGNlcHRpb246OmluZm8oKSkiKTsKKyAg
ICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJk
aXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHM8SlNET01FeGNlcHRpb24+KHZtKSIpOwogCiAgICAgICAgICAgICAkb3Zlcmxv
YWQgPSBHZXRPdmVybG9hZFRoYXRNYXRjaGVzKCRTLCAkZCwgXCYkaXNPYmplY3RPckVycm9yUGFy
YW1ldGVyKTsKICAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgk
b3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rp
bmd1aXNoaW5nQXJnKS0+dHlwZSgpID09IEVycm9ySW5zdGFuY2VUeXBlIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmlu
ZGV4IGRiNGY0YjFmNDk3MzQ5ZTI3YmMwM2M4OTkxMDIyYjlhYWZiMmZiN2YuLjljZWJiNzc1NzU3
OWZkZjlmNzcwMjVhYzc5MjI5YzBkNjU4MjcyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC03MDIxLDE3ICs3
MDIxLDE3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RPdmVyCiAgICAgICAgIEpTVmFsdWUgZGlzdGlu
Z3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CiAgICAgICAgIGlmIChk
aXN0aW5ndWlzaGluZ0FyZy5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJu
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDJCb2R5KHN0YXRlLCBj
YXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlz
T2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNU
ZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3Qo
KSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE9iaj4odm0p
KQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZDJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYg
KGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdB
cmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2U6OmluZm8oKSkpCisgICAg
ICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1
aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2U+KHZtKSkKICAgICAg
ICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q1
Qm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5n
dWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5o
ZXJpdHModm0sIEpTRE9NU3RyaW5nTGlzdDo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0czxKU0RPTVN0cmluZ0xpc3Q+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q2Qm9keShzdGF0ZSwgY2FzdGVkVGhpcywg
dGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYm
IGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE9iajo6aW5m
bygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmpl
Y3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RPYmo+KHZtKSkKICAgICAgICAg
ICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4Qm9k
eShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlz
aGluZ0FyZy5pc09iamVjdCgpICYmIChhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVy
aXRzKHZtLCBKU0RPTVdpbmRvd1Byb3h5OjppbmZvKCkpIHx8IGFzT2JqZWN0KGRpc3Rpbmd1aXNo
aW5nQXJnKS0+aW5oZXJpdHModm0sIEpTRE9NV2luZG93OjppbmZvKCkpKSkKKyAgICAgICAgaWYg
KGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5n
QXJnKS0+aW5oZXJpdHM8SlNET01XaW5kb3dQcm94eT4odm0pIHx8IGFzT2JqZWN0KGRpc3Rpbmd1
aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNET01XaW5kb3c+KHZtKSkpCiAgICAgICAgICAgICByZXR1
cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kOUJvZHkoc3RhdGUs
IGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcu
aXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBK
U0Jsb2I6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgp
ICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNCbG9iPih2bSkpCiAg
ICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kMTNCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAgaWYgKGhh
c0l0ZXJhdG9yTWV0aG9kKCpzdGF0ZSwgZGlzdGluZ3Vpc2hpbmdBcmcpKQogICAgICAgICAgICAg
cmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDdCb2R5KHN0
YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKQEAgLTcwNDUsNyArNzA0NSw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2RPdmVyCiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBz
dGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0Fy
Zy5pc1VuZGVmaW5lZCgpKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3Bl
KTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3Qo
ZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNCbG9iOjppbmZvKCkpKQorICAgICAg
ICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlz
aGluZ0FyZyktPmluaGVyaXRzPEpTQmxvYj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEzQm9keShzdGF0ZSwgY2FzdGVk
VGhpcywgdGhyb3dTY29wZSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc051bWJl
cigpKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKQEAgLTcwOTYs
NyArNzA5Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAgICAgIEpTVmFsdWUgZGlz
dGluZ3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CiAgICAgICAgIGlm
IChkaXN0aW5ndWlzaGluZ0FyZy5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgcmV0
dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25h
bFBhcmFtZXRlcjJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAg
aWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hp
bmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0T2JqOjppbmZvKCkpKQorICAgICAgICBpZiAoZGlz
dGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZykt
PmluaGVyaXRzPEpTVGVzdE9iaj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcjJCb2R5
KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAgcmV0dXJuIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcjFC
b2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICB9CkBAIC03MTA0LDcgKzcx
MDQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aAogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1
aXNoaW5nQXJnID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwogICAgICAgICBpZiAoZGlz
dGluZ3Vpc2hpbmdBcmcuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJh
bWV0ZXIyQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChk
aXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHModm0sIEpTVGVzdE9iajo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0czxKU1Rlc3RPYmo+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIyQm9keShzdGF0
ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CiAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIxQm9keShz
dGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CiAgICAgfQpAQCAtNzE0Nyw5ICs3MTQ3LDkg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RkOjpt
aW48c2l6ZV90PigxLCBzdGF0ZS0+YXJndW1lbnRDb3VudCgpKTsKICAgICBpZiAoYXJnc0NvdW50
ID09IDEpIHsKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0FyZyA9IHN0YXRlLT51bmNo
ZWNrZWRBcmd1bWVudCgwKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0
KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0T2Jq
OjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBh
c09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE9iaj4odm0pKQogICAg
ICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2Nv
cGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVj
dChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3ROb2RlOjppbmZvKCkpKQor
ICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0
aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE5vZGU+KHZtKSkKICAgICAgICAgICAgIHJl
dHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGlu
Z3Vpc2hpbmdVbmlvbjFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAg
ICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCiAgICAgICAgICAgICByZXR1cm4g
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNo
aW5nVW5pb24yQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CkBAIC03MTk0LDEx
ICs3MTk0LDExIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAgc2l6ZV90IGFyZ3NDb3Vu
dCA9IHN0ZDo6bWluPHNpemVfdD4oMSwgc3RhdGUtPmFyZ3VtZW50Q291bnQoKSk7CiAgICAgaWYg
KGFyZ3NDb3VudCA9PSAxKSB7CiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBz
dGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0Fy
Zy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0s
IEpTVGVzdE9iajo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2Jq
ZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RPYmo+
KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMUJvZHkoc3RhdGUsIGNhc3RlZFRo
aXMsIHRocm93U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3Qo
KSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3ROb2Rl
OjppbmZvKCkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBh
c09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE5vZGU+KHZtKSkKICAg
ICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93
U2NvcGUpOwotICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09i
amVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKHZtLCBKU1Rlc3RJbnRlcmZhY2U6Omlu
Zm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2Jq
ZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0SW50ZXJmYWNlPih2bSkpCiAg
ICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9uczJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJv
d1Njb3BlKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCiAgICAg
ICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
V2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9uczJCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Nj
b3BlKTsKQEAgLTcyNDcsOSArNzI0Nyw5IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAg
c2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4oMiwgc3RhdGUtPmFyZ3VtZW50Q291
bnQoKSk7CiAgICAgaWYgKGFyZ3NDb3VudCA9PSAyKSB7CiAgICAgICAgIEpTVmFsdWUgZGlzdGlu
Z3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMSk7Ci0gICAgICAgIGlmIChk
aXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHModm0sIEpTVGVzdE9iajo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0czxKU1Rlc3RPYmo+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbjFCb2R5
KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNo
aW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0
cyh2bSwgSlNUZXN0Tm9kZTo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rl
c3ROb2RlPih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24yQm9keShzdGF0ZSwg
Y2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CiAgICAgfQogICAgIHJldHVybiBhcmdzQ291bnQgPCAy
ID8gdGhyb3dWTUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihzdGF0ZSkpIDogdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CkBA
IC03MjkzLDkgKzcyOTMsOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZQogICAgICAgICBKU1Zh
bHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwogICAg
ICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAg
ICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxl
VW5pb24xQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChk
aXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHModm0sIEpTVGVzdE9iajo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1
aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0czxKU1Rlc3RPYmo+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24xQm9keShzdGF0ZSwgY2FzdGVkVGhp
cywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgp
ICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHModm0sIEpTVGVzdE5vZGU6
OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFz
T2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0Tm9kZT4odm0pKQogICAg
ICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVs
bGFibGVVbmlvbjFCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAg
aWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCiAgICAgICAgICAgICByZXR1cm4ganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uMkJvZHkoc3Rh
dGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwpAQCAtNzM5NCw3ICs3Mzk0LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRXaXRoTnVsbGFibGUKICAgICBzaXplX3QgYXJnc0NvdW50ID0gc3RkOjptaW48c2l6ZV90
PigyLCBzdGF0ZS0+YXJndW1lbnRDb3VudCgpKTsKICAgICBpZiAoYXJnc0NvdW50ID09IDIpIHsK
ICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0FyZyA9IHN0YXRlLT51bmNoZWNrZWRBcmd1
bWVudCgxKTsKLSAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNP
YmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyh2bSwgSlNUZXN0Tm9kZTo6aW5mbygp
KSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3Qo
ZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3ROb2RlPih2bSkpCiAgICAgICAgICAg
ICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5v
bkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVyMUJvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2Nv
cGUpOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKICAgICAgICAg
ICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxl
Tm9uRGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIyQm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dT
Y29wZSk7CkBAIC03OTg0LDcgKzc5ODQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZU92ZXJsb2FkZQogICAg
IHNpemVfdCBhcmdzQ291bnQgPSBzdGQ6Om1pbjxzaXplX3Q+KDEsIHN0YXRlLT5hcmd1bWVudENv
dW50KCkpOwogICAgIGlmIChhcmdzQ291bnQgPT0gMSkgewogICAgICAgICBKU1ZhbHVlIGRpc3Rp
bmd1aXNoaW5nQXJnID0gc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgICAgICBpZiAo
ZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0Fy
ZyktPmluaGVyaXRzKHZtLCBKU0ZldGNoUmVxdWVzdDo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcp
LT5pbmhlcml0czxKU0ZldGNoUmVxdWVzdD4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb24yQm9keShz
dGF0ZSwgY2FzdGVkVGhpcywgV1RGTW92ZShwcm9taXNlKSwgdGhyb3dTY29wZSk7CiAgICAgICAg
IGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc051bWJlcigpKQogICAgICAgICAgICAgcmV0dXJuIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb24xQm9k
eShzdGF0ZSwgY2FzdGVkVGhpcywgV1RGTW92ZShwcm9taXNlKSwgdGhyb3dTY29wZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggNjBmZDUyMjdk
OWFlMjcyZjZkMDEzZjliZWQ5MzZkNjM1NTM3ZmVhMC4uMTk3ZWNmOTc4N2JkMTNhYjNmYTIwMDdl
ZGM0YjU0Njk2MThlYzZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmNwcApAQCAtMTQ4LDExICsxNDgsMTEgQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcjoK
ICAgICB9CiAgICAgaWYgKGFyZ3NDb3VudCA9PSAxKSB7CiAgICAgICAgIEpTVmFsdWUgZGlzdGlu
Z3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgICAgIGlmIChk
aXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHModm0sIEpTQXJyYXlCdWZmZXI6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0
aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+
aW5oZXJpdHM8SlNBcnJheUJ1ZmZlcj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVj
dEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMxKHN0YXRlKTsKLSAgICAgICAgaWYgKGRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5p
bmhlcml0cyh2bSwgSlNBcnJheUJ1ZmZlclZpZXc6OmluZm8oKSkpCisgICAgICAgIGlmIChkaXN0
aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+
aW5oZXJpdHM8SlNBcnJheUJ1ZmZlclZpZXc+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBjb25z
dHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzMihzdGF0ZSk7Ci0gICAgICAgIGlmIChk
aXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHModm0sIEpTQmxvYjo6aW5mbygpKSkKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNo
aW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0
czxKU0Jsb2I+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RKU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzMyhzdGF0ZSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5p
c051bWJlcigpKQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnM1KHN0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9j
L2NfaW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAK
aW5kZXggNzMxYTZlODJiNGQzM2FhZTA4MWRlZDY2OGU1YjQwZTNiNTBhODliMC4uMzk4YjdiZTE2
NDQxYmY0ZDkwZmFjYTFiNWViZTdjYWEzMjI0MDIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2Mv
Y19pbnN0YW5jZS5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCBKU1ZhbHVlIENJbnN0YW5jZTo6aW52
b2tlTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgUnVudGltZU1ldGhvZCogcnVudGltZU1ldGhvZCkK
ICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAotICAgIGlmICghYXNPYmplY3QocnVudGltZU1ldGhvZCktPmluaGVyaXRz
KHZtLCBDUnVudGltZU1ldGhvZDo6aW5mbygpKSkKKyAgICBpZiAoIWFzT2JqZWN0KHJ1bnRpbWVN
ZXRob2QpLT5pbmhlcml0czxDUnVudGltZU1ldGhvZD4odm0pKQogICAgICAgICByZXR1cm4gdGhy
b3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBpbnZva2Ug
bm9uLXBsdWctaW4gbWV0aG9kIG9uIHBsdWctaW4gb2JqZWN0LiIpKTsKIAogICAgIENNZXRob2Qq
IG1ldGhvZCA9IHN0YXRpY19jYXN0PENNZXRob2QqPihydW50aW1lTWV0aG9kLT5tZXRob2QoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3Qu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KaW5kZXgg
ZTgyYzU1NzNiOTVlYjcyY2ExMzY1Mzc1MDcwZGE4ODY5NjgxZWU5MC4uZWEyNDczZGFjZTU4NjA2
ZDUzODljOWU3NTBmYWI3ODM5Zjk0NzUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9v
YmpjL1dlYlNjcmlwdE9iamVjdC5tbQpAQCAtNTcwLDExICs1NzAsMTEgQEAgKyAoaWQpX2NvbnZl
cnRWYWx1ZVRvT2JqY1ZhbHVlOihKU0M6OkpTVmFsdWUpdmFsdWUgb3JpZ2luUm9vdE9iamVjdDoo
Um9vdE9iamVjdCoKICAgICAgICAgSlNDOjpWTSYgdm0gPSByb290T2JqZWN0LT5nbG9iYWxPYmpl
Y3QoKS0+dm0oKTsKICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwogCi0gICAgICAgIGlm
IChvYmplY3QtPmluaGVyaXRzKHZtLCBKU0hUTUxFbGVtZW50OjppbmZvKCkpKSB7CisgICAgICAg
IGlmIChvYmplY3QtPmluaGVyaXRzPEpTSFRNTEVsZW1lbnQ+KHZtKSkgewogICAgICAgICAgICAg
Ly8gUGx1Z2luIGVsZW1lbnRzIGNhY2hlIHRoZSBpbnN0YW5jZSBpbnRlcm5hbGx5LgogICAgICAg
ICAgICAgaWYgKE9iamNJbnN0YW5jZSogaW5zdGFuY2UgPSBzdGF0aWNfY2FzdDxPYmpjSW5zdGFu
Y2UqPihwbHVnaW5JbnN0YW5jZShqc0Nhc3Q8SlNIVE1MRWxlbWVudCo+KG9iamVjdCktPndyYXBw
ZWQoKSkpKQogICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZS0+Z2V0T2JqZWN0KCk7Ci0g
ICAgICAgIH0gZWxzZSBpZiAob2JqZWN0LT5pbmhlcml0cyh2bSwgT2JqQ1J1bnRpbWVPYmplY3Q6
OmluZm8oKSkpIHsKKyAgICAgICAgfSBlbHNlIGlmIChvYmplY3QtPmluaGVyaXRzPE9iakNSdW50
aW1lT2JqZWN0Pih2bSkpIHsKICAgICAgICAgICAgIE9iakNSdW50aW1lT2JqZWN0KiBydW50aW1l
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8T2JqQ1J1bnRpbWVPYmplY3QqPihvYmplY3QpOwogICAgICAg
ICAgICAgT2JqY0luc3RhbmNlKiBpbnN0YW5jZSA9IHJ1bnRpbWVPYmplY3QtPmdldEludGVybmFs
T2JqQ0luc3RhbmNlKCk7CiAgICAgICAgICAgICBpZiAoaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQppbmRleCAzZmJhZTMzNzRkMjRmZmQ1NjVm
ZWU2ZWQ4NzYzNjMwNThlNGYzZDQ4Li5iN2QyNGQ0NGEyNGE2YjA1NTI3NzQ1ZjYxZTk0NzM3ZGU5
Yjc5NjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3Rh
bmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0K
QEAgLTIxMiw3ICsyMTIsNyBAQCBKU0M6OkpTVmFsdWUgT2JqY0luc3RhbmNlOjppbnZva2VNZXRo
b2QoRXhlY1N0YXRlKiBleGVjLCBSdW50aW1lTWV0aG9kKiBydW50aW1lTQogICAgIEpTQzo6Vk0m
IHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAKLSAgICBpZiAoIWFzT2JqZWN0KHJ1bnRpbWVNZXRob2QpLT5pbmhlcml0cyh2bSwgT2Jq
Q1J1bnRpbWVNZXRob2Q6OmluZm8oKSkpCisgICAgaWYgKCFhc09iamVjdChydW50aW1lTWV0aG9k
KS0+aW5oZXJpdHM8T2JqQ1J1bnRpbWVNZXRob2Q+KHZtKSkKICAgICAgICAgcmV0dXJuIHRocm93
VHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gaW52b2tlIG5v
bi1wbHVnLWluIG1ldGhvZCBvbiBwbHVnLWluIG9iamVjdC4iKSk7CiAKICAgICBPYmpjTWV0aG9k
ICptZXRob2QgPSBzdGF0aWNfY2FzdDxPYmpjTWV0aG9kKj4ocnVudGltZU1ldGhvZC0+bWV0aG9k
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1l
Lm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDBh
ODljODU4NzQ0MDI4YmM5MzUzNzI5MzQyNmE5ZWEwYzhjYjk1YjguLjE2M2MxZGE2M2E5OGIzZDE5
OGViMGExNzU5YTE5MDJkZTM3ZjVhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUubW0KQEAgLTI0OSw3ICsyNDksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRz
KHZtLCBPYmpDUnVudGltZU9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAoIXRoaXNWYWx1ZS5pbmhl
cml0czxPYmpDUnVudGltZU9iamVjdD4odm0pKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihleGVjLCBzY29wZSk7CiAKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzVW5kZWZpbmVkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAppbmRleCBjMzUxODJiZGNh
ZjFhZDdlMzYyYzlmODJkMGMzYWNjMjNjNDExNDg3Li42N2VlNzVkNDRiYzExYmNkMTBkMmFjMzg3
MmRhMGVlZDkxYTYzYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5j
cHAKQEAgLTkyLDE0ICs5MiwxNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsUnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgUmVmUHRyPEluc3RhbmNl
PiBpbnN0YW5jZTsKIAogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7
Ci0gICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgUnVudGltZU9iamVjdDo6aW5mbygpKSkg
eworICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8UnVudGltZU9iamVjdD4odm0pKSB7CiAgICAg
ICAgIFJ1bnRpbWVPYmplY3QqIHJ1bnRpbWVPYmplY3QgPSBzdGF0aWNfY2FzdDxSdW50aW1lT2Jq
ZWN0Kj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAgICAgIGluc3RhbmNlID0gcnVudGltZU9i
amVjdC0+Z2V0SW50ZXJuYWxJbnN0YW5jZSgpOwogICAgICAgICBpZiAoIWluc3RhbmNlKSAKICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoUnVudGltZU9iamVjdDo6dGhyb3dJbnZh
bGlkQWNjZXNzRXJyb3IoZXhlYywgc2NvcGUpKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBD
YWxsaW5nIGEgcnVudGltZSBvYmplY3Qgb2YgYSBwbHVnaW4gZWxlbWVudD8KLSAgICAgICAgaWYg
KHRoaXNWYWx1ZS5pbmhlcml0cyh2bSwgSlNIVE1MRWxlbWVudDo6aW5mbygpKSkKKyAgICAgICAg
aWYgKHRoaXNWYWx1ZS5pbmhlcml0czxKU0hUTUxFbGVtZW50Pih2bSkpCiAgICAgICAgICAgICBp
bnN0YW5jZSA9IHBsdWdpbkluc3RhbmNlKGpzQ2FzdDxKU0hUTUxFbGVtZW50Kj4oYXNPYmplY3Qo
dGhpc1ZhbHVlKSktPndyYXBwZWQoKSk7CiAgICAgICAgIGlmICghaW5zdGFuY2UpCiAgICAgICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCAxNWYwYTk0MWFkOGVmNTExOTBlNTQ2ZDdj
NTU5ZWNlMzVhODlhMjM2Li42YTcyODRmYTBhYmU1NzAxMTFhYjM5ZGNlNDFjM2U0NWY3NTA0ZTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTIyNCw3ICsy
MjQsNyBAQCBKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmRlZmF1bHRWYWx1ZShjb25zdCBKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByZQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsUnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAg
QVNTRVJUKGV4ZWMtPmpzQ2FsbGVlKCktPmluaGVyaXRzKGV4ZWMtPnZtKCksIFJ1bnRpbWVPYmpl
Y3Q6OmluZm8oKSkpOworICAgIEFTU0VSVChleGVjLT5qc0NhbGxlZSgpLT5pbmhlcml0czxSdW50
aW1lT2JqZWN0PihleGVjLT52bSgpKSk7CiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZShz
dGF0aWNfY2FzdDxSdW50aW1lT2JqZWN0Kj4oZXhlYy0+anNDYWxsZWUoKSktPmdldEludGVybmFs
SW5zdGFuY2UoKSk7CiAgICAgaW5zdGFuY2UtPmJlZ2luKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQg
PSBpbnN0YW5jZS0+aW52b2tlRGVmYXVsdE1ldGhvZChleGVjKTsKQEAgLTI0OSw3ICsyNDksNyBA
QCBDYWxsVHlwZSBSdW50aW1lT2JqZWN0OjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwsIENhbGxE
YXRhJiBjYWxsRGF0YSkKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxS
dW50aW1lQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTT2JqZWN0KiBjb25z
dHJ1Y3RvciA9IGV4ZWMtPmpzQ2FsbGVlKCk7Ci0gICAgQVNTRVJUKGNvbnN0cnVjdG9yLT5pbmhl
cml0cyhleGVjLT52bSgpLCBSdW50aW1lT2JqZWN0OjppbmZvKCkpKTsKKyAgICBBU1NFUlQoY29u
c3RydWN0b3ItPmluaGVyaXRzPFJ1bnRpbWVPYmplY3Q+KGV4ZWMtPnZtKCkpKTsKICAgICBSZWZQ
dHI8SW5zdGFuY2U+IGluc3RhbmNlKHN0YXRpY19jYXN0PFJ1bnRpbWVPYmplY3QqPihleGVjLT5q
c0NhbGxlZSgpKS0+Z2V0SW50ZXJuYWxJbnN0YW5jZSgpKTsKICAgICBpbnN0YW5jZS0+YmVnaW4o
KTsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9XZWJJbmplY3RlZFNjcmlwdEhvc3QuY3BwCmluZGV4IDU1NTI3N2JjYzRlZTE5NGZiMzI5
ODQxZDRkNDVkYjljNDc0ZWJlOWEuLjkwNjRiMjRhOGI1NmUzYTNjOTVkZDkyNDU5ZTBiM2NhYzVh
YTYwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNj
cmlwdEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNj
cmlwdEhvc3QuY3BwCkBAIC00NywxMyArNDcsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIEpT
VmFsdWUgV2ViSW5qZWN0ZWRTY3JpcHRIb3N0OjpzdWJ0eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIGlmICh2YWx1ZS5p
bmhlcml0cyh2bSwgSlNOb2RlOjppbmZvKCkpKQorICAgIGlmICh2YWx1ZS5pbmhlcml0czxKU05v
ZGU+KHZtKSkKICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxp
dGVyYWwoIm5vZGUiKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKHZtLCBKU05vZGVMaXN0Ojpp
bmZvKCkpKQorICAgIGlmICh2YWx1ZS5pbmhlcml0czxKU05vZGVMaXN0Pih2bSkpCiAgICAgICAg
IHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJhcnJheSIpKTsK
LSAgICBpZiAodmFsdWUuaW5oZXJpdHModm0sIEpTSFRNTENvbGxlY3Rpb246OmluZm8oKSkpCisg
ICAgaWYgKHZhbHVlLmluaGVyaXRzPEpTSFRNTENvbGxlY3Rpb24+KHZtKSkKICAgICAgICAgcmV0
dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImFycmF5IikpOwotICAg
IGlmICh2YWx1ZS5pbmhlcml0cyh2bSwgSlNET01FeGNlcHRpb246OmluZm8oKSkpCisgICAgaWYg
KHZhbHVlLmluaGVyaXRzPEpTRE9NRXhjZXB0aW9uPih2bSkpCiAgICAgICAgIHJldHVybiBqc05v
bnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJlcnJvciIpKTsKIAogICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwpAQCAtMTg1LDcgKzE4NSw3IEBAIEpTVmFsdWUgV2ViSW5qZWN0ZWRT
Y3JpcHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMoVk0mIHZtLCBFeGVjU3RhdGUqIGV4ZWMs
IEpTCiAKIGJvb2wgV2ViSW5qZWN0ZWRTY3JpcHRIb3N0Ojppc0hUTUxBbGxDb2xsZWN0aW9uKEpT
Qzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIHZhbHVlLmluaGVy
aXRzKHZtLCBKU0hUTUxBbGxDb2xsZWN0aW9uOjppbmZvKCkpOworICAgIHJldHVybiB2YWx1ZS5p
bmhlcml0czxKU0hUTUxBbGxDb2xsZWN0aW9uPih2bSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBNZXRob2QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE1ldGhvZC5jcHAKaW5kZXggZTU2MDg4ZjczMjE4YTRiYzdmMDkwNzg2OWU2ZGRl
ZjFlYTdjMDExOS4uOGYwZDRkZjRjZWY3ZTBjMWM4NDI5ZDhiYmZlN2JiYzI1ZDVlNWJjYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1l
dGhvZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE1ldGhvZC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbE1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKIAogICAgIC8vIENoZWNrIGlmIHdlJ3JlIGNhbGxp
bmcgYSBtZXRob2Qgb24gdGhlIHBsdWctaW4gc2NyaXB0IG9iamVjdC4KLSAgICBpZiAodGhpc1Zh
bHVlLmluaGVyaXRzKHZtLCBKU0hUTUxFbGVtZW50OjppbmZvKCkpKSB7CisgICAgaWYgKHRoaXNW
YWx1ZS5pbmhlcml0czxKU0hUTUxFbGVtZW50Pih2bSkpIHsKICAgICAgICAgSlNIVE1MRWxlbWVu
dCogZWxlbWVudCA9IGpzQ2FzdDxKU0hUTUxFbGVtZW50Kj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7
CiAKICAgICAgICAgLy8gVHJ5IHRvIGdldCB0aGUgc2NyaXB0IG9iamVjdCBmcm9tIHRoZSBlbGVt
ZW50CkBAIC03Nyw3ICs3Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxNZXRob2QoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgdGhpc1ZhbHVlID0gc2Ny
aXB0T2JqZWN0OwogICAgIH0KIAotICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHModm0sIEpTTlBP
YmplY3Q6OmluZm8oKSkpIHsKKyAgICBpZiAodGhpc1ZhbHVlLmluaGVyaXRzPEpTTlBPYmplY3Q+
KHZtKSkgewogICAgICAgICBKU05QT2JqZWN0KiBqc05QT2JqZWN0ID0ganNDYXN0PEpTTlBPYmpl
Y3QqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKIAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTlBPYmplY3QtPmNhbGxNZXRob2QoZXhlYywganNOUE1ldGhvZC0+bnBJZGVudGlmaWVy
KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXggMDdhNGUyMjBkNmMyZGI5MmE1OGMxZTlkYzdlMjQx
YTYzZjZhM2JkYS4uMWZhNTkwMTdhYTMzOTM1NWQzMmQ0NWMxNTA5ZGY1ZTg4NTQyZTQ4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE9iamVjdC5jcHAKQEAgLTI0MSw3ICsyNDEsNyBAQCBKU1ZhbHVlIEpTTlBPYmplY3Q6OmNh
bGxDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsTlBKU09iamVjdChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNPYmpl
Y3QqIG9iamVjdCA9IGV4ZWMtPmpzQ2FsbGVlKCk7Ci0gICAgQVNTRVJUKG9iamVjdC0+aW5oZXJp
dHMoZXhlYy0+dm0oKSwgSlNOUE9iamVjdDo6aW5mbygpKSk7CisgICAgQVNTRVJUKG9iamVjdC0+
aW5oZXJpdHM8SlNOUE9iamVjdD4oZXhlYy0+dm0oKSkpOwogCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0Nhc3Q8SlNOUE9iamVjdCo+KG9iamVjdCktPmNhbGxPYmplY3QoZXhlYykpOwog
fQpAQCAtMjYwLDcgKzI2MCw3IEBAIEpTQzo6Q2FsbFR5cGUgSlNOUE9iamVjdDo6Z2V0Q2FsbERh
dGEoSlNDOjpKU0NlbGwqIGNlbGwsIEpTQzo6Q2FsbERhdGEmIGNhbGxEYXRhCiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciA9IGV4ZWMtPmpzQ2FsbGVl
KCk7Ci0gICAgQVNTRVJUKGNvbnN0cnVjdG9yLT5pbmhlcml0cyhleGVjLT52bSgpLCBKU05QT2Jq
ZWN0OjppbmZvKCkpKTsKKyAgICBBU1NFUlQoY29uc3RydWN0b3ItPmluaGVyaXRzPEpTTlBPYmpl
Y3Q+KGV4ZWMtPnZtKCkpKTsKIAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNDYXN0PEpT
TlBPYmplY3QqPihjb25zdHJ1Y3RvciktPmNhbGxDb25zdHJ1Y3RvcihleGVjKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNP
YmplY3QuY3BwCmluZGV4IDgxY2E3MGVlOWRkMmFlM2Q3MDk5MzdlM2RjMmNjODFmZDgxZTlhNDAu
LmQxMjY3ZDc3ZTU3NTg2NjQxZjNkMGFhNGI5OTliM2UyNjliMzYyYzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3Qu
Y3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogTlBKU09iamVjdCogTlBK
U09iamVjdDo6Y3JlYXRlKFZNJiB2bSwgTlBSdW50aW1lT2JqZWN0TWFwKiBvYmplY3RNYXAsIEpT
T2JqZWN0KiBqc09iamVjdCkKIHsKICAgICAvLyBXZSBzaG91bGQgbmV2ZXIgaGF2ZSBhIEpTTlBP
YmplY3QgaW5zaWRlIGFuIE5QSlNPYmplY3QuCi0gICAgQVNTRVJUKCFqc09iamVjdC0+aW5oZXJp
dHModm0sIEpTTlBPYmplY3Q6OmluZm8oKSkpOworICAgIEFTU0VSVCghanNPYmplY3QtPmluaGVy
aXRzPEpTTlBPYmplY3Q+KHZtKSk7CiAKICAgICBOUEpTT2JqZWN0KiBucEpTT2JqZWN0ID0gdG9O
UEpTT2JqZWN0KGNyZWF0ZU5QT2JqZWN0KDAsIG5wQ2xhc3MoKSkpOwogICAgIG5wSlNPYmplY3Qt
PmluaXRpYWxpemUodm0sIG9iamVjdE1hcCwganNPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IGFmZDM0MjM5YWIwMzVlMjk5M2U5
ZWFlYzRmZjljZjc2ZmQ1ZTljNDYuLjEwMGY2NzQ2ZmQ5ZDUxZGMzMDFiM2U3MjFlZjNjOGEzNDY2
MGRiY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHAKQEAgLTczOCw3ICs3MzgsNyBAQCBKU1ZhbHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JX
b3JsZChJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUqIGZpbGVIYW5kbGUsIEluagogCiBTdHJpbmcg
V2ViRnJhbWU6OmNvdW50ZXJWYWx1ZShKU09iamVjdFJlZiBlbGVtZW50KQogewotICAgIGlmICgh
dG9KUyhlbGVtZW50KS0+aW5oZXJpdHMoKnRvSlMoZWxlbWVudCktPnZtKCksIEpTRWxlbWVudDo6
aW5mbygpKSkKKyAgICBpZiAoIXRvSlMoZWxlbWVudCktPmluaGVyaXRzPEpTRWxlbWVudD4oKnRv
SlMoZWxlbWVudCktPnZtKCkpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICByZXR1
cm4gY291bnRlclZhbHVlRm9yRWxlbWVudCgmanNDYXN0PEpTRWxlbWVudCo+KHRvSlMoZWxlbWVu
dCkpLT53cmFwcGVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9N
L0RPTS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET00ubW0KaW5kZXggNTlmMTM2
MzQyOTEyZWEwMTA3MTFiMjUyNjVmMjIyNGMzNjVkYjY4Zi4uZTdjZTYzMWQwYTdkOGFhOGUyMGQ4
MWQ4ZTRhNzZmYzQ0MTBjODUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
RE9NL0RPTS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NLm1tCkBAIC01
MzAsNyArNTMwLDcgQEAgQGltcGxlbWVudGF0aW9uIERPTU5vZGUgKFdlYlByaXZhdGUpCiArIChp
ZClfbm9kZUZyb21KU1dyYXBwZXI6KEpTT2JqZWN0UmVmKWpzV3JhcHBlcgogewogICAgIEpTT2Jq
ZWN0KiBvYmplY3QgPSB0b0pTKGpzV3JhcHBlcik7Ci0gICAgaWYgKCFvYmplY3QtPmluaGVyaXRz
KCpvYmplY3QtPnZtKCksIEpTTm9kZTo6aW5mbygpKSkKKyAgICBpZiAoIW9iamVjdC0+aW5oZXJp
dHM8SlNOb2RlPigqb2JqZWN0LT52bSgpKSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICByZXR1
cm4ga2l0KCZqc0Nhc3Q8SlNOb2RlKj4ob2JqZWN0KS0+d3JhcHBlZCgpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCA4NTE1NzRmODczYzI0MjcyNjE2
YjAxZWQzNTQ0ODU2OGMzYTE1OGMyLi42ZjJkMjU5ZjU5ZDA0MTBhNWU0Nzc0NDZmNTQ5NzAyMzYz
NTQyZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0x
NDUzLDcgKzE0NTMsNyBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZGVtYXJz
aGFsVmFsdWVzKEV4ZWNTdGF0ZSogZXhlYywgZGF0YV90IHZhbHVlcwogCiB2b2lkIE5ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eTo6cmV0YWluTG9jYWxPYmplY3QoSlNDOjpKU1ZhbHVlIHZhbHVl
KQogewotICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pbmhlcml0cygqdmFsdWUu
Z2V0T2JqZWN0KCktPnZtKCksIFByb3h5UnVudGltZU9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAo
IXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFsdWUuaW5oZXJpdHM8UHJveHlSdW50aW1lT2JqZWN0Pigq
dmFsdWUuZ2V0T2JqZWN0KCktPnZtKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2xvY2Fs
T2JqZWN0cy5yZXRhaW4oYXNPYmplY3QodmFsdWUpKTsKQEAgLTE0NjEsNyArMTQ2MSw3IEBAIHZv
aWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpyZXRhaW5Mb2NhbE9iamVjdChKU0M6OkpT
VmFsdWUgdmFsdWUpCiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpyZWxlYXNl
TG9jYWxPYmplY3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmICghdmFsdWUuaXNPYmpl
Y3QoKSB8fCB2YWx1ZS5pbmhlcml0cygqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCksIFByb3h5UnVu
dGltZU9iamVjdDo6aW5mbygpKSkKKyAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFsdWUu
aW5oZXJpdHM8UHJveHlSdW50aW1lT2JqZWN0PigqdmFsdWUuZ2V0T2JqZWN0KCktPnZtKCkpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX2xvY2FsT2JqZWN0cy5yZWxlYXNlKGFzT2JqZWN0KHZh
bHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3Rl
ZC9Qcm94eUluc3RhbmNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0
ZWQvUHJveHlJbnN0YW5jZS5tbQppbmRleCAyNmFiM2ViMGQ4NWU5ZGMyOTQxZDkxZmNlMTc5OGUz
ZGUxZmFkMDUyLi4zNjg3YmMxYmMyZmM1NGJmOTg1NWYzNTJiYmNjZGYxZjkxMTYwMzM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3Rh
bmNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5
SW5zdGFuY2UubW0KQEAgLTIyMyw3ICsyMjMsNyBAQCBKU1ZhbHVlIFByb3h5SW5zdGFuY2U6Omlu
dm9rZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6UnVudGltZU1ldGhvZCogcnVudGltZQog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCi0gICAgaWYgKCFhc09iamVjdChydW50aW1lTWV0aG9kKS0+aW5oZXJpdHMo
dm0sIFByb3h5UnVudGltZU1ldGhvZDo6aW5mbygpKSkKKyAgICBpZiAoIWFzT2JqZWN0KHJ1bnRp
bWVNZXRob2QpLT5pbmhlcml0czxQcm94eVJ1bnRpbWVNZXRob2Q+KHZtKSkKICAgICAgICAgcmV0
dXJuIHRocm93VHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8g
aW52b2tlIG5vbi1wbHVnLWluIG1ldGhvZCBvbiBwbHVnLWluIG9iamVjdC4iKSk7CiAKICAgICBQ
cm94eU1ldGhvZCogbWV0aG9kID0gc3RhdGljX2Nhc3Q8UHJveHlNZXRob2QqPihydW50aW1lTWV0
aG9kLT5tZXRob2QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KaW5kZXggZWMyNmIyYjk0NTZjMjZiNzZjYzE2ZmRiMjg0NzA0OWQ2YmU0NmY0OC4uNDM1YTU5
NzMyNDJjYWM1OWM2ODgxYTQ1Y2I1ZWQ4MjUzYTE3NmIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNzYzNyw3ICs3NjM3LDcgQEAgc3RhdGljIE5T
QXBwbGVFdmVudERlc2NyaXB0b3IqIGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywg
SlNDOjpKU1ZhbHVlIGoKICAgICB9CiAgICAgaWYgKGpzVmFsdWUuaXNPYmplY3QoKSkgewogICAg
ICAgICBKU09iamVjdCogb2JqZWN0ID0ganNWYWx1ZS5nZXRPYmplY3QoKTsKLSAgICAgICAgaWYg
KG9iamVjdC0+aW5oZXJpdHModm0sIERhdGVJbnN0YW5jZTo6aW5mbygpKSkgeworICAgICAgICBp
ZiAob2JqZWN0LT5pbmhlcml0czxEYXRlSW5zdGFuY2U+KHZtKSkgewogICAgICAgICAgICAgRGF0
ZUluc3RhbmNlKiBkYXRlID0gc3RhdGljX2Nhc3Q8RGF0ZUluc3RhbmNlKj4ob2JqZWN0KTsKICAg
ICAgICAgICAgIGRvdWJsZSBtcyA9IGRhdGUtPmludGVybmFsTnVtYmVyKCk7CiAgICAgICAgICAg
ICBpZiAoIXN0ZDo6aXNuYW4obXMpKSB7CkBAIC03NjQ2LDcgKzc2NDYsNyBAQCBzdGF0aWMgTlNB
cHBsZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBK
U0M6OkpTVmFsdWUgagogICAgICAgICAgICAgICAgIGlmIChub0VyciA9PSBVQ0NvbnZlcnRDRkFi
c29sdXRlVGltZVRvTG9uZ0RhdGVUaW1lKHV0Y1NlY29uZHMsICZsZHQpKQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gW05TQXBwbGVFdmVudERlc2NyaXB0b3IgZGVzY3JpcHRvcldpdGhEZXNj
cmlwdG9yVHlwZTp0eXBlTG9uZ0RhdGVUaW1lIGJ5dGVzOiZsZHQgbGVuZ3RoOnNpemVvZihsZHQp
XTsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChvYmplY3QtPmluaGVyaXRzKHZt
LCBKU0FycmF5OjppbmZvKCkpKSB7CisgICAgICAgIH0gZWxzZSBpZiAob2JqZWN0LT5pbmhlcml0
czxKU0FycmF5Pih2bSkpIHsKICAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNo
U2V0PEpTT2JqZWN0Kj4+IHZpc2l0ZWRFbGVtczsKICAgICAgICAgICAgIGlmICh2aXNpdGVkRWxl
bXMuZ2V0KCkuYWRkKG9iamVjdCkuaXNOZXdFbnRyeSkgewogICAgICAgICAgICAgICAgIEpTQXJy
YXkqIGFycmF5ID0gc3RhdGljX2Nhc3Q8SlNBcnJheSo+KG9iamVjdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggOTM3YTI1N2FhMTIwOGI2NjY1OGZlNjQyMzFlNDI3MDE0
MTIyOTJhNi4uODdkYzkwYjVjMGY5NzJhYWI3ZGZiZTllZjQyNmFlNzJlZDc0NDU2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcApAQCAtMjAwMiw3ICsyMDAyLDcgQEAgSFJFU1VM
VCBXZWJGcmFtZTo6c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEluU2NyaXB0V29ybGQoSVdl
YlNjcmlwdFdvcmxkKiBpV28KIAogICAgIC8vIFRoZSBnbG9iYWwgb2JqZWN0IGlzIHByb2JhYmx5
IGEgcHJveHkgb2JqZWN0PyAtIGlmIHNvLCB3ZSBrbm93IGhvdyB0byB1c2UgdGhpcyEKICAgICBK
U0M6OkpTT2JqZWN0KiBnbG9iYWxPYmplY3RPYmogPSB0b0pTKGdsb2JhbE9iamVjdFJlZik7Ci0g
ICAgaWYgKGdsb2JhbE9iamVjdE9iai0+aW5oZXJpdHMoKmdsb2JhbE9iamVjdE9iai0+dm0oKSwg
SlNET01XaW5kb3dQcm94eTo6aW5mbygpKSkKKyAgICBpZiAoZ2xvYmFsT2JqZWN0T2JqLT5pbmhl
cml0czxKU0RPTVdpbmRvd1Byb3h5PigqZ2xvYmFsT2JqZWN0T2JqLT52bSgpKSkKICAgICAgICAg
YW55V29ybGRHbG9iYWxPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1Byb3h5Kj4oZ2xv
YmFsT2JqZWN0T2JqKS0+d2luZG93KCk7CiAKICAgICAvLyBHZXQgdGhlIGZyYW1lIGZyb21lIHRo
ZSBnbG9iYWwgb2JqZWN0IHdlJ3ZlIHNldHRsZWQgb24uCg==
</data>
<flag name="review"
          id="353952"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>