<?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>202187</bug_id>
          
          <creation_ts>2019-09-25 00:30:36 -0700</creation_ts>
          <short_desc>[JSC] Date functions should have intrinsic</short_desc>
          <delta_ts>2019-10-30 17:37:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit 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>203550</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1573971</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-25 00:30:36 -0700</bug_when>
    <thetext>It is super easy. Affects on JetStream2/date-format-xparb-SP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584376</commentid>
    <comment_count>1</comment_count>
      <attachid>382045</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-28 00:17:52 -0700</bug_when>
    <thetext>Created attachment 382045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584378</commentid>
    <comment_count>2</comment_count>
      <attachid>382046</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-28 00:21:41 -0700</bug_when>
    <thetext>Created attachment 382046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584385</commentid>
    <comment_count>3</comment_count>
      <attachid>382048</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-28 00:55:52 -0700</bug_when>
    <thetext>Created attachment 382048
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584575</commentid>
    <comment_count>4</comment_count>
      <attachid>382048</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-10-28 13:22:15 -0700</bug_when>
    <thetext>Comment on attachment 382048
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:4079
&gt; +    case DateGetInt: {
&gt; +        setNonCellTypeForNode(node, SpecBytecodeNumber);
&gt; +        break;
&gt; +    }
&gt; +
&gt; +    case DateGetFloat: {
&gt; +        setNonCellTypeForNode(node, SpecFullDouble);
&gt; +        break;
&gt; +    }

It&apos;s weird to call these DateGetInt and DateGetFloat which suggests that the distinction is between Int and Float, when the real distinction is between JSNumber (int or double) and MachineDouble.  What do you think of renaming these as:
DateGetInt =&gt; DateGetJSNumber or DateGetJSEncodeableNumber
DateGetFloat = DateGetMachineDouble</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584817</commentid>
    <comment_count>5</comment_count>
      <attachid>382048</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-28 20:31:49 -0700</bug_when>
    <thetext>Comment on attachment 382048
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:4079
&gt;&gt; +    }
&gt; 
&gt; It&apos;s weird to call these DateGetInt and DateGetFloat which suggests that the distinction is between Int and Float, when the real distinction is between JSNumber (int or double) and MachineDouble.  What do you think of renaming these as:
&gt; DateGetInt =&gt; DateGetJSNumber or DateGetJSEncodeableNumber
&gt; DateGetFloat = DateGetMachineDouble

Sounds fine to me. Changed :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584818</commentid>
    <comment_count>6</comment_count>
      <attachid>382154</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-28 20:36:10 -0700</bug_when>
    <thetext>Created attachment 382154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584836</commentid>
    <comment_count>7</comment_count>
      <attachid>382159</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-28 22:28:07 -0700</bug_when>
    <thetext>Created attachment 382159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585176</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-29 16:48:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/56726985&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585254</commentid>
    <comment_count>9</comment_count>
      <attachid>382273</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-29 20:38:25 -0700</bug_when>
    <thetext>Created attachment 382273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585259</commentid>
    <comment_count>10</comment_count>
      <attachid>382275</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-29 20:49:40 -0700</bug_when>
    <thetext>Created attachment 382275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585660</commentid>
    <comment_count>11</comment_count>
      <attachid>382275</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-10-30 16:34:39 -0700</bug_when>
    <thetext>Comment on attachment 382275
Patch

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

r=me with comments.

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:4072
&gt; +        setNonCellTypeForNode(node, SpecBytecodeNumber);

Can say this is SpecInt32Only | SpecDoublePureNaN instead of SpecBytecodeNumber?

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:3203
&gt; +            setResult(addToGraph(DateGetMachineDouble, OpInfo(intrinsic), OpInfo(), base));

Can we rename this to date get time?

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:3229
&gt; +            setResult(addToGraph(DateGetJSNumber, OpInfo(intrinsic), OpInfo(prediction), base));

Hmm, can we rename this to DateGetInt32OrNaN? This implies that it can return any JSNumber but it can only vend an int32 or NaN.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:14029
&gt; +

Please remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585678</commentid>
    <comment_count>12</comment_count>
      <attachid>382275</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-30 17:09:55 -0700</bug_when>
    <thetext>Comment on attachment 382275
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:4072
&gt;&gt; +        setNonCellTypeForNode(node, SpecBytecodeNumber);
&gt; 
&gt; Can say this is SpecInt32Only | SpecDoublePureNaN instead of SpecBytecodeNumber?

Sounds nice. Fixed.

&gt;&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:3203
&gt;&gt; +            setResult(addToGraph(DateGetMachineDouble, OpInfo(intrinsic), OpInfo(), base));
&gt; 
&gt; Can we rename this to date get time?

Changed.

&gt;&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:3229
&gt;&gt; +            setResult(addToGraph(DateGetJSNumber, OpInfo(intrinsic), OpInfo(prediction), base));
&gt; 
&gt; Hmm, can we rename this to DateGetInt32OrNaN? This implies that it can return any JSNumber but it can only vend an int32 or NaN.

Sounds better. Fixed.

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:14029
&gt;&gt; +
&gt; 
&gt; Please remove.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585690</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-30 17:37:11 -0700</bug_when>
    <thetext>Committed r251826: &lt;https://trac.webkit.org/changeset/251826&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382045</attachid>
            <date>2019-10-28 00:17:52 -0700</date>
            <delta_ts>2019-10-28 00:21:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202187-20191028001752.patch</filename>
            <type>text/plain</type>
            <size>110711</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZjQ1OGU0MzM2NGQ1ZjZjMDJkN2MzOTk3ODYzNjVhY2NmOTU0NmQxLi41OWNhNzQ1YzEyY2RhZWU2
ZjJlOGFlOTRlYzE1ZGYyNzA1MGEyM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTMgQEAKKzIwMTktMTAtMjggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBEYXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBpbnRyaW5zaWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE4Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYnl0ZWNv
ZGUvU3BlY3VsYXRlZFR5cGUuY3BwOgorICAgICAgICAoSlNDOjpkdW1wU3BlY3VsYXRpb24pOgor
ICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8pOgorICAgICAgICAoSlNDOjpz
cGVjdWxhdGlvbkZyb21KU1R5cGUpOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21TdHJp
bmcpOgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SGVhcC5oOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50
cmluc2ljQ2FsbCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRm
Zy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmR1bXApOgorICAgICAg
ICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFs
KToKKyAgICAgICAgKiBkZmcvREZHSGVhcExvY2F0aW9uLmg6CisgICAgICAgICogZGZnL0RGR05v
ZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNJbnRyaW5zaWMpOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6OmludHJpbnNpYyk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFz
SGVhcFByZWRpY3Rpb24pOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAq
IGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgor
ICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVj
dXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRGF0ZU9iamVjdCk6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
RGF0ZUdldCk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAoV1RGOjpw
cmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAgICAgICAoSlND
OjpERkc6OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2VsbCk6CisgICAg
ICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwOgorICAgICAgICAqIGZ0bC9G
VExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29t
cGlsZURhdGVHZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dE
YXRlT2JqZWN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3Vs
YXRlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlRGF0
ZU9iamVjdCk6CisgICAgICAgICogcnVudGltZS9EYXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAg
IChKU0M6OmZvcm1hdERhdGVUaW1lKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZS5j
cHA6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRp
bWUgY29uc3QpOgorICAgICAgICAoSlNDOjpEYXRlSW5zdGFuY2U6OmNhbGN1bGF0ZUdyZWdvcmlh
bkRhdGVUaW1lVVRDIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlQ2FjaGUuaDoKKyAgICAgICAgKEpTQzo6RGF0
ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKToKKyAg
ICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRl
VGltZSk6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFu
RGF0ZVRpbWVVVENDYWNoZWRGb3JNUyk6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZURhdGE6
Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMpOgorICAgICAgICAoSlNDOjpEYXRl
SW5zdGFuY2VEYXRhOjpEYXRlSW5zdGFuY2VEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0RhdGVQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVEYXRlKToK
KyAgICAgICAgKEpTQzo6Zm9ybWF0ZURhdGVJbnN0YW5jZSk6CisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNUb0lTT1N0cmluZyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRGdWxs
WWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhcik6CisgICAg
ICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXRVVENNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXREYXRlKToK
KyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUpOgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jR2V0RGF5KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0Rh
eSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRIb3Vycyk6CisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRVVENIb3Vycyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNH
ZXRNaW51dGVzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0ZXMpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRh
dGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dl
dE1pbGxpU2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNl
Y29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQpOgor
ICAgICAgICAoSlNDOjpzZXROZXdWYWx1ZUZyb21UaW1lQXJncyk6CisgICAgICAgIChKU0M6OnNl
dE5ld1ZhbHVlRnJvbURhdGVBcmdzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1NldFll
YXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0WWVhcik6CisgICAgICAgICogcnVu
dGltZS9JbnRyaW5zaWMuY3BwOgorICAgICAgICAoSlNDOjppbnRyaW5zaWNOYW1lKToKKyAgICAg
ICAgKiBydW50aW1lL0ludHJpbnNpYy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRlTWF0aC5j
cHA6CisgICAgICAgIChKU0M6Om1zVG9HcmVnb3JpYW5EYXRlVGltZSk6CisgICAgICAgICogcnVu
dGltZS9KU1R5cGUuY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAg
KiBydW50aW1lL0pTVHlwZS5oOgorCiAyMDE5LTEwLTI2ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdh
bGlhLmNvbT4KIAogICAgICAgICBQdXQgT2Zmc2NyZWVuQ2FudmFzIGJlaGluZCBhIGJ1aWxkIGZs
YWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggNTBhYmZmODc2NzFjNzI1NzA3Nzc0MmNkOGM0ODgwM2VlNjYzZGY4My4uMTc0Yzk2
OTUyNzgyNDNlYzY2OWY3OTQ4NWIyNzA2ZGRjMTJlZGUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0xMC0yOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFtKU0NdIERhdGUgZnVuY3Rpb25zIHNob3VsZCBoYXZlIGludHJpbnNpYworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTg3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRGF0ZU1hdGguaDoKKyAg
ICAgICAgKiB3dGYvR3JlZ29yaWFuRGF0ZVRpbWUuY3BwOgorICAgICAgICAoV1RGOjpHcmVnb3Jp
YW5EYXRlVGltZTo6c2V0VG9DdXJyZW50TG9jYWxUaW1lKToKKyAgICAgICAgKiB3dGYvR3JlZ29y
aWFuRGF0ZVRpbWUuaDoKKwogMjAxOS0xMC0yNiAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUHV0IE9mZnNjcmVlbkNhbnZhcyBiZWhpbmQgYSBidWlsZCBmbGFnCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggN2Q5MDQ0YTRlMTU5YmM0ZTNmOTczZjU1N2I4MjdhNjAyOTVmMDg1ZC4uMjlm
YjZiYjQyNTA2OWI2NzcyNTEwNzQzMjNmZjM0NGU4YTBjNjQ1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDE5LTEwLTI4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0pTQ10gRGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGhhdmUgaW50cmluc2ljCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxODcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNSFRNTEFyY2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRh
KToKKwogMjAxOS0xMC0yNiAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgUHV0IE9mZnNjcmVlbkNhbnZhcyBiZWhpbmQgYSBidWlsZCBmbGFnCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAppbmRleCBhMzI1YjJj
ODFiYzQ3Y2YzMWYyNDI5ZTkxMGZhNDNjYWM3MGQ5NzViLi5mZmYxZDFkOWY2NjZjMWY4MjRjOGNl
NjJjNTlmNWUxZTkzMzYyMTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgogCisjaW5jbHVkZSAiRGF0ZUluc3Rh
bmNlLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5o
IgogI2luY2x1ZGUgIkpTQmlnSW50LmgiCkBAIC0xNzQsNiArMTc1LDExIEBAIHZvaWQgZHVtcFNw
ZWN1bGF0aW9uKFByaW50U3RyZWFtJiBvdXRTdHJlYW0sIFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CiAKKyAgICAg
ICAgICAgIGlmICh2YWx1ZSAmIFNwZWNEYXRlT2JqZWN0KQorICAgICAgICAgICAgICAgIHN0ck91
dC5wcmludCgiRGF0ZU9iamVjdCIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IGlzVG9wID0gZmFsc2U7CisKICAgICAgICAgICAgIGlmICh2YWx1ZSAmIFNwZWNQcm9taXNlT2Jq
ZWN0KQogICAgICAgICAgICAgICAgIHN0ck91dC5wcmludCgiUHJvbWlzZU9iamVjdCIpOwogICAg
ICAgICAgICAgZWxzZQpAQCAtNDQ1LDYgKzQ1MSw5IEBAIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0
aW9uRnJvbUNsYXNzSW5mbyhjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykKICAgICBpZiAoY2xh
c3NJbmZvID09IFJlZ0V4cE9iamVjdDo6aW5mbygpKQogICAgICAgICByZXR1cm4gU3BlY1JlZ0V4
cE9iamVjdDsKIAorICAgIGlmIChjbGFzc0luZm8gPT0gRGF0ZUluc3RhbmNlOjppbmZvKCkpCisg
ICAgICAgIHJldHVybiBTcGVjRGF0ZU9iamVjdDsKKwogICAgIGlmIChjbGFzc0luZm8gPT0gSlNN
YXA6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNNYXBPYmplY3Q7CiAKQEAgLTU5NCw2ICs2
MDMsOCBAQCBPcHRpb25hbDxTcGVjdWxhdGVkVHlwZT4gc3BlY3VsYXRpb25Gcm9tSlNUeXBlKEpT
VHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gU3BlY0Rlcml2ZWRBcnJheTsKICAgICBjYXNlIFJl
Z0V4cE9iamVjdFR5cGU6CiAgICAgICAgIHJldHVybiBTcGVjUmVnRXhwT2JqZWN0OworICAgIGNh
c2UgSlNEYXRlVHlwZToKKyAgICAgICAgcmV0dXJuIFNwZWNEYXRlT2JqZWN0OwogICAgIGNhc2Ug
UHJveHlPYmplY3RUeXBlOgogICAgICAgICByZXR1cm4gU3BlY1Byb3h5T2JqZWN0OwogICAgIGNh
c2UgSlNQcm9taXNlVHlwZToKQEAgLTgxNCw2ICs4MjUsOCBAQCBTcGVjdWxhdGVkVHlwZSBzcGVj
dWxhdGlvbkZyb21TdHJpbmcoY29uc3QgY2hhciogc3BlY3VsYXRpb24pCiAgICAgICAgIHJldHVy
biBTcGVjU3RyaW5nT2JqZWN0OwogICAgIGlmICghc3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNS
ZWdFeHBPYmplY3QiLCBzdHJsZW4oIlNwZWNSZWdFeHBPYmplY3QiKSkpCiAgICAgICAgIHJldHVy
biBTcGVjUmVnRXhwT2JqZWN0OworICAgIGlmICghc3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNE
YXRlT2JqZWN0Iiwgc3RybGVuKCJTcGVjRGF0ZU9iamVjdCIpKSkKKyAgICAgICAgcmV0dXJuIFNw
ZWNEYXRlT2JqZWN0OwogICAgIGlmICghc3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNQcm9taXNl
T2JqZWN0Iiwgc3RybGVuKCJTcGVjUHJvbWlzZU9iamVjdCIpKSkKICAgICAgICAgcmV0dXJuIFNw
ZWNQcm9taXNlT2JqZWN0OwogICAgIGlmICghc3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNNYXBP
YmplY3QiLCBzdHJsZW4oIlNwZWNNYXBPYmplY3QiKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCmluZGV4IGIxMTUzYjQ3ZDJmZDNhNTllZTNm
Y2ZmYjBmM2JiZjM5YjAxNTE5NWIuLmExMTIzOGMxOThhMzcyOGFjYTAyZWU5NTMzMTdkMDkyZjEw
YjM3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxh
dGVkVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVk
VHlwZS5oCkBAIC01OCwzMiArNTgsMzMgQEAgc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlw
ZSBTcGVjRGlyZWN0QXJndW1lbnRzICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PAogc3RhdGlj
IGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU2NvcGVkQXJndW1lbnRzICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PCAxNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2NvcGVkQXJndW1lbnRz
IG9iamVjdC4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ09iamVj
dCAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTU7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IFN0cmluZ09iamVjdC4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1JlZ0V4
cE9iamVjdCAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTY7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIFJlZ0V4cE9iamVjdCAoYW5kIG5vdCBhbnkgc3ViY2xhc3Mgb2YgUmVnRXhwT2JqZWN0
KS4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1Byb21pc2VPYmplY3QgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTc7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb21p
c2Ugb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgU3BlY01hcE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwgMTg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE1hcCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJj
bGFzc2VzLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU2V0T2JqZWN0ICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxOTsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
U2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNXZWFrTWFwT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFrTWFwIG9iamVjdCBvciBvbmUgb2YgaXRz
IHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNXZWFrU2V0
T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIxOyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBXZWFrU2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29u
c3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9iamVjdCAgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDIyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm94eSBvYmplY3Qgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVj
RGVyaXZlZEFycmF5ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgRGVyaXZlZEFycmF5IG9iamVjdC4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY09iamVjdE90aGVyICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBvYmplY3QgYnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBK
U0FycmF5LCBvciBKU0Z1bmN0aW9uLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjU3RyaW5nSWRlbnQgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyNTsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFuIGlkZW50aWZpZXIuCi1zdGF0aWMg
Y29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0
J3Mgbm90IGFuIGlkZW50aWZpZXIuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNw
ZWNEYXRlT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE3OyAvLyBJdCdz
IGRlZmluaXRlbHkgYSBEYXRlIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm9taXNlT2JqZWN0ICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm9taXNlIG9iamVj
dCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRU
eXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE5OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4K
K3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1NldE9iamVjdCAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMjA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNldCBvYmpl
Y3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjV2Vha01hcE9iamVjdCAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMTsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha01hcCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFz
c2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha1NldE9iamVjdCAg
ICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vh
a1NldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgICAgICAgICAgICAgICAgID0gMXVs
bCA8PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJveHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMg
c3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Rlcml2ZWRB
cnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIERlcml2ZWRBcnJheSBvYmplY3QuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNPYmplY3RPdGhlciAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwgSlNBcnJheSwg
b3IgSlNGdW5jdGlvbi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmlu
Z0lkZW50ICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjY7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAgICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIG5vdCBh
biBpZGVudGlmaWVyLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY1N0cmluZ0lkZW50IHwgU3BlY1N0cmlu
Z1ZhcjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcuCi1zdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCi1zdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNDZWxsT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwgYnV0IG5vdCBhIHN1YmNsYXNzIG9m
IEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3RyaW5nLCBCaWdJbnQsIG9yIFN5bWJv
bC4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjk7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQz
MiB3aXRoIHZhbHVlIDAgb3IgMS4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3Bl
Y05vbkJvb2xJbnQzMiAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzA7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBvciAxLgorc3RhdGlj
IGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3ltYm9sLgorc3RhdGlj
IGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3Qg
YSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZywgQmln
SW50LCBvciBTeW1ib2wuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29s
SW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMwOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCitzdGF0aWMgY29uc3RleHByIFNwZWN1
bGF0ZWRUeXBlIFNwZWNOb25Cb29sSW50MzIgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8
IDMxOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAg
b3IgMS4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyT25seSAgICAg
ICAgICAgICAgICAgICAgICAgICA9IFNwZWNCb29sSW50MzIgfCBTcGVjTm9uQm9vbEludDMyOyAv
LyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIuCiAKLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY0ludDMyQXNJbnQ1MiAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzE7
IC8vIEl0J3MgYW4gSW50NTIgYW5kIGl0IGNhbiBmaXQgaW4gYW4gaW50MzIuCi1zdGF0aWMgY29u
c3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnQzMkFzSW50NTIgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGFuIEludDUyIGFuZCBpdCBjYW4ndCBmaXQgaW4gYW4g
aW50MzIuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMkFzSW50NTIg
ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGFuIEludDUyIGFuZCBp
dCBjYW4gZml0IGluIGFuIGludDMyLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjTm9uSW50MzJBc0ludDUyICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzMzsgLy8gSXQn
cyBhbiBJbnQ1MiBhbmQgaXQgY2FuJ3QgZml0IGluIGFuIGludDMyLgogc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50NTJBbnkgICAgICAgICAgICAgICAgICAgICAgICAgID0g
U3BlY0ludDMyQXNJbnQ1MiB8IFNwZWNOb25JbnQzMkFzSW50NTI7IC8vIEl0J3MgYW55IGtpbmQg
b2YgSW50NTIuCiAKLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUludEFz
RG91YmxlICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzM7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBkb3VibGUuCi1zdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0RvdWJsZSAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgbm90IGFuIEludDUyIGJ1dCBpdCdzIGEgcmVhbCBu
dW1iZXIgYW5kIGl0J3MgYSBkb3VibGUuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgorc3RhdGlj
IGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50QXNEb3VibGUgICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PCAzNTsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQ1MiBidXQg
aXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgogc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAgICAgICAgICAgICAgICAgID0gU3Bl
Y05vbkludEFzRG91YmxlIHwgU3BlY0FueUludEFzRG91YmxlOyAvLyBJdCdzIGRlZmluaXRlbHkg
YSBub24tTmFOIGRvdWJsZS4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Rv
dWJsZVB1cmVOYU4gICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzU7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIE5hTiB0aGF0IGlzIHNhZmUgdG8gdGFnIChpLmUuIHB1cmUpLgotc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZl
IHRvIHRhZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjRG91YmxlUHVyZU5hTiAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FmZSB0byB0YWcgKGkuZS4gcHVyZSkuCitzdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVJbXB1cmVOYU4gICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDM3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyB1
bnNhZmUgdG8gdGFnIChpLmUuIGltcHVyZSkuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRU
eXBlIFNwZWNEb3VibGVOYU4gICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRG91YmxlUHVy
ZU5hTiB8IFNwZWNEb3VibGVJbXB1cmVOYU47IC8vIEl0J3MgZGVmaW5pdGVseSBzb21lIGtpbmQg
b2YgTmFOLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVEb3Vi
bGUgICAgICAgICAgICAgICAgICAgID0gU3BlY0RvdWJsZVJlYWwgfCBTcGVjRG91YmxlUHVyZU5h
TjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZSwgYnV0IGl0J3MgZGVm
aW5pdGVseSBub3QgaW1wdXJlIE5hTi4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY0Z1bGxEb3VibGUgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNEb3VibGVSZWFsIHwg
U3BlY0RvdWJsZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZS4K
QEAgLTkzLDE0ICs5NCwxNCBAQCBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNC
eXRlY29kZU51bWJlciAgICAgICAgICAgICAgICAgICAgPSBTcGVjSW50Mwogc3RhdGljIGNvbnN0
ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50QW55Rm9ybWF0ICAgICAgICAgICAgICAgICAgICAg
ID0gU3BlY0ludDUyQW55IHwgU3BlY0ludDMyT25seSB8IFNwZWNBbnlJbnRBc0RvdWJsZTsKIAog
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbE51bWJlciAgICAgICAgICAg
ICAgICAgICAgICAgID0gU3BlY0ludEFueUZvcm1hdCB8IFNwZWNGdWxsRG91YmxlOyAvLyBJdCdz
IGVpdGhlciBhbiBJbnQzMiwgSW50NTIsIG9yIGEgRG91YmxlLCBhbmQgdGhlIERvdWJsZSBjYW4g
YmUgaW1wdXJlIE5hTi4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xl
YW4gICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzc7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIEJvb2xlYW4uCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhl
ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM4OyAvLyBJdCdzIGRlZmlu
aXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVkLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxh
dGVkVHlwZSBTcGVjQm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAz
ODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY090aGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
Mzk7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBvciBVbmRlZmluZWQuCiBzdGF0aWMg
Y29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNjICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhl
ciBhIGJvb2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
Mzk7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCi1zdGF0aWMgY29u
c3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCaWdJbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDQwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCaWdJbnQuCi1zdGF0aWMgY29u
c3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEYXRhVmlld09iamVjdCAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDQxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0RhdGFWaWV3Lgorc3RhdGlj
IGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PCA0MDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1h
cmtlci4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0JpZ0ludCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJp
Z0ludC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0RhdGFWaWV3T2JqZWN0
ICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpT
RGF0YVZpZXcuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUg
ICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNC
eXRlY29kZU51bWJlciB8IFNwZWNNaXNjIHwgU3BlY0JpZ0ludDsgLy8gSXQncyBhbnkgbm9uLU9i
amVjdCBKU1ZhbHVlLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY0FycmF5
IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVjdEFyZ3VtZW50
cyB8IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0IHwgU3BlY1JlZ0V4cE9i
amVjdCB8IFNwZWNQcm9taXNlT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3Qg
fCBTcGVjV2Vha01hcE9iamVjdCB8IFNwZWNXZWFrU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0
IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlciB8IFNwZWNEYXRhVmlld09iamVj
dDsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJl
ZGljdGlvbi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8IFNwZWNBcnJheSB8IFNw
ZWNGdW5jdGlvbiB8IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBT
cGVjU2NvcGVkQXJndW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNwZWNSZWdFeHBPYmplY3Qg
fCBTcGVjRGF0ZU9iamVjdCB8IFNwZWNQcm9taXNlT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8IFNw
ZWNTZXRPYmplY3QgfCBTcGVjV2Vha01hcE9iamVjdCB8IFNwZWNXZWFrU2V0T2JqZWN0IHwgU3Bl
Y1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlciB8IFNwZWNE
YXRhVmlld09iamVjdDsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2luZCBv
ZiBvYmplY3QgcHJlZGljdGlvbi4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0NlbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNPYmplY3QgfCBTcGVjU3Ry
aW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNDZWxsT3RoZXIgfCBTcGVjQmlnSW50OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBKU0NlbGwuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNI
ZWFwVG9wICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29k
ZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0
IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFOLgogc3RhdGljIGNvbnN0
ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVUb3AgICAgICAgICAgICAgICAgICAgICAg
ID0gU3BlY0hlYXBUb3AgfCBTcGVjRW1wdHk7IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3Zl
LCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9ubHkgYW5kIFNwZWNEb3VibGVJbXB1cmVOYU4uIENvcnJl
c3BvbmRzIHRvIHdoYXQgY291bGQgYmUgZm91bmQgaW4gYSBieXRlY29kZSBsb2NhbC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RIZWFwLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCmluZGV4IGEzMDkyOWQ4YjBk
NjhiMTY5OGYwZTQwMmY5NTY0ZDY3ZjUyMDZmYWYuLmJmOTkzNzc5NzA0NzAyZDhkNWIyMGI2YzJm
NmY3Mzk1YWZlNmI4NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RIZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEhlYXAuaApAQCAtNzEsNiArNzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAgICAgbWFjcm8oSGVhcE9iamVjdENvdW50KSAvKiBVc2VkIHRvIHJlZmxlY3QgdGhlIGZhY3Qg
dGhhdCBzb21lIGFsbG9jYXRpb25zIHJldmVhbCBvYmplY3QgaWRlbnRpdHkgKi9cCiAgICAgbWFj
cm8oUmVnRXhwU3RhdGUpIFwKICAgICBtYWNybyhNYXRoRG90UmFuZG9tU3RhdGUpIFwKKyAgICBt
YWNybyhKU0RhdGVGaWVsZHMpIFwKICAgICBtYWNybyhKU01hcEZpZWxkcykgXAogICAgIG1hY3Jv
KEpTU2V0RmllbGRzKSBcCiAgICAgbWFjcm8oSlNXZWFrTWFwRmllbGRzKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmgKaW5kZXggNTM3MDMzNzk2ZjZiOWJhMjE0Y2RmZTc5ZDFiNmJmNDUxODEyODBhYi4uYWI1
NjBhYWQxZWY4MzE3YzVkYmQyMGY0ZjA4MjhkMjhlZDljZWEzNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aApAQCAtNDA2OCw2ICs0MDY4LDE2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAg
IGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgRGF0ZUdldEludDogeworICAgICAgICBzZXROb25D
ZWxsVHlwZUZvck5vZGUobm9kZSwgU3BlY0J5dGVjb2RlTnVtYmVyKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorCisgICAgY2FzZSBEYXRlR2V0RmxvYXQ6IHsKKyAgICAgICAgc2V0Tm9uQ2VsbFR5
cGVGb3JOb2RlKG5vZGUsIFNwZWNGdWxsRG91YmxlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
CiAgICAgY2FzZSBEYXRhVmlld1NldDogewogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDIyMzQ0
NWMyZDk0NTgwN2JmY2I4MTlhZWYyNTE3Zjg1MGUxZTM0NGYuLjgzYTliNTkzYWI4OTliMWJjZTI0
NjUwODdlZmZhNTZhYjAxNzQzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0zMTk1LDYgKzMxOTUsNDEgQEAgYm9vbCBCeXRlQ29k
ZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbChOb2RlKiBjYWxsZWUsIFZpcnR1YWxSZWdpc3Rl
ciByZXN1bHQsIEkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKKyAgICAg
ICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VGltZUludHJpbnNpYzogeworICAgICAgICAgICAgaWYg
KCFpczY0Qml0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg
aW5zZXJ0Q2hlY2tzKCk7CisgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KHZpcnR1YWxSZWdp
c3RlckZvckFyZ3VtZW50KDAsIHJlZ2lzdGVyT2Zmc2V0KSk7CisgICAgICAgICAgICBzZXRSZXN1
bHQoYWRkVG9HcmFwaChEYXRlR2V0RmxvYXQsIE9wSW5mbyhpbnRyaW5zaWMpLCBPcEluZm8oKSwg
YmFzZSkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRl
UHJvdG90eXBlR2V0VVRDRnVsbFllYXJJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3Rv
dHlwZUdldE1vbnRoSW50cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENN
b250aEludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF0ZUludHJpbnNp
YzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNpYzoKKyAgICAg
ICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF5SW50cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQ
cm90b3R5cGVHZXRVVENEYXlJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdl
dEhvdXJzSW50cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENIb3Vyc0lu
dHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWludXRlc0ludHJpbnNpYzoK
KyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYzoKKyAgICAg
ICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBE
YXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJv
dG90eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5
cGVHZXRVVENNaWxsaXNlY29uZHNJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlw
ZUdldFRpbWV6b25lT2Zmc2V0SW50cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVH
ZXRZZWFySW50cmluc2ljOiB7CisgICAgICAgICAgICBpZiAoIWlzNjRCaXQoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpbnNlcnRDaGVja3MoKTsKKyAgICAg
ICAgICAgIE5vZGUqIGJhc2UgPSBnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoMCwgcmVn
aXN0ZXJPZmZzZXQpKTsKKyAgICAgICAgICAgIHNldFJlc3VsdChhZGRUb0dyYXBoKERhdGVHZXRJ
bnQsIE9wSW5mbyhpbnRyaW5zaWMpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UpKTsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBEYXRhVmlld0dl
dEludDg6CiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRVaW50ODoKICAgICAgICAgY2FzZSBEYXRh
Vmlld0dldEludDE2OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApp
bmRleCBiODljMDNjMGZkMGNlZDAwNzk0ZGFiZGYzM2Q5NTdhZmY5M2I4ODAzLi43ZDAyMTAzNjkw
ZGZjOTdiYjY1MDFhZTQ2YjU0NWMyNDY4YTY5YTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMTgxNCw2ICsxODE0LDEzIEBAIHZvaWQgY2xvYmJlcml6
ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25z
dCBXcml0ZUZ1CiAgICAgICAgIGRlZihQdXJlVmFsdWUobm9kZSwgbm9kZS0+dmFsaWRSYWRpeENv
bnN0YW50KCkpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBEYXRlR2V0RmxvYXQ6Cisg
ICAgY2FzZSBEYXRlR2V0SW50OiB7CisgICAgICAgIHJlYWQoSlNEYXRlRmllbGRzKTsKKyAgICAg
ICAgZGVmKEhlYXBMb2NhdGlvbihEYXRlRmllbGRMb2MsIEFic3RyYWN0SGVhcChKU0RhdGVGaWVs
ZHMsIHN0YXRpY19jYXN0PHVpbnQ2NF90Pihub2RlLT5pbnRyaW5zaWMoKSkpLCBub2RlLT5jaGls
ZDEoKSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGNh
c2UgRGF0YVZpZXdHZXRGbG9hdDoKICAgICBjYXNlIERhdGFWaWV3R2V0SW50OiB7CiAgICAgICAg
IHJlYWQoTWlzY0ZpZWxkcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAK
aW5kZXggNWQyYjA1ZDNmZDE5YjM4YzFjN2I4NTI2YjJjNGM1NzkzYTNkMTRiMC4uNjM1YzQwZjRl
YzY4OTljYTY5MWQ3MTBkYjk2M2UyNjU5NGMwMzQyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRG9lc0dDLmNwcApAQCAtMjQyLDYgKzI0Miw4IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEZpbHRlckdldEJ5SWRTdGF0dXM6CiAgICAgY2Fz
ZSBGaWx0ZXJQdXRCeUlkU3RhdHVzOgogICAgIGNhc2UgRmlsdGVySW5CeUlkU3RhdHVzOgorICAg
IGNhc2UgRGF0ZUdldEludDoKKyAgICBjYXNlIERhdGVHZXRGbG9hdDoKICAgICBjYXNlIERhdGFW
aWV3R2V0SW50OgogICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKICAgICBjYXNlIERhdGFWaWV3
U2V0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXgg
ZTFlMTY3ODI2ZjM4MzA0MjgxZDBhM2VjZjc4OTVjZmRkZDJhNGY0Ny4uNDhmYzYwZWJiYjY1NGY4
MzM0N2Y1YmY4NDk1MDRmY2Q0MTVjZTJkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0yMzIwLDYgKzIzMjAsMTEgQEAgY2xhc3MgRml4dXBQaGFz
ZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNo
aWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgRGF0ZUdldEludDoK
KyAgICAgICAgY2FzZSBEYXRlR2V0RmxvYXQ6CisgICAgICAgICAgICBmaXhFZGdlPERhdGVPYmpl
Y3RVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNh
c2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDogewogICAg
ICAgICAgICAgZml4RWRnZTxEYXRhVmlld09iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAppbmRleCBhZGJmNTAyNWNmM2Q0NDFiZTE4
YjcyYjA5ZGRmODhmODQ1ZGI5MTFkLi5jYTlmYzM0ZTFkMzllNTc0NzRhMWJhNDM4YTM4ZDYwN2I2
YjJhNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcApAQCAtMzY1LDYg
KzM2NSw4IEBAIHZvaWQgR3JhcGg6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgY2hhciog
cHJlZml4U3RyLCBOb2RlKiBub2RlLCBEdW1wQ29udGV4CiAgICAgfQogICAgIGlmIChub2RlLT5o
YXNJZ25vcmVMYXN0SW5kZXhJc1dyaXRhYmxlKCkpCiAgICAgICAgIG91dC5wcmludChjb21tYSwg
Imlnbm9yZUxhc3RJbmRleElzV3JpdGFibGUgPSAiLCBub2RlLT5pZ25vcmVMYXN0SW5kZXhJc1dy
aXRhYmxlKCkpOworICAgIGlmIChub2RlLT5oYXNJbnRyaW5zaWMoKSkKKyAgICAgICAgb3V0LnBy
aW50KGNvbW1hLCAiaW50cmluc2ljID0gIiwgbm9kZS0+aW50cmluc2ljKCkpOwogICAgIGlmIChu
b2RlLT5pc0NvbnN0YW50KCkpCiAgICAgICAgIG91dC5wcmludChjb21tYSwgcG9pbnRlckR1bXBJ
bkNvbnRleHQobm9kZS0+Y29uc3RhbnQoKSwgY29udGV4dCkpOwogICAgIGlmIChub2RlLT5oYXND
YWxsTGlua1N0YXR1cygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdIZWFwTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9j
YXRpb24uY3BwCmluZGV4IGU0Yjk3YjMwYzJhMGE0MGMwZmYyMDIxNmFmNDkyZDllZDYxYThiNDgu
LmMyYjk2YjVmZGZkNThkNjg0N2Q5YzQyMWU5YTU4Yjc5NzlmN2YyMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKQEAgLTE2OCw2ICsxNjgsMTAg
QEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIExvY2F0aW9uS2luZCBraW5k
KQogICAgICAgICBvdXQucHJpbnQoIlJlZ0V4cE9iamVjdExhc3RJbmRleExvYyIpOwogICAgICAg
ICByZXR1cm47CiAKKyAgICBjYXNlIERhdGVGaWVsZExvYzoKKyAgICAgICAgb3V0LnByaW50KCJE
YXRlRmllbGRMb2MiKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBNYXBCdWNrZXRMb2M6
CiAgICAgICAgIG91dC5wcmludCgiTWFwQnVja2V0TG9jIik7CiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCmluZGV4IDA5MTAwNjQx
MjY5ZjBjMDYxNzQ0M2YzYmMwZjQ3Y2I5MmY1OTA1NzQuLmE4ZTczODE4MDNjNzk0ODQ2M2NlOTg5
Y2MxMWE2OTNmZTg0MWZhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSGVhcExvY2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFw
TG9jYXRpb24uaApAQCAtNjQsNiArNjQsNyBAQCBlbnVtIExvY2F0aW9uS2luZCB7CiAgICAgUHJv
dG90eXBlTG9jLAogICAgIFN0YWNrTG9jLAogICAgIFN0YWNrUGF5bG9hZExvYywKKyAgICBEYXRl
RmllbGRMb2MsCiAgICAgTWFwQnVja2V0TG9jLAogICAgIE1hcEJ1Y2tldEhlYWRMb2MsCiAgICAg
TWFwQnVja2V0VmFsdWVMb2MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IDEx
ZDhiNDBmYTYzMjZmZDk1YzJkZDYyZGY3Zjc2YWQ3YjY1YjJiM2YuLmRkZTVlNzFkODliYmJmZGNl
NjA5MGY0MTQ5ZGM4NTU3ZTllMjQwNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
CkBAIC0xNTU0LDkgKzE1NTQsMjEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4gbV9v
cEluZm8uYXM8RW50cnlTd2l0Y2hEYXRhKj4oKTsKICAgICB9CiAKKyAgICBib29sIGhhc0ludHJp
bnNpYygpCisgICAgeworICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKKyAgICAgICAgY2FzZSBDUFVJ
bnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZUdldEZsb2F0OgorICAgICAgICBjYXNlIERhdGVH
ZXRJbnQ6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIEludHJpbnNpYyBp
bnRyaW5zaWMoKQogICAgIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQob3AoKSA9PSBDUFVJbnRy
aW5zaWMpOworICAgICAgICBBU1NFUlQoaGFzSW50cmluc2ljKCkpOwogICAgICAgICByZXR1cm4g
bV9vcEluZm8uYXM8SW50cmluc2ljPigpOwogICAgIH0KICAgICAKQEAgLTE3NTMsNiArMTc2NSw3
IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgY2FzZSBUb1RoaXM6CiAgICAgICAgIGNhc2UgRGF0
YVZpZXdHZXRJbnQ6CiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKKyAgICAgICAgY2Fz
ZSBEYXRlR2V0SW50OgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmgKaW5kZXggOGNhM2I3OTI5Zjc2MWEwMTYwYzZlMzg0ZWEzODI3NWMzNDZmZGVhMS4u
N2Q0ZmNiOGRmMWI3YzgwZTg4NTBjZmVhNGU5NjZjMmE4YzA2M2FlMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtNTE2LDYgKzUxNiw5IEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhEYXRhVmlld0dldEludCwgTm9kZU11c3RH
ZW5lcmF0ZSB8IE5vZGVSZXN1bHRKUykgLyogVGhlIGdldHMgYXJlIG11c3QgZ2VuZXJhdGUgZm9y
IG5vdyBiZWNhdXNlIHRoZXkgZG8gYm91bmRzIGNoZWNrcyAqLyBcCiAgICAgbWFjcm8oRGF0YVZp
ZXdHZXRGbG9hdCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHREb3VibGUpIFwKICAgICBt
YWNybyhEYXRhVmlld1NldCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVNdXN0R2VuZXJhdGUgfCBO
b2RlSGFzVmFyQXJncykgXAorICAgIC8qIERhdGUgYWNjZXNzICovIFwKKyAgICBtYWNybyhEYXRl
R2V0SW50LCBOb2RlUmVzdWx0SlMpIFwKKyAgICBtYWNybyhEYXRlR2V0RmxvYXQsIE5vZGVSZXN1
bHREb3VibGUpIFwKIAogCiAvLyBUaGlzIGVudW0gZ2VuZXJhdGVzIGEgbW9ub3RvbmljYWxseSBp
bmNyZWFzaW5nIGlkIGZvciBhbGwgTm9kZSB0eXBlcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDcwZWZkNmJlOTYwOTNhNGY1ZWRhODZlYzlmNzRm
MjFhYzdhODZjYzYuLjRkYjQ2MjcyYzgwNzk2ZTBjY2Q5MWNmODMxMjIyMDIwZjQyYTVhYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgIkRGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgi
CiAjaW5jbHVkZSAiREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
ay5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCisjaW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgi
CiAjaW5jbHVkZSAiRGVmaW5lUHJvcGVydHlBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiRGlyZWN0
QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiRXZhbENvZGVCbG9jay5oIgpAQCAtMzM5MSw2ICszMzky
LDE5OCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFByb3RvdHlw
ZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihz
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QtPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFs
T2JqZWN0KSkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRh
dGVHZXRGdWxsWWVhcihWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAg
Vk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVf
Q0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdy
ZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICgh
Z3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4o
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGlt
ZS0+eWVhcigpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGF0ZUdldFVUQ0Z1bGxZZWFyKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sK
KyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVD
TEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7Cisg
ICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlh
bkRhdGVUaW1lLT55ZWFyKCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25EYXRlR2V0TW9udGgoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQor
eworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVU
aW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKKyAg
ICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFu
RGF0ZVRpbWUtPm1vbnRoKCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25EYXRlR2V0VVRDTW9udGgoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRl
KQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRh
dGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZt
KTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3Jl
Z29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EYXRlR2V0RGF0ZShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRh
dGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0p
OworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVn
b3JpYW5EYXRlVGltZS0+bW9udGhEYXkoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENEYXRlKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5j
ZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGlt
ZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVt
YmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aERheSgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldERheShWTSogdm1Qb2ludGVyLCBEYXRlSW5z
dGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3Qg
R3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0
ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0RheShWTSogdm1Qb2ludGVyLCBEYXRl
SW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29u
c3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFu
RGF0ZVRpbWVVVEModm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7Cit9CisKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldEhvdXJzKFZNKiB2bVBvaW50ZXIs
IERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVn
b3JpYW5EYXRlVGltZSh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5ob3VyKCkpKTsKK30KKworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDSG91cnMoVk0qIHZtUG9pbnRl
ciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKwor
ICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdy
ZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPmhvdXIoKSkpOworfQorCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRNaW51dGVzKFZNKiB2bVBv
aW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwor
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRl
LT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5taW51dGUoKSkpOworfQorCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENNaW51dGVzKFZN
KiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2lu
dGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
KyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUg
PSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRl
VGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5taW51dGUoKSkp
OworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRTZWNv
bmRzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0
ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5E
YXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5zZWNvbmQo
KSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRV
VENTZWNvbmRzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYg
dm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFn
cmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigp
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1l
LT5zZWNvbmQoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkRhdGVHZXRUaW1lem9uZU9mZnNldChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUp
Cit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwor
ICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigtZ3JlZ29y
aWFuRGF0ZVRpbWUtPnV0Y09mZnNldEluTWludXRlKCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0WWVhcihWTSogdm1Qb2ludGVyLCBEYXRlSW5z
dGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3Qg
R3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0
ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpIC0gMTkwMCkpOworfQorCiB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uVGhyb3dERkcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdmFsdWVUb1Rocm93KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5kZXgg
MjU2NGQ5ZmM4ZGY5ODc2NzE1OGZkMjQxNjY3YjNhYjZlYmI2MGI2NS4uMjc0ZjhhNTNlYmJlYzQ5
ODIxZmMwYTBmNDRiMGZjZDJiYWQxZmQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmgKQEAgLTMxLDcgKzMxLDExIEBACiAjaW5jbHVkZSAiSklUT3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlUeXBlLmgiCiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBEYXRlSW5zdGFuY2U7CisKK25h
bWVzcGFjZSBERkcgewogCiBzdHJ1Y3QgT1NSRXhpdEJhc2U7CiAKQEAgLTI5NCw2ICsyOTgsMjMg
QEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlX
aXRoSW5kZXhpbmdIZWFkZXJBbmRWZWN0b3IKIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkxpbmtEaXJlY3RDYWxsKENhbGxMaW5rSW5mbyosIEpTRnVuY3Rpb24qKSBXVEZfSU5URVJOQUw7
CiAKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFy
KFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDRnVsbFllYXIoVk0qLCBEYXRlSW5zdGFuY2UqKSBX
VEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVH
ZXRNb250aChWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ01vbnRoKFZNKiwgRGF0ZUluc3RhbmNl
KikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25E
YXRlR2V0RGF0ZShWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0RhdGUoVk0qLCBEYXRlSW5zdGFu
Y2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkRhdGVHZXREYXkoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENEYXkoVk0qLCBEYXRlSW5zdGFu
Y2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkRhdGVHZXRIb3VycyhWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0hvdXJzKFZNKiwgRGF0ZUlu
c3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25EYXRlR2V0TWludXRlcyhWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ01pbnV0ZXMoVk0q
LCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDU2Vj
b25kcyhWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFRpbWV6b25lT2Zmc2V0KFZNKiwgRGF0ZUluc3Rh
bmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25EYXRlR2V0WWVhcihWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKKwogdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2dERkcoVk0qKSBXVEZf
SU5URVJOQUw7CiAKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UcmlnZ2VyUmVvcHRpbWl6
YXRpb25Ob3coQ29kZUJsb2NrKiBiYXNlbGluZUNvZGVCbG9jaywgQ29kZUJsb2NrKiBvcHRpaW16
ZWRDb2RlQmxvY2ssIE9TUkV4aXRCYXNlKikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcAppbmRleCBlNzJhYTVkZDI1N2YzMjQ2ZTFiZGI2Y2M2Yzg1OTU5ZjI4OWU5NTRjLi5kYjY1
ZThhMzU3NDA5MTA1MGRiNDlmN2Q3MjA5NGYzODFjMmE1YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcApAQCAtODQ1LDExICs4NDUsMTcgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNlIEdldFByb3RvdHlwZU9mOgogICAgICAg
ICBjYXNlIEV4dHJhY3RWYWx1ZUZyb21XZWFrTWFwR2V0OiAKICAgICAgICAgY2FzZSBEYXRhVmll
d0dldEludDoKLSAgICAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0OiB7CisgICAgICAgIGNhc2Ug
RGF0YVZpZXdHZXRGbG9hdDoKKyAgICAgICAgY2FzZSBEYXRlR2V0SW50OiB7CiAgICAgICAgICAg
ICBzZXRQcmVkaWN0aW9uKG1fY3VycmVudE5vZGUtPmdldEhlYXBQcmVkaWN0aW9uKCkpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIERhdGVHZXRGbG9hdDog
eworICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjRnVsbE51bWJlcik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGNhc2UgV2Vha01hcEdldDoKICAgICAgICAg
Y2FzZSBSZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNEZWNsSW5FdmFsOiB7CiAgICAgICAgICAg
ICBzZXRQcmVkaWN0aW9uKFNwZWNCeXRlY29kZVRvcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDQ2MDYxYzg2Y2Y5NWMwNzgxNjFmNGE1OTI0
Y2QzYTUyNDZjZGMwMjEuLjk5NTBjMzUyMWYyMDhiZTU1ZGFkZTFlNzZlY2M0YzIyZWFmOTczYzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC02
Miw2ICs2Miw3IEBAIGNsYXNzIFNhZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAgY2FzZSBQcm9t
aXNlT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFByb3h5T2JqZWN0VXNlOgogICAgICAgICBjYXNl
IERlcml2ZWRBcnJheVVzZToKKyAgICAgICAgY2FzZSBEYXRlT2JqZWN0VXNlOgogICAgICAgICBj
YXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgY2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAgIGNh
c2UgV2Vha01hcE9iamVjdFVzZToKQEAgLTQ4OSw2ICs0OTAsOCBAQCBib29sIHNhZmVUb0V4ZWN1
dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGJv
b2wgaWdubwogICAgIGNhc2UgQXRvbWljc0lzTG9ja0ZyZWU6CiAgICAgY2FzZSBJbml0aWFsaXpl
RW50cnlwb2ludEFyZ3VtZW50czoKICAgICBjYXNlIE1hdGNoU3RydWN0dXJlOgorICAgIGNhc2Ug
RGF0ZUdldEludDoKKyAgICBjYXNlIERhdGVHZXRGbG9hdDoKICAgICBjYXNlIERhdGFWaWV3R2V0
SW50OgogICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKICAgICAgICAgcmV0dXJuIHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4
IDQ3NDE2MTRjNTdiZDhjOWJlNjBlNjhmM2MyYTQyZWE3MDQ1NzUxMGUuLjllYWMyMTZmNjAyYzBi
NDFmYWY4ZWM4ZGUyNjdhOGExYjU3NTY5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAi
REZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJERkdT
bG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRGR1NuaXBwZXRQYXJhbXMuaCIKKyNpbmNs
dWRlICJEYXRlSW5zdGFuY2UuaCIKICNpbmNsdWRlICJEaXJlY3RBcmd1bWVudHMuaCIKICNpbmNs
dWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIKICNpbmNsdWRlICJKSVRB
ZGRHZW5lcmF0b3IuaCIKQEAgLTEwMTk1LDYgKzEwMTk2LDIwIEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZVByb21pc2VPYmplY3QoRWRnZSBlZGdlKQogICAgIHNwZWN1bGF0ZVByb21p
c2VPYmplY3QoZWRnZSwgb3BlcmFuZC5ncHIoKSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6
OnNwZWN1bGF0ZURhdGVPYmplY3QoRWRnZSBlZGdlLCBHUFJSZWcgY2VsbCkKK3sKKyAgICBzcGVj
dWxhdGVDZWxsVHlwZShlZGdlLCBjZWxsLCBTcGVjRGF0ZU9iamVjdCwgSlNEYXRlVHlwZSk7Cit9
CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGVPYmplY3QoRWRnZSBlZGdlKQor
eworICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY0RhdGVPYmplY3QpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2Up
OworICAgIHNwZWN1bGF0ZURhdGVPYmplY3QoZWRnZSwgb3BlcmFuZC5ncHIoKSk7Cit9CisKIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1hcE9iamVjdChFZGdlIGVkZ2UsIEdQUlJlZyBj
ZWxsKQogewogICAgIHNwZWN1bGF0ZUNlbGxUeXBlKGVkZ2UsIGNlbGwsIFNwZWNNYXBPYmplY3Qs
IEpTTWFwVHlwZSk7CkBAIC0xMDYwMCw2ICsxMDYxNSw5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgIGNhc2UgRGVyaXZlZEFycmF5VXNlOgog
ICAgICAgICBzcGVjdWxhdGVEZXJpdmVkQXJyYXkoZWRnZSk7CiAgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRGF0ZU9iamVjdFVzZToKKyAgICAgICAgc3BlY3VsYXRlRGF0ZU9iamVjdChlZGdlKTsK
KyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgIHNwZWN1bGF0
ZU1hcE9iamVjdChlZGdlKTsKICAgICAgICAgYnJlYWs7CkBAIC0xNDAwOCw2ICsxNDAyNiw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYWtlUm9wZShOb2RlKiBub2RlKQogI2VuZGlm
CiB9CiAKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCAxYmE1MjExZmMxMTMw
NzdlZGYxN2JhOWI5ZTE0MTA2NTlkYmNiODI1Li4xYjIwZDk0NGNiY2RkYTYyZmFjYjQ1NmQ0Yzk4
ZDE5YjVjMDVmZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCkBAIC0xNDg5LDYgKzE0ODksNyBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAg
ICAgdm9pZCBjb21waWxlQ2xlYXJDYXRjaExvY2FscyhOb2RlKik7CiAgICAgdm9pZCBjb21waWxl
UHJvZmlsZVR5cGUoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVN0cmluZ0NvZGVQb2ludEF0KE5v
ZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVEYXRlR2V0KE5vZGUqKTsKIAogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEpTQ2xhc3MsIHR5cGVuYW1lIE9wZXJhdGlvbj4KICAgICB2b2lkIGNvbXBpbGVDcmVh
dGVJbnRlcm5hbEZpZWxkT2JqZWN0KE5vZGUqLCBPcGVyYXRpb24pOwpAQCAtMTYxNiw2ICsxNjE3
LDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgc3BlY3VsYXRlUHJveHlPYmpl
Y3QoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVEZXJpdmVkQXJyYXkoRWRnZSwgR1BSUmVnIGNl
bGwpOwogICAgIHZvaWQgc3BlY3VsYXRlRGVyaXZlZEFycmF5KEVkZ2UpOworICAgIHZvaWQgc3Bl
Y3VsYXRlRGF0ZU9iamVjdChFZGdlKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURhdGVPYmplY3QoRWRn
ZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlTWFwT2JqZWN0KEVkZ2UpOwogICAg
IHZvaWQgc3BlY3VsYXRlTWFwT2JqZWN0KEVkZ2UsIEdQUlJlZyBjZWxsKTsKICAgICB2b2lkIHNw
ZWN1bGF0ZVNldE9iamVjdChFZGdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDE0ZjIxYzc3NmZkYzYzNDc0MzY0
M2VkYmJkNmUwNmJiM2JhNTVjMGEuLjlhYWFiNDQyZTUwNmIzYTE2NDc2YTg1NDQ3NWY2MDhiN2Yz
MjdmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcApAQCAtNDE2Miw2ICs0MTYyLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgY2Fz
ZSBEYXRhVmlld0dldEZsb2F0OgogICAgIGNhc2UgRGF0YVZpZXdTZXQ6CisgICAgY2FzZSBEYXRl
R2V0SW50OgorICAgIGNhc2UgRGF0ZUdldEZsb2F0OgogICAgIGNhc2UgU3RyaW5nQ29kZVBvaW50
QXQ6CiAgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBub2RlLCAidW5leHBlY3RlZCBu
b2RlIGluIERGRyBiYWNrZW5kIik7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMTQyYzdlMDY4OWMy
NmExZmFmZGNkNTAwM2YxZjM0YmViMjUzODAyYS4uMzgxNTNjMTQ4NjE1NWY5YjhhYmRkMDlkYmU2
MmE3ZmQxNjc5ZDBmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiREZHRG9lc0dD
LmgiCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkRGR1Nsb3dQYXRoR2Vu
ZXJhdG9yLmgiCisjaW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJn
dW1lbnRzLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiSGFzT3duUHJv
cGVydHlDYWNoZS5oIgpAQCAtNDg3NCw2ICs0ODc1LDExIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBE
YXRlR2V0SW50OgorICAgIGNhc2UgRGF0ZUdldEZsb2F0OgorICAgICAgICBjb21waWxlRGF0ZUdl
dChub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIERhdGFWaWV3U2V0OiB7CiAgICAg
ICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGRhdGFWaWV3KHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hp
bGQobm9kZSwgMCkpOwogICAgICAgICBHUFJSZWcgZGF0YVZpZXdHUFIgPSBkYXRhVmlldy5ncHIo
KTsKQEAgLTUzNDgsNiArNTM1NCwxNDMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0
cmluZ0NvZGVQb2ludEF0KE5vZGUqIG5vZGUpCiAgICAgaW50MzJSZXN1bHQoc2NyYXRjaDFHUFIs
IG1fY3VycmVudE5vZGUpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlRGF0ZUdl
dChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9k
ZS0+Y2hpbGQxKCkpOworICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICBzcGVj
dWxhdGVEYXRlT2JqZWN0KG5vZGUtPmNoaWxkMSgpLCBiYXNlR1BSKTsKKworICAgIGF1dG8gZW1p
dEdldENvZGVXaXRoQ2FsbGJhY2sgPSBbJl0gKHB0cmRpZmZfdCBjYWNoZWREb3VibGVPZmZzZXQs
IHB0cmRpZmZfdCBjYWNoZWREYXRhT2Zmc2V0LCBhdXRvKiBvcGVyYXRpb24sIGF1dG8gY2FsbGJh
Y2spIHsKKyAgICAgICAgSlNWYWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAg
ICBGUFJUZW1wb3JhcnkgdGVtcDEodGhpcyk7CisgICAgICAgIEZQUlRlbXBvcmFyeSB0ZW1wMih0
aGlzKTsKKworICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsK
KyAgICAgICAgRlBSUmVnIHRlbXAxRlBSID0gdGVtcDEuZnByKCk7CisgICAgICAgIEZQUlJlZyB0
ZW1wMkZQUiA9IHRlbXAyLmZwcigpOworCisgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qg
c2xvd0Nhc2VzOworCisgICAgICAgIG1faml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KGJhc2VHUFIsIERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZEYXRhKCkpLCByZXN1bHRSZWdzLnBheWxv
YWRHUFIoKSk7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihD
Q2FsbEhlbHBlcnM6Olplcm8sIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKSk7CisgICAgICAgIG1f
aml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VHUFIsIERhdGVJbnN0YW5j
ZTo6b2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigpKSwgdGVtcDFGUFIpOworICAgICAgICBtX2ppdC5s
b2FkRG91YmxlKENDYWxsSGVscGVyczo6QWRkcmVzcyhyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwg
Y2FjaGVkRG91YmxlT2Zmc2V0KSwgdGVtcDJGUFIpOworICAgICAgICBzbG93Q2FzZXMuYXBwZW5k
KG1faml0LmJyYW5jaERvdWJsZShDQ2FsbEhlbHBlcnM6OkRvdWJsZU5vdEVxdWFsT3JVbm9yZGVy
ZWQsIHRlbXAxRlBSLCB0ZW1wMkZQUikpOworICAgICAgICBtX2ppdC5sb2FkMzIoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCBjYWNoZWREYXRhT2Zmc2V0KSwg
cmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgICAgICBjYWxsYmFjayhyZXN1bHRSZWdzLnBh
eWxvYWRHUFIoKSk7CisgICAgICAgIG1faml0LmJveEludDMyKHJlc3VsdFJlZ3MucGF5bG9hZEdQ
UigpLCByZXN1bHRSZWdzKTsKKworICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0
aENhbGwoc2xvd0Nhc2VzLCB0aGlzLCBvcGVyYXRpb24sIHJlc3VsdFJlZ3MsICZ2bSgpLCBiYXNl
R1BSKSk7CisKKyAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKKyAgICB9
OworCisgICAgYXV0byBlbWl0R2V0Q29kZSA9IFsmXSAocHRyZGlmZl90IGNhY2hlZERvdWJsZU9m
ZnNldCwgcHRyZGlmZl90IGNhY2hlZERhdGFPZmZzZXQsIGF1dG8qIG9wZXJhdGlvbikgeworICAg
ICAgICBlbWl0R2V0Q29kZVdpdGhDYWxsYmFjayhjYWNoZWREb3VibGVPZmZzZXQsIGNhY2hlZERh
dGFPZmZzZXQsIG9wZXJhdGlvbiwgW10gKEdQUlJlZykgeyB9KTsKKyAgICB9OworCisgICAgc3dp
dGNoIChub2RlLT5pbnRyaW5zaWMoKSkgeworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWVJ
bnRyaW5zaWM6IHsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICAgICAg
RlBSUmVnIHJlc3VsdEZQUiA9IHJlc3VsdC5mcHIoKTsKKyAgICAgICAgbV9qaXQubG9hZERvdWJs
ZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgRGF0ZUluc3RhbmNlOjpvZmZzZXRPZklu
dGVybmFsTnVtYmVyKCkpLCByZXN1bHRGUFIpOworICAgICAgICBkb3VibGVSZXN1bHQocmVzdWx0
RlBSLCBub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gV2UgZG8gbm90IGhh
dmUgYW55IHRpbWV6b25lIG9mZnNldCB3aGljaCBhZmZlY3RzIG9uIG1pbGxpc2Vjb25kcy4KKyAg
ICAvLyBTbyBEYXRlI2dldE1pbGxpc2Vjb25kcyBhbmQgRGF0ZSNnZXRVVENNaWxsaXNlY29uZHMg
aGF2ZSB0aGUgc2FtZSBpbXBsZW1lbnRhdGlvbi4KKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRN
aWxsaXNlY29uZHNJbnRyaW5zaWM6CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTWlsbGlz
ZWNvbmRzSW50cmluc2ljOiB7CisgICAgICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0
aGlzKTsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXAxKHRoaXMpOworICAgICAgICBGUFJUZW1w
b3JhcnkgdGVtcDIodGhpcyk7CisgICAgICAgIEZQUlRlbXBvcmFyeSB0ZW1wMyh0aGlzKTsKKyAg
ICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CisgICAgICAgIEZQ
UlJlZyB0ZW1wMUZQUiA9IHRlbXAxLmZwcigpOworICAgICAgICBGUFJSZWcgdGVtcDJGUFIgPSB0
ZW1wMi5mcHIoKTsKKyAgICAgICAgRlBSUmVnIHRlbXAzRlBSID0gdGVtcDMuZnByKCk7CisKKyAg
ICAgICAgbV9qaXQubW92ZVRydXN0ZWRWYWx1ZShqc05hTigpLCByZXN1bHRSZWdzKTsKKyAgICAg
ICAgbV9qaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgRGF0ZUlu
c3RhbmNlOjpvZmZzZXRPZkludGVybmFsTnVtYmVyKCkpLCB0ZW1wMUZQUik7CisgICAgICAgIGF1
dG8gaXNOYU4gPSBtX2ppdC5icmFuY2hJZk5hTih0ZW1wMUZQUik7CisKKyAgICAgICAgc3RhdGlj
IGNvbnN0IGRvdWJsZSBtc1BlclNlY29uZENvbnN0YW50ID0gbXNQZXJTZWNvbmQ7CisgICAgICAg
IG1faml0LmxvYWREb3VibGUoVHJ1c3RlZEltbVB0cigmbXNQZXJTZWNvbmRDb25zdGFudCksIHRl
bXAyRlBSKTsKKyAgICAgICAgbV9qaXQuZGl2RG91YmxlKHRlbXAxRlBSLCB0ZW1wMkZQUiwgdGVt
cDNGUFIpOworICAgICAgICBtX2ppdC5mbG9vckRvdWJsZSh0ZW1wM0ZQUiwgdGVtcDNGUFIpOwor
ICAgICAgICBtX2ppdC5tdWxEb3VibGUodGVtcDNGUFIsIHRlbXAyRlBSLCB0ZW1wM0ZQUik7Cisg
ICAgICAgIG1faml0LnN1YkRvdWJsZSh0ZW1wMUZQUiwgdGVtcDNGUFIsIHRlbXAxRlBSKTsKKyAg
ICAgICAgbV9qaXQudHJ1bmNhdGVEb3VibGVUb0ludDMyKHRlbXAxRlBSLCByZXN1bHRSZWdzLnBh
eWxvYWRHUFIoKSk7CisgICAgICAgIG1faml0LmJveEludDMyKHJlc3VsdFJlZ3MucGF5bG9hZEdQ
UigpLCByZXN1bHRSZWdzKTsKKworICAgICAgICBpc05hTi5saW5rKCZtX2ppdCk7CisgICAgICAg
IGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEZ1bGxZZWFySW50cmluc2ljOgorICAgICAgICBl
bWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2Fj
aGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRl
VGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mWWVhcigpLCBvcGVyYXRpb25EYXRl
R2V0RnVsbFllYXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRV
VENGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0
YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5j
ZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRh
dGVUaW1lOjpvZmZzZXRPZlllYXIoKSwgb3BlcmF0aW9uRGF0ZUdldFVUQ0Z1bGxZZWFyKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TW9udGhJbnRyaW5zaWM6Cisg
ICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0
ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdv
cmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aCgpLCBvcGVy
YXRpb25EYXRlR2V0TW9udGgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5
cGVHZXRVVENNb250aEludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKCksIERhdGVJbnN0
YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlh
bkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoKCksIG9wZXJhdGlvbkRhdGVHZXRVVENNb250aCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldERhdGVJbnRyaW5zaWM6Cisg
ICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0
ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdv
cmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aERheSgpLCBv
cGVyYXRpb25EYXRlR2V0RGF0ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3Rv
dHlwZUdldFVUQ0RhdGVJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5j
ZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUygpLCBEYXRlSW5z
dGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3Jp
YW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aERheSgpLCBvcGVyYXRpb25EYXRlR2V0VVRDRGF0ZSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldERheUludHJpbnNpYzoK
KyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5E
YXRlVGltZUNhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3Jl
Z29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZldlZWtEYXkoKSwg
b3BlcmF0aW9uRGF0ZUdldERheSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3Rv
dHlwZUdldFVUQ0RheUludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKCksIERhdGVJbnN0
YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlh
bkRhdGVUaW1lOjpvZmZzZXRPZldlZWtEYXkoKSwgb3BlcmF0aW9uRGF0ZUdldFVUQ0RheSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEhvdXJzSW50cmluc2ljOgor
ICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRh
dGVUaW1lQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVn
b3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mSG91cigpLCBvcGVy
YXRpb25EYXRlR2V0SG91cnMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5
cGVHZXRVVENIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKCksIERhdGVJbnN0
YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlh
bkRhdGVUaW1lOjpvZmZzZXRPZkhvdXIoKSwgb3BlcmF0aW9uRGF0ZUdldFVUQ0hvdXJzKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWludXRlc0ludHJpbnNpYzoK
KyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5E
YXRlVGltZUNhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3Jl
Z29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1pbnV0ZSgpLCBv
cGVyYXRpb25EYXRlR2V0TWludXRlcyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVBy
b3RvdHlwZUdldFVUQ01pbnV0ZXNJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJ
bnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUygpLCBE
YXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBH
cmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNaW51dGUoKSwgb3BlcmF0aW9uRGF0ZUdldFVUQ01p
bnV0ZXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRTZWNvbmRz
SW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRP
ZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0
T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9m
U2Vjb25kKCksIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgZW1pdEdl
dENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hl
ZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRp
bWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZlNlY29uZCgpLCBvcGVyYXRpb25E
YXRlR2V0VVRDU2Vjb25kcyk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0VGltZXpvbmVPZmZzZXRJbnRyaW5zaWM6IHsKKyAgICAgICAgZW1pdEdldENvZGVXaXRo
Q2FsbGJhY2soRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hl
ZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRp
bWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZlVUQ09mZnNldEluTWludXRlKCksIG9w
ZXJhdGlvbkRhdGVHZXRGdWxsWWVhciwgWyZdIChHUFJSZWcgb2Zmc2V0R1BSKSB7CisgICAgICAg
ICAgICBtX2ppdC5uZWczMihvZmZzZXRHUFIpOworICAgICAgICB9KTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorCisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0WWVhckludHJpbnNpYzogeworICAg
ICAgICBlbWl0R2V0Q29kZVdpdGhDYWxsYmFjayhEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdy
ZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZD
YWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mWWVh
cigpLCBvcGVyYXRpb25EYXRlR2V0RnVsbFllYXIsIFsmXSAoR1BSUmVnIHllYXJHUFIpIHsKKyAg
ICAgICAgICAgIG1faml0LnN1YjMyKFRydXN0ZWRJbW0zMigxOTAwKSwgeWVhckdQUik7CisgICAg
ICAgIH0pOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBkZWZhdWx0OgorICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKwogI2VuZGlmCiAKIH0gfSAv
LyBuYW1lc3BhY2UgSlNDOjpERkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQu
Y3BwCmluZGV4IDA4NGI1OTViMzk5YTZhMDRiNDljOWNjMTIzOWQ1MGUyYjkyMjhlMjQuLjhlZjcz
YjZmMmU4NzU1MDM1OTZhODY0OTc0MGIzYTQ1OGFiMDk3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAtMTA2LDYgKzEwNiw5IEBAIHZvaWQgcHJpbnRJbnRl
cm5hbChQcmludFN0cmVhbSYgb3V0LCBVc2VLaW5kIHVzZUtpbmQpCiAgICAgY2FzZSBEZXJpdmVk
QXJyYXlVc2U6CiAgICAgICAgIG91dC5wcmludCgiRGVyaXZlZEFycmF5Iik7CiAgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIERhdGVPYmplY3RVc2U6CisgICAgICAgIG91dC5wcmludCgiRGF0ZU9i
amVjdCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAg
IG91dC5wcmludCgiTWFwT2JqZWN0Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggMmVjNGVhMTUzZDVjM2QyMzc0YjA5ZTFjZTczODNk
MDhiNDFmM2FlZi4uOWMxM2M1YmNkMzU2OTU3OWIwMzA5MmM1YzhmNzU4YjZlOWMwNTlhNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTY3LDYgKzY3LDcgQEAgZW51
bSBVc2VLaW5kIHsKICAgICBLbm93blByaW1pdGl2ZVVzZSwgLy8gVGhpcyBiaXphcnJlIHR5cGUg
YXJpc2VzIGZvciBvcF9zdHJjYXQsIHdoaWNoIGhhcyBhIGJ5dGVjb2RlIGd1YXJhbnRlZSB0aGF0
IGl0IHdpbGwgb25seSBzZWUgcHJpbWl0aXZlcyAoaS5lLiBub3Qgb2JqZWN0cykuCiAgICAgU3lt
Ym9sVXNlLAogICAgIEJpZ0ludFVzZSwKKyAgICBEYXRlT2JqZWN0VXNlLAogICAgIE1hcE9iamVj
dFVzZSwKICAgICBTZXRPYmplY3RVc2UsCiAgICAgV2Vha01hcE9iamVjdFVzZSwKQEAgLTE1NSw2
ICsxNTYsOCBAQCBpbmxpbmUgU3BlY3VsYXRlZFR5cGUgdHlwZUZpbHRlckZvcihVc2VLaW5kIHVz
ZUtpbmQpCiAgICAgICAgIHJldHVybiBTcGVjQmlnSW50OwogICAgIGNhc2UgUHJvbWlzZU9iamVj
dFVzZToKICAgICAgICAgcmV0dXJuIFNwZWNQcm9taXNlT2JqZWN0OworICAgIGNhc2UgRGF0ZU9i
amVjdFVzZToKKyAgICAgICAgcmV0dXJuIFNwZWNEYXRlT2JqZWN0OwogICAgIGNhc2UgTWFwT2Jq
ZWN0VXNlOgogICAgICAgICByZXR1cm4gU3BlY01hcE9iamVjdDsKICAgICBjYXNlIFNldE9iamVj
dFVzZToKQEAgLTI2MSw2ICsyNjQsNyBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5k
KQogICAgIGNhc2UgQmlnSW50VXNlOgogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgIGNh
c2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CisgICAgY2FzZSBEYXRlT2JqZWN0VXNlOgogICAg
IGNhc2UgTWFwT2JqZWN0VXNlOgogICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAgIGNhc2UgV2Vh
a01hcE9iamVjdFVzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
QWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwCmluZGV4IDljM2MxYzdhYzZmYThhZjI4MjYzYmFi
MmE3MjY5ZGI1NTBlMzU2ZGIuLmM0NWM5ZDFiN2U1NGEwYjdjNzRkMGE3MzRkZmQwNzE1MzU5YzIy
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFw
UmVwb3NpdG9yeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkIzTWVtb3J5
VmFsdWUuaCIKICNpbmNsdWRlICJCM1BhdGNocG9pbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFs
dWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRGlyZWN0
QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiRlRMU3RhdGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0
ZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmgKaW5kZXggMTAzNjllNGU0OTQ1MjYwZGE3Y2M0YzEzYTNmNzE4NmE2ZTQy
MzU0MC4uNTk3N2Q4OTE1YzI2NjExNGFlMTZlYmEyOTM2N2U2NWZlNTZhMmZlNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5
LmgKQEAgLTUyLDYgKzUyLDI0IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAg
ICBtYWNybyhCdXR0ZXJmbHlfdmVjdG9yTGVuZ3RoLCBCdXR0ZXJmbHk6Om9mZnNldE9mVmVjdG9y
TGVuZ3RoKCkpIFwKICAgICBtYWNybyhDYWxsRnJhbWVfY2FsbGVyRnJhbWUsIENhbGxGcmFtZTo6
Y2FsbGVyRnJhbWVPZmZzZXQoKSkgXAogICAgIG1hY3JvKENsYXNzSW5mb19wYXJlbnRDbGFzcywg
Q2xhc3NJbmZvOjpvZmZzZXRPZlBhcmVudENsYXNzKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFu
Y2VfaW50ZXJuYWxOdW1iZXIsIERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigp
KSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlX2RhdGEsIERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZE
YXRhKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2Fj
aGVkRm9yTVMsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNo
ZWRGb3JNUygpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGlt
ZVVUQ0NhY2hlZEZvck1TLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVU
aW1lVVRDQ2FjaGVkRm9yTVMoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVk
R3JlZ29yaWFuRGF0ZVRpbWVfeWVhciwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRH
cmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mWWVhcigpKSBc
CisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ195
ZWFyLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRD
KCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZZZWFyKCkpIFwKKyAgICBtYWNybyhEYXRl
SW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX21vbnRoLCBEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGlt
ZTo6b2Zmc2V0T2ZNb250aCgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRH
cmVnb3JpYW5EYXRlVGltZVVUQ19tb250aCwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNo
ZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mTW9u
dGgoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRp
bWVfbW9udGhEYXksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoRGF5KCkpIFwKKyAgICBt
YWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX21vbnRoRGF5
LCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkg
KyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aERheSgpKSBcCisgICAgbWFjcm8oRGF0
ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV93ZWVrRGF5LCBEYXRlSW5zdGFu
Y2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRl
VGltZTo6b2Zmc2V0T2ZXZWVrRGF5KCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2Nh
Y2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX3dlZWtEYXksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNl
dE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZz
ZXRPZldlZWtEYXkoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29y
aWFuRGF0ZVRpbWVfaG91ciwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3Jp
YW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mSG91cigpKSBcCisgICAg
bWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19ob3VyLCBE
YXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBH
cmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZIb3VyKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFu
Y2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX21pbnV0ZSwgRGF0ZUluc3RhbmNlRGF0YTo6
b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9m
ZnNldE9mTWludXRlKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdv
cmlhbkRhdGVUaW1lVVRDX21pbnV0ZSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRH
cmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mTWludXRl
KCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1l
X3NlY29uZCwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGlt
ZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mU2Vjb25kKCkpIFwKKyAgICBtYWNybyhE
YXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX3NlY29uZCwgRGF0ZUlu
c3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29y
aWFuRGF0ZVRpbWU6Om9mZnNldE9mU2Vjb25kKCkpIFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVu
dHNfY2FsbGVlLCBEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mQ2FsbGVlKCkpIFwKICAgICBtYWNy
byhEaXJlY3RBcmd1bWVudHNfbGVuZ3RoLCBEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mTGVuZ3Ro
KCkpIFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVudHNfbWluQ2FwYWNpdHksIERpcmVjdEFyZ3Vt
ZW50czo6b2Zmc2V0T2ZNaW5DYXBhY2l0eSgpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggYzYxZjllNjU4MGJmM2I2ZTQ1YzYxNTBiOTlm
MGY0YjgzYzMxZTZhOS4uNTRmZGI2OTYwZmYyYjMxNGI0MjZlOTBjYjI3Y2I0N2E0YWVmYTA3NiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAt
Mzg4LDYgKzM4OCw4IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBu
b2RlKQogICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0
OgogICAgIGNhc2UgRGF0YVZpZXdTZXQ6CisgICAgY2FzZSBEYXRlR2V0SW50OgorICAgIGNhc2Ug
RGF0ZUdldEZsb2F0OgogICAgICAgICAvLyBUaGVzZSBhcmUgT0suCiAgICAgICAgIGJyZWFrOwog
CkBAIC00NzAsNiArNDcyLDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdy
YXBoKQogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CiAgICAg
ICAgICAgICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBCaWdJbnRV
c2U6CisgICAgICAgICAgICAgICAgY2FzZSBEYXRlT2JqZWN0VXNlOgogICAgICAgICAgICAgICAg
IGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU2V0T2JqZWN0VXNlOgog
ICAgICAgICAgICAgICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCBkMjEwNDQ5MTNlMTRkMDUzNjg0
NDk1MzgyODJiMTNiZWQxZjRiNTZmLi44ODQ5ZTE0ODE2YjcyOWFhYmQ1MzM3MGM2ZGM0Yjk5ZjE2
Zjk1YzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCkBAIC0xNTQ1LDYgKzE1NDUsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAg
Y2FzZSBGaWx0ZXJJbkJ5SWRTdGF0dXM6CiAgICAgICAgICAgICBjb21waWxlRmlsdGVySUNTdGF0
dXMoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVHZXRJbnQ6CisgICAg
ICAgIGNhc2UgRGF0ZUdldEZsb2F0OgorICAgICAgICAgICAgY29tcGlsZURhdGVHZXQoKTsKKyAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIERhdGFWaWV3R2V0SW50OgogICAgICAgICBj
YXNlIERhdGFWaWV3R2V0RmxvYXQ6CiAgICAgICAgICAgICBjb21waWxlRGF0YVZpZXdHZXQoKTsK
QEAgLTEzNDA3LDYgKzEzNDExLDExNSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQorCisgICAgdm9pZCBjb21waWxlRGF0ZUdldCgpCisgICAg
eworICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0RhdGVPYmplY3QobV9ub2RlLT5jaGlsZDEoKSk7
CisKKyAgICAgICAgYXV0byBlbWl0R2V0Q29kZVdpdGhDYWxsYmFjayA9IFsmXSAoY29uc3QgQWJz
dHJhY3RIZWFwJiBjYWNoZWREb3VibGVPZmZzZXQsIGNvbnN0IEFic3RyYWN0SGVhcCYgY2FjaGVk
RGF0YU9mZnNldCwgYXV0byogb3BlcmF0aW9uLCBhdXRvIGNhbGxiYWNrKSB7CisgICAgICAgICAg
ICBMQmFzaWNCbG9jayBkYXRhRXhpc3RzQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAg
ICAgICBMQmFzaWNCbG9jayBmYXN0Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgICAg
ICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgICAgICBM
QmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOworCisgICAgICAgICAg
ICBMVmFsdWUgZGF0YSA9IG1fb3V0LmxvYWRQdHIoYmFzZSwgbV9oZWFwcy5EYXRlSW5zdGFuY2Vf
ZGF0YSk7CisgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQubm90WmVybzY0KGRhdGEpLCB1
bnN1cmUoZGF0YUV4aXN0c0Nhc2UpLCB1bnN1cmUoc2xvd0Nhc2UpKTsKKworICAgICAgICAgICAg
TEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhkYXRhRXhpc3RzQ2FzZSwgZmFz
dENhc2UpOworICAgICAgICAgICAgTFZhbHVlIG1pbGxpc2Vjb25kcyA9IG1fb3V0LmxvYWREb3Vi
bGUoYmFzZSwgbV9oZWFwcy5EYXRlSW5zdGFuY2VfaW50ZXJuYWxOdW1iZXIpOworICAgICAgICAg
ICAgTFZhbHVlIGNhY2hlZE1pbGxpc2Vjb25kcyA9IG1fb3V0LmxvYWREb3VibGUoZGF0YSwgY2Fj
aGVkRG91YmxlT2Zmc2V0KTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5kb3VibGVO
b3RFcXVhbE9yVW5vcmRlcmVkKG1pbGxpc2Vjb25kcywgY2FjaGVkTWlsbGlzZWNvbmRzKSwgdW5z
dXJlKHNsb3dDYXNlKSwgdW5zdXJlKGZhc3RDYXNlKSk7CisKKyAgICAgICAgICAgIG1fb3V0LmFw
cGVuZFRvKGZhc3RDYXNlLCBzbG93Q2FzZSk7CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBm
YXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKGJveEludDMyKGNhbGxiYWNrKG1fb3V0LmxvYWQzMihk
YXRhLCBjYWNoZWREYXRhT2Zmc2V0KSkpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGlu
dWF0aW9uKTsKKworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVh
dGlvbik7CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5j
aG9yKHZtQ2FsbChJbnQ2NCwgb3BlcmF0aW9uLCBtX3ZtVmFsdWUsIGJhc2UpKTsKKyAgICAgICAg
ICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKworICAgICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0
LnBoaShJbnQ2NCwgZmFzdFJlc3VsdCwgc2xvd1Jlc3VsdCkpOworICAgICAgICB9OworCisgICAg
ICAgIGF1dG8gZW1pdEdldENvZGUgPSBbJl0gKGNvbnN0IEFic3RyYWN0SGVhcCYgY2FjaGVkRG91
YmxlT2Zmc2V0LCBjb25zdCBBYnN0cmFjdEhlYXAmIGNhY2hlZERhdGFPZmZzZXQsIGF1dG8qIG9w
ZXJhdGlvbikgeworICAgICAgICAgICAgZW1pdEdldENvZGVXaXRoQ2FsbGJhY2soY2FjaGVkRG91
YmxlT2Zmc2V0LCBjYWNoZWREYXRhT2Zmc2V0LCBvcGVyYXRpb24sIFtdIChMVmFsdWUgdmFsdWUp
IHsgcmV0dXJuIHZhbHVlOyB9KTsKKyAgICAgICAgfTsKKworICAgICAgICBzd2l0Y2ggKG1fbm9k
ZS0+aW50cmluc2ljKCkpIHsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VGltZUludHJp
bnNpYzoKKyAgICAgICAgICAgIHNldERvdWJsZShtX291dC5sb2FkRG91YmxlKGJhc2UsIG1faGVh
cHMuRGF0ZUluc3RhbmNlX2ludGVybmFsTnVtYmVyKSk7CisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNaWxsaXNlY29uZHNJbnRyaW5zaWM6CisgICAg
ICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01pbGxpc2Vjb25kc0ludHJpbnNpYzogeworICAg
ICAgICAgICAgTFZhbHVlIG1pbGxpc2Vjb25kcyA9IG1fb3V0LmxvYWREb3VibGUoYmFzZSwgbV9o
ZWFwcy5EYXRlSW5zdGFuY2VfaW50ZXJuYWxOdW1iZXIpOworICAgICAgICAgICAgTFZhbHVlIG1z
UGVyU2Vjb25kQ29uc3RhbnQgPSBtX291dC5jb25zdERvdWJsZShtc1BlclNlY29uZCk7CisgICAg
ICAgICAgICBMVmFsdWUgc2Vjb25kcyA9IG1fb3V0LmRvdWJsZUZsb29yKG1fb3V0LmRvdWJsZURp
dihtaWxsaXNlY29uZHMsIG1zUGVyU2Vjb25kQ29uc3RhbnQpKTsKKyAgICAgICAgICAgIExWYWx1
ZSByZXN1bHQgPSBtX291dC5kb3VibGVUb0ludChtX291dC5kb3VibGVTdWIobWlsbGlzZWNvbmRz
LCBtX291dC5kb3VibGVNdWwoc2Vjb25kcywgbXNQZXJTZWNvbmRDb25zdGFudCkpKTsKKyAgICAg
ICAgICAgIHNldEpTVmFsdWUobV9vdXQuc2VsZWN0KG1fb3V0LmRvdWJsZU5vdEVxdWFsT3JVbm9y
ZGVyZWQobWlsbGlzZWNvbmRzLCBtaWxsaXNlY29uZHMpLCBtX291dC5jb25zdEludDY0KEpTVmFs
dWU6OmVuY29kZShqc05hTigpKSksIGJveEludDMyKHJlc3VsdCkpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RnVsbFllYXJJ
bnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5jZURh
dGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRh
X2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX3llYXIsIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhcik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRnVs
bFllYXJJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0
YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5z
dGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX3llYXIsIG9wZXJhdGlvbkRhdGVH
ZXRVVENGdWxsWWVhcik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJv
dG90eXBlR2V0TW9udGhJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBz
LkRhdGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5E
YXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX21vbnRoLCBvcGVyYXRpb25E
YXRlR2V0TW9udGgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3Rv
dHlwZUdldFVUQ01vbnRoSW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFw
cy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMsIG1faGVh
cHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19tb250aCwgb3Bl
cmF0aW9uRGF0ZUdldFVUQ01vbnRoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IERhdGVQcm90b3R5cGVHZXREYXRlSW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUo
bV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMsIG1f
aGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9tb250aERheSwg
b3BlcmF0aW9uRGF0ZUdldERhdGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
RGF0ZVByb3RvdHlwZUdldFVUQ0RhdGVJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29k
ZShtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JN
UywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX21v
bnRoRGF5LCBvcGVyYXRpb25EYXRlR2V0VVRDRGF0ZSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF5SW50cmluc2ljOgorICAgICAgICAgICAgZW1p
dEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVk
Rm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV93
ZWVrRGF5LCBvcGVyYXRpb25EYXRlR2V0RGF5KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENEYXlJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0
R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNo
ZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1l
VVRDX3dlZWtEYXksIG9wZXJhdGlvbkRhdGVHZXRVVENEYXkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEhvdXJzSW50cmluc2ljOgorICAgICAgICAg
ICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1l
Q2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRl
VGltZV9ob3VyLCBvcGVyYXRpb25EYXRlR2V0SG91cnMpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0hvdXJzSW50cmluc2ljOgorICAgICAgICAg
ICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1l
VVRDQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5E
YXRlVGltZVVUQ19ob3VyLCBvcGVyYXRpb25EYXRlR2V0VVRDSG91cnMpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1pbnV0ZXNJbnRyaW5zaWM6Cisg
ICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFu
RGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdv
cmlhbkRhdGVUaW1lX21pbnV0ZSwgb3BlcmF0aW9uRGF0ZUdldE1pbnV0ZXMpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01pbnV0ZXNJbnRyaW5z
aWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3Jl
Z29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2Nh
Y2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX21pbnV0ZSwgb3BlcmF0aW9uRGF0ZUdldFVUQ01pbnV0
ZXMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFNl
Y29uZHNJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0
YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFu
Y2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX3NlY29uZCwgb3BlcmF0aW9uRGF0ZUdldFNl
Y29uZHMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdl
dFVUQ1NlY29uZHNJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRh
dGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUywgbV9oZWFwcy5E
YXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX3NlY29uZCwgb3BlcmF0
aW9uRGF0ZUdldFVUQ1NlY29uZHMpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2Fz
ZSBEYXRlUHJvdG90eXBlR2V0VGltZXpvbmVPZmZzZXRJbnRyaW5zaWM6CisgICAgICAgICAgICBl
bWl0R2V0Q29kZVdpdGhDYWxsYmFjayhtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFu
RGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdv
cmlhbkRhdGVUaW1lX3llYXIsIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhciwgWyZdIChMVmFsdWUg
b2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fb3V0Lm5lZyhvZmZzZXQpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERhdGVQcm90
b3R5cGVHZXRZZWFySW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGVXaXRoQ2FsbGJh
Y2sobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMs
IG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV95ZWFyLCBv
cGVyYXRpb25EYXRlR2V0RnVsbFllYXIsIFsmXSAoTFZhbHVlIHllYXIpIHsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbV9vdXQuc3ViKHllYXIsIG1fb3V0LmNvbnN0SW50MzIoMTkwMCkpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgIH0K
ICAgICAKICAgICB2b2lkIGVtaXRTd2l0Y2hGb3JNdWx0aUJ5T2Zmc2V0KExWYWx1ZSBiYXNlLCBi
b29sIHN0cnVjdHVyZXNDaGVja2VkLCBWZWN0b3I8U3dpdGNoQ2FzZSwgMj4mIGNhc2VzLCBMQmFz
aWNCbG9jayBleGl0KQogICAgIHsKQEAgLTE1NzU3LDYgKzE1ODcwLDEzIEBAIGNsYXNzIExvd2Vy
REZHVG9CMyB7CiAgICAgICAgIHNwZWN1bGF0ZURhdGFWaWV3T2JqZWN0KGVkZ2UsIHJlc3VsdCk7
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQorCisgICAgTFZhbHVlIGxvd0RhdGVPYmpl
Y3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGxvd0NlbGwoZWRn
ZSk7CisgICAgICAgIHNwZWN1bGF0ZURhdGVPYmplY3QoZWRnZSwgcmVzdWx0KTsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9CiAgICAgCiAgICAgTFZhbHVlIGxvd1N0cmluZyhFZGdlIGVk
Z2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxh
dGlvbikKICAgICB7CkBAIC0xNjI0Miw2ICsxNjM2Miw5IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7
CiAgICAgICAgIGNhc2UgRGVyaXZlZEFycmF5VXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlRGVy
aXZlZEFycmF5KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZU9i
amVjdFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0ZURhdGVPYmplY3QoZWRnZSk7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgICAgICBzcGVj
dWxhdGVNYXBPYmplY3QoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE2NzY4LDYgKzE2
ODkxLDE3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIHNwZWN1bGF0ZVByb21pc2VP
YmplY3QoZWRnZSwgbG93Q2VsbChlZGdlKSk7CiAgICAgfQogCisgICAgdm9pZCBzcGVjdWxhdGVE
YXRlT2JqZWN0KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICBGVExfVFlQ
RV9DSEVDSygKKyAgICAgICAgICAgIGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY0RhdGVP
YmplY3QsIGlzTm90VHlwZShjZWxsLCBKU0RhdGVUeXBlKSk7CisgICAgfQorCisgICAgdm9pZCBz
cGVjdWxhdGVEYXRlT2JqZWN0KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZURh
dGVPYmplY3QoZWRnZSwgbG93Q2VsbChlZGdlKSk7CisgICAgfQorCiAgICAgdm9pZCBzcGVjdWxh
dGVNYXBPYmplY3QoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKICAgICB7CiAgICAgICAgIEZUTF9U
WVBFX0NIRUNLKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUNvbnZlcnNpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZl
cnNpb24uY3BwCmluZGV4IGFlOWY0ZTBjYTdjY2IwMmZhYjQyYmZjMmUyNjQ5YjAyYmE4ZWQ5NGEu
LjViMmFhMWE3MWZmZjVhNTBkZDMxMWVkZDI1ZWFkZDE4MmU3YjdjOWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVyc2lvbi5jcHAKQEAgLTk3LDggKzk3
LDggQEAgU3RyaW5nIGZvcm1hdERhdGVUaW1lKGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lJiB0LCBE
YXRlVGltZUZvcm1hdCBmb3JtYXQsIGJvb2wgYXMKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgR01UIik7CiAKICAgICAgICAgaWYgKCFhc1VUQ1ZhcmlhbnQpIHsKLSAgICAgICAgICAg
IGludCBvZmZzZXQgPSBhYnModC51dGNPZmZzZXQoKSkgLyA2MDsKLSAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKHQudXRjT2Zmc2V0KCkgPCAwID8gJy0nIDogJysnKTsKKyAgICAgICAgICAgIGlu
dCBvZmZzZXQgPSBhYnModC51dGNPZmZzZXRJbk1pbnV0ZSgpKTsKKyAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKHQudXRjT2Zmc2V0SW5NaW51dGUoKSA8IDAgPyAnLScgOiAnKycpOwogICAgICAg
ICAgICAgYXBwZW5kTnVtYmVyPDI+KGJ1aWxkZXIsIG9mZnNldCAvIDYwKTsKICAgICAgICAgICAg
IGFwcGVuZE51bWJlcjwyPihidWlsZGVyLCBvZmZzZXQgJSA2MCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCmluZGV4IDdiNGU0NWNlYTQxOTlh
MTg3MjM3OTE0MWNkNWUyMmUxNzZkMzRlNDcuLjhmNWMyZWQyMjYzMjk1Y2JjNDU3ZWU3NmVhZWIz
NzRkM2U3ZjJhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUlu
c3RhbmNlLmNwcApAQCAtNTcsMTMgKzU3LDEyIEBAIHZvaWQgRGF0ZUluc3RhbmNlOjpkZXN0cm95
KEpTQ2VsbCogY2VsbCkKICAgICBzdGF0aWNfY2FzdDxEYXRlSW5zdGFuY2UqPihjZWxsKS0+RGF0
ZUluc3RhbmNlOjp+RGF0ZUluc3RhbmNlKCk7CiB9CiAKLWNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBEYXRlSW5zdGFuY2U6OmNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpIGNvbnN0Citjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3Rh
bmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZShWTSYgdm0pIGNvbnN0CiB7CiAgICAgZG91
YmxlIG1pbGxpID0gaW50ZXJuYWxOdW1iZXIoKTsKICAgICBpZiAoc3RkOjppc25hbihtaWxsaSkp
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBpZiAoIW1fZGF0YSkKICAgICAgICAgbV9kYXRh
ID0gdm0uZGF0ZUluc3RhbmNlQ2FjaGUuYWRkKG1pbGxpKTsKIApAQCAtNzQsMTMgKzczLDEyIEBA
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBEYXRlSW5zdGFuY2U6OmNhbGN1bGF0ZUdyZWdvcmlh
bkRhdGVUaW1lKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuICZtX2RhdGEtPm1fY2FjaGVkR3Jl
Z29yaWFuRGF0ZVRpbWU7CiB9CiAKLWNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBEYXRlSW5zdGFu
Y2U6OmNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lVVRDKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpIGNvbnN0Citjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxj
dWxhdGVHcmVnb3JpYW5EYXRlVGltZVVUQyhWTSYgdm0pIGNvbnN0CiB7CiAgICAgZG91YmxlIG1p
bGxpID0gaW50ZXJuYWxOdW1iZXIoKTsKICAgICBpZiAoc3RkOjppc25hbihtaWxsaSkpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBpZiAoIW1fZGF0YSkKICAgICAgICAgbV9kYXRhID0gdm0u
ZGF0ZUluc3RhbmNlQ2FjaGUuYWRkKG1pbGxpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlSW5zdGFuY2UuaAppbmRleCAzNTc4YWI4MmE0NjUzNjAxYzA5ZDgwZGQwNDU0
NDVlYjgwNDI5YzZjLi45ZTc3ODM5NzE0ZmNkYzE3Yjg3YTY0ZDk3YmI4NDBmOTdjYWRjNDZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApAQCAtNTQs
MjggKzU0LDMxIEBAIGNsYXNzIERhdGVJbnN0YW5jZSBmaW5hbCA6IHB1YmxpYyBKU0Rlc3RydWN0
aWJsZU9iamVjdCB7CiAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwogCi0gICAgY29uc3QgR3Jl
Z29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpIGNvbnN0CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lKFZNJiB2bSkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChtX2RhdGEgJiYgbV9kYXRhLT5t
X2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMgPT0gaW50ZXJuYWxOdW1iZXIoKSkKICAgICAg
ICAgICAgIHJldHVybiAmbV9kYXRhLT5tX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lOwotICAgICAg
ICByZXR1cm4gY2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICAg
ICAgcmV0dXJuIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICB9CiAKLSAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWVVVEMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkgY29uc3QKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3Jl
Z29yaWFuRGF0ZVRpbWVVVEMoVk0mIHZtKSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKG1fZGF0
YSAmJiBtX2RhdGEtPm1fZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUyA9PSBpbnRlcm5h
bE51bWJlcigpKQogICAgICAgICAgICAgcmV0dXJuICZtX2RhdGEtPm1fY2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVVVEM7Ci0gICAgICAgIHJldHVybiBjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZVVU
QyhnbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gY2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRp
bWVVVEModm0pOwogICAgIH0KIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhKU0RhdGVUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
CiAgICAgfQogCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkludGVybmFsTnVtYmVyKCkg
eyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKERhdGVJbnN0YW5jZSwgbV9pbnRlcm5hbE51bWJlcik7
IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mRGF0YSgpIHsgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihEYXRlSW5zdGFuY2UsIG1fZGF0YSk7IH0KKwogcHJpdmF0ZToKLSAgICBKU19FWFBP
UlRfUFJJVkFURSBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogY2FsY3VsYXRlR3JlZ29yaWFuRGF0
ZVRpbWUoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBjb25z
dCBHcmVnb3JpYW5EYXRlVGltZSogY2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWVVVEMoSlNHbG9i
YWxPYmplY3QqKSBjb25zdDsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBjb25zdCBHcmVnb3JpYW5E
YXRlVGltZSogY2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWUoVk0mKSBjb25zdDsKKyAgICBKU19F
WFBPUlRfUFJJVkFURSBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogY2FsY3VsYXRlR3JlZ29yaWFu
RGF0ZVRpbWVVVEMoVk0mKSBjb25zdDsKIAogICAgIGRvdWJsZSBtX2ludGVybmFsTnVtYmVyIHsg
UE5hTiB9OwogICAgIG11dGFibGUgUmVmUHRyPERhdGVJbnN0YW5jZURhdGE+IG1fZGF0YTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oCmlu
ZGV4IDc1NjQwZWIzNzMwNDFjOGU5M2M0YjkyNjY2YjhmMWZlMjM3Mzg1YTEuLjJjNGZiNTIyZDNl
ZjliNjJlOGI0MGJlMzNlZThlZWNlYWUxMGIwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlQ2FjaGUuaApAQCAtMzcsMTcgKzM3LDE4IEBAIGNs
YXNzIERhdGVJbnN0YW5jZURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRlSW5zdGFuY2VEYXRh
PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxEYXRlSW5zdGFuY2VEYXRhPiBjcmVhdGUoKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVJbnN0YW5jZURhdGEpOyB9CiAKLSAgICBkb3VibGUg
bV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TOworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zm
c2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKERhdGVJbnN0YW5jZURhdGEsIG1fZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUyk7IH0K
KyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSB7
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRGF0ZUluc3RhbmNlRGF0YSwgbV9jYWNoZWRHcmVnb3Jp
YW5EYXRlVGltZSk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mR3JlZ29yaWFuRGF0
ZVRpbWVVVENDYWNoZWRGb3JNUygpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihEYXRlSW5zdGFu
Y2VEYXRhLCBtX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMpOyB9CisgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKERhdGVJbnN0YW5jZURhdGEsIG1fY2FjaGVkR3JlZ29yaWFuRGF0ZVRp
bWVVVEMpOyB9CisKKyAgICBkb3VibGUgbV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TIHsg
UE5hTiB9OwogICAgIEdyZWdvcmlhbkRhdGVUaW1lIG1fY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWU7
Ci0gICAgZG91YmxlIG1fZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUzsKKyAgICBkb3Vi
bGUgbV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TIHsgUE5hTiB9OwogICAgIEdyZWdv
cmlhbkRhdGVUaW1lIG1fY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEM7CiAKIHByaXZhdGU6Ci0g
ICAgRGF0ZUluc3RhbmNlRGF0YSgpCi0gICAgICAgIDogbV9ncmVnb3JpYW5EYXRlVGltZUNhY2hl
ZEZvck1TKFBOYU4pCi0gICAgICAgICwgbV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1T
KFBOYU4pCi0gICAgewotICAgIH0KKyAgICBEYXRlSW5zdGFuY2VEYXRhKCkgPSBkZWZhdWx0Owog
fTsKIAogY2xhc3MgRGF0ZUluc3RhbmNlQ2FjaGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAppbmRleCAyMzllOTMyZWVkYzRmYWQ1MDdiZWEx
ODM0ZjdkNDk3NWU2OWYxMmNlLi4yYWZmMGY3M2Q3YzY0NGM2OGRhZDVjMTY3ZmZlM2YzN2JkNDdj
ODc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90
eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBl
LmNwcApAQCAtMzEzLDcgKzMxMyw3IEBAIHN0YXRpYyBKU0NlbGwqIGZvcm1hdExvY2FsZURhdGUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhCiBzdGF0aWMg
SlNDZWxsKiBmb3JtYXRMb2NhbGVEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lLCBEYXRlSW5zdGFuY2UqIGRhdGVPYmplY3QsIGRvdWJsZSwgTG9j
YWxlRGF0ZVRpbWVGb3JtYXQgZm9ybWF0KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBk
YXRlT2JqZWN0LT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdy
ZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGVPYmplY3QtPmdyZWdvcmlh
bkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1
cm4ganNOb250cml2aWFsU3RyaW5nKHZtLCAiSW52YWxpZCBEYXRlIl9zKTsKICAgICByZXR1cm4g
Zm9ybWF0TG9jYWxlRGF0ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgKmdyZWdvcmlhbkRhdGVU
aW1lLCBmb3JtYXQpOwpAQCAtMzMxLDggKzMzMSw4IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBm
b3JtYXRlRGF0ZUluc3RhbmNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwog
CiAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gYXNVVENW
YXJpYW50Ci0gICAgICAgID8gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2Jh
bE9iamVjdCkKLSAgICAgICAgOiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFs
T2JqZWN0KTsKKyAgICAgICAgPyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0p
CisgICAgICAgIDogdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAo
IWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9u
dHJpdmlhbFN0cmluZyh2bSwgU3RyaW5nKCJJbnZhbGlkIERhdGUiX3MpKSk7CiAKQEAgLTQ1NCwy
NSArNDU0LDI2IEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlUHJvdG90eXBlOjpzX2luZm8gPSB7Ik9i
amVjdCIsICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8sICZkCiAgIHRvTG9jYWxlU3RyaW5nICAg
ICAgICBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcgICAgICAgICAgRG9udEVudW18RnVuY3Rp
b24gICAgICAgMAogICB0b0xvY2FsZURhdGVTdHJpbmcgICAgZGF0ZVByb3RvRnVuY1RvTG9jYWxl
RGF0ZVN0cmluZyAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKICAgdG9Mb2NhbGVUaW1l
U3RyaW5nICAgIGRhdGVQcm90b0Z1bmNUb0xvY2FsZVRpbWVTdHJpbmcgICAgICBEb250RW51bXxG
dW5jdGlvbiAgICAgICAwCi0gIHZhbHVlT2YgICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0
VGltZSAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRUaW1l
ICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFRpbWUgICAgICAgICAgICAgICAgIERvbnRF
bnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0RnVsbFllYXIgICAgICAgICAgIGRhdGVQcm90b0Z1
bmNHZXRGdWxsWWVhciAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdl
dFVUQ0Z1bGxZZWFyICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIgICAgICAgICAg
RG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRNb250aCAgICAgICAgICAgICAgZGF0ZVBy
b3RvRnVuY0dldE1vbnRoICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAK
LSAgZ2V0VVRDTW9udGggICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENNb250aCAgICAgICAg
ICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldERhdGUgICAgICAgICAgICAgICBk
YXRlUHJvdG9GdW5jR2V0RGF0ZSAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAg
ICAgMAotICBnZXRVVENEYXRlICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUgICAg
ICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0RGF5ICAgICAgICAgICAg
ICAgIGRhdGVQcm90b0Z1bmNHZXREYXkgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlv
biAgICAgICAwCi0gIGdldFVUQ0RheSAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDRGF5
ICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRIb3VycyAgICAg
ICAgICAgICAgZGF0ZVByb3RvRnVuY0dldEhvdXJzICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uICAgICAgIDAKLSAgZ2V0VVRDSG91cnMgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRV
VENIb3VycyAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldE1pbnV0
ZXMgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0TWludXRlcyAgICAgICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gICAgICAgMAotICBnZXRVVENNaW51dGVzICAgICAgICAgZGF0ZVByb3RvRnVu
Y0dldFVUQ01pbnV0ZXMgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0
U2Vjb25kcyAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRTZWNvbmRzICAgICAgICAgICAgICBE
b250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFVUQ1NlY29uZHMgICAgICAgICBkYXRlUHJv
dG9GdW5jR2V0VVRDU2Vjb25kcyAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAot
ICBnZXRNaWxsaXNlY29uZHMgICAgICAgZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyAgICAg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VVRDTWlsbGlzZWNvbmRzICAgIGRh
dGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAg
ICAwCi0gIGdldFRpbWV6b25lT2Zmc2V0ICAgICBkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZz
ZXQgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAorICB2YWx1ZU9mICAgICAgICAgICAg
ICAgZGF0ZVByb3RvRnVuY0dldFRpbWUgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
ICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljCisgIGdldFRpbWUgICAgICAg
ICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VGltZSAgICAgICAgICAgICAgICAgRG9udEVudW18RnVu
Y3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWMKKyAgZ2V0RnVsbFll
YXIgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRGdWxsWWVhciAgICAgICAgICAgICBEb250RW51
bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0RnVsbFllYXJJbnRyaW5zaWMKKyAg
Z2V0VVRDRnVsbFllYXIgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhciAgICAgICAg
ICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VVRDRnVsbFllYXJJ
bnRyaW5zaWMKKyAgZ2V0TW9udGggICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRNb250aCAg
ICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0
TW9udGhJbnRyaW5zaWMKKyAgZ2V0VVRDTW9udGggICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRV
VENNb250aCAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90
eXBlR2V0VVRDTW9udGhJbnRyaW5zaWMKKyAgZ2V0RGF0ZSAgICAgICAgICAgICAgIGRhdGVQcm90
b0Z1bmNHZXREYXRlICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBE
YXRlUHJvdG90eXBlR2V0RGF0ZUludHJpbnNpYworICBnZXRVVENEYXRlICAgICAgICAgICAgZGF0
ZVByb3RvRnVuY0dldFVUQ0RhdGUgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAg
IDAgIERhdGVQcm90b3R5cGVHZXRVVENEYXRlSW50cmluc2ljCisgIGdldERheSAgICAgICAgICAg
ICAgICBkYXRlUHJvdG9GdW5jR2V0RGF5ICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rp
b24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldERheUludHJpbnNpYworICBnZXRVVENEYXkgICAg
ICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0RheSAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRVVENEYXlJbnRyaW5zaWMKKyAgZ2V0SG91
cnMgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRIb3VycyAgICAgICAgICAgICAgICBEb250
RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0SG91cnNJbnRyaW5zaWMKKyAg
Z2V0VVRDSG91cnMgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENIb3VycyAgICAgICAgICAg
ICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VVRDSG91cnNJbnRy
aW5zaWMKKyAgZ2V0TWludXRlcyAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRNaW51dGVzICAg
ICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0TWlu
dXRlc0ludHJpbnNpYworICBnZXRVVENNaW51dGVzICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVU
Q01pbnV0ZXMgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5
cGVHZXRVVENNaW51dGVzSW50cmluc2ljCisgIGdldFNlY29uZHMgICAgICAgICAgICBkYXRlUHJv
dG9GdW5jR2V0U2Vjb25kcyAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAg
RGF0ZVByb3RvdHlwZUdldFNlY29uZHNJbnRyaW5zaWMKKyAgZ2V0VVRDU2Vjb25kcyAgICAgICAg
IGRhdGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAg
ICAgICAwICBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNpYworICBnZXRNaWxsaXNl
Y29uZHMgICAgICAgZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyAgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRNaWxsaXNlY29uZHNJbnRyaW5zaWMK
KyAgZ2V0VVRDTWlsbGlzZWNvbmRzICAgIGRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMg
ICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VVRDTWlsbGlz
ZWNvbmRzSW50cmluc2ljCisgIGdldFRpbWV6b25lT2Zmc2V0ICAgICBkYXRlUHJvdG9GdW5jR2V0
VGltZXpvbmVPZmZzZXQgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3Rv
dHlwZUdldFRpbWV6b25lT2Zmc2V0SW50cmluc2ljCisgIGdldFllYXIgICAgICAgICAgICAgICBk
YXRlUHJvdG9GdW5jR2V0WWVhciAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAg
ICAgMCAgRGF0ZVByb3RvdHlwZUdldFllYXJJbnRyaW5zaWMKICAgc2V0VGltZSAgICAgICAgICAg
ICAgIGRhdGVQcm90b0Z1bmNTZXRUaW1lICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlv
biAgICAgICAxCiAgIHNldE1pbGxpc2Vjb25kcyAgICAgICBkYXRlUHJvdG9GdW5jU2V0TWlsbGlT
ZWNvbmRzICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMQogICBzZXRVVENNaWxsaXNl
Y29uZHMgICAgZGF0ZVByb3RvRnVuY1NldFVUQ01pbGxpc2Vjb25kcyAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uICAgICAgIDEKQEAgLTQ4OSw3ICs0OTAsNiBAQCBjb25zdCBDbGFzc0luZm8gRGF0ZVBy
b3RvdHlwZTo6c19pbmZvID0geyJPYmplY3QiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAm
ZAogICBzZXRGdWxsWWVhciAgICAgICAgICAgZGF0ZVByb3RvRnVuY1NldEZ1bGxZZWFyICAgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDMKICAgc2V0VVRDRnVsbFllYXIgICAgICAg
IGRhdGVQcm90b0Z1bmNTZXRVVENGdWxsWWVhciAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAg
ICAgICAzCiAgIHNldFllYXIgICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jU2V0WWVhciAgICAg
ICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMQotICBnZXRZZWFyICAgICAgICAg
ICAgICAgZGF0ZVByb3RvRnVuY0dldFllYXIgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uICAgICAgIDAKICAgdG9KU09OICAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNUb0pTT04g
ICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAxCiBAZW5kCiAqLwpAQCAt
NTQ5LDcgKzU0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVu
Y1RvSVNPU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgaWYgKCFzdGQ6Omlz
ZmluaXRlKHRoaXNEYXRlT2JqLT5pbnRlcm5hbE51bWJlcigpKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGdsb2JhbE9i
amVjdCwgIkludmFsaWQgRGF0ZSJfcykpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUq
IGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGds
b2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICBpZiAoIWdy
ZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJp
dmlhbFN0cmluZyh2bSwgU3RyaW5nKCJJbnZhbGlkIERhdGUiX3MpKSk7CiAgICAgLy8gTWF4aW11
bSBhbW91bnQgb2Ygc3BhY2Ugd2UgbmVlZCBpbiBidWZmZXI6IDcgKG1heC4gZGlnaXRzIGluIHll
YXIpICsgMiAqIDUgKDIgY2hhcmFjdGVycyBlYWNoIGZvciBtb250aCwgZGF5LCBob3VyLCBtaW51
dGUsIHNlY29uZCkgKyA0ICguICsgMyBkaWdpdHMgZm9yIG1pbGxpc2Vjb25kcykKQEAgLTY2NCw3
ICs2NjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRG
dWxsWWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIGlmIChVTkxJS0VMWSghdGhp
c0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGlt
ZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOworICAgIGNv
bnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5n
cmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT55ZWFyKCkpKTsKQEAgLTY3OSw3ICs2
NzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENG
dWxsWWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIGlmIChVTkxJS0VMWSghdGhpc0Rh
dGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9
IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpOworICAgIGNv
bnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5n
cmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT55ZWFyKCkpKTsKQEAgLTY5NCw3
ICs2OTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRN
b250aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIGlmIChVTkxJS0VMWSghdGhp
c0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGlt
ZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOworICAgIGNv
bnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5n
cmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aCgpKSk7CkBAIC03MDksNyAr
NzA5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRD
TW9udGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNE
YXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUg
PSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+
Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGgoKSkpOwpAQCAtNzI0
LDcgKzcyNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dERhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBpZiAoVU5MSUtFTFkoIXRo
aXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRp
bWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+
Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGhEYXkoKSkpOwpAQCAtNzM5
LDcgKzczOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dFVUQ0RhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgaWYgKFVOTElLRUxZKCF0
aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCk7Cisg
ICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVP
YmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1l
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoRGF5KCkpKTsK
QEAgLTc1NCw3ICs3NTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90
b0Z1bmNHZXREYXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIGlmIChVTkxJ
S0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3Jp
YW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3Qp
OworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNE
YXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGlt
ZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT53ZWVrRGF5KCkpKTsK
QEAgLTc2OSw3ICs3NjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90
b0Z1bmNHZXRVVENEYXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIGlmIChVTkxJ
S0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3Jp
YW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmpl
Y3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRo
aXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5E
YXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT53ZWVrRGF5
KCkpKTsKQEAgLTc4NCw3ICs3ODQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNHZXRIb3VycyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIGlm
IChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBn
cmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxP
YmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9
IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5E
YXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5ob3VyKCkp
KTsKQEAgLTc5OSw3ICs3OTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNHZXRVVENIb3VycyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIGlmIChV
TkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVn
b3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxP
YmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9
IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3Jp
YW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5ob3Vy
KCkpKTsKQEAgLTgxNCw3ICs4MTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNHZXRNaW51dGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIGlm
IChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBn
cmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxP
YmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9
IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5E
YXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5taW51dGUo
KSkpOwpAQCAtODI5LDcgKzgyOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldFVUQ01pbnV0ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgaWYg
KFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdy
ZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2Jh
bE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1l
ID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICBpZiAoIWdyZWdv
cmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1p
bnV0ZSgpKSk7CkBAIC04NDQsNyArODQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAg
ICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xv
YmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRp
bWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29y
aWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vj
b25kKCkpKTsKQEAgLTg1OSw3ICs4NTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAg
IGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhn
bG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRl
VGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CiAgICAgaWYgKCFn
cmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigp
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1l
LT5zZWNvbmQoKSkpOwpAQCAtODgwLDcgKzg4MCw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
CiAKICAgICBkb3VibGUgc2VjcyA9IGZsb29yKG1pbGxpIC8gbXNQZXJTZWNvbmQpOwogICAgIGRv
dWJsZSBtcyA9IG1pbGxpIC0gc2VjcyAqIG1zUGVyU2Vjb25kOwotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIobXMpKTsKKyAgICAvLyBTaW5jZSB0aW1lQ2xpcCBtYWtlcyBpbnRl
cm5hbE51bWJlciBpbnRlZ2VyIG1pbGxpc2Vjb25kcywgdGhpcyByZXN1bHQgaXMgYWx3YXlzIGlu
dDMyX3QuCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihzdGF0aWNfY2FzdDxp
bnQzMl90PihtcykpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQpAQCAtODk4LDcgKzg5OSw4IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01pbGxpc2Vjb25kcyhKU0dsb2JhbE9iamVj
dCogZ2xvCiAKICAgICBkb3VibGUgc2VjcyA9IGZsb29yKG1pbGxpIC8gbXNQZXJTZWNvbmQpOwog
ICAgIGRvdWJsZSBtcyA9IG1pbGxpIC0gc2VjcyAqIG1zUGVyU2Vjb25kOwotICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIobXMpKTsKKyAgICAvLyBTaW5jZSB0aW1lQ2xpcCBtYWtl
cyBpbnRlcm5hbE51bWJlciBpbnRlZ2VyIG1pbGxpc2Vjb25kcywgdGhpcyByZXN1bHQgaXMgYWx3
YXlzIGludDMyX3QuCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihzdGF0aWNf
Y2FzdDxpbnQzMl90PihtcykpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCkBAIC05MTAsMTAgKzkxMiwxMCBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNldChKU0dsb2Jh
bE9iamVjdCogZ2xvYgogICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0
IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVn
b3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7
CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc05hTigpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC1ncmVn
b3JpYW5EYXRlVGltZS0+dXRjT2Zmc2V0KCkgLyBtaW51dGVzUGVySG91cikpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLWdyZWdvcmlhbkRhdGVUaW1lLT51dGNPZmZzZXRJ
bk1pbnV0ZSgpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY1NldFRpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCkBAIC05NTEsMTMgKzk1MywxMiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc2V0TmV3
VmFsdWVGcm9tVGltZUFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAg
IGRvdWJsZSBtcyA9IG1pbGxpIC0gc2VjcyAqIG1zUGVyU2Vjb25kOwogCiAgICAgY29uc3QgR3Jl
Z29yaWFuRGF0ZVRpbWUqIG90aGVyID0gaW5wdXRUaW1lVHlwZSA9PSBXVEY6OlVUQ1RpbWUKLSAg
ICAgICAgPyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KQot
ICAgICAgICA6IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOwor
ICAgICAgICA/IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSkKKyAgICAgICAg
OiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghb3RoZXIpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAKLSAgICBHcmVnb3JpYW5E
YXRlVGltZSBncmVnb3JpYW5EYXRlVGltZTsKLSAgICBncmVnb3JpYW5EYXRlVGltZS5jb3B5RnJv
bSgqb3RoZXIpOworICAgIEdyZWdvcmlhbkRhdGVUaW1lIGdyZWdvcmlhbkRhdGVUaW1lKCpvdGhl
cik7CiAgICAgYm9vbCBzdWNjZXNzID0gZmlsbFN0cnVjdHVyZXNVc2luZ1RpbWVBcmdzKGdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLCBudW1BcmdzVG9Vc2UsICZtcywgJmdyZWdvcmlhbkRhdGVUaW1l
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAg
ICBpZiAoIXN1Y2Nlc3MpIHsKQEAgLTk5NCwxMSArOTk1LDExIEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBzZXROZXdWYWx1ZUZyb21EYXRlQXJncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsCiAgICAgZWxzZSB7IAogICAgICAgICBtcyA9IG1pbGxpIC0gZmxvb3IobWlsbGkgLyBt
c1BlclNlY29uZCkgKiBtc1BlclNlY29uZDsgCiAgICAgICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVU
aW1lKiBvdGhlciA9IGlucHV0VGltZVR5cGUgPT0gV1RGOjpVVENUaW1lCi0gICAgICAgICAgICA/
IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpCi0gICAgICAg
ICAgICA6IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOworICAg
ICAgICAgICAgPyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pCisgICAgICAg
ICAgICA6IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgICAgIGlmICgh
b3RoZXIpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwotICAg
ICAgICBncmVnb3JpYW5EYXRlVGltZS5jb3B5RnJvbSgqb3RoZXIpOworICAgICAgICBncmVnb3Jp
YW5EYXRlVGltZSA9ICpvdGhlcjsKICAgICB9CiAgICAgCiAgICAgYm9vbCBzdWNjZXNzID0gZmls
bFN0cnVjdHVyZXNVc2luZ0RhdGVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBudW1Bcmdz
VG9Vc2UsICZtcywgJmdyZWdvcmlhbkRhdGVUaW1lKTsKQEAgLTExMDksOCArMTExMCw4IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFllYXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBlbHNlIHsKICAgICAgICAgZG91YmxlIHNlY3MgPSBm
bG9vcihtaWxsaSAvIG1zUGVyU2Vjb25kKTsKICAgICAgICAgbXMgPSBtaWxsaSAtIHNlY3MgKiBt
c1BlclNlY29uZDsKLSAgICAgICAgaWYgKGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBvdGhlciA9
IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpKQotICAgICAgICAg
ICAgZ3JlZ29yaWFuRGF0ZVRpbWUuY29weUZyb20oKm90aGVyKTsKKyAgICAgICAgaWYgKGNvbnN0
IEdyZWdvcmlhbkRhdGVUaW1lKiBvdGhlciA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGlt
ZSh2bSkpCisgICAgICAgICAgICBncmVnb3JpYW5EYXRlVGltZSA9ICpvdGhlcjsKICAgICB9CiAK
ICAgICBkb3VibGUgeWVhciA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9JbnRlZ2VyUHJlc2Vy
dmVOYU4oZ2xvYmFsT2JqZWN0KTsKQEAgLTExMzYsNyArMTEzNyw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3Jl
Z29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAg
IGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOYU4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dHJpbnNpYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3Bw
CmluZGV4IGExMmEyNDA1NWM3MjkwYTNhMWM5NTZmNmFiNGU3NjM3Zjg3ZmJiMzQuLmE0MWI1N2Iy
Y2JjYmIxYzJkNWQ1ZjZjYTk5YjZhZDYwYjRlYzJhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcApAQCAtODMsNiArODMsNDQgQEAgY29uc3QgY2hhciog
aW50cmluc2ljTmFtZShJbnRyaW5zaWMgaW50cmluc2ljKQogICAgICAgICByZXR1cm4gIkNoYXJD
b2RlQXRJbnRyaW5zaWMiOwogICAgIGNhc2UgQ2hhckF0SW50cmluc2ljOgogICAgICAgICByZXR1
cm4gIkNoYXJBdEludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VGltZUludHJp
bnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VGltZUludHJpbnNpYyI7Cisg
ICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RnVsbFllYXJJbnRyaW5zaWM6CisgICAgICAgIHJldHVy
biAiRGF0ZVByb3RvdHlwZUdldEZ1bGxZZWFySW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90
b3R5cGVHZXRVVENGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90
eXBlR2V0VVRDRnVsbFllYXJJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1v
bnRoSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRNb250aEludHJp
bnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTW9udGhJbnRyaW5zaWM6CisgICAg
ICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVUQ01vbnRoSW50cmluc2ljIjsKKyAgICBjYXNl
IERhdGVQcm90b3R5cGVHZXREYXRlSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90
b3R5cGVHZXREYXRlSW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENEYXRl
SW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRVVENEYXRlSW50cmlu
c2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXREYXlJbnRyaW5zaWM6CisgICAgICAgIHJl
dHVybiAiRGF0ZVByb3RvdHlwZUdldERheUludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0VVRDRGF5SW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRV
VENEYXlJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEhvdXJzSW50cmluc2lj
OgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYyI7CisgICAg
Y2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDSG91cnNJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAi
RGF0ZVByb3RvdHlwZUdldFVUQ0hvdXJzSW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5
cGVHZXRNaW51dGVzSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRN
aW51dGVzSW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNaW51dGVzSW50
cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRVVENNaW51dGVzSW50cmlu
c2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRTZWNvbmRzSW50cmluc2ljOgorICAgICAg
ICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRTZWNvbmRzSW50cmluc2ljIjsKKyAgICBjYXNlIERh
dGVQcm90b3R5cGVHZXRVVENTZWNvbmRzSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQ
cm90b3R5cGVHZXRVVENTZWNvbmRzSW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVH
ZXRNaWxsaXNlY29uZHNJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdl
dE1pbGxpc2Vjb25kc0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTWls
bGlzZWNvbmRzSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRVVENN
aWxsaXNlY29uZHNJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWV6b25l
T2Zmc2V0SW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRUaW1lem9u
ZU9mZnNldEludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0WWVhckludHJpbnNp
YzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0WWVhckludHJpbnNpYyI7CiAgICAg
Y2FzZSBGcm9tQ2hhckNvZGVJbnRyaW5zaWM6CiAgICAgICAgIHJldHVybiAiRnJvbUNoYXJDb2Rl
SW50cmluc2ljIjsKICAgICBjYXNlIFBvd0ludHJpbnNpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50cmluc2ljLmgKaW5kZXggZTUxYjgzOWQ5ODY2NzY4OTgzZTc1MThlMjQ3NWVh
MzU4ZDlmZDg1MS4uZmUyZTkxMGY5MWVkZWFlZDI2MDlmNDI0NzRlMjgwNGJiNmZmY2NlOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKQEAgLTU0LDYgKzU0LDI1
IEBAIGVudW0gSW50cmluc2ljIDogdWludDhfdCB7CiAgICAgQXJyYXlJbmRleE9mSW50cmluc2lj
LAogICAgIENoYXJDb2RlQXRJbnRyaW5zaWMsCiAgICAgQ2hhckF0SW50cmluc2ljLAorICAgIERh
dGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRGdWxsWWVh
ckludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRDRnVsbFllYXJJbnRyaW5zaWMsCisg
ICAgRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRV
VENNb250aEludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0RGF0ZUludHJpbnNpYywKKyAg
ICBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0
RGF5SW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRVVENEYXlJbnRyaW5zaWMsCisgICAg
RGF0ZVByb3RvdHlwZUdldEhvdXJzSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRVVENI
b3Vyc0ludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0TWludXRlc0ludHJpbnNpYywKKyAg
ICBEYXRlUHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBl
R2V0U2Vjb25kc0ludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJp
bnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljLAorICAgIERh
dGVQcm90b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlw
ZUdldFRpbWV6b25lT2Zmc2V0SW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRZZWFySW50
cmluc2ljLAogICAgIEZyb21DaGFyQ29kZUludHJpbnNpYywKICAgICBQb3dJbnRyaW5zaWMsCiAg
ICAgRmxvb3JJbnRyaW5zaWMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0RhdGVNYXRoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0
ZU1hdGguY3BwCmluZGV4IDc5OTZhOGY4YWU3MGVmMGM1NGRmYmIyOGQzMDZjMTlmYmM1YWFmMjEu
LjZjOGIzNzk3NjdmNDYzMTBjZjM1M2RhNDhlNDFlM2E2YjVlMjJhMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCkBAIC0yMTksNyArMjE5LDcgQEAg
dm9pZCBtc1RvR3JlZ29yaWFuRGF0ZVRpbWUoVk0mIHZtLCBkb3VibGUgbXMsIFdURjo6VGltZVR5
cGUgb3V0cHV0VGltZVR5cGUsIEdyZWcKICAgICB0bS5zZXRNb250aChtb250aEZyb21EYXlJblll
YXIodG0ueWVhckRheSgpLCBpc0xlYXBZZWFyKHllYXIpKSk7CiAgICAgdG0uc2V0WWVhcih5ZWFy
KTsKICAgICB0bS5zZXRJc0RTVChsb2NhbFRpbWUuaXNEU1QpOwotICAgIHRtLnNldFV0Y09mZnNl
dChsb2NhbFRpbWUub2Zmc2V0IC8gV1RGOjptc1BlclNlY29uZCk7CisgICAgdG0uc2V0VVRDT2Zm
c2V0SW5NaW51dGUobG9jYWxUaW1lLm9mZnNldCAvIFdURjo6bXNQZXJNaW51dGUpOwogfQogCiBk
b3VibGUgcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyhWTSYgdm0sIGNvbnN0
IGNoYXIqIGRhdGVTdHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmNw
cAppbmRleCBkMWM2NzNlNjVmYThmMmE3YjhlYmNmNGU1ZjIxNGZmOThjMjhiN2U0Li4xNmRjOWI5
MWY0ZmM0MzEyODY0MzY0NmVjNmQwMzlhZWNhZGY3YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVHlwZS5jcHAKQEAgLTk2LDYgKzk2LDcgQEAgdm9pZCBwcmludEludGVybmFs
KFByaW50U3RyZWFtJiBvdXQsIEpTQzo6SlNUeXBlIHR5cGUpCiAgICAgQ0FTRShXaXRoU2NvcGVU
eXBlKQogICAgIENBU0UoTW9kdWxlTmFtZXNwYWNlT2JqZWN0VHlwZSkKICAgICBDQVNFKFJlZ0V4
cE9iamVjdFR5cGUpCisgICAgQ0FTRShKU0RhdGVUeXBlKQogICAgIENBU0UoUHJveHlPYmplY3RU
eXBlKQogICAgIENBU0UoSlNHZW5lcmF0b3JUeXBlKQogICAgIENBU0UoSlNBc3luY0dlbmVyYXRv
clR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCmluZGV4IDZlOTk2ODc0
ZWYyZTNiN2FjNDJiNTBhMTg0ZWY0OGI2MmFlZDBiNmMuLjgwYmQzNGNiNjIyMWFhZmJlOTZhZjEw
NDY1MzJhNjdkNzczMmVjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5o
CkBAIC0xMDcsNiArMTA3LDcgQEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKIAogICAgIE1vZHVs
ZU5hbWVzcGFjZU9iamVjdFR5cGUsCiAgICAgUmVnRXhwT2JqZWN0VHlwZSwKKyAgICBKU0RhdGVU
eXBlLAogICAgIFByb3h5T2JqZWN0VHlwZSwKICAgICBKU0dlbmVyYXRvclR5cGUsCiAgICAgSlNB
c3luY0dlbmVyYXRvclR5cGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5o
IGIvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAppbmRleCBmOWUyODExZmJhYzRlNzc5ODVmNzY2
NTgwMDUxOGE1NTY0MDQ0ODUzLi43ZTJkMWRlNzM5NmE3ODQ5NjIwMTg0MTIyNWEzNDYwZTI4MTI3
YzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0RhdGVNYXRoLmgKQEAgLTEwNiwxNiArMTA2LDE2IEBAIGNvbnN0IGNoYXIqIGNvbnN0
IHdlZWtkYXlOYW1lWzddID0geyAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJT
YXQiLCAiCiBjb25zdCBjaGFyKiBjb25zdCBtb250aE5hbWVbMTJdID0geyAiSmFuIiwgIkZlYiIs
ICJNYXIiLCAiQXByIiwgIk1heSIsICJKdW4iLCAiSnVsIiwgIkF1ZyIsICJTZXAiLCAiT2N0Iiwg
Ik5vdiIsICJEZWMiIH07CiBjb25zdCBjaGFyKiBjb25zdCBtb250aEZ1bGxOYW1lWzEyXSA9IHsg
IkphbnVhcnkiLCAiRmVicnVhcnkiLCAiTWFyY2giLCAiQXByaWwiLCAiTWF5IiwgIkp1bmUiLCAi
SnVseSIsICJBdWd1c3QiLCAiU2VwdGVtYmVyIiwgIk9jdG9iZXIiLCAiTm92ZW1iZXIiLCAiRGVj
ZW1iZXIiIH07CiAKLWNvbnN0IGRvdWJsZSBob3Vyc1BlckRheSA9IDI0LjA7Ci1jb25zdCBkb3Vi
bGUgbWludXRlc1BlckhvdXIgPSA2MC4wOwotY29uc3QgZG91YmxlIHNlY29uZHNQZXJNaW51dGUg
PSA2MC4wOwotY29uc3QgZG91YmxlIG1zUGVyU2Vjb25kID0gMTAwMC4wOwotY29uc3QgZG91Ymxl
IG1zUGVyTW9udGggPSAyNTkyMDAwMDAwLjA7Ci1jb25zdCBkb3VibGUgc2Vjb25kc1BlckhvdXIg
PSBzZWNvbmRzUGVyTWludXRlICogbWludXRlc1BlckhvdXI7Ci1jb25zdCBkb3VibGUgc2Vjb25k
c1BlckRheSA9IHNlY29uZHNQZXJIb3VyICogaG91cnNQZXJEYXk7Ci1jb25zdCBkb3VibGUgbXNQ
ZXJNaW51dGUgPSBtc1BlclNlY29uZCAqIHNlY29uZHNQZXJNaW51dGU7Ci1jb25zdCBkb3VibGUg
bXNQZXJIb3VyID0gbXNQZXJTZWNvbmQgKiBzZWNvbmRzUGVySG91cjsKLWNvbnN0IGRvdWJsZSBt
c1BlckRheSA9IG1zUGVyU2Vjb25kICogc2Vjb25kc1BlckRheTsKK3N0YXRpYyBjb25zdGV4cHIg
ZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQuMDsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIG1pbnV0
ZXNQZXJIb3VyID0gNjAuMDsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIHNlY29uZHNQZXJNaW51
dGUgPSA2MC4wOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbXNQZXJTZWNvbmQgPSAxMDAwLjA7
CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBtc1Blck1vbnRoID0gMjU5MjAwMDAwMC4wOworc3Rh
dGljIGNvbnN0ZXhwciBkb3VibGUgc2Vjb25kc1BlckhvdXIgPSBzZWNvbmRzUGVyTWludXRlICog
bWludXRlc1BlckhvdXI7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBzZWNvbmRzUGVyRGF5ID0g
c2Vjb25kc1BlckhvdXIgKiBob3Vyc1BlckRheTsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIG1z
UGVyTWludXRlID0gbXNQZXJTZWNvbmQgKiBzZWNvbmRzUGVyTWludXRlOworc3RhdGljIGNvbnN0
ZXhwciBkb3VibGUgbXNQZXJIb3VyID0gbXNQZXJTZWNvbmQgKiBzZWNvbmRzUGVySG91cjsKK3N0
YXRpYyBjb25zdGV4cHIgZG91YmxlIG1zUGVyRGF5ID0gbXNQZXJTZWNvbmQgKiBzZWNvbmRzUGVy
RGF5OwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc0xlYXBZZWFyKGludCB5ZWFyKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuY3BwIGIvU291cmNl
L1dURi93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuY3BwCmluZGV4IGEzYzQ0YjkyMWE3MDgzMmMyNDU3
OGVmNGI5MDRkYTIxMjI2ODJmNjQuLjMyMTQ4ODdlZjNmZjRjOTIyY2FiNTE1OTAxNjIzNzUyNjIz
MDk0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0dyZWdvcmlhbkRhdGVUaW1lLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9HcmVnb3JpYW5EYXRlVGltZS5jcHAKQEAgLTYyLDcgKzYyLDcg
QEAgdm9pZCBHcmVnb3JpYW5EYXRlVGltZTo6c2V0VG9DdXJyZW50TG9jYWxUaW1lKCkKICAgICBt
X2hvdXIgPSBzeXN0ZW1UaW1lLndIb3VyOwogICAgIG1fbWludXRlID0gc3lzdGVtVGltZS53TWlu
dXRlOwogICAgIG1fc2Vjb25kID0gc3lzdGVtVGltZS53U2Vjb25kOwotICAgIG1fdXRjT2Zmc2V0
ID0gLWJpYXMgKiBzZWNvbmRzUGVyTWludXRlOworICAgIG1fdXRjT2Zmc2V0SW5NaW51dGUgPSAt
YmlhczsKICAgICBtX2lzRFNUID0gdGltZVpvbmVJZCA9PSBUSU1FX1pPTkVfSURfREFZTElHSFQg
PyAxIDogMDsKICNlbHNlCiAgICAgdG0gbG9jYWxUTTsKQEAgLTgzLDkgKzgzLDkgQEAgdm9pZCBH
cmVnb3JpYW5EYXRlVGltZTo6c2V0VG9DdXJyZW50TG9jYWxUaW1lKCkKICAgICBtX3NlY29uZCA9
IGxvY2FsVE0udG1fc2VjOwogICAgIG1faXNEU1QgPSBsb2NhbFRNLnRtX2lzZHN0OwogI2lmIEhB
VkUoVE1fR01UT0ZGKQotICAgIG1fdXRjT2Zmc2V0ID0gbG9jYWxUTS50bV9nbXRvZmY7CisgICAg
bV91dGNPZmZzZXRJbk1pbnV0ZSA9IGxvY2FsVE0udG1fZ210b2ZmIC8gc2Vjb25kc1Blck1pbnV0
ZTsKICNlbHNlCi0gICAgbV91dGNPZmZzZXQgPSBjYWxjdWxhdGVMb2NhbFRpbWVPZmZzZXQobG9j
YWxUaW1lICogbXNQZXJTZWNvbmQpLm9mZnNldCAvIG1zUGVyU2Vjb25kOworICAgIG1fdXRjT2Zm
c2V0SW5NaW51dGUgPSBjYWxjdWxhdGVMb2NhbFRpbWVPZmZzZXQobG9jYWxUaW1lICogbXNQZXJT
ZWNvbmQpLm9mZnNldCAvIG1zUGVyTWludXRlOwogI2VuZGlmCiAjZW5kaWYKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0dyZWdvcmlhbkRhdGVUaW1lLmggYi9Tb3VyY2UvV1RGL3d0Zi9H
cmVnb3JpYW5EYXRlVGltZS5oCmluZGV4IDI1ZGQxNWNhZTA0YmY4MjdmZTFmZmNlOTVjZTU3MWY4
NzM2NTc1N2YuLjAyYzJlYzdjZjMyMWFhOWQ0YjdmZjA5YWFiOTBhNTdhZjVhZjA2MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0dyZWdvcmlhbkRhdGVUaW1lLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuaApAQCAtMjYsMjcgKzI2LDE2IEBACiAKICNpbmNsdWRl
IDxzdHJpbmcuaD4KICNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgR3JlZ29yaWFuRGF0ZVRpbWUgZmluYWwg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEdyZWdvcmlhbkRhdGVUaW1lKTsKIHB1YmxpYzoKLSAgICBHcmVnb3JpYW5EYXRlVGltZSgpCi0g
ICAgICAgIDogbV95ZWFyKDApCi0gICAgICAgICwgbV9tb250aCgwKQotICAgICAgICAsIG1feWVh
ckRheSgwKQotICAgICAgICAsIG1fbW9udGhEYXkoMCkKLSAgICAgICAgLCBtX3dlZWtEYXkoMCkK
LSAgICAgICAgLCBtX2hvdXIoMCkKLSAgICAgICAgLCBtX21pbnV0ZSgwKQotICAgICAgICAsIG1f
c2Vjb25kKDApCi0gICAgICAgICwgbV91dGNPZmZzZXQoMCkKLSAgICAgICAgLCBtX2lzRFNUKDAp
Ci0gICAgewotICAgIH0KKyAgICBHcmVnb3JpYW5EYXRlVGltZSgpID0gZGVmYXVsdDsKIAogICAg
IGlubGluZSBpbnQgeWVhcigpIGNvbnN0IHsgcmV0dXJuIG1feWVhcjsgfQogICAgIGlubGluZSBp
bnQgbW9udGgoKSBjb25zdCB7IHJldHVybiBtX21vbnRoOyB9CkBAIC01Niw3ICs0NSw3IEBAIGNs
YXNzIEdyZWdvcmlhbkRhdGVUaW1lIGZpbmFsIHsKICAgICBpbmxpbmUgaW50IGhvdXIoKSBjb25z
dCB7IHJldHVybiBtX2hvdXI7IH0KICAgICBpbmxpbmUgaW50IG1pbnV0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbWludXRlOyB9CiAgICAgaW5saW5lIGludCBzZWNvbmQoKSBjb25zdCB7IHJldHVybiBt
X3NlY29uZDsgfQotICAgIGlubGluZSBpbnQgdXRjT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV91
dGNPZmZzZXQ7IH0KKyAgICBpbmxpbmUgaW50IHV0Y09mZnNldEluTWludXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV91dGNPZmZzZXRJbk1pbnV0ZTsgfQogICAgIGlubGluZSBpbnQgaXNEU1QoKSBjb25z
dCB7IHJldHVybiBtX2lzRFNUOyB9CiAKICAgICBpbmxpbmUgdm9pZCBzZXRZZWFyKGludCB5ZWFy
KSB7IG1feWVhciA9IHllYXI7IH0KQEAgLTY3LDkgKzU2LDIwIEBAIGNsYXNzIEdyZWdvcmlhbkRh
dGVUaW1lIGZpbmFsIHsKICAgICBpbmxpbmUgdm9pZCBzZXRIb3VyKGludCBob3VyKSB7IG1faG91
ciA9IGhvdXI7IH0KICAgICBpbmxpbmUgdm9pZCBzZXRNaW51dGUoaW50IG1pbnV0ZSkgeyBtX21p
bnV0ZSA9IG1pbnV0ZTsgfQogICAgIGlubGluZSB2b2lkIHNldFNlY29uZChpbnQgc2Vjb25kKSB7
IG1fc2Vjb25kID0gc2Vjb25kOyB9Ci0gICAgaW5saW5lIHZvaWQgc2V0VXRjT2Zmc2V0KGludCB1
dGNPZmZzZXQpIHsgbV91dGNPZmZzZXQgPSB1dGNPZmZzZXQ7IH0KKyAgICBpbmxpbmUgdm9pZCBz
ZXRVVENPZmZzZXRJbk1pbnV0ZShpbnQgdXRjT2Zmc2V0SW5NaW51dGUpIHsgbV91dGNPZmZzZXRJ
bk1pbnV0ZSA9IHV0Y09mZnNldEluTWludXRlOyB9CiAgICAgaW5saW5lIHZvaWQgc2V0SXNEU1Qo
aW50IGlzRFNUKSB7IG1faXNEU1QgPSBpc0RTVDsgfQogCisgICAgc3RhdGljIHB0cmRpZmZfdCBv
ZmZzZXRPZlllYXIoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoR3JlZ29yaWFuRGF0ZVRpbWUs
IG1feWVhcik7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mTW9udGgoKSB7IHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoR3JlZ29yaWFuRGF0ZVRpbWUsIG1fbW9udGgpOyB9CisgICAgc3Rh
dGljIHB0cmRpZmZfdCBvZmZzZXRPZlllYXJEYXkoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
R3JlZ29yaWFuRGF0ZVRpbWUsIG1feWVhckRheSk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9m
ZnNldE9mTW9udGhEYXkoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoR3JlZ29yaWFuRGF0ZVRp
bWUsIG1fbW9udGhEYXkpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldlZWtEYXko
KSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoR3JlZ29yaWFuRGF0ZVRpbWUsIG1fd2Vla0RheSk7
IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSG91cigpIHsgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV9ob3VyKTsgfQorICAgIHN0YXRpYyBwdHJkaWZm
X3Qgb2Zmc2V0T2ZNaW51dGUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoR3JlZ29yaWFuRGF0
ZVRpbWUsIG1fbWludXRlKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTZWNvbmQo
KSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoR3JlZ29yaWFuRGF0ZVRpbWUsIG1fc2Vjb25kKTsg
fQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZVVENPZmZzZXRJbk1pbnV0ZSgpIHsgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV91dGNPZmZzZXRJbk1pbnV0
ZSk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSXNEU1QoKSB7IHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoR3JlZ29yaWFuRGF0ZVRpbWUsIG1faXNEU1QpOyB9CisKICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBzZXRUb0N1cnJlbnRMb2NhbFRpbWUoKTsKIAogICAgIG9wZXJhdG9y
IHRtKCkgY29uc3QKQEAgLTg4LDM3ICs4OCwyMyBAQCBjbGFzcyBHcmVnb3JpYW5EYXRlVGltZSBm
aW5hbCB7CiAgICAgICAgIHJldC50bV9pc2RzdCA9IG1faXNEU1Q7CiAKICNpZiBIQVZFKFRNX0dN
VE9GRikKLSAgICAgICAgcmV0LnRtX2dtdG9mZiA9IHN0YXRpY19jYXN0PGxvbmc+KG1fdXRjT2Zm
c2V0KTsKKyAgICAgICAgcmV0LnRtX2dtdG9mZiA9IHN0YXRpY19jYXN0PGxvbmc+KG1fdXRjT2Zm
c2V0SW5NaW51dGUpICogc3RhdGljX2Nhc3Q8bG9uZz4oc2Vjb25kc1Blck1pbnV0ZSk7CiAjZW5k
aWYKIAogICAgICAgICByZXR1cm4gcmV0OwogICAgIH0KIAotICAgIHZvaWQgY29weUZyb20oY29u
c3QgR3JlZ29yaWFuRGF0ZVRpbWUmIG90aGVyKQotICAgIHsKLSAgICAgICAgbV95ZWFyID0gb3Ro
ZXIubV95ZWFyOwotICAgICAgICBtX21vbnRoID0gb3RoZXIubV9tb250aDsKLSAgICAgICAgbV95
ZWFyRGF5ID0gb3RoZXIubV95ZWFyRGF5OwotICAgICAgICBtX21vbnRoRGF5ID0gb3RoZXIubV9t
b250aERheTsKLSAgICAgICAgbV93ZWVrRGF5ID0gb3RoZXIubV93ZWVrRGF5OwotICAgICAgICBt
X2hvdXIgPSBvdGhlci5tX2hvdXI7Ci0gICAgICAgIG1fbWludXRlID0gb3RoZXIubV9taW51dGU7
Ci0gICAgICAgIG1fc2Vjb25kID0gb3RoZXIubV9zZWNvbmQ7Ci0gICAgICAgIG1fdXRjT2Zmc2V0
ID0gb3RoZXIubV91dGNPZmZzZXQ7Ci0gICAgICAgIG1faXNEU1QgPSBvdGhlci5tX2lzRFNUOwot
ICAgIH0KLQogcHJpdmF0ZToKLSAgICBpbnQgbV95ZWFyOwotICAgIGludCBtX21vbnRoOwotICAg
IGludCBtX3llYXJEYXk7Ci0gICAgaW50IG1fbW9udGhEYXk7Ci0gICAgaW50IG1fd2Vla0RheTsK
LSAgICBpbnQgbV9ob3VyOwotICAgIGludCBtX21pbnV0ZTsKLSAgICBpbnQgbV9zZWNvbmQ7Ci0g
ICAgaW50IG1fdXRjT2Zmc2V0OwotICAgIGludCBtX2lzRFNUOworICAgIGludCBtX3llYXIgeyAw
IH07CisgICAgaW50IG1fbW9udGggeyAwIH07CisgICAgaW50IG1feWVhckRheSB7IDAgfTsKKyAg
ICBpbnQgbV9tb250aERheSB7IDAgfTsKKyAgICBpbnQgbV93ZWVrRGF5IHsgMCB9OworICAgIGlu
dCBtX2hvdXIgeyAwIH07CisgICAgaW50IG1fbWludXRlIHsgMCB9OworICAgIGludCBtX3NlY29u
ZCB7IDAgfTsKKyAgICBpbnQgbV91dGNPZmZzZXRJbk1pbnV0ZSB7IDAgfTsKKyAgICBpbnQgbV9p
c0RTVCB7IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKaW5kZXggYzk5N2Iz
MTg2N2QzODBkMjg5MGNlZTJiZjU1MWRiOWQ0NzEwOGQyNS4uMTA2YTdmOGY5YjQxZTA0MzhhMDM2
NzQ1YmE5Y2Q3YWZkYWVlOGZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgUmVmPFNo
YXJlZEJ1ZmZlcj4gTUhUTUxBcmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBwYWdlKQog
CiAgICAgR3JlZ29yaWFuRGF0ZVRpbWUgbm93OwogICAgIG5vdy5zZXRUb0N1cnJlbnRMb2NhbFRp
bWUoKTsKLSAgICBTdHJpbmcgZGF0ZVN0cmluZyA9IG1ha2VSRkMyODIyRGF0ZVN0cmluZyhub3cu
d2Vla0RheSgpLCBub3cubW9udGhEYXkoKSwgbm93Lm1vbnRoKCksIG5vdy55ZWFyKCksIG5vdy5o
b3VyKCksIG5vdy5taW51dGUoKSwgbm93LnNlY29uZCgpLCBub3cudXRjT2Zmc2V0KCkgLyA2MCk7
CisgICAgU3RyaW5nIGRhdGVTdHJpbmcgPSBtYWtlUkZDMjgyMkRhdGVTdHJpbmcobm93LndlZWtE
YXkoKSwgbm93Lm1vbnRoRGF5KCksIG5vdy5tb250aCgpLCBub3cueWVhcigpLCBub3cuaG91cigp
LCBub3cubWludXRlKCksIG5vdy5zZWNvbmQoKSwgbm93LnV0Y09mZnNldEluTWludXRlKCkpOwog
CiAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOwogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKCJGcm9tOiA8U2F2ZWQgYnkgV2ViS2l0PlxyXG4iKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
Q2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjcwY2M1YzI2NjIwMjI0MWExOWU1
YTVlMDM5Njg3NWFmYTE1YTcyYy4uYTJhMzRlNjc3MWY2NzRmM2QyZmM0MTk2ODdlZGJiN2EwN2Y2
N2M4MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMC0yOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lA
YXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIERhdGUgZnVuY3Rpb25zIHNob3VsZCBoYXZlIGlu
dHJpbnNpYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAyMTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBzdHJlc3MvZGF0ZS1nZXQtbWlsbGlzZWNvbmRzLWppdC5qczogQWRkZWQuCisgICAgICAgIChz
aG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtc2Vj
b25kcy1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXRpbWUtaml0LmpzOiBBZGRlZC4KKyAgICAgICAg
KHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC11
dGMtbWlsbGlzZWNvbmRzLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAg
ICAgICh0ZXN0KToKKwogMjAxOS0xMC0yNSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdA
c29ueS5jb20+CiAKICAgICAgICAgdGVzdDI2Mi1ydW5uZXIgc2hvdWxkIGJlIGFibGUgdG8gcGFz
cyBKU0MgYSBmZWF0dXJlIGZsYWcKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0
LW1pbGxpc2Vjb25kcy1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1taWxsaXNlY29u
ZHMtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZWVkMDg5OTNjYWUxNmJhMTE4YzcyYjBlNzdlNGQ5ZGYz
MjUyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1taWxsaXNl
Y29uZHMtaml0LmpzCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwg
ZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRh
dGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRNaWxsaXNlY29uZHMoKTsKK30KK25vSW5saW5lKHRl
c3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5h
Tik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldE1pbGxpc2Vjb25kcygpOworZm9yICh2YXIgaSA9
IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsK
KyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1zZWNvbmRzLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNz
L2RhdGUtZ2V0LXNlY29uZHMtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmMDFmODMzYTM3YmFhYWE5MTMy
ZDFlMDU4NmM1NjQ1OTc4M2NmMjAKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9k
YXRlLWdldC1zZWNvbmRzLWppdC5qcwpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiBzaG91bGRC
ZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rp
b24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0U2Vjb25kcygpOworfQorbm9Jbmxp
bmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERh
dGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0U2Vjb25kcygpOworZm9yICh2YXIgaSA9
IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsK
KyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC10aW1lLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2Rh
dGUtZ2V0LXRpbWUtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiMmM4ZjBmZjhkYjE2YmUxZDhjMjFjNjdm
OWIwMDI4ZmIzMTczNjQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdl
dC10aW1lLWppdC5qcwpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWws
IGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChk
YXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VGltZSgpOworfQorbm9JbmxpbmUodGVzdCk7CisK
K3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3Zh
ciBleHBlY3RlZCA9IGRhdGUuZ2V0VGltZSgpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsr
aSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICBzaG91bGRCZShp
c05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9kYXRlLWdldC11dGMtbWlsbGlzZWNvbmRzLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUt
Z2V0LXV0Yy1taWxsaXNlY29uZHMtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMmM3Y2M1NTg0MjlmZjhh
ZDk5NTdkNDY5OGE4Y2E4ZTJmY2YyMDMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy9kYXRlLWdldC11dGMtbWlsbGlzZWNvbmRzLWppdC5qcwpAQCAtMCwwICsxLDE3IEBACitmdW5j
dGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhw
ZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsK
K30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VVRDTWlsbGlz
ZWNvbmRzKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwor
dmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRVVENN
aWxsaXNlY29uZHMoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91
bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZh
bGlkKSksIHRydWUpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382046</attachid>
            <date>2019-10-28 00:21:41 -0700</date>
            <delta_ts>2019-10-28 00:55:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202187-20191028002140.patch</filename>
            <type>text/plain</type>
            <size>110682</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZjQ1OGU0MzM2NGQ1ZjZjMDJkN2MzOTk3ODYzNjVhY2NmOTU0NmQxLi41OWNhNzQ1YzEyY2RhZWU2
ZjJlOGFlOTRlYzE1ZGYyNzA1MGEyM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTMgQEAKKzIwMTktMTAtMjggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBEYXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBpbnRyaW5zaWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE4Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYnl0ZWNv
ZGUvU3BlY3VsYXRlZFR5cGUuY3BwOgorICAgICAgICAoSlNDOjpkdW1wU3BlY3VsYXRpb24pOgor
ICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8pOgorICAgICAgICAoSlNDOjpz
cGVjdWxhdGlvbkZyb21KU1R5cGUpOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21TdHJp
bmcpOgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SGVhcC5oOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50
cmluc2ljQ2FsbCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRm
Zy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmR1bXApOgorICAgICAg
ICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFs
KToKKyAgICAgICAgKiBkZmcvREZHSGVhcExvY2F0aW9uLmg6CisgICAgICAgICogZGZnL0RGR05v
ZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNJbnRyaW5zaWMpOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6OmludHJpbnNpYyk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFz
SGVhcFByZWRpY3Rpb24pOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAq
IGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgor
ICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVj
dXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRGF0ZU9iamVjdCk6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
RGF0ZUdldCk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAoV1RGOjpw
cmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAgICAgICAoSlND
OjpERkc6OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2VsbCk6CisgICAg
ICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwOgorICAgICAgICAqIGZ0bC9G
VExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29t
cGlsZURhdGVHZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dE
YXRlT2JqZWN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3Vs
YXRlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlRGF0
ZU9iamVjdCk6CisgICAgICAgICogcnVudGltZS9EYXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAg
IChKU0M6OmZvcm1hdERhdGVUaW1lKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZS5j
cHA6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRp
bWUgY29uc3QpOgorICAgICAgICAoSlNDOjpEYXRlSW5zdGFuY2U6OmNhbGN1bGF0ZUdyZWdvcmlh
bkRhdGVUaW1lVVRDIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlQ2FjaGUuaDoKKyAgICAgICAgKEpTQzo6RGF0
ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKToKKyAg
ICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRl
VGltZSk6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFu
RGF0ZVRpbWVVVENDYWNoZWRGb3JNUyk6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZURhdGE6
Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMpOgorICAgICAgICAoSlNDOjpEYXRl
SW5zdGFuY2VEYXRhOjpEYXRlSW5zdGFuY2VEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0RhdGVQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVEYXRlKToK
KyAgICAgICAgKEpTQzo6Zm9ybWF0ZURhdGVJbnN0YW5jZSk6CisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNUb0lTT1N0cmluZyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRGdWxs
WWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhcik6CisgICAg
ICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXRVVENNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXREYXRlKToK
KyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUpOgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jR2V0RGF5KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0Rh
eSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRIb3Vycyk6CisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRVVENIb3Vycyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNH
ZXRNaW51dGVzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0ZXMpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRh
dGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dl
dE1pbGxpU2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNl
Y29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQpOgor
ICAgICAgICAoSlNDOjpzZXROZXdWYWx1ZUZyb21UaW1lQXJncyk6CisgICAgICAgIChKU0M6OnNl
dE5ld1ZhbHVlRnJvbURhdGVBcmdzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1NldFll
YXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0WWVhcik6CisgICAgICAgICogcnVu
dGltZS9JbnRyaW5zaWMuY3BwOgorICAgICAgICAoSlNDOjppbnRyaW5zaWNOYW1lKToKKyAgICAg
ICAgKiBydW50aW1lL0ludHJpbnNpYy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRlTWF0aC5j
cHA6CisgICAgICAgIChKU0M6Om1zVG9HcmVnb3JpYW5EYXRlVGltZSk6CisgICAgICAgICogcnVu
dGltZS9KU1R5cGUuY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAg
KiBydW50aW1lL0pTVHlwZS5oOgorCiAyMDE5LTEwLTI2ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdh
bGlhLmNvbT4KIAogICAgICAgICBQdXQgT2Zmc2NyZWVuQ2FudmFzIGJlaGluZCBhIGJ1aWxkIGZs
YWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggNTBhYmZmODc2NzFjNzI1NzA3Nzc0MmNkOGM0ODgwM2VlNjYzZGY4My4uMTc0Yzk2
OTUyNzgyNDNlYzY2OWY3OTQ4NWIyNzA2ZGRjMTJlZGUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0xMC0yOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFtKU0NdIERhdGUgZnVuY3Rpb25zIHNob3VsZCBoYXZlIGludHJpbnNpYworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTg3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRGF0ZU1hdGguaDoKKyAg
ICAgICAgKiB3dGYvR3JlZ29yaWFuRGF0ZVRpbWUuY3BwOgorICAgICAgICAoV1RGOjpHcmVnb3Jp
YW5EYXRlVGltZTo6c2V0VG9DdXJyZW50TG9jYWxUaW1lKToKKyAgICAgICAgKiB3dGYvR3JlZ29y
aWFuRGF0ZVRpbWUuaDoKKwogMjAxOS0xMC0yNiAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUHV0IE9mZnNjcmVlbkNhbnZhcyBiZWhpbmQgYSBidWlsZCBmbGFnCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggN2Q5MDQ0YTRlMTU5YmM0ZTNmOTczZjU1N2I4MjdhNjAyOTVmMDg1ZC4uODlj
MTRkODdiZTE1MjY0MjJkNmRiZDg3MDM2ZjU5MmJhZGU2Y2ViMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDE5LTEwLTI4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0pTQ10gRGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGhhdmUgaW50cmluc2ljCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxODcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9h
cmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNSFRNTEFy
Y2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRhKToKKwogMjAxOS0xMC0yNiAgQ2hyaXMgTG9yZCAgPGNs
b3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAgUHV0IE9mZnNjcmVlbkNhbnZhcyBiZWhpbmQgYSBi
dWlsZCBmbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3Bl
Y3VsYXRlZFR5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0
ZWRUeXBlLmNwcAppbmRleCBhMzI1YjJjODFiYzQ3Y2YzMWYyNDI5ZTkxMGZhNDNjYWM3MGQ5NzVi
Li5mZmYxZDFkOWY2NjZjMWY4MjRjOGNlNjJjNTlmNWUxZTkzMzYyMTlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5o
IgogCisjaW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRz
LmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTQmlnSW50LmgiCkBAIC0xNzQs
NiArMTc1LDExIEBAIHZvaWQgZHVtcFNwZWN1bGF0aW9uKFByaW50U3RyZWFtJiBvdXRTdHJlYW0s
IFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IGlzVG9wID0gZmFsc2U7CiAKKyAgICAgICAgICAgIGlmICh2YWx1ZSAmIFNwZWNEYXRlT2JqZWN0
KQorICAgICAgICAgICAgICAgIHN0ck91dC5wcmludCgiRGF0ZU9iamVjdCIpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CisKICAgICAgICAgICAgIGlm
ICh2YWx1ZSAmIFNwZWNQcm9taXNlT2JqZWN0KQogICAgICAgICAgICAgICAgIHN0ck91dC5wcmlu
dCgiUHJvbWlzZU9iamVjdCIpOwogICAgICAgICAgICAgZWxzZQpAQCAtNDQ1LDYgKzQ1MSw5IEBA
IFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyhjb25zdCBDbGFzc0luZm8q
IGNsYXNzSW5mbykKICAgICBpZiAoY2xhc3NJbmZvID09IFJlZ0V4cE9iamVjdDo6aW5mbygpKQog
ICAgICAgICByZXR1cm4gU3BlY1JlZ0V4cE9iamVjdDsKIAorICAgIGlmIChjbGFzc0luZm8gPT0g
RGF0ZUluc3RhbmNlOjppbmZvKCkpCisgICAgICAgIHJldHVybiBTcGVjRGF0ZU9iamVjdDsKKwog
ICAgIGlmIChjbGFzc0luZm8gPT0gSlNNYXA6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNN
YXBPYmplY3Q7CiAKQEAgLTU5NCw2ICs2MDMsOCBAQCBPcHRpb25hbDxTcGVjdWxhdGVkVHlwZT4g
c3BlY3VsYXRpb25Gcm9tSlNUeXBlKEpTVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gU3BlY0Rl
cml2ZWRBcnJheTsKICAgICBjYXNlIFJlZ0V4cE9iamVjdFR5cGU6CiAgICAgICAgIHJldHVybiBT
cGVjUmVnRXhwT2JqZWN0OworICAgIGNhc2UgSlNEYXRlVHlwZToKKyAgICAgICAgcmV0dXJuIFNw
ZWNEYXRlT2JqZWN0OwogICAgIGNhc2UgUHJveHlPYmplY3RUeXBlOgogICAgICAgICByZXR1cm4g
U3BlY1Byb3h5T2JqZWN0OwogICAgIGNhc2UgSlNQcm9taXNlVHlwZToKQEAgLTgxNCw2ICs4MjUs
OCBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21TdHJpbmcoY29uc3QgY2hhciogc3Bl
Y3VsYXRpb24pCiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nT2JqZWN0OwogICAgIGlmICghc3Ry
bmNtcChzcGVjdWxhdGlvbiwgIlNwZWNSZWdFeHBPYmplY3QiLCBzdHJsZW4oIlNwZWNSZWdFeHBP
YmplY3QiKSkpCiAgICAgICAgIHJldHVybiBTcGVjUmVnRXhwT2JqZWN0OworICAgIGlmICghc3Ry
bmNtcChzcGVjdWxhdGlvbiwgIlNwZWNEYXRlT2JqZWN0Iiwgc3RybGVuKCJTcGVjRGF0ZU9iamVj
dCIpKSkKKyAgICAgICAgcmV0dXJuIFNwZWNEYXRlT2JqZWN0OwogICAgIGlmICghc3RybmNtcChz
cGVjdWxhdGlvbiwgIlNwZWNQcm9taXNlT2JqZWN0Iiwgc3RybGVuKCJTcGVjUHJvbWlzZU9iamVj
dCIpKSkKICAgICAgICAgcmV0dXJuIFNwZWNQcm9taXNlT2JqZWN0OwogICAgIGlmICghc3RybmNt
cChzcGVjdWxhdGlvbiwgIlNwZWNNYXBPYmplY3QiLCBzdHJsZW4oIlNwZWNNYXBPYmplY3QiKSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCmlu
ZGV4IGIxMTUzYjQ3ZDJmZDNhNTllZTNmY2ZmYjBmM2JiZjM5YjAxNTE5NWIuLmExMTIzOGMxOThh
MzcyOGFjYTAyZWU5NTMzMTdkMDkyZjEwYjM3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCkBAIC01OCwzMiArNTgsMzMgQEAgc3RhdGlj
IGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRGlyZWN0QXJndW1lbnRzICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PAogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU2Nv
cGVkQXJndW1lbnRzICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxNDsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgU2NvcGVkQXJndW1lbnRzIG9iamVjdC4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY1N0cmluZ09iamVjdCAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MTU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN0cmluZ09iamVjdC4KIHN0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY1JlZ0V4cE9iamVjdCAgICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMTY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFJlZ0V4cE9iamVjdCAoYW5kIG5vdCBhbnkg
c3ViY2xhc3Mgb2YgUmVnRXhwT2JqZWN0KS4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY1Byb21pc2VPYmplY3QgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTc7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIFByb21pc2Ugb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nl
cy4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY01hcE9iamVjdCAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE1hcCBv
YmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxh
dGVkVHlwZSBTcGVjU2V0T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAx
OTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNz
ZXMuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNXZWFrTWFwT2JqZWN0ICAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFr
TWFwIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNXZWFrU2V0T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFrU2V0IG9iamVjdCBvciBvbmUgb2YgaXRz
IHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9i
amVjdCAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIyOyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBQcm94eSBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0
ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRGVyaXZlZEFycmF5ICAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGVyaXZlZEFycmF5IG9iamVjdC4K
LXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdE90aGVyICAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBvYmplY3Qg
YnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBKU0Z1bmN0aW9uLgotc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdz
IGFuIGlkZW50aWZpZXIuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJp
bmdWYXIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZpZXIuCitzdGF0aWMgY29u
c3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEYXRlT2JqZWN0ICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDE3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBEYXRlIG9iamVjdCBvciBvbmUg
b2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQ
cm9taXNlT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBQcm9taXNlIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDE5OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9y
IG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjA7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3Rh
dGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha01hcE9iamVjdCAgICAgICAgICAg
ICAgICAgICAgID0gMXVsbCA8PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha01hcCBvYmpl
Y3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjV2Vha1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMjsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha1NldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFz
c2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAg
ICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJv
eHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0Rlcml2ZWRBcnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERlcml2ZWRBcnJheSBvYmplY3QuCitzdGF0aWMg
Y29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICAgICAgICAgICAg
ICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3Qg
SlNGaW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KK3N0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMjY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVu
dGlmaWVyLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
SlNTdHJpbmcsIGFuZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgogc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3Bl
Y1N0cmluZ0lkZW50IHwgU3BlY1N0cmluZ1ZhcjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJp
bmcuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1i
b2wuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsT3RoZXIgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Nl
bGwgYnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpT
U3RyaW5nLCBCaWdJbnQsIG9yIFN5bWJvbC4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjk7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAgb3IgMS4KLXN0YXRpYyBjb25z
dGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICAgICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90
aGVyIHRoYW4gMCBvciAxLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3lt
Ym9sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgU3ltYm9sLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQ2Vs
bE90aGVyICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5p
dGVseSBub3QgYSBKU1N0cmluZywgQmlnSW50LCBvciBTeW1ib2wuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDMwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEu
CitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25Cb29sSW50MzIgICAgICAg
ICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMxOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIg
d2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY0ludDMyT25seSAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNCb29sSW50
MzIgfCBTcGVjTm9uQm9vbEludDMyOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIuCiAKLXN0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyQXNJbnQ1MiAgICAgICAgICAg
ICAgICAgICAgICA9IDF1bGwgPDwgMzE7IC8vIEl0J3MgYW4gSW50NTIgYW5kIGl0IGNhbiBmaXQg
aW4gYW4gaW50MzIuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnQz
MkFzSW50NTIgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGFuIEludDUy
IGFuZCBpdCBjYW4ndCBmaXQgaW4gYW4gaW50MzIuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNJbnQzMkFzSW50NTIgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMy
OyAvLyBJdCdzIGFuIEludDUyIGFuZCBpdCBjYW4gZml0IGluIGFuIGludDMyLgorc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50MzJBc0ludDUyICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAzMzsgLy8gSXQncyBhbiBJbnQ1MiBhbmQgaXQgY2FuJ3QgZml0IGluIGFu
IGludDMyLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50NTJBbnkgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDMyQXNJbnQ1MiB8IFNwZWNOb25JbnQzMkFz
SW50NTI7IC8vIEl0J3MgYW55IGtpbmQgb2YgSW50NTIuCiAKLXN0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwgMzM7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBkb3Vi
bGUuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0RvdWJsZSAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgbm90IGFu
IEludDUyIGJ1dCBpdCdzIGEgcmVhbCBudW1iZXIgYW5kIGl0J3MgYSBkb3VibGUuCitzdGF0aWMg
Y29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgICAgICAgICAg
ICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3Mg
aW5zaWRlIGEgZG91YmxlLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9u
SW50QXNEb3VibGUgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNTsgLy8gSXQncyBkZWZp
bml0ZWx5IG5vdCBhbiBJbnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91
YmxlLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAg
ICAgICAgICAgICAgICAgICAgID0gU3BlY05vbkludEFzRG91YmxlIHwgU3BlY0FueUludEFzRG91
YmxlOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBub24tTmFOIGRvdWJsZS4KLXN0YXRpYyBjb25zdGV4
cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVB1cmVOYU4gICAgICAgICAgICAgICAgICAgICA9
IDF1bGwgPDwgMzU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHNhZmUgdG8gdGFn
IChpLmUuIHB1cmUpLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91Ymxl
SW1wdXJlTmFOICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUHVyZU5hTiAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FmZSB0
byB0YWcgKGkuZS4gcHVyZSkuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNE
b3VibGVJbXB1cmVOYU4gICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM3OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBOYU4gdGhhdCBpcyB1bnNhZmUgdG8gdGFnIChpLmUuIGltcHVyZSkuCiBzdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVOYU4gICAgICAgICAgICAgICAg
ICAgICAgICAgPSBTcGVjRG91YmxlUHVyZU5hTiB8IFNwZWNEb3VibGVJbXB1cmVOYU47IC8vIEl0
J3MgZGVmaW5pdGVseSBzb21lIGtpbmQgb2YgTmFOLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxh
dGVkVHlwZSBTcGVjQnl0ZWNvZGVEb3VibGUgICAgICAgICAgICAgICAgICAgID0gU3BlY0RvdWJs
ZVJlYWwgfCBTcGVjRG91YmxlUHVyZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEg
TmFOIGRvdWJsZSwgYnV0IGl0J3MgZGVmaW5pdGVseSBub3QgaW1wdXJlIE5hTi4KIHN0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxEb3VibGUgICAgICAgICAgICAgICAgICAg
ICAgICA9IFNwZWNEb3VibGVSZWFsIHwgU3BlY0RvdWJsZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBu
b24tTmFOIG9yIGEgTmFOIGRvdWJsZS4KQEAgLTkzLDE0ICs5NCwxNCBAQCBzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZU51bWJlciAgICAgICAgICAgICAgICAgICAg
PSBTcGVjSW50Mwogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50QW55Rm9y
bWF0ICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDUyQW55IHwgU3BlY0ludDMyT25seSB8
IFNwZWNBbnlJbnRBc0RvdWJsZTsKIAogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjRnVsbE51bWJlciAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludEFueUZvcm1hdCB8
IFNwZWNGdWxsRG91YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiwgSW50NTIsIG9yIGEgRG91
YmxlLCBhbmQgdGhlIERvdWJsZSBjYW4gYmUgaW1wdXJlIE5hTi4KLXN0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMzc7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCi1zdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDM4OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVkLgor
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQm9vbGVhbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAzODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4K
K3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY090aGVyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzk7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVs
bCBvciBVbmRlZmluZWQuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNj
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsg
Ly8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBhIGJvb2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4K
LXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzk7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2
YWx1ZSBtYXJrZXIuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCaWdJbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDQwOyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBCaWdJbnQuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEYXRhVmll
d09iamVjdCAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDQxOyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBKU0RhdGFWaWV3Lgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRW1w
dHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA0MDsgLy8gSXQncyBkZWZp
bml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY0JpZ0ludCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDE7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJpZ0ludC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY0RhdGFWaWV3T2JqZWN0ICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDI7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRGF0YVZpZXcuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1
bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjU3Ry
aW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjIHwgU3BlY0Jp
Z0ludDsgLy8gSXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVlLgotc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3Bl
Y0ZpbmFsT2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlW
aWV3IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3Ry
aW5nT2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNwZWNQcm9taXNlT2JqZWN0IHwgU3BlY01h
cE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVjV2Vha01hcE9iamVjdCB8IFNwZWNXZWFrU2V0
T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RP
dGhlciB8IFNwZWNEYXRhVmlld09iamVjdDsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZv
ciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY09iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNGaW5h
bE9iamVjdCB8IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlvbiB8IFNwZWNUeXBlZEFycmF5VmlldyB8
IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBTcGVjU2NvcGVkQXJndW1lbnRzIHwgU3BlY1N0cmluZ09i
amVjdCB8IFNwZWNSZWdFeHBPYmplY3QgfCBTcGVjRGF0ZU9iamVjdCB8IFNwZWNQcm9taXNlT2Jq
ZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVjV2Vha01hcE9iamVjdCB8
IFNwZWNXZWFrU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8
IFNwZWNPYmplY3RPdGhlciB8IFNwZWNEYXRhVmlld09iamVjdDsgLy8gQml0bWFzayB1c2VkIGZv
ciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KIHN0YXRpYyBjb25z
dGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IFNwZWNPYmplY3QgfCBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNDZWxsT3RoZXIg
fCBTcGVjQmlnSW50OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwuCiBzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUg
YW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91Ymxl
SW1wdXJlTmFOLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVU
b3AgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0hlYXBUb3AgfCBTcGVjRW1wdHk7IC8vIEl0
IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9ubHkgYW5kIFNw
ZWNEb3VibGVJbXB1cmVOYU4uIENvcnJlc3BvbmRzIHRvIHdoYXQgY291bGQgYmUgZm91bmQgaW4g
YSBieXRlY29kZSBsb2NhbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RIZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SGVhcC5oCmluZGV4IGEzMDkyOWQ4YjBkNjhiMTY5OGYwZTQwMmY5NTY0ZDY3ZjUyMDZmYWYuLmJm
OTkzNzc5NzA0NzAyZDhkNWIyMGI2YzJmNmY3Mzk1YWZlNmI4NjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RIZWFwLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaApAQCAtNzEsNiArNzEsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oSGVhcE9iamVjdENvdW50KSAvKiBV
c2VkIHRvIHJlZmxlY3QgdGhlIGZhY3QgdGhhdCBzb21lIGFsbG9jYXRpb25zIHJldmVhbCBvYmpl
Y3QgaWRlbnRpdHkgKi9cCiAgICAgbWFjcm8oUmVnRXhwU3RhdGUpIFwKICAgICBtYWNybyhNYXRo
RG90UmFuZG9tU3RhdGUpIFwKKyAgICBtYWNybyhKU0RhdGVGaWVsZHMpIFwKICAgICBtYWNybyhK
U01hcEZpZWxkcykgXAogICAgIG1hY3JvKEpTU2V0RmllbGRzKSBcCiAgICAgbWFjcm8oSlNXZWFr
TWFwRmllbGRzKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggNTM3MDMzNzk2ZjZiOWJhMjE0Y2Rm
ZTc5ZDFiNmJmNDUxODEyODBhYi4uYWI1NjBhYWQxZWY4MzE3YzVkYmQyMGY0ZjA4MjhkMjhlZDlj
ZWEzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtNDA2OCw2ICs0MDY4LDE2IEBAIGJvb2wgQWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2ln
bmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgRGF0ZUdl
dEludDogeworICAgICAgICBzZXROb25DZWxsVHlwZUZvck5vZGUobm9kZSwgU3BlY0J5dGVjb2Rl
TnVtYmVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBEYXRlR2V0RmxvYXQ6
IHsKKyAgICAgICAgc2V0Tm9uQ2VsbFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNGdWxsRG91YmxlKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBEYXRhVmlld1NldDogewogICAgICAg
ICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCmluZGV4IDIyMzQ0NWMyZDk0NTgwN2JmY2I4MTlhZWYyNTE3Zjg1MGUxZTM0
NGYuLjgzYTliNTkzYWI4OTliMWJjZTI0NjUwODdlZmZhNTZhYjAxNzQzMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0zMTk1LDYg
KzMxOTUsNDEgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbChOb2Rl
KiBjYWxsZWUsIFZpcnR1YWxSZWdpc3RlciByZXN1bHQsIEkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VGltZUludHJp
bnNpYzogeworICAgICAgICAgICAgaWYgKCFpczY0Qml0KCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7CisgICAgICAgICAgICBOb2Rl
KiBiYXNlID0gZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KDAsIHJlZ2lzdGVyT2Zmc2V0
KSk7CisgICAgICAgICAgICBzZXRSZXN1bHQoYWRkVG9HcmFwaChEYXRlR2V0RmxvYXQsIE9wSW5m
byhpbnRyaW5zaWMpLCBPcEluZm8oKSwgYmFzZSkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRGdWxsWWVhckludHJp
bnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRnVsbFllYXJJbnRyaW5zaWM6
CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50cmluc2ljOgorICAgICAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRVVENNb250aEludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRl
UHJvdG90eXBlR2V0RGF0ZUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0
VVRDRGF0ZUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF5SW50cmlu
c2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENEYXlJbnRyaW5zaWM6CisgICAg
ICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEhvdXJzSW50cmluc2ljOgorICAgICAgICBjYXNlIERh
dGVQcm90b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRD
TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0lu
dHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNp
YzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljOgor
ICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJbnRyaW5zaWM6Cisg
ICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWV6b25lT2Zmc2V0SW50cmluc2ljOgorICAg
ICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRZZWFySW50cmluc2ljOiB7CisgICAgICAgICAgICBp
ZiAoIWlzNjRCaXQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBpbnNlcnRDaGVja3MoKTsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQodmlydHVhbFJl
Z2lzdGVyRm9yQXJndW1lbnQoMCwgcmVnaXN0ZXJPZmZzZXQpKTsKKyAgICAgICAgICAgIHNldFJl
c3VsdChhZGRUb0dyYXBoKERhdGVHZXRJbnQsIE9wSW5mbyhpbnRyaW5zaWMpLCBPcEluZm8ocHJl
ZGljdGlvbiksIGJhc2UpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisK
ICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDg6CiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRV
aW50ODoKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDE2OgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCBiODljMDNjMGZkMGNlZDAwNzk0ZGFiZGYzM2Q5
NTdhZmY5M2I4ODAzLi43ZDAyMTAzNjkwZGZjOTdiYjY1MDFhZTQ2YjU0NWMyNDY4YTY5YTBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMTgxNCw2ICsx
ODE0LDEzIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0
IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihQdXJlVmFsdWUo
bm9kZSwgbm9kZS0+dmFsaWRSYWRpeENvbnN0YW50KCkpKTsKICAgICAgICAgcmV0dXJuOwogCisg
ICAgY2FzZSBEYXRlR2V0RmxvYXQ6CisgICAgY2FzZSBEYXRlR2V0SW50OiB7CisgICAgICAgIHJl
YWQoSlNEYXRlRmllbGRzKTsKKyAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihEYXRlRmllbGRMb2Ms
IEFic3RyYWN0SGVhcChKU0RhdGVGaWVsZHMsIHN0YXRpY19jYXN0PHVpbnQ2NF90Pihub2RlLT5p
bnRyaW5zaWMoKSkpLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKICAgICBjYXNlIERh
dGFWaWV3R2V0SW50OiB7CiAgICAgICAgIHJlYWQoTWlzY0ZpZWxkcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNWQyYjA1ZDNmZDE5YjM4YzFjN2I4NTI2YjJj
NGM1NzkzYTNkMTRiMC4uNjM1YzQwZjRlYzY4OTljYTY5MWQ3MTBkYjk2M2UyNjU5NGMwMzQyMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMjQyLDYgKzI0Miw4
IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEZpbHRl
ckdldEJ5SWRTdGF0dXM6CiAgICAgY2FzZSBGaWx0ZXJQdXRCeUlkU3RhdHVzOgogICAgIGNhc2Ug
RmlsdGVySW5CeUlkU3RhdHVzOgorICAgIGNhc2UgRGF0ZUdldEludDoKKyAgICBjYXNlIERhdGVH
ZXRGbG9hdDoKICAgICBjYXNlIERhdGFWaWV3R2V0SW50OgogICAgIGNhc2UgRGF0YVZpZXdHZXRG
bG9hdDoKICAgICBjYXNlIERhdGFWaWV3U2V0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKaW5kZXggZTFlMTY3ODI2ZjM4MzA0MjgxZDBhM2VjZjc4OTVjZmRk
ZDJhNGY0Ny4uNDhmYzYwZWJiYjY1NGY4MzM0N2Y1YmY4NDk1MDRmY2Q0MTVjZTJkNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0yMzIwLDYgKzIz
MjAsMTEgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBm
aXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogCisg
ICAgICAgIGNhc2UgRGF0ZUdldEludDoKKyAgICAgICAgY2FzZSBEYXRlR2V0RmxvYXQ6CisgICAg
ICAgICAgICBmaXhFZGdlPERhdGVPYmplY3RVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAg
ICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgICAgIGNhc2Ug
RGF0YVZpZXdHZXRGbG9hdDogewogICAgICAgICAgICAgZml4RWRnZTxEYXRhVmlld09iamVjdFVz
ZT4obm9kZS0+Y2hpbGQxKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHcmFwaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcApp
bmRleCBhZGJmNTAyNWNmM2Q0NDFiZTE4YjcyYjA5ZGRmODhmODQ1ZGI5MTFkLi5jYTlmYzM0ZTFk
MzllNTc0NzRhMWJhNDM4YTM4ZDYwN2I2YjJhNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcApAQCAtMzY1LDYgKzM2NSw4IEBAIHZvaWQgR3JhcGg6OmR1bXAoUHJpbnRT
dHJlYW0mIG91dCwgY29uc3QgY2hhciogcHJlZml4U3RyLCBOb2RlKiBub2RlLCBEdW1wQ29udGV4
CiAgICAgfQogICAgIGlmIChub2RlLT5oYXNJZ25vcmVMYXN0SW5kZXhJc1dyaXRhYmxlKCkpCiAg
ICAgICAgIG91dC5wcmludChjb21tYSwgImlnbm9yZUxhc3RJbmRleElzV3JpdGFibGUgPSAiLCBu
b2RlLT5pZ25vcmVMYXN0SW5kZXhJc1dyaXRhYmxlKCkpOworICAgIGlmIChub2RlLT5oYXNJbnRy
aW5zaWMoKSkKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiaW50cmluc2ljID0gIiwgbm9kZS0+
aW50cmluc2ljKCkpOwogICAgIGlmIChub2RlLT5pc0NvbnN0YW50KCkpCiAgICAgICAgIG91dC5w
cmludChjb21tYSwgcG9pbnRlckR1bXBJbkNvbnRleHQobm9kZS0+Y29uc3RhbnQoKSwgY29udGV4
dCkpOwogICAgIGlmIChub2RlLT5oYXNDYWxsTGlua1N0YXR1cygpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCmluZGV4IGU0Yjk3YjMwYzJhMGE0MGMw
ZmYyMDIxNmFmNDkyZDllZDYxYThiNDguLmMyYjk2YjVmZGZkNThkNjg0N2Q5YzQyMWU5YTU4Yjc5
NzlmN2YyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExv
Y2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlv
bi5jcHAKQEAgLTE2OCw2ICsxNjgsMTAgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFt
JiBvdXQsIExvY2F0aW9uS2luZCBraW5kKQogICAgICAgICBvdXQucHJpbnQoIlJlZ0V4cE9iamVj
dExhc3RJbmRleExvYyIpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIERhdGVGaWVsZExv
YzoKKyAgICAgICAgb3V0LnByaW50KCJEYXRlRmllbGRMb2MiKTsKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgY2FzZSBNYXBCdWNrZXRMb2M6CiAgICAgICAgIG91dC5wcmludCgiTWFwQnVja2V0TG9j
Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSGVhcExvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBM
b2NhdGlvbi5oCmluZGV4IDA5MTAwNjQxMjY5ZjBjMDYxNzQ0M2YzYmMwZjQ3Y2I5MmY1OTA1NzQu
LmE4ZTczODE4MDNjNzk0ODQ2M2NlOTg5Y2MxMWE2OTNmZTg0MWZhZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaApAQCAtNjQsNiArNjQsNyBAQCBlbnVt
IExvY2F0aW9uS2luZCB7CiAgICAgUHJvdG90eXBlTG9jLAogICAgIFN0YWNrTG9jLAogICAgIFN0
YWNrUGF5bG9hZExvYywKKyAgICBEYXRlRmllbGRMb2MsCiAgICAgTWFwQnVja2V0TG9jLAogICAg
IE1hcEJ1Y2tldEhlYWRMb2MsCiAgICAgTWFwQnVja2V0VmFsdWVMb2MsCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZS5oCmluZGV4IDExZDhiNDBmYTYzMjZmZDk1YzJkZDYyZGY3Zjc2YWQ3YjY1
YjJiM2YuLmRkZTVlNzFkODliYmJmZGNlNjA5MGY0MTQ5ZGM4NTU3ZTllMjQwNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC0xNTU0LDkgKzE1NTQsMjEgQEAgc3RydWN0IE5v
ZGUgewogICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8RW50cnlTd2l0Y2hEYXRhKj4oKTsKICAg
ICB9CiAKKyAgICBib29sIGhhc0ludHJpbnNpYygpCisgICAgeworICAgICAgICBzd2l0Y2ggKG9w
KCkpIHsKKyAgICAgICAgY2FzZSBDUFVJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZUdldEZs
b2F0OgorICAgICAgICBjYXNlIERhdGVHZXRJbnQ6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor
ICAgIH0KKwogICAgIEludHJpbnNpYyBpbnRyaW5zaWMoKQogICAgIHsKLSAgICAgICAgUkVMRUFT
RV9BU1NFUlQob3AoKSA9PSBDUFVJbnRyaW5zaWMpOworICAgICAgICBBU1NFUlQoaGFzSW50cmlu
c2ljKCkpOwogICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8SW50cmluc2ljPigpOwogICAgIH0K
ICAgICAKQEAgLTE3NTMsNiArMTc2NSw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgY2FzZSBU
b1RoaXM6CiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgICAgIGNhc2UgRGF0YVZp
ZXdHZXRGbG9hdDoKKyAgICAgICAgY2FzZSBEYXRlR2V0SW50OgogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggOGNhM2I3OTI5Zjc2MWEwMTYw
YzZlMzg0ZWEzODI3NWMzNDZmZGVhMS4uN2Q0ZmNiOGRmMWI3YzgwZTg4NTBjZmVhNGU5NjZjMmE4
YzA2M2FlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtNTE2
LDYgKzUxNiw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhE
YXRhVmlld0dldEludCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRKUykgLyogVGhlIGdl
dHMgYXJlIG11c3QgZ2VuZXJhdGUgZm9yIG5vdyBiZWNhdXNlIHRoZXkgZG8gYm91bmRzIGNoZWNr
cyAqLyBcCiAgICAgbWFjcm8oRGF0YVZpZXdHZXRGbG9hdCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5v
ZGVSZXN1bHREb3VibGUpIFwKICAgICBtYWNybyhEYXRhVmlld1NldCwgTm9kZU11c3RHZW5lcmF0
ZSB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAorICAgIC8qIERhdGUgYWNj
ZXNzICovIFwKKyAgICBtYWNybyhEYXRlR2V0SW50LCBOb2RlUmVzdWx0SlMpIFwKKyAgICBtYWNy
byhEYXRlR2V0RmxvYXQsIE5vZGVSZXN1bHREb3VibGUpIFwKIAogCiAvLyBUaGlzIGVudW0gZ2Vu
ZXJhdGVzIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGlkIGZvciBhbGwgTm9kZSB0eXBlcywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDcwZWZk
NmJlOTYwOTNhNGY1ZWRhODZlYzlmNzRmMjFhYzdhODZjYzYuLjRkYjQ2MjcyYzgwNzk2ZTBjY2Q5
MWNmODMxMjIyMDIwZjQyYTVhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRGR1RvRlRMRGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiREZHVG9GVExGb3JPU1JFbnRyeURl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCisj
aW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRGVmaW5lUHJvcGVydHlBdHRyaWJ1
dGVzLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiRXZhbENvZGVC
bG9jay5oIgpAQCAtMzM5MSw2ICszMzkyLDE5OCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkdldFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3Qt
PmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhcihWTSogdm1Qb2ludGVyLCBEYXRl
SW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29u
c3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFu
RGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0Z1bGxZZWFyKFZNKiB2bVBvaW50ZXIs
IERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVn
b3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT55ZWFyKCkpKTsKK30KKworRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TW9udGgoVk0qIHZtUG9pbnRl
ciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKwor
ICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdy
ZWdvcmlhbkRhdGVUaW1lKHZtKTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKK30KKworRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDTW9udGgoVk0qIHZtUG9p
bnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7Cisg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
KworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUt
PmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKK30KKwor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0RGF0ZShWTSogdm1Q
b2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsK
KyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0
ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGhEYXkoKSkpOworfQor
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENEYXRlKFZN
KiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2lu
dGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
KyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUg
PSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRl
VGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aERheSgp
KSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldERh
eShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0
ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgp
KSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVU
Q0RheShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0g
KnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRh
dGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOworICAgIGlmICghZ3JlZ29y
aWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vl
a0RheSgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0
ZUdldEhvdXJzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYg
dm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CisgICAgaWYgKCFncmVn
b3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5o
b3VyKCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRl
R2V0VVRDSG91cnMoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAgIFZN
JiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVn
b3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKKyAgICBpZiAo
IWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFO
KCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRp
bWUtPmhvdXIoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkRhdGVHZXRNaW51dGVzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAg
ICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSog
Z3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CisgICAgaWYg
KCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05h
TigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVU
aW1lLT5taW51dGUoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRhdGVHZXRVVENNaW51dGVzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkK
K3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7
CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdv
cmlhbkRhdGVUaW1lLT5taW51dGUoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSog
ZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3Jp
YW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2
bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdy
ZWdvcmlhbkRhdGVUaW1lLT5zZWNvbmQoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENTZWNvbmRzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0
YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRl
VGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5zZWNvbmQoKSkpOworfQorCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRUaW1lem9uZU9mZnNldChWTSogdm1Qb2lu
dGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklU
T3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwor
CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+
Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcigtZ3JlZ29yaWFuRGF0ZVRpbWUtPnV0Y09mZnNldEluTWludXRlKCkp
KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0WWVh
cihWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0
ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpIC0g
MTkwMCkpOworfQorCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dERkcoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWVUb1Rocm93KQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmgKaW5kZXggMjU2NGQ5ZmM4ZGY5ODc2NzE1OGZkMjQxNjY3YjNhYjZl
YmI2MGI2NS4uMjc0ZjhhNTNlYmJlYzQ5ODIxZmMwYTBmNDRiMGZjZDJiYWQxZmQ2NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTMxLDcgKzMxLDExIEBA
CiAjaW5jbHVkZSAiSklUT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlUeXBlLmgi
CiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKK25hbWVzcGFjZSBKU0MgeworCitj
bGFzcyBEYXRlSW5zdGFuY2U7CisKK25hbWVzcGFjZSBERkcgewogCiBzdHJ1Y3QgT1NSRXhpdEJh
c2U7CiAKQEAgLTI5NCw2ICsyOTgsMjMgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFkZXJBbmRWZWN0b3IKIAogdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtEaXJlY3RDYWxsKENhbGxMaW5rSW5mbyosIEpT
RnVuY3Rpb24qKSBXVEZfSU5URVJOQUw7CiAKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDRnVsbFll
YXIoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRNb250aChWTSosIERhdGVJbnN0YW5jZSopIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVU
Q01vbnRoKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0RGF0ZShWTSosIERhdGVJbnN0YW5jZSopIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdl
dFVUQ0RhdGUoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXREYXkoVk0qLCBEYXRlSW5zdGFuY2UqKSBX
VEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVH
ZXRVVENEYXkoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRIb3VycyhWTSosIERhdGVJbnN0YW5jZSop
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0
ZUdldFVUQ0hvdXJzKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TWludXRlcyhWTSosIERhdGVJbnN0
YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uRGF0ZUdldFVUQ01pbnV0ZXMoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKFZNKiwg
RGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25kcyhWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFRpbWV6
b25lT2Zmc2V0KFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0WWVhcihWTSosIERhdGVJbnN0YW5jZSop
IFdURl9JTlRFUk5BTDsKKwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBl
UHJvZmlsZXJMb2dERkcoVk0qKSBXVEZfSU5URVJOQUw7CiAKIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25UcmlnZ2VyUmVvcHRpbWl6YXRpb25Ob3coQ29kZUJsb2NrKiBiYXNlbGluZUNvZGVC
bG9jaywgQ29kZUJsb2NrKiBvcHRpaW16ZWRDb2RlQmxvY2ssIE9TUkV4aXRCYXNlKikgV1RGX0lO
VEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBlNzJhYTVkZDI1N2YzMjQ2ZTFiZGI2
Y2M2Yzg1OTU5ZjI4OWU5NTRjLi5kYjY1ZThhMzU3NDA5MTA1MGRiNDlmN2Q3MjA5NGYzODFjMmE1
YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtODQ1LDExICs4NDUsMTcgQEAgY2xhc3Mg
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNl
IEdldFByb3RvdHlwZU9mOgogICAgICAgICBjYXNlIEV4dHJhY3RWYWx1ZUZyb21XZWFrTWFwR2V0
OiAKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDoKLSAgICAgICAgY2FzZSBEYXRhVmlld0dl
dEZsb2F0OiB7CisgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKKyAgICAgICAgY2FzZSBE
YXRlR2V0SW50OiB7CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKG1fY3VycmVudE5vZGUtPmdl
dEhlYXBQcmVkaWN0aW9uKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAg
ICAgICBjYXNlIERhdGVHZXRGbG9hdDogeworICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVj
RnVsbE51bWJlcik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGNh
c2UgV2Vha01hcEdldDoKICAgICAgICAgY2FzZSBSZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNE
ZWNsSW5FdmFsOiB7CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNCeXRlY29kZVRvcCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDQ2
MDYxYzg2Y2Y5NWMwNzgxNjFmNGE1OTI0Y2QzYTUyNDZjZGMwMjEuLjk5NTBjMzUyMWYyMDhiZTU1
ZGFkZTFlNzZlY2M0YzIyZWFmOTczYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2FmZVRvRXhlY3V0ZS5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIFNhZmVUb0V4ZWN1dGVF
ZGdlIHsKICAgICAgICAgY2FzZSBQcm9taXNlT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFByb3h5
T2JqZWN0VXNlOgogICAgICAgICBjYXNlIERlcml2ZWRBcnJheVVzZToKKyAgICAgICAgY2FzZSBE
YXRlT2JqZWN0VXNlOgogICAgICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgY2FzZSBT
ZXRPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKQEAgLTQ4OSw2ICs0
OTAsOCBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGJvb2wgaWdubwogICAgIGNhc2UgQXRvbWljc0lzTG9ja0Zy
ZWU6CiAgICAgY2FzZSBJbml0aWFsaXplRW50cnlwb2ludEFyZ3VtZW50czoKICAgICBjYXNlIE1h
dGNoU3RydWN0dXJlOgorICAgIGNhc2UgRGF0ZUdldEludDoKKyAgICBjYXNlIERhdGVHZXRGbG9h
dDoKICAgICBjYXNlIERhdGFWaWV3R2V0SW50OgogICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoK
ICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDQ3NDE2MTRjNTdiZDhjOWJlNjBlNjhmM2MyYTQyZWE3
MDQ1NzUxMGUuLjllYWMyMTZmNjAyYzBiNDFmYWY4ZWM4ZGUyNjdhOGExYjU3NTY5OTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0z
OSw2ICszOSw3IEBACiAjaW5jbHVkZSAiREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5l
cmF0b3IuaCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRG
R1NuaXBwZXRQYXJhbXMuaCIKKyNpbmNsdWRlICJEYXRlSW5zdGFuY2UuaCIKICNpbmNsdWRlICJE
aXJlY3RBcmd1bWVudHMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVy
VXNhZ2UuaCIKICNpbmNsdWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKQEAgLTEwMTk1LDYgKzEwMTk2
LDIwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVByb21pc2VPYmplY3QoRWRnZSBl
ZGdlKQogICAgIHNwZWN1bGF0ZVByb21pc2VPYmplY3QoZWRnZSwgb3BlcmFuZC5ncHIoKSk7CiB9
CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGVPYmplY3QoRWRnZSBlZGdlLCBH
UFJSZWcgY2VsbCkKK3sKKyAgICBzcGVjdWxhdGVDZWxsVHlwZShlZGdlLCBjZWxsLCBTcGVjRGF0
ZU9iamVjdCwgSlNEYXRlVHlwZSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0
ZURhdGVPYmplY3QoRWRnZSBlZGdlKQoreworICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwg
U3BlY0RhdGVPYmplY3QpKQorICAgICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3Bl
cmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZURhdGVPYmplY3QoZWRnZSwg
b3BlcmFuZC5ncHIoKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1hcE9i
amVjdChFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQogewogICAgIHNwZWN1bGF0ZUNlbGxUeXBlKGVk
Z2UsIGNlbGwsIFNwZWNNYXBPYmplY3QsIEpTTWFwVHlwZSk7CkBAIC0xMDYwMCw2ICsxMDYxNSw5
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAg
IGNhc2UgRGVyaXZlZEFycmF5VXNlOgogICAgICAgICBzcGVjdWxhdGVEZXJpdmVkQXJyYXkoZWRn
ZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZU9iamVjdFVzZToKKyAgICAgICAgc3Bl
Y3VsYXRlRGF0ZU9iamVjdChlZGdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYXBPYmpl
Y3RVc2U6CiAgICAgICAgIHNwZWN1bGF0ZU1hcE9iamVjdChlZGdlKTsKICAgICAgICAgYnJlYWs7
CkBAIC0xNDAwOCw2ICsxNDAyNiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYWtl
Um9wZShOb2RlKiBub2RlKQogI2VuZGlmCiB9CiAKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRG
RwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAppbmRleCAxYmE1MjExZmMxMTMwNzdlZGYxN2JhOWI5ZTE0MTA2NTlkYmNiODI1Li4xYjIw
ZDk0NGNiY2RkYTYyZmFjYjQ1NmQ0Yzk4ZDE5YjVjMDVmZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xNDg5LDYgKzE0ODksNyBAQCBj
bGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlQ2xlYXJDYXRjaExvY2FscyhO
b2RlKik7CiAgICAgdm9pZCBjb21waWxlUHJvZmlsZVR5cGUoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZVN0cmluZ0NvZGVQb2ludEF0KE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVEYXRlR2V0KE5v
ZGUqKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3MsIHR5cGVuYW1lIE9wZXJhdGlv
bj4KICAgICB2b2lkIGNvbXBpbGVDcmVhdGVJbnRlcm5hbEZpZWxkT2JqZWN0KE5vZGUqLCBPcGVy
YXRpb24pOwpAQCAtMTYxNiw2ICsxNjE3LDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAg
IHZvaWQgc3BlY3VsYXRlUHJveHlPYmplY3QoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVEZXJp
dmVkQXJyYXkoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlRGVyaXZlZEFy
cmF5KEVkZ2UpOworICAgIHZvaWQgc3BlY3VsYXRlRGF0ZU9iamVjdChFZGdlKTsKKyAgICB2b2lk
IHNwZWN1bGF0ZURhdGVPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3Vs
YXRlTWFwT2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTWFwT2JqZWN0KEVkZ2UsIEdQ
UlJlZyBjZWxsKTsKICAgICB2b2lkIHNwZWN1bGF0ZVNldE9iamVjdChFZGdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmlu
ZGV4IDE0ZjIxYzc3NmZkYzYzNDc0MzY0M2VkYmJkNmUwNmJiM2JhNTVjMGEuLjlhYWFiNDQyZTUw
NmIzYTE2NDc2YTg1NDQ3NWY2MDhiN2YzMjdmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNDE2Miw2ICs0MTYy
LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2Ug
RGF0YVZpZXdHZXRJbnQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0OgogICAgIGNhc2UgRGF0
YVZpZXdTZXQ6CisgICAgY2FzZSBEYXRlR2V0SW50OgorICAgIGNhc2UgRGF0ZUdldEZsb2F0Ogog
ICAgIGNhc2UgU3RyaW5nQ29kZVBvaW50QXQ6CiAgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFw
aCgpLCBub2RlLCAidW5leHBlY3RlZCBub2RlIGluIERGRyBiYWNrZW5kIik7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKaW5kZXggMTQyYzdlMDY4OWMyNmExZmFmZGNkNTAwM2YxZjM0YmViMjUzODAyYS4uOGJl
N2MxZmFhZWYyNzI4ZjViOWFiZDJhNzBhYWQ1ZjcxMjMzODdmMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSAiREZHRG9lc0dDLmgiCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiRGF0ZUluc3RhbmNl
LmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVy
LmgiCiAjaW5jbHVkZSAiSGFzT3duUHJvcGVydHlDYWNoZS5oIgpAQCAtNDg3NCw2ICs0ODc1LDEx
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJl
YWs7CiAgICAgfQogCisgICAgY2FzZSBEYXRlR2V0SW50OgorICAgIGNhc2UgRGF0ZUdldEZsb2F0
OgorICAgICAgICBjb21waWxlRGF0ZUdldChub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBj
YXNlIERhdGFWaWV3U2V0OiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGRhdGFWaWV3
KHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwogICAgICAgICBHUFJSZWcgZGF0
YVZpZXdHUFIgPSBkYXRhVmlldy5ncHIoKTsKQEAgLTUzNDgsNiArNTM1NCwxNDMgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ0NvZGVQb2ludEF0KE5vZGUqIG5vZGUpCiAgICAg
aW50MzJSZXN1bHQoc2NyYXRjaDFHUFIsIG1fY3VycmVudE5vZGUpOwogfQogCit2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlRGF0ZUdldChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIEdQUlJlZyBiYXNlR1BS
ID0gYmFzZS5ncHIoKTsKKyAgICBzcGVjdWxhdGVEYXRlT2JqZWN0KG5vZGUtPmNoaWxkMSgpLCBi
YXNlR1BSKTsKKworICAgIGF1dG8gZW1pdEdldENvZGVXaXRoQ2FsbGJhY2sgPSBbJl0gKHB0cmRp
ZmZfdCBjYWNoZWREb3VibGVPZmZzZXQsIHB0cmRpZmZfdCBjYWNoZWREYXRhT2Zmc2V0LCBhdXRv
KiBvcGVyYXRpb24sIGF1dG8gY2FsbGJhY2spIHsKKyAgICAgICAgSlNWYWx1ZVJlZ3NUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMpOworICAgICAgICBGUFJUZW1wb3JhcnkgdGVtcDEodGhpcyk7CisgICAg
ICAgIEZQUlRlbXBvcmFyeSB0ZW1wMih0aGlzKTsKKworICAgICAgICBKU1ZhbHVlUmVncyByZXN1
bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKyAgICAgICAgRlBSUmVnIHRlbXAxRlBSID0gdGVtcDEu
ZnByKCk7CisgICAgICAgIEZQUlJlZyB0ZW1wMkZQUiA9IHRlbXAyLmZwcigpOworCisgICAgICAg
IENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAgICAgIG1faml0LmxvYWRQ
dHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VHUFIsIERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZE
YXRhKCkpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgIHNsb3dDYXNlcy5hcHBl
bmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHJlc3VsdFJlZ3MucGF5
bG9hZEdQUigpKSk7CisgICAgICAgIG1faml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKGJhc2VHUFIsIERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigpKSwgdGVt
cDFGUFIpOworICAgICAgICBtX2ppdC5sb2FkRG91YmxlKENDYWxsSGVscGVyczo6QWRkcmVzcyhy
ZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgY2FjaGVkRG91YmxlT2Zmc2V0KSwgdGVtcDJGUFIpOwor
ICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaERvdWJsZShDQ2FsbEhlbHBlcnM6
OkRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQsIHRlbXAxRlBSLCB0ZW1wMkZQUikpOworICAgICAg
ICBtX2ppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHJlc3VsdFJlZ3MucGF5bG9hZEdQ
UigpLCBjYWNoZWREYXRhT2Zmc2V0KSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgICAg
ICBjYWxsYmFjayhyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgIG1faml0LmJveElu
dDMyKHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCByZXN1bHRSZWdzKTsKKworICAgICAgICBhZGRT
bG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoc2xvd0Nhc2VzLCB0aGlzLCBvcGVyYXRpb24s
IHJlc3VsdFJlZ3MsICZ2bSgpLCBiYXNlR1BSKSk7CisKKyAgICAgICAganNWYWx1ZVJlc3VsdChy
ZXN1bHRSZWdzLCBub2RlKTsKKyAgICB9OworCisgICAgYXV0byBlbWl0R2V0Q29kZSA9IFsmXSAo
cHRyZGlmZl90IGNhY2hlZERvdWJsZU9mZnNldCwgcHRyZGlmZl90IGNhY2hlZERhdGFPZmZzZXQs
IGF1dG8qIG9wZXJhdGlvbikgeworICAgICAgICBlbWl0R2V0Q29kZVdpdGhDYWxsYmFjayhjYWNo
ZWREb3VibGVPZmZzZXQsIGNhY2hlZERhdGFPZmZzZXQsIG9wZXJhdGlvbiwgW10gKEdQUlJlZykg
eyB9KTsKKyAgICB9OworCisgICAgc3dpdGNoIChub2RlLT5pbnRyaW5zaWMoKSkgeworICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWM6IHsKKyAgICAgICAgRlBSVGVtcG9yYXJ5
IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgRlBSUmVnIHJlc3VsdEZQUiA9IHJlc3VsdC5mcHIoKTsK
KyAgICAgICAgbV9qaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwg
RGF0ZUluc3RhbmNlOjpvZmZzZXRPZkludGVybmFsTnVtYmVyKCkpLCByZXN1bHRGUFIpOworICAg
ICAgICBkb3VibGVSZXN1bHQocmVzdWx0RlBSLCBub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgLy8gV2UgZG8gbm90IGhhdmUgYW55IHRpbWV6b25lIG9mZnNldCB3aGljaCBhZmZl
Y3RzIG9uIG1pbGxpc2Vjb25kcy4KKyAgICAvLyBTbyBEYXRlI2dldE1pbGxpc2Vjb25kcyBhbmQg
RGF0ZSNnZXRVVENNaWxsaXNlY29uZHMgaGF2ZSB0aGUgc2FtZSBpbXBsZW1lbnRhdGlvbi4KKyAg
ICBjYXNlIERhdGVQcm90b3R5cGVHZXRNaWxsaXNlY29uZHNJbnRyaW5zaWM6CisgICAgY2FzZSBE
YXRlUHJvdG90eXBlR2V0VVRDTWlsbGlzZWNvbmRzSW50cmluc2ljOiB7CisgICAgICAgIEpTVmFs
dWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXAx
KHRoaXMpOworICAgICAgICBGUFJUZW1wb3JhcnkgdGVtcDIodGhpcyk7CisgICAgICAgIEZQUlRl
bXBvcmFyeSB0ZW1wMyh0aGlzKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJl
c3VsdC5yZWdzKCk7CisgICAgICAgIEZQUlJlZyB0ZW1wMUZQUiA9IHRlbXAxLmZwcigpOworICAg
ICAgICBGUFJSZWcgdGVtcDJGUFIgPSB0ZW1wMi5mcHIoKTsKKyAgICAgICAgRlBSUmVnIHRlbXAz
RlBSID0gdGVtcDMuZnByKCk7CisKKyAgICAgICAgbV9qaXQubW92ZVRydXN0ZWRWYWx1ZShqc05h
TigpLCByZXN1bHRSZWdzKTsKKyAgICAgICAgbV9qaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoYmFzZUdQUiwgRGF0ZUluc3RhbmNlOjpvZmZzZXRPZkludGVybmFsTnVtYmVyKCkp
LCB0ZW1wMUZQUik7CisgICAgICAgIGF1dG8gaXNOYU4gPSBtX2ppdC5icmFuY2hJZk5hTih0ZW1w
MUZQUik7CisKKyAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBtc1BlclNlY29uZENvbnN0YW50
ID0gbXNQZXJTZWNvbmQ7CisgICAgICAgIG1faml0LmxvYWREb3VibGUoVHJ1c3RlZEltbVB0cigm
bXNQZXJTZWNvbmRDb25zdGFudCksIHRlbXAyRlBSKTsKKyAgICAgICAgbV9qaXQuZGl2RG91Ymxl
KHRlbXAxRlBSLCB0ZW1wMkZQUiwgdGVtcDNGUFIpOworICAgICAgICBtX2ppdC5mbG9vckRvdWJs
ZSh0ZW1wM0ZQUiwgdGVtcDNGUFIpOworICAgICAgICBtX2ppdC5tdWxEb3VibGUodGVtcDNGUFIs
IHRlbXAyRlBSLCB0ZW1wM0ZQUik7CisgICAgICAgIG1faml0LnN1YkRvdWJsZSh0ZW1wMUZQUiwg
dGVtcDNGUFIsIHRlbXAxRlBSKTsKKyAgICAgICAgbV9qaXQudHJ1bmNhdGVEb3VibGVUb0ludDMy
KHRlbXAxRlBSLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgIG1faml0LmJveElu
dDMyKHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCByZXN1bHRSZWdzKTsKKworICAgICAgICBpc05h
Ti5saW5rKCZtX2ppdCk7CisgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7
CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEZ1bGxZ
ZWFySW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZz
ZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNl
dE9mWWVhcigpLCBvcGVyYXRpb25EYXRlR2V0RnVsbFllYXIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgZW1p
dEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0Nh
Y2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZlllYXIoKSwgb3BlcmF0aW9u
RGF0ZUdldFVUQ0Z1bGxZZWFyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0TW9udGhJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURh
dGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGlt
ZTo6b2Zmc2V0T2ZNb250aCgpLCBvcGVyYXRpb25EYXRlR2V0TW9udGgpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNb250aEludHJpbnNpYzoKKyAgICAgICAg
ZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVU
Q0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoKCksIG9wZXJh
dGlvbkRhdGVHZXRVVENNb250aCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3Rv
dHlwZUdldERhdGVJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURh
dGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGlt
ZTo6b2Zmc2V0T2ZNb250aERheSgpLCBvcGVyYXRpb25EYXRlR2V0RGF0ZSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0RhdGVJbnRyaW5zaWM6CisgICAgICAg
IGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVV
VENDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlh
bkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aERheSgpLCBv
cGVyYXRpb25EYXRlR2V0VVRDRGF0ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVBy
b3RvdHlwZUdldERheUludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCksIERhdGVJbnN0YW5j
ZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVU
aW1lOjpvZmZzZXRPZldlZWtEYXkoKSwgb3BlcmF0aW9uRGF0ZUdldERheSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0RheUludHJpbnNpYzoKKyAgICAgICAg
ZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVU
Q0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZldlZWtEYXkoKSwgb3Bl
cmF0aW9uRGF0ZUdldFVUQ0RheSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3Rv
dHlwZUdldEhvdXJzSW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRp
bWU6Om9mZnNldE9mSG91cigpLCBvcGVyYXRpb25EYXRlR2V0SG91cnMpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAg
ZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVU
Q0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZkhvdXIoKSwgb3BlcmF0
aW9uRGF0ZUdldFVUQ0hvdXJzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCksIERhdGVJbnN0YW5j
ZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVU
aW1lOjpvZmZzZXRPZk1pbnV0ZSgpLCBvcGVyYXRpb25EYXRlR2V0TWludXRlcyk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01pbnV0ZXNJbnRyaW5zaWM6Cisg
ICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0
ZVRpbWVVVENDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNaW51dGUo
KSwgb3BlcmF0aW9uRGF0ZUdldFVUQ01pbnV0ZXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERhdGVQcm90b3R5cGVHZXRTZWNvbmRzSW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShE
YXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSwg
RGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3Jl
Z29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mU2Vjb25kKCksIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRz
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0lu
dHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZH
cmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNl
dE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZz
ZXRPZlNlY29uZCgpLCBvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25kcyk7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VGltZXpvbmVPZmZzZXRJbnRyaW5zaWM6IHsK
KyAgICAgICAgZW1pdEdldENvZGVXaXRoQ2FsbGJhY2soRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0
T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNl
dE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRP
ZlVUQ09mZnNldEluTWludXRlKCksIG9wZXJhdGlvbkRhdGVHZXRUaW1lem9uZU9mZnNldCwgWyZd
IChHUFJSZWcgb2Zmc2V0R1BSKSB7CisgICAgICAgICAgICBtX2ppdC5uZWczMihvZmZzZXRHUFIp
OworICAgICAgICB9KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBEYXRlUHJv
dG90eXBlR2V0WWVhckludHJpbnNpYzogeworICAgICAgICBlbWl0R2V0Q29kZVdpdGhDYWxsYmFj
ayhEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMo
KSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsg
R3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mWWVhcigpLCBvcGVyYXRpb25EYXRlR2V0WWVhciwg
WyZdIChHUFJSZWcgeWVhckdQUikgeworICAgICAgICAgICAgbV9qaXQuc3ViMzIoVHJ1c3RlZElt
bTMyKDE5MDApLCB5ZWFyR1BSKTsKKyAgICAgICAgfSk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgfQorfQorCiAjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKaW5kZXggMDg0YjU5NWIzOTlhNmEwNGI0OWM5
Y2MxMjM5ZDUwZTJiOTIyOGUyNC4uOGVmNzNiNmYyZTg3NTUwMzU5NmE4NjQ5NzQwYjNhNDU4YWIw
OTc0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCkBAIC0xMDYs
NiArMTA2LDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFVzZUtpbmQg
dXNlS2luZCkKICAgICBjYXNlIERlcml2ZWRBcnJheVVzZToKICAgICAgICAgb3V0LnByaW50KCJE
ZXJpdmVkQXJyYXkiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRGF0ZU9iamVjdFVzZToK
KyAgICAgICAgb3V0LnByaW50KCJEYXRlT2JqZWN0Iik7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgb3V0LnByaW50KCJNYXBPYmplY3QiKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VL
aW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaAppbmRleCAyZWM0
ZWExNTNkNWMzZDIzNzRiMDllMWNlNzM4M2QwOGI0MWYzYWVmLi45YzEzYzViY2QzNTY5NTc5YjAz
MDkyYzVjOGY3NThiNmU5YzA1OWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1VzZUtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtp
bmQuaApAQCAtNjcsNiArNjcsNyBAQCBlbnVtIFVzZUtpbmQgewogICAgIEtub3duUHJpbWl0aXZl
VXNlLCAvLyBUaGlzIGJpemFycmUgdHlwZSBhcmlzZXMgZm9yIG9wX3N0cmNhdCwgd2hpY2ggaGFz
IGEgYnl0ZWNvZGUgZ3VhcmFudGVlIHRoYXQgaXQgd2lsbCBvbmx5IHNlZSBwcmltaXRpdmVzIChp
LmUuIG5vdCBvYmplY3RzKS4KICAgICBTeW1ib2xVc2UsCiAgICAgQmlnSW50VXNlLAorICAgIERh
dGVPYmplY3RVc2UsCiAgICAgTWFwT2JqZWN0VXNlLAogICAgIFNldE9iamVjdFVzZSwKICAgICBX
ZWFrTWFwT2JqZWN0VXNlLApAQCAtMTU1LDYgKzE1Niw4IEBAIGlubGluZSBTcGVjdWxhdGVkVHlw
ZSB0eXBlRmlsdGVyRm9yKFVzZUtpbmQgdXNlS2luZCkKICAgICAgICAgcmV0dXJuIFNwZWNCaWdJ
bnQ7CiAgICAgY2FzZSBQcm9taXNlT2JqZWN0VXNlOgogICAgICAgICByZXR1cm4gU3BlY1Byb21p
c2VPYmplY3Q7CisgICAgY2FzZSBEYXRlT2JqZWN0VXNlOgorICAgICAgICByZXR1cm4gU3BlY0Rh
dGVPYmplY3Q7CiAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgIHJldHVybiBTcGVjTWFw
T2JqZWN0OwogICAgIGNhc2UgU2V0T2JqZWN0VXNlOgpAQCAtMjYxLDYgKzI2NCw3IEBAIGlubGlu
ZSBib29sIGlzQ2VsbChVc2VLaW5kIGtpbmQpCiAgICAgY2FzZSBCaWdJbnRVc2U6CiAgICAgY2Fz
ZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKKyAg
ICBjYXNlIERhdGVPYmplY3RVc2U6CiAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgY2FzZSBT
ZXRPYmplY3RVc2U6CiAgICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAKaW5k
ZXggOWMzYzFjN2FjNmZhOGFmMjgyNjNiYWIyYTcyNjlkYjU1MGUzNTZkYi4uYzQ1YzlkMWI3ZTU0
YTBiN2M3NGQwYTczNGRmZDA3MTUzNTljMjIwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGF0Y2hwb2lu
dFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJEYXRlSW5z
dGFuY2UuaCIKICNpbmNsdWRlICJEaXJlY3RBcmd1bWVudHMuaCIKICNpbmNsdWRlICJGVExTdGF0
ZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAppbmRleCAxMDM2OWU0ZTQ5
NDUyNjBkYTdjYzRjMTNhM2Y3MTg2YTZlNDIzNTQwLi41OTc3ZDg5MTVjMjY2MTE0YWUxNmViYTI5
MzY3ZTY1ZmU1NmEyZmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaApAQCAtNTIsNiArNTIsMjQgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKEJ1dHRlcmZseV92ZWN0b3JMZW5ndGgs
IEJ1dHRlcmZseTo6b2Zmc2V0T2ZWZWN0b3JMZW5ndGgoKSkgXAogICAgIG1hY3JvKENhbGxGcmFt
ZV9jYWxsZXJGcmFtZSwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSBcCiAgICAgbWFj
cm8oQ2xhc3NJbmZvX3BhcmVudENsYXNzLCBDbGFzc0luZm86Om9mZnNldE9mUGFyZW50Q2xhc3Mo
KSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZV9pbnRlcm5hbE51bWJlciwgRGF0ZUluc3RhbmNl
OjpvZmZzZXRPZkludGVybmFsTnVtYmVyKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VfZGF0
YSwgRGF0ZUluc3RhbmNlOjpvZmZzZXRPZkRhdGEoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5j
ZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCkpIFwKKyAgICBtYWNybyhEYXRlSW5z
dGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMsIERhdGVJbnN0YW5jZURh
dGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUygpKSBcCisgICAgbWFj
cm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV95ZWFyLCBEYXRlSW5z
dGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5E
YXRlVGltZTo6b2Zmc2V0T2ZZZWFyKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2Nh
Y2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX3llYXIsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9m
Q2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRP
ZlllYXIoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWVfbW9udGgsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoKCkpIFwKKyAgICBtYWNy
byhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX21vbnRoLCBEYXRl
SW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVn
b3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aCgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNl
RGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9tb250aERheSwgRGF0ZUluc3RhbmNlRGF0YTo6
b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9m
ZnNldE9mTW9udGhEYXkoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3Jl
Z29yaWFuRGF0ZVRpbWVVVENfbW9udGhEYXksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2Fj
aGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1v
bnRoRGF5KCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lX3dlZWtEYXksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZldlZWtEYXkoKSkgXAorICAg
IG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfd2Vla0Rh
eSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygp
ICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mV2Vla0RheSgpKSBcCisgICAgbWFjcm8oRGF0
ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9ob3VyLCBEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGlt
ZTo6b2Zmc2V0T2ZIb3VyKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lVVRDX2hvdXIsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVk
R3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZkhvdXIo
KSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVf
bWludXRlLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1l
KCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNaW51dGUoKSkgXAorICAgIG1hY3JvKERh
dGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfbWludXRlLCBEYXRlSW5z
dGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3Jp
YW5EYXRlVGltZTo6b2Zmc2V0T2ZNaW51dGUoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURh
dGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfc2Vjb25kLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZz
ZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0
T2ZTZWNvbmQoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVVVENfc2Vjb25kLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdv
cmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZTZWNvbmQoKSkg
XAogICAgIG1hY3JvKERpcmVjdEFyZ3VtZW50c19jYWxsZWUsIERpcmVjdEFyZ3VtZW50czo6b2Zm
c2V0T2ZDYWxsZWUoKSkgXAogICAgIG1hY3JvKERpcmVjdEFyZ3VtZW50c19sZW5ndGgsIERpcmVj
dEFyZ3VtZW50czo6b2Zmc2V0T2ZMZW5ndGgoKSkgXAogICAgIG1hY3JvKERpcmVjdEFyZ3VtZW50
c19taW5DYXBhY2l0eSwgRGlyZWN0QXJndW1lbnRzOjpvZmZzZXRPZk1pbkNhcGFjaXR5KCkpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBj
NjFmOWU2NTgwYmYzYjZlNDVjNjE1MGI5OWYwZjRiODNjMzFlNmE5Li41NGZkYjY5NjBmZjJiMzE0
YjQyNmU5MGNiMjdjYjQ3YTRhZWZhMDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0zODgsNiArMzg4LDggQEAgaW5saW5lIENhcGFiaWxp
dHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBEYXRhVmlld0dldEludDoK
ICAgICBjYXNlIERhdGFWaWV3R2V0RmxvYXQ6CiAgICAgY2FzZSBEYXRhVmlld1NldDoKKyAgICBj
YXNlIERhdGVHZXRJbnQ6CisgICAgY2FzZSBEYXRlR2V0RmxvYXQ6CiAgICAgICAgIC8vIFRoZXNl
IGFyZSBPSy4KICAgICAgICAgYnJlYWs7CiAKQEAgLTQ3MCw2ICs0NzIsNyBAQCBDYXBhYmlsaXR5
TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYgZ3JhcGgpCiAgICAgICAgICAgICAgICAgY2FzZSBTdHJp
bmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAg
ICAgICAgICAgICAgICBjYXNlIEJpZ0ludFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIERhdGVP
YmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgICAg
ICAgICAgY2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBXZWFrTWFwT2Jq
ZWN0VXNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CmluZGV4IGQyMTA0NDkxM2UxNGQwNTM2ODQ0OTUzODI4MmIxM2JlZDFmNGI1NmYuLmM1NjNlNGM3
MTU2MGI4MjA3MTA5OWQ5YzIxNmI4YzA5MDMzMDJhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTE1NDUsNiArMTU0NSwxMCBAQCBjbGFz
cyBMb3dlckRGR1RvQjMgewogICAgICAgICBjYXNlIEZpbHRlckluQnlJZFN0YXR1czoKICAgICAg
ICAgICAgIGNvbXBpbGVGaWx0ZXJJQ1N0YXR1cygpOwogICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgRGF0ZUdldEludDoKKyAgICAgICAgY2FzZSBEYXRlR2V0RmxvYXQ6CisgICAgICAg
ICAgICBjb21waWxlRGF0ZUdldCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
RGF0YVZpZXdHZXRJbnQ6CiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKICAgICAgICAg
ICAgIGNvbXBpbGVEYXRhVmlld0dldCgpOwpAQCAtMTM0MDcsNiArMTM0MTEsMTE1IEBAIGNsYXNz
IExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisKKyAgICB2
b2lkIGNvbXBpbGVEYXRlR2V0KCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93RGF0
ZU9iamVjdChtX25vZGUtPmNoaWxkMSgpKTsKKworICAgICAgICBhdXRvIGVtaXRHZXRDb2RlV2l0
aENhbGxiYWNrID0gWyZdIChjb25zdCBBYnN0cmFjdEhlYXAmIGNhY2hlZERvdWJsZU9mZnNldCwg
Y29uc3QgQWJzdHJhY3RIZWFwJiBjYWNoZWREYXRhT2Zmc2V0LCBhdXRvKiBvcGVyYXRpb24sIGF1
dG8gY2FsbGJhY2spIHsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGRhdGFFeGlzdHNDYXNlID0g
bV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGZhc3RDYXNlID0gbV9v
dXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gbV9vdXQu
bmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0
Lm5ld0Jsb2NrKCk7CisKKyAgICAgICAgICAgIExWYWx1ZSBkYXRhID0gbV9vdXQubG9hZFB0cihi
YXNlLCBtX2hlYXBzLkRhdGVJbnN0YW5jZV9kYXRhKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5j
aChtX291dC5ub3RaZXJvNjQoZGF0YSksIHVuc3VyZShkYXRhRXhpc3RzQ2FzZSksIHVuc3VyZShz
bG93Q2FzZSkpOworCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFw
cGVuZFRvKGRhdGFFeGlzdHNDYXNlLCBmYXN0Q2FzZSk7CisgICAgICAgICAgICBMVmFsdWUgbWls
bGlzZWNvbmRzID0gbV9vdXQubG9hZERvdWJsZShiYXNlLCBtX2hlYXBzLkRhdGVJbnN0YW5jZV9p
bnRlcm5hbE51bWJlcik7CisgICAgICAgICAgICBMVmFsdWUgY2FjaGVkTWlsbGlzZWNvbmRzID0g
bV9vdXQubG9hZERvdWJsZShkYXRhLCBjYWNoZWREb3VibGVPZmZzZXQpOworICAgICAgICAgICAg
bV9vdXQuYnJhbmNoKG1fb3V0LmRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQobWlsbGlzZWNvbmRz
LCBjYWNoZWRNaWxsaXNlY29uZHMpLCB1bnN1cmUoc2xvd0Nhc2UpLCB1bnN1cmUoZmFzdENhc2Up
KTsKKworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZmFzdENhc2UsIHNsb3dDYXNlKTsKKyAg
ICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3IoYm94SW50
MzIoY2FsbGJhY2sobV9vdXQubG9hZDMyKGRhdGEsIGNhY2hlZERhdGFPZmZzZXQpKSkpOworICAg
ICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAgICAgICAgICBtX291dC5h
cHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIFZhbHVlRnJvbUJs
b2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxsKEludDY0LCBvcGVyYXRpb24sIG1f
dm1WYWx1ZSwgYmFzZSkpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwor
CisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAg
ICAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKEludDY0LCBmYXN0UmVzdWx0LCBzbG93UmVz
dWx0KSk7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0byBlbWl0R2V0Q29kZSA9IFsmXSAoY29u
c3QgQWJzdHJhY3RIZWFwJiBjYWNoZWREb3VibGVPZmZzZXQsIGNvbnN0IEFic3RyYWN0SGVhcCYg
Y2FjaGVkRGF0YU9mZnNldCwgYXV0byogb3BlcmF0aW9uKSB7CisgICAgICAgICAgICBlbWl0R2V0
Q29kZVdpdGhDYWxsYmFjayhjYWNoZWREb3VibGVPZmZzZXQsIGNhY2hlZERhdGFPZmZzZXQsIG9w
ZXJhdGlvbiwgW10gKExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0pOworICAgICAgICB9
OworCisgICAgICAgIHN3aXRjaCAobV9ub2RlLT5pbnRyaW5zaWMoKSkgeworICAgICAgICBjYXNl
IERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljOgorICAgICAgICAgICAgc2V0RG91YmxlKG1f
b3V0LmxvYWREb3VibGUoYmFzZSwgbV9oZWFwcy5EYXRlSW5zdGFuY2VfaW50ZXJuYWxOdW1iZXIp
KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1p
bGxpc2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTWls
bGlzZWNvbmRzSW50cmluc2ljOiB7CisgICAgICAgICAgICBMVmFsdWUgbWlsbGlzZWNvbmRzID0g
bV9vdXQubG9hZERvdWJsZShiYXNlLCBtX2hlYXBzLkRhdGVJbnN0YW5jZV9pbnRlcm5hbE51bWJl
cik7CisgICAgICAgICAgICBMVmFsdWUgbXNQZXJTZWNvbmRDb25zdGFudCA9IG1fb3V0LmNvbnN0
RG91YmxlKG1zUGVyU2Vjb25kKTsKKyAgICAgICAgICAgIExWYWx1ZSBzZWNvbmRzID0gbV9vdXQu
ZG91YmxlRmxvb3IobV9vdXQuZG91YmxlRGl2KG1pbGxpc2Vjb25kcywgbXNQZXJTZWNvbmRDb25z
dGFudCkpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmRvdWJsZVRvSW50KG1f
b3V0LmRvdWJsZVN1YihtaWxsaXNlY29uZHMsIG1fb3V0LmRvdWJsZU11bChzZWNvbmRzLCBtc1Bl
clNlY29uZENvbnN0YW50KSkpOworICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5zZWxlY3Qo
bV9vdXQuZG91YmxlTm90RXF1YWxPclVub3JkZXJlZChtaWxsaXNlY29uZHMsIG1pbGxpc2Vjb25k
cyksIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpKSwgYm94SW50MzIo
cmVzdWx0KSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNl
IERhdGVQcm90b3R5cGVHZXRGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRD
b2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1T
LCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfeWVhciwg
b3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRVVENGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgICAgIGVt
aXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0Nh
Y2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRp
bWVVVENfeWVhciwgb3BlcmF0aW9uRGF0ZUdldFVUQ0Z1bGxZZWFyKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNpYzoKKyAgICAg
ICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRl
VGltZUNhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVfbW9udGgsIG9wZXJhdGlvbkRhdGVHZXRNb250aCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTW9udGhJbnRyaW5zaWM6CisgICAg
ICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0
ZVRpbWVVVENDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdv
cmlhbkRhdGVUaW1lVVRDX21vbnRoLCBvcGVyYXRpb25EYXRlR2V0VVRDTW9udGgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldERhdGVJbnRyaW5zaWM6
CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3JlZ29y
aWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lX21vbnRoRGF5LCBvcGVyYXRpb25EYXRlR2V0RGF0ZSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNp
YzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVn
b3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2Fj
aGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfbW9udGhEYXksIG9wZXJhdGlvbkRhdGVHZXRVVENEYXRl
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXREYXlJ
bnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5jZURh
dGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRh
X2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX3dlZWtEYXksIG9wZXJhdGlvbkRhdGVHZXREYXkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0RheUlu
dHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0
YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURh
dGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfd2Vla0RheSwgb3BlcmF0aW9uRGF0ZUdldFVU
Q0RheSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0
SG91cnNJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0
YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFu
Y2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX2hvdXIsIG9wZXJhdGlvbkRhdGVHZXRIb3Vy
cyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRD
SG91cnNJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0
YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5z
dGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX2hvdXIsIG9wZXJhdGlvbkRhdGVH
ZXRVVENIb3Vycyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMu
RGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBzLkRh
dGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfbWludXRlLCBvcGVyYXRpb25E
YXRlR2V0TWludXRlcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJv
dG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1f
aGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBt
X2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfbWludXRl
LCBvcGVyYXRpb25EYXRlR2V0VVRDTWludXRlcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgICAgIGVt
aXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hl
ZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVf
c2Vjb25kLCBvcGVyYXRpb25EYXRlR2V0U2Vjb25kcyk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAg
ICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGlt
ZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVVVENfc2Vjb25kLCBvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25kcyk7CisgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9mZnNl
dEludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlV2l0aENhbGxiYWNrKG1faGVhcHMu
RGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBzLkRh
dGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfeWVhciwgb3BlcmF0aW9uRGF0
ZUdldFRpbWV6b25lT2Zmc2V0LCBbJl0gKExWYWx1ZSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbV9vdXQubmVnKG9mZnNldCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFllYXJJbnRyaW5zaWM6Cisg
ICAgICAgICAgICBlbWl0R2V0Q29kZVdpdGhDYWxsYmFjayhtX2hlYXBzLkRhdGVJbnN0YW5jZURh
dGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRh
X2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX3llYXIsIG9wZXJhdGlvbkRhdGVHZXRZZWFyLCBbJl0g
KExWYWx1ZSB5ZWFyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fb3V0LnN1Yih5ZWFyLCBt
X291dC5jb25zdEludDMyKDE5MDApKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgCiAgICAgdm9pZCBlbWl0U3dpdGNoRm9y
TXVsdGlCeU9mZnNldChMVmFsdWUgYmFzZSwgYm9vbCBzdHJ1Y3R1cmVzQ2hlY2tlZCwgVmVjdG9y
PFN3aXRjaENhc2UsIDI+JiBjYXNlcywgTEJhc2ljQmxvY2sgZXhpdCkKICAgICB7CkBAIC0xNTc1
Nyw2ICsxNTg3MCwxMyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBzcGVjdWxhdGVE
YXRhVmlld09iamVjdChlZGdlLCByZXN1bHQpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
IH0KKworICAgIExWYWx1ZSBsb3dEYXRlT2JqZWN0KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAg
IExWYWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UpOworICAgICAgICBzcGVjdWxhdGVEYXRlT2Jq
ZWN0KGVkZ2UsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQogICAgIAog
ICAgIExWYWx1ZSBsb3dTdHJpbmcoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1v
ZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAgewpAQCAtMTYyNDIsNiArMTYz
NjIsOSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBjYXNlIERlcml2ZWRBcnJheVVz
ZToKICAgICAgICAgICAgIHNwZWN1bGF0ZURlcml2ZWRBcnJheShlZGdlKTsKICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIERhdGVPYmplY3RVc2U6CisgICAgICAgICAgICBzcGVjdWxh
dGVEYXRlT2JqZWN0KGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWFw
T2JqZWN0VXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlTWFwT2JqZWN0KGVkZ2UpOwogICAgICAg
ICAgICAgYnJlYWs7CkBAIC0xNjc2OCw2ICsxNjg5MSwxNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMg
ewogICAgICAgICBzcGVjdWxhdGVQcm9taXNlT2JqZWN0KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOwog
ICAgIH0KIAorICAgIHZvaWQgc3BlY3VsYXRlRGF0ZU9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBj
ZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCisgICAgICAgICAgICBqc1ZhbHVl
VmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNEYXRlT2JqZWN0LCBpc05vdFR5cGUoY2VsbCwgSlNEYXRl
VHlwZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlRGF0ZU9iamVjdChFZGdlIGVkZ2Up
CisgICAgeworICAgICAgICBzcGVjdWxhdGVEYXRlT2JqZWN0KGVkZ2UsIGxvd0NlbGwoZWRnZSkp
OworICAgIH0KKwogICAgIHZvaWQgc3BlY3VsYXRlTWFwT2JqZWN0KEVkZ2UgZWRnZSwgTFZhbHVl
IGNlbGwpCiAgICAgewogICAgICAgICBGVExfVFlQRV9DSEVDSygKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcAppbmRleCBhZTlmNGUwY2E3Y2Ni
MDJmYWI0MmJmYzJlMjY0OWIwMmJhOGVkOTRhLi41YjJhYTFhNzFmZmY1YTUwZGQzMTFlZGQyNWVh
ZGQxODJlN2I3YzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUNvbnZlcnNpb24uY3BwCkBAIC05Nyw4ICs5Nyw4IEBAIFN0cmluZyBmb3JtYXREYXRlVGltZShj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSYgdCwgRGF0ZVRpbWVGb3JtYXQgZm9ybWF0LCBib29sIGFz
CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIEdNVCIpOwogCiAgICAgICAgIGlmICgh
YXNVVENWYXJpYW50KSB7Ci0gICAgICAgICAgICBpbnQgb2Zmc2V0ID0gYWJzKHQudXRjT2Zmc2V0
KCkpIC8gNjA7Ci0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh0LnV0Y09mZnNldCgpIDwgMCA/
ICctJyA6ICcrJyk7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gYWJzKHQudXRjT2Zmc2V0SW5N
aW51dGUoKSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh0LnV0Y09mZnNldEluTWludXRl
KCkgPCAwID8gJy0nIDogJysnKTsKICAgICAgICAgICAgIGFwcGVuZE51bWJlcjwyPihidWlsZGVy
LCBvZmZzZXQgLyA2MCk7CiAgICAgICAgICAgICBhcHBlbmROdW1iZXI8Mj4oYnVpbGRlciwgb2Zm
c2V0ICUgNjApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlSW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3Rh
bmNlLmNwcAppbmRleCA3YjRlNDVjZWE0MTk5YTE4NzIzNzkxNDFjZDVlMjJlMTc2ZDM0ZTQ3Li44
ZjVjMmVkMjI2MzI5NWNiYzQ1N2VlNzZlYWViMzc0ZDNlN2YyYTIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKQEAgLTU3LDEzICs1NywxMiBA
QCB2b2lkIERhdGVJbnN0YW5jZTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAgICAgc3RhdGljX2Nh
c3Q8RGF0ZUluc3RhbmNlKj4oY2VsbCktPkRhdGVJbnN0YW5jZTo6fkRhdGVJbnN0YW5jZSgpOwog
fQogCi1jb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVn
b3JpYW5EYXRlVGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAorY29uc3Qg
R3JlZ29yaWFuRGF0ZVRpbWUqIERhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRp
bWUoVk0mIHZtKSBjb25zdAogewogICAgIGRvdWJsZSBtaWxsaSA9IGludGVybmFsTnVtYmVyKCk7
CiAgICAgaWYgKHN0ZDo6aXNuYW4obWlsbGkpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
aWYgKCFtX2RhdGEpCiAgICAgICAgIG1fZGF0YSA9IHZtLmRhdGVJbnN0YW5jZUNhY2hlLmFkZCht
aWxsaSk7CiAKQEAgLTc0LDEzICs3MywxMiBAQCBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0
ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZShKU0dsb2JhbE9iamVjdAogICAg
IHJldHVybiAmbV9kYXRhLT5tX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lOwogfQogCi1jb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGlt
ZVVUQyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAorY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIERhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWVVVEMoVk0m
IHZtKSBjb25zdAogewogICAgIGRvdWJsZSBtaWxsaSA9IGludGVybmFsTnVtYmVyKCk7CiAgICAg
aWYgKHN0ZDo6aXNuYW4obWlsbGkpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgaWYgKCFt
X2RhdGEpCiAgICAgICAgIG1fZGF0YSA9IHZtLmRhdGVJbnN0YW5jZUNhY2hlLmFkZChtaWxsaSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5j
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKaW5kZXgg
MzU3OGFiODJhNDY1MzYwMWMwOWQ4MGRkMDQ1NDQ1ZWI4MDQyOWM2Yy4uOWU3NzgzOTcxNGZjZGMx
N2I4N2E2NGQ5N2JiODQwZjk3Y2FkYzQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUluc3RhbmNlLmgKQEAgLTU0LDI4ICs1NCwzMSBAQCBjbGFzcyBEYXRlSW5zdGFu
Y2UgZmluYWwgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogCiAgICAgREVDTEFSRV9F
WFBPUlRfSU5GTzsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRl
VGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAorICAgIGNvbnN0IEdyZWdv
cmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZShWTSYgdm0pIGNvbnN0CiAgICAgewogICAg
ICAgICBpZiAobV9kYXRhICYmIG1fZGF0YS0+bV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1T
ID09IGludGVybmFsTnVtYmVyKCkpCiAgICAgICAgICAgICByZXR1cm4gJm1fZGF0YS0+bV9jYWNo
ZWRHcmVnb3JpYW5EYXRlVGltZTsKLSAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZUdyZWdvcmlhbkRh
dGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiBjYWxjdWxhdGVHcmVnb3JpYW5E
YXRlVGltZSh2bSk7CiAgICAgfQogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdv
cmlhbkRhdGVUaW1lVVRDKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CisgICAg
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lVVRDKFZNJiB2bSkgY29u
c3QKICAgICB7CiAgICAgICAgIGlmIChtX2RhdGEgJiYgbV9kYXRhLT5tX2dyZWdvcmlhbkRhdGVU
aW1lVVRDQ2FjaGVkRm9yTVMgPT0gaW50ZXJuYWxOdW1iZXIoKSkKICAgICAgICAgICAgIHJldHVy
biAmbV9kYXRhLT5tX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDOwotICAgICAgICByZXR1cm4g
Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0
dXJuIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICB9CiAKICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSlNEYXRlVHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAorICAgIHN0YXRpYyBwdHJkaWZm
X3Qgb2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihEYXRl
SW5zdGFuY2UsIG1faW50ZXJuYWxOdW1iZXIpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZz
ZXRPZkRhdGEoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRGF0ZUluc3RhbmNlLCBtX2RhdGEp
OyB9CisKIHByaXZhdGU6Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7
Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGNhbGN1bGF0
ZUdyZWdvcmlhbkRhdGVUaW1lVVRDKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CisgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRh
dGVUaW1lKFZNJikgY29uc3Q7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lVVRDKFZNJikgY29uc3Q7CiAKICAg
ICBkb3VibGUgbV9pbnRlcm5hbE51bWJlciB7IFBOYU4gfTsKICAgICBtdXRhYmxlIFJlZlB0cjxE
YXRlSW5zdGFuY2VEYXRhPiBtX2RhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUluc3RhbmNlQ2FjaGUuaAppbmRleCA3NTY0MGViMzczMDQxYzhlOTNjNGI5MjY2
NmI4ZjFmZTIzNzM4NWExLi4yYzRmYjUyMmQzZWY5YjYyZThiNDBiZTMzZWU4ZWVjZWFlMTBiMGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2VD
YWNoZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNh
Y2hlLmgKQEAgLTM3LDE3ICszNywxOCBAQCBjbGFzcyBEYXRlSW5zdGFuY2VEYXRhIDogcHVibGlj
IFJlZkNvdW50ZWQ8RGF0ZUluc3RhbmNlRGF0YT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
RGF0ZUluc3RhbmNlRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlSW5z
dGFuY2VEYXRhKTsgfQogCi0gICAgZG91YmxlIG1fZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JN
UzsKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRG
b3JNUygpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihEYXRlSW5zdGFuY2VEYXRhLCBtX2dyZWdv
cmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRP
ZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKERhdGVJ
bnN0YW5jZURhdGEsIG1fY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUpOyB9CisgICAgc3RhdGljIHB0
cmRpZmZfdCBvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSB7IHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoRGF0ZUluc3RhbmNlRGF0YSwgbV9ncmVnb3JpYW5EYXRlVGltZVVU
Q0NhY2hlZEZvck1TKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZDYWNoZWRHcmVn
b3JpYW5EYXRlVGltZVVUQygpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihEYXRlSW5zdGFuY2VE
YXRhLCBtX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKTsgfQorCisgICAgZG91YmxlIG1fZ3Jl
Z29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUyB7IFBOYU4gfTsKICAgICBHcmVnb3JpYW5EYXRlVGlt
ZSBtX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lOwotICAgIGRvdWJsZSBtX2dyZWdvcmlhbkRhdGVU
aW1lVVRDQ2FjaGVkRm9yTVM7CisgICAgZG91YmxlIG1fZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNo
ZWRGb3JNUyB7IFBOYU4gfTsKICAgICBHcmVnb3JpYW5EYXRlVGltZSBtX2NhY2hlZEdyZWdvcmlh
bkRhdGVUaW1lVVRDOwogCiBwcml2YXRlOgotICAgIERhdGVJbnN0YW5jZURhdGEoKQotICAgICAg
ICA6IG1fZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUyhQTmFOKQotICAgICAgICAsIG1fZ3Jl
Z29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUyhQTmFOKQotICAgIHsKLSAgICB9CisgICAgRGF0
ZUluc3RhbmNlRGF0YSgpID0gZGVmYXVsdDsKIH07CiAKIGNsYXNzIERhdGVJbnN0YW5jZUNhY2hl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAK
aW5kZXggMjM5ZTkzMmVlZGM0ZmFkNTA3YmVhMTgzNGY3ZDQ5NzVlNjlmMTJjZS4uMmFmZjBmNzNk
N2M2NDRjNjhkYWQ1YzE2N2ZmZTNmMzdiZDQ3Yzg3NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKQEAgLTMxMyw3ICszMTMsNyBAQCBzdGF0
aWMgSlNDZWxsKiBmb3JtYXRMb2NhbGVEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYQogc3RhdGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlRGF0ZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRGF0ZUluc3Rh
bmNlKiBkYXRlT2JqZWN0LCBkb3VibGUsIExvY2FsZURhdGVUaW1lRm9ybWF0IGZvcm1hdCkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZU9iamVjdC0+Z3JlZ29yaWFuRGF0ZVRpbWUo
Z2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0
ZVRpbWUgPSBkYXRlT2JqZWN0LT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVn
b3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIklu
dmFsaWQgRGF0ZSJfcyk7CiAgICAgcmV0dXJuIGZvcm1hdExvY2FsZURhdGUoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsICpncmVnb3JpYW5EYXRlVGltZSwgZm9ybWF0KTsKQEAgLTMzMSw4ICszMzEs
OCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZm9ybWF0ZURhdGVJbnN0YW5jZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IGFzVVRDVmFyaWFudAotICAgICAgICA/IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpCi0gICAgICAgIDogdGhpc0RhdGVP
YmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgICAgID8gdGhpc0RhdGVP
YmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKQorICAgICAgICA6IHRoaXNEYXRlT2JqLT5ncmVn
b3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcodm0sIFN0cmluZygiSW52
YWxpZCBEYXRlIl9zKSkpOwogCkBAIC00NTQsMjUgKzQ1NCwyNiBAQCBjb25zdCBDbGFzc0luZm8g
RGF0ZVByb3RvdHlwZTo6c19pbmZvID0geyJPYmplY3QiLCAmSlNOb25GaW5hbE9iamVjdDo6c19p
bmZvLCAmZAogICB0b0xvY2FsZVN0cmluZyAgICAgICAgZGF0ZVByb3RvRnVuY1RvTG9jYWxlU3Ry
aW5nICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKICAgdG9Mb2NhbGVEYXRlU3Ry
aW5nICAgIGRhdGVQcm90b0Z1bmNUb0xvY2FsZURhdGVTdHJpbmcgICAgICBEb250RW51bXxGdW5j
dGlvbiAgICAgICAwCiAgIHRvTG9jYWxlVGltZVN0cmluZyAgICBkYXRlUHJvdG9GdW5jVG9Mb2Nh
bGVUaW1lU3RyaW5nICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICB2YWx1ZU9mICAg
ICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFRpbWUgICAgICAgICAgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VGltZSAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNH
ZXRUaW1lICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldEZ1
bGxZZWFyICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIgICAgICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRVVENGdWxsWWVhciAgICAgICAgZGF0ZVByb3Rv
RnVuY0dldFVUQ0Z1bGxZZWFyICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAg
Z2V0TW9udGggICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRNb250aCAgICAgICAgICAgICAg
ICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFVUQ01vbnRoICAgICAgICAgICBkYXRl
UHJvdG9GdW5jR2V0VVRDTW9udGggICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAg
MAotICBnZXREYXRlICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldERhdGUgICAgICAgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VVRDRGF0ZSAgICAgICAgICAg
IGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAg
ICAgICAwCi0gIGdldERheSAgICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0RGF5ICAgICAg
ICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRVVENEYXkgICAgICAg
ICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0RheSAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uICAgICAgIDAKLSAgZ2V0SG91cnMgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRIb3Vy
cyAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFVUQ0hvdXJz
ICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMgICAgICAgICAgICAgRG9udEVudW18
RnVuY3Rpb24gICAgICAgMAotICBnZXRNaW51dGVzICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dl
dE1pbnV0ZXMgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VVRD
TWludXRlcyAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVzICAgICAgICAgICBEb250
RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFNlY29uZHMgICAgICAgICAgICBkYXRlUHJvdG9G
dW5jR2V0U2Vjb25kcyAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBn
ZXRVVENTZWNvbmRzICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMgICAgICAgICAg
IERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0TWlsbGlzZWNvbmRzICAgICAgIGRhdGVQ
cm90b0Z1bmNHZXRNaWxsaVNlY29uZHMgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAw
Ci0gIGdldFVUQ01pbGxpc2Vjb25kcyAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRz
ICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRUaW1lem9uZU9mZnNldCAgICAg
ZGF0ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAg
ICAgIDAKKyAgdmFsdWVPZiAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRUaW1lICAgICAg
ICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VGlt
ZUludHJpbnNpYworICBnZXRUaW1lICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFRpbWUg
ICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVH
ZXRUaW1lSW50cmluc2ljCisgIGdldEZ1bGxZZWFyICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0
RnVsbFllYXIgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3Rv
dHlwZUdldEZ1bGxZZWFySW50cmluc2ljCisgIGdldFVUQ0Z1bGxZZWFyICAgICAgICBkYXRlUHJv
dG9GdW5jR2V0VVRDRnVsbFllYXIgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAg
RGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50cmluc2ljCisgIGdldE1vbnRoICAgICAgICAg
ICAgICBkYXRlUHJvdG9GdW5jR2V0TW9udGggICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rp
b24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50cmluc2ljCisgIGdldFVUQ01vbnRo
ICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGggICAgICAgICAgICAgRG9udEVudW18
RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ01vbnRoSW50cmluc2ljCisgIGdl
dERhdGUgICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0RGF0ZSAgICAgICAgICAgICAgICAg
RG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldERhdGVJbnRyaW5zaWMK
KyAgZ2V0VVRDRGF0ZSAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlICAgICAgICAg
ICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUlu
dHJpbnNpYworICBnZXREYXkgICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldERheSAgICAg
ICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRE
YXlJbnRyaW5zaWMKKyAgZ2V0VVRDRGF5ICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENE
YXkgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBl
R2V0VVRDRGF5SW50cmluc2ljCisgIGdldEhvdXJzICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5j
R2V0SG91cnMgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVBy
b3RvdHlwZUdldEhvdXJzSW50cmluc2ljCisgIGdldFVUQ0hvdXJzICAgICAgICAgICBkYXRlUHJv
dG9GdW5jR2V0VVRDSG91cnMgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAg
RGF0ZVByb3RvdHlwZUdldFVUQ0hvdXJzSW50cmluc2ljCisgIGdldE1pbnV0ZXMgICAgICAgICAg
ICBkYXRlUHJvdG9GdW5jR2V0TWludXRlcyAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
ICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldE1pbnV0ZXNJbnRyaW5zaWMKKyAgZ2V0VVRDTWludXRl
cyAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVzICAgICAgICAgICBEb250RW51bXxG
dW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYworICBn
ZXRTZWNvbmRzICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFNlY29uZHMgICAgICAgICAgICAg
IERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRTZWNvbmRzSW50cmlu
c2ljCisgIGdldFVUQ1NlY29uZHMgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyAg
ICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ1Nl
Y29uZHNJbnRyaW5zaWMKKyAgZ2V0TWlsbGlzZWNvbmRzICAgICAgIGRhdGVQcm90b0Z1bmNHZXRN
aWxsaVNlY29uZHMgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90
eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljCisgIGdldFVUQ01pbGxpc2Vjb25kcyAgICBkYXRl
UHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAg
MCAgRGF0ZVByb3RvdHlwZUdldFVUQ01pbGxpc2Vjb25kc0ludHJpbnNpYworICBnZXRUaW1lem9u
ZU9mZnNldCAgICAgZGF0ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0ICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9mZnNldEludHJpbnNp
YworICBnZXRZZWFyICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFllYXIgICAgICAgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRZZWFySW50
cmluc2ljCiAgIHNldFRpbWUgICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jU2V0VGltZSAgICAg
ICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMQogICBzZXRNaWxsaXNlY29uZHMg
ICAgICAgZGF0ZVByb3RvRnVuY1NldE1pbGxpU2Vjb25kcyAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uICAgICAgIDEKICAgc2V0VVRDTWlsbGlzZWNvbmRzICAgIGRhdGVQcm90b0Z1bmNTZXRVVENN
aWxsaXNlY29uZHMgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAxCkBAIC00ODksNyArNDkw
LDYgQEAgY29uc3QgQ2xhc3NJbmZvIERhdGVQcm90b3R5cGU6OnNfaW5mbyA9IHsiT2JqZWN0Iiwg
JkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgJmQKICAgc2V0RnVsbFllYXIgICAgICAgICAgIGRh
dGVQcm90b0Z1bmNTZXRGdWxsWWVhciAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAg
ICAzCiAgIHNldFVUQ0Z1bGxZZWFyICAgICAgICBkYXRlUHJvdG9GdW5jU2V0VVRDRnVsbFllYXIg
ICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMwogICBzZXRZZWFyICAgICAgICAgICAg
ICAgZGF0ZVByb3RvRnVuY1NldFllYXIgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
ICAgICAgIDEKLSAgZ2V0WWVhciAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRZZWFyICAg
ICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCiAgIHRvSlNPTiAgICAgICAg
ICAgICAgICBkYXRlUHJvdG9GdW5jVG9KU09OICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVu
Y3Rpb24gICAgICAgMQogQGVuZAogKi8KQEAgLTU0OSw3ICs1NDksNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZQogICAgIGlmICghc3RkOjppc2Zpbml0ZSh0aGlzRGF0ZU9iai0+aW50ZXJuYWxO
dW1iZXIoKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgY3JlYXRlUmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsICJJbnZhbGlkIERhdGUiX3MpKTsKIAot
ICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRl
T2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdv
cmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5E
YXRlVGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcodm0sIFN0cmluZygiSW52YWxp
ZCBEYXRlIl9zKSkpOwogICAgIC8vIE1heGltdW0gYW1vdW50IG9mIHNwYWNlIHdlIG5lZWQgaW4g
YnVmZmVyOiA3IChtYXguIGRpZ2l0cyBpbiB5ZWFyKSArIDIgKiA1ICgyIGNoYXJhY3RlcnMgZWFj
aCBmb3IgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQpICsgNCAoLiArIDMgZGlnaXRz
IGZvciBtaWxsaXNlY29uZHMpCkBAIC02NjQsNyArNjY0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamUKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3Jp
YW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0
ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlm
ICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
YU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRl
VGltZS0+eWVhcigpKSk7CkBAIC02NzksNyArNjc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE8KICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5E
YXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRp
bWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAg
IGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5E
YXRlVGltZS0+eWVhcigpKSk7CkBAIC02OTQsNyArNjk0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TW9udGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3Jp
YW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0
ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlm
ICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
YU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRl
VGltZS0+bW9udGgoKSkpOwpAQCAtNzA5LDcgKzcwOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVU
aW1lVVRDKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdv
cmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAg
ICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFu
RGF0ZVRpbWUtPm1vbnRoKCkpKTsKQEAgLTcyNCw3ICs3MjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29y
aWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRh
dGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdv
cmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBp
ZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0
ZVRpbWUtPm1vbnRoRGF5KCkpKTsKQEAgLTczOSw3ICs3MzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplYwogICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdv
cmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5E
YXRlVGltZVVUQyhnbG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBn
cmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7
CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdv
cmlhbkRhdGVUaW1lLT5tb250aERheSgpKSk7CkBAIC03NTQsNyArNzU0LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RGF5KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEMKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25z
dCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3Jl
Z29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0p
OwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVn
b3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CkBAIC03NjksNyArNzY5LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF5KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25z
dCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3Jl
Z29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVV
VEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CkBAIC03ODQsNyArNzg0LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0SG91cnMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9i
ai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5E
YXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRp
bWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7CkBAIC03OTksNyArNzk5LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamUKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+
Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5E
YXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRp
bWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7CkBAIC04MTQsNyArODE0LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TWludXRlcyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9i
ai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5E
YXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRp
bWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKTsKQEAgLTgyOSw3ICs4MjksNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRl
VGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5taW51dGUoKSkpOwpAQCAtODQ0LDcgKzg0NCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFNlY29uZHMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwog
Ci0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0Rh
dGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29y
aWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRh
dGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnNlY29uZCgpKSk7CkBAIC04NTksNyArODU5LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAK
LSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25kKCkpKTsKQEAgLTg4MCw3ICs4ODAs
OCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNl
Y29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogCiAgICAgZG91YmxlIHNlY3MgPSBmbG9vciht
aWxsaSAvIG1zUGVyU2Vjb25kKTsKICAgICBkb3VibGUgbXMgPSBtaWxsaSAtIHNlY3MgKiBtc1Bl
clNlY29uZDsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG1zKSk7CisgICAg
Ly8gU2luY2UgdGltZUNsaXAgbWFrZXMgaW50ZXJuYWxOdW1iZXIgaW50ZWdlciBtaWxsaXNlY29u
ZHMsIHRoaXMgcmVzdWx0IGlzIGFsd2F5cyBpbnQzMl90LgorICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4obXMpKSk7CiB9CiAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01pbGxpc2Vjb25kcyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKQEAgLTg5OCw3
ICs4OTksOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRV
VENNaWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsbwogCiAgICAgZG91YmxlIHNlY3MgPSBm
bG9vcihtaWxsaSAvIG1zUGVyU2Vjb25kKTsKICAgICBkb3VibGUgbXMgPSBtaWxsaSAtIHNlY3Mg
KiBtc1BlclNlY29uZDsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG1zKSk7
CisgICAgLy8gU2luY2UgdGltZUNsaXAgbWFrZXMgaW50ZXJuYWxOdW1iZXIgaW50ZWdlciBtaWxs
aXNlY29uZHMsIHRoaXMgcmVzdWx0IGlzIGFsd2F5cyBpbnQzMl90LgorICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4obXMpKSk7CiB9CiAKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQpAQCAt
OTEwLDEwICs5MTIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0VGltZXpvbmVPZmZzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBpZiAoVU5MSUtF
TFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsK
KyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcigtZ3JlZ29yaWFuRGF0ZVRpbWUtPnV0Y09mZnNldCgpIC8g
bWludXRlc1BlckhvdXIpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC1n
cmVnb3JpYW5EYXRlVGltZS0+dXRjT2Zmc2V0SW5NaW51dGUoKSkpOwogfQogCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRUaW1lKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQpAQCAtOTUxLDEzICs5NTMsMTIgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICBkb3VibGUgbXMgPSBtaWxsaSAtIHNlY3MgKiBt
c1BlclNlY29uZDsKIAogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBvdGhlciA9IGlucHV0
VGltZVR5cGUgPT0gV1RGOjpVVENUaW1lCi0gICAgICAgID8gdGhpc0RhdGVPYmotPmdyZWdvcmlh
bkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCkKLSAgICAgICAgOiB0aGlzRGF0ZU9iai0+Z3JlZ29y
aWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgPyB0aGlzRGF0ZU9iai0+Z3JlZ29y
aWFuRGF0ZVRpbWVVVEModm0pCisgICAgICAgIDogdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVU
aW1lKHZtKTsKICAgICBpZiAoIW90aGVyKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTmFOKCkpOwogCi0gICAgR3JlZ29yaWFuRGF0ZVRpbWUgZ3JlZ29yaWFuRGF0ZVRpbWU7Ci0g
ICAgZ3JlZ29yaWFuRGF0ZVRpbWUuY29weUZyb20oKm90aGVyKTsKKyAgICBHcmVnb3JpYW5EYXRl
VGltZSBncmVnb3JpYW5EYXRlVGltZSgqb3RoZXIpOwogICAgIGJvb2wgc3VjY2VzcyA9IGZpbGxT
dHJ1Y3R1cmVzVXNpbmdUaW1lQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgbnVtQXJnc1Rv
VXNlLCAmbXMsICZncmVnb3JpYW5EYXRlVGltZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgaWYgKCFzdWNjZXNzKSB7CkBAIC05OTQsMTEg
Kzk5NSwxMSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3Mo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAgIGVsc2UgeyAKICAgICAgICAg
bXMgPSBtaWxsaSAtIGZsb29yKG1pbGxpIC8gbXNQZXJTZWNvbmQpICogbXNQZXJTZWNvbmQ7IAog
ICAgICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogb3RoZXIgPSBpbnB1dFRpbWVUeXBlID09
IFdURjo6VVRDVGltZQotICAgICAgICAgICAgPyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRp
bWVVVEMoZ2xvYmFsT2JqZWN0KQotICAgICAgICAgICAgOiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgID8gdGhpc0RhdGVPYmotPmdyZWdv
cmlhbkRhdGVUaW1lVVRDKHZtKQorICAgICAgICAgICAgOiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWUodm0pOwogICAgICAgICBpZiAoIW90aGVyKQogICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc05hTigpKTsKLSAgICAgICAgZ3JlZ29yaWFuRGF0ZVRpbWUuY29weUZy
b20oKm90aGVyKTsKKyAgICAgICAgZ3JlZ29yaWFuRGF0ZVRpbWUgPSAqb3RoZXI7CiAgICAgfQog
ICAgIAogICAgIGJvb2wgc3VjY2VzcyA9IGZpbGxTdHJ1Y3R1cmVzVXNpbmdEYXRlQXJncyhnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgbnVtQXJnc1RvVXNlLCAmbXMsICZncmVnb3JpYW5EYXRlVGlt
ZSk7CkBAIC0xMTA5LDggKzExMTAsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNTZXRZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgZWxz
ZSB7CiAgICAgICAgIGRvdWJsZSBzZWNzID0gZmxvb3IobWlsbGkgLyBtc1BlclNlY29uZCk7CiAg
ICAgICAgIG1zID0gbWlsbGkgLSBzZWNzICogbXNQZXJTZWNvbmQ7Ci0gICAgICAgIGlmIChjb25z
dCBHcmVnb3JpYW5EYXRlVGltZSogb3RoZXIgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRp
bWUoZ2xvYmFsT2JqZWN0KSkKLSAgICAgICAgICAgIGdyZWdvcmlhbkRhdGVUaW1lLmNvcHlGcm9t
KCpvdGhlcik7CisgICAgICAgIGlmIChjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogb3RoZXIgPSB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pKQorICAgICAgICAgICAgZ3JlZ29yaWFu
RGF0ZVRpbWUgPSAqb3RoZXI7CiAgICAgfQogCiAgICAgZG91YmxlIHllYXIgPSBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApLnRvSW50ZWdlclByZXNlcnZlTmFOKGdsb2JhbE9iamVjdCk7CkBAIC0xMTM2
LDcgKzExMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNH
ZXRZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgaWYgKFVOTElLRUxZKCF0
aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAg
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcAppbmRleCBhMTJhMjQwNTVjNzI5MGEzYTFjOTU2
ZjZhYjRlNzYzN2Y4N2ZiYjM0Li5hNDFiNTdiMmNiY2JiMWMyZDVkNWY2Y2E5OWI2YWQ2MGI0ZWMy
YTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKQEAg
LTgzLDYgKzgzLDQ0IEBAIGNvbnN0IGNoYXIqIGludHJpbnNpY05hbWUoSW50cmluc2ljIGludHJp
bnNpYykKICAgICAgICAgcmV0dXJuICJDaGFyQ29kZUF0SW50cmluc2ljIjsKICAgICBjYXNlIENo
YXJBdEludHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJDaGFyQXRJbnRyaW5zaWMiOworICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVBy
b3RvdHlwZUdldFRpbWVJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEZ1bGxZ
ZWFySW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRGdWxsWWVhcklu
dHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRnVsbFllYXJJbnRyaW5zaWM6
CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50cmluc2ljIjsK
KyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNpYzoKKyAgICAgICAgcmV0dXJu
ICJEYXRlUHJvdG90eXBlR2V0TW9udGhJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlw
ZUdldFVUQ01vbnRoSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRV
VENNb250aEludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF0ZUludHJpbnNp
YzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0RGF0ZUludHJpbnNpYyI7CisgICAg
Y2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJE
YXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBl
R2V0RGF5SW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXREYXlJbnRy
aW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0RheUludHJpbnNpYzoKKyAgICAg
ICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDRGF5SW50cmluc2ljIjsKKyAgICBjYXNlIERh
dGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90
eXBlR2V0SG91cnNJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0hvdXJz
SW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRVVENIb3Vyc0ludHJp
bnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWludXRlc0ludHJpbnNpYzoKKyAgICAg
ICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0TWludXRlc0ludHJpbnNpYyI7CisgICAgY2FzZSBE
YXRlUHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRl
UHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBl
R2V0U2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0U2Vj
b25kc0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJp
bnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNp
YyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljOgorICAg
ICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRNaWxsaXNlY29uZHNJbnRyaW5zaWMiOworICAg
IGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01pbGxpc2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAg
cmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDTWlsbGlzZWNvbmRzSW50cmluc2ljIjsKKyAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9mZnNldEludHJpbnNpYzoKKyAgICAgICAgcmV0
dXJuICJEYXRlUHJvdG90eXBlR2V0VGltZXpvbmVPZmZzZXRJbnRyaW5zaWMiOworICAgIGNhc2Ug
RGF0ZVByb3RvdHlwZUdldFllYXJJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3Rv
dHlwZUdldFllYXJJbnRyaW5zaWMiOwogICAgIGNhc2UgRnJvbUNoYXJDb2RlSW50cmluc2ljOgog
ICAgICAgICByZXR1cm4gIkZyb21DaGFyQ29kZUludHJpbnNpYyI7CiAgICAgY2FzZSBQb3dJbnRy
aW5zaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5z
aWMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCmluZGV4IGU1
MWI4MzlkOTg2Njc2ODk4M2U3NTE4ZTI0NzVlYTM1OGQ5ZmQ4NTEuLmZlMmU5MTBmOTFlZGVhZWQy
NjA5ZjQyNDc0ZTI4MDRiYjZmZmNjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludHJpbnNpYy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludHJpbnNpYy5oCkBAIC01NCw2ICs1NCwyNSBAQCBlbnVtIEludHJpbnNpYyA6IHVpbnQ4X3Qg
ewogICAgIEFycmF5SW5kZXhPZkludHJpbnNpYywKICAgICBDaGFyQ29kZUF0SW50cmluc2ljLAog
ICAgIENoYXJBdEludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VGltZUludHJpbnNpYywK
KyAgICBEYXRlUHJvdG90eXBlR2V0RnVsbFllYXJJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlw
ZUdldFVUQ0Z1bGxZZWFySW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRNb250aEludHJp
bnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRDTW9udGhJbnRyaW5zaWMsCisgICAgRGF0ZVBy
b3RvdHlwZUdldERhdGVJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ0RhdGVJbnRy
aW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldERheUludHJpbnNpYywKKyAgICBEYXRlUHJvdG90
eXBlR2V0VVRDRGF5SW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNp
YywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRDSG91cnNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3Rv
dHlwZUdldE1pbnV0ZXNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ01pbnV0ZXNJ
bnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFNlY29uZHNJbnRyaW5zaWMsCisgICAgRGF0
ZVByb3RvdHlwZUdldFVUQ1NlY29uZHNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldE1p
bGxpc2Vjb25kc0ludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRDTWlsbGlzZWNvbmRz
SW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9mZnNldEludHJpbnNpYywK
KyAgICBEYXRlUHJvdG90eXBlR2V0WWVhckludHJpbnNpYywKICAgICBGcm9tQ2hhckNvZGVJbnRy
aW5zaWMsCiAgICAgUG93SW50cmluc2ljLAogICAgIEZsb29ySW50cmluc2ljLApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNwcAppbmRleCA3OTk2YThmOGFlNzBl
ZjBjNTRkZmJiMjhkMzA2YzE5ZmJjNWFhZjIxLi42YzhiMzc5NzY3ZjQ2MzEwY2YzNTNkYTQ4ZTQx
ZTNhNmI1ZTIyYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVN
YXRoLmNwcApAQCAtMjE5LDcgKzIxOSw3IEBAIHZvaWQgbXNUb0dyZWdvcmlhbkRhdGVUaW1lKFZN
JiB2bSwgZG91YmxlIG1zLCBXVEY6OlRpbWVUeXBlIG91dHB1dFRpbWVUeXBlLCBHcmVnCiAgICAg
dG0uc2V0TW9udGgobW9udGhGcm9tRGF5SW5ZZWFyKHRtLnllYXJEYXkoKSwgaXNMZWFwWWVhcih5
ZWFyKSkpOwogICAgIHRtLnNldFllYXIoeWVhcik7CiAgICAgdG0uc2V0SXNEU1QobG9jYWxUaW1l
LmlzRFNUKTsKLSAgICB0bS5zZXRVdGNPZmZzZXQobG9jYWxUaW1lLm9mZnNldCAvIFdURjo6bXNQ
ZXJTZWNvbmQpOworICAgIHRtLnNldFVUQ09mZnNldEluTWludXRlKGxvY2FsVGltZS5vZmZzZXQg
LyBXVEY6Om1zUGVyTWludXRlKTsKIH0KIAogZG91YmxlIHBhcnNlRGF0ZUZyb21OdWxsVGVybWlu
YXRlZENoYXJhY3RlcnMoVk0mIHZtLCBjb25zdCBjaGFyKiBkYXRlU3RyaW5nKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5jcHAKaW5kZXggZDFjNjczZTY1ZmE4ZjJhN2I4ZWJj
ZjRlNWYyMTRmZjk4YzI4YjdlNC4uMTZkYzliOTFmNGZjNDMxMjg2NDM2NDZlYzZkMDM5YWVjYWRm
N2MxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuY3BwCkBAIC05Niw2
ICs5Niw3IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OkpTVHlw
ZSB0eXBlKQogICAgIENBU0UoV2l0aFNjb3BlVHlwZSkKICAgICBDQVNFKE1vZHVsZU5hbWVzcGFj
ZU9iamVjdFR5cGUpCiAgICAgQ0FTRShSZWdFeHBPYmplY3RUeXBlKQorICAgIENBU0UoSlNEYXRl
VHlwZSkKICAgICBDQVNFKFByb3h5T2JqZWN0VHlwZSkKICAgICBDQVNFKEpTR2VuZXJhdG9yVHlw
ZSkKICAgICBDQVNFKEpTQXN5bmNHZW5lcmF0b3JUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1R5cGUuaAppbmRleCA2ZTk5Njg3NGVmMmUzYjdhYzQyYjUwYTE4NGVmNDhiNjJhZWQw
YjZjLi44MGJkMzRjYjYyMjFhYWZiZTk2YWYxMDQ2NTMyYTY3ZDc3MzJlYzdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaApAQCAtMTA3LDYgKzEwNyw3IEBAIGVudW0gSlNU
eXBlIDogdWludDhfdCB7CiAKICAgICBNb2R1bGVOYW1lc3BhY2VPYmplY3RUeXBlLAogICAgIFJl
Z0V4cE9iamVjdFR5cGUsCisgICAgSlNEYXRlVHlwZSwKICAgICBQcm94eU9iamVjdFR5cGUsCiAg
ICAgSlNHZW5lcmF0b3JUeXBlLAogICAgIEpTQXN5bmNHZW5lcmF0b3JUeXBlLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgK
aW5kZXggZjllMjgxMWZiYWM0ZTc3OTg1Zjc2NjU4MDA1MThhNTU2NDA0NDg1My4uN2UyZDFkZTcz
OTZhNzg0OTYyMDE4NDEyMjVhMzQ2MGUyODEyN2M2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvRGF0ZU1hdGguaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC0xMDYsMTYg
KzEwNiwxNiBAQCBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XSA9IHsgIk1vbiIsICJU
dWUiLCAiV2VkIiwgIlRodSIsICJGcmkiLCAiU2F0IiwgIgogY29uc3QgY2hhciogY29uc3QgbW9u
dGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwgIkFwciIsICJNYXkiLCAiSnVuIiwg
Ikp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAiRGVjIiB9OwogY29uc3QgY2hhciog
Y29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5IiwgIkZlYnJ1YXJ5IiwgIk1hcmNo
IiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAiQXVndXN0IiwgIlNlcHRlbWJlciIs
ICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9OwogCi1jb25zdCBkb3VibGUgaG91
cnNQZXJEYXkgPSAyNC4wOwotY29uc3QgZG91YmxlIG1pbnV0ZXNQZXJIb3VyID0gNjAuMDsKLWNv
bnN0IGRvdWJsZSBzZWNvbmRzUGVyTWludXRlID0gNjAuMDsKLWNvbnN0IGRvdWJsZSBtc1BlclNl
Y29uZCA9IDEwMDAuMDsKLWNvbnN0IGRvdWJsZSBtc1Blck1vbnRoID0gMjU5MjAwMDAwMC4wOwot
Y29uc3QgZG91YmxlIHNlY29uZHNQZXJIb3VyID0gc2Vjb25kc1Blck1pbnV0ZSAqIG1pbnV0ZXNQ
ZXJIb3VyOwotY29uc3QgZG91YmxlIHNlY29uZHNQZXJEYXkgPSBzZWNvbmRzUGVySG91ciAqIGhv
dXJzUGVyRGF5OwotY29uc3QgZG91YmxlIG1zUGVyTWludXRlID0gbXNQZXJTZWNvbmQgKiBzZWNv
bmRzUGVyTWludXRlOwotY29uc3QgZG91YmxlIG1zUGVySG91ciA9IG1zUGVyU2Vjb25kICogc2Vj
b25kc1BlckhvdXI7Ci1jb25zdCBkb3VibGUgbXNQZXJEYXkgPSBtc1BlclNlY29uZCAqIHNlY29u
ZHNQZXJEYXk7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBob3Vyc1BlckRheSA9IDI0LjA7Citz
dGF0aWMgY29uc3RleHByIGRvdWJsZSBtaW51dGVzUGVySG91ciA9IDYwLjA7CitzdGF0aWMgY29u
c3RleHByIGRvdWJsZSBzZWNvbmRzUGVyTWludXRlID0gNjAuMDsKK3N0YXRpYyBjb25zdGV4cHIg
ZG91YmxlIG1zUGVyU2Vjb25kID0gMTAwMC4wOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbXNQ
ZXJNb250aCA9IDI1OTIwMDAwMDAuMDsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIHNlY29uZHNQ
ZXJIb3VyID0gc2Vjb25kc1Blck1pbnV0ZSAqIG1pbnV0ZXNQZXJIb3VyOworc3RhdGljIGNvbnN0
ZXhwciBkb3VibGUgc2Vjb25kc1BlckRheSA9IHNlY29uZHNQZXJIb3VyICogaG91cnNQZXJEYXk7
CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBtc1Blck1pbnV0ZSA9IG1zUGVyU2Vjb25kICogc2Vj
b25kc1Blck1pbnV0ZTsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIG1zUGVySG91ciA9IG1zUGVy
U2Vjb25kICogc2Vjb25kc1BlckhvdXI7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBtc1BlckRh
eSA9IG1zUGVyU2Vjb25kICogc2Vjb25kc1BlckRheTsKIAogV1RGX0VYUE9SVF9QUklWQVRFIGJv
b2wgaXNMZWFwWWVhcihpbnQgeWVhcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0dy
ZWdvcmlhbkRhdGVUaW1lLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0dyZWdvcmlhbkRhdGVUaW1lLmNw
cAppbmRleCBhM2M0NGI5MjFhNzA4MzJjMjQ1NzhlZjRiOTA0ZGEyMTIyNjgyZjY0Li4zMjE0ODg3
ZWYzZmY0YzkyMmNhYjUxNTkwMTYyMzc1MjYyMzA5NDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9HcmVnb3JpYW5EYXRlVGltZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvR3JlZ29yaWFu
RGF0ZVRpbWUuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgR3JlZ29yaWFuRGF0ZVRpbWU6OnNl
dFRvQ3VycmVudExvY2FsVGltZSgpCiAgICAgbV9ob3VyID0gc3lzdGVtVGltZS53SG91cjsKICAg
ICBtX21pbnV0ZSA9IHN5c3RlbVRpbWUud01pbnV0ZTsKICAgICBtX3NlY29uZCA9IHN5c3RlbVRp
bWUud1NlY29uZDsKLSAgICBtX3V0Y09mZnNldCA9IC1iaWFzICogc2Vjb25kc1Blck1pbnV0ZTsK
KyAgICBtX3V0Y09mZnNldEluTWludXRlID0gLWJpYXM7CiAgICAgbV9pc0RTVCA9IHRpbWVab25l
SWQgPT0gVElNRV9aT05FX0lEX0RBWUxJR0hUID8gMSA6IDA7CiAjZWxzZQogICAgIHRtIGxvY2Fs
VE07CkBAIC04Myw5ICs4Myw5IEBAIHZvaWQgR3JlZ29yaWFuRGF0ZVRpbWU6OnNldFRvQ3VycmVu
dExvY2FsVGltZSgpCiAgICAgbV9zZWNvbmQgPSBsb2NhbFRNLnRtX3NlYzsKICAgICBtX2lzRFNU
ID0gbG9jYWxUTS50bV9pc2RzdDsKICNpZiBIQVZFKFRNX0dNVE9GRikKLSAgICBtX3V0Y09mZnNl
dCA9IGxvY2FsVE0udG1fZ210b2ZmOworICAgIG1fdXRjT2Zmc2V0SW5NaW51dGUgPSBsb2NhbFRN
LnRtX2dtdG9mZiAvIHNlY29uZHNQZXJNaW51dGU7CiAjZWxzZQotICAgIG1fdXRjT2Zmc2V0ID0g
Y2FsY3VsYXRlTG9jYWxUaW1lT2Zmc2V0KGxvY2FsVGltZSAqIG1zUGVyU2Vjb25kKS5vZmZzZXQg
LyBtc1BlclNlY29uZDsKKyAgICBtX3V0Y09mZnNldEluTWludXRlID0gY2FsY3VsYXRlTG9jYWxU
aW1lT2Zmc2V0KGxvY2FsVGltZSAqIG1zUGVyU2Vjb25kKS5vZmZzZXQgLyBtc1Blck1pbnV0ZTsK
ICNlbmRpZgogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9HcmVnb3JpYW5E
YXRlVGltZS5oIGIvU291cmNlL1dURi93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuaAppbmRleCAyNWRk
MTVjYWUwNGJmODI3ZmUxZmZjZTk1Y2U1NzFmODczNjU3NTdmLi4wMmMyZWM3Y2YzMjFhYTlkNGI3
ZmYwOWFhYjkwYTU3YWY1YWYwNjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9HcmVnb3Jp
YW5EYXRlVGltZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0dyZWdvcmlhbkRhdGVUaW1lLmgKQEAg
LTI2LDI3ICsyNiwxNiBAQAogCiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8dGltZS5o
PgorI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKIGNs
YXNzIEdyZWdvcmlhbkRhdGVUaW1lIGZpbmFsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHcmVnb3JpYW5EYXRlVGltZSk7CiBwdWJsaWM6
Ci0gICAgR3JlZ29yaWFuRGF0ZVRpbWUoKQotICAgICAgICA6IG1feWVhcigwKQotICAgICAgICAs
IG1fbW9udGgoMCkKLSAgICAgICAgLCBtX3llYXJEYXkoMCkKLSAgICAgICAgLCBtX21vbnRoRGF5
KDApCi0gICAgICAgICwgbV93ZWVrRGF5KDApCi0gICAgICAgICwgbV9ob3VyKDApCi0gICAgICAg
ICwgbV9taW51dGUoMCkKLSAgICAgICAgLCBtX3NlY29uZCgwKQotICAgICAgICAsIG1fdXRjT2Zm
c2V0KDApCi0gICAgICAgICwgbV9pc0RTVCgwKQotICAgIHsKLSAgICB9CisgICAgR3JlZ29yaWFu
RGF0ZVRpbWUoKSA9IGRlZmF1bHQ7CiAKICAgICBpbmxpbmUgaW50IHllYXIoKSBjb25zdCB7IHJl
dHVybiBtX3llYXI7IH0KICAgICBpbmxpbmUgaW50IG1vbnRoKCkgY29uc3QgeyByZXR1cm4gbV9t
b250aDsgfQpAQCAtNTYsNyArNDUsNyBAQCBjbGFzcyBHcmVnb3JpYW5EYXRlVGltZSBmaW5hbCB7
CiAgICAgaW5saW5lIGludCBob3VyKCkgY29uc3QgeyByZXR1cm4gbV9ob3VyOyB9CiAgICAgaW5s
aW5lIGludCBtaW51dGUoKSBjb25zdCB7IHJldHVybiBtX21pbnV0ZTsgfQogICAgIGlubGluZSBp
bnQgc2Vjb25kKCkgY29uc3QgeyByZXR1cm4gbV9zZWNvbmQ7IH0KLSAgICBpbmxpbmUgaW50IHV0
Y09mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdXRjT2Zmc2V0OyB9CisgICAgaW5saW5lIGludCB1
dGNPZmZzZXRJbk1pbnV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXRjT2Zmc2V0SW5NaW51dGU7IH0K
ICAgICBpbmxpbmUgaW50IGlzRFNUKCkgY29uc3QgeyByZXR1cm4gbV9pc0RTVDsgfQogCiAgICAg
aW5saW5lIHZvaWQgc2V0WWVhcihpbnQgeWVhcikgeyBtX3llYXIgPSB5ZWFyOyB9CkBAIC02Nyw5
ICs1NiwyMCBAQCBjbGFzcyBHcmVnb3JpYW5EYXRlVGltZSBmaW5hbCB7CiAgICAgaW5saW5lIHZv
aWQgc2V0SG91cihpbnQgaG91cikgeyBtX2hvdXIgPSBob3VyOyB9CiAgICAgaW5saW5lIHZvaWQg
c2V0TWludXRlKGludCBtaW51dGUpIHsgbV9taW51dGUgPSBtaW51dGU7IH0KICAgICBpbmxpbmUg
dm9pZCBzZXRTZWNvbmQoaW50IHNlY29uZCkgeyBtX3NlY29uZCA9IHNlY29uZDsgfQotICAgIGlu
bGluZSB2b2lkIHNldFV0Y09mZnNldChpbnQgdXRjT2Zmc2V0KSB7IG1fdXRjT2Zmc2V0ID0gdXRj
T2Zmc2V0OyB9CisgICAgaW5saW5lIHZvaWQgc2V0VVRDT2Zmc2V0SW5NaW51dGUoaW50IHV0Y09m
ZnNldEluTWludXRlKSB7IG1fdXRjT2Zmc2V0SW5NaW51dGUgPSB1dGNPZmZzZXRJbk1pbnV0ZTsg
fQogICAgIGlubGluZSB2b2lkIHNldElzRFNUKGludCBpc0RTVCkgeyBtX2lzRFNUID0gaXNEU1Q7
IH0KIAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZZZWFyKCkgeyByZXR1cm4gT0JKRUNU
X09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX3llYXIpOyB9CisgICAgc3RhdGljIHB0cmRp
ZmZfdCBvZmZzZXRPZk1vbnRoKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRh
dGVUaW1lLCBtX21vbnRoKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZZZWFyRGF5
KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX3llYXJEYXkp
OyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk1vbnRoRGF5KCkgeyByZXR1cm4gT0JK
RUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX21vbnRoRGF5KTsgfQorICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXZWVrRGF5KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdy
ZWdvcmlhbkRhdGVUaW1lLCBtX3dlZWtEYXkpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZz
ZXRPZkhvdXIoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoR3JlZ29yaWFuRGF0ZVRpbWUsIG1f
aG91cik7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mTWludXRlKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX21pbnV0ZSk7IH0KKyAgICBzdGF0
aWMgcHRyZGlmZl90IG9mZnNldE9mU2Vjb25kKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdy
ZWdvcmlhbkRhdGVUaW1lLCBtX3NlY29uZCk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNl
dE9mVVRDT2Zmc2V0SW5NaW51dGUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoR3JlZ29yaWFu
RGF0ZVRpbWUsIG1fdXRjT2Zmc2V0SW5NaW51dGUpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBv
ZmZzZXRPZklzRFNUKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1l
LCBtX2lzRFNUKTsgfQorCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0VG9DdXJyZW50
TG9jYWxUaW1lKCk7CiAKICAgICBvcGVyYXRvciB0bSgpIGNvbnN0CkBAIC04OCwzNyArODgsMjMg
QEAgY2xhc3MgR3JlZ29yaWFuRGF0ZVRpbWUgZmluYWwgewogICAgICAgICByZXQudG1faXNkc3Qg
PSBtX2lzRFNUOwogCiAjaWYgSEFWRShUTV9HTVRPRkYpCi0gICAgICAgIHJldC50bV9nbXRvZmYg
PSBzdGF0aWNfY2FzdDxsb25nPihtX3V0Y09mZnNldCk7CisgICAgICAgIHJldC50bV9nbXRvZmYg
PSBzdGF0aWNfY2FzdDxsb25nPihtX3V0Y09mZnNldEluTWludXRlKSAqIHN0YXRpY19jYXN0PGxv
bmc+KHNlY29uZHNQZXJNaW51dGUpOwogI2VuZGlmCiAKICAgICAgICAgcmV0dXJuIHJldDsKICAg
ICB9CiAKLSAgICB2b2lkIGNvcHlGcm9tKGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lJiBvdGhlcikK
LSAgICB7Ci0gICAgICAgIG1feWVhciA9IG90aGVyLm1feWVhcjsKLSAgICAgICAgbV9tb250aCA9
IG90aGVyLm1fbW9udGg7Ci0gICAgICAgIG1feWVhckRheSA9IG90aGVyLm1feWVhckRheTsKLSAg
ICAgICAgbV9tb250aERheSA9IG90aGVyLm1fbW9udGhEYXk7Ci0gICAgICAgIG1fd2Vla0RheSA9
IG90aGVyLm1fd2Vla0RheTsKLSAgICAgICAgbV9ob3VyID0gb3RoZXIubV9ob3VyOwotICAgICAg
ICBtX21pbnV0ZSA9IG90aGVyLm1fbWludXRlOwotICAgICAgICBtX3NlY29uZCA9IG90aGVyLm1f
c2Vjb25kOwotICAgICAgICBtX3V0Y09mZnNldCA9IG90aGVyLm1fdXRjT2Zmc2V0OwotICAgICAg
ICBtX2lzRFNUID0gb3RoZXIubV9pc0RTVDsKLSAgICB9Ci0KIHByaXZhdGU6Ci0gICAgaW50IG1f
eWVhcjsKLSAgICBpbnQgbV9tb250aDsKLSAgICBpbnQgbV95ZWFyRGF5OwotICAgIGludCBtX21v
bnRoRGF5OwotICAgIGludCBtX3dlZWtEYXk7Ci0gICAgaW50IG1faG91cjsKLSAgICBpbnQgbV9t
aW51dGU7Ci0gICAgaW50IG1fc2Vjb25kOwotICAgIGludCBtX3V0Y09mZnNldDsKLSAgICBpbnQg
bV9pc0RTVDsKKyAgICBpbnQgbV95ZWFyIHsgMCB9OworICAgIGludCBtX21vbnRoIHsgMCB9Owor
ICAgIGludCBtX3llYXJEYXkgeyAwIH07CisgICAgaW50IG1fbW9udGhEYXkgeyAwIH07CisgICAg
aW50IG1fd2Vla0RheSB7IDAgfTsKKyAgICBpbnQgbV9ob3VyIHsgMCB9OworICAgIGludCBtX21p
bnV0ZSB7IDAgfTsKKyAgICBpbnQgbV9zZWNvbmQgeyAwIH07CisgICAgaW50IG1fdXRjT2Zmc2V0
SW5NaW51dGUgeyAwIH07CisgICAgaW50IG1faXNEU1QgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1s
L01IVE1MQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9N
SFRNTEFyY2hpdmUuY3BwCmluZGV4IGM5OTdiMzE4NjdkMzgwZDI4OTBjZWUyYmY1NTFkYjlkNDcx
MDhkMjUuLjEwNmE3ZjhmOWI0MWUwNDM4YTAzNjc0NWJhOWNkN2FmZGFlZThmZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNw
cApAQCAtMTQxLDcgKzE0MSw3IEBAIFJlZjxTaGFyZWRCdWZmZXI+IE1IVE1MQXJjaGl2ZTo6Z2Vu
ZXJhdGVNSFRNTERhdGEoUGFnZSogcGFnZSkKIAogICAgIEdyZWdvcmlhbkRhdGVUaW1lIG5vdzsK
ICAgICBub3cuc2V0VG9DdXJyZW50TG9jYWxUaW1lKCk7Ci0gICAgU3RyaW5nIGRhdGVTdHJpbmcg
PSBtYWtlUkZDMjgyMkRhdGVTdHJpbmcobm93LndlZWtEYXkoKSwgbm93Lm1vbnRoRGF5KCksIG5v
dy5tb250aCgpLCBub3cueWVhcigpLCBub3cuaG91cigpLCBub3cubWludXRlKCksIG5vdy5zZWNv
bmQoKSwgbm93LnV0Y09mZnNldCgpIC8gNjApOworICAgIFN0cmluZyBkYXRlU3RyaW5nID0gbWFr
ZVJGQzI4MjJEYXRlU3RyaW5nKG5vdy53ZWVrRGF5KCksIG5vdy5tb250aERheSgpLCBub3cubW9u
dGgoKSwgbm93LnllYXIoKSwgbm93LmhvdXIoKSwgbm93Lm1pbnV0ZSgpLCBub3cuc2Vjb25kKCks
IG5vdy51dGNPZmZzZXRJbk1pbnV0ZSgpKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVp
bGRlcjsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgiRnJvbTogPFNhdmVkIGJ5IFdlYktpdD5c
clxuIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDY3MGNjNWMyNjYyMDIyNDFhMTllNWE1ZTAzOTY4NzVhZmExNWE3MmMuLmEyYTM0ZTY3
NzFmNjc0ZjNkMmZjNDE5Njg3ZWRiYjdhMDdmNjdjODEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTAt
MjggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBE
YXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBpbnRyaW5zaWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE4NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LW1pbGxpc2Vjb25k
cy1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXNlY29uZHMtaml0LmpzOiBBZGRlZC4KKyAgICAgICAg
KHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC10
aW1lLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdXRjLW1pbGxpc2Vjb25kcy1qaXQuanM6IEFkZGVk
LgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisKIDIwMTktMTAtMjUgIFJv
c3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIHRlc3QyNjIt
cnVubmVyIHNob3VsZCBiZSBhYmxlIHRvIHBhc3MgSlNDIGEgZmVhdHVyZSBmbGFnCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1taWxsaXNlY29uZHMtaml0LmpzIGIvSlNUZXN0
cy9zdHJlc3MvZGF0ZS1nZXQtbWlsbGlzZWNvbmRzLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wM2VlZDA4
OTkzY2FlMTZiYTExOGM3MmIwZTc3ZTRkOWRmMzI1MjVhCi0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvZGF0ZS1nZXQtbWlsbGlzZWNvbmRzLWppdC5qcwpAQCAtMCwwICsxLDE3IEBA
CitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0
dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0TWls
bGlzZWNvbmRzKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgp
OwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRN
aWxsaXNlY29uZHMoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91
bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZh
bGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtc2Vj
b25kcy1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1zZWNvbmRzLWppdC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZjAxZjgzM2EzN2JhYWFhOTEzMmQxZTA1ODZjNTY0NTk3ODNjZjIwCi0tLSAvZGV2
L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtc2Vjb25kcy1qaXQuanMKQEAgLTAs
MCArMSwxNyBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlm
IChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1
ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBk
YXRlLmdldFNlY29uZHMoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBE
YXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRl
LmdldFNlY29uZHMoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91
bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZh
bGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdGlt
ZS1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC10aW1lLWppdC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iYjJjOGYwZmY4ZGIxNmJlMWQ4YzIxYzY3ZjliMDAyOGZiMzE3MzY0Ci0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdGltZS1qaXQuanMKQEAgLTAsMCArMSwxNyBA
QAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwg
IT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFj
dHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldFRp
bWUoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIg
aW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFRpbWUoKTsK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUp
LCBleHBlY3RlZCk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOwor
fQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1pbGxpc2Vjb25kcy1q
aXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtbWlsbGlzZWNvbmRzLWppdC5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mYTJjN2NjNTU4NDI5ZmY4YWQ5OTU3ZDQ2OThhOGNhOGUyZmNmMjAzCi0tLSAv
ZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1pbGxpc2Vjb25kcy1q
aXQuanMKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgewor
ICAgIHJldHVybiBkYXRlLmdldFVUQ01pbGxpc2Vjb25kcygpOworfQorbm9JbmxpbmUodGVzdCk7
CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsK
K3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0VVRDTWlsbGlzZWNvbmRzKCk7Citmb3IgKHZhciBpID0g
MDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOwor
ICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382048</attachid>
            <date>2019-10-28 00:55:52 -0700</date>
            <delta_ts>2019-10-28 20:36:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202187-20191028005551.patch</filename>
            <type>text/plain</type>
            <size>124767</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZjQ1OGU0MzM2NGQ1ZjZjMDJkN2MzOTk3ODYzNjVhY2NmOTU0NmQxLi41OWNhNzQ1YzEyY2RhZWU2
ZjJlOGFlOTRlYzE1ZGYyNzA1MGEyM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTMgQEAKKzIwMTktMTAtMjggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBEYXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBpbnRyaW5zaWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE4Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYnl0ZWNv
ZGUvU3BlY3VsYXRlZFR5cGUuY3BwOgorICAgICAgICAoSlNDOjpkdW1wU3BlY3VsYXRpb24pOgor
ICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8pOgorICAgICAgICAoSlNDOjpz
cGVjdWxhdGlvbkZyb21KU1R5cGUpOgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21TdHJp
bmcpOgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgICogZGZn
L0RGR0Fic3RyYWN0SGVhcC5oOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50
cmluc2ljQ2FsbCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRm
Zy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmR1bXApOgorICAgICAg
ICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFs
KToKKyAgICAgICAgKiBkZmcvREZHSGVhcExvY2F0aW9uLmg6CisgICAgICAgICogZGZnL0RGR05v
ZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNJbnRyaW5zaWMpOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6OmludHJpbnNpYyk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFz
SGVhcFByZWRpY3Rpb24pOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAq
IGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgor
ICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVj
dXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRGF0ZU9iamVjdCk6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
RGF0ZUdldCk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAoV1RGOjpw
cmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAgICAgICAoSlND
OjpERkc6OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2VsbCk6CisgICAg
ICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwOgorICAgICAgICAqIGZ0bC9G
VExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29t
cGlsZURhdGVHZXQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dE
YXRlT2JqZWN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3Vs
YXRlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlRGF0
ZU9iamVjdCk6CisgICAgICAgICogcnVudGltZS9EYXRlQ29udmVyc2lvbi5jcHA6CisgICAgICAg
IChKU0M6OmZvcm1hdERhdGVUaW1lKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZS5j
cHA6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRp
bWUgY29uc3QpOgorICAgICAgICAoSlNDOjpEYXRlSW5zdGFuY2U6OmNhbGN1bGF0ZUdyZWdvcmlh
bkRhdGVUaW1lVVRDIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlQ2FjaGUuaDoKKyAgICAgICAgKEpTQzo6RGF0
ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKToKKyAg
ICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRl
VGltZSk6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFu
RGF0ZVRpbWVVVENDYWNoZWRGb3JNUyk6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZURhdGE6
Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMpOgorICAgICAgICAoSlNDOjpEYXRl
SW5zdGFuY2VEYXRhOjpEYXRlSW5zdGFuY2VEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0RhdGVQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpmb3JtYXRMb2NhbGVEYXRlKToK
KyAgICAgICAgKEpTQzo6Zm9ybWF0ZURhdGVJbnN0YW5jZSk6CisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNUb0lTT1N0cmluZyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRGdWxs
WWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhcik6CisgICAg
ICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXRVVENNb250aCk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXREYXRlKToK
KyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUpOgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jR2V0RGF5KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0Rh
eSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRIb3Vycyk6CisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRVVENIb3Vycyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNH
ZXRNaW51dGVzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0ZXMpOgor
ICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRh
dGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dl
dE1pbGxpU2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNl
Y29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQpOgor
ICAgICAgICAoSlNDOjpzZXROZXdWYWx1ZUZyb21UaW1lQXJncyk6CisgICAgICAgIChKU0M6OnNl
dE5ld1ZhbHVlRnJvbURhdGVBcmdzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1NldFll
YXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0WWVhcik6CisgICAgICAgICogcnVu
dGltZS9JbnRyaW5zaWMuY3BwOgorICAgICAgICAoSlNDOjppbnRyaW5zaWNOYW1lKToKKyAgICAg
ICAgKiBydW50aW1lL0ludHJpbnNpYy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRlTWF0aC5j
cHA6CisgICAgICAgIChKU0M6Om1zVG9HcmVnb3JpYW5EYXRlVGltZSk6CisgICAgICAgICogcnVu
dGltZS9KU1R5cGUuY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAg
KiBydW50aW1lL0pTVHlwZS5oOgorCiAyMDE5LTEwLTI2ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdh
bGlhLmNvbT4KIAogICAgICAgICBQdXQgT2Zmc2NyZWVuQ2FudmFzIGJlaGluZCBhIGJ1aWxkIGZs
YWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggNTBhYmZmODc2NzFjNzI1NzA3Nzc0MmNkOGM0ODgwM2VlNjYzZGY4My4uMTc0Yzk2
OTUyNzgyNDNlYzY2OWY3OTQ4NWIyNzA2ZGRjMTJlZGUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0xMC0yOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFtKU0NdIERhdGUgZnVuY3Rpb25zIHNob3VsZCBoYXZlIGludHJpbnNpYworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTg3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRGF0ZU1hdGguaDoKKyAg
ICAgICAgKiB3dGYvR3JlZ29yaWFuRGF0ZVRpbWUuY3BwOgorICAgICAgICAoV1RGOjpHcmVnb3Jp
YW5EYXRlVGltZTo6c2V0VG9DdXJyZW50TG9jYWxUaW1lKToKKyAgICAgICAgKiB3dGYvR3JlZ29y
aWFuRGF0ZVRpbWUuaDoKKwogMjAxOS0xMC0yNiAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUHV0IE9mZnNjcmVlbkNhbnZhcyBiZWhpbmQgYSBidWlsZCBmbGFnCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggN2Q5MDQ0YTRlMTU5YmM0ZTNmOTczZjU1N2I4MjdhNjAyOTVmMDg1ZC4uODlj
MTRkODdiZTE1MjY0MjJkNmRiZDg3MDM2ZjU5MmJhZGU2Y2ViMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDE5LTEwLTI4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0pTQ10gRGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGhhdmUgaW50cmluc2ljCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxODcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9h
cmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNSFRNTEFy
Y2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRhKToKKwogMjAxOS0xMC0yNiAgQ2hyaXMgTG9yZCAgPGNs
b3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAgUHV0IE9mZnNjcmVlbkNhbnZhcyBiZWhpbmQgYSBi
dWlsZCBmbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3Bl
Y3VsYXRlZFR5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0
ZWRUeXBlLmNwcAppbmRleCBhMzI1YjJjODFiYzQ3Y2YzMWYyNDI5ZTkxMGZhNDNjYWM3MGQ5NzVi
Li5mZmYxZDFkOWY2NjZjMWY4MjRjOGNlNjJjNTlmNWUxZTkzMzYyMTlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5o
IgogCisjaW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRz
LmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTQmlnSW50LmgiCkBAIC0xNzQs
NiArMTc1LDExIEBAIHZvaWQgZHVtcFNwZWN1bGF0aW9uKFByaW50U3RyZWFtJiBvdXRTdHJlYW0s
IFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IGlzVG9wID0gZmFsc2U7CiAKKyAgICAgICAgICAgIGlmICh2YWx1ZSAmIFNwZWNEYXRlT2JqZWN0
KQorICAgICAgICAgICAgICAgIHN0ck91dC5wcmludCgiRGF0ZU9iamVjdCIpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CisKICAgICAgICAgICAgIGlm
ICh2YWx1ZSAmIFNwZWNQcm9taXNlT2JqZWN0KQogICAgICAgICAgICAgICAgIHN0ck91dC5wcmlu
dCgiUHJvbWlzZU9iamVjdCIpOwogICAgICAgICAgICAgZWxzZQpAQCAtNDQ1LDYgKzQ1MSw5IEBA
IFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyhjb25zdCBDbGFzc0luZm8q
IGNsYXNzSW5mbykKICAgICBpZiAoY2xhc3NJbmZvID09IFJlZ0V4cE9iamVjdDo6aW5mbygpKQog
ICAgICAgICByZXR1cm4gU3BlY1JlZ0V4cE9iamVjdDsKIAorICAgIGlmIChjbGFzc0luZm8gPT0g
RGF0ZUluc3RhbmNlOjppbmZvKCkpCisgICAgICAgIHJldHVybiBTcGVjRGF0ZU9iamVjdDsKKwog
ICAgIGlmIChjbGFzc0luZm8gPT0gSlNNYXA6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNN
YXBPYmplY3Q7CiAKQEAgLTU5NCw2ICs2MDMsOCBAQCBPcHRpb25hbDxTcGVjdWxhdGVkVHlwZT4g
c3BlY3VsYXRpb25Gcm9tSlNUeXBlKEpTVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gU3BlY0Rl
cml2ZWRBcnJheTsKICAgICBjYXNlIFJlZ0V4cE9iamVjdFR5cGU6CiAgICAgICAgIHJldHVybiBT
cGVjUmVnRXhwT2JqZWN0OworICAgIGNhc2UgSlNEYXRlVHlwZToKKyAgICAgICAgcmV0dXJuIFNw
ZWNEYXRlT2JqZWN0OwogICAgIGNhc2UgUHJveHlPYmplY3RUeXBlOgogICAgICAgICByZXR1cm4g
U3BlY1Byb3h5T2JqZWN0OwogICAgIGNhc2UgSlNQcm9taXNlVHlwZToKQEAgLTgxNCw2ICs4MjUs
OCBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21TdHJpbmcoY29uc3QgY2hhciogc3Bl
Y3VsYXRpb24pCiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nT2JqZWN0OwogICAgIGlmICghc3Ry
bmNtcChzcGVjdWxhdGlvbiwgIlNwZWNSZWdFeHBPYmplY3QiLCBzdHJsZW4oIlNwZWNSZWdFeHBP
YmplY3QiKSkpCiAgICAgICAgIHJldHVybiBTcGVjUmVnRXhwT2JqZWN0OworICAgIGlmICghc3Ry
bmNtcChzcGVjdWxhdGlvbiwgIlNwZWNEYXRlT2JqZWN0Iiwgc3RybGVuKCJTcGVjRGF0ZU9iamVj
dCIpKSkKKyAgICAgICAgcmV0dXJuIFNwZWNEYXRlT2JqZWN0OwogICAgIGlmICghc3RybmNtcChz
cGVjdWxhdGlvbiwgIlNwZWNQcm9taXNlT2JqZWN0Iiwgc3RybGVuKCJTcGVjUHJvbWlzZU9iamVj
dCIpKSkKICAgICAgICAgcmV0dXJuIFNwZWNQcm9taXNlT2JqZWN0OwogICAgIGlmICghc3RybmNt
cChzcGVjdWxhdGlvbiwgIlNwZWNNYXBPYmplY3QiLCBzdHJsZW4oIlNwZWNNYXBPYmplY3QiKSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCmlu
ZGV4IGIxMTUzYjQ3ZDJmZDNhNTllZTNmY2ZmYjBmM2JiZjM5YjAxNTE5NWIuLmExMTIzOGMxOThh
MzcyOGFjYTAyZWU5NTMzMTdkMDkyZjEwYjM3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCkBAIC01OCwzMiArNTgsMzMgQEAgc3RhdGlj
IGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRGlyZWN0QXJndW1lbnRzICAgICAgICAgICAg
ICAgICAgID0gMXVsbCA8PAogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU2Nv
cGVkQXJndW1lbnRzICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxNDsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgU2NvcGVkQXJndW1lbnRzIG9iamVjdC4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY1N0cmluZ09iamVjdCAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MTU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN0cmluZ09iamVjdC4KIHN0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY1JlZ0V4cE9iamVjdCAgICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMTY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFJlZ0V4cE9iamVjdCAoYW5kIG5vdCBhbnkg
c3ViY2xhc3Mgb2YgUmVnRXhwT2JqZWN0KS4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY1Byb21pc2VPYmplY3QgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTc7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIFByb21pc2Ugb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nl
cy4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY01hcE9iamVjdCAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE1hcCBv
YmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxh
dGVkVHlwZSBTcGVjU2V0T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAx
OTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNz
ZXMuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNXZWFrTWFwT2JqZWN0ICAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFr
TWFwIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNXZWFrU2V0T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFrU2V0IG9iamVjdCBvciBvbmUgb2YgaXRz
IHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9i
amVjdCAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIyOyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBQcm94eSBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0
ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRGVyaXZlZEFycmF5ICAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGVyaXZlZEFycmF5IG9iamVjdC4K
LXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdE90aGVyICAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBvYmplY3Qg
YnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBKU0Z1bmN0aW9uLgotc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdz
IGFuIGlkZW50aWZpZXIuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJp
bmdWYXIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZpZXIuCitzdGF0aWMgY29u
c3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEYXRlT2JqZWN0ICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDE3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBEYXRlIG9iamVjdCBvciBvbmUg
b2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQ
cm9taXNlT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBQcm9taXNlIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDE5OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9y
IG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjA7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3Rh
dGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha01hcE9iamVjdCAgICAgICAgICAg
ICAgICAgICAgID0gMXVsbCA8PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha01hcCBvYmpl
Y3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjV2Vha1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMjsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha1NldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFz
c2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAg
ICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJv
eHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0Rlcml2ZWRBcnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERlcml2ZWRBcnJheSBvYmplY3QuCitzdGF0aWMg
Y29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICAgICAgICAgICAg
ICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3Qg
SlNGaW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KK3N0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMjY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVu
dGlmaWVyLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
SlNTdHJpbmcsIGFuZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgogc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3Bl
Y1N0cmluZ0lkZW50IHwgU3BlY1N0cmluZ1ZhcjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJp
bmcuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1i
b2wuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsT3RoZXIgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Nl
bGwgYnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpT
U3RyaW5nLCBCaWdJbnQsIG9yIFN5bWJvbC4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjk7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAgb3IgMS4KLXN0YXRpYyBjb25z
dGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICAgICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90
aGVyIHRoYW4gMCBvciAxLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3lt
Ym9sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgU3ltYm9sLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQ2Vs
bE90aGVyICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5p
dGVseSBub3QgYSBKU1N0cmluZywgQmlnSW50LCBvciBTeW1ib2wuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDMwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEu
CitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25Cb29sSW50MzIgICAgICAg
ICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMxOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIg
d2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY0ludDMyT25seSAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNCb29sSW50
MzIgfCBTcGVjTm9uQm9vbEludDMyOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIuCiAKLXN0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyQXNJbnQ1MiAgICAgICAgICAg
ICAgICAgICAgICA9IDF1bGwgPDwgMzE7IC8vIEl0J3MgYW4gSW50NTIgYW5kIGl0IGNhbiBmaXQg
aW4gYW4gaW50MzIuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnQz
MkFzSW50NTIgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGFuIEludDUy
IGFuZCBpdCBjYW4ndCBmaXQgaW4gYW4gaW50MzIuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNJbnQzMkFzSW50NTIgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMy
OyAvLyBJdCdzIGFuIEludDUyIGFuZCBpdCBjYW4gZml0IGluIGFuIGludDMyLgorc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50MzJBc0ludDUyICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAzMzsgLy8gSXQncyBhbiBJbnQ1MiBhbmQgaXQgY2FuJ3QgZml0IGluIGFu
IGludDMyLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50NTJBbnkgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDMyQXNJbnQ1MiB8IFNwZWNOb25JbnQzMkFz
SW50NTI7IC8vIEl0J3MgYW55IGtpbmQgb2YgSW50NTIuCiAKLXN0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwgMzM7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBkb3Vi
bGUuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0RvdWJsZSAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgbm90IGFu
IEludDUyIGJ1dCBpdCdzIGEgcmVhbCBudW1iZXIgYW5kIGl0J3MgYSBkb3VibGUuCitzdGF0aWMg
Y29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgICAgICAgICAg
ICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3Mg
aW5zaWRlIGEgZG91YmxlLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9u
SW50QXNEb3VibGUgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNTsgLy8gSXQncyBkZWZp
bml0ZWx5IG5vdCBhbiBJbnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91
YmxlLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAg
ICAgICAgICAgICAgICAgICAgID0gU3BlY05vbkludEFzRG91YmxlIHwgU3BlY0FueUludEFzRG91
YmxlOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBub24tTmFOIGRvdWJsZS4KLXN0YXRpYyBjb25zdGV4
cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVB1cmVOYU4gICAgICAgICAgICAgICAgICAgICA9
IDF1bGwgPDwgMzU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHNhZmUgdG8gdGFn
IChpLmUuIHB1cmUpLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91Ymxl
SW1wdXJlTmFOICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUHVyZU5hTiAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FmZSB0
byB0YWcgKGkuZS4gcHVyZSkuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNE
b3VibGVJbXB1cmVOYU4gICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM3OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBOYU4gdGhhdCBpcyB1bnNhZmUgdG8gdGFnIChpLmUuIGltcHVyZSkuCiBzdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVOYU4gICAgICAgICAgICAgICAg
ICAgICAgICAgPSBTcGVjRG91YmxlUHVyZU5hTiB8IFNwZWNEb3VibGVJbXB1cmVOYU47IC8vIEl0
J3MgZGVmaW5pdGVseSBzb21lIGtpbmQgb2YgTmFOLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxh
dGVkVHlwZSBTcGVjQnl0ZWNvZGVEb3VibGUgICAgICAgICAgICAgICAgICAgID0gU3BlY0RvdWJs
ZVJlYWwgfCBTcGVjRG91YmxlUHVyZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEg
TmFOIGRvdWJsZSwgYnV0IGl0J3MgZGVmaW5pdGVseSBub3QgaW1wdXJlIE5hTi4KIHN0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxEb3VibGUgICAgICAgICAgICAgICAgICAg
ICAgICA9IFNwZWNEb3VibGVSZWFsIHwgU3BlY0RvdWJsZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBu
b24tTmFOIG9yIGEgTmFOIGRvdWJsZS4KQEAgLTkzLDE0ICs5NCwxNCBAQCBzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZU51bWJlciAgICAgICAgICAgICAgICAgICAg
PSBTcGVjSW50Mwogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50QW55Rm9y
bWF0ICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDUyQW55IHwgU3BlY0ludDMyT25seSB8
IFNwZWNBbnlJbnRBc0RvdWJsZTsKIAogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjRnVsbE51bWJlciAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludEFueUZvcm1hdCB8
IFNwZWNGdWxsRG91YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiwgSW50NTIsIG9yIGEgRG91
YmxlLCBhbmQgdGhlIERvdWJsZSBjYW4gYmUgaW1wdXJlIE5hTi4KLXN0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMzc7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCi1zdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDM4OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVkLgor
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQm9vbGVhbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAzODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4K
K3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY090aGVyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzk7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVs
bCBvciBVbmRlZmluZWQuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNj
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsg
Ly8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBhIGJvb2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4K
LXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzk7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2
YWx1ZSBtYXJrZXIuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCaWdJbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDQwOyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBCaWdJbnQuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEYXRhVmll
d09iamVjdCAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDQxOyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBKU0RhdGFWaWV3Lgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRW1w
dHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA0MDsgLy8gSXQncyBkZWZp
bml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY0JpZ0ludCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDE7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJpZ0ludC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY0RhdGFWaWV3T2JqZWN0ICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDI7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRGF0YVZpZXcuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1
bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjU3Ry
aW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjIHwgU3BlY0Jp
Z0ludDsgLy8gSXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVlLgotc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3Bl
Y0ZpbmFsT2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlW
aWV3IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3Ry
aW5nT2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNwZWNQcm9taXNlT2JqZWN0IHwgU3BlY01h
cE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVjV2Vha01hcE9iamVjdCB8IFNwZWNXZWFrU2V0
T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RP
dGhlciB8IFNwZWNEYXRhVmlld09iamVjdDsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZv
ciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY09iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNGaW5h
bE9iamVjdCB8IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlvbiB8IFNwZWNUeXBlZEFycmF5VmlldyB8
IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBTcGVjU2NvcGVkQXJndW1lbnRzIHwgU3BlY1N0cmluZ09i
amVjdCB8IFNwZWNSZWdFeHBPYmplY3QgfCBTcGVjRGF0ZU9iamVjdCB8IFNwZWNQcm9taXNlT2Jq
ZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVjV2Vha01hcE9iamVjdCB8
IFNwZWNXZWFrU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8
IFNwZWNPYmplY3RPdGhlciB8IFNwZWNEYXRhVmlld09iamVjdDsgLy8gQml0bWFzayB1c2VkIGZv
ciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KIHN0YXRpYyBjb25z
dGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IFNwZWNPYmplY3QgfCBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNDZWxsT3RoZXIg
fCBTcGVjQmlnSW50OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwuCiBzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUg
YW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91Ymxl
SW1wdXJlTmFOLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVU
b3AgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0hlYXBUb3AgfCBTcGVjRW1wdHk7IC8vIEl0
IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9ubHkgYW5kIFNw
ZWNEb3VibGVJbXB1cmVOYU4uIENvcnJlc3BvbmRzIHRvIHdoYXQgY291bGQgYmUgZm91bmQgaW4g
YSBieXRlY29kZSBsb2NhbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RIZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SGVhcC5oCmluZGV4IGEzMDkyOWQ4YjBkNjhiMTY5OGYwZTQwMmY5NTY0ZDY3ZjUyMDZmYWYuLmJm
OTkzNzc5NzA0NzAyZDhkNWIyMGI2YzJmNmY3Mzk1YWZlNmI4NjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RIZWFwLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaApAQCAtNzEsNiArNzEsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oSGVhcE9iamVjdENvdW50KSAvKiBV
c2VkIHRvIHJlZmxlY3QgdGhlIGZhY3QgdGhhdCBzb21lIGFsbG9jYXRpb25zIHJldmVhbCBvYmpl
Y3QgaWRlbnRpdHkgKi9cCiAgICAgbWFjcm8oUmVnRXhwU3RhdGUpIFwKICAgICBtYWNybyhNYXRo
RG90UmFuZG9tU3RhdGUpIFwKKyAgICBtYWNybyhKU0RhdGVGaWVsZHMpIFwKICAgICBtYWNybyhK
U01hcEZpZWxkcykgXAogICAgIG1hY3JvKEpTU2V0RmllbGRzKSBcCiAgICAgbWFjcm8oSlNXZWFr
TWFwRmllbGRzKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggNTM3MDMzNzk2ZjZiOWJhMjE0Y2Rm
ZTc5ZDFiNmJmNDUxODEyODBhYi4uYWI1NjBhYWQxZWY4MzE3YzVkYmQyMGY0ZjA4MjhkMjhlZDlj
ZWEzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtNDA2OCw2ICs0MDY4LDE2IEBAIGJvb2wgQWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2ln
bmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgRGF0ZUdl
dEludDogeworICAgICAgICBzZXROb25DZWxsVHlwZUZvck5vZGUobm9kZSwgU3BlY0J5dGVjb2Rl
TnVtYmVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBEYXRlR2V0RmxvYXQ6
IHsKKyAgICAgICAgc2V0Tm9uQ2VsbFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNGdWxsRG91YmxlKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBEYXRhVmlld1NldDogewogICAgICAg
ICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCmluZGV4IDIyMzQ0NWMyZDk0NTgwN2JmY2I4MTlhZWYyNTE3Zjg1MGUxZTM0
NGYuLjgzYTliNTkzYWI4OTliMWJjZTI0NjUwODdlZmZhNTZhYjAxNzQzMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0zMTk1LDYg
KzMxOTUsNDEgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbChOb2Rl
KiBjYWxsZWUsIFZpcnR1YWxSZWdpc3RlciByZXN1bHQsIEkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VGltZUludHJp
bnNpYzogeworICAgICAgICAgICAgaWYgKCFpczY0Qml0KCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7CisgICAgICAgICAgICBOb2Rl
KiBiYXNlID0gZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KDAsIHJlZ2lzdGVyT2Zmc2V0
KSk7CisgICAgICAgICAgICBzZXRSZXN1bHQoYWRkVG9HcmFwaChEYXRlR2V0RmxvYXQsIE9wSW5m
byhpbnRyaW5zaWMpLCBPcEluZm8oKSwgYmFzZSkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRGdWxsWWVhckludHJp
bnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRnVsbFllYXJJbnRyaW5zaWM6
CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50cmluc2ljOgorICAgICAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRVVENNb250aEludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRl
UHJvdG90eXBlR2V0RGF0ZUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0
VVRDRGF0ZUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF5SW50cmlu
c2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENEYXlJbnRyaW5zaWM6CisgICAg
ICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEhvdXJzSW50cmluc2ljOgorICAgICAgICBjYXNlIERh
dGVQcm90b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRD
TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0lu
dHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNp
YzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljOgor
ICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJbnRyaW5zaWM6Cisg
ICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWV6b25lT2Zmc2V0SW50cmluc2ljOgorICAg
ICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRZZWFySW50cmluc2ljOiB7CisgICAgICAgICAgICBp
ZiAoIWlzNjRCaXQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBpbnNlcnRDaGVja3MoKTsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQodmlydHVhbFJl
Z2lzdGVyRm9yQXJndW1lbnQoMCwgcmVnaXN0ZXJPZmZzZXQpKTsKKyAgICAgICAgICAgIHNldFJl
c3VsdChhZGRUb0dyYXBoKERhdGVHZXRJbnQsIE9wSW5mbyhpbnRyaW5zaWMpLCBPcEluZm8ocHJl
ZGljdGlvbiksIGJhc2UpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisK
ICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDg6CiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRV
aW50ODoKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDE2OgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCBiODljMDNjMGZkMGNlZDAwNzk0ZGFiZGYzM2Q5
NTdhZmY5M2I4ODAzLi43ZDAyMTAzNjkwZGZjOTdiYjY1MDFhZTQ2YjU0NWMyNDY4YTY5YTBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMTgxNCw2ICsx
ODE0LDEzIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0
IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihQdXJlVmFsdWUo
bm9kZSwgbm9kZS0+dmFsaWRSYWRpeENvbnN0YW50KCkpKTsKICAgICAgICAgcmV0dXJuOwogCisg
ICAgY2FzZSBEYXRlR2V0RmxvYXQ6CisgICAgY2FzZSBEYXRlR2V0SW50OiB7CisgICAgICAgIHJl
YWQoSlNEYXRlRmllbGRzKTsKKyAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihEYXRlRmllbGRMb2Ms
IEFic3RyYWN0SGVhcChKU0RhdGVGaWVsZHMsIHN0YXRpY19jYXN0PHVpbnQ2NF90Pihub2RlLT5p
bnRyaW5zaWMoKSkpLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKICAgICBjYXNlIERh
dGFWaWV3R2V0SW50OiB7CiAgICAgICAgIHJlYWQoTWlzY0ZpZWxkcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNWQyYjA1ZDNmZDE5YjM4YzFjN2I4NTI2YjJj
NGM1NzkzYTNkMTRiMC4uNjM1YzQwZjRlYzY4OTljYTY5MWQ3MTBkYjk2M2UyNjU5NGMwMzQyMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMjQyLDYgKzI0Miw4
IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEZpbHRl
ckdldEJ5SWRTdGF0dXM6CiAgICAgY2FzZSBGaWx0ZXJQdXRCeUlkU3RhdHVzOgogICAgIGNhc2Ug
RmlsdGVySW5CeUlkU3RhdHVzOgorICAgIGNhc2UgRGF0ZUdldEludDoKKyAgICBjYXNlIERhdGVH
ZXRGbG9hdDoKICAgICBjYXNlIERhdGFWaWV3R2V0SW50OgogICAgIGNhc2UgRGF0YVZpZXdHZXRG
bG9hdDoKICAgICBjYXNlIERhdGFWaWV3U2V0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKaW5kZXggZTFlMTY3ODI2ZjM4MzA0MjgxZDBhM2VjZjc4OTVjZmRk
ZDJhNGY0Ny4uNDhmYzYwZWJiYjY1NGY4MzM0N2Y1YmY4NDk1MDRmY2Q0MTVjZTJkNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0yMzIwLDYgKzIz
MjAsMTEgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBm
aXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogCisg
ICAgICAgIGNhc2UgRGF0ZUdldEludDoKKyAgICAgICAgY2FzZSBEYXRlR2V0RmxvYXQ6CisgICAg
ICAgICAgICBmaXhFZGdlPERhdGVPYmplY3RVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAg
ICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgICAgIGNhc2Ug
RGF0YVZpZXdHZXRGbG9hdDogewogICAgICAgICAgICAgZml4RWRnZTxEYXRhVmlld09iamVjdFVz
ZT4obm9kZS0+Y2hpbGQxKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdHcmFwaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcApp
bmRleCBhZGJmNTAyNWNmM2Q0NDFiZTE4YjcyYjA5ZGRmODhmODQ1ZGI5MTFkLi5jYTlmYzM0ZTFk
MzllNTc0NzRhMWJhNDM4YTM4ZDYwN2I2YjJhNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcApAQCAtMzY1LDYgKzM2NSw4IEBAIHZvaWQgR3JhcGg6OmR1bXAoUHJpbnRT
dHJlYW0mIG91dCwgY29uc3QgY2hhciogcHJlZml4U3RyLCBOb2RlKiBub2RlLCBEdW1wQ29udGV4
CiAgICAgfQogICAgIGlmIChub2RlLT5oYXNJZ25vcmVMYXN0SW5kZXhJc1dyaXRhYmxlKCkpCiAg
ICAgICAgIG91dC5wcmludChjb21tYSwgImlnbm9yZUxhc3RJbmRleElzV3JpdGFibGUgPSAiLCBu
b2RlLT5pZ25vcmVMYXN0SW5kZXhJc1dyaXRhYmxlKCkpOworICAgIGlmIChub2RlLT5oYXNJbnRy
aW5zaWMoKSkKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiaW50cmluc2ljID0gIiwgbm9kZS0+
aW50cmluc2ljKCkpOwogICAgIGlmIChub2RlLT5pc0NvbnN0YW50KCkpCiAgICAgICAgIG91dC5w
cmludChjb21tYSwgcG9pbnRlckR1bXBJbkNvbnRleHQobm9kZS0+Y29uc3RhbnQoKSwgY29udGV4
dCkpOwogICAgIGlmIChub2RlLT5oYXNDYWxsTGlua1N0YXR1cygpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCmluZGV4IGU0Yjk3YjMwYzJhMGE0MGMw
ZmYyMDIxNmFmNDkyZDllZDYxYThiNDguLmMyYjk2YjVmZGZkNThkNjg0N2Q5YzQyMWU5YTU4Yjc5
NzlmN2YyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExv
Y2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlv
bi5jcHAKQEAgLTE2OCw2ICsxNjgsMTAgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFt
JiBvdXQsIExvY2F0aW9uS2luZCBraW5kKQogICAgICAgICBvdXQucHJpbnQoIlJlZ0V4cE9iamVj
dExhc3RJbmRleExvYyIpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIERhdGVGaWVsZExv
YzoKKyAgICAgICAgb3V0LnByaW50KCJEYXRlRmllbGRMb2MiKTsKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgY2FzZSBNYXBCdWNrZXRMb2M6CiAgICAgICAgIG91dC5wcmludCgiTWFwQnVja2V0TG9j
Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSGVhcExvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBM
b2NhdGlvbi5oCmluZGV4IDA5MTAwNjQxMjY5ZjBjMDYxNzQ0M2YzYmMwZjQ3Y2I5MmY1OTA1NzQu
LmE4ZTczODE4MDNjNzk0ODQ2M2NlOTg5Y2MxMWE2OTNmZTg0MWZhZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaApAQCAtNjQsNiArNjQsNyBAQCBlbnVt
IExvY2F0aW9uS2luZCB7CiAgICAgUHJvdG90eXBlTG9jLAogICAgIFN0YWNrTG9jLAogICAgIFN0
YWNrUGF5bG9hZExvYywKKyAgICBEYXRlRmllbGRMb2MsCiAgICAgTWFwQnVja2V0TG9jLAogICAg
IE1hcEJ1Y2tldEhlYWRMb2MsCiAgICAgTWFwQnVja2V0VmFsdWVMb2MsCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZS5oCmluZGV4IDExZDhiNDBmYTYzMjZmZDk1YzJkZDYyZGY3Zjc2YWQ3YjY1
YjJiM2YuLmRkZTVlNzFkODliYmJmZGNlNjA5MGY0MTQ5ZGM4NTU3ZTllMjQwNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC0xNTU0LDkgKzE1NTQsMjEgQEAgc3RydWN0IE5v
ZGUgewogICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8RW50cnlTd2l0Y2hEYXRhKj4oKTsKICAg
ICB9CiAKKyAgICBib29sIGhhc0ludHJpbnNpYygpCisgICAgeworICAgICAgICBzd2l0Y2ggKG9w
KCkpIHsKKyAgICAgICAgY2FzZSBDUFVJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZUdldEZs
b2F0OgorICAgICAgICBjYXNlIERhdGVHZXRJbnQ6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor
ICAgIH0KKwogICAgIEludHJpbnNpYyBpbnRyaW5zaWMoKQogICAgIHsKLSAgICAgICAgUkVMRUFT
RV9BU1NFUlQob3AoKSA9PSBDUFVJbnRyaW5zaWMpOworICAgICAgICBBU1NFUlQoaGFzSW50cmlu
c2ljKCkpOwogICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8SW50cmluc2ljPigpOwogICAgIH0K
ICAgICAKQEAgLTE3NTMsNiArMTc2NSw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgY2FzZSBU
b1RoaXM6CiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgICAgIGNhc2UgRGF0YVZp
ZXdHZXRGbG9hdDoKKyAgICAgICAgY2FzZSBEYXRlR2V0SW50OgogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggOGNhM2I3OTI5Zjc2MWEwMTYw
YzZlMzg0ZWEzODI3NWMzNDZmZGVhMS4uN2Q0ZmNiOGRmMWI3YzgwZTg4NTBjZmVhNGU5NjZjMmE4
YzA2M2FlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtNTE2
LDYgKzUxNiw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhE
YXRhVmlld0dldEludCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRKUykgLyogVGhlIGdl
dHMgYXJlIG11c3QgZ2VuZXJhdGUgZm9yIG5vdyBiZWNhdXNlIHRoZXkgZG8gYm91bmRzIGNoZWNr
cyAqLyBcCiAgICAgbWFjcm8oRGF0YVZpZXdHZXRGbG9hdCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5v
ZGVSZXN1bHREb3VibGUpIFwKICAgICBtYWNybyhEYXRhVmlld1NldCwgTm9kZU11c3RHZW5lcmF0
ZSB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAorICAgIC8qIERhdGUgYWNj
ZXNzICovIFwKKyAgICBtYWNybyhEYXRlR2V0SW50LCBOb2RlUmVzdWx0SlMpIFwKKyAgICBtYWNy
byhEYXRlR2V0RmxvYXQsIE5vZGVSZXN1bHREb3VibGUpIFwKIAogCiAvLyBUaGlzIGVudW0gZ2Vu
ZXJhdGVzIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGlkIGZvciBhbGwgTm9kZSB0eXBlcywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDcwZWZk
NmJlOTYwOTNhNGY1ZWRhODZlYzlmNzRmMjFhYzdhODZjYzYuLjRkYjQ2MjcyYzgwNzk2ZTBjY2Q5
MWNmODMxMjIyMDIwZjQyYTVhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRGR1RvRlRMRGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiREZHVG9GVExGb3JPU1JFbnRyeURl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCisj
aW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRGVmaW5lUHJvcGVydHlBdHRyaWJ1
dGVzLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiRXZhbENvZGVC
bG9jay5oIgpAQCAtMzM5MSw2ICszMzkyLDE5OCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkdldFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3Qt
PmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhcihWTSogdm1Qb2ludGVyLCBEYXRl
SW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJh
bWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9u
UHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29u
c3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFu
RGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0Z1bGxZZWFyKFZNKiB2bVBvaW50ZXIs
IERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENh
bGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVy
YXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVn
b3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT55ZWFyKCkpKTsKK30KKworRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TW9udGgoVk0qIHZtUG9pbnRl
ciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9w
ZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKwor
ICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdy
ZWdvcmlhbkRhdGVUaW1lKHZtKTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKK30KKworRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDTW9udGgoVk0qIHZtUG9p
bnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7Cisg
ICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJ
VE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsK
KworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUt
PmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKK30KKwor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0RGF0ZShWTSogdm1Q
b2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsK
KyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAg
SklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUp
OworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0
ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGhEYXkoKSkpOworfQor
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENEYXRlKFZN
KiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2lu
dGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsK
KyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxG
cmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUg
PSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRl
VGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aERheSgp
KSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldERh
eShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0
ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgp
KSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVU
Q0RheShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0g
KnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFN
RSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRh
dGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOworICAgIGlmICghZ3JlZ29y
aWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vl
a0RheSgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0
ZUdldEhvdXJzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYg
dm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CisgICAgaWYgKCFncmVn
b3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5o
b3VyKCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRl
R2V0VVRDSG91cnMoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAgIFZN
JiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NB
TExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVn
b3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKKyAgICBpZiAo
IWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFO
KCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRp
bWUtPmhvdXIoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkRhdGVHZXRNaW51dGVzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAg
ICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSog
Z3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CisgICAgaWYg
KCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05h
TigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVU
aW1lLT5taW51dGUoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRhdGVHZXRVVENNaW51dGVzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkK
K3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7
CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdv
cmlhbkRhdGVUaW1lLT5taW51dGUoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSog
ZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3Jp
YW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2
bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdy
ZWdvcmlhbkRhdGVUaW1lLT5zZWNvbmQoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENTZWNvbmRzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0
YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRl
VGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5zZWNvbmQoKSkpOworfQorCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRUaW1lem9uZU9mZnNldChWTSogdm1Qb2lu
dGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklU
T3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwor
CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+
Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcigtZ3JlZ29yaWFuRGF0ZVRpbWUtPnV0Y09mZnNldEluTWludXRlKCkp
KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0WWVh
cihWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0
ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpIC0g
MTkwMCkpOworfQorCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dERkcoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWVUb1Rocm93KQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmgKaW5kZXggMjU2NGQ5ZmM4ZGY5ODc2NzE1OGZkMjQxNjY3YjNhYjZl
YmI2MGI2NS4uMjc0ZjhhNTNlYmJlYzQ5ODIxZmMwYTBmNDRiMGZjZDJiYWQxZmQ2NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTMxLDcgKzMxLDExIEBA
CiAjaW5jbHVkZSAiSklUT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlUeXBlLmgi
CiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKK25hbWVzcGFjZSBKU0MgeworCitj
bGFzcyBEYXRlSW5zdGFuY2U7CisKK25hbWVzcGFjZSBERkcgewogCiBzdHJ1Y3QgT1NSRXhpdEJh
c2U7CiAKQEAgLTI5NCw2ICsyOTgsMjMgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFkZXJBbmRWZWN0b3IKIAogdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtEaXJlY3RDYWxsKENhbGxMaW5rSW5mbyosIEpT
RnVuY3Rpb24qKSBXVEZfSU5URVJOQUw7CiAKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDRnVsbFll
YXIoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRNb250aChWTSosIERhdGVJbnN0YW5jZSopIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVU
Q01vbnRoKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0RGF0ZShWTSosIERhdGVJbnN0YW5jZSopIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdl
dFVUQ0RhdGUoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXREYXkoVk0qLCBEYXRlSW5zdGFuY2UqKSBX
VEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVH
ZXRVVENEYXkoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRIb3VycyhWTSosIERhdGVJbnN0YW5jZSop
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0
ZUdldFVUQ0hvdXJzKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TWludXRlcyhWTSosIERhdGVJbnN0
YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uRGF0ZUdldFVUQ01pbnV0ZXMoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKFZNKiwg
RGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25kcyhWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFRpbWV6
b25lT2Zmc2V0KFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0WWVhcihWTSosIERhdGVJbnN0YW5jZSop
IFdURl9JTlRFUk5BTDsKKwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBl
UHJvZmlsZXJMb2dERkcoVk0qKSBXVEZfSU5URVJOQUw7CiAKIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25UcmlnZ2VyUmVvcHRpbWl6YXRpb25Ob3coQ29kZUJsb2NrKiBiYXNlbGluZUNvZGVC
bG9jaywgQ29kZUJsb2NrKiBvcHRpaW16ZWRDb2RlQmxvY2ssIE9TUkV4aXRCYXNlKikgV1RGX0lO
VEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBlNzJhYTVkZDI1N2YzMjQ2ZTFiZGI2
Y2M2Yzg1OTU5ZjI4OWU5NTRjLi5kYjY1ZThhMzU3NDA5MTA1MGRiNDlmN2Q3MjA5NGYzODFjMmE1
YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtODQ1LDExICs4NDUsMTcgQEAgY2xhc3Mg
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNl
IEdldFByb3RvdHlwZU9mOgogICAgICAgICBjYXNlIEV4dHJhY3RWYWx1ZUZyb21XZWFrTWFwR2V0
OiAKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDoKLSAgICAgICAgY2FzZSBEYXRhVmlld0dl
dEZsb2F0OiB7CisgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKKyAgICAgICAgY2FzZSBE
YXRlR2V0SW50OiB7CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKG1fY3VycmVudE5vZGUtPmdl
dEhlYXBQcmVkaWN0aW9uKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAg
ICAgICBjYXNlIERhdGVHZXRGbG9hdDogeworICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVj
RnVsbE51bWJlcik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGNh
c2UgV2Vha01hcEdldDoKICAgICAgICAgY2FzZSBSZXNvbHZlU2NvcGVGb3JIb2lzdGluZ0Z1bmNE
ZWNsSW5FdmFsOiB7CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNCeXRlY29kZVRvcCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDQ2
MDYxYzg2Y2Y5NWMwNzgxNjFmNGE1OTI0Y2QzYTUyNDZjZGMwMjEuLjk5NTBjMzUyMWYyMDhiZTU1
ZGFkZTFlNzZlY2M0YzIyZWFmOTczYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2FmZVRvRXhlY3V0ZS5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIFNhZmVUb0V4ZWN1dGVF
ZGdlIHsKICAgICAgICAgY2FzZSBQcm9taXNlT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFByb3h5
T2JqZWN0VXNlOgogICAgICAgICBjYXNlIERlcml2ZWRBcnJheVVzZToKKyAgICAgICAgY2FzZSBE
YXRlT2JqZWN0VXNlOgogICAgICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgY2FzZSBT
ZXRPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKQEAgLTQ4OSw2ICs0
OTAsOCBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGJvb2wgaWdubwogICAgIGNhc2UgQXRvbWljc0lzTG9ja0Zy
ZWU6CiAgICAgY2FzZSBJbml0aWFsaXplRW50cnlwb2ludEFyZ3VtZW50czoKICAgICBjYXNlIE1h
dGNoU3RydWN0dXJlOgorICAgIGNhc2UgRGF0ZUdldEludDoKKyAgICBjYXNlIERhdGVHZXRGbG9h
dDoKICAgICBjYXNlIERhdGFWaWV3R2V0SW50OgogICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoK
ICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDQ3NDE2MTRjNTdiZDhjOWJlNjBlNjhmM2MyYTQyZWE3
MDQ1NzUxMGUuLjllYWMyMTZmNjAyYzBiNDFmYWY4ZWM4ZGUyNjdhOGExYjU3NTY5OTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0z
OSw2ICszOSw3IEBACiAjaW5jbHVkZSAiREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5l
cmF0b3IuaCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRG
R1NuaXBwZXRQYXJhbXMuaCIKKyNpbmNsdWRlICJEYXRlSW5zdGFuY2UuaCIKICNpbmNsdWRlICJE
aXJlY3RBcmd1bWVudHMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVy
VXNhZ2UuaCIKICNpbmNsdWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKQEAgLTEwMTk1LDYgKzEwMTk2
LDIwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVByb21pc2VPYmplY3QoRWRnZSBl
ZGdlKQogICAgIHNwZWN1bGF0ZVByb21pc2VPYmplY3QoZWRnZSwgb3BlcmFuZC5ncHIoKSk7CiB9
CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGVPYmplY3QoRWRnZSBlZGdlLCBH
UFJSZWcgY2VsbCkKK3sKKyAgICBzcGVjdWxhdGVDZWxsVHlwZShlZGdlLCBjZWxsLCBTcGVjRGF0
ZU9iamVjdCwgSlNEYXRlVHlwZSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0
ZURhdGVPYmplY3QoRWRnZSBlZGdlKQoreworICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwg
U3BlY0RhdGVPYmplY3QpKQorICAgICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3Bl
cmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZURhdGVPYmplY3QoZWRnZSwg
b3BlcmFuZC5ncHIoKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1hcE9i
amVjdChFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQogewogICAgIHNwZWN1bGF0ZUNlbGxUeXBlKGVk
Z2UsIGNlbGwsIFNwZWNNYXBPYmplY3QsIEpTTWFwVHlwZSk7CkBAIC0xMDYwMCw2ICsxMDYxNSw5
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAg
IGNhc2UgRGVyaXZlZEFycmF5VXNlOgogICAgICAgICBzcGVjdWxhdGVEZXJpdmVkQXJyYXkoZWRn
ZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZU9iamVjdFVzZToKKyAgICAgICAgc3Bl
Y3VsYXRlRGF0ZU9iamVjdChlZGdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYXBPYmpl
Y3RVc2U6CiAgICAgICAgIHNwZWN1bGF0ZU1hcE9iamVjdChlZGdlKTsKICAgICAgICAgYnJlYWs7
CkBAIC0xNDAwOCw2ICsxNDAyNiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYWtl
Um9wZShOb2RlKiBub2RlKQogI2VuZGlmCiB9CiAKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRG
RwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAppbmRleCAxYmE1MjExZmMxMTMwNzdlZGYxN2JhOWI5ZTE0MTA2NTlkYmNiODI1Li4xYjIw
ZDk0NGNiY2RkYTYyZmFjYjQ1NmQ0Yzk4ZDE5YjVjMDVmZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xNDg5LDYgKzE0ODksNyBAQCBj
bGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlQ2xlYXJDYXRjaExvY2FscyhO
b2RlKik7CiAgICAgdm9pZCBjb21waWxlUHJvZmlsZVR5cGUoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZVN0cmluZ0NvZGVQb2ludEF0KE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVEYXRlR2V0KE5v
ZGUqKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3MsIHR5cGVuYW1lIE9wZXJhdGlv
bj4KICAgICB2b2lkIGNvbXBpbGVDcmVhdGVJbnRlcm5hbEZpZWxkT2JqZWN0KE5vZGUqLCBPcGVy
YXRpb24pOwpAQCAtMTYxNiw2ICsxNjE3LDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAg
IHZvaWQgc3BlY3VsYXRlUHJveHlPYmplY3QoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVEZXJp
dmVkQXJyYXkoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlRGVyaXZlZEFy
cmF5KEVkZ2UpOworICAgIHZvaWQgc3BlY3VsYXRlRGF0ZU9iamVjdChFZGdlKTsKKyAgICB2b2lk
IHNwZWN1bGF0ZURhdGVPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3Vs
YXRlTWFwT2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTWFwT2JqZWN0KEVkZ2UsIEdQ
UlJlZyBjZWxsKTsKICAgICB2b2lkIHNwZWN1bGF0ZVNldE9iamVjdChFZGdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmlu
ZGV4IDE0ZjIxYzc3NmZkYzYzNDc0MzY0M2VkYmJkNmUwNmJiM2JhNTVjMGEuLjlhYWFiNDQyZTUw
NmIzYTE2NDc2YTg1NDQ3NWY2MDhiN2YzMjdmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNDE2Miw2ICs0MTYy
LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2Ug
RGF0YVZpZXdHZXRJbnQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0OgogICAgIGNhc2UgRGF0
YVZpZXdTZXQ6CisgICAgY2FzZSBEYXRlR2V0SW50OgorICAgIGNhc2UgRGF0ZUdldEZsb2F0Ogog
ICAgIGNhc2UgU3RyaW5nQ29kZVBvaW50QXQ6CiAgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFw
aCgpLCBub2RlLCAidW5leHBlY3RlZCBub2RlIGluIERGRyBiYWNrZW5kIik7CiAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKaW5kZXggMTQyYzdlMDY4OWMyNmExZmFmZGNkNTAwM2YxZjM0YmViMjUzODAyYS4uOGJl
N2MxZmFhZWYyNzI4ZjViOWFiZDJhNzBhYWQ1ZjcxMjMzODdmMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSAiREZHRG9lc0dDLmgiCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiRGF0ZUluc3RhbmNl
LmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVy
LmgiCiAjaW5jbHVkZSAiSGFzT3duUHJvcGVydHlDYWNoZS5oIgpAQCAtNDg3NCw2ICs0ODc1LDEx
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJl
YWs7CiAgICAgfQogCisgICAgY2FzZSBEYXRlR2V0SW50OgorICAgIGNhc2UgRGF0ZUdldEZsb2F0
OgorICAgICAgICBjb21waWxlRGF0ZUdldChub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBj
YXNlIERhdGFWaWV3U2V0OiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGRhdGFWaWV3
KHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwogICAgICAgICBHUFJSZWcgZGF0
YVZpZXdHUFIgPSBkYXRhVmlldy5ncHIoKTsKQEAgLTUzNDgsNiArNTM1NCwxNDMgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmluZ0NvZGVQb2ludEF0KE5vZGUqIG5vZGUpCiAgICAg
aW50MzJSZXN1bHQoc2NyYXRjaDFHUFIsIG1fY3VycmVudE5vZGUpOwogfQogCit2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlRGF0ZUdldChOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIEdQUlJlZyBiYXNlR1BS
ID0gYmFzZS5ncHIoKTsKKyAgICBzcGVjdWxhdGVEYXRlT2JqZWN0KG5vZGUtPmNoaWxkMSgpLCBi
YXNlR1BSKTsKKworICAgIGF1dG8gZW1pdEdldENvZGVXaXRoQ2FsbGJhY2sgPSBbJl0gKHB0cmRp
ZmZfdCBjYWNoZWREb3VibGVPZmZzZXQsIHB0cmRpZmZfdCBjYWNoZWREYXRhT2Zmc2V0LCBhdXRv
KiBvcGVyYXRpb24sIGF1dG8gY2FsbGJhY2spIHsKKyAgICAgICAgSlNWYWx1ZVJlZ3NUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMpOworICAgICAgICBGUFJUZW1wb3JhcnkgdGVtcDEodGhpcyk7CisgICAg
ICAgIEZQUlRlbXBvcmFyeSB0ZW1wMih0aGlzKTsKKworICAgICAgICBKU1ZhbHVlUmVncyByZXN1
bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKyAgICAgICAgRlBSUmVnIHRlbXAxRlBSID0gdGVtcDEu
ZnByKCk7CisgICAgICAgIEZQUlJlZyB0ZW1wMkZQUiA9IHRlbXAyLmZwcigpOworCisgICAgICAg
IENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAgICAgIG1faml0LmxvYWRQ
dHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VHUFIsIERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZE
YXRhKCkpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgIHNsb3dDYXNlcy5hcHBl
bmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHJlc3VsdFJlZ3MucGF5
bG9hZEdQUigpKSk7CisgICAgICAgIG1faml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKGJhc2VHUFIsIERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigpKSwgdGVt
cDFGUFIpOworICAgICAgICBtX2ppdC5sb2FkRG91YmxlKENDYWxsSGVscGVyczo6QWRkcmVzcyhy
ZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgY2FjaGVkRG91YmxlT2Zmc2V0KSwgdGVtcDJGUFIpOwor
ICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaERvdWJsZShDQ2FsbEhlbHBlcnM6
OkRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQsIHRlbXAxRlBSLCB0ZW1wMkZQUikpOworICAgICAg
ICBtX2ppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHJlc3VsdFJlZ3MucGF5bG9hZEdQ
UigpLCBjYWNoZWREYXRhT2Zmc2V0KSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgICAg
ICBjYWxsYmFjayhyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgIG1faml0LmJveElu
dDMyKHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCByZXN1bHRSZWdzKTsKKworICAgICAgICBhZGRT
bG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoc2xvd0Nhc2VzLCB0aGlzLCBvcGVyYXRpb24s
IHJlc3VsdFJlZ3MsICZ2bSgpLCBiYXNlR1BSKSk7CisKKyAgICAgICAganNWYWx1ZVJlc3VsdChy
ZXN1bHRSZWdzLCBub2RlKTsKKyAgICB9OworCisgICAgYXV0byBlbWl0R2V0Q29kZSA9IFsmXSAo
cHRyZGlmZl90IGNhY2hlZERvdWJsZU9mZnNldCwgcHRyZGlmZl90IGNhY2hlZERhdGFPZmZzZXQs
IGF1dG8qIG9wZXJhdGlvbikgeworICAgICAgICBlbWl0R2V0Q29kZVdpdGhDYWxsYmFjayhjYWNo
ZWREb3VibGVPZmZzZXQsIGNhY2hlZERhdGFPZmZzZXQsIG9wZXJhdGlvbiwgW10gKEdQUlJlZykg
eyB9KTsKKyAgICB9OworCisgICAgc3dpdGNoIChub2RlLT5pbnRyaW5zaWMoKSkgeworICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWM6IHsKKyAgICAgICAgRlBSVGVtcG9yYXJ5
IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgRlBSUmVnIHJlc3VsdEZQUiA9IHJlc3VsdC5mcHIoKTsK
KyAgICAgICAgbV9qaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwg
RGF0ZUluc3RhbmNlOjpvZmZzZXRPZkludGVybmFsTnVtYmVyKCkpLCByZXN1bHRGUFIpOworICAg
ICAgICBkb3VibGVSZXN1bHQocmVzdWx0RlBSLCBub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgLy8gV2UgZG8gbm90IGhhdmUgYW55IHRpbWV6b25lIG9mZnNldCB3aGljaCBhZmZl
Y3RzIG9uIG1pbGxpc2Vjb25kcy4KKyAgICAvLyBTbyBEYXRlI2dldE1pbGxpc2Vjb25kcyBhbmQg
RGF0ZSNnZXRVVENNaWxsaXNlY29uZHMgaGF2ZSB0aGUgc2FtZSBpbXBsZW1lbnRhdGlvbi4KKyAg
ICBjYXNlIERhdGVQcm90b3R5cGVHZXRNaWxsaXNlY29uZHNJbnRyaW5zaWM6CisgICAgY2FzZSBE
YXRlUHJvdG90eXBlR2V0VVRDTWlsbGlzZWNvbmRzSW50cmluc2ljOiB7CisgICAgICAgIEpTVmFs
dWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXAx
KHRoaXMpOworICAgICAgICBGUFJUZW1wb3JhcnkgdGVtcDIodGhpcyk7CisgICAgICAgIEZQUlRl
bXBvcmFyeSB0ZW1wMyh0aGlzKTsKKyAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJl
c3VsdC5yZWdzKCk7CisgICAgICAgIEZQUlJlZyB0ZW1wMUZQUiA9IHRlbXAxLmZwcigpOworICAg
ICAgICBGUFJSZWcgdGVtcDJGUFIgPSB0ZW1wMi5mcHIoKTsKKyAgICAgICAgRlBSUmVnIHRlbXAz
RlBSID0gdGVtcDMuZnByKCk7CisKKyAgICAgICAgbV9qaXQubW92ZVRydXN0ZWRWYWx1ZShqc05h
TigpLCByZXN1bHRSZWdzKTsKKyAgICAgICAgbV9qaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoYmFzZUdQUiwgRGF0ZUluc3RhbmNlOjpvZmZzZXRPZkludGVybmFsTnVtYmVyKCkp
LCB0ZW1wMUZQUik7CisgICAgICAgIGF1dG8gaXNOYU4gPSBtX2ppdC5icmFuY2hJZk5hTih0ZW1w
MUZQUik7CisKKyAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBtc1BlclNlY29uZENvbnN0YW50
ID0gbXNQZXJTZWNvbmQ7CisgICAgICAgIG1faml0LmxvYWREb3VibGUoVHJ1c3RlZEltbVB0cigm
bXNQZXJTZWNvbmRDb25zdGFudCksIHRlbXAyRlBSKTsKKyAgICAgICAgbV9qaXQuZGl2RG91Ymxl
KHRlbXAxRlBSLCB0ZW1wMkZQUiwgdGVtcDNGUFIpOworICAgICAgICBtX2ppdC5mbG9vckRvdWJs
ZSh0ZW1wM0ZQUiwgdGVtcDNGUFIpOworICAgICAgICBtX2ppdC5tdWxEb3VibGUodGVtcDNGUFIs
IHRlbXAyRlBSLCB0ZW1wM0ZQUik7CisgICAgICAgIG1faml0LnN1YkRvdWJsZSh0ZW1wMUZQUiwg
dGVtcDNGUFIsIHRlbXAxRlBSKTsKKyAgICAgICAgbV9qaXQudHJ1bmNhdGVEb3VibGVUb0ludDMy
KHRlbXAxRlBSLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgIG1faml0LmJveElu
dDMyKHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCByZXN1bHRSZWdzKTsKKworICAgICAgICBpc05h
Ti5saW5rKCZtX2ppdCk7CisgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7
CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEZ1bGxZ
ZWFySW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZz
ZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNl
dE9mWWVhcigpLCBvcGVyYXRpb25EYXRlR2V0RnVsbFllYXIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgZW1p
dEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0Nh
Y2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZlllYXIoKSwgb3BlcmF0aW9u
RGF0ZUdldFVUQ0Z1bGxZZWFyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0TW9udGhJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURh
dGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGlt
ZTo6b2Zmc2V0T2ZNb250aCgpLCBvcGVyYXRpb25EYXRlR2V0TW9udGgpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNb250aEludHJpbnNpYzoKKyAgICAgICAg
ZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVU
Q0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoKCksIG9wZXJh
dGlvbkRhdGVHZXRVVENNb250aCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3Rv
dHlwZUdldERhdGVJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURh
dGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGlt
ZTo6b2Zmc2V0T2ZNb250aERheSgpLCBvcGVyYXRpb25EYXRlR2V0RGF0ZSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0RhdGVJbnRyaW5zaWM6CisgICAgICAg
IGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVV
VENDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlh
bkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aERheSgpLCBv
cGVyYXRpb25EYXRlR2V0VVRDRGF0ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVBy
b3RvdHlwZUdldERheUludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCksIERhdGVJbnN0YW5j
ZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVU
aW1lOjpvZmZzZXRPZldlZWtEYXkoKSwgb3BlcmF0aW9uRGF0ZUdldERheSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0RheUludHJpbnNpYzoKKyAgICAgICAg
ZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVU
Q0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZldlZWtEYXkoKSwgb3Bl
cmF0aW9uRGF0ZUdldFVUQ0RheSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3Rv
dHlwZUdldEhvdXJzSW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRp
bWU6Om9mZnNldE9mSG91cigpLCBvcGVyYXRpb25EYXRlR2V0SG91cnMpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAg
ZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVU
Q0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZkhvdXIoKSwgb3BlcmF0
aW9uRGF0ZUdldFVUQ0hvdXJzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCksIERhdGVJbnN0YW5j
ZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVU
aW1lOjpvZmZzZXRPZk1pbnV0ZSgpLCBvcGVyYXRpb25EYXRlR2V0TWludXRlcyk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01pbnV0ZXNJbnRyaW5zaWM6Cisg
ICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0
ZVRpbWVVVENDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNaW51dGUo
KSwgb3BlcmF0aW9uRGF0ZUdldFVUQ01pbnV0ZXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERhdGVQcm90b3R5cGVHZXRTZWNvbmRzSW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShE
YXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSwg
RGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3Jl
Z29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mU2Vjb25kKCksIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRz
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0lu
dHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZH
cmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNl
dE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZz
ZXRPZlNlY29uZCgpLCBvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25kcyk7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VGltZXpvbmVPZmZzZXRJbnRyaW5zaWM6IHsK
KyAgICAgICAgZW1pdEdldENvZGVXaXRoQ2FsbGJhY2soRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0
T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNl
dE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRP
ZlVUQ09mZnNldEluTWludXRlKCksIG9wZXJhdGlvbkRhdGVHZXRUaW1lem9uZU9mZnNldCwgWyZd
IChHUFJSZWcgb2Zmc2V0R1BSKSB7CisgICAgICAgICAgICBtX2ppdC5uZWczMihvZmZzZXRHUFIp
OworICAgICAgICB9KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBEYXRlUHJv
dG90eXBlR2V0WWVhckludHJpbnNpYzogeworICAgICAgICBlbWl0R2V0Q29kZVdpdGhDYWxsYmFj
ayhEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMo
KSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsg
R3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mWWVhcigpLCBvcGVyYXRpb25EYXRlR2V0WWVhciwg
WyZdIChHUFJSZWcgeWVhckdQUikgeworICAgICAgICAgICAgbV9qaXQuc3ViMzIoVHJ1c3RlZElt
bTMyKDE5MDApLCB5ZWFyR1BSKTsKKyAgICAgICAgfSk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgfQorfQorCiAjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKaW5kZXggMDg0YjU5NWIzOTlhNmEwNGI0OWM5
Y2MxMjM5ZDUwZTJiOTIyOGUyNC4uOGVmNzNiNmYyZTg3NTUwMzU5NmE4NjQ5NzQwYjNhNDU4YWIw
OTc0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCkBAIC0xMDYs
NiArMTA2LDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFVzZUtpbmQg
dXNlS2luZCkKICAgICBjYXNlIERlcml2ZWRBcnJheVVzZToKICAgICAgICAgb3V0LnByaW50KCJE
ZXJpdmVkQXJyYXkiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRGF0ZU9iamVjdFVzZToK
KyAgICAgICAgb3V0LnByaW50KCJEYXRlT2JqZWN0Iik7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgb3V0LnByaW50KCJNYXBPYmplY3QiKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VL
aW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaAppbmRleCAyZWM0
ZWExNTNkNWMzZDIzNzRiMDllMWNlNzM4M2QwOGI0MWYzYWVmLi45YzEzYzViY2QzNTY5NTc5YjAz
MDkyYzVjOGY3NThiNmU5YzA1OWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1VzZUtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtp
bmQuaApAQCAtNjcsNiArNjcsNyBAQCBlbnVtIFVzZUtpbmQgewogICAgIEtub3duUHJpbWl0aXZl
VXNlLCAvLyBUaGlzIGJpemFycmUgdHlwZSBhcmlzZXMgZm9yIG9wX3N0cmNhdCwgd2hpY2ggaGFz
IGEgYnl0ZWNvZGUgZ3VhcmFudGVlIHRoYXQgaXQgd2lsbCBvbmx5IHNlZSBwcmltaXRpdmVzIChp
LmUuIG5vdCBvYmplY3RzKS4KICAgICBTeW1ib2xVc2UsCiAgICAgQmlnSW50VXNlLAorICAgIERh
dGVPYmplY3RVc2UsCiAgICAgTWFwT2JqZWN0VXNlLAogICAgIFNldE9iamVjdFVzZSwKICAgICBX
ZWFrTWFwT2JqZWN0VXNlLApAQCAtMTU1LDYgKzE1Niw4IEBAIGlubGluZSBTcGVjdWxhdGVkVHlw
ZSB0eXBlRmlsdGVyRm9yKFVzZUtpbmQgdXNlS2luZCkKICAgICAgICAgcmV0dXJuIFNwZWNCaWdJ
bnQ7CiAgICAgY2FzZSBQcm9taXNlT2JqZWN0VXNlOgogICAgICAgICByZXR1cm4gU3BlY1Byb21p
c2VPYmplY3Q7CisgICAgY2FzZSBEYXRlT2JqZWN0VXNlOgorICAgICAgICByZXR1cm4gU3BlY0Rh
dGVPYmplY3Q7CiAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgIHJldHVybiBTcGVjTWFw
T2JqZWN0OwogICAgIGNhc2UgU2V0T2JqZWN0VXNlOgpAQCAtMjYxLDYgKzI2NCw3IEBAIGlubGlu
ZSBib29sIGlzQ2VsbChVc2VLaW5kIGtpbmQpCiAgICAgY2FzZSBCaWdJbnRVc2U6CiAgICAgY2Fz
ZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKKyAg
ICBjYXNlIERhdGVPYmplY3RVc2U6CiAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgY2FzZSBT
ZXRPYmplY3RVc2U6CiAgICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAKaW5k
ZXggOWMzYzFjN2FjNmZhOGFmMjgyNjNiYWIyYTcyNjlkYjU1MGUzNTZkYi4uYzQ1YzlkMWI3ZTU0
YTBiN2M3NGQwYTczNGRmZDA3MTUzNTljMjIwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGF0Y2hwb2lu
dFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJEYXRlSW5z
dGFuY2UuaCIKICNpbmNsdWRlICJEaXJlY3RBcmd1bWVudHMuaCIKICNpbmNsdWRlICJGVExTdGF0
ZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAppbmRleCAxMDM2OWU0ZTQ5
NDUyNjBkYTdjYzRjMTNhM2Y3MTg2YTZlNDIzNTQwLi41ZGY0M2Y3NzRmZjM0NjY3MGNlMTg0ZWM3
NThkMWExMTMwNzJiZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaApAQCAtNTIsNiArNTIsMjYgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKEJ1dHRlcmZseV92ZWN0b3JMZW5ndGgs
IEJ1dHRlcmZseTo6b2Zmc2V0T2ZWZWN0b3JMZW5ndGgoKSkgXAogICAgIG1hY3JvKENhbGxGcmFt
ZV9jYWxsZXJGcmFtZSwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSBcCiAgICAgbWFj
cm8oQ2xhc3NJbmZvX3BhcmVudENsYXNzLCBDbGFzc0luZm86Om9mZnNldE9mUGFyZW50Q2xhc3Mo
KSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZV9pbnRlcm5hbE51bWJlciwgRGF0ZUluc3RhbmNl
OjpvZmZzZXRPZkludGVybmFsTnVtYmVyKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VfZGF0
YSwgRGF0ZUluc3RhbmNlOjpvZmZzZXRPZkRhdGEoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5j
ZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCkpIFwKKyAgICBtYWNybyhEYXRlSW5z
dGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMsIERhdGVJbnN0YW5jZURh
dGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUygpKSBcCisgICAgbWFj
cm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV95ZWFyLCBEYXRlSW5z
dGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5E
YXRlVGltZTo6b2Zmc2V0T2ZZZWFyKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2Nh
Y2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX3llYXIsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9m
Q2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRP
ZlllYXIoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWVfbW9udGgsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoKCkpIFwKKyAgICBtYWNy
byhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX21vbnRoLCBEYXRl
SW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVn
b3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aCgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNl
RGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9tb250aERheSwgRGF0ZUluc3RhbmNlRGF0YTo6
b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9m
ZnNldE9mTW9udGhEYXkoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3Jl
Z29yaWFuRGF0ZVRpbWVVVENfbW9udGhEYXksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2Fj
aGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1v
bnRoRGF5KCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lX3dlZWtEYXksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZldlZWtEYXkoKSkgXAorICAg
IG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfd2Vla0Rh
eSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygp
ICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mV2Vla0RheSgpKSBcCisgICAgbWFjcm8oRGF0
ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9ob3VyLCBEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGlt
ZTo6b2Zmc2V0T2ZIb3VyKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lVVRDX2hvdXIsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVk
R3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZkhvdXIo
KSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVf
bWludXRlLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1l
KCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNaW51dGUoKSkgXAorICAgIG1hY3JvKERh
dGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfbWludXRlLCBEYXRlSW5z
dGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3Jp
YW5EYXRlVGltZTo6b2Zmc2V0T2ZNaW51dGUoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURh
dGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfc2Vjb25kLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZz
ZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0
T2ZTZWNvbmQoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVVVENfc2Vjb25kLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdv
cmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZTZWNvbmQoKSkg
XAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfdXRj
T2Zmc2V0SW5NaW51dGUsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZlVUQ09mZnNldEluTWludXRl
KCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1l
VVRDX3V0Y09mZnNldEluTWludXRlLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZVVENPZmZz
ZXRJbk1pbnV0ZSgpKSBcCiAgICAgbWFjcm8oRGlyZWN0QXJndW1lbnRzX2NhbGxlZSwgRGlyZWN0
QXJndW1lbnRzOjpvZmZzZXRPZkNhbGxlZSgpKSBcCiAgICAgbWFjcm8oRGlyZWN0QXJndW1lbnRz
X2xlbmd0aCwgRGlyZWN0QXJndW1lbnRzOjpvZmZzZXRPZkxlbmd0aCgpKSBcCiAgICAgbWFjcm8o
RGlyZWN0QXJndW1lbnRzX21pbkNhcGFjaXR5LCBEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mTWlu
Q2FwYWNpdHkoKSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
YXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRp
ZXMuY3BwCmluZGV4IGM2MWY5ZTY1ODBiZjNiNmU0NWM2MTUwYjk5ZjBmNGI4M2MzMWU2YTkuLjU0
ZmRiNjk2MGZmMmIzMTRiNDI2ZTkwY2IyN2NiNDdhNGFlZmEwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTM4OCw2ICszODgsOCBAQCBp
bmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIERh
dGFWaWV3R2V0SW50OgogICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKICAgICBjYXNlIERhdGFW
aWV3U2V0OgorICAgIGNhc2UgRGF0ZUdldEludDoKKyAgICBjYXNlIERhdGVHZXRGbG9hdDoKICAg
ICAgICAgLy8gVGhlc2UgYXJlIE9LLgogICAgICAgICBicmVhazsKIApAQCAtNDcwLDYgKzQ3Miw3
IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAg
ICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2Ug
U3ltYm9sVXNlOgogICAgICAgICAgICAgICAgIGNhc2UgQmlnSW50VXNlOgorICAgICAgICAgICAg
ICAgIGNhc2UgRGF0ZU9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE1hcE9iamVjdFVz
ZToKICAgICAgICAgICAgICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBj
YXNlIFdlYWtNYXBPYmplY3RVc2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKaW5kZXggZDIxMDQ0OTEzZTE0ZDA1MzY4NDQ5NTM4MjgyYjEzYmVkMWY0
YjU2Zi4uMGE3YzJiYmZhZTAwNzJkNjQwZTY0OTQxNzVlMjFmNWI3ZjA5NWRjZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTU0NSw2ICsx
NTQ1LDEwIEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIGNhc2UgRmlsdGVySW5CeUlk
U3RhdHVzOgogICAgICAgICAgICAgY29tcGlsZUZpbHRlcklDU3RhdHVzKCk7CiAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlR2V0SW50OgorICAgICAgICBjYXNlIERhdGVHZXRG
bG9hdDoKKyAgICAgICAgICAgIGNvbXBpbGVEYXRlR2V0KCk7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDoKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEZs
b2F0OgogICAgICAgICAgICAgY29tcGlsZURhdGFWaWV3R2V0KCk7CkBAIC0xMzQwNyw2ICsxMzQx
MSwxMTUgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0KKworICAgIHZvaWQgY29tcGlsZURhdGVHZXQoKQorICAgIHsKKyAgICAgICAgTFZhbHVl
IGJhc2UgPSBsb3dEYXRlT2JqZWN0KG1fbm9kZS0+Y2hpbGQxKCkpOworCisgICAgICAgIGF1dG8g
ZW1pdEdldENvZGVXaXRoQ2FsbGJhY2sgPSBbJl0gKGNvbnN0IEFic3RyYWN0SGVhcCYgY2FjaGVk
RG91YmxlT2Zmc2V0LCBjb25zdCBBYnN0cmFjdEhlYXAmIGNhY2hlZERhdGFPZmZzZXQsIGF1dG8q
IG9wZXJhdGlvbiwgYXV0byBjYWxsYmFjaykgeworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZGF0
YUV4aXN0c0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sg
ZmFzdENhc2UgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xv
d0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGlu
dWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKKworICAgICAgICAgICAgTFZhbHVlIGRhdGEgPSBt
X291dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuRGF0ZUluc3RhbmNlX2RhdGEpOworICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdFplcm82NChkYXRhKSwgdW5zdXJlKGRhdGFFeGlzdHND
YXNlKSwgdW5zdXJlKHNsb3dDYXNlKSk7CisKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3RO
ZXh0ID0gbV9vdXQuYXBwZW5kVG8oZGF0YUV4aXN0c0Nhc2UsIGZhc3RDYXNlKTsKKyAgICAgICAg
ICAgIExWYWx1ZSBtaWxsaXNlY29uZHMgPSBtX291dC5sb2FkRG91YmxlKGJhc2UsIG1faGVhcHMu
RGF0ZUluc3RhbmNlX2ludGVybmFsTnVtYmVyKTsKKyAgICAgICAgICAgIExWYWx1ZSBjYWNoZWRN
aWxsaXNlY29uZHMgPSBtX291dC5sb2FkRG91YmxlKGRhdGEsIGNhY2hlZERvdWJsZU9mZnNldCk7
CisgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuZG91YmxlTm90RXF1YWxPclVub3JkZXJl
ZChtaWxsaXNlY29uZHMsIGNhY2hlZE1pbGxpc2Vjb25kcyksIHVuc3VyZShzbG93Q2FzZSksIHVu
c3VyZShmYXN0Q2FzZSkpOworCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhmYXN0Q2FzZSwg
c2xvd0Nhc2UpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0
LmFuY2hvcihib3hJbnQzMihjYWxsYmFjayhtX291dC5sb2FkMzIoZGF0YSwgY2FjaGVkRGF0YU9m
ZnNldCkpKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dDYXNlLCBjb250aW51YXRpb24pOworICAgICAgICAg
ICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcih2bUNhbGwoSW50NjQs
IG9wZXJhdGlvbiwgbV92bVZhbHVlLCBiYXNlKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNv
bnRpbnVhdGlvbik7CisKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwg
bGFzdE5leHQpOworICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQsIGZhc3RS
ZXN1bHQsIHNsb3dSZXN1bHQpKTsKKyAgICAgICAgfTsKKworICAgICAgICBhdXRvIGVtaXRHZXRD
b2RlID0gWyZdIChjb25zdCBBYnN0cmFjdEhlYXAmIGNhY2hlZERvdWJsZU9mZnNldCwgY29uc3Qg
QWJzdHJhY3RIZWFwJiBjYWNoZWREYXRhT2Zmc2V0LCBhdXRvKiBvcGVyYXRpb24pIHsKKyAgICAg
ICAgICAgIGVtaXRHZXRDb2RlV2l0aENhbGxiYWNrKGNhY2hlZERvdWJsZU9mZnNldCwgY2FjaGVk
RGF0YU9mZnNldCwgb3BlcmF0aW9uLCBbXSAoTFZhbHVlIHZhbHVlKSB7IHJldHVybiB2YWx1ZTsg
fSk7CisgICAgICAgIH07CisKKyAgICAgICAgc3dpdGNoIChtX25vZGUtPmludHJpbnNpYygpKSB7
CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWM6CisgICAgICAgICAg
ICBzZXREb3VibGUobV9vdXQubG9hZERvdWJsZShiYXNlLCBtX2hlYXBzLkRhdGVJbnN0YW5jZV9p
bnRlcm5hbE51bWJlcikpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBEYXRl
UHJvdG90eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90
b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJbnRyaW5zaWM6IHsKKyAgICAgICAgICAgIExWYWx1ZSBt
aWxsaXNlY29uZHMgPSBtX291dC5sb2FkRG91YmxlKGJhc2UsIG1faGVhcHMuRGF0ZUluc3RhbmNl
X2ludGVybmFsTnVtYmVyKTsKKyAgICAgICAgICAgIExWYWx1ZSBtc1BlclNlY29uZENvbnN0YW50
ID0gbV9vdXQuY29uc3REb3VibGUobXNQZXJTZWNvbmQpOworICAgICAgICAgICAgTFZhbHVlIHNl
Y29uZHMgPSBtX291dC5kb3VibGVGbG9vcihtX291dC5kb3VibGVEaXYobWlsbGlzZWNvbmRzLCBt
c1BlclNlY29uZENvbnN0YW50KSk7CisgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQu
ZG91YmxlVG9JbnQobV9vdXQuZG91YmxlU3ViKG1pbGxpc2Vjb25kcywgbV9vdXQuZG91YmxlTXVs
KHNlY29uZHMsIG1zUGVyU2Vjb25kQ29uc3RhbnQpKSk7CisgICAgICAgICAgICBzZXRKU1ZhbHVl
KG1fb3V0LnNlbGVjdChtX291dC5kb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKG1pbGxpc2Vjb25k
cywgbWlsbGlzZWNvbmRzKSwgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjplbmNvZGUoanNOYU4o
KSkpLCBib3hJbnQzMihyZXN1bHQpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEZ1bGxZZWFySW50cmluc2ljOgorICAgICAg
ICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVU
aW1lQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5E
YXRlVGltZV95ZWFyLCBvcGVyYXRpb25EYXRlR2V0RnVsbFllYXIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50cmluc2ljOgor
ICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlh
bkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRH
cmVnb3JpYW5EYXRlVGltZVVUQ195ZWFyLCBvcGVyYXRpb25EYXRlR2V0VVRDRnVsbFllYXIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50
cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRh
X2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9j
YWNoZWRHcmVnb3JpYW5EYXRlVGltZV9tb250aCwgb3BlcmF0aW9uRGF0ZUdldE1vbnRoKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNb250aElu
dHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0
YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURh
dGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfbW9udGgsIG9wZXJhdGlvbkRhdGVHZXRVVENN
b250aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0
RGF0ZUludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3Rh
bmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5j
ZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfbW9udGhEYXksIG9wZXJhdGlvbkRhdGVHZXRE
YXRlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRV
VENEYXRlSW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5z
dGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUlu
c3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19tb250aERheSwgb3BlcmF0aW9u
RGF0ZUdldFVUQ0RhdGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVBy
b3RvdHlwZUdldERheUludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMu
RGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBzLkRh
dGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfd2Vla0RheSwgb3BlcmF0aW9u
RGF0ZUdldERheSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0VVRDRGF5SW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5E
YXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMsIG1faGVhcHMu
RGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ193ZWVrRGF5LCBvcGVy
YXRpb25EYXRlR2V0VVRDRGF5KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERh
dGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1f
aGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hl
YXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfaG91ciwgb3BlcmF0
aW9uRGF0ZUdldEhvdXJzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQ
cm90b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1f
aGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBt
X2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfaG91ciwg
b3BlcmF0aW9uRGF0ZUdldFVUQ0hvdXJzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRNaW51dGVzSW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdl
dENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9y
TVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9taW51
dGUsIG9wZXJhdGlvbkRhdGVHZXRNaW51dGVzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNaW51dGVzSW50cmluc2ljOgorICAgICAgICAgICAg
ZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRD
Q2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRl
VGltZVVUQ19taW51dGUsIG9wZXJhdGlvbkRhdGVHZXRVVENNaW51dGVzKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRTZWNvbmRzSW50cmluc2ljOgor
ICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlh
bkRhdGVUaW1lQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVn
b3JpYW5EYXRlVGltZV9zZWNvbmQsIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENTZWNvbmRzSW50cmlu
c2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dy
ZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9j
YWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19zZWNvbmQsIG9wZXJhdGlvbkRhdGVHZXRVVENTZWNv
bmRzKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdl
dFRpbWV6b25lT2Zmc2V0SW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGVXaXRoQ2Fs
bGJhY2sobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9y
TVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV91dGNP
ZmZzZXRJbk1pbnV0ZSwgb3BlcmF0aW9uRGF0ZUdldFRpbWV6b25lT2Zmc2V0LCBbJl0gKExWYWx1
ZSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9vdXQubmVnKG9mZnNldCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRGF0ZVBy
b3RvdHlwZUdldFllYXJJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZVdpdGhDYWxs
YmFjayhtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JN
UywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX3llYXIs
IG9wZXJhdGlvbkRhdGVHZXRZZWFyLCBbJl0gKExWYWx1ZSB5ZWFyKSB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIG1fb3V0LnN1Yih5ZWFyLCBtX291dC5jb25zdEludDMyKDE5MDApKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICB9CiAg
ICAgCiAgICAgdm9pZCBlbWl0U3dpdGNoRm9yTXVsdGlCeU9mZnNldChMVmFsdWUgYmFzZSwgYm9v
bCBzdHJ1Y3R1cmVzQ2hlY2tlZCwgVmVjdG9yPFN3aXRjaENhc2UsIDI+JiBjYXNlcywgTEJhc2lj
QmxvY2sgZXhpdCkKICAgICB7CkBAIC0xNTc1Nyw2ICsxNTg3MCwxMyBAQCBjbGFzcyBMb3dlckRG
R1RvQjMgewogICAgICAgICBzcGVjdWxhdGVEYXRhVmlld09iamVjdChlZGdlLCByZXN1bHQpOwog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKworICAgIExWYWx1ZSBsb3dEYXRlT2JqZWN0
KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2Up
OworICAgICAgICBzcGVjdWxhdGVEYXRlT2JqZWN0KGVkZ2UsIHJlc3VsdCk7CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfQogICAgIAogICAgIExWYWx1ZSBsb3dTdHJpbmcoRWRnZSBlZGdl
LCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRp
b24pCiAgICAgewpAQCAtMTYyNDIsNiArMTYzNjIsOSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewog
ICAgICAgICBjYXNlIERlcml2ZWRBcnJheVVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZURlcml2
ZWRBcnJheShlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVPYmpl
Y3RVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVEYXRlT2JqZWN0KGVkZ2UpOworICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICAgICAgc3BlY3Vs
YXRlTWFwT2JqZWN0KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xNjc2OCw2ICsxNjg5
MSwxNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBzcGVjdWxhdGVQcm9taXNlT2Jq
ZWN0KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOwogICAgIH0KIAorICAgIHZvaWQgc3BlY3VsYXRlRGF0
ZU9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVf
Q0hFQ0soCisgICAgICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNEYXRlT2Jq
ZWN0LCBpc05vdFR5cGUoY2VsbCwgSlNEYXRlVHlwZSkpOworICAgIH0KKworICAgIHZvaWQgc3Bl
Y3VsYXRlRGF0ZU9iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVjdWxhdGVEYXRl
T2JqZWN0KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKwogICAgIHZvaWQgc3BlY3VsYXRl
TWFwT2JqZWN0KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewogICAgICAgICBGVExfVFlQ
RV9DSEVDSygKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVD
b252ZXJzaW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJz
aW9uLmNwcAppbmRleCBhZTlmNGUwY2E3Y2NiMDJmYWI0MmJmYzJlMjY0OWIwMmJhOGVkOTRhLi41
YjJhYTFhNzFmZmY1YTUwZGQzMTFlZGQyNWVhZGQxODJlN2I3YzlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVyc2lvbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCkBAIC05Nyw4ICs5Nyw4
IEBAIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBHcmVnb3JpYW5EYXRlVGltZSYgdCwgRGF0
ZVRpbWVGb3JtYXQgZm9ybWF0LCBib29sIGFzCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiIEdNVCIpOwogCiAgICAgICAgIGlmICghYXNVVENWYXJpYW50KSB7Ci0gICAgICAgICAgICBp
bnQgb2Zmc2V0ID0gYWJzKHQudXRjT2Zmc2V0KCkpIC8gNjA7Ci0gICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCh0LnV0Y09mZnNldCgpIDwgMCA/ICctJyA6ICcrJyk7CisgICAgICAgICAgICBpbnQg
b2Zmc2V0ID0gYWJzKHQudXRjT2Zmc2V0SW5NaW51dGUoKSk7CisgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCh0LnV0Y09mZnNldEluTWludXRlKCkgPCAwID8gJy0nIDogJysnKTsKICAgICAgICAg
ICAgIGFwcGVuZE51bWJlcjwyPihidWlsZGVyLCBvZmZzZXQgLyA2MCk7CiAgICAgICAgICAgICBh
cHBlbmROdW1iZXI8Mj4oYnVpbGRlciwgb2Zmc2V0ICUgNjApOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAppbmRleCA3YjRlNDVjZWE0MTk5YTE4
NzIzNzkxNDFjZDVlMjJlMTc2ZDM0ZTQ3Li44ZjVjMmVkMjI2MzI5NWNiYzQ1N2VlNzZlYWViMzc0
ZDNlN2YyYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
SW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0
YW5jZS5jcHAKQEAgLTU3LDEzICs1NywxMiBAQCB2b2lkIERhdGVJbnN0YW5jZTo6ZGVzdHJveShK
U0NlbGwqIGNlbGwpCiAgICAgc3RhdGljX2Nhc3Q8RGF0ZUluc3RhbmNlKj4oY2VsbCktPkRhdGVJ
bnN0YW5jZTo6fkRhdGVJbnN0YW5jZSgpOwogfQogCi1jb25zdCBHcmVnb3JpYW5EYXRlVGltZSog
RGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KSBjb25zdAorY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIERhdGVJbnN0YW5j
ZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWUoVk0mIHZtKSBjb25zdAogewogICAgIGRvdWJs
ZSBtaWxsaSA9IGludGVybmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4obWlsbGkpKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgaWYgKCFtX2RhdGEpCiAgICAgICAgIG1fZGF0YSA9
IHZtLmRhdGVJbnN0YW5jZUNhY2hlLmFkZChtaWxsaSk7CiAKQEAgLTc0LDEzICs3MywxMiBAQCBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5E
YXRlVGltZShKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiAmbV9kYXRhLT5tX2NhY2hlZEdyZWdv
cmlhbkRhdGVUaW1lOwogfQogCi1jb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNl
OjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZVVUQyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KSBjb25zdAorY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIERhdGVJbnN0YW5jZTo6Y2FsY3Vs
YXRlR3JlZ29yaWFuRGF0ZVRpbWVVVEMoVk0mIHZtKSBjb25zdAogewogICAgIGRvdWJsZSBtaWxs
aSA9IGludGVybmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4obWlsbGkpKQotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgaWYgKCFtX2RhdGEpCiAgICAgICAgIG1fZGF0YSA9IHZtLmRh
dGVJbnN0YW5jZUNhY2hlLmFkZChtaWxsaSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUluc3RhbmNlLmgKaW5kZXggMzU3OGFiODJhNDY1MzYwMWMwOWQ4MGRkMDQ1NDQ1
ZWI4MDQyOWM2Yy4uOWU3NzgzOTcxNGZjZGMxN2I4N2E2NGQ5N2JiODQwZjk3Y2FkYzQ2YiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKQEAgLTU0LDI4
ICs1NCwzMSBAQCBjbGFzcyBEYXRlSW5zdGFuY2UgZmluYWwgOiBwdWJsaWMgSlNEZXN0cnVjdGli
bGVPYmplY3QgewogCiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKIAotICAgIGNvbnN0IEdyZWdv
cmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KSBjb25zdAorICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGlt
ZShWTSYgdm0pIGNvbnN0CiAgICAgewogICAgICAgICBpZiAobV9kYXRhICYmIG1fZGF0YS0+bV9n
cmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TID09IGludGVybmFsTnVtYmVyKCkpCiAgICAgICAg
ICAgICByZXR1cm4gJm1fZGF0YS0+bV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZTsKLSAgICAgICAg
cmV0dXJuIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgICAg
IHJldHVybiBjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgfQogCi0gICAgY29u
c3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lVVRDKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpIGNvbnN0CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdv
cmlhbkRhdGVUaW1lVVRDKFZNJiB2bSkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChtX2RhdGEg
JiYgbV9kYXRhLT5tX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMgPT0gaW50ZXJuYWxO
dW1iZXIoKSkKICAgICAgICAgICAgIHJldHVybiAmbV9kYXRhLT5tX2NhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lVVRDOwotICAgICAgICByZXR1cm4gY2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWVVVEMo
Z2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1l
VVRDKHZtKTsKICAgICB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oSlNEYXRlVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwog
ICAgIH0KIAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigpIHsg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihEYXRlSW5zdGFuY2UsIG1faW50ZXJuYWxOdW1iZXIpOyB9
CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkRhdGEoKSB7IHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoRGF0ZUluc3RhbmNlLCBtX2RhdGEpOyB9CisKIHByaXZhdGU6Ci0gICAgSlNfRVhQT1JU
X1BSSVZBVEUgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVU
aW1lKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3Qg
R3JlZ29yaWFuRGF0ZVRpbWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lVVRDKEpTR2xvYmFs
T2JqZWN0KikgY29uc3Q7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lKFZNJikgY29uc3Q7CisgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRh
dGVUaW1lVVRDKFZNJikgY29uc3Q7CiAKICAgICBkb3VibGUgbV9pbnRlcm5hbE51bWJlciB7IFBO
YU4gfTsKICAgICBtdXRhYmxlIFJlZlB0cjxEYXRlSW5zdGFuY2VEYXRhPiBtX2RhdGE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlQ2FjaGUuaAppbmRl
eCA3NTY0MGViMzczMDQxYzhlOTNjNGI5MjY2NmI4ZjFmZTIzNzM4NWExLi4yYzRmYjUyMmQzZWY5
YjYyZThiNDBiZTMzZWU4ZWVjZWFlMTBiMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmgKQEAgLTM3LDE3ICszNywxOCBAQCBjbGFz
cyBEYXRlSW5zdGFuY2VEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0ZUluc3RhbmNlRGF0YT4g
ewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGF0ZUluc3RhbmNlRGF0YT4gY3JlYXRlKCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlSW5zdGFuY2VEYXRhKTsgfQogCi0gICAgZG91YmxlIG1f
Z3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUzsKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNl
dE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRP
RihEYXRlSW5zdGFuY2VEYXRhLCBtX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMpOyB9Cisg
ICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgeyBy
ZXR1cm4gT0JKRUNUX09GRlNFVE9GKERhdGVJbnN0YW5jZURhdGEsIG1fY2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWUpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkdyZWdvcmlhbkRhdGVU
aW1lVVRDQ2FjaGVkRm9yTVMoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRGF0ZUluc3RhbmNl
RGF0YSwgbV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKTsgfQorICAgIHN0YXRpYyBw
dHJkaWZmX3Qgb2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpIHsgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihEYXRlSW5zdGFuY2VEYXRhLCBtX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1l
VVRDKTsgfQorCisgICAgZG91YmxlIG1fZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUyB7IFBO
YU4gfTsKICAgICBHcmVnb3JpYW5EYXRlVGltZSBtX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lOwot
ICAgIGRvdWJsZSBtX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVM7CisgICAgZG91Ymxl
IG1fZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUyB7IFBOYU4gfTsKICAgICBHcmVnb3Jp
YW5EYXRlVGltZSBtX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDOwogCiBwcml2YXRlOgotICAg
IERhdGVJbnN0YW5jZURhdGEoKQotICAgICAgICA6IG1fZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRG
b3JNUyhQTmFOKQotICAgICAgICAsIG1fZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUyhQ
TmFOKQotICAgIHsKLSAgICB9CisgICAgRGF0ZUluc3RhbmNlRGF0YSgpID0gZGVmYXVsdDsKIH07
CiAKIGNsYXNzIERhdGVJbnN0YW5jZUNhY2hlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggMjM5ZTkzMmVlZGM0ZmFkNTA3YmVhMTgz
NGY3ZDQ5NzVlNjlmMTJjZS4uMmFmZjBmNzNkN2M2NDRjNjhkYWQ1YzE2N2ZmZTNmMzdiZDQ3Yzg3
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5j
cHAKQEAgLTMxMyw3ICszMTMsNyBAQCBzdGF0aWMgSlNDZWxsKiBmb3JtYXRMb2NhbGVEYXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYQogc3RhdGljIEpT
Q2VsbCogZm9ybWF0TG9jYWxlRGF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgRGF0ZUluc3RhbmNlKiBkYXRlT2JqZWN0LCBkb3VibGUsIExvY2Fs
ZURhdGVUaW1lRm9ybWF0IGZvcm1hdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7Ci0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0
ZU9iamVjdC0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlT2JqZWN0LT5ncmVnb3JpYW5E
YXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJu
IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIkludmFsaWQgRGF0ZSJfcyk7CiAgICAgcmV0dXJuIGZv
cm1hdExvY2FsZURhdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsICpncmVnb3JpYW5EYXRlVGlt
ZSwgZm9ybWF0KTsKQEAgLTMzMSw4ICszMzEsOCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZm9y
bWF0ZURhdGVJbnN0YW5jZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAog
ICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGFzVVRDVmFy
aWFudAotICAgICAgICA/IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxP
YmplY3QpCi0gICAgICAgIDogdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9i
amVjdCk7CisgICAgICAgID8gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKQor
ICAgICAgICA6IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFn
cmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRy
aXZpYWxTdHJpbmcodm0sIFN0cmluZygiSW52YWxpZCBEYXRlIl9zKSkpOwogCkBAIC00NTQsMjUg
KzQ1NCwyNiBAQCBjb25zdCBDbGFzc0luZm8gRGF0ZVByb3RvdHlwZTo6c19pbmZvID0geyJPYmpl
Y3QiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAmZAogICB0b0xvY2FsZVN0cmluZyAgICAg
ICAgZGF0ZVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
ICAgICAgIDAKICAgdG9Mb2NhbGVEYXRlU3RyaW5nICAgIGRhdGVQcm90b0Z1bmNUb0xvY2FsZURh
dGVTdHJpbmcgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCiAgIHRvTG9jYWxlVGltZVN0
cmluZyAgICBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVUaW1lU3RyaW5nICAgICAgRG9udEVudW18RnVu
Y3Rpb24gICAgICAgMAotICB2YWx1ZU9mICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFRp
bWUgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VGltZSAg
ICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRUaW1lICAgICAgICAgICAgICAgICBEb250RW51
bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldEZ1bGxZZWFyICAgICAgICAgICBkYXRlUHJvdG9GdW5j
R2V0RnVsbFllYXIgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRV
VENGdWxsWWVhciAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyICAgICAgICAgIERv
bnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0TW9udGggICAgICAgICAgICAgIGRhdGVQcm90
b0Z1bmNHZXRNb250aCAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0g
IGdldFVUQ01vbnRoICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGggICAgICAgICAg
ICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXREYXRlICAgICAgICAgICAgICAgZGF0
ZVByb3RvRnVuY0dldERhdGUgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAg
IDAKLSAgZ2V0VVRDRGF0ZSAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlICAgICAg
ICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldERheSAgICAgICAgICAgICAg
ICBkYXRlUHJvdG9GdW5jR2V0RGF5ICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
ICAgICAgMAotICBnZXRVVENEYXkgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0RheSAg
ICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0SG91cnMgICAgICAg
ICAgICAgIGRhdGVQcm90b0Z1bmNHZXRIb3VycyAgICAgICAgICAgICAgICBEb250RW51bXxGdW5j
dGlvbiAgICAgICAwCi0gIGdldFVUQ0hvdXJzICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRD
SG91cnMgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRNaW51dGVz
ICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMgICAgICAgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VVRDTWludXRlcyAgICAgICAgIGRhdGVQcm90b0Z1bmNH
ZXRVVENNaW51dGVzICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFNl
Y29uZHMgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyAgICAgICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRVVENTZWNvbmRzICAgICAgICAgZGF0ZVByb3Rv
RnVuY0dldFVUQ1NlY29uZHMgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAg
Z2V0TWlsbGlzZWNvbmRzICAgICAgIGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMgICAgICAg
ICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFVUQ01pbGxpc2Vjb25kcyAgICBkYXRl
UHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAg
MAotICBnZXRUaW1lem9uZU9mZnNldCAgICAgZGF0ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKKyAgdmFsdWVPZiAgICAgICAgICAgICAg
IGRhdGVQcm90b0Z1bmNHZXRUaW1lICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAg
ICAgICAwICBEYXRlUHJvdG90eXBlR2V0VGltZUludHJpbnNpYworICBnZXRUaW1lICAgICAgICAg
ICAgICAgZGF0ZVByb3RvRnVuY0dldFRpbWUgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljCisgIGdldEZ1bGxZZWFy
ICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIgICAgICAgICAgICAgRG9udEVudW18
RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldEZ1bGxZZWFySW50cmluc2ljCisgIGdl
dFVUQ0Z1bGxZZWFyICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIgICAgICAgICAg
RG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50
cmluc2ljCisgIGdldE1vbnRoICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0TW9udGggICAg
ICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldE1v
bnRoSW50cmluc2ljCisgIGdldFVUQ01vbnRoICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRD
TW9udGggICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlw
ZUdldFVUQ01vbnRoSW50cmluc2ljCisgIGdldERhdGUgICAgICAgICAgICAgICBkYXRlUHJvdG9G
dW5jR2V0RGF0ZSAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0
ZVByb3RvdHlwZUdldERhdGVJbnRyaW5zaWMKKyAgZ2V0VVRDRGF0ZSAgICAgICAgICAgIGRhdGVQ
cm90b0Z1bmNHZXRVVENEYXRlICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAw
ICBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNpYworICBnZXREYXkgICAgICAgICAgICAg
ICAgZGF0ZVByb3RvRnVuY0dldERheSAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
ICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXREYXlJbnRyaW5zaWMKKyAgZ2V0VVRDRGF5ICAgICAg
ICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENEYXkgICAgICAgICAgICAgICBEb250RW51bXxGdW5j
dGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VVRDRGF5SW50cmluc2ljCisgIGdldEhvdXJz
ICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0SG91cnMgICAgICAgICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldEhvdXJzSW50cmluc2ljCisgIGdl
dFVUQ0hvdXJzICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMgICAgICAgICAgICAg
RG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ0hvdXJzSW50cmlu
c2ljCisgIGdldE1pbnV0ZXMgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0TWludXRlcyAgICAg
ICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldE1pbnV0
ZXNJbnRyaW5zaWMKKyAgZ2V0VVRDTWludXRlcyAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENN
aW51dGVzICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBl
R2V0VVRDTWludXRlc0ludHJpbnNpYworICBnZXRTZWNvbmRzICAgICAgICAgICAgZGF0ZVByb3Rv
RnVuY0dldFNlY29uZHMgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERh
dGVQcm90b3R5cGVHZXRTZWNvbmRzSW50cmluc2ljCisgIGdldFVUQ1NlY29uZHMgICAgICAgICBk
YXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAg
ICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ1NlY29uZHNJbnRyaW5zaWMKKyAgZ2V0TWlsbGlzZWNv
bmRzICAgICAgIGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMgICAgICAgICBEb250RW51bXxG
dW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljCisg
IGdldFVUQ01pbGxpc2Vjb25kcyAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzICAg
ICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ01pbGxpc2Vj
b25kc0ludHJpbnNpYworICBnZXRUaW1lem9uZU9mZnNldCAgICAgZGF0ZVByb3RvRnVuY0dldFRp
bWV6b25lT2Zmc2V0ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5
cGVHZXRUaW1lem9uZU9mZnNldEludHJpbnNpYworICBnZXRZZWFyICAgICAgICAgICAgICAgZGF0
ZVByb3RvRnVuY0dldFllYXIgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAg
IDAgIERhdGVQcm90b3R5cGVHZXRZZWFySW50cmluc2ljCiAgIHNldFRpbWUgICAgICAgICAgICAg
ICBkYXRlUHJvdG9GdW5jU2V0VGltZSAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
ICAgICAgMQogICBzZXRNaWxsaXNlY29uZHMgICAgICAgZGF0ZVByb3RvRnVuY1NldE1pbGxpU2Vj
b25kcyAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDEKICAgc2V0VVRDTWlsbGlzZWNv
bmRzICAgIGRhdGVQcm90b0Z1bmNTZXRVVENNaWxsaXNlY29uZHMgICAgICBEb250RW51bXxGdW5j
dGlvbiAgICAgICAxCkBAIC00ODksNyArNDkwLDYgQEAgY29uc3QgQ2xhc3NJbmZvIERhdGVQcm90
b3R5cGU6OnNfaW5mbyA9IHsiT2JqZWN0IiwgJkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgJmQK
ICAgc2V0RnVsbFllYXIgICAgICAgICAgIGRhdGVQcm90b0Z1bmNTZXRGdWxsWWVhciAgICAgICAg
ICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAzCiAgIHNldFVUQ0Z1bGxZZWFyICAgICAgICBk
YXRlUHJvdG9GdW5jU2V0VVRDRnVsbFllYXIgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAg
ICAgMwogICBzZXRZZWFyICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY1NldFllYXIgICAgICAg
ICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDEKLSAgZ2V0WWVhciAgICAgICAgICAg
ICAgIGRhdGVQcm90b0Z1bmNHZXRZZWFyICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlv
biAgICAgICAwCiAgIHRvSlNPTiAgICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jVG9KU09OICAg
ICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMQogQGVuZAogKi8KQEAgLTU0
OSw3ICs1NDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNU
b0lTT1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIGlmICghc3RkOjppc2Zp
bml0ZSh0aGlzRGF0ZU9iai0+aW50ZXJuYWxOdW1iZXIoKSkpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihnbG9iYWxPYmpl
Y3QsICJJbnZhbGlkIERhdGUiX3MpKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBn
cmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9i
YWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGlt
ZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVn
b3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZp
YWxTdHJpbmcodm0sIFN0cmluZygiSW52YWxpZCBEYXRlIl9zKSkpOwogICAgIC8vIE1heGltdW0g
YW1vdW50IG9mIHNwYWNlIHdlIG5lZWQgaW4gYnVmZmVyOiA3IChtYXguIGRpZ2l0cyBpbiB5ZWFy
KSArIDIgKiA1ICgyIGNoYXJhY3RlcnMgZWFjaCBmb3IgbW9udGgsIGRheSwgaG91ciwgbWludXRl
LCBzZWNvbmQpICsgNCAoLiArIDMgZGlnaXRzIGZvciBtaWxsaXNlY29uZHMpCkBAIC02NjQsNyAr
NjY0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RnVs
bFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNE
YXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUg
PSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25z
dCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3Jl
Z29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpKSk7CkBAIC02NzksNyArNjc5
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRnVs
bFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRl
T2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29w
ZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25z
dCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3Jl
Z29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpKSk7CkBAIC02OTQsNyAr
Njk0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TW9u
dGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNE
YXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUg
PSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25z
dCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3Jl
Z29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGgoKSkpOwpAQCAtNzA5LDcgKzcw
OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01v
bnRoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0
ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0g
dGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCk7CisgICAgY29u
c3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdy
ZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKQEAgLTcyNCw3
ICs3MjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRE
YXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgaWYgKFVOTElLRUxZKCF0aGlz
RGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1l
ID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29u
c3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdy
ZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoRGF5KCkpKTsKQEAgLTczOSw3
ICs3MzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRV
VENEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIGlmIChVTkxJS0VMWSghdGhp
c0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGlt
ZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpOworICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aERheSgpKSk7CkBA
IC03NTQsNyArNzU0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0RGF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICBpZiAoVU5MSUtF
TFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsK
KyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CkBA
IC03NjksNyArNzY5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0VVRDRGF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICBpZiAoVU5MSUtF
TFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0
KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlz
RGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0
ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgp
KSk7CkBAIC03ODQsNyArNzg0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jR2V0SG91cnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBpZiAo
VU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3Jl
Z29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2Jq
ZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0
ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7
CkBAIC03OTksNyArNzk5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jR2V0VVRDSG91cnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBpZiAoVU5M
SUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2Jq
ZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFu
RGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91cigp
KSk7CkBAIC04MTQsNyArODE0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jR2V0TWludXRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBpZiAo
VU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3Jl
Z29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2Jq
ZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0
ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkp
KTsKQEAgLTgyOSw3ICs4MjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNHZXRVVENNaW51dGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIGlmIChV
TkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVn
b3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxP
YmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9
IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3Jp
YW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5taW51
dGUoKSkpOwpAQCAtODQ0LDcgKzg0NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY0dldFNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAg
aWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUq
IGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2Jh
bE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1l
ID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlh
bkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnNlY29u
ZCgpKSk7CkBAIC04NTksNyArODU5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBp
ZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSog
Z3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xv
YmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRp
bWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3Jl
Z29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+
c2Vjb25kKCkpKTsKQEAgLTg4MCw3ICs4ODAsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAog
CiAgICAgZG91YmxlIHNlY3MgPSBmbG9vcihtaWxsaSAvIG1zUGVyU2Vjb25kKTsKICAgICBkb3Vi
bGUgbXMgPSBtaWxsaSAtIHNlY3MgKiBtc1BlclNlY29uZDsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKG1zKSk7CisgICAgLy8gU2luY2UgdGltZUNsaXAgbWFrZXMgaW50ZXJu
YWxOdW1iZXIgaW50ZWdlciBtaWxsaXNlY29uZHMsIHRoaXMgcmVzdWx0IGlzIGFsd2F5cyBpbnQz
Ml90LgorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50
MzJfdD4obXMpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY0dldFVUQ01pbGxpc2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKQEAgLTg5OCw3ICs4OTksOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3Qq
IGdsbwogCiAgICAgZG91YmxlIHNlY3MgPSBmbG9vcihtaWxsaSAvIG1zUGVyU2Vjb25kKTsKICAg
ICBkb3VibGUgbXMgPSBtaWxsaSAtIHNlY3MgKiBtc1BlclNlY29uZDsKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG1zKSk7CisgICAgLy8gU2luY2UgdGltZUNsaXAgbWFrZXMg
aW50ZXJuYWxOdW1iZXIgaW50ZWdlciBtaWxsaXNlY29uZHMsIHRoaXMgcmVzdWx0IGlzIGFsd2F5
cyBpbnQzMl90LgorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nh
c3Q8aW50MzJfdD4obXMpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQpAQCAtOTEwLDEwICs5MTIsMTAgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQoSlNHbG9iYWxP
YmplY3QqIGdsb2IKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29y
aWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSog
Z3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwog
ICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOYU4oKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigtZ3JlZ29y
aWFuRGF0ZVRpbWUtPnV0Y09mZnNldCgpIC8gbWludXRlc1BlckhvdXIpKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC1ncmVnb3JpYW5EYXRlVGltZS0+dXRjT2Zmc2V0SW5N
aW51dGUoKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNTZXRUaW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQpAQCAtOTUxLDEzICs5NTMsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHNldE5ld1Zh
bHVlRnJvbVRpbWVBcmdzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICBk
b3VibGUgbXMgPSBtaWxsaSAtIHNlY3MgKiBtc1BlclNlY29uZDsKIAogICAgIGNvbnN0IEdyZWdv
cmlhbkRhdGVUaW1lKiBvdGhlciA9IGlucHV0VGltZVR5cGUgPT0gV1RGOjpVVENUaW1lCi0gICAg
ICAgID8gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCkKLSAg
ICAgICAgOiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAg
ICAgICAgPyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pCisgICAgICAgIDog
dGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIW90aGVyKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogCi0gICAgR3JlZ29yaWFuRGF0
ZVRpbWUgZ3JlZ29yaWFuRGF0ZVRpbWU7Ci0gICAgZ3JlZ29yaWFuRGF0ZVRpbWUuY29weUZyb20o
Km90aGVyKTsKKyAgICBHcmVnb3JpYW5EYXRlVGltZSBncmVnb3JpYW5EYXRlVGltZSgqb3RoZXIp
OwogICAgIGJvb2wgc3VjY2VzcyA9IGZpbGxTdHJ1Y3R1cmVzVXNpbmdUaW1lQXJncyhnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSwgbnVtQXJnc1RvVXNlLCAmbXMsICZncmVnb3JpYW5EYXRlVGltZSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAg
aWYgKCFzdWNjZXNzKSB7CkBAIC05OTQsMTEgKzk5NSwxMSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgc2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbAogICAgIGVsc2UgeyAKICAgICAgICAgbXMgPSBtaWxsaSAtIGZsb29yKG1pbGxpIC8gbXNQ
ZXJTZWNvbmQpICogbXNQZXJTZWNvbmQ7IAogICAgICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogb3RoZXIgPSBpbnB1dFRpbWVUeXBlID09IFdURjo6VVRDVGltZQotICAgICAgICAgICAgPyB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KQotICAgICAgICAg
ICAgOiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICAg
ICAgICAgID8gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKQorICAgICAgICAg
ICAgOiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgICAgICBpZiAoIW90
aGVyKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKLSAgICAg
ICAgZ3JlZ29yaWFuRGF0ZVRpbWUuY29weUZyb20oKm90aGVyKTsKKyAgICAgICAgZ3JlZ29yaWFu
RGF0ZVRpbWUgPSAqb3RoZXI7CiAgICAgfQogICAgIAogICAgIGJvb2wgc3VjY2VzcyA9IGZpbGxT
dHJ1Y3R1cmVzVXNpbmdEYXRlQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgbnVtQXJnc1Rv
VXNlLCAmbXMsICZncmVnb3JpYW5EYXRlVGltZSk7CkBAIC0xMTA5LDggKzExMTAsOCBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRZZWFyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgZWxzZSB7CiAgICAgICAgIGRvdWJsZSBzZWNzID0gZmxv
b3IobWlsbGkgLyBtc1BlclNlY29uZCk7CiAgICAgICAgIG1zID0gbWlsbGkgLSBzZWNzICogbXNQ
ZXJTZWNvbmQ7Ci0gICAgICAgIGlmIChjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogb3RoZXIgPSB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KSkKLSAgICAgICAgICAg
IGdyZWdvcmlhbkRhdGVUaW1lLmNvcHlGcm9tKCpvdGhlcik7CisgICAgICAgIGlmIChjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogb3RoZXIgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUo
dm0pKQorICAgICAgICAgICAgZ3JlZ29yaWFuRGF0ZVRpbWUgPSAqb3RoZXI7CiAgICAgfQogCiAg
ICAgZG91YmxlIHllYXIgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvSW50ZWdlclByZXNlcnZl
TmFOKGdsb2JhbE9iamVjdCk7CkBAIC0xMTM2LDcgKzExMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29y
aWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRh
dGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdv
cmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBp
ZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TmFOKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRy
aW5zaWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcApp
bmRleCBhMTJhMjQwNTVjNzI5MGEzYTFjOTU2ZjZhYjRlNzYzN2Y4N2ZiYjM0Li5hNDFiNTdiMmNi
Y2JiMWMyZDVkNWY2Y2E5OWI2YWQ2MGI0ZWMyYTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKQEAgLTgzLDYgKzgzLDQ0IEBAIGNvbnN0IGNoYXIqIGlu
dHJpbnNpY05hbWUoSW50cmluc2ljIGludHJpbnNpYykKICAgICAgICAgcmV0dXJuICJDaGFyQ29k
ZUF0SW50cmluc2ljIjsKICAgICBjYXNlIENoYXJBdEludHJpbnNpYzoKICAgICAgICAgcmV0dXJu
ICJDaGFyQXRJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5z
aWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWMiOworICAg
IGNhc2UgRGF0ZVByb3RvdHlwZUdldEZ1bGxZZWFySW50cmluc2ljOgorICAgICAgICByZXR1cm4g
IkRhdGVQcm90b3R5cGVHZXRGdWxsWWVhckludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0VVRDRnVsbFllYXJJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlw
ZUdldFVUQ0Z1bGxZZWFySW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNb250
aEludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0TW9udGhJbnRyaW5z
aWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01vbnRoSW50cmluc2ljOgorICAgICAg
ICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRVVENNb250aEludHJpbnNpYyI7CisgICAgY2FzZSBE
YXRlUHJvdG90eXBlR2V0RGF0ZUludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90
eXBlR2V0RGF0ZUludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUlu
dHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNp
YyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF5SW50cmluc2ljOgorICAgICAgICByZXR1
cm4gIkRhdGVQcm90b3R5cGVHZXREYXlJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlw
ZUdldFVUQ0RheUludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRD
RGF5SW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYzoK
KyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0SG91cnNJbnRyaW5zaWMiOworICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldFVUQ0hvdXJzSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRh
dGVQcm90b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBl
R2V0TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0TWlu
dXRlc0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJp
bnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNp
YyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAg
cmV0dXJuICJEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRl
UHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJv
dG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0
TWlsbGlzZWNvbmRzSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRN
aWxsaXNlY29uZHNJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01pbGxp
c2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDTWls
bGlzZWNvbmRzSW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9m
ZnNldEludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VGltZXpvbmVP
ZmZzZXRJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFllYXJJbnRyaW5zaWM6
CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFllYXJJbnRyaW5zaWMiOwogICAgIGNh
c2UgRnJvbUNoYXJDb2RlSW50cmluc2ljOgogICAgICAgICByZXR1cm4gIkZyb21DaGFyQ29kZUlu
dHJpbnNpYyI7CiAgICAgY2FzZSBQb3dJbnRyaW5zaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludHJpbnNpYy5oCmluZGV4IGU1MWI4MzlkOTg2Njc2ODk4M2U3NTE4ZTI0NzVlYTM1
OGQ5ZmQ4NTEuLmZlMmU5MTBmOTFlZGVhZWQyNjA5ZjQyNDc0ZTI4MDRiYjZmZmNjZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCkBAIC01NCw2ICs1NCwyNSBA
QCBlbnVtIEludHJpbnNpYyA6IHVpbnQ4X3QgewogICAgIEFycmF5SW5kZXhPZkludHJpbnNpYywK
ICAgICBDaGFyQ29kZUF0SW50cmluc2ljLAogICAgIENoYXJBdEludHJpbnNpYywKKyAgICBEYXRl
UHJvdG90eXBlR2V0VGltZUludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0RnVsbFllYXJJ
bnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50cmluc2ljLAorICAg
IERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRD
TW9udGhJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldERhdGVJbnRyaW5zaWMsCisgICAg
RGF0ZVByb3RvdHlwZUdldFVUQ0RhdGVJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldERh
eUludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRDRGF5SW50cmluc2ljLAorICAgIERh
dGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRDSG91
cnNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldE1pbnV0ZXNJbnRyaW5zaWMsCisgICAg
RGF0ZVByb3RvdHlwZUdldFVUQ01pbnV0ZXNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdl
dFNlY29uZHNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ1NlY29uZHNJbnRyaW5z
aWMsCisgICAgRGF0ZVByb3RvdHlwZUdldE1pbGxpc2Vjb25kc0ludHJpbnNpYywKKyAgICBEYXRl
UHJvdG90eXBlR2V0VVRDTWlsbGlzZWNvbmRzSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVH
ZXRUaW1lem9uZU9mZnNldEludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0WWVhckludHJp
bnNpYywKICAgICBGcm9tQ2hhckNvZGVJbnRyaW5zaWMsCiAgICAgUG93SW50cmluc2ljLAogICAg
IEZsb29ySW50cmluc2ljLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNEYXRlTWF0aC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVN
YXRoLmNwcAppbmRleCA3OTk2YThmOGFlNzBlZjBjNTRkZmJiMjhkMzA2YzE5ZmJjNWFhZjIxLi42
YzhiMzc5NzY3ZjQ2MzEwY2YzNTNkYTQ4ZTQxZTNhNmI1ZTIyYTMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNwcApAQCAtMjE5LDcgKzIxOSw3IEBAIHZv
aWQgbXNUb0dyZWdvcmlhbkRhdGVUaW1lKFZNJiB2bSwgZG91YmxlIG1zLCBXVEY6OlRpbWVUeXBl
IG91dHB1dFRpbWVUeXBlLCBHcmVnCiAgICAgdG0uc2V0TW9udGgobW9udGhGcm9tRGF5SW5ZZWFy
KHRtLnllYXJEYXkoKSwgaXNMZWFwWWVhcih5ZWFyKSkpOwogICAgIHRtLnNldFllYXIoeWVhcik7
CiAgICAgdG0uc2V0SXNEU1QobG9jYWxUaW1lLmlzRFNUKTsKLSAgICB0bS5zZXRVdGNPZmZzZXQo
bG9jYWxUaW1lLm9mZnNldCAvIFdURjo6bXNQZXJTZWNvbmQpOworICAgIHRtLnNldFVUQ09mZnNl
dEluTWludXRlKGxvY2FsVGltZS5vZmZzZXQgLyBXVEY6Om1zUGVyTWludXRlKTsKIH0KIAogZG91
YmxlIHBhcnNlRGF0ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoVk0mIHZtLCBjb25zdCBj
aGFyKiBkYXRlU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNUeXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5jcHAK
aW5kZXggZDFjNjczZTY1ZmE4ZjJhN2I4ZWJjZjRlNWYyMTRmZjk4YzI4YjdlNC4uMTZkYzliOTFm
NGZjNDMxMjg2NDM2NDZlYzZkMDM5YWVjYWRmN2MxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGUuY3BwCkBAIC05Niw2ICs5Niw3IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQ
cmludFN0cmVhbSYgb3V0LCBKU0M6OkpTVHlwZSB0eXBlKQogICAgIENBU0UoV2l0aFNjb3BlVHlw
ZSkKICAgICBDQVNFKE1vZHVsZU5hbWVzcGFjZU9iamVjdFR5cGUpCiAgICAgQ0FTRShSZWdFeHBP
YmplY3RUeXBlKQorICAgIENBU0UoSlNEYXRlVHlwZSkKICAgICBDQVNFKFByb3h5T2JqZWN0VHlw
ZSkKICAgICBDQVNFKEpTR2VuZXJhdG9yVHlwZSkKICAgICBDQVNFKEpTQXN5bmNHZW5lcmF0b3JU
eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAppbmRleCA2ZTk5Njg3NGVm
MmUzYjdhYzQyYjUwYTE4NGVmNDhiNjJhZWQwYjZjLi44MGJkMzRjYjYyMjFhYWZiZTk2YWYxMDQ2
NTMyYTY3ZDc3MzJlYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaApA
QCAtMTA3LDYgKzEwNyw3IEBAIGVudW0gSlNUeXBlIDogdWludDhfdCB7CiAKICAgICBNb2R1bGVO
YW1lc3BhY2VPYmplY3RUeXBlLAogICAgIFJlZ0V4cE9iamVjdFR5cGUsCisgICAgSlNEYXRlVHlw
ZSwKICAgICBQcm94eU9iamVjdFR5cGUsCiAgICAgSlNHZW5lcmF0b3JUeXBlLAogICAgIEpTQXN5
bmNHZW5lcmF0b3JUeXBlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaCBi
L1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggZjllMjgxMWZiYWM0ZTc3OTg1Zjc2NjU4
MDA1MThhNTU2NDA0NDg1My4uN2UyZDFkZTczOTZhNzg0OTYyMDE4NDEyMjVhMzQ2MGUyODEyN2M2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5oCkBAIC0xMDYsMTYgKzEwNiwxNiBAQCBjb25zdCBjaGFyKiBjb25zdCB3
ZWVrZGF5TmFtZVs3XSA9IHsgIk1vbiIsICJUdWUiLCAiV2VkIiwgIlRodSIsICJGcmkiLCAiU2F0
IiwgIgogY29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAi
TWFyIiwgIkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJO
b3YiLCAiRGVjIiB9OwogY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJK
YW51YXJ5IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1
bHkiLCAiQXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2Vt
YmVyIiB9OwogCi1jb25zdCBkb3VibGUgaG91cnNQZXJEYXkgPSAyNC4wOwotY29uc3QgZG91Ymxl
IG1pbnV0ZXNQZXJIb3VyID0gNjAuMDsKLWNvbnN0IGRvdWJsZSBzZWNvbmRzUGVyTWludXRlID0g
NjAuMDsKLWNvbnN0IGRvdWJsZSBtc1BlclNlY29uZCA9IDEwMDAuMDsKLWNvbnN0IGRvdWJsZSBt
c1Blck1vbnRoID0gMjU5MjAwMDAwMC4wOwotY29uc3QgZG91YmxlIHNlY29uZHNQZXJIb3VyID0g
c2Vjb25kc1Blck1pbnV0ZSAqIG1pbnV0ZXNQZXJIb3VyOwotY29uc3QgZG91YmxlIHNlY29uZHNQ
ZXJEYXkgPSBzZWNvbmRzUGVySG91ciAqIGhvdXJzUGVyRGF5OwotY29uc3QgZG91YmxlIG1zUGVy
TWludXRlID0gbXNQZXJTZWNvbmQgKiBzZWNvbmRzUGVyTWludXRlOwotY29uc3QgZG91YmxlIG1z
UGVySG91ciA9IG1zUGVyU2Vjb25kICogc2Vjb25kc1BlckhvdXI7Ci1jb25zdCBkb3VibGUgbXNQ
ZXJEYXkgPSBtc1BlclNlY29uZCAqIHNlY29uZHNQZXJEYXk7CitzdGF0aWMgY29uc3RleHByIGRv
dWJsZSBob3Vyc1BlckRheSA9IDI0LjA7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBtaW51dGVz
UGVySG91ciA9IDYwLjA7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBzZWNvbmRzUGVyTWludXRl
ID0gNjAuMDsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIG1zUGVyU2Vjb25kID0gMTAwMC4wOwor
c3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbXNQZXJNb250aCA9IDI1OTIwMDAwMDAuMDsKK3N0YXRp
YyBjb25zdGV4cHIgZG91YmxlIHNlY29uZHNQZXJIb3VyID0gc2Vjb25kc1Blck1pbnV0ZSAqIG1p
bnV0ZXNQZXJIb3VyOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgc2Vjb25kc1BlckRheSA9IHNl
Y29uZHNQZXJIb3VyICogaG91cnNQZXJEYXk7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBtc1Bl
ck1pbnV0ZSA9IG1zUGVyU2Vjb25kICogc2Vjb25kc1Blck1pbnV0ZTsKK3N0YXRpYyBjb25zdGV4
cHIgZG91YmxlIG1zUGVySG91ciA9IG1zUGVyU2Vjb25kICogc2Vjb25kc1BlckhvdXI7CitzdGF0
aWMgY29uc3RleHByIGRvdWJsZSBtc1BlckRheSA9IG1zUGVyU2Vjb25kICogc2Vjb25kc1BlckRh
eTsKIAogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNMZWFwWWVhcihpbnQgeWVhcik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0dyZWdvcmlhbkRhdGVUaW1lLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL0dyZWdvcmlhbkRhdGVUaW1lLmNwcAppbmRleCBhM2M0NGI5MjFhNzA4MzJjMjQ1Nzhl
ZjRiOTA0ZGEyMTIyNjgyZjY0Li4zMjE0ODg3ZWYzZmY0YzkyMmNhYjUxNTkwMTYyMzc1MjYyMzA5
NDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9HcmVnb3JpYW5EYXRlVGltZS5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuY3BwCkBAIC02Miw3ICs2Miw3IEBA
IHZvaWQgR3JlZ29yaWFuRGF0ZVRpbWU6OnNldFRvQ3VycmVudExvY2FsVGltZSgpCiAgICAgbV9o
b3VyID0gc3lzdGVtVGltZS53SG91cjsKICAgICBtX21pbnV0ZSA9IHN5c3RlbVRpbWUud01pbnV0
ZTsKICAgICBtX3NlY29uZCA9IHN5c3RlbVRpbWUud1NlY29uZDsKLSAgICBtX3V0Y09mZnNldCA9
IC1iaWFzICogc2Vjb25kc1Blck1pbnV0ZTsKKyAgICBtX3V0Y09mZnNldEluTWludXRlID0gLWJp
YXM7CiAgICAgbV9pc0RTVCA9IHRpbWVab25lSWQgPT0gVElNRV9aT05FX0lEX0RBWUxJR0hUID8g
MSA6IDA7CiAjZWxzZQogICAgIHRtIGxvY2FsVE07CkBAIC04Myw5ICs4Myw5IEBAIHZvaWQgR3Jl
Z29yaWFuRGF0ZVRpbWU6OnNldFRvQ3VycmVudExvY2FsVGltZSgpCiAgICAgbV9zZWNvbmQgPSBs
b2NhbFRNLnRtX3NlYzsKICAgICBtX2lzRFNUID0gbG9jYWxUTS50bV9pc2RzdDsKICNpZiBIQVZF
KFRNX0dNVE9GRikKLSAgICBtX3V0Y09mZnNldCA9IGxvY2FsVE0udG1fZ210b2ZmOworICAgIG1f
dXRjT2Zmc2V0SW5NaW51dGUgPSBsb2NhbFRNLnRtX2dtdG9mZiAvIHNlY29uZHNQZXJNaW51dGU7
CiAjZWxzZQotICAgIG1fdXRjT2Zmc2V0ID0gY2FsY3VsYXRlTG9jYWxUaW1lT2Zmc2V0KGxvY2Fs
VGltZSAqIG1zUGVyU2Vjb25kKS5vZmZzZXQgLyBtc1BlclNlY29uZDsKKyAgICBtX3V0Y09mZnNl
dEluTWludXRlID0gY2FsY3VsYXRlTG9jYWxUaW1lT2Zmc2V0KGxvY2FsVGltZSAqIG1zUGVyU2Vj
b25kKS5vZmZzZXQgLyBtc1Blck1pbnV0ZTsKICNlbmRpZgogI2VuZGlmCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9HcmVnb3JpYW5EYXRlVGltZS5oIGIvU291cmNlL1dURi93dGYvR3Jl
Z29yaWFuRGF0ZVRpbWUuaAppbmRleCAyNWRkMTVjYWUwNGJmODI3ZmUxZmZjZTk1Y2U1NzFmODcz
NjU3NTdmLi4wMmMyZWM3Y2YzMjFhYTlkNGI3ZmYwOWFhYjkwYTU3YWY1YWYwNjE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9HcmVnb3JpYW5EYXRlVGltZS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0dyZWdvcmlhbkRhdGVUaW1lLmgKQEAgLTI2LDI3ICsyNiwxNiBAQAogCiAjaW5jbHVkZSA8
c3RyaW5nLmg+CiAjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KIAogbmFtZXNwYWNlIFdURiB7CiAKIGNsYXNzIEdyZWdvcmlhbkRhdGVUaW1lIGZpbmFsIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShH
cmVnb3JpYW5EYXRlVGltZSk7CiBwdWJsaWM6Ci0gICAgR3JlZ29yaWFuRGF0ZVRpbWUoKQotICAg
ICAgICA6IG1feWVhcigwKQotICAgICAgICAsIG1fbW9udGgoMCkKLSAgICAgICAgLCBtX3llYXJE
YXkoMCkKLSAgICAgICAgLCBtX21vbnRoRGF5KDApCi0gICAgICAgICwgbV93ZWVrRGF5KDApCi0g
ICAgICAgICwgbV9ob3VyKDApCi0gICAgICAgICwgbV9taW51dGUoMCkKLSAgICAgICAgLCBtX3Nl
Y29uZCgwKQotICAgICAgICAsIG1fdXRjT2Zmc2V0KDApCi0gICAgICAgICwgbV9pc0RTVCgwKQot
ICAgIHsKLSAgICB9CisgICAgR3JlZ29yaWFuRGF0ZVRpbWUoKSA9IGRlZmF1bHQ7CiAKICAgICBp
bmxpbmUgaW50IHllYXIoKSBjb25zdCB7IHJldHVybiBtX3llYXI7IH0KICAgICBpbmxpbmUgaW50
IG1vbnRoKCkgY29uc3QgeyByZXR1cm4gbV9tb250aDsgfQpAQCAtNTYsNyArNDUsNyBAQCBjbGFz
cyBHcmVnb3JpYW5EYXRlVGltZSBmaW5hbCB7CiAgICAgaW5saW5lIGludCBob3VyKCkgY29uc3Qg
eyByZXR1cm4gbV9ob3VyOyB9CiAgICAgaW5saW5lIGludCBtaW51dGUoKSBjb25zdCB7IHJldHVy
biBtX21pbnV0ZTsgfQogICAgIGlubGluZSBpbnQgc2Vjb25kKCkgY29uc3QgeyByZXR1cm4gbV9z
ZWNvbmQ7IH0KLSAgICBpbmxpbmUgaW50IHV0Y09mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdXRj
T2Zmc2V0OyB9CisgICAgaW5saW5lIGludCB1dGNPZmZzZXRJbk1pbnV0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdXRjT2Zmc2V0SW5NaW51dGU7IH0KICAgICBpbmxpbmUgaW50IGlzRFNUKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0RTVDsgfQogCiAgICAgaW5saW5lIHZvaWQgc2V0WWVhcihpbnQgeWVhcikg
eyBtX3llYXIgPSB5ZWFyOyB9CkBAIC02Nyw5ICs1NiwyMCBAQCBjbGFzcyBHcmVnb3JpYW5EYXRl
VGltZSBmaW5hbCB7CiAgICAgaW5saW5lIHZvaWQgc2V0SG91cihpbnQgaG91cikgeyBtX2hvdXIg
PSBob3VyOyB9CiAgICAgaW5saW5lIHZvaWQgc2V0TWludXRlKGludCBtaW51dGUpIHsgbV9taW51
dGUgPSBtaW51dGU7IH0KICAgICBpbmxpbmUgdm9pZCBzZXRTZWNvbmQoaW50IHNlY29uZCkgeyBt
X3NlY29uZCA9IHNlY29uZDsgfQotICAgIGlubGluZSB2b2lkIHNldFV0Y09mZnNldChpbnQgdXRj
T2Zmc2V0KSB7IG1fdXRjT2Zmc2V0ID0gdXRjT2Zmc2V0OyB9CisgICAgaW5saW5lIHZvaWQgc2V0
VVRDT2Zmc2V0SW5NaW51dGUoaW50IHV0Y09mZnNldEluTWludXRlKSB7IG1fdXRjT2Zmc2V0SW5N
aW51dGUgPSB1dGNPZmZzZXRJbk1pbnV0ZTsgfQogICAgIGlubGluZSB2b2lkIHNldElzRFNUKGlu
dCBpc0RTVCkgeyBtX2lzRFNUID0gaXNEU1Q7IH0KIAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zm
c2V0T2ZZZWFyKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBt
X3llYXIpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk1vbnRoKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX21vbnRoKTsgfQorICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZZZWFyRGF5KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdy
ZWdvcmlhbkRhdGVUaW1lLCBtX3llYXJEYXkpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZz
ZXRPZk1vbnRoRGF5KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1l
LCBtX21vbnRoRGF5KTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXZWVrRGF5KCkg
eyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX3dlZWtEYXkpOyB9
CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkhvdXIoKSB7IHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoR3JlZ29yaWFuRGF0ZVRpbWUsIG1faG91cik7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mTWludXRlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVU
aW1lLCBtX21pbnV0ZSk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU2Vjb25kKCkg
eyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX3NlY29uZCk7IH0K
KyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mVVRDT2Zmc2V0SW5NaW51dGUoKSB7IHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoR3JlZ29yaWFuRGF0ZVRpbWUsIG1fdXRjT2Zmc2V0SW5NaW51dGUp
OyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZklzRFNUKCkgeyByZXR1cm4gT0JKRUNU
X09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX2lzRFNUKTsgfQorCiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgc2V0VG9DdXJyZW50TG9jYWxUaW1lKCk7CiAKICAgICBvcGVyYXRvciB0
bSgpIGNvbnN0CkBAIC04OCwzNyArODgsMjMgQEAgY2xhc3MgR3JlZ29yaWFuRGF0ZVRpbWUgZmlu
YWwgewogICAgICAgICByZXQudG1faXNkc3QgPSBtX2lzRFNUOwogCiAjaWYgSEFWRShUTV9HTVRP
RkYpCi0gICAgICAgIHJldC50bV9nbXRvZmYgPSBzdGF0aWNfY2FzdDxsb25nPihtX3V0Y09mZnNl
dCk7CisgICAgICAgIHJldC50bV9nbXRvZmYgPSBzdGF0aWNfY2FzdDxsb25nPihtX3V0Y09mZnNl
dEluTWludXRlKSAqIHN0YXRpY19jYXN0PGxvbmc+KHNlY29uZHNQZXJNaW51dGUpOwogI2VuZGlm
CiAKICAgICAgICAgcmV0dXJuIHJldDsKICAgICB9CiAKLSAgICB2b2lkIGNvcHlGcm9tKGNvbnN0
IEdyZWdvcmlhbkRhdGVUaW1lJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIG1feWVhciA9IG90aGVy
Lm1feWVhcjsKLSAgICAgICAgbV9tb250aCA9IG90aGVyLm1fbW9udGg7Ci0gICAgICAgIG1feWVh
ckRheSA9IG90aGVyLm1feWVhckRheTsKLSAgICAgICAgbV9tb250aERheSA9IG90aGVyLm1fbW9u
dGhEYXk7Ci0gICAgICAgIG1fd2Vla0RheSA9IG90aGVyLm1fd2Vla0RheTsKLSAgICAgICAgbV9o
b3VyID0gb3RoZXIubV9ob3VyOwotICAgICAgICBtX21pbnV0ZSA9IG90aGVyLm1fbWludXRlOwot
ICAgICAgICBtX3NlY29uZCA9IG90aGVyLm1fc2Vjb25kOwotICAgICAgICBtX3V0Y09mZnNldCA9
IG90aGVyLm1fdXRjT2Zmc2V0OwotICAgICAgICBtX2lzRFNUID0gb3RoZXIubV9pc0RTVDsKLSAg
ICB9Ci0KIHByaXZhdGU6Ci0gICAgaW50IG1feWVhcjsKLSAgICBpbnQgbV9tb250aDsKLSAgICBp
bnQgbV95ZWFyRGF5OwotICAgIGludCBtX21vbnRoRGF5OwotICAgIGludCBtX3dlZWtEYXk7Ci0g
ICAgaW50IG1faG91cjsKLSAgICBpbnQgbV9taW51dGU7Ci0gICAgaW50IG1fc2Vjb25kOwotICAg
IGludCBtX3V0Y09mZnNldDsKLSAgICBpbnQgbV9pc0RTVDsKKyAgICBpbnQgbV95ZWFyIHsgMCB9
OworICAgIGludCBtX21vbnRoIHsgMCB9OworICAgIGludCBtX3llYXJEYXkgeyAwIH07CisgICAg
aW50IG1fbW9udGhEYXkgeyAwIH07CisgICAgaW50IG1fd2Vla0RheSB7IDAgfTsKKyAgICBpbnQg
bV9ob3VyIHsgMCB9OworICAgIGludCBtX21pbnV0ZSB7IDAgfTsKKyAgICBpbnQgbV9zZWNvbmQg
eyAwIH07CisgICAgaW50IG1fdXRjT2Zmc2V0SW5NaW51dGUgeyAwIH07CisgICAgaW50IG1faXNE
U1QgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCmluZGV4IGM5OTdiMzE4
NjdkMzgwZDI4OTBjZWUyYmY1NTFkYjlkNDcxMDhkMjUuLjEwNmE3ZjhmOWI0MWUwNDM4YTAzNjc0
NWJhOWNkN2FmZGFlZThmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNo
aXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fy
Y2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIFJlZjxTaGFy
ZWRCdWZmZXI+IE1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEoUGFnZSogcGFnZSkKIAog
ICAgIEdyZWdvcmlhbkRhdGVUaW1lIG5vdzsKICAgICBub3cuc2V0VG9DdXJyZW50TG9jYWxUaW1l
KCk7Ci0gICAgU3RyaW5nIGRhdGVTdHJpbmcgPSBtYWtlUkZDMjgyMkRhdGVTdHJpbmcobm93Lndl
ZWtEYXkoKSwgbm93Lm1vbnRoRGF5KCksIG5vdy5tb250aCgpLCBub3cueWVhcigpLCBub3cuaG91
cigpLCBub3cubWludXRlKCksIG5vdy5zZWNvbmQoKSwgbm93LnV0Y09mZnNldCgpIC8gNjApOwor
ICAgIFN0cmluZyBkYXRlU3RyaW5nID0gbWFrZVJGQzI4MjJEYXRlU3RyaW5nKG5vdy53ZWVrRGF5
KCksIG5vdy5tb250aERheSgpLCBub3cubW9udGgoKSwgbm93LnllYXIoKSwgbm93LmhvdXIoKSwg
bm93Lm1pbnV0ZSgpLCBub3cuc2Vjb25kKCksIG5vdy51dGNPZmZzZXRJbk1pbnV0ZSgpKTsKIAog
ICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZCgiRnJvbTogPFNhdmVkIGJ5IFdlYktpdD5cclxuIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0No
YW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY3MGNjNWMyNjYyMDIyNDFhMTllNWE1
ZTAzOTY4NzVhZmExNWE3MmMuLjM4YTE0ZDliOGFmZjJmM2FkNTk0MzNmYzBiZmU3MTQxN2E3YzFi
YjYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNzEgQEAKKzIwMTktMTAtMjggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KKworICAgICAgICBbSlNDXSBEYXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBpbnRy
aW5zaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MjE4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3RyZXNzL2RhdGUtZ2V0LWRhdGUtaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToK
KyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC1kYXktaml0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0
cmVzcy9kYXRlLWdldC1mdWxsLXllYXItaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJl
KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC1ob3Vycy1qaXQu
anM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogc3RyZXNzL2RhdGUtZ2V0LW1pbGxpc2Vjb25kcy1qaXQuanM6IEFkZGVkLgorICAgICAgICAo
c2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LW1p
bnV0ZXMtaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC1tb250aC1qaXQuanM6IEFkZGVkLgorICAgICAg
ICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0
LXNlY29uZHMtaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC10aW1lLWppdC5qczogQWRkZWQuCisgICAg
ICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1n
ZXQtdGltZXpvbmUtb2Zmc2V0LWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6Cisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdXRjLWRhdGUtaml0Lmpz
OiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHN0cmVzcy9kYXRlLWdldC11dGMtZGF5LWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRC
ZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdXRjLWZ1bGwt
eWVhci1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXV0Yy1ob3Vycy1qaXQuanM6IEFkZGVkLgorICAg
ICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUt
Z2V0LXV0Yy1taWxsaXNlY29uZHMtaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToK
KyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC11dGMtbWludXRlcy1q
aXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAg
ICAgICogc3RyZXNzL2RhdGUtZ2V0LXV0Yy1tb250aC1qaXQuanM6IEFkZGVkLgorICAgICAgICAo
c2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXV0
Yy1zZWNvbmRzLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0
ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQteWVhci1qaXQuanM6IEFkZGVkLgorICAg
ICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUt
dmFsdWUtb2Ytaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRl
c3QpOgorCiAyMDE5LTEwLTI1ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNv
bT4KIAogICAgICAgICB0ZXN0MjYyLXJ1bm5lciBzaG91bGQgYmUgYWJsZSB0byBwYXNzIEpTQyBh
IGZlYXR1cmUgZmxhZwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF0ZS1q
aXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1kYXRlLWppdC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
NDNlN2JlZTIxNmIyOWZkYTZiOTg4MDI5MWJjYTRmYmM2YTI2MzQyCi0tLSAvZGV2L251bGwKKysr
IGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF0ZS1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAor
ZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVh
bCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldERhdGUo
KTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52
YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldERhdGUoKTsKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBl
eHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCks
IGQuZ2V0RGF0ZSgpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7
Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1kYXktaml0LmpzIGIvSlNU
ZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF5LWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjU3NzMxNDgyYzEw
NTc1YWE4N2E5YmU4ZmI2ZTc2ZTQzMDZjMTcxCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9z
dHJlc3MvZGF0ZS1nZXQtZGF5LWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91
bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVu
Y3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0RGF5KCk7Cit9Citub0lubGlu
ZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0
ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXREYXkoKTsKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAg
dmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0RGF5KCkpOwor
ICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LWZ1bGwteWVhci1qaXQuanMgYi9KU1Rlc3RzL3N0cmVz
cy9kYXRlLWdldC1mdWxsLXllYXItaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMzhiYjFmODFkMDMwNmM5
ZDA3NzIzYWI1MjFhZjBhZGZmYjJmZDgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy9kYXRlLWdldC1mdWxsLXllYXItaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitm
dW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpOworfQor
bm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0g
bmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0RnVsbFllYXIoKTsKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBl
Y3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQu
Z2V0RnVsbFllYXIoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUp
OworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtaG91cnMtaml0LmpzIGIv
SlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtaG91cnMtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmMjg3MDRj
ZmU2ZGJiNTIwN2NmOWEyNmVhMGEwYWNjNDkxZGU3M2QKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3N0cmVzcy9kYXRlLWdldC1ob3Vycy1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rp
b24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVj
dGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldEhvdXJzKCk7Cit9
Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQg
PSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRIb3VycygpOworZm9yICh2
YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVj
dGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5n
ZXRIb3VycygpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1taWxsaXNlY29uZHMtaml0Lmpz
IGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtbWlsbGlzZWNvbmRzLWppdC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yNDkwOWNmMjMwNzc4OGQyZjNlNDFiN2M4ZGQ3ZmU4YWRhZjc4NDllCi0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtbWlsbGlzZWNvbmRzLWppdC5qcwpAQCAtMCww
ICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYg
KGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVl
OiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRh
dGUuZ2V0TWlsbGlzZWNvbmRzKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBu
ZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0g
ZGF0ZS5nZXRNaWxsaXNlY29uZHMoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsK
KyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0
ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0TWlsbGlzZWNvbmRzKCkpOworICAgIHNo
b3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2RhdGUtZ2V0LW1pbnV0ZXMtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1n
ZXQtbWludXRlcy1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y0Nzc0YTFkOGVhZTUyYjA2ZmNkODg2ZmJl
MTQ2OWJiMzgwNDYwNwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0
LW1pbnV0ZXMtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVh
bCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0
KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRNaW51dGVzKCk7Cit9Citub0lubGluZSh0ZXN0
KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4p
OwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRNaW51dGVzKCk7Citmb3IgKHZhciBpID0gMDsgaSA8
IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZh
ciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldE1pbnV0ZXMoKSk7
CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtbW9udGgtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3Mv
ZGF0ZS1nZXQtbW9udGgtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0NWRjMWFiNmVlMzI3YzY3YjdhMWY3
ZDE3ODRiYWZmODg1NmVlN2MKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRl
LWdldC1tb250aC1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0
dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCk7Cit9Citub0lubGluZSh0ZXN0
KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4p
OwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRNb250aCgpOworZm9yICh2YXIgaSA9IDA7IGkgPCAx
ZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIg
ZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRNb250aCgpKTsKKyAg
ICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1zZWNvbmRzLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2Rh
dGUtZ2V0LXNlY29uZHMtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmNDc2Y2JhNDhkNTdmODE4YWM3ZGNh
NGIzMjJlYjk3ZmQ3ZmViZDkKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRl
LWdldC1zZWNvbmRzLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShh
Y3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24g
dGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0U2Vjb25kcygpOworfQorbm9JbmxpbmUo
dGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUo
TmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0U2Vjb25kcygpOworZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAg
ICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRTZWNvbmRz
KCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXRpbWUtaml0LmpzIGIvSlNUZXN0cy9zdHJl
c3MvZGF0ZS1nZXQtdGltZS1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThlMTY0MWVmODk3Y2E0OGQ2N2Fi
N2JhYzY5MzM3OTdkYzUyZDVhNwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Rh
dGUtZ2V0LXRpbWUtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFj
dHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0
ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCk7Cit9Citub0lubGluZSh0ZXN0
KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4p
OwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRUaW1lKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFl
NjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBk
ID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldFRpbWUoKSk7CisgICAg
c2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdGltZXpvbmUtb2Zmc2V0LWppdC5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2RhdGUtZ2V0LXRpbWV6b25lLW9mZnNldC1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRmNzc3MjYw
N2YyY2I1MjExMjIzMDE2YjMzODFkYzNiMDg4ZDI4ZgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2RhdGUtZ2V0LXRpbWV6b25lLW9mZnNldC1qaXQuanMKQEAgLTAsMCArMSwxOSBA
QAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwg
IT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFj
dHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldFRp
bWV6b25lT2Zmc2V0KCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0
ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5n
ZXRUaW1lem9uZU9mZnNldCgpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAg
IHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7
CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRUaW1lem9uZU9mZnNldCgpKTsKKyAgICBzaG91
bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9kYXRlLWdldC11dGMtZGF0ZS1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdl
dC11dGMtZGF0ZS1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBlMTUyZDk2OWQ2NmQzZWU4MWIxNWYzNWMz
YTM3ZjcyNTBiYzU2ZAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0
LXV0Yy1kYXRlLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1
YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVz
dChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VVRDRGF0ZSgpOworfQorbm9JbmxpbmUodGVz
dCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFO
KTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0VVRDRGF0ZSgpOworZm9yICh2YXIgaSA9IDA7IGkg
PCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2
YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRVVENEYXRlKCkp
OworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1kYXktaml0LmpzIGIvSlNUZXN0cy9zdHJl
c3MvZGF0ZS1nZXQtdXRjLWRheS1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYzYWNjYzRmMDVmNmRmOTlh
MDczNmExZjAwOGQzYTkzMTQyYTNkYwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2RhdGUtZ2V0LXV0Yy1kYXktaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3Vs
ZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5j
dGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRVVENEYXkoKTsKK30KK25vSW5s
aW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBE
YXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFVUQ0RheSgpOworZm9yICh2YXIgaSA9
IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsK
KyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRVVENE
YXkoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLWZ1bGwteWVhci1qaXQuanMgYi9K
U1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtZnVsbC15ZWFyLWppdC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
N2FkNjNlMmViYjY3NDk5YmRmMjVlN2M5MTM5ZjFkY2IyZTY3Y2QxCi0tLSAvZGV2L251bGwKKysr
IGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLWZ1bGwteWVhci1qaXQuanMKQEAgLTAsMCAr
MSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChh
Y3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTog
JyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRl
LmdldFVUQ0Z1bGxZZWFyKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcg
RGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0
ZS5nZXRVVENGdWxsWWVhcigpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAg
IHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7
CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRVVENGdWxsWWVhcigpKTsKKyAgICBzaG91bGRC
ZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9kYXRlLWdldC11dGMtaG91cnMtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQt
dXRjLWhvdXJzLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzVkZDc0MDkxZTM3NWNjMzJmNTg4NzViZTUw
NmM5Y2RjNmI4ZWM0Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQt
dXRjLWhvdXJzLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1
YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVz
dChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VVRDSG91cnMoKTsKK30KK25vSW5saW5lKHRl
c3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5h
Tik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFVUQ0hvdXJzKCk7Citmb3IgKHZhciBpID0gMDsg
aSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAg
IHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldFVUQ0hvdXJz
KCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1taWxsaXNlY29uZHMtaml0LmpzIGIv
SlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1pbGxpc2Vjb25kcy1qaXQuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmM3NDIxZTIzODJhMzljZTY3MWI3NjM2NDQ1Yzc2ZWM0YTUxY2IxNwotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1taWxsaXNlY29uZHMtaml0LmpzCkBA
IC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAg
ICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQg
dmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1
cm4gZGF0ZS5nZXRVVENNaWxsaXNlY29uZHMoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIg
ZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhw
ZWN0ZWQgPSBkYXRlLmdldFVUQ01pbGxpc2Vjb25kcygpOworZm9yICh2YXIgaSA9IDA7IGkgPCAx
ZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIg
ZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRVVENNaWxsaXNlY29u
ZHMoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1pbnV0ZXMtaml0LmpzIGIvSlNU
ZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1pbnV0ZXMtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5MjYz
YzVmZDE3MjNhMjJlYjIwNjI0OWRiZTcwNTQ0Mzg5NzdkNjEKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtbWludXRlcy1qaXQuanMKQEAgLTAsMCArMSwxOSBA
QAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwg
IT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFj
dHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldFVU
Q01pbnV0ZXMoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7
Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFVU
Q01pbnV0ZXMoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRC
ZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNo
b3VsZEJlKHRlc3QoZCksIGQuZ2V0VVRDTWludXRlcygpKTsKKyAgICBzaG91bGRCZShpc05hTih0
ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRl
LWdldC11dGMtbW9udGgtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1vbnRo
LWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44NmJjNTI0MDdjODY3ODZmODQzNzA5NDQwNWJlOGEyMWNmZjhk
MmY5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1vbnRo
LWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVj
dGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7
CisgICAgcmV0dXJuIGRhdGUuZ2V0VVRDTW9udGgoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2
YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIg
ZXhwZWN0ZWQgPSBkYXRlLmdldFVUQ01vbnRoKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsg
KytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0g
bmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldFVUQ01vbnRoKCkpOworICAg
IHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1zZWNvbmRzLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNz
L2RhdGUtZ2V0LXV0Yy1zZWNvbmRzLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzg3YzMwZDI5ZTc4ZjY3
ZGFiNzc3NzNlNTcxMTMwMGIzNDBlMDA3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJl
c3MvZGF0ZS1nZXQtdXRjLXNlY29uZHMtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3Rl
ZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQor
CitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRVVENTZWNvbmRzKCk7
Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFs
aWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRVVENTZWNvbmRzKCk7
Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRl
KSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0
KGQpLCBkLmdldFVUQ1NlY29uZHMoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlk
KSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQteWVhci1q
aXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC15ZWFyLWppdC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ZTE2YjgzNWEwNmRkMzI5YjY3YWQ4OWZiOTA2N2E4NmMxNjk3NDliCi0tLSAvZGV2L251bGwKKysr
IGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQteWVhci1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAor
ZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVh
bCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldFllYXIo
KTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52
YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFllYXIoKTsKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBl
eHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCks
IGQuZ2V0WWVhcigpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7
Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLXZhbHVlLW9mLWppdC5qcyBiL0pT
VGVzdHMvc3RyZXNzL2RhdGUtdmFsdWUtb2Ytaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMzkzOGI0Njhh
N2Q3NGZjN2RiZjdlMmVlYTc3OWU2OGEyYzA3ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9kYXRlLXZhbHVlLW9mLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKwor
ZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUudmFsdWVPZigpOworfQorbm9J
bmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3
IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUudmFsdWVPZigpOworZm9yICh2YXIgaSA9
IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsK
KyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC52YWx1ZU9m
KCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382154</attachid>
            <date>2019-10-28 20:36:10 -0700</date>
            <delta_ts>2019-10-28 22:28:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202187-20191028203609.patch</filename>
            <type>text/plain</type>
            <size>125310</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NjNkNGZjY2Q3ZmQwNzc4ZDg3ODJiMmRiNWRkZWQ0NzllODIxZmY0Li4yNDIxZjAwNjQzMTQ2YWRk
NTU0ZWFiMmIyZGJiM2UzODAwMTk5YjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjAgQEAKKzIwMTktMTAtMjggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBEYXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBpbnRyaW5zaWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE4Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJ1biBTdW5T
cGlkZXIgMTAwIHRpbWVzIGFuZCBnZXQgdGhlIHNvbGlkIGltcHJvdmVtZW50IGluIERhdGUgcmVs
YXRlZCBiZW5jaG1hcmtzLgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBUb1QgICAgICAgICAgICAgICAgICAgICBQYXRjaGVkCisKKyAgICAgICAgICAgIGRhdGUt
Zm9ybWF0LXRvZnRlICAgICAgICA1LjM1MTErLTAuMDI2MCAgICAgXiAgICAgIDUuMjc0NystMC4w
MjczICAgICAgICBeIGRlZmluaXRlbHkgMS4wMTQ1eCBmYXN0ZXIKKyAgICAgICAgICAgIGRhdGUt
Zm9ybWF0LXhwYXJiICAgICAgICA0LjkxOTYrLTAuMDI2NSAgICAgXiAgICAgIDQuNzA2NystMC4w
MjAwICAgICAgICBeIGRlZmluaXRlbHkgMS4wNDUyeCBmYXN0ZXIKKworICAgICAgICAqIGJ5dGVj
b2RlL1NwZWN1bGF0ZWRUeXBlLmNwcDoKKyAgICAgICAgKEpTQzo6ZHVtcFNwZWN1bGF0aW9uKToK
KyAgICAgICAgKEpTQzo6c3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKToKKyAgICAgICAgKEpTQzo6
c3BlY3VsYXRpb25Gcm9tSlNUeXBlKToKKyAgICAgICAgKEpTQzo6c3BlY3VsYXRpb25Gcm9tU3Ry
aW5nKToKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oOgorICAgICAgICAqIGRm
Zy9ERkdBYnN0cmFjdEhlYXAuaDoKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
cklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3Ry
YWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUlu
dHJpbnNpY0NhbGwpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChK
U0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBk
ZmcvREZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjpkdW1wKToKKyAgICAg
ICAgKiBkZmcvREZHSGVhcExvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5h
bCk6CisgICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5oOgorICAgICAgICAqIGRmZy9ERkdO
b2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzSW50cmluc2ljKToKKyAgICAgICAg
KEpTQzo6REZHOjpOb2RlOjppbnRyaW5zaWMpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhh
c0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAg
KiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoK
KyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAg
ICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6U2FmZVRvRXhl
Y3V0ZUVkZ2U6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUp
OgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGVPYmplY3QpOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZURhdGVHZXQpOgorICAgICAgICAqIGRmZy9ERkdVc2VLaW5kLmNwcDoKKyAgICAgICAgKFdURjo6
cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjp0eXBlRmlsdGVyRm9yKToKKyAgICAgICAgKEpTQzo6REZHOjppc0NlbGwpOgorICAg
ICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKiBmdGwv
RlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRp
ZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9G
VExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNv
bXBpbGVEYXRlR2V0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6bG93
RGF0ZU9iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1
bGF0ZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZURh
dGVPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwOgorICAgICAg
ICAoSlNDOjpmb3JtYXREYXRlVGltZSk6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2Uu
Y3BwOgorICAgICAgICAoSlNDOjpEYXRlSW5zdGFuY2U6OmNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVU
aW1lIGNvbnN0KToKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3Jp
YW5EYXRlVGltZVVUQyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuaDoK
KyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmg6CisgICAgICAgIChKU0M6OkRh
dGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUyk6Cisg
ICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWUpOgorICAgICAgICAoSlNDOjpEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlh
bkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMpOgorICAgICAgICAoSlNDOjpEYXRlSW5zdGFuY2VEYXRh
OjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKToKKyAgICAgICAgKEpTQzo6RGF0
ZUluc3RhbmNlRGF0YTo6RGF0ZUluc3RhbmNlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Zm9ybWF0TG9jYWxlRGF0ZSk6
CisgICAgICAgIChKU0M6OmZvcm1hdGVEYXRlSW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpkYXRl
UHJvdG9GdW5jVG9JU09TdHJpbmcpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0RnVs
bFllYXIpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIpOgorICAg
ICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0TW9udGgpOgorICAgICAgICAoSlNDOjpkYXRlUHJv
dG9GdW5jR2V0VVRDTW9udGgpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0RGF0ZSk6
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENEYXRlKToKKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY0dldERheSk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENE
YXkpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0SG91cnMpOgorICAgICAgICAoSlND
OjpkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5j
R2V0TWludXRlcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVzKToK
KyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFNlY29uZHMpOgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNH
ZXRNaWxsaVNlY29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDTWlsbGlz
ZWNvbmRzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0KToK
KyAgICAgICAgKEpTQzo6c2V0TmV3VmFsdWVGcm9tVGltZUFyZ3MpOgorICAgICAgICAoSlNDOjpz
ZXROZXdWYWx1ZUZyb21EYXRlQXJncyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNTZXRZ
ZWFyKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFllYXIpOgorICAgICAgICAqIHJ1
bnRpbWUvSW50cmluc2ljLmNwcDoKKyAgICAgICAgKEpTQzo6aW50cmluc2ljTmFtZSk6CisgICAg
ICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRGF0ZU1hdGgu
Y3BwOgorICAgICAgICAoSlNDOjptc1RvR3JlZ29yaWFuRGF0ZVRpbWUpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNUeXBlLmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAg
ICogcnVudGltZS9KU1R5cGUuaDoKKwogMjAxOS0xMC0yOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFJlbW92ZSBKU1Byb21pc2VEZWZlcnJlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpp
bmRleCA1MGFiZmY4NzY3MWM3MjU3MDc3NzQyY2Q4YzQ4ODAzZWU2NjNkZjgzLi4xNzRjOTY5NTI3
ODI0M2VjNjY5Zjc5NDg1YjI3MDZkZGMxMmVkZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5
LTEwLTI4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pT
Q10gRGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGhhdmUgaW50cmluc2ljCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxODcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9EYXRlTWF0aC5oOgorICAgICAg
ICAqIHd0Zi9HcmVnb3JpYW5EYXRlVGltZS5jcHA6CisgICAgICAgIChXVEY6OkdyZWdvcmlhbkRh
dGVUaW1lOjpzZXRUb0N1cnJlbnRMb2NhbFRpbWUpOgorICAgICAgICAqIHd0Zi9HcmVnb3JpYW5E
YXRlVGltZS5oOgorCiAyMDE5LTEwLTI2ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4K
IAogICAgICAgICBQdXQgT2Zmc2NyZWVuQ2FudmFzIGJlaGluZCBhIGJ1aWxkIGZsYWcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxYmEzYTFkN2IxZDJlMWQzMWU4MmZlMDIxNjNmNjI0MDBlY2ZkYzY1Li4zMGI1ZThk
ZTU5ZDg4NDc4ZmZlM2Y3NDQ0N2YyMGRkNTlkNTg4NDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTktMTAtMjggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbSlNDXSBEYXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBpbnRyaW5zaWMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE4NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9hZGVyL2FyY2hp
dmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1IVE1MQXJjaGl2
ZTo6Z2VuZXJhdGVNSFRNTERhdGEpOgorCiAyMDE5LTEwLTI4ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3ZlIEpTUHJvbWlzZURlZmVycmVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNw
cAppbmRleCA4NDQzOGUzOTM1ZTI3MjAyMWYwOWQyNTFjNTlmNzg5YTkyZGY5ODIxLi40MTllZWJk
OGRkOTU4MTY3MGQyZjAwYWJlMDNhMGVlYzllZTZkNTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgogCisjaW5j
bHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5j
bHVkZSAiSlNBcnJheS5oIgogI2luY2x1ZGUgIkpTQmlnSW50LmgiCkBAIC0xNzQsNiArMTc1LDEx
IEBAIHZvaWQgZHVtcFNwZWN1bGF0aW9uKFByaW50U3RyZWFtJiBvdXRTdHJlYW0sIFNwZWN1bGF0
ZWRUeXBlIHZhbHVlKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGlzVG9wID0g
ZmFsc2U7CiAKKyAgICAgICAgICAgIGlmICh2YWx1ZSAmIFNwZWNEYXRlT2JqZWN0KQorICAgICAg
ICAgICAgICAgIHN0ck91dC5wcmludCgiRGF0ZU9iamVjdCIpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CisKICAgICAgICAgICAgIGlmICh2YWx1ZSAm
IFNwZWNQcm9taXNlT2JqZWN0KQogICAgICAgICAgICAgICAgIHN0ck91dC5wcmludCgiUHJvbWlz
ZU9iamVjdCIpOwogICAgICAgICAgICAgZWxzZQpAQCAtNDQ1LDYgKzQ1MSw5IEBAIFNwZWN1bGF0
ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyhjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5m
bykKICAgICBpZiAoY2xhc3NJbmZvID09IFJlZ0V4cE9iamVjdDo6aW5mbygpKQogICAgICAgICBy
ZXR1cm4gU3BlY1JlZ0V4cE9iamVjdDsKIAorICAgIGlmIChjbGFzc0luZm8gPT0gRGF0ZUluc3Rh
bmNlOjppbmZvKCkpCisgICAgICAgIHJldHVybiBTcGVjRGF0ZU9iamVjdDsKKwogICAgIGlmIChj
bGFzc0luZm8gPT0gSlNNYXA6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNNYXBPYmplY3Q7
CiAKQEAgLTU5NCw2ICs2MDMsOCBAQCBPcHRpb25hbDxTcGVjdWxhdGVkVHlwZT4gc3BlY3VsYXRp
b25Gcm9tSlNUeXBlKEpTVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gU3BlY0Rlcml2ZWRBcnJh
eTsKICAgICBjYXNlIFJlZ0V4cE9iamVjdFR5cGU6CiAgICAgICAgIHJldHVybiBTcGVjUmVnRXhw
T2JqZWN0OworICAgIGNhc2UgSlNEYXRlVHlwZToKKyAgICAgICAgcmV0dXJuIFNwZWNEYXRlT2Jq
ZWN0OwogICAgIGNhc2UgUHJveHlPYmplY3RUeXBlOgogICAgICAgICByZXR1cm4gU3BlY1Byb3h5
T2JqZWN0OwogICAgIGNhc2UgSlNQcm9taXNlVHlwZToKQEAgLTgxNCw2ICs4MjUsOCBAQCBTcGVj
dWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21TdHJpbmcoY29uc3QgY2hhciogc3BlY3VsYXRpb24p
CiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nT2JqZWN0OwogICAgIGlmICghc3RybmNtcChzcGVj
dWxhdGlvbiwgIlNwZWNSZWdFeHBPYmplY3QiLCBzdHJsZW4oIlNwZWNSZWdFeHBPYmplY3QiKSkp
CiAgICAgICAgIHJldHVybiBTcGVjUmVnRXhwT2JqZWN0OworICAgIGlmICghc3RybmNtcChzcGVj
dWxhdGlvbiwgIlNwZWNEYXRlT2JqZWN0Iiwgc3RybGVuKCJTcGVjRGF0ZU9iamVjdCIpKSkKKyAg
ICAgICAgcmV0dXJuIFNwZWNEYXRlT2JqZWN0OwogICAgIGlmICghc3RybmNtcChzcGVjdWxhdGlv
biwgIlNwZWNQcm9taXNlT2JqZWN0Iiwgc3RybGVuKCJTcGVjUHJvbWlzZU9iamVjdCIpKSkKICAg
ICAgICAgcmV0dXJuIFNwZWNQcm9taXNlT2JqZWN0OwogICAgIGlmICghc3RybmNtcChzcGVjdWxh
dGlvbiwgIlNwZWNNYXBPYmplY3QiLCBzdHJsZW4oIlNwZWNNYXBPYmplY3QiKSkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCmluZGV4IGIxMTUz
YjQ3ZDJmZDNhNTllZTNmY2ZmYjBmM2JiZjM5YjAxNTE5NWIuLmExMTIzOGMxOThhMzcyOGFjYTAy
ZWU5NTMzMTdkMDkyZjEwYjM3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9TcGVjdWxhdGVkVHlwZS5oCkBAIC01OCwzMiArNTgsMzMgQEAgc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjRGlyZWN0QXJndW1lbnRzICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PAogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU2NvcGVkQXJndW1l
bnRzICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
U2NvcGVkQXJndW1lbnRzIG9iamVjdC4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY1N0cmluZ09iamVjdCAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTU7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIFN0cmluZ09iamVjdC4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY1JlZ0V4cE9iamVjdCAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTY7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIFJlZ0V4cE9iamVjdCAoYW5kIG5vdCBhbnkgc3ViY2xhc3Mg
b2YgUmVnRXhwT2JqZWN0KS4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1By
b21pc2VPYmplY3QgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTc7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIFByb21pc2Ugb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRp
YyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY01hcE9iamVjdCAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDF1bGwgPDwgMTg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE1hcCBvYmplY3Qgb3Ig
b25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjU2V0T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxOTsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgU2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNXZWFrTWFwT2JqZWN0ICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFrTWFwIG9iamVj
dCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRU
eXBlIFNwZWNXZWFrU2V0T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIxOyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBXZWFrU2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNz
ZXMuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9iamVjdCAgICAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm94
eSBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0ZXhwciBTcGVj
dWxhdGVkVHlwZSBTcGVjRGVyaXZlZEFycmF5ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGVyaXZlZEFycmF5IG9iamVjdC4KLXN0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdE90aGVyICAgICAgICAgICAgICAgICAg
ICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBvYmplY3QgYnV0IG5vdCBK
U0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBKU0Z1bmN0aW9uLgotc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAgICAgICAgICAgICAgICAgID0gMXVs
bCA8PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFuIGlkZW50
aWZpZXIuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBK
U1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZpZXIuCitzdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNEYXRlT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDE3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBEYXRlIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1
YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm9taXNlT2Jq
ZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkg
YSBQcm9taXNlIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDE5OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9yIG9uZSBvZiBp
dHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1NldE9i
amVjdCAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjA7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIFNldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0
ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha01hcE9iamVjdCAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha01hcCBvYmplY3Qgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVj
V2Vha1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgV2Vha1NldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3Rh
dGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgICAgICAg
ICAgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJveHkgb2JqZWN0
IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY0Rlcml2ZWRBcnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIERlcml2ZWRBcnJheSBvYmplY3QuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDI1OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9i
amVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjY7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgor
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcs
IGFuZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY1N0cmluZ0lk
ZW50IHwgU3BlY1N0cmluZ1ZhcjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcuCi1zdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCi1zdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsT3RoZXIgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwgYnV0IG5v
dCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3RyaW5nLCBC
aWdJbnQsIG9yIFN5bWJvbC4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Jv
b2xJbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjk7IC8vIEl0J3MgZGVm
aW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAgb3IgMS4KLXN0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwgMzA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4g
MCBvciAxLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
U3ltYm9sLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
SlNDZWxsIGJ1dCBub3QgYSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3Qg
YSBKU1N0cmluZywgQmlnSW50LCBvciBTeW1ib2wuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMw
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCitzdGF0aWMg
Y29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25Cb29sSW50MzIgICAgICAgICAgICAgICAg
ICAgICAgPSAxdWxsIDw8IDMxOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1
ZSBvdGhlciB0aGFuIDAgb3IgMS4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0ludDMyT25seSAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNCb29sSW50MzIgfCBTcGVj
Tm9uQm9vbEludDMyOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIuCiAKLXN0YXRpYyBjb25z
dGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyQXNJbnQ1MiAgICAgICAgICAgICAgICAgICAg
ICA9IDF1bGwgPDwgMzE7IC8vIEl0J3MgYW4gSW50NTIgYW5kIGl0IGNhbiBmaXQgaW4gYW4gaW50
MzIuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnQzMkFzSW50NTIg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGFuIEludDUyIGFuZCBpdCBj
YW4ndCBmaXQgaW4gYW4gaW50MzIuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNw
ZWNJbnQzMkFzSW50NTIgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdz
IGFuIEludDUyIGFuZCBpdCBjYW4gZml0IGluIGFuIGludDMyLgorc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50MzJBc0ludDUyICAgICAgICAgICAgICAgICAgID0gMXVs
bCA8PCAzMzsgLy8gSXQncyBhbiBJbnQ1MiBhbmQgaXQgY2FuJ3QgZml0IGluIGFuIGludDMyLgog
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50NTJBbnkgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gU3BlY0ludDMyQXNJbnQ1MiB8IFNwZWNOb25JbnQzMkFzSW50NTI7IC8v
IEl0J3MgYW55IGtpbmQgb2YgSW50NTIuCiAKLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY0FueUludEFzRG91YmxlICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzM7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBkb3VibGUuCi1zdGF0
aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0RvdWJsZSAgICAgICAgICAg
ICAgICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgbm90IGFuIEludDUyIGJ1
dCBpdCdzIGEgcmVhbCBudW1iZXIgYW5kIGl0J3MgYSBkb3VibGUuCitzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEg
ZG91YmxlLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50QXNEb3Vi
bGUgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNTsgLy8gSXQncyBkZWZpbml0ZWx5IG5v
dCBhbiBJbnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgogc3Rh
dGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAgICAgICAg
ICAgICAgICAgID0gU3BlY05vbkludEFzRG91YmxlIHwgU3BlY0FueUludEFzRG91YmxlOyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBub24tTmFOIGRvdWJsZS4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY0RvdWJsZVB1cmVOYU4gICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MzU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHNhZmUgdG8gdGFnIChpLmUuIHB1
cmUpLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFO
ICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFO
IHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUHVyZU5hTiAgICAgICAgICAgICAgICAgICAgID0gMXVs
bCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FmZSB0byB0YWcgKGku
ZS4gcHVyZSkuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVJbXB1
cmVOYU4gICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM3OyAvLyBJdCdzIGRlZmluaXRlbHkg
YSBOYU4gdGhhdCBpcyB1bnNhZmUgdG8gdGFnIChpLmUuIGltcHVyZSkuCiBzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVOYU4gICAgICAgICAgICAgICAgICAgICAgICAg
PSBTcGVjRG91YmxlUHVyZU5hTiB8IFNwZWNEb3VibGVJbXB1cmVOYU47IC8vIEl0J3MgZGVmaW5p
dGVseSBzb21lIGtpbmQgb2YgTmFOLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjQnl0ZWNvZGVEb3VibGUgICAgICAgICAgICAgICAgICAgID0gU3BlY0RvdWJsZVJlYWwgfCBT
cGVjRG91YmxlUHVyZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJs
ZSwgYnV0IGl0J3MgZGVmaW5pdGVseSBub3QgaW1wdXJlIE5hTi4KIHN0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxEb3VibGUgICAgICAgICAgICAgICAgICAgICAgICA9IFNw
ZWNEb3VibGVSZWFsIHwgU3BlY0RvdWJsZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9y
IGEgTmFOIGRvdWJsZS4KQEAgLTkzLDE0ICs5NCwxNCBAQCBzdGF0aWMgY29uc3RleHByIFNwZWN1
bGF0ZWRUeXBlIFNwZWNCeXRlY29kZU51bWJlciAgICAgICAgICAgICAgICAgICAgPSBTcGVjSW50
Mwogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50QW55Rm9ybWF0ICAgICAg
ICAgICAgICAgICAgICAgID0gU3BlY0ludDUyQW55IHwgU3BlY0ludDMyT25seSB8IFNwZWNBbnlJ
bnRBc0RvdWJsZTsKIAogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbE51
bWJlciAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludEFueUZvcm1hdCB8IFNwZWNGdWxs
RG91YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiwgSW50NTIsIG9yIGEgRG91YmxlLCBhbmQg
dGhlIERvdWJsZSBjYW4gYmUgaW1wdXJlIE5hTi4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzc7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM4
OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVkLgorc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAzODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4KK3N0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY090aGVyICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDF1bGwgPDwgMzk7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBvciBVbmRl
ZmluZWQuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNjICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBk
ZWZpbml0ZWx5IGVpdGhlciBhIGJvb2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KLXN0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDF1bGwgPDwgMzk7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJr
ZXIuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCaWdJbnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDQwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCaWdJ
bnQuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEYXRhVmlld09iamVjdCAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDQxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Rh
dGFWaWV3Lgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCA0MDsgLy8gSXQncyBkZWZpbml0ZWx5IGFu
IGVtcHR5IHZhbHVlIG1hcmtlci4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0JpZ0ludCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDE7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIEJpZ0ludC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0RhdGFWaWV3T2JqZWN0ICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDI7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIEpTRGF0YVZpZXcuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNQcmltaXRpdmUgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjU3RyaW5nIHwgU3Bl
Y1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjIHwgU3BlY0JpZ0ludDsgLy8g
SXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVlLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2Jq
ZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3Bl
Y0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0
IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNwZWNQcm9taXNlT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8
IFNwZWNTZXRPYmplY3QgfCBTcGVjV2Vha01hcE9iamVjdCB8IFNwZWNXZWFrU2V0T2JqZWN0IHwg
U3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlciB8IFNw
ZWNEYXRhVmlld09iamVjdDsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2lu
ZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY09iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8
IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlvbiB8IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJl
Y3RBcmd1bWVudHMgfCBTcGVjU2NvcGVkQXJndW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNw
ZWNSZWdFeHBPYmplY3QgfCBTcGVjRGF0ZU9iamVjdCB8IFNwZWNQcm9taXNlT2JqZWN0IHwgU3Bl
Y01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVjV2Vha01hcE9iamVjdCB8IFNwZWNXZWFr
U2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmpl
Y3RPdGhlciB8IFNwZWNEYXRhVmlld09iamVjdDsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5n
IGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KIHN0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0NlbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNP
YmplY3QgfCBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNDZWxsT3RoZXIgfCBTcGVjQmln
SW50OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1
bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQ2Vs
bCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRo
ZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFO
Lgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVUb3AgICAgICAg
ICAgICAgICAgICAgICAgID0gU3BlY0hlYXBUb3AgfCBTcGVjRW1wdHk7IC8vIEl0IGNhbiBiZSBh
bnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9ubHkgYW5kIFNwZWNEb3VibGVJ
bXB1cmVOYU4uIENvcnJlc3BvbmRzIHRvIHdoYXQgY291bGQgYmUgZm91bmQgaW4gYSBieXRlY29k
ZSBsb2NhbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RIZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCmlu
ZGV4IGEzMDkyOWQ4YjBkNjhiMTY5OGYwZTQwMmY5NTY0ZDY3ZjUyMDZmYWYuLmJmOTkzNzc5NzA0
NzAyZDhkNWIyMGI2YzJmNmY3Mzk1YWZlNmI4NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RIZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEhlYXAuaApAQCAtNzEsNiArNzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oSGVhcE9iamVjdENvdW50KSAvKiBVc2VkIHRvIHJl
ZmxlY3QgdGhlIGZhY3QgdGhhdCBzb21lIGFsbG9jYXRpb25zIHJldmVhbCBvYmplY3QgaWRlbnRp
dHkgKi9cCiAgICAgbWFjcm8oUmVnRXhwU3RhdGUpIFwKICAgICBtYWNybyhNYXRoRG90UmFuZG9t
U3RhdGUpIFwKKyAgICBtYWNybyhKU0RhdGVGaWVsZHMpIFwKICAgICBtYWNybyhKU01hcEZpZWxk
cykgXAogICAgIG1hY3JvKEpTU2V0RmllbGRzKSBcCiAgICAgbWFjcm8oSlNXZWFrTWFwRmllbGRz
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggNTM3MDMzNzk2ZjZiOWJhMjE0Y2RmZTc5ZDFiNmJm
NDUxODEyODBhYi4uOGI3NTJkZjE0N2EyMDlkMTE3NjAxYmYwOWIzYWJmODZjYjBmNDQwMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaApAQCAtNDA2OCw2ICs0MDY4LDE2IEBAIGJvb2wgQWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2Ji
ZXJMaW1pCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgRGF0ZUdldEpTTnVtYmVy
OiB7CisgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2RlLCBTcGVjQnl0ZWNvZGVOdW1i
ZXIpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIERhdGVHZXRNYWNoaW5lRG91
YmxlOiB7CisgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2RlLCBTcGVjRnVsbERvdWJs
ZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgRGF0YVZpZXdTZXQ6IHsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAppbmRleCAyMjM0NDVjMmQ5NDU4MDdiZmNiODE5YWVmMjUxN2Y4NTBl
MWUzNDRmLi5lNDUwYjJkOTA0OTQ4MzBkY2FlNzkwNzA5MWFjYWQ2NDU3N2FlYjljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMzE5
NSw2ICszMTk1LDQxIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwo
Tm9kZSogY2FsbGVlLCBWaXJ0dWFsUmVnaXN0ZXIgcmVzdWx0LCBJCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWVJ
bnRyaW5zaWM6IHsKKyAgICAgICAgICAgIGlmICghaXM2NEJpdCgpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGluc2VydENoZWNrcygpOworICAgICAgICAgICAg
Tm9kZSogYmFzZSA9IGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgwLCByZWdpc3Rlck9m
ZnNldCkpOworICAgICAgICAgICAgc2V0UmVzdWx0KGFkZFRvR3JhcGgoRGF0ZUdldE1hY2hpbmVE
b3VibGUsIE9wSW5mbyhpbnRyaW5zaWMpLCBPcEluZm8oKSwgYmFzZSkpOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRG
dWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRnVsbFll
YXJJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50cmluc2lj
OgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNb250aEludHJpbnNpYzoKKyAgICAg
ICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF0ZUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRl
UHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBl
R2V0RGF5SW50cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENEYXlJbnRy
aW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEhvdXJzSW50cmluc2ljOgorICAg
ICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgY2Fz
ZSBEYXRlUHJvdG90eXBlR2V0TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJv
dG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBl
R2V0U2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDU2Vj
b25kc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRz
SW50cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJ
bnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWV6b25lT2Zmc2V0SW50
cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRZZWFySW50cmluc2ljOiB7Cisg
ICAgICAgICAgICBpZiAoIWlzNjRCaXQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICBpbnNlcnRDaGVja3MoKTsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBn
ZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoMCwgcmVnaXN0ZXJPZmZzZXQpKTsKKyAgICAg
ICAgICAgIHNldFJlc3VsdChhZGRUb0dyYXBoKERhdGVHZXRKU051bWJlciwgT3BJbmZvKGludHJp
bnNpYyksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSkpOworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIERhdGFWaWV3R2V0SW50ODoKICAgICAgICAg
Y2FzZSBEYXRhVmlld0dldFVpbnQ4OgogICAgICAgICBjYXNlIERhdGFWaWV3R2V0SW50MTY6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IGI4OWMwM2MwZmQw
Y2VkMDA3OTRkYWJkZjMzZDk1N2FmZjkzYjg4MDMuLjVjMzcwYmY2MzkyYWI3MmQ0MTNjMjJiYjI1
NGEyZDcwZWUyZDA3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6
ZS5oCkBAIC0xODE0LDYgKzE4MTQsMTMgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwg
Tm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAg
ICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT52YWxpZFJhZGl4Q29uc3RhbnQoKSkpOwogICAg
ICAgICByZXR1cm47CiAKKyAgICBjYXNlIERhdGVHZXRNYWNoaW5lRG91YmxlOgorICAgIGNhc2Ug
RGF0ZUdldEpTTnVtYmVyOiB7CisgICAgICAgIHJlYWQoSlNEYXRlRmllbGRzKTsKKyAgICAgICAg
ZGVmKEhlYXBMb2NhdGlvbihEYXRlRmllbGRMb2MsIEFic3RyYWN0SGVhcChKU0RhdGVGaWVsZHMs
IHN0YXRpY19jYXN0PHVpbnQ2NF90Pihub2RlLT5pbnRyaW5zaWMoKSkpLCBub2RlLT5jaGlsZDEo
KSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGNhc2Ug
RGF0YVZpZXdHZXRGbG9hdDoKICAgICBjYXNlIERhdGFWaWV3R2V0SW50OiB7CiAgICAgICAgIHJl
YWQoTWlzY0ZpZWxkcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5k
ZXggNWQyYjA1ZDNmZDE5YjM4YzFjN2I4NTI2YjJjNGM1NzkzYTNkMTRiMC4uYzk0YjE4MjkwNDQw
NTRjMmQ3MDY4ZTgzYzg5NGQxYmIyMzZkMmQyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG9lc0dDLmNwcApAQCAtMjQyLDYgKzI0Miw4IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEZpbHRlckdldEJ5SWRTdGF0dXM6CiAgICAgY2FzZSBG
aWx0ZXJQdXRCeUlkU3RhdHVzOgogICAgIGNhc2UgRmlsdGVySW5CeUlkU3RhdHVzOgorICAgIGNh
c2UgRGF0ZUdldEpTTnVtYmVyOgorICAgIGNhc2UgRGF0ZUdldE1hY2hpbmVEb3VibGU6CiAgICAg
Y2FzZSBEYXRhVmlld0dldEludDoKICAgICBjYXNlIERhdGFWaWV3R2V0RmxvYXQ6CiAgICAgY2Fz
ZSBEYXRhVmlld1NldDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwCmluZGV4IGUxZTE2NzgyNmYzODMwNDI4MWQwYTNlY2Y3ODk1Y2ZkZGQyYTRmNDcuLmQxODE2
MzkyNzcxYTg0MzU4ZjExN2M0ODZlNDFhNDU2MTc4YzQ2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMjMyMCw2ICsyMzIwLDExIEBAIGNsYXNz
IEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNl
Pihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIERh
dGVHZXRKU051bWJlcjoKKyAgICAgICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZToKKyAgICAg
ICAgICAgIGZpeEVkZ2U8RGF0ZU9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAg
ICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDoKICAgICAgICAgY2FzZSBE
YXRhVmlld0dldEZsb2F0OiB7CiAgICAgICAgICAgICBmaXhFZGdlPERhdGFWaWV3T2JqZWN0VXNl
Pihub2RlLT5jaGlsZDEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCmlu
ZGV4IGFkYmY1MDI1Y2YzZDQ0MWJlMThiNzJiMDlkZGY4OGY4NDVkYjkxMWQuLmNhOWZjMzRlMWQz
OWU1NzQ3NGExYmE0MzhhMzhkNjA3YjZiMmE0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguY3BwCkBAIC0zNjUsNiArMzY1LDggQEAgdm9pZCBHcmFwaDo6ZHVtcChQcmludFN0
cmVhbSYgb3V0LCBjb25zdCBjaGFyKiBwcmVmaXhTdHIsIE5vZGUqIG5vZGUsIER1bXBDb250ZXgK
ICAgICB9CiAgICAgaWYgKG5vZGUtPmhhc0lnbm9yZUxhc3RJbmRleElzV3JpdGFibGUoKSkKICAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCAiaWdub3JlTGFzdEluZGV4SXNXcml0YWJsZSA9ICIsIG5v
ZGUtPmlnbm9yZUxhc3RJbmRleElzV3JpdGFibGUoKSk7CisgICAgaWYgKG5vZGUtPmhhc0ludHJp
bnNpYygpKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJpbnRyaW5zaWMgPSAiLCBub2RlLT5p
bnRyaW5zaWMoKSk7CiAgICAgaWYgKG5vZGUtPmlzQ29uc3RhbnQoKSkKICAgICAgICAgb3V0LnBy
aW50KGNvbW1hLCBwb2ludGVyRHVtcEluQ29udGV4dChub2RlLT5jb25zdGFudCgpLCBjb250ZXh0
KSk7CiAgICAgaWYgKG5vZGUtPmhhc0NhbGxMaW5rU3RhdHVzKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKaW5kZXggZTRiOTdiMzBjMmEwYTQwYzBm
ZjIwMjE2YWY0OTJkOWVkNjFhOGI0OC4uYzJiOTZiNWZkZmQ1OGQ2ODQ3ZDljNDIxZTlhNThiNzk3
OWY3ZjIxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9j
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9u
LmNwcApAQCAtMTY4LDYgKzE2OCwxMCBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0m
IG91dCwgTG9jYXRpb25LaW5kIGtpbmQpCiAgICAgICAgIG91dC5wcmludCgiUmVnRXhwT2JqZWN0
TGFzdEluZGV4TG9jIik7CiAgICAgICAgIHJldHVybjsKIAorICAgIGNhc2UgRGF0ZUZpZWxkTG9j
OgorICAgICAgICBvdXQucHJpbnQoIkRhdGVGaWVsZExvYyIpOworICAgICAgICByZXR1cm47CisK
ICAgICBjYXNlIE1hcEJ1Y2tldExvYzoKICAgICAgICAgb3V0LnByaW50KCJNYXBCdWNrZXRMb2Mi
KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdIZWFwTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExv
Y2F0aW9uLmgKaW5kZXggMDkxMDA2NDEyNjlmMGMwNjE3NDQzZjNiYzBmNDdjYjkyZjU5MDU3NC4u
YThlNzM4MTgwM2M3OTQ4NDYzY2U5ODljYzExYTY5M2ZlODQxZmFmMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCkBAIC02NCw2ICs2NCw3IEBAIGVudW0g
TG9jYXRpb25LaW5kIHsKICAgICBQcm90b3R5cGVMb2MsCiAgICAgU3RhY2tMb2MsCiAgICAgU3Rh
Y2tQYXlsb2FkTG9jLAorICAgIERhdGVGaWVsZExvYywKICAgICBNYXBCdWNrZXRMb2MsCiAgICAg
TWFwQnVja2V0SGVhZExvYywKICAgICBNYXBCdWNrZXRWYWx1ZUxvYywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgKaW5kZXggMTFkOGI0MGZhNjMyNmZkOTVjMmRkNjJkZjdmNzZhZDdiNjVi
MmIzZi4uMjUyZTA2NTZhZTc0ZWU2ZGQyYzM3MWI3MjUyY2M3YzkxZmY2MGQ4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTE1NTQsOSArMTU1NCwyMSBAQCBzdHJ1Y3QgTm9k
ZSB7CiAgICAgICAgIHJldHVybiBtX29wSW5mby5hczxFbnRyeVN3aXRjaERhdGEqPigpOwogICAg
IH0KIAorICAgIGJvb2wgaGFzSW50cmluc2ljKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAob3Ao
KSkgeworICAgICAgICBjYXNlIENQVUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlR2V0TWFj
aGluZURvdWJsZToKKyAgICAgICAgY2FzZSBEYXRlR2V0SlNOdW1iZXI6CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorICAgIH0KKwogICAgIEludHJpbnNpYyBpbnRyaW5zaWMoKQogICAgIHsKLSAg
ICAgICAgUkVMRUFTRV9BU1NFUlQob3AoKSA9PSBDUFVJbnRyaW5zaWMpOworICAgICAgICBBU1NF
UlQoaGFzSW50cmluc2ljKCkpOwogICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8SW50cmluc2lj
PigpOwogICAgIH0KICAgICAKQEAgLTE3NTMsNiArMTc2NSw3IEBAIHN0cnVjdCBOb2RlIHsKICAg
ICAgICAgY2FzZSBUb1RoaXM6CiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgICAg
IGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKKyAgICAgICAgY2FzZSBEYXRlR2V0SlNOdW1iZXI6CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCA4
Y2EzYjc5MjlmNzYxYTAxNjBjNmUzODRlYTM4Mjc1YzM0NmZkZWExLi45MWJjNzEzZTUwMjE3MzBi
OGRiNzBhY2NlYzdhMGNmNDliMmJjNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlVHlwZS5oCkBAIC01MTYsNiArNTE2LDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBE
RkcgewogICAgIG1hY3JvKERhdGFWaWV3R2V0SW50LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJl
c3VsdEpTKSAvKiBUaGUgZ2V0cyBhcmUgbXVzdCBnZW5lcmF0ZSBmb3Igbm93IGJlY2F1c2UgdGhl
eSBkbyBib3VuZHMgY2hlY2tzICovIFwKICAgICBtYWNybyhEYXRhVmlld0dldEZsb2F0LCBOb2Rl
TXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdERvdWJsZSkgXAogICAgIG1hY3JvKERhdGFWaWV3U2V0
LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBc
CisgICAgLyogRGF0ZSBhY2Nlc3MgKi8gXAorICAgIG1hY3JvKERhdGVHZXRKU051bWJlciwgTm9k
ZVJlc3VsdEpTKSBcCisgICAgbWFjcm8oRGF0ZUdldE1hY2hpbmVEb3VibGUsIE5vZGVSZXN1bHRE
b3VibGUpIFwKIAogCiAvLyBUaGlzIGVudW0gZ2VuZXJhdGVzIGEgbW9ub3RvbmljYWxseSBpbmNy
ZWFzaW5nIGlkIGZvciBhbGwgTm9kZSB0eXBlcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDcwZWZkNmJlOTYwOTNhNGY1ZWRhODZlYzlmNzRmMjFh
YzdhODZjYzYuLjRkYjQ2MjcyYzgwNzk2ZTBjY2Q5MWNmODMxMjIyMDIwZjQyYTVhYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMzgsNiArMzgs
NyBAQAogI2luY2x1ZGUgIkRGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgiCiAj
aW5jbHVkZSAiREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5o
IgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCisjaW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAj
aW5jbHVkZSAiRGVmaW5lUHJvcGVydHlBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJn
dW1lbnRzLmgiCiAjaW5jbHVkZSAiRXZhbENvZGVCbG9jay5oIgpAQCAtMzM5MSw2ICszMzkyLDE5
OCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldFByb3RvdHlwZU9m
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QtPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2Jq
ZWN0KSkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVH
ZXRGdWxsWWVhcihWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdv
cmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3Jl
Z29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+
eWVhcigpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0
ZUdldFVUQ0Z1bGxZZWFyKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAg
ICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSog
Z3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAg
aWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRh
dGVUaW1lLT55ZWFyKCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25EYXRlR2V0TW9udGgoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQorewor
ICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKKyAgICBp
ZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0
ZVRpbWUtPm1vbnRoKCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25EYXRlR2V0VVRDTW9udGgoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQor
eworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVU
aW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsK
KyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29y
aWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25EYXRlR2V0RGF0ZShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUp
Cit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwor
ICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3Jp
YW5EYXRlVGltZS0+bW9udGhEYXkoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkRhdGVHZXRVVENEYXRlKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSog
ZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3Jp
YW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVU
Qyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aERheSgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldERheShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFu
Y2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3Jl
Z29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRp
bWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0RheShWTSogdm1Qb2ludGVyLCBEYXRlSW5z
dGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3Qg
R3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0
ZVRpbWVVVEModm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7Cit9CisKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldEhvdXJzKFZNKiB2bVBvaW50ZXIsIERh
dGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3Jp
YW5EYXRlVGltZSh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5ob3VyKCkpKTsKK30KKworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDSG91cnMoVk0qIHZtUG9pbnRlciwg
RGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJh
dGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdv
cmlhbkRhdGVUaW1lVVRDKHZtKTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPmhvdXIoKSkpOworfQorCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRNaW51dGVzKFZNKiB2bVBvaW50
ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRP
cGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisK
KyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5n
cmVnb3JpYW5EYXRlVGltZSh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5taW51dGUoKSkpOworfQorCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENNaW51dGVzKFZNKiB2
bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVy
OworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAg
ICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFt
ZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBk
YXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGlt
ZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5taW51dGUoKSkpOwor
fQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRz
KFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Q
b2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZt
KTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNh
bGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRp
bWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRl
VGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5zZWNvbmQoKSkp
OworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENT
ZWNvbmRzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0g
PSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZS
QU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIo
dm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVn
b3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5z
ZWNvbmQoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRh
dGVHZXRUaW1lem9uZU9mZnNldChWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7
CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERF
Q0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRp
bWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAg
IGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigtZ3JlZ29yaWFu
RGF0ZVRpbWUtPnV0Y09mZnNldEluTWludXRlKCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0WWVhcihWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFu
Y2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNh
bGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3Jl
Z29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRp
bWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpIC0gMTkwMCkpOworfQorCiB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVGhyb3dERkcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdmFsdWVUb1Rocm93KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5kZXggMjU2
NGQ5ZmM4ZGY5ODc2NzE1OGZkMjQxNjY3YjNhYjZlYmI2MGI2NS4uMjc0ZjhhNTNlYmJlYzQ5ODIx
ZmMwYTBmNDRiMGZjZDJiYWQxZmQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmgKQEAgLTMxLDcgKzMxLDExIEBACiAjaW5jbHVkZSAiSklUT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIlR5cGVkQXJyYXlUeXBlLmgiCiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBEYXRlSW5zdGFuY2U7CisKK25hbWVz
cGFjZSBERkcgewogCiBzdHJ1Y3QgT1NSRXhpdEJhc2U7CiAKQEAgLTI5NCw2ICsyOTgsMjMgQEAg
SlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRo
SW5kZXhpbmdIZWFkZXJBbmRWZWN0b3IKIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxp
bmtEaXJlY3RDYWxsKENhbGxMaW5rSW5mbyosIEpTRnVuY3Rpb24qKSBXVEZfSU5URVJOQUw7CiAK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyKFZN
KiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EYXRlR2V0VVRDRnVsbFllYXIoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRN
b250aChWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ01vbnRoKFZNKiwgRGF0ZUluc3RhbmNlKikg
V1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRl
R2V0RGF0ZShWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0RhdGUoVk0qLCBEYXRlSW5zdGFuY2Uq
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRh
dGVHZXREYXkoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENEYXkoVk0qLCBEYXRlSW5zdGFuY2Uq
KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRh
dGVHZXRIb3VycyhWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0hvdXJzKFZNKiwgRGF0ZUluc3Rh
bmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25EYXRlR2V0TWludXRlcyhWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ01pbnV0ZXMoVk0qLCBE
YXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25k
cyhWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFRpbWV6b25lT2Zmc2V0KFZNKiwgRGF0ZUluc3RhbmNl
KikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25E
YXRlR2V0WWVhcihWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKKwogdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblByb2Nlc3NUeXBlUHJvZmlsZXJMb2dERkcoVk0qKSBXVEZfSU5U
RVJOQUw7CiAKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UcmlnZ2VyUmVvcHRpbWl6YXRp
b25Ob3coQ29kZUJsb2NrKiBiYXNlbGluZUNvZGVCbG9jaywgQ29kZUJsb2NrKiBvcHRpaW16ZWRD
b2RlQmxvY2ssIE9TUkV4aXRCYXNlKikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cAppbmRleCBlNzJhYTVkZDI1N2YzMjQ2ZTFiZGI2Y2M2Yzg1OTU5ZjI4OWU5NTRjLi4xNTA2NTRh
MDY2N2FkZmIyODYyMTE3MTQ5OWZmY2IyZjBiYzM1NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cApAQCAtODQ1LDExICs4NDUsMTcgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Ug
OiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNlIEdldFByb3RvdHlwZU9mOgogICAgICAgICBj
YXNlIEV4dHJhY3RWYWx1ZUZyb21XZWFrTWFwR2V0OiAKICAgICAgICAgY2FzZSBEYXRhVmlld0dl
dEludDoKLSAgICAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0OiB7CisgICAgICAgIGNhc2UgRGF0
YVZpZXdHZXRGbG9hdDoKKyAgICAgICAgY2FzZSBEYXRlR2V0SlNOdW1iZXI6IHsKICAgICAgICAg
ICAgIHNldFByZWRpY3Rpb24obV9jdXJyZW50Tm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCisgICAgICAgIGNhc2UgRGF0ZUdldE1hY2hp
bmVEb3VibGU6IHsKKyAgICAgICAgICAgIHNldFByZWRpY3Rpb24oU3BlY0Z1bGxOdW1iZXIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIFdlYWtNYXBHZXQ6
CiAgICAgICAgIGNhc2UgUmVzb2x2ZVNjb3BlRm9ySG9pc3RpbmdGdW5jRGVjbEluRXZhbDogewog
ICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjQnl0ZWNvZGVUb3ApOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCA0NjA2MWM4NmNmOTVjMDc4
MTYxZjRhNTkyNGNkM2E1MjQ2Y2RjMDIxLi42YmQ4ZjI5MzM0M2VhZTM4MTA4M2FmNzUxMGUzYmU5
MjI0OTZhNzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVU
b0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1
dGUuaApAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBTYWZlVG9FeGVjdXRlRWRnZSB7CiAgICAgICAg
IGNhc2UgUHJvbWlzZU9iamVjdFVzZToKICAgICAgICAgY2FzZSBQcm94eU9iamVjdFVzZToKICAg
ICAgICAgY2FzZSBEZXJpdmVkQXJyYXlVc2U6CisgICAgICAgIGNhc2UgRGF0ZU9iamVjdFVzZToK
ICAgICAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgU2V0T2JqZWN0VXNlOgog
ICAgICAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CkBAIC00ODksNiArNDkwLDggQEAgYm9vbCBz
YWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2Rl
KiBub2RlLCBib29sIGlnbm8KICAgICBjYXNlIEF0b21pY3NJc0xvY2tGcmVlOgogICAgIGNhc2Ug
SW5pdGlhbGl6ZUVudHJ5cG9pbnRBcmd1bWVudHM6CiAgICAgY2FzZSBNYXRjaFN0cnVjdHVyZToK
KyAgICBjYXNlIERhdGVHZXRKU051bWJlcjoKKyAgICBjYXNlIERhdGVHZXRNYWNoaW5lRG91Ymxl
OgogICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0Ogog
ICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggNDc0MTYxNGM1N2JkOGM5YmU2MGU2OGYzYzJhNDJlYTcw
NDU3NTEwZS4uOWVhYzIxNmY2MDJjMGI0MWZhZjhlYzhkZTI2N2E4YTFiNTc1Njk5NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTM5
LDYgKzM5LDcgQEAKICNpbmNsdWRlICJERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVy
YXRvci5oIgogI2luY2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiREZH
U25pcHBldFBhcmFtcy5oIgorI2luY2x1ZGUgIkRhdGVJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkRp
cmVjdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkRpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJV
c2FnZS5oIgogI2luY2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgpAQCAtMTAxOTUsNiArMTAxOTYs
MjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlUHJvbWlzZU9iamVjdChFZGdlIGVk
Z2UpCiAgICAgc3BlY3VsYXRlUHJvbWlzZU9iamVjdChlZGdlLCBvcGVyYW5kLmdwcigpKTsKIH0K
IAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRGF0ZU9iamVjdChFZGdlIGVkZ2UsIEdQ
UlJlZyBjZWxsKQoreworICAgIHNwZWN1bGF0ZUNlbGxUeXBlKGVkZ2UsIGNlbGwsIFNwZWNEYXRl
T2JqZWN0LCBKU0RhdGVUeXBlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRl
RGF0ZU9iamVjdChFZGdlIGVkZ2UpCit7CisgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBT
cGVjRGF0ZU9iamVjdCkpCisgICAgICAgIHJldHVybjsKKworICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIG9wZXJhbmQodGhpcywgZWRnZSk7CisgICAgc3BlY3VsYXRlRGF0ZU9iamVjdChlZGdlLCBv
cGVyYW5kLmdwcigpKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTWFwT2Jq
ZWN0KEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCiB7CiAgICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRn
ZSwgY2VsbCwgU3BlY01hcE9iamVjdCwgSlNNYXBUeXBlKTsKQEAgLTEwNjAwLDYgKzEwNjE1LDkg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAg
Y2FzZSBEZXJpdmVkQXJyYXlVc2U6CiAgICAgICAgIHNwZWN1bGF0ZURlcml2ZWRBcnJheShlZGdl
KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlT2JqZWN0VXNlOgorICAgICAgICBzcGVj
dWxhdGVEYXRlT2JqZWN0KGVkZ2UpOworICAgICAgICBicmVhazsKICAgICBjYXNlIE1hcE9iamVj
dFVzZToKICAgICAgICAgc3BlY3VsYXRlTWFwT2JqZWN0KGVkZ2UpOwogICAgICAgICBicmVhazsK
QEAgLTE0MDA4LDYgKzE0MDI2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1ha2VS
b3BlKE5vZGUqIG5vZGUpCiAjZW5kaWYKIH0KIAorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZH
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oCmluZGV4IDFiYTUyMTFmYzExMzA3N2VkZjE3YmE5YjllMTQxMDY1OWRiY2I4MjUuLjFiMjBk
OTQ0Y2JjZGRhNjJmYWNiNDU2ZDRjOThkMTliNWMwNWZmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTE0ODksNiArMTQ4OSw3IEBAIGNs
YXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIGNvbXBpbGVDbGVhckNhdGNoTG9jYWxzKE5v
ZGUqKTsKICAgICB2b2lkIGNvbXBpbGVQcm9maWxlVHlwZShOb2RlKik7CiAgICAgdm9pZCBjb21w
aWxlU3RyaW5nQ29kZVBvaW50QXQoTm9kZSopOworICAgIHZvaWQgY29tcGlsZURhdGVHZXQoTm9k
ZSopOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFzcywgdHlwZW5hbWUgT3BlcmF0aW9u
PgogICAgIHZvaWQgY29tcGlsZUNyZWF0ZUludGVybmFsRmllbGRPYmplY3QoTm9kZSosIE9wZXJh
dGlvbik7CkBAIC0xNjE2LDYgKzE2MTcsOCBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAg
dm9pZCBzcGVjdWxhdGVQcm94eU9iamVjdChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZURlcml2
ZWRBcnJheShFZGdlLCBHUFJSZWcgY2VsbCk7CiAgICAgdm9pZCBzcGVjdWxhdGVEZXJpdmVkQXJy
YXkoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVEYXRlT2JqZWN0KEVkZ2UpOworICAgIHZvaWQg
c3BlY3VsYXRlRGF0ZU9iamVjdChFZGdlLCBHUFJSZWcgY2VsbCk7CiAgICAgdm9pZCBzcGVjdWxh
dGVNYXBPYmplY3QoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVNYXBPYmplY3QoRWRnZSwgR1BS
UmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlU2V0T2JqZWN0KEVkZ2UpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5k
ZXggMTRmMjFjNzc2ZmRjNjM0NzQzNjQzZWRiYmQ2ZTA2YmIzYmE1NWMwYS4uYjRhZDYwOTYwN2Ux
NWMwNDgwZmZiMTNiM2M5YWNmZDhmMzY4NmYzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC00MTYyLDYgKzQxNjIs
OCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBE
YXRhVmlld0dldEludDoKICAgICBjYXNlIERhdGFWaWV3R2V0RmxvYXQ6CiAgICAgY2FzZSBEYXRh
Vmlld1NldDoKKyAgICBjYXNlIERhdGVHZXRKU051bWJlcjoKKyAgICBjYXNlIERhdGVHZXRNYWNo
aW5lRG91YmxlOgogICAgIGNhc2UgU3RyaW5nQ29kZVBvaW50QXQ6CiAgICAgICAgIERGR19DUkFT
SChtX2ppdC5ncmFwaCgpLCBub2RlLCAidW5leHBlY3RlZCBub2RlIGluIERGRyBiYWNrZW5kIik7
CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMTQyYzdlMDY4OWMyNmExZmFmZGNkNTAwM2YxZjM0YmVi
MjUzODAyYS4uYmI2YjUzNDEyZjkwODQ0ZGM5MTM5ZmY0NDY3MDE4ODhhMmMzMzExZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiREZHRG9lc0dDLmgiCiAjaW5jbHVkZSAiREZHT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAi
RGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAi
R2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiSGFzT3duUHJvcGVydHlDYWNoZS5oIgpAQCAtNDg3
NCw2ICs0ODc1LDExIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBEYXRlR2V0SlNOdW1iZXI6CisgICAg
Y2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZToKKyAgICAgICAgY29tcGlsZURhdGVHZXQobm9kZSk7
CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBEYXRhVmlld1NldDogewogICAgICAgICBTcGVj
dWxhdGVDZWxsT3BlcmFuZCBkYXRhVmlldyh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDApKTsKICAgICAgICAgR1BSUmVnIGRhdGFWaWV3R1BSID0gZGF0YVZpZXcuZ3ByKCk7CkBAIC01
MzQ4LDYgKzUzNTQsMTQzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpbmdDb2Rl
UG9pbnRBdChOb2RlKiBub2RlKQogICAgIGludDMyUmVzdWx0KHNjcmF0Y2gxR1BSLCBtX2N1cnJl
bnROb2RlKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURhdGVHZXQoTm9kZSog
bm9kZSkKK3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxk
MSgpKTsKKyAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgc3BlY3VsYXRlRGF0
ZU9iamVjdChub2RlLT5jaGlsZDEoKSwgYmFzZUdQUik7CisKKyAgICBhdXRvIGVtaXRHZXRDb2Rl
V2l0aENhbGxiYWNrID0gWyZdIChwdHJkaWZmX3QgY2FjaGVkRG91YmxlT2Zmc2V0LCBwdHJkaWZm
X3QgY2FjaGVkRGF0YU9mZnNldCwgYXV0byogb3BlcmF0aW9uLCBhdXRvIGNhbGxiYWNrKSB7Cisg
ICAgICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgRlBSVGVt
cG9yYXJ5IHRlbXAxKHRoaXMpOworICAgICAgICBGUFJUZW1wb3JhcnkgdGVtcDIodGhpcyk7CisK
KyAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CisgICAgICAg
IEZQUlJlZyB0ZW1wMUZQUiA9IHRlbXAxLmZwcigpOworICAgICAgICBGUFJSZWcgdGVtcDJGUFIg
PSB0ZW1wMi5mcHIoKTsKKworICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dDYXNl
czsKKworICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BS
LCBEYXRlSW5zdGFuY2U6Om9mZnNldE9mRGF0YSgpKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkp
OworICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxw
ZXJzOjpaZXJvLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSkpOworICAgICAgICBtX2ppdC5sb2Fk
RG91YmxlKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBEYXRlSW5zdGFuY2U6Om9mZnNl
dE9mSW50ZXJuYWxOdW1iZXIoKSksIHRlbXAxRlBSKTsKKyAgICAgICAgbV9qaXQubG9hZERvdWJs
ZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIGNhY2hlZERv
dWJsZU9mZnNldCksIHRlbXAyRlBSKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5i
cmFuY2hEb3VibGUoQ0NhbGxIZWxwZXJzOjpEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkLCB0ZW1w
MUZQUiwgdGVtcDJGUFIpKTsKKyAgICAgICAgbV9qaXQubG9hZDMyKENDYWxsSGVscGVyczo6QWRk
cmVzcyhyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgY2FjaGVkRGF0YU9mZnNldCksIHJlc3VsdFJl
Z3MucGF5bG9hZEdQUigpKTsKKyAgICAgICAgY2FsbGJhY2socmVzdWx0UmVncy5wYXlsb2FkR1BS
KCkpOworICAgICAgICBtX2ppdC5ib3hJbnQzMihyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgcmVz
dWx0UmVncyk7CisKKyAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKHNs
b3dDYXNlcywgdGhpcywgb3BlcmF0aW9uLCByZXN1bHRSZWdzLCAmdm0oKSwgYmFzZUdQUikpOwor
CisgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CisgICAgfTsKKworICAg
IGF1dG8gZW1pdEdldENvZGUgPSBbJl0gKHB0cmRpZmZfdCBjYWNoZWREb3VibGVPZmZzZXQsIHB0
cmRpZmZfdCBjYWNoZWREYXRhT2Zmc2V0LCBhdXRvKiBvcGVyYXRpb24pIHsKKyAgICAgICAgZW1p
dEdldENvZGVXaXRoQ2FsbGJhY2soY2FjaGVkRG91YmxlT2Zmc2V0LCBjYWNoZWREYXRhT2Zmc2V0
LCBvcGVyYXRpb24sIFtdIChHUFJSZWcpIHsgfSk7CisgICAgfTsKKworICAgIHN3aXRjaCAobm9k
ZS0+aW50cmluc2ljKCkpIHsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2lj
OiB7CisgICAgICAgIEZQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgICAgIEZQUlJlZyBy
ZXN1bHRGUFIgPSByZXN1bHQuZnByKCk7CisgICAgICAgIG1faml0LmxvYWREb3VibGUoQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKGJhc2VHUFIsIERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZJbnRlcm5hbE51
bWJlcigpKSwgcmVzdWx0RlBSKTsKKyAgICAgICAgZG91YmxlUmVzdWx0KHJlc3VsdEZQUiwgbm9k
ZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIC8vIFdlIGRvIG5vdCBoYXZlIGFueSB0
aW1lem9uZSBvZmZzZXQgd2hpY2ggYWZmZWN0cyBvbiBtaWxsaXNlY29uZHMuCisgICAgLy8gU28g
RGF0ZSNnZXRNaWxsaXNlY29uZHMgYW5kIERhdGUjZ2V0VVRDTWlsbGlzZWNvbmRzIGhhdmUgdGhl
IHNhbWUgaW1wbGVtZW50YXRpb24uCisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNv
bmRzSW50cmluc2ljOgorICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01pbGxpc2Vjb25kc0lu
dHJpbnNpYzogeworICAgICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcyk7Cisg
ICAgICAgIEZQUlRlbXBvcmFyeSB0ZW1wMSh0aGlzKTsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRl
bXAyKHRoaXMpOworICAgICAgICBGUFJUZW1wb3JhcnkgdGVtcDModGhpcyk7CisgICAgICAgIEpT
VmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOworICAgICAgICBGUFJSZWcgdGVt
cDFGUFIgPSB0ZW1wMS5mcHIoKTsKKyAgICAgICAgRlBSUmVnIHRlbXAyRlBSID0gdGVtcDIuZnBy
KCk7CisgICAgICAgIEZQUlJlZyB0ZW1wM0ZQUiA9IHRlbXAzLmZwcigpOworCisgICAgICAgIG1f
aml0Lm1vdmVUcnVzdGVkVmFsdWUoanNOYU4oKSwgcmVzdWx0UmVncyk7CisgICAgICAgIG1faml0
LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VHUFIsIERhdGVJbnN0YW5jZTo6
b2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigpKSwgdGVtcDFGUFIpOworICAgICAgICBhdXRvIGlzTmFO
ID0gbV9qaXQuYnJhbmNoSWZOYU4odGVtcDFGUFIpOworCisgICAgICAgIHN0YXRpYyBjb25zdCBk
b3VibGUgbXNQZXJTZWNvbmRDb25zdGFudCA9IG1zUGVyU2Vjb25kOworICAgICAgICBtX2ppdC5s
b2FkRG91YmxlKFRydXN0ZWRJbW1QdHIoJm1zUGVyU2Vjb25kQ29uc3RhbnQpLCB0ZW1wMkZQUik7
CisgICAgICAgIG1faml0LmRpdkRvdWJsZSh0ZW1wMUZQUiwgdGVtcDJGUFIsIHRlbXAzRlBSKTsK
KyAgICAgICAgbV9qaXQuZmxvb3JEb3VibGUodGVtcDNGUFIsIHRlbXAzRlBSKTsKKyAgICAgICAg
bV9qaXQubXVsRG91YmxlKHRlbXAzRlBSLCB0ZW1wMkZQUiwgdGVtcDNGUFIpOworICAgICAgICBt
X2ppdC5zdWJEb3VibGUodGVtcDFGUFIsIHRlbXAzRlBSLCB0ZW1wMUZQUik7CisgICAgICAgIG1f
aml0LnRydW5jYXRlRG91YmxlVG9JbnQzMih0ZW1wMUZQUiwgcmVzdWx0UmVncy5wYXlsb2FkR1BS
KCkpOworICAgICAgICBtX2ppdC5ib3hJbnQzMihyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgcmVz
dWx0UmVncyk7CisKKyAgICAgICAgaXNOYU4ubGluaygmbV9qaXQpOworICAgICAgICBqc1ZhbHVl
UmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENv
ZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1T
KCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSAr
IEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZlllYXIoKSwgb3BlcmF0aW9uRGF0ZUdldEZ1bGxZ
ZWFyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRnVsbFll
YXJJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNl
dE9mR3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpv
ZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6
b2Zmc2V0T2ZZZWFyKCksIG9wZXJhdGlvbkRhdGVHZXRVVENGdWxsWWVhcik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50cmluc2ljOgorICAgICAgICBl
bWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2Fj
aGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRl
VGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mTW9udGgoKSwgb3BlcmF0aW9uRGF0
ZUdldE1vbnRoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRD
TW9udGhJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9m
ZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRh
OjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGlt
ZTo6b2Zmc2V0T2ZNb250aCgpLCBvcGVyYXRpb25EYXRlR2V0VVRDTW9udGgpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXREYXRlSW50cmluc2ljOgorICAgICAgICBl
bWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2Fj
aGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRl
VGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mTW9udGhEYXkoKSwgb3BlcmF0aW9u
RGF0ZUdldERhdGUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRV
VENEYXRlSW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpv
ZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0
YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRp
bWU6Om9mZnNldE9mTW9udGhEYXkoKSwgb3BlcmF0aW9uRGF0ZUdldFVUQ0RhdGUpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXREYXlJbnRyaW5zaWM6CisgICAgICAg
IGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVD
YWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZXZWVrRGF5KCksIG9wZXJhdGlv
bkRhdGVHZXREYXkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRV
VENEYXlJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9m
ZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRh
OjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGlt
ZTo6b2Zmc2V0T2ZXZWVrRGF5KCksIG9wZXJhdGlvbkRhdGVHZXRVVENEYXkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAg
ZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNh
Y2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZkhvdXIoKSwgb3BlcmF0aW9uRGF0
ZUdldEhvdXJzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRD
SG91cnNJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9m
ZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRh
OjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGlt
ZTo6b2Zmc2V0T2ZIb3VyKCksIG9wZXJhdGlvbkRhdGVHZXRVVENIb3Vycyk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1pbnV0ZXNJbnRyaW5zaWM6CisgICAgICAg
IGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVD
YWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNaW51dGUoKSwgb3BlcmF0aW9u
RGF0ZUdldE1pbnV0ZXMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVH
ZXRVVENNaW51dGVzSW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3Rh
bmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFu
RGF0ZVRpbWU6Om9mZnNldE9mTWludXRlKCksIG9wZXJhdGlvbkRhdGVHZXRVVENNaW51dGVzKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0ludHJpbnNp
YzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3Jp
YW5EYXRlVGltZUNhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVk
R3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZlNlY29uZCgp
LCBvcGVyYXRpb25EYXRlR2V0U2Vjb25kcyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0
ZVByb3RvdHlwZUdldFVUQ1NlY29uZHNJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERh
dGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUygp
LCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkg
KyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZTZWNvbmQoKSwgb3BlcmF0aW9uRGF0ZUdldFVU
Q1NlY29uZHMpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRp
bWV6b25lT2Zmc2V0SW50cmluc2ljOiB7CisgICAgICAgIGVtaXRHZXRDb2RlV2l0aENhbGxiYWNr
KERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygp
LCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBH
cmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZVVENPZmZzZXRJbk1pbnV0ZSgpLCBvcGVyYXRpb25E
YXRlR2V0VGltZXpvbmVPZmZzZXQsIFsmXSAoR1BSUmVnIG9mZnNldEdQUikgeworICAgICAgICAg
ICAgbV9qaXQubmVnMzIob2Zmc2V0R1BSKTsKKyAgICAgICAgfSk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFllYXJJbnRyaW5zaWM6IHsKKyAgICAg
ICAgZW1pdEdldENvZGVXaXRoQ2FsbGJhY2soRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVn
b3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2Fj
aGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZlllYXIo
KSwgb3BlcmF0aW9uRGF0ZUdldFllYXIsIFsmXSAoR1BSUmVnIHllYXJHUFIpIHsKKyAgICAgICAg
ICAgIG1faml0LnN1YjMyKFRydXN0ZWRJbW0zMigxOTAwKSwgeWVhckdQUik7CisgICAgICAgIH0p
OworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKwogI2VuZGlmCiAKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpERkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VXNlS2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCmlu
ZGV4IDA4NGI1OTViMzk5YTZhMDRiNDljOWNjMTIzOWQ1MGUyYjkyMjhlMjQuLjhlZjczYjZmMmU4
NzU1MDM1OTZhODY0OTc0MGIzYTQ1OGFiMDk3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdVc2VLaW5kLmNwcApAQCAtMTA2LDYgKzEwNiw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQ
cmludFN0cmVhbSYgb3V0LCBVc2VLaW5kIHVzZUtpbmQpCiAgICAgY2FzZSBEZXJpdmVkQXJyYXlV
c2U6CiAgICAgICAgIG91dC5wcmludCgiRGVyaXZlZEFycmF5Iik7CiAgICAgICAgIHJldHVybjsK
KyAgICBjYXNlIERhdGVPYmplY3RVc2U6CisgICAgICAgIG91dC5wcmludCgiRGF0ZU9iamVjdCIp
OworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgIG91dC5w
cmludCgiTWFwT2JqZWN0Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdVc2VLaW5kLmgKaW5kZXggMmVjNGVhMTUzZDVjM2QyMzc0YjA5ZTFjZTczODNkMDhiNDFm
M2FlZi4uOWMxM2M1YmNkMzU2OTU3OWIwMzA5MmM1YzhmNzU4YjZlOWMwNTlhNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTY3LDYgKzY3LDcgQEAgZW51bSBVc2VL
aW5kIHsKICAgICBLbm93blByaW1pdGl2ZVVzZSwgLy8gVGhpcyBiaXphcnJlIHR5cGUgYXJpc2Vz
IGZvciBvcF9zdHJjYXQsIHdoaWNoIGhhcyBhIGJ5dGVjb2RlIGd1YXJhbnRlZSB0aGF0IGl0IHdp
bGwgb25seSBzZWUgcHJpbWl0aXZlcyAoaS5lLiBub3Qgb2JqZWN0cykuCiAgICAgU3ltYm9sVXNl
LAogICAgIEJpZ0ludFVzZSwKKyAgICBEYXRlT2JqZWN0VXNlLAogICAgIE1hcE9iamVjdFVzZSwK
ICAgICBTZXRPYmplY3RVc2UsCiAgICAgV2Vha01hcE9iamVjdFVzZSwKQEAgLTE1NSw2ICsxNTYs
OCBAQCBpbmxpbmUgU3BlY3VsYXRlZFR5cGUgdHlwZUZpbHRlckZvcihVc2VLaW5kIHVzZUtpbmQp
CiAgICAgICAgIHJldHVybiBTcGVjQmlnSW50OwogICAgIGNhc2UgUHJvbWlzZU9iamVjdFVzZToK
ICAgICAgICAgcmV0dXJuIFNwZWNQcm9taXNlT2JqZWN0OworICAgIGNhc2UgRGF0ZU9iamVjdFVz
ZToKKyAgICAgICAgcmV0dXJuIFNwZWNEYXRlT2JqZWN0OwogICAgIGNhc2UgTWFwT2JqZWN0VXNl
OgogICAgICAgICByZXR1cm4gU3BlY01hcE9iamVjdDsKICAgICBjYXNlIFNldE9iamVjdFVzZToK
QEAgLTI2MSw2ICsyNjQsNyBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5kKQogICAg
IGNhc2UgQmlnSW50VXNlOgogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgIGNhc2UgU3Ry
aW5nT3JTdHJpbmdPYmplY3RVc2U6CisgICAgY2FzZSBEYXRlT2JqZWN0VXNlOgogICAgIGNhc2Ug
TWFwT2JqZWN0VXNlOgogICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAgIGNhc2UgV2Vha01hcE9i
amVjdFVzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3Ry
YWN0SGVhcFJlcG9zaXRvcnkuY3BwCmluZGV4IDljM2MxYzdhYzZmYThhZjI4MjYzYmFiMmE3MjY5
ZGI1NTBlMzU2ZGIuLmM0NWM5ZDFiN2U1NGEwYjdjNzRkMGE3MzRkZmQwNzE1MzU5YzIyMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBS
ZXBvc2l0b3J5LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUu
aCIKICNpbmNsdWRlICJCM1BhdGNocG9pbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxp
bmVzLmgiCisjaW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1l
bnRzLmgiCiAjaW5jbHVkZSAiRlRMU3RhdGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmgKaW5kZXggMTAzNjllNGU0OTQ1MjYwZGE3Y2M0YzEzYTNmNzE4NmE2ZTQyMzU0MC4u
NWRmNDNmNzc0ZmYzNDY2NzBjZTE4NGVjNzU4ZDFhMTEzMDcyYmQwZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAg
LTUyLDYgKzUyLDI2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNy
byhCdXR0ZXJmbHlfdmVjdG9yTGVuZ3RoLCBCdXR0ZXJmbHk6Om9mZnNldE9mVmVjdG9yTGVuZ3Ro
KCkpIFwKICAgICBtYWNybyhDYWxsRnJhbWVfY2FsbGVyRnJhbWUsIENhbGxGcmFtZTo6Y2FsbGVy
RnJhbWVPZmZzZXQoKSkgXAogICAgIG1hY3JvKENsYXNzSW5mb19wYXJlbnRDbGFzcywgQ2xhc3NJ
bmZvOjpvZmZzZXRPZlBhcmVudENsYXNzKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VfaW50
ZXJuYWxOdW1iZXIsIERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigpKSBcCisg
ICAgbWFjcm8oRGF0ZUluc3RhbmNlX2RhdGEsIERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZEYXRhKCkp
IFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9y
TVMsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JN
UygpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0Nh
Y2hlZEZvck1TLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lVVRD
Q2FjaGVkRm9yTVMoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29y
aWFuRGF0ZVRpbWVfeWVhciwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3Jp
YW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mWWVhcigpKSBcCisgICAg
bWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ195ZWFyLCBE
YXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBH
cmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZZZWFyKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFu
Y2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX21vbnRoLCBEYXRlSW5zdGFuY2VEYXRhOjpv
ZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zm
c2V0T2ZNb250aCgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3Jp
YW5EYXRlVGltZVVUQ19tb250aCwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVn
b3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mTW9udGgoKSkg
XAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfbW9u
dGhEYXksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUo
KSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoRGF5KCkpIFwKKyAgICBtYWNybyhE
YXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX21vbnRoRGF5LCBEYXRl
SW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVn
b3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aERheSgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3Rh
bmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV93ZWVrRGF5LCBEYXRlSW5zdGFuY2VEYXRh
OjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6
b2Zmc2V0T2ZXZWVrRGF5KCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lVVRDX3dlZWtEYXksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2Fj
aGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZldl
ZWtEYXkoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWVfaG91ciwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRl
VGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mSG91cigpKSBcCisgICAgbWFjcm8o
RGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19ob3VyLCBEYXRlSW5z
dGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3Jp
YW5EYXRlVGltZTo6b2Zmc2V0T2ZIb3VyKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRh
X2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX21pbnV0ZSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0
T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9m
TWludXRlKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lVVRDX21pbnV0ZSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3Jp
YW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mTWludXRlKCkpIFwK
KyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX3NlY29u
ZCwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsg
R3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mU2Vjb25kKCkpIFwKKyAgICBtYWNybyhEYXRlSW5z
dGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX3NlY29uZCwgRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0
ZVRpbWU6Om9mZnNldE9mU2Vjb25kKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2Nh
Y2hlZEdyZWdvcmlhbkRhdGVUaW1lX3V0Y09mZnNldEluTWludXRlLCBEYXRlSW5zdGFuY2VEYXRh
OjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6
b2Zmc2V0T2ZVVENPZmZzZXRJbk1pbnV0ZSgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0
YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ191dGNPZmZzZXRJbk1pbnV0ZSwgRGF0ZUluc3Rh
bmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFu
RGF0ZVRpbWU6Om9mZnNldE9mVVRDT2Zmc2V0SW5NaW51dGUoKSkgXAogICAgIG1hY3JvKERpcmVj
dEFyZ3VtZW50c19jYWxsZWUsIERpcmVjdEFyZ3VtZW50czo6b2Zmc2V0T2ZDYWxsZWUoKSkgXAog
ICAgIG1hY3JvKERpcmVjdEFyZ3VtZW50c19sZW5ndGgsIERpcmVjdEFyZ3VtZW50czo6b2Zmc2V0
T2ZMZW5ndGgoKSkgXAogICAgIG1hY3JvKERpcmVjdEFyZ3VtZW50c19taW5DYXBhY2l0eSwgRGly
ZWN0QXJndW1lbnRzOjpvZmZzZXRPZk1pbkNhcGFjaXR5KCkpIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBjNjFmOWU2NTgwYmYzYjZlNDVj
NjE1MGI5OWYwZjRiODNjMzFlNmE5Li45NWQzY2E2MWUwMGI5NGI4MTIxMDViNWIwNDRiZWNmYjc3
MWQ4MTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxp
dGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMu
Y3BwCkBAIC0zODgsNiArMzg4LDggQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxl
KE5vZGUqIG5vZGUpCiAgICAgY2FzZSBEYXRhVmlld0dldEludDoKICAgICBjYXNlIERhdGFWaWV3
R2V0RmxvYXQ6CiAgICAgY2FzZSBEYXRhVmlld1NldDoKKyAgICBjYXNlIERhdGVHZXRKU051bWJl
cjoKKyAgICBjYXNlIERhdGVHZXRNYWNoaW5lRG91YmxlOgogICAgICAgICAvLyBUaGVzZSBhcmUg
T0suCiAgICAgICAgIGJyZWFrOwogCkBAIC00NzAsNiArNDcyLDcgQEAgQ2FwYWJpbGl0eUxldmVs
IGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT3JT
dHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAg
ICAgICAgICAgY2FzZSBCaWdJbnRVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBEYXRlT2JqZWN0
VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICAgICAgICAg
IGNhc2UgU2V0T2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgV2Vha01hcE9iamVjdFVz
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRl
eCBhZjBhOGViMDcwYjMwYWJiZmZiZjBhNzY1NTg5NWFlYzYyZTlhOTdmLi5kZjJmZTdlYzU5OWFl
YjUwMWM1YWNjNjdkYjhhYzg3NmEyMDQ3NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xNTQ1LDYgKzE1NDUsMTAgQEAgY2xhc3MgTG93
ZXJERkdUb0IzIHsKICAgICAgICAgY2FzZSBGaWx0ZXJJbkJ5SWRTdGF0dXM6CiAgICAgICAgICAg
ICBjb21waWxlRmlsdGVySUNTdGF0dXMoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIERhdGVHZXRKU051bWJlcjoKKyAgICAgICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZToK
KyAgICAgICAgICAgIGNvbXBpbGVEYXRlR2V0KCk7CisgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBEYXRhVmlld0dldEludDoKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0Ogog
ICAgICAgICAgICAgY29tcGlsZURhdGFWaWV3R2V0KCk7CkBAIC0xMzQwNyw2ICsxMzQxMSwxMTUg
QEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
KworICAgIHZvaWQgY29tcGlsZURhdGVHZXQoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGJhc2Ug
PSBsb3dEYXRlT2JqZWN0KG1fbm9kZS0+Y2hpbGQxKCkpOworCisgICAgICAgIGF1dG8gZW1pdEdl
dENvZGVXaXRoQ2FsbGJhY2sgPSBbJl0gKGNvbnN0IEFic3RyYWN0SGVhcCYgY2FjaGVkRG91Ymxl
T2Zmc2V0LCBjb25zdCBBYnN0cmFjdEhlYXAmIGNhY2hlZERhdGFPZmZzZXQsIGF1dG8qIG9wZXJh
dGlvbiwgYXV0byBjYWxsYmFjaykgeworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZGF0YUV4aXN0
c0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZmFzdENh
c2UgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2Ug
PSBtX291dC5uZXdCbG9jaygpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9u
ID0gbV9vdXQubmV3QmxvY2soKTsKKworICAgICAgICAgICAgTFZhbHVlIGRhdGEgPSBtX291dC5s
b2FkUHRyKGJhc2UsIG1faGVhcHMuRGF0ZUluc3RhbmNlX2RhdGEpOworICAgICAgICAgICAgbV9v
dXQuYnJhbmNoKG1fb3V0Lm5vdFplcm82NChkYXRhKSwgdW5zdXJlKGRhdGFFeGlzdHNDYXNlKSwg
dW5zdXJlKHNsb3dDYXNlKSk7CisKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0g
bV9vdXQuYXBwZW5kVG8oZGF0YUV4aXN0c0Nhc2UsIGZhc3RDYXNlKTsKKyAgICAgICAgICAgIExW
YWx1ZSBtaWxsaXNlY29uZHMgPSBtX291dC5sb2FkRG91YmxlKGJhc2UsIG1faGVhcHMuRGF0ZUlu
c3RhbmNlX2ludGVybmFsTnVtYmVyKTsKKyAgICAgICAgICAgIExWYWx1ZSBjYWNoZWRNaWxsaXNl
Y29uZHMgPSBtX291dC5sb2FkRG91YmxlKGRhdGEsIGNhY2hlZERvdWJsZU9mZnNldCk7CisgICAg
ICAgICAgICBtX291dC5icmFuY2gobV9vdXQuZG91YmxlTm90RXF1YWxPclVub3JkZXJlZChtaWxs
aXNlY29uZHMsIGNhY2hlZE1pbGxpc2Vjb25kcyksIHVuc3VyZShzbG93Q2FzZSksIHVuc3VyZShm
YXN0Q2FzZSkpOworCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhmYXN0Q2FzZSwgc2xvd0Nh
c2UpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hv
cihib3hJbnQzMihjYWxsYmFjayhtX291dC5sb2FkMzIoZGF0YSwgY2FjaGVkRGF0YU9mZnNldCkp
KSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgICAg
IG1fb3V0LmFwcGVuZFRvKHNsb3dDYXNlLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgVmFs
dWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcih2bUNhbGwoSW50NjQsIG9wZXJh
dGlvbiwgbV92bVZhbHVlLCBiYXNlKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVh
dGlvbik7CisKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5l
eHQpOworICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQsIGZhc3RSZXN1bHQs
IHNsb3dSZXN1bHQpKTsKKyAgICAgICAgfTsKKworICAgICAgICBhdXRvIGVtaXRHZXRDb2RlID0g
WyZdIChjb25zdCBBYnN0cmFjdEhlYXAmIGNhY2hlZERvdWJsZU9mZnNldCwgY29uc3QgQWJzdHJh
Y3RIZWFwJiBjYWNoZWREYXRhT2Zmc2V0LCBhdXRvKiBvcGVyYXRpb24pIHsKKyAgICAgICAgICAg
IGVtaXRHZXRDb2RlV2l0aENhbGxiYWNrKGNhY2hlZERvdWJsZU9mZnNldCwgY2FjaGVkRGF0YU9m
ZnNldCwgb3BlcmF0aW9uLCBbXSAoTFZhbHVlIHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfSk7Cisg
ICAgICAgIH07CisKKyAgICAgICAgc3dpdGNoIChtX25vZGUtPmludHJpbnNpYygpKSB7CisgICAg
ICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWM6CisgICAgICAgICAgICBzZXRE
b3VibGUobV9vdXQubG9hZERvdWJsZShiYXNlLCBtX2hlYXBzLkRhdGVJbnN0YW5jZV9pbnRlcm5h
bE51bWJlcikpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVH
ZXRVVENNaWxsaXNlY29uZHNJbnRyaW5zaWM6IHsKKyAgICAgICAgICAgIExWYWx1ZSBtaWxsaXNl
Y29uZHMgPSBtX291dC5sb2FkRG91YmxlKGJhc2UsIG1faGVhcHMuRGF0ZUluc3RhbmNlX2ludGVy
bmFsTnVtYmVyKTsKKyAgICAgICAgICAgIExWYWx1ZSBtc1BlclNlY29uZENvbnN0YW50ID0gbV9v
dXQuY29uc3REb3VibGUobXNQZXJTZWNvbmQpOworICAgICAgICAgICAgTFZhbHVlIHNlY29uZHMg
PSBtX291dC5kb3VibGVGbG9vcihtX291dC5kb3VibGVEaXYobWlsbGlzZWNvbmRzLCBtc1BlclNl
Y29uZENvbnN0YW50KSk7CisgICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuZG91Ymxl
VG9JbnQobV9vdXQuZG91YmxlU3ViKG1pbGxpc2Vjb25kcywgbV9vdXQuZG91YmxlTXVsKHNlY29u
ZHMsIG1zUGVyU2Vjb25kQ29uc3RhbnQpKSk7CisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0
LnNlbGVjdChtX291dC5kb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKG1pbGxpc2Vjb25kcywgbWls
bGlzZWNvbmRzKSwgbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSkpLCBi
b3hJbnQzMihyZXN1bHQpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAg
ICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEZ1bGxZZWFySW50cmluc2ljOgorICAgICAgICAgICAg
ZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2Fj
aGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGlt
ZV95ZWFyLCBvcGVyYXRpb25EYXRlR2V0RnVsbFllYXIpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50cmluc2ljOgorICAgICAg
ICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVU
aW1lVVRDQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3Jp
YW5EYXRlVGltZVVUQ195ZWFyLCBvcGVyYXRpb25EYXRlR2V0VVRDRnVsbFllYXIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50cmluc2lj
OgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdv
cmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRH
cmVnb3JpYW5EYXRlVGltZV9tb250aCwgb3BlcmF0aW9uRGF0ZUdldE1vbnRoKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNb250aEludHJpbnNp
YzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVn
b3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2Fj
aGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfbW9udGgsIG9wZXJhdGlvbkRhdGVHZXRVVENNb250aCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF0ZUlu
dHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0
YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFf
Y2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfbW9udGhEYXksIG9wZXJhdGlvbkRhdGVHZXREYXRlKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENEYXRl
SW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VE
YXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNl
RGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19tb250aERheSwgb3BlcmF0aW9uRGF0ZUdl
dFVUQ0RhdGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlw
ZUdldERheUludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUlu
c3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0
YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfd2Vla0RheSwgb3BlcmF0aW9uRGF0ZUdl
dERheSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0
VVRDRGF5SW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5z
dGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUlu
c3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ193ZWVrRGF5LCBvcGVyYXRpb25E
YXRlR2V0VVRDRGF5KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90
b3R5cGVHZXRIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMu
RGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBzLkRh
dGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfaG91ciwgb3BlcmF0aW9uRGF0
ZUdldEhvdXJzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5
cGVHZXRVVENIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMu
RGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBz
LkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfaG91ciwgb3BlcmF0
aW9uRGF0ZUdldFVUQ0hvdXJzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERh
dGVQcm90b3R5cGVHZXRNaW51dGVzSW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUo
bV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMsIG1f
aGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9taW51dGUsIG9w
ZXJhdGlvbkRhdGVHZXRNaW51dGVzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IERhdGVQcm90b3R5cGVHZXRVVENNaW51dGVzSW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdl
dENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVk
Rm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVU
Q19taW51dGUsIG9wZXJhdGlvbkRhdGVHZXRVVENNaW51dGVzKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRTZWNvbmRzSW50cmluc2ljOgorICAgICAg
ICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVU
aW1lQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5E
YXRlVGltZV9zZWNvbmQsIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENTZWNvbmRzSW50cmluc2ljOgor
ICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlh
bkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRH
cmVnb3JpYW5EYXRlVGltZVVUQ19zZWNvbmQsIG9wZXJhdGlvbkRhdGVHZXRVVENTZWNvbmRzKTsK
KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWV6
b25lT2Zmc2V0SW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGVXaXRoQ2FsbGJhY2so
bV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMsIG1f
aGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV91dGNPZmZzZXRJ
bk1pbnV0ZSwgb3BlcmF0aW9uRGF0ZUdldFRpbWV6b25lT2Zmc2V0LCBbJl0gKExWYWx1ZSBvZmZz
ZXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9vdXQubmVnKG9mZnNldCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlw
ZUdldFllYXJJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZVdpdGhDYWxsYmFjayht
X2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9o
ZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX3llYXIsIG9wZXJh
dGlvbkRhdGVHZXRZZWFyLCBbJl0gKExWYWx1ZSB5ZWFyKSB7CisgICAgICAgICAgICAgICAgcmV0
dXJuIG1fb3V0LnN1Yih5ZWFyLCBtX291dC5jb25zdEludDMyKDE5MDApKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgCiAg
ICAgdm9pZCBlbWl0U3dpdGNoRm9yTXVsdGlCeU9mZnNldChMVmFsdWUgYmFzZSwgYm9vbCBzdHJ1
Y3R1cmVzQ2hlY2tlZCwgVmVjdG9yPFN3aXRjaENhc2UsIDI+JiBjYXNlcywgTEJhc2ljQmxvY2sg
ZXhpdCkKICAgICB7CkBAIC0xNTc1Niw2ICsxNTg2OSwxMyBAQCBjbGFzcyBMb3dlckRGR1RvQjMg
ewogICAgICAgICBzcGVjdWxhdGVEYXRhVmlld09iamVjdChlZGdlLCByZXN1bHQpOwogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KKworICAgIExWYWx1ZSBsb3dEYXRlT2JqZWN0KEVkZ2Ug
ZWRnZSkKKyAgICB7CisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UpOworICAg
ICAgICBzcGVjdWxhdGVEYXRlT2JqZWN0KGVkZ2UsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgfQogICAgIAogICAgIExWYWx1ZSBsb3dTdHJpbmcoRWRnZSBlZGdlLCBPcGVy
YW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAg
ICAgewpAQCAtMTYyNDAsNiArMTYzNjAsOSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAg
ICBjYXNlIERlcml2ZWRBcnJheVVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZURlcml2ZWRBcnJh
eShlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVPYmplY3RVc2U6
CisgICAgICAgICAgICBzcGVjdWxhdGVEYXRlT2JqZWN0KGVkZ2UpOworICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlTWFw
T2JqZWN0KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xNjc2Niw2ICsxNjg4OSwxNyBA
QCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBzcGVjdWxhdGVQcm9taXNlT2JqZWN0KGVk
Z2UsIGxvd0NlbGwoZWRnZSkpOwogICAgIH0KIAorICAgIHZvaWQgc3BlY3VsYXRlRGF0ZU9iamVj
dChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0so
CisgICAgICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNEYXRlT2JqZWN0LCBp
c05vdFR5cGUoY2VsbCwgSlNEYXRlVHlwZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRl
RGF0ZU9iamVjdChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVjdWxhdGVEYXRlT2JqZWN0
KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKwogICAgIHZvaWQgc3BlY3VsYXRlTWFwT2Jq
ZWN0KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewogICAgICAgICBGVExfVFlQRV9DSEVD
SygKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJz
aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNw
cAppbmRleCBhZTlmNGUwY2E3Y2NiMDJmYWI0MmJmYzJlMjY0OWIwMmJhOGVkOTRhLi41YjJhYTFh
NzFmZmY1YTUwZGQzMTFlZGQyNWVhZGQxODJlN2I3YzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCkBAIC05Nyw4ICs5Nyw4IEBAIFN0
cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBHcmVnb3JpYW5EYXRlVGltZSYgdCwgRGF0ZVRpbWVG
b3JtYXQgZm9ybWF0LCBib29sIGFzCiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIEdN
VCIpOwogCiAgICAgICAgIGlmICghYXNVVENWYXJpYW50KSB7Ci0gICAgICAgICAgICBpbnQgb2Zm
c2V0ID0gYWJzKHQudXRjT2Zmc2V0KCkpIC8gNjA7Ci0gICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCh0LnV0Y09mZnNldCgpIDwgMCA/ICctJyA6ICcrJyk7CisgICAgICAgICAgICBpbnQgb2Zmc2V0
ID0gYWJzKHQudXRjT2Zmc2V0SW5NaW51dGUoKSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCh0LnV0Y09mZnNldEluTWludXRlKCkgPCAwID8gJy0nIDogJysnKTsKICAgICAgICAgICAgIGFw
cGVuZE51bWJlcjwyPihidWlsZGVyLCBvZmZzZXQgLyA2MCk7CiAgICAgICAgICAgICBhcHBlbmRO
dW1iZXI8Mj4oYnVpbGRlciwgb2Zmc2V0ICUgNjApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAppbmRleCA3YjRlNDVjZWE0MTk5YTE4NzIzNzkx
NDFjZDVlMjJlMTc2ZDM0ZTQ3Li44ZjVjMmVkMjI2MzI5NWNiYzQ1N2VlNzZlYWViMzc0ZDNlN2Yy
YTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFu
Y2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5j
cHAKQEAgLTU3LDEzICs1NywxMiBAQCB2b2lkIERhdGVJbnN0YW5jZTo6ZGVzdHJveShKU0NlbGwq
IGNlbGwpCiAgICAgc3RhdGljX2Nhc3Q8RGF0ZUluc3RhbmNlKj4oY2VsbCktPkRhdGVJbnN0YW5j
ZTo6fkRhdGVJbnN0YW5jZSgpOwogfQogCi1jb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUlu
c3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KSBjb25zdAorY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIERhdGVJbnN0YW5jZTo6Y2Fs
Y3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWUoVk0mIHZtKSBjb25zdAogewogICAgIGRvdWJsZSBtaWxs
aSA9IGludGVybmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4obWlsbGkpKQotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgaWYgKCFtX2RhdGEpCiAgICAgICAgIG1fZGF0YSA9IHZtLmRh
dGVJbnN0YW5jZUNhY2hlLmFkZChtaWxsaSk7CiAKQEAgLTc0LDEzICs3MywxMiBAQCBjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGlt
ZShKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiAmbV9kYXRhLT5tX2NhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lOwogfQogCi1jb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxj
dWxhdGVHcmVnb3JpYW5EYXRlVGltZVVUQyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBj
b25zdAorY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIERhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3Jl
Z29yaWFuRGF0ZVRpbWVVVEMoVk0mIHZtKSBjb25zdAogewogICAgIGRvdWJsZSBtaWxsaSA9IGlu
dGVybmFsTnVtYmVyKCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4obWlsbGkpKQotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgaWYgKCFtX2RhdGEpCiAgICAgICAgIG1fZGF0YSA9IHZtLmRhdGVJbnN0
YW5jZUNhY2hlLmFkZChtaWxsaSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZUluc3RhbmNlLmgKaW5kZXggMzU3OGFiODJhNDY1MzYwMWMwOWQ4MGRkMDQ1NDQ1ZWI4MDQy
OWM2Yy4uOWU3NzgzOTcxNGZjZGMxN2I4N2E2NGQ5N2JiODQwZjk3Y2FkYzQ2YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKQEAgLTU0LDI4ICs1NCwz
MSBAQCBjbGFzcyBEYXRlSW5zdGFuY2UgZmluYWwgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmpl
Y3QgewogCiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRh
dGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBj
b25zdAorICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZShWTSYg
dm0pIGNvbnN0CiAgICAgewogICAgICAgICBpZiAobV9kYXRhICYmIG1fZGF0YS0+bV9ncmVnb3Jp
YW5EYXRlVGltZUNhY2hlZEZvck1TID09IGludGVybmFsTnVtYmVyKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gJm1fZGF0YS0+bV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZTsKLSAgICAgICAgcmV0dXJu
IGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVy
biBjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgfQogCi0gICAgY29uc3QgR3Jl
Z29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lVVRDKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpIGNvbnN0CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRh
dGVUaW1lVVRDKFZNJiB2bSkgY29uc3QKICAgICB7CiAgICAgICAgIGlmIChtX2RhdGEgJiYgbV9k
YXRhLT5tX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMgPT0gaW50ZXJuYWxOdW1iZXIo
KSkKICAgICAgICAgICAgIHJldHVybiAmbV9kYXRhLT5tX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1l
VVRDOwotICAgICAgICByZXR1cm4gY2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFs
T2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lVVRDKHZt
KTsKICAgICB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oSlNEYXRlVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0K
IAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihEYXRlSW5zdGFuY2UsIG1faW50ZXJuYWxOdW1iZXIpOyB9CisgICAg
c3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkRhdGEoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
RGF0ZUluc3RhbmNlLCBtX2RhdGEpOyB9CisKIHByaXZhdGU6Ci0gICAgSlNfRVhQT1JUX1BSSVZB
VEUgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lKEpT
R2xvYmFsT2JqZWN0KikgY29uc3Q7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgR3JlZ29y
aWFuRGF0ZVRpbWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lVVRDKEpTR2xvYmFsT2JqZWN0
KikgY29uc3Q7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUq
IGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lKFZNJikgY29uc3Q7CisgICAgSlNfRVhQT1JUX1BS
SVZBVEUgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1l
VVRDKFZNJikgY29uc3Q7CiAKICAgICBkb3VibGUgbV9pbnRlcm5hbE51bWJlciB7IFBOYU4gfTsK
ICAgICBtdXRhYmxlIFJlZlB0cjxEYXRlSW5zdGFuY2VEYXRhPiBtX2RhdGE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlQ2FjaGUuaAppbmRleCA3NTY0
MGViMzczMDQxYzhlOTNjNGI5MjY2NmI4ZjFmZTIzNzM4NWExLi4yYzRmYjUyMmQzZWY5YjYyZThi
NDBiZTMzZWU4ZWVjZWFlMTBiMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmgKQEAgLTM3LDE3ICszNywxOCBAQCBjbGFzcyBEYXRl
SW5zdGFuY2VEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0ZUluc3RhbmNlRGF0YT4gewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8RGF0ZUluc3RhbmNlRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBEYXRlSW5zdGFuY2VEYXRhKTsgfQogCi0gICAgZG91YmxlIG1fZ3JlZ29y
aWFuRGF0ZVRpbWVDYWNoZWRGb3JNUzsKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mR3Jl
Z29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihEYXRl
SW5zdGFuY2VEYXRhLCBtX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMpOyB9CisgICAgc3Rh
dGljIHB0cmRpZmZfdCBvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKERhdGVJbnN0YW5jZURhdGEsIG1fY2FjaGVkR3JlZ29yaWFuRGF0ZVRp
bWUpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lVVRD
Q2FjaGVkRm9yTVMoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRGF0ZUluc3RhbmNlRGF0YSwg
bV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKTsgfQorICAgIHN0YXRpYyBwdHJkaWZm
X3Qgb2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpIHsgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihEYXRlSW5zdGFuY2VEYXRhLCBtX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKTsg
fQorCisgICAgZG91YmxlIG1fZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUyB7IFBOYU4gfTsK
ICAgICBHcmVnb3JpYW5EYXRlVGltZSBtX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lOwotICAgIGRv
dWJsZSBtX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVM7CisgICAgZG91YmxlIG1fZ3Jl
Z29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUyB7IFBOYU4gfTsKICAgICBHcmVnb3JpYW5EYXRl
VGltZSBtX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDOwogCiBwcml2YXRlOgotICAgIERhdGVJ
bnN0YW5jZURhdGEoKQotICAgICAgICA6IG1fZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUyhQ
TmFOKQotICAgICAgICAsIG1fZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUyhQTmFOKQot
ICAgIHsKLSAgICB9CisgICAgRGF0ZUluc3RhbmNlRGF0YSgpID0gZGVmYXVsdDsKIH07CiAKIGNs
YXNzIERhdGVJbnN0YW5jZUNhY2hlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggMjM5ZTkzMmVlZGM0ZmFkNTA3YmVhMTgzNGY3ZDQ5
NzVlNjlmMTJjZS4uMmFmZjBmNzNkN2M2NDRjNjhkYWQ1YzE2N2ZmZTNmMzdiZDQ3Yzg3NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKQEAg
LTMxMyw3ICszMTMsNyBAQCBzdGF0aWMgSlNDZWxsKiBmb3JtYXRMb2NhbGVEYXRlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYQogc3RhdGljIEpTQ2VsbCog
Zm9ybWF0TG9jYWxlRGF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgRGF0ZUluc3RhbmNlKiBkYXRlT2JqZWN0LCBkb3VibGUsIExvY2FsZURhdGVU
aW1lRm9ybWF0IGZvcm1hdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0g
ICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZU9iamVj
dC0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5E
YXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlT2JqZWN0LT5ncmVnb3JpYW5EYXRlVGlt
ZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIGpzTm9u
dHJpdmlhbFN0cmluZyh2bSwgIkludmFsaWQgRGF0ZSJfcyk7CiAgICAgcmV0dXJuIGZvcm1hdExv
Y2FsZURhdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsICpncmVnb3JpYW5EYXRlVGltZSwgZm9y
bWF0KTsKQEAgLTMzMSw4ICszMzEsOCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZm9ybWF0ZURh
dGVJbnN0YW5jZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAogICAgIGNv
bnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGFzVVRDVmFyaWFudAot
ICAgICAgICA/IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3Qp
Ci0gICAgICAgIDogdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7
CisgICAgICAgID8gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKQorICAgICAg
ICA6IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3Jp
YW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxT
dHJpbmcodm0sIFN0cmluZygiSW52YWxpZCBEYXRlIl9zKSkpOwogCkBAIC00NTQsMjUgKzQ1NCwy
NiBAQCBjb25zdCBDbGFzc0luZm8gRGF0ZVByb3RvdHlwZTo6c19pbmZvID0geyJPYmplY3QiLCAm
SlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAmZAogICB0b0xvY2FsZVN0cmluZyAgICAgICAgZGF0
ZVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAg
IDAKICAgdG9Mb2NhbGVEYXRlU3RyaW5nICAgIGRhdGVQcm90b0Z1bmNUb0xvY2FsZURhdGVTdHJp
bmcgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCiAgIHRvTG9jYWxlVGltZVN0cmluZyAg
ICBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVUaW1lU3RyaW5nICAgICAgRG9udEVudW18RnVuY3Rpb24g
ICAgICAgMAotICB2YWx1ZU9mICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFRpbWUgICAg
ICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VGltZSAgICAgICAg
ICAgICAgIGRhdGVQcm90b0Z1bmNHZXRUaW1lICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5j
dGlvbiAgICAgICAwCi0gIGdldEZ1bGxZZWFyICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0RnVs
bFllYXIgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRVVENGdWxs
WWVhciAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyICAgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0TW9udGggICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNH
ZXRNb250aCAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFVU
Q01vbnRoICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGggICAgICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXREYXRlICAgICAgICAgICAgICAgZGF0ZVByb3Rv
RnVuY0dldERhdGUgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAg
Z2V0VVRDRGF0ZSAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlICAgICAgICAgICAg
ICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldERheSAgICAgICAgICAgICAgICBkYXRl
UHJvdG9GdW5jR2V0RGF5ICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAg
MAotICBnZXRVVENEYXkgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0RheSAgICAgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0SG91cnMgICAgICAgICAgICAg
IGRhdGVQcm90b0Z1bmNHZXRIb3VycyAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAg
ICAgICAwCi0gIGdldFVUQ0hvdXJzICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMg
ICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRNaW51dGVzICAgICAg
ICAgICAgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uICAgICAgIDAKLSAgZ2V0VVRDTWludXRlcyAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENN
aW51dGVzICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFNlY29uZHMg
ICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyAgICAgICAgICAgICAgRG9udEVudW18
RnVuY3Rpb24gICAgICAgMAotICBnZXRVVENTZWNvbmRzICAgICAgICAgZGF0ZVByb3RvRnVuY0dl
dFVUQ1NlY29uZHMgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0TWls
bGlzZWNvbmRzICAgICAgIGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMgICAgICAgICBEb250
RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFVUQ01pbGxpc2Vjb25kcyAgICBkYXRlUHJvdG9G
dW5jR2V0VVRDTWlsbGlzZWNvbmRzICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBn
ZXRUaW1lem9uZU9mZnNldCAgICAgZGF0ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0ICAgICAg
IERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKKyAgdmFsdWVPZiAgICAgICAgICAgICAgIGRhdGVQ
cm90b0Z1bmNHZXRUaW1lICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAw
ICBEYXRlUHJvdG90eXBlR2V0VGltZUludHJpbnNpYworICBnZXRUaW1lICAgICAgICAgICAgICAg
ZGF0ZVByb3RvRnVuY0dldFRpbWUgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAg
ICAgIDAgIERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljCisgIGdldEZ1bGxZZWFyICAgICAg
ICAgICBkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rp
b24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldEZ1bGxZZWFySW50cmluc2ljCisgIGdldFVUQ0Z1
bGxZZWFyICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIgICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50cmluc2lj
CisgIGdldE1vbnRoICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0TW9udGggICAgICAgICAg
ICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50
cmluc2ljCisgIGdldFVUQ01vbnRoICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGgg
ICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVU
Q01vbnRoSW50cmluc2ljCisgIGdldERhdGUgICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0
RGF0ZSAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3Rv
dHlwZUdldERhdGVJbnRyaW5zaWMKKyAgZ2V0VVRDRGF0ZSAgICAgICAgICAgIGRhdGVQcm90b0Z1
bmNHZXRVVENEYXRlICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRl
UHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNpYworICBnZXREYXkgICAgICAgICAgICAgICAgZGF0
ZVByb3RvRnVuY0dldERheSAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAg
IDAgIERhdGVQcm90b3R5cGVHZXREYXlJbnRyaW5zaWMKKyAgZ2V0VVRDRGF5ICAgICAgICAgICAg
IGRhdGVQcm90b0Z1bmNHZXRVVENEYXkgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAg
ICAgICAwICBEYXRlUHJvdG90eXBlR2V0VVRDRGF5SW50cmluc2ljCisgIGdldEhvdXJzICAgICAg
ICAgICAgICBkYXRlUHJvdG9GdW5jR2V0SG91cnMgICAgICAgICAgICAgICAgRG9udEVudW18RnVu
Y3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldEhvdXJzSW50cmluc2ljCisgIGdldFVUQ0hv
dXJzICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMgICAgICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ0hvdXJzSW50cmluc2ljCisg
IGdldE1pbnV0ZXMgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0TWludXRlcyAgICAgICAgICAg
ICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldE1pbnV0ZXNJbnRy
aW5zaWMKKyAgZ2V0VVRDTWludXRlcyAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVz
ICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VVRD
TWludXRlc0ludHJpbnNpYworICBnZXRTZWNvbmRzICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dl
dFNlY29uZHMgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90
b3R5cGVHZXRTZWNvbmRzSW50cmluc2ljCisgIGdldFVUQ1NlY29uZHMgICAgICAgICBkYXRlUHJv
dG9GdW5jR2V0VVRDU2Vjb25kcyAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAg
RGF0ZVByb3RvdHlwZUdldFVUQ1NlY29uZHNJbnRyaW5zaWMKKyAgZ2V0TWlsbGlzZWNvbmRzICAg
ICAgIGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMgICAgICAgICBEb250RW51bXxGdW5jdGlv
biAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljCisgIGdldFVU
Q01pbGxpc2Vjb25kcyAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzICAgICAgRG9u
dEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ01pbGxpc2Vjb25kc0lu
dHJpbnNpYworICBnZXRUaW1lem9uZU9mZnNldCAgICAgZGF0ZVByb3RvRnVuY0dldFRpbWV6b25l
T2Zmc2V0ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRU
aW1lem9uZU9mZnNldEludHJpbnNpYworICBnZXRZZWFyICAgICAgICAgICAgICAgZGF0ZVByb3Rv
RnVuY0dldFllYXIgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERh
dGVQcm90b3R5cGVHZXRZZWFySW50cmluc2ljCiAgIHNldFRpbWUgICAgICAgICAgICAgICBkYXRl
UHJvdG9GdW5jU2V0VGltZSAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAg
MQogICBzZXRNaWxsaXNlY29uZHMgICAgICAgZGF0ZVByb3RvRnVuY1NldE1pbGxpU2Vjb25kcyAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDEKICAgc2V0VVRDTWlsbGlzZWNvbmRzICAg
IGRhdGVQcm90b0Z1bmNTZXRVVENNaWxsaXNlY29uZHMgICAgICBEb250RW51bXxGdW5jdGlvbiAg
ICAgICAxCkBAIC00ODksNyArNDkwLDYgQEAgY29uc3QgQ2xhc3NJbmZvIERhdGVQcm90b3R5cGU6
OnNfaW5mbyA9IHsiT2JqZWN0IiwgJkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgJmQKICAgc2V0
RnVsbFllYXIgICAgICAgICAgIGRhdGVQcm90b0Z1bmNTZXRGdWxsWWVhciAgICAgICAgICAgICBE
b250RW51bXxGdW5jdGlvbiAgICAgICAzCiAgIHNldFVUQ0Z1bGxZZWFyICAgICAgICBkYXRlUHJv
dG9GdW5jU2V0VVRDRnVsbFllYXIgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMwog
ICBzZXRZZWFyICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY1NldFllYXIgICAgICAgICAgICAg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDEKLSAgZ2V0WWVhciAgICAgICAgICAgICAgIGRh
dGVQcm90b0Z1bmNHZXRZZWFyICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAg
ICAwCiAgIHRvSlNPTiAgICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jVG9KU09OICAgICAgICAg
ICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMQogQGVuZAogKi8KQEAgLTU0OSw3ICs1
NDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0lTT1N0
cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIGlmICghc3RkOjppc2Zpbml0ZSh0
aGlzRGF0ZU9iai0+aW50ZXJuYWxOdW1iZXIoKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsICJJ
bnZhbGlkIERhdGUiX3MpKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3Jp
YW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmpl
Y3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRo
aXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5E
YXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJp
bmcodm0sIFN0cmluZygiSW52YWxpZCBEYXRlIl9zKSkpOwogICAgIC8vIE1heGltdW0gYW1vdW50
IG9mIHNwYWNlIHdlIG5lZWQgaW4gYnVmZmVyOiA3IChtYXguIGRpZ2l0cyBpbiB5ZWFyKSArIDIg
KiA1ICgyIGNoYXJhY3RlcnMgZWFjaCBmb3IgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNv
bmQpICsgNCAoLiArIDMgZGlnaXRzIGZvciBtaWxsaXNlY29uZHMpCkBAIC02NjQsNyArNjY0LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2Jq
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7
CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlz
RGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpKSk7CkBAIC02NzksNyArNjc5LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAK
LSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpKSk7CkBAIC02OTQsNyArNjk0LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TW9udGgoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2Jq
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7
CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlz
RGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGgoKSkpOwpAQCAtNzA5LDcgKzcwOSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwog
Ci0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0Rh
dGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3Jl
Z29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlh
bkRhdGVUaW1lVVRDKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKQEAgLTcyNCw3ICs3MjQs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9i
aikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUp
OwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhp
c0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3Jl
Z29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlh
bkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoRGF5KCkpKTsKQEAgLTczOSw3ICs3Mzks
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENEYXRl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVP
YmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
KTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRo
aXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpOworICAgIGNvbnN0
IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVn
b3JpYW5EYXRlVGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aERheSgpKSk7CkBAIC03NTQs
NyArNzU0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0
RGF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICBpZiAoVU5MSUtFTFkoIXRo
aXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRp
bWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+
Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CkBAIC03Njks
NyArNzY5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0
VVRDRGF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICBpZiAoVU5MSUtFTFkoIXRo
aXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRp
bWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9i
ai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CkBA
IC03ODQsNyArNzg0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0SG91cnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBpZiAoVU5MSUtF
TFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsK
KyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7CkBAIC03
OTksNyArNzk5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
R2V0VVRDSG91cnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBpZiAoVU5MSUtFTFko
IXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0
ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsK
KyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRp
bWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7CkBA
IC04MTQsNyArODE0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0TWludXRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBpZiAoVU5MSUtF
TFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsK
KyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKTsKQEAg
LTgyOSw3ICs4MjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNHZXRVVENNaW51dGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIGlmIChVTkxJS0VM
WSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5E
YXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3Qp
OworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNE
YXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRl
VGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5taW51dGUoKSkp
OwpAQCAtODQ0LDcgKzg0NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY0dldFNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgaWYgKFVO
TElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdv
cmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVj
dCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhp
c0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVU
aW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnNlY29uZCgpKSk7
CkBAIC04NTksNyArODU5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jR2V0VVRDU2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBpZiAoVU5M
SUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2Jq
ZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFu
RGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25k
KCkpKTsKQEAgLTg4MCw3ICs4ODAsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogCiAgICAg
ZG91YmxlIHNlY3MgPSBmbG9vcihtaWxsaSAvIG1zUGVyU2Vjb25kKTsKICAgICBkb3VibGUgbXMg
PSBtaWxsaSAtIHNlY3MgKiBtc1BlclNlY29uZDsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKG1zKSk7CisgICAgLy8gU2luY2UgdGltZUNsaXAgbWFrZXMgaW50ZXJuYWxOdW1i
ZXIgaW50ZWdlciBtaWxsaXNlY29uZHMsIHRoaXMgcmVzdWx0IGlzIGFsd2F5cyBpbnQzMl90Lgor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4o
bXMpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dFVUQ01pbGxpc2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKQEAgLTg5OCw3ICs4OTksOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsbwog
CiAgICAgZG91YmxlIHNlY3MgPSBmbG9vcihtaWxsaSAvIG1zUGVyU2Vjb25kKTsKICAgICBkb3Vi
bGUgbXMgPSBtaWxsaSAtIHNlY3MgKiBtc1BlclNlY29uZDsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKG1zKSk7CisgICAgLy8gU2luY2UgdGltZUNsaXAgbWFrZXMgaW50ZXJu
YWxOdW1iZXIgaW50ZWdlciBtaWxsaXNlY29uZHMsIHRoaXMgcmVzdWx0IGlzIGFsd2F5cyBpbnQz
Ml90LgorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50
MzJfdD4obXMpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY0dldFRpbWV6b25lT2Zmc2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQpAQCAtOTEwLDEwICs5MTIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQoSlNHbG9iYWxPYmplY3Qq
IGdsb2IKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3Jp
YW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0
ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29y
aWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlm
ICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
YU4oKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigtZ3JlZ29yaWFuRGF0
ZVRpbWUtPnV0Y09mZnNldCgpIC8gbWludXRlc1BlckhvdXIpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKC1ncmVnb3JpYW5EYXRlVGltZS0+dXRjT2Zmc2V0SW5NaW51dGUo
KSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRU
aW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQpA
QCAtOTUxLDEzICs5NTMsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHNldE5ld1ZhbHVlRnJv
bVRpbWVBcmdzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICBkb3VibGUg
bXMgPSBtaWxsaSAtIHNlY3MgKiBtc1BlclNlY29uZDsKIAogICAgIGNvbnN0IEdyZWdvcmlhbkRh
dGVUaW1lKiBvdGhlciA9IGlucHV0VGltZVR5cGUgPT0gV1RGOjpVVENUaW1lCi0gICAgICAgID8g
dGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCkKLSAgICAgICAg
OiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAg
PyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pCisgICAgICAgIDogdGhpc0Rh
dGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIW90aGVyKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogCi0gICAgR3JlZ29yaWFuRGF0ZVRpbWUg
Z3JlZ29yaWFuRGF0ZVRpbWU7Ci0gICAgZ3JlZ29yaWFuRGF0ZVRpbWUuY29weUZyb20oKm90aGVy
KTsKKyAgICBHcmVnb3JpYW5EYXRlVGltZSBncmVnb3JpYW5EYXRlVGltZSgqb3RoZXIpOwogICAg
IGJvb2wgc3VjY2VzcyA9IGZpbGxTdHJ1Y3R1cmVzVXNpbmdUaW1lQXJncyhnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSwgbnVtQXJnc1RvVXNlLCAmbXMsICZncmVnb3JpYW5EYXRlVGltZSk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgaWYgKCFz
dWNjZXNzKSB7CkBAIC05OTQsMTEgKzk5NSwxMSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc2V0
TmV3VmFsdWVGcm9tRGF0ZUFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAog
ICAgIGVsc2UgeyAKICAgICAgICAgbXMgPSBtaWxsaSAtIGZsb29yKG1pbGxpIC8gbXNQZXJTZWNv
bmQpICogbXNQZXJTZWNvbmQ7IAogICAgICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogb3Ro
ZXIgPSBpbnB1dFRpbWVUeXBlID09IFdURjo6VVRDVGltZQotICAgICAgICAgICAgPyB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KQotICAgICAgICAgICAgOiB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAg
ID8gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKQorICAgICAgICAgICAgOiB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgICAgICBpZiAoIW90aGVyKQog
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKLSAgICAgICAgZ3Jl
Z29yaWFuRGF0ZVRpbWUuY29weUZyb20oKm90aGVyKTsKKyAgICAgICAgZ3JlZ29yaWFuRGF0ZVRp
bWUgPSAqb3RoZXI7CiAgICAgfQogICAgIAogICAgIGJvb2wgc3VjY2VzcyA9IGZpbGxTdHJ1Y3R1
cmVzVXNpbmdEYXRlQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgbnVtQXJnc1RvVXNlLCAm
bXMsICZncmVnb3JpYW5EYXRlVGltZSk7CkBAIC0xMTA5LDggKzExMTAsOCBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRZZWFyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsCiAgICAgZWxzZSB7CiAgICAgICAgIGRvdWJsZSBzZWNzID0gZmxvb3IobWls
bGkgLyBtc1BlclNlY29uZCk7CiAgICAgICAgIG1zID0gbWlsbGkgLSBzZWNzICogbXNQZXJTZWNv
bmQ7Ci0gICAgICAgIGlmIChjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogb3RoZXIgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KSkKLSAgICAgICAgICAgIGdyZWdv
cmlhbkRhdGVUaW1lLmNvcHlGcm9tKCpvdGhlcik7CisgICAgICAgIGlmIChjb25zdCBHcmVnb3Jp
YW5EYXRlVGltZSogb3RoZXIgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pKQor
ICAgICAgICAgICAgZ3JlZ29yaWFuRGF0ZVRpbWUgPSAqb3RoZXI7CiAgICAgfQogCiAgICAgZG91
YmxlIHllYXIgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvSW50ZWdlclByZXNlcnZlTmFOKGds
b2JhbE9iamVjdCk7CkBAIC0xMTM2LDcgKzExMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
CiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1l
KGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRh
dGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdy
ZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcAppbmRleCBh
MTJhMjQwNTVjNzI5MGEzYTFjOTU2ZjZhYjRlNzYzN2Y4N2ZiYjM0Li5hNDFiNTdiMmNiY2JiMWMy
ZDVkNWY2Y2E5OWI2YWQ2MGI0ZWMyYTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRyaW5zaWMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludHJpbnNpYy5jcHAKQEAgLTgzLDYgKzgzLDQ0IEBAIGNvbnN0IGNoYXIqIGludHJpbnNp
Y05hbWUoSW50cmluc2ljIGludHJpbnNpYykKICAgICAgICAgcmV0dXJuICJDaGFyQ29kZUF0SW50
cmluc2ljIjsKICAgICBjYXNlIENoYXJBdEludHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJDaGFy
QXRJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWM6Cisg
ICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWMiOworICAgIGNhc2Ug
RGF0ZVByb3RvdHlwZUdldEZ1bGxZZWFySW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQ
cm90b3R5cGVHZXRGdWxsWWVhckludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0
VVRDRnVsbFllYXJJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVU
Q0Z1bGxZZWFySW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNb250aEludHJp
bnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0TW9udGhJbnRyaW5zaWMiOwor
ICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01vbnRoSW50cmluc2ljOgorICAgICAgICByZXR1
cm4gIkRhdGVQcm90b3R5cGVHZXRVVENNb250aEludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJv
dG90eXBlR2V0RGF0ZUludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0
RGF0ZUludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNp
YzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNpYyI7Cisg
ICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF5SW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRh
dGVQcm90b3R5cGVHZXREYXlJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVU
Q0RheUludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDRGF5SW50
cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYzoKKyAgICAg
ICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0SG91cnNJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0
ZVByb3RvdHlwZUdldFVUQ0hvdXJzSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90
b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWlu
dXRlc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0TWludXRlc0lu
dHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYzoK
KyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYyI7Cisg
ICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJu
ICJEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90
eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBl
R2V0VVRDU2Vjb25kc0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWlsbGlz
ZWNvbmRzSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRNaWxsaXNl
Y29uZHNJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01pbGxpc2Vjb25k
c0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDTWlsbGlzZWNv
bmRzSW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9mZnNldElu
dHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VGltZXpvbmVPZmZzZXRJ
bnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFllYXJJbnRyaW5zaWM6CisgICAg
ICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFllYXJJbnRyaW5zaWMiOwogICAgIGNhc2UgRnJv
bUNoYXJDb2RlSW50cmluc2ljOgogICAgICAgICByZXR1cm4gIkZyb21DaGFyQ29kZUludHJpbnNp
YyI7CiAgICAgY2FzZSBQb3dJbnRyaW5zaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRyaW5zaWMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludHJpbnNpYy5oCmluZGV4IGU1MWI4MzlkOTg2Njc2ODk4M2U3NTE4ZTI0NzVlYTM1OGQ5ZmQ4
NTEuLmZlMmU5MTBmOTFlZGVhZWQyNjA5ZjQyNDc0ZTI4MDRiYjZmZmNjZTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCkBAIC01NCw2ICs1NCwyNSBAQCBlbnVt
IEludHJpbnNpYyA6IHVpbnQ4X3QgewogICAgIEFycmF5SW5kZXhPZkludHJpbnNpYywKICAgICBD
aGFyQ29kZUF0SW50cmluc2ljLAogICAgIENoYXJBdEludHJpbnNpYywKKyAgICBEYXRlUHJvdG90
eXBlR2V0VGltZUludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0RnVsbFllYXJJbnRyaW5z
aWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50cmluc2ljLAorICAgIERhdGVQ
cm90b3R5cGVHZXRNb250aEludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRDTW9udGhJ
bnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldERhdGVJbnRyaW5zaWMsCisgICAgRGF0ZVBy
b3RvdHlwZUdldFVUQ0RhdGVJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldERheUludHJp
bnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRDRGF5SW50cmluc2ljLAorICAgIERhdGVQcm90
b3R5cGVHZXRIb3Vyc0ludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRDSG91cnNJbnRy
aW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldE1pbnV0ZXNJbnRyaW5zaWMsCisgICAgRGF0ZVBy
b3RvdHlwZUdldFVUQ01pbnV0ZXNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFNlY29u
ZHNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ1NlY29uZHNJbnRyaW5zaWMsCisg
ICAgRGF0ZVByb3RvdHlwZUdldE1pbGxpc2Vjb25kc0ludHJpbnNpYywKKyAgICBEYXRlUHJvdG90
eXBlR2V0VVRDTWlsbGlzZWNvbmRzSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRUaW1l
em9uZU9mZnNldEludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0WWVhckludHJpbnNpYywK
ICAgICBGcm9tQ2hhckNvZGVJbnRyaW5zaWMsCiAgICAgUG93SW50cmluc2ljLAogICAgIEZsb29y
SW50cmluc2ljLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNE
YXRlTWF0aC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNw
cAppbmRleCA3OTk2YThmOGFlNzBlZjBjNTRkZmJiMjhkMzA2YzE5ZmJjNWFhZjIxLi42YzhiMzc5
NzY3ZjQ2MzEwY2YzNTNkYTQ4ZTQxZTNhNmI1ZTIyYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNwcApAQCAtMjE5LDcgKzIxOSw3IEBAIHZvaWQgbXNU
b0dyZWdvcmlhbkRhdGVUaW1lKFZNJiB2bSwgZG91YmxlIG1zLCBXVEY6OlRpbWVUeXBlIG91dHB1
dFRpbWVUeXBlLCBHcmVnCiAgICAgdG0uc2V0TW9udGgobW9udGhGcm9tRGF5SW5ZZWFyKHRtLnll
YXJEYXkoKSwgaXNMZWFwWWVhcih5ZWFyKSkpOwogICAgIHRtLnNldFllYXIoeWVhcik7CiAgICAg
dG0uc2V0SXNEU1QobG9jYWxUaW1lLmlzRFNUKTsKLSAgICB0bS5zZXRVdGNPZmZzZXQobG9jYWxU
aW1lLm9mZnNldCAvIFdURjo6bXNQZXJTZWNvbmQpOworICAgIHRtLnNldFVUQ09mZnNldEluTWlu
dXRlKGxvY2FsVGltZS5vZmZzZXQgLyBXVEY6Om1zUGVyTWludXRlKTsKIH0KIAogZG91YmxlIHBh
cnNlRGF0ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoVk0mIHZtLCBjb25zdCBjaGFyKiBk
YXRlU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5jcHAKaW5kZXgg
ZDFjNjczZTY1ZmE4ZjJhN2I4ZWJjZjRlNWYyMTRmZjk4YzI4YjdlNC4uMTZkYzliOTFmNGZjNDMx
Mjg2NDM2NDZlYzZkMDM5YWVjYWRmN2MxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNUeXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1R5cGUuY3BwCkBAIC05Niw2ICs5Niw3IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0
cmVhbSYgb3V0LCBKU0M6OkpTVHlwZSB0eXBlKQogICAgIENBU0UoV2l0aFNjb3BlVHlwZSkKICAg
ICBDQVNFKE1vZHVsZU5hbWVzcGFjZU9iamVjdFR5cGUpCiAgICAgQ0FTRShSZWdFeHBPYmplY3RU
eXBlKQorICAgIENBU0UoSlNEYXRlVHlwZSkKICAgICBDQVNFKFByb3h5T2JqZWN0VHlwZSkKICAg
ICBDQVNFKEpTR2VuZXJhdG9yVHlwZSkKICAgICBDQVNFKEpTQXN5bmNHZW5lcmF0b3JUeXBlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAppbmRleCA2ZTk5Njg3NGVmMmUzYjdh
YzQyYjUwYTE4NGVmNDhiNjJhZWQwYjZjLi44MGJkMzRjYjYyMjFhYWZiZTk2YWYxMDQ2NTMyYTY3
ZDc3MzJlYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaApAQCAtMTA3
LDYgKzEwNyw3IEBAIGVudW0gSlNUeXBlIDogdWludDhfdCB7CiAKICAgICBNb2R1bGVOYW1lc3Bh
Y2VPYmplY3RUeXBlLAogICAgIFJlZ0V4cE9iamVjdFR5cGUsCisgICAgSlNEYXRlVHlwZSwKICAg
ICBQcm94eU9iamVjdFR5cGUsCiAgICAgSlNHZW5lcmF0b3JUeXBlLAogICAgIEpTQXN5bmNHZW5l
cmF0b3JUeXBlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaCBiL1NvdXJj
ZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5kZXggZjllMjgxMWZiYWM0ZTc3OTg1Zjc2NjU4MDA1MThh
NTU2NDA0NDg1My4uN2UyZDFkZTczOTZhNzg0OTYyMDE4NDEyMjVhMzQ2MGUyODEyN2M2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9E
YXRlTWF0aC5oCkBAIC0xMDYsMTYgKzEwNiwxNiBAQCBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5
TmFtZVs3XSA9IHsgIk1vbiIsICJUdWUiLCAiV2VkIiwgIlRodSIsICJGcmkiLCAiU2F0IiwgIgog
Y29uc3QgY2hhciogY29uc3QgbW9udGhOYW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwg
IkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAi
RGVjIiB9OwogY29uc3QgY2hhciogY29uc3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5
IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAi
QXVndXN0IiwgIlNlcHRlbWJlciIsICJPY3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9
OwogCi1jb25zdCBkb3VibGUgaG91cnNQZXJEYXkgPSAyNC4wOwotY29uc3QgZG91YmxlIG1pbnV0
ZXNQZXJIb3VyID0gNjAuMDsKLWNvbnN0IGRvdWJsZSBzZWNvbmRzUGVyTWludXRlID0gNjAuMDsK
LWNvbnN0IGRvdWJsZSBtc1BlclNlY29uZCA9IDEwMDAuMDsKLWNvbnN0IGRvdWJsZSBtc1Blck1v
bnRoID0gMjU5MjAwMDAwMC4wOwotY29uc3QgZG91YmxlIHNlY29uZHNQZXJIb3VyID0gc2Vjb25k
c1Blck1pbnV0ZSAqIG1pbnV0ZXNQZXJIb3VyOwotY29uc3QgZG91YmxlIHNlY29uZHNQZXJEYXkg
PSBzZWNvbmRzUGVySG91ciAqIGhvdXJzUGVyRGF5OwotY29uc3QgZG91YmxlIG1zUGVyTWludXRl
ID0gbXNQZXJTZWNvbmQgKiBzZWNvbmRzUGVyTWludXRlOwotY29uc3QgZG91YmxlIG1zUGVySG91
ciA9IG1zUGVyU2Vjb25kICogc2Vjb25kc1BlckhvdXI7Ci1jb25zdCBkb3VibGUgbXNQZXJEYXkg
PSBtc1BlclNlY29uZCAqIHNlY29uZHNQZXJEYXk7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBo
b3Vyc1BlckRheSA9IDI0LjA7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBtaW51dGVzUGVySG91
ciA9IDYwLjA7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBzZWNvbmRzUGVyTWludXRlID0gNjAu
MDsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIG1zUGVyU2Vjb25kID0gMTAwMC4wOworc3RhdGlj
IGNvbnN0ZXhwciBkb3VibGUgbXNQZXJNb250aCA9IDI1OTIwMDAwMDAuMDsKK3N0YXRpYyBjb25z
dGV4cHIgZG91YmxlIHNlY29uZHNQZXJIb3VyID0gc2Vjb25kc1Blck1pbnV0ZSAqIG1pbnV0ZXNQ
ZXJIb3VyOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgc2Vjb25kc1BlckRheSA9IHNlY29uZHNQ
ZXJIb3VyICogaG91cnNQZXJEYXk7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBtc1Blck1pbnV0
ZSA9IG1zUGVyU2Vjb25kICogc2Vjb25kc1Blck1pbnV0ZTsKK3N0YXRpYyBjb25zdGV4cHIgZG91
YmxlIG1zUGVySG91ciA9IG1zUGVyU2Vjb25kICogc2Vjb25kc1BlckhvdXI7CitzdGF0aWMgY29u
c3RleHByIGRvdWJsZSBtc1BlckRheSA9IG1zUGVyU2Vjb25kICogc2Vjb25kc1BlckRheTsKIAog
V1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgaXNMZWFwWWVhcihpbnQgeWVhcik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0dyZWdvcmlhbkRhdGVUaW1lLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L0dyZWdvcmlhbkRhdGVUaW1lLmNwcAppbmRleCBhM2M0NGI5MjFhNzA4MzJjMjQ1NzhlZjRiOTA0
ZGEyMTIyNjgyZjY0Li4zMjE0ODg3ZWYzZmY0YzkyMmNhYjUxNTkwMTYyMzc1MjYyMzA5NDY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9HcmVnb3JpYW5EYXRlVGltZS5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQg
R3JlZ29yaWFuRGF0ZVRpbWU6OnNldFRvQ3VycmVudExvY2FsVGltZSgpCiAgICAgbV9ob3VyID0g
c3lzdGVtVGltZS53SG91cjsKICAgICBtX21pbnV0ZSA9IHN5c3RlbVRpbWUud01pbnV0ZTsKICAg
ICBtX3NlY29uZCA9IHN5c3RlbVRpbWUud1NlY29uZDsKLSAgICBtX3V0Y09mZnNldCA9IC1iaWFz
ICogc2Vjb25kc1Blck1pbnV0ZTsKKyAgICBtX3V0Y09mZnNldEluTWludXRlID0gLWJpYXM7CiAg
ICAgbV9pc0RTVCA9IHRpbWVab25lSWQgPT0gVElNRV9aT05FX0lEX0RBWUxJR0hUID8gMSA6IDA7
CiAjZWxzZQogICAgIHRtIGxvY2FsVE07CkBAIC04Myw5ICs4Myw5IEBAIHZvaWQgR3JlZ29yaWFu
RGF0ZVRpbWU6OnNldFRvQ3VycmVudExvY2FsVGltZSgpCiAgICAgbV9zZWNvbmQgPSBsb2NhbFRN
LnRtX3NlYzsKICAgICBtX2lzRFNUID0gbG9jYWxUTS50bV9pc2RzdDsKICNpZiBIQVZFKFRNX0dN
VE9GRikKLSAgICBtX3V0Y09mZnNldCA9IGxvY2FsVE0udG1fZ210b2ZmOworICAgIG1fdXRjT2Zm
c2V0SW5NaW51dGUgPSBsb2NhbFRNLnRtX2dtdG9mZiAvIHNlY29uZHNQZXJNaW51dGU7CiAjZWxz
ZQotICAgIG1fdXRjT2Zmc2V0ID0gY2FsY3VsYXRlTG9jYWxUaW1lT2Zmc2V0KGxvY2FsVGltZSAq
IG1zUGVyU2Vjb25kKS5vZmZzZXQgLyBtc1BlclNlY29uZDsKKyAgICBtX3V0Y09mZnNldEluTWlu
dXRlID0gY2FsY3VsYXRlTG9jYWxUaW1lT2Zmc2V0KGxvY2FsVGltZSAqIG1zUGVyU2Vjb25kKS5v
ZmZzZXQgLyBtc1Blck1pbnV0ZTsKICNlbmRpZgogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9HcmVnb3JpYW5EYXRlVGltZS5oIGIvU291cmNlL1dURi93dGYvR3JlZ29yaWFu
RGF0ZVRpbWUuaAppbmRleCAyNWRkMTVjYWUwNGJmODI3ZmUxZmZjZTk1Y2U1NzFmODczNjU3NTdm
Li4wMmMyZWM3Y2YzMjFhYTlkNGI3ZmYwOWFhYjkwYTU3YWY1YWYwNjE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9HcmVnb3JpYW5EYXRlVGltZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0dy
ZWdvcmlhbkRhdGVUaW1lLmgKQEAgLTI2LDI3ICsyNiwxNiBAQAogCiAjaW5jbHVkZSA8c3RyaW5n
Lmg+CiAjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAog
bmFtZXNwYWNlIFdURiB7CiAKIGNsYXNzIEdyZWdvcmlhbkRhdGVUaW1lIGZpbmFsIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHcmVnb3Jp
YW5EYXRlVGltZSk7CiBwdWJsaWM6Ci0gICAgR3JlZ29yaWFuRGF0ZVRpbWUoKQotICAgICAgICA6
IG1feWVhcigwKQotICAgICAgICAsIG1fbW9udGgoMCkKLSAgICAgICAgLCBtX3llYXJEYXkoMCkK
LSAgICAgICAgLCBtX21vbnRoRGF5KDApCi0gICAgICAgICwgbV93ZWVrRGF5KDApCi0gICAgICAg
ICwgbV9ob3VyKDApCi0gICAgICAgICwgbV9taW51dGUoMCkKLSAgICAgICAgLCBtX3NlY29uZCgw
KQotICAgICAgICAsIG1fdXRjT2Zmc2V0KDApCi0gICAgICAgICwgbV9pc0RTVCgwKQotICAgIHsK
LSAgICB9CisgICAgR3JlZ29yaWFuRGF0ZVRpbWUoKSA9IGRlZmF1bHQ7CiAKICAgICBpbmxpbmUg
aW50IHllYXIoKSBjb25zdCB7IHJldHVybiBtX3llYXI7IH0KICAgICBpbmxpbmUgaW50IG1vbnRo
KCkgY29uc3QgeyByZXR1cm4gbV9tb250aDsgfQpAQCAtNTYsNyArNDUsNyBAQCBjbGFzcyBHcmVn
b3JpYW5EYXRlVGltZSBmaW5hbCB7CiAgICAgaW5saW5lIGludCBob3VyKCkgY29uc3QgeyByZXR1
cm4gbV9ob3VyOyB9CiAgICAgaW5saW5lIGludCBtaW51dGUoKSBjb25zdCB7IHJldHVybiBtX21p
bnV0ZTsgfQogICAgIGlubGluZSBpbnQgc2Vjb25kKCkgY29uc3QgeyByZXR1cm4gbV9zZWNvbmQ7
IH0KLSAgICBpbmxpbmUgaW50IHV0Y09mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdXRjT2Zmc2V0
OyB9CisgICAgaW5saW5lIGludCB1dGNPZmZzZXRJbk1pbnV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dXRjT2Zmc2V0SW5NaW51dGU7IH0KICAgICBpbmxpbmUgaW50IGlzRFNUKCkgY29uc3QgeyByZXR1
cm4gbV9pc0RTVDsgfQogCiAgICAgaW5saW5lIHZvaWQgc2V0WWVhcihpbnQgeWVhcikgeyBtX3ll
YXIgPSB5ZWFyOyB9CkBAIC02Nyw5ICs1NiwyMCBAQCBjbGFzcyBHcmVnb3JpYW5EYXRlVGltZSBm
aW5hbCB7CiAgICAgaW5saW5lIHZvaWQgc2V0SG91cihpbnQgaG91cikgeyBtX2hvdXIgPSBob3Vy
OyB9CiAgICAgaW5saW5lIHZvaWQgc2V0TWludXRlKGludCBtaW51dGUpIHsgbV9taW51dGUgPSBt
aW51dGU7IH0KICAgICBpbmxpbmUgdm9pZCBzZXRTZWNvbmQoaW50IHNlY29uZCkgeyBtX3NlY29u
ZCA9IHNlY29uZDsgfQotICAgIGlubGluZSB2b2lkIHNldFV0Y09mZnNldChpbnQgdXRjT2Zmc2V0
KSB7IG1fdXRjT2Zmc2V0ID0gdXRjT2Zmc2V0OyB9CisgICAgaW5saW5lIHZvaWQgc2V0VVRDT2Zm
c2V0SW5NaW51dGUoaW50IHV0Y09mZnNldEluTWludXRlKSB7IG1fdXRjT2Zmc2V0SW5NaW51dGUg
PSB1dGNPZmZzZXRJbk1pbnV0ZTsgfQogICAgIGlubGluZSB2b2lkIHNldElzRFNUKGludCBpc0RT
VCkgeyBtX2lzRFNUID0gaXNEU1Q7IH0KIAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZZ
ZWFyKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX3llYXIp
OyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk1vbnRoKCkgeyByZXR1cm4gT0JKRUNU
X09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX21vbnRoKTsgfQorICAgIHN0YXRpYyBwdHJk
aWZmX3Qgb2Zmc2V0T2ZZZWFyRGF5KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlh
bkRhdGVUaW1lLCBtX3llYXJEYXkpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk1v
bnRoRGF5KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX21v
bnRoRGF5KTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXZWVrRGF5KCkgeyByZXR1
cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX3dlZWtEYXkpOyB9CisgICAg
c3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkhvdXIoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
R3JlZ29yaWFuRGF0ZVRpbWUsIG1faG91cik7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNl
dE9mTWludXRlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBt
X21pbnV0ZSk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU2Vjb25kKCkgeyByZXR1
cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX3NlY29uZCk7IH0KKyAgICBz
dGF0aWMgcHRyZGlmZl90IG9mZnNldE9mVVRDT2Zmc2V0SW5NaW51dGUoKSB7IHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoR3JlZ29yaWFuRGF0ZVRpbWUsIG1fdXRjT2Zmc2V0SW5NaW51dGUpOyB9Cisg
ICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZklzRFNUKCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX2lzRFNUKTsgfQorCiAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgc2V0VG9DdXJyZW50TG9jYWxUaW1lKCk7CiAKICAgICBvcGVyYXRvciB0bSgpIGNv
bnN0CkBAIC04OCwzNyArODgsMjMgQEAgY2xhc3MgR3JlZ29yaWFuRGF0ZVRpbWUgZmluYWwgewog
ICAgICAgICByZXQudG1faXNkc3QgPSBtX2lzRFNUOwogCiAjaWYgSEFWRShUTV9HTVRPRkYpCi0g
ICAgICAgIHJldC50bV9nbXRvZmYgPSBzdGF0aWNfY2FzdDxsb25nPihtX3V0Y09mZnNldCk7Cisg
ICAgICAgIHJldC50bV9nbXRvZmYgPSBzdGF0aWNfY2FzdDxsb25nPihtX3V0Y09mZnNldEluTWlu
dXRlKSAqIHN0YXRpY19jYXN0PGxvbmc+KHNlY29uZHNQZXJNaW51dGUpOwogI2VuZGlmCiAKICAg
ICAgICAgcmV0dXJuIHJldDsKICAgICB9CiAKLSAgICB2b2lkIGNvcHlGcm9tKGNvbnN0IEdyZWdv
cmlhbkRhdGVUaW1lJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIG1feWVhciA9IG90aGVyLm1feWVh
cjsKLSAgICAgICAgbV9tb250aCA9IG90aGVyLm1fbW9udGg7Ci0gICAgICAgIG1feWVhckRheSA9
IG90aGVyLm1feWVhckRheTsKLSAgICAgICAgbV9tb250aERheSA9IG90aGVyLm1fbW9udGhEYXk7
Ci0gICAgICAgIG1fd2Vla0RheSA9IG90aGVyLm1fd2Vla0RheTsKLSAgICAgICAgbV9ob3VyID0g
b3RoZXIubV9ob3VyOwotICAgICAgICBtX21pbnV0ZSA9IG90aGVyLm1fbWludXRlOwotICAgICAg
ICBtX3NlY29uZCA9IG90aGVyLm1fc2Vjb25kOwotICAgICAgICBtX3V0Y09mZnNldCA9IG90aGVy
Lm1fdXRjT2Zmc2V0OwotICAgICAgICBtX2lzRFNUID0gb3RoZXIubV9pc0RTVDsKLSAgICB9Ci0K
IHByaXZhdGU6Ci0gICAgaW50IG1feWVhcjsKLSAgICBpbnQgbV9tb250aDsKLSAgICBpbnQgbV95
ZWFyRGF5OwotICAgIGludCBtX21vbnRoRGF5OwotICAgIGludCBtX3dlZWtEYXk7Ci0gICAgaW50
IG1faG91cjsKLSAgICBpbnQgbV9taW51dGU7Ci0gICAgaW50IG1fc2Vjb25kOwotICAgIGludCBt
X3V0Y09mZnNldDsKLSAgICBpbnQgbV9pc0RTVDsKKyAgICBpbnQgbV95ZWFyIHsgMCB9OworICAg
IGludCBtX21vbnRoIHsgMCB9OworICAgIGludCBtX3llYXJEYXkgeyAwIH07CisgICAgaW50IG1f
bW9udGhEYXkgeyAwIH07CisgICAgaW50IG1fd2Vla0RheSB7IDAgfTsKKyAgICBpbnQgbV9ob3Vy
IHsgMCB9OworICAgIGludCBtX21pbnV0ZSB7IDAgfTsKKyAgICBpbnQgbV9zZWNvbmQgeyAwIH07
CisgICAgaW50IG1fdXRjT2Zmc2V0SW5NaW51dGUgeyAwIH07CisgICAgaW50IG1faXNEU1QgeyAw
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCmluZGV4IGM5OTdiMzE4NjdkMzgw
ZDI4OTBjZWUyYmY1NTFkYjlkNDcxMDhkMjUuLjEwNmE3ZjhmOWI0MWUwNDM4YTAzNjc0NWJhOWNk
N2FmZGFlZThmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21o
dG1sL01IVE1MQXJjaGl2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUv
bWh0bWwvTUhUTUxBcmNoaXZlLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIFJlZjxTaGFyZWRCdWZm
ZXI+IE1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEoUGFnZSogcGFnZSkKIAogICAgIEdy
ZWdvcmlhbkRhdGVUaW1lIG5vdzsKICAgICBub3cuc2V0VG9DdXJyZW50TG9jYWxUaW1lKCk7Ci0g
ICAgU3RyaW5nIGRhdGVTdHJpbmcgPSBtYWtlUkZDMjgyMkRhdGVTdHJpbmcobm93LndlZWtEYXko
KSwgbm93Lm1vbnRoRGF5KCksIG5vdy5tb250aCgpLCBub3cueWVhcigpLCBub3cuaG91cigpLCBu
b3cubWludXRlKCksIG5vdy5zZWNvbmQoKSwgbm93LnV0Y09mZnNldCgpIC8gNjApOworICAgIFN0
cmluZyBkYXRlU3RyaW5nID0gbWFrZVJGQzI4MjJEYXRlU3RyaW5nKG5vdy53ZWVrRGF5KCksIG5v
dy5tb250aERheSgpLCBub3cubW9udGgoKSwgbm93LnllYXIoKSwgbm93LmhvdXIoKSwgbm93Lm1p
bnV0ZSgpLCBub3cuc2Vjb25kKCksIG5vdy51dGNPZmZzZXRJbk1pbnV0ZSgpKTsKIAogICAgIFN0
cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRlcjsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgiRnJv
bTogPFNhdmVkIGJ5IFdlYktpdD5cclxuIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxv
ZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZhY2Q0YTI2N2U4YTQ0YmRiOGRiY2RjNjkyY2Y5
Y2QwNDQ1ZjdkY2UuLjg1Y2YyZjA5NzgxZTk0MjU4MDIxMGQzZjQxZmExZDE4MzE5YTQ3NjUgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNzEgQEAKKzIwMTktMTAtMjggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBEYXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBpbnRyaW5zaWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE4Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNz
L2RhdGUtZ2V0LWRhdGUtaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC1kYXktaml0LmpzOiBBZGRlZC4K
KyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9k
YXRlLWdldC1mdWxsLXllYXItaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC1ob3Vycy1qaXQuanM6IEFk
ZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3Ry
ZXNzL2RhdGUtZ2V0LW1pbGxpc2Vjb25kcy1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxk
QmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LW1pbnV0ZXMt
aml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHN0cmVzcy9kYXRlLWdldC1tb250aC1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hv
dWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXNlY29u
ZHMtaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC10aW1lLWppdC5qczogQWRkZWQuCisgICAgICAgIChz
aG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdGlt
ZXpvbmUtb2Zmc2V0LWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdXRjLWRhdGUtaml0LmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVz
cy9kYXRlLWdldC11dGMtZGF5LWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6Cisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdXRjLWZ1bGwteWVhci1q
aXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAg
ICAgICogc3RyZXNzL2RhdGUtZ2V0LXV0Yy1ob3Vycy1qaXQuanM6IEFkZGVkLgorICAgICAgICAo
c2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXV0
Yy1taWxsaXNlY29uZHMtaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC11dGMtbWludXRlcy1qaXQuanM6
IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICog
c3RyZXNzL2RhdGUtZ2V0LXV0Yy1tb250aC1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxk
QmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXV0Yy1zZWNv
bmRzLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQteWVhci1qaXQuanM6IEFkZGVkLgorICAgICAgICAo
c2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtdmFsdWUt
b2Ytaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgor
CiAyMDE5LTEwLTI4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0pTQ10gT3B0aW1pemUgUHJvbWlzZSBydW50aW1lIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF0ZS1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRl
LWdldC1kYXRlLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDNlN2JlZTIxNmIyOWZkYTZiOTg4MDI5MWJj
YTRmYmM2YTI2MzQyCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQt
ZGF0ZS1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0
ZSkgeworICAgIHJldHVybiBkYXRlLmdldERhdGUoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2
YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIg
ZXhwZWN0ZWQgPSBkYXRlLmdldERhdGUoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kp
IHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcg
RGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0RGF0ZSgpKTsKKyAgICBzaG91bGRC
ZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9kYXRlLWdldC1kYXktaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF5LWpp
dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kYjU3NzMxNDgyYzEwNTc1YWE4N2E5YmU4ZmI2ZTc2ZTQzMDZjMTcx
Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF5LWppdC5qcwpA
QCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFk
IHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0
dXJuIGRhdGUuZ2V0RGF5KCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcg
RGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0
ZS5nZXREYXkoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRC
ZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNo
b3VsZEJlKHRlc3QoZCksIGQuZ2V0RGF5KCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52
YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LWZ1
bGwteWVhci1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1mdWxsLXllYXItaml0Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJjMzhiYjFmODFkMDMwNmM5ZDA3NzIzYWI1MjFhZjBhZGZmYjJmZDgKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1mdWxsLXllYXItaml0Lmpz
CkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsK
KyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdi
YWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICBy
ZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRl
ID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3Rl
ZCA9IGRhdGUuZ2V0RnVsbFllYXIoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsK
KyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0
ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0RnVsbFllYXIoKSk7CisgICAgc2hvdWxk
QmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvZGF0ZS1nZXQtaG91cnMtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtaG91
cnMtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmMjg3MDRjZmU2ZGJiNTIwN2NmOWEyNmVhMGEwYWNjNDkx
ZGU3M2QKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1ob3Vycy1q
aXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgewor
ICAgIHJldHVybiBkYXRlLmdldEhvdXJzKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRh
dGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVj
dGVkID0gZGF0ZS5nZXRIb3VycygpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgewor
ICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRl
KCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRIb3VycygpKTsKKyAgICBzaG91bGRCZShp
c05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9kYXRlLWdldC1taWxsaXNlY29uZHMtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQt
bWlsbGlzZWNvbmRzLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDkwOWNmMjMwNzc4OGQyZjNlNDFiN2M4
ZGQ3ZmU4YWRhZjc4NDllCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1n
ZXQtbWlsbGlzZWNvbmRzLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRC
ZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rp
b24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCk7Cit9Citu
b0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBu
ZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRNaWxsaXNlY29uZHMoKTsKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBl
eHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCks
IGQuZ2V0TWlsbGlzZWNvbmRzKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkp
LCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LW1pbnV0ZXMt
aml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtbWludXRlcy1qaXQuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2Y0Nzc0YTFkOGVhZTUyYjA2ZmNkODg2ZmJlMTQ2OWJiMzgwNDYwNwotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LW1pbnV0ZXMtaml0LmpzCkBAIC0wLDAgKzEs
MTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0
dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcg
KyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5n
ZXRNaW51dGVzKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgp
OwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRN
aW51dGVzKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUo
dGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91
bGRCZSh0ZXN0KGQpLCBkLmdldE1pbnV0ZXMoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChp
bnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQt
bW9udGgtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtbW9udGgtaml0LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk0NWRjMWFiNmVlMzI3YzY3YjdhMWY3ZDE3ODRiYWZmODg1NmVlN2MKLS0tIC9kZXYv
bnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1tb250aC1qaXQuanMKQEAgLTAsMCAr
MSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChh
Y3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTog
JyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRl
LmdldE1vbnRoKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgp
OwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRN
b250aCgpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRl
c3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxk
QmUodGVzdChkKSwgZC5nZXRNb250aCgpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFs
aWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1zZWNv
bmRzLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXNlY29uZHMtaml0LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZmNDc2Y2JhNDhkNTdmODE4YWM3ZGNhNGIzMjJlYjk3ZmQ3ZmViZDkKLS0tIC9kZXYv
bnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1zZWNvbmRzLWppdC5qcwpAQCAtMCww
ICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYg
KGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVl
OiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRh
dGUuZ2V0U2Vjb25kcygpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERh
dGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUu
Z2V0U2Vjb25kcygpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3Vs
ZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAg
c2hvdWxkQmUodGVzdChkKSwgZC5nZXRTZWNvbmRzKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRl
c3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUt
Z2V0LXRpbWUtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdGltZS1qaXQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZThlMTY0MWVmODk3Y2E0OGQ2N2FiN2JhYzY5MzM3OTdkYzUyZDVhNwotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXRpbWUtaml0LmpzCkBAIC0wLDAg
KzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAo
YWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6
ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0
ZS5nZXRUaW1lKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgp
OwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRU
aW1lKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVz
dChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRC
ZSh0ZXN0KGQpLCBkLmdldFRpbWUoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlk
KSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdGltZXpv
bmUtb2Zmc2V0LWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXRpbWV6b25lLW9mZnNl
dC1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRmNzc3MjYwN2YyY2I1MjExMjIzMDE2YjMzODFkYzNiMDg4
ZDI4ZgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXRpbWV6b25l
LW9mZnNldC1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFs
LCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3Qo
ZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCk7Cit9Citub0lubGlu
ZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0
ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpOworZm9yICh2
YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVj
dGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5n
ZXRUaW1lem9uZU9mZnNldCgpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwg
dHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtZGF0ZS1q
aXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtZGF0ZS1qaXQuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjBlMTUyZDk2OWQ2NmQzZWU4MWIxNWYzNWMzYTM3ZjcyNTBiYzU2ZAotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1kYXRlLWppdC5qcwpAQCAtMCwwICsx
LDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAn
ICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUu
Z2V0VVRDRGF0ZSgpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUo
KTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0
VVRDRGF0ZSgpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJl
KHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hv
dWxkQmUodGVzdChkKSwgZC5nZXRVVENEYXRlKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3Qo
aW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0
LXV0Yy1kYXktaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLWRheS1qaXQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjYzYWNjYzRmMDVmNmRmOTlhMDczNmExZjAwOGQzYTkzMTQyYTNkYwotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1kYXktaml0LmpzCkBA
IC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAg
ICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQg
dmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1
cm4gZGF0ZS5nZXRVVENEYXkoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5l
dyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBk
YXRlLmdldFVUQ0RheSgpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNo
b3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7Cisg
ICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRVVENEYXkoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4o
dGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0
ZS1nZXQtdXRjLWZ1bGwteWVhci1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMt
ZnVsbC15ZWFyLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iN2FkNjNlMmViYjY3NDk5YmRmMjVlN2M5MTM5
ZjFkY2IyZTY3Y2QxCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQt
dXRjLWZ1bGwteWVhci1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUo
YWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9u
IHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7Cit9Citub0lu
bGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcg
RGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpOworZm9yICh2
YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVj
dGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5n
ZXRVVENGdWxsWWVhcigpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1
ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtaG91cnMtaml0
LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLWhvdXJzLWppdC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44NzVkZDc0MDkxZTM3NWNjMzJmNTg4NzViZTUwNmM5Y2RjNmI4ZWM0Ci0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLWhvdXJzLWppdC5qcwpAQCAtMCwwICsx
LDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAn
ICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUu
Z2V0VVRDSG91cnMoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRl
KCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdl
dFVUQ0hvdXJzKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxk
QmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBz
aG91bGRCZSh0ZXN0KGQpLCBkLmdldFVUQ0hvdXJzKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRl
c3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUt
Z2V0LXV0Yy1taWxsaXNlY29uZHMtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRj
LW1pbGxpc2Vjb25kcy1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM3NDIxZTIzODJhMzljZTY3MWI3NjM2
NDQ1Yzc2ZWM0YTUxY2IxNwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUt
Z2V0LXV0Yy1taWxsaXNlY29uZHMtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitm
dW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRVVENNaWxsaXNlY29uZHMo
KTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52
YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFVUQ01pbGxpc2Vj
b25kcygpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRl
c3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxk
QmUodGVzdChkKSwgZC5nZXRVVENNaWxsaXNlY29uZHMoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4o
dGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0
ZS1nZXQtdXRjLW1pbnV0ZXMtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1p
bnV0ZXMtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5MjYzYzVmZDE3MjNhMjJlYjIwNjI0OWRiZTcwNTQ0
Mzg5NzdkNjEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMt
bWludXRlcy1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFs
LCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3Qo
ZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldFVUQ01pbnV0ZXMoKTsKK30KK25vSW5saW5lKHRl
c3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5h
Tik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTsKK2ZvciAodmFyIGkgPSAw
OyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7Cisg
ICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0VVRDTWlu
dXRlcygpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtbW9udGgtaml0LmpzIGIvSlNU
ZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1vbnRoLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NmJjNTI0
MDdjODY3ODZmODQzNzA5NDQwNWJlOGEyMWNmZjhkMmY5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1vbnRoLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitm
dW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0g
ZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFs
KTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VVRDTW9u
dGgoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIg
aW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFVUQ01vbnRo
KCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChk
YXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0
ZXN0KGQpLCBkLmdldFVUQ01vbnRoKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxp
ZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1z
ZWNvbmRzLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1zZWNvbmRzLWppdC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iNzg3YzMwZDI5ZTc4ZjY3ZGFiNzc3NzNlNTcxMTMwMGIzNDBlMDA3Ci0t
LSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLXNlY29uZHMtaml0
LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAg
ICByZXR1cm4gZGF0ZS5nZXRVVENTZWNvbmRzKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFy
IGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4
cGVjdGVkID0gZGF0ZS5nZXRVVENTZWNvbmRzKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsg
KytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0g
bmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldFVUQ1NlY29uZHMoKSk7Cisg
ICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQteWVhci1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRl
LWdldC15ZWFyLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTE2YjgzNWEwNmRkMzI5YjY3YWQ4OWZiOTA2
N2E4NmMxNjk3NDliCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQt
eWVhci1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBl
eHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0
ZSkgeworICAgIHJldHVybiBkYXRlLmdldFllYXIoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2
YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIg
ZXhwZWN0ZWQgPSBkYXRlLmdldFllYXIoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kp
IHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcg
RGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0WWVhcigpKTsKKyAgICBzaG91bGRC
ZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9kYXRlLXZhbHVlLW9mLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtdmFsdWUtb2Yt
aml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNjMzkzOGI0NjhhN2Q3NGZjN2RiZjdlMmVlYTc3OWU2OGEyYzA3
ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLXZhbHVlLW9mLWppdC5q
cwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7
CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcign
YmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAg
cmV0dXJuIGRhdGUudmFsdWVPZigpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0g
bmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9
IGRhdGUudmFsdWVPZigpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNo
b3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7Cisg
ICAgc2hvdWxkQmUodGVzdChkKSwgZC52YWx1ZU9mKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRl
c3QoaW52YWxpZCkpLCB0cnVlKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382159</attachid>
            <date>2019-10-28 22:28:07 -0700</date>
            <delta_ts>2019-10-29 20:38:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202187-20191028222806.patch</filename>
            <type>text/plain</type>
            <size>125685</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NjNkNGZjY2Q3ZmQwNzc4ZDg3ODJiMmRiNWRkZWQ0NzllODIxZmY0Li45OWRiZjE1OWQ4NGI2ZWQz
ZWRlM2UwN2FhMjA5NzZkMWY2OTc0MGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjQgQEAKKzIwMTktMTAtMjggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBEYXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBpbnRyaW5zaWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE4Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBpbnRyaW5zaWMgdG8gRGF0ZSBvYmplY3QgZ2V0dGVyIGZ1bmN0aW9ucyB0byBtYWtl
IGl0IGlubGluZWQgaW4gREZHIGFuZCBGVEwuCisgICAgICAgIFdlIGFkZCB0d28gREZHIG5vZGVz
LCBEYXRlR2V0SlNOdW1iZXIgYW5kIERhdGVHZXRNYWNoaW5lRG91YmxlLiBEYXRlR2V0TWFjaGlu
ZURvdWJsZSBpcyB1c2VkIHdoZW4gd2Uga25vdworICAgICAgICB0aGF0IHRoZSByZXN1bHQgaXMg
YWx3YXlzIG1hY2hpbmUgZG91YmxlLiBPbiB0aGUgb3RoZXIgaGFuZCwgRGF0ZUdldEpTTnVtYmVy
IGlzIHVzZWQgd2hlbiB0aGUgcmVzdWx0IGlzIEludDMyIG9yIE5hTi4KKworICAgICAgICBSdW4g
U3VuU3BpZGVyIDEwMCB0aW1lcyBhbmQgZ2V0IHRoZSBzb2xpZCBpbXByb3ZlbWVudCBpbiBEYXRl
IHJlbGF0ZWQgYmVuY2htYXJrcy4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVG9UICAgICAgICAgICAgICAgICAgICAgUGF0Y2hlZAorCisgICAgICAgICAgICBk
YXRlLWZvcm1hdC10b2Z0ZSAgICAgICAgNS4zNTExKy0wLjAyNjAgICAgIF4gICAgICA1LjI3NDcr
LTAuMDI3MyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDE0NXggZmFzdGVyCisgICAgICAgICAgICBk
YXRlLWZvcm1hdC14cGFyYiAgICAgICAgNC45MTk2Ky0wLjAyNjUgICAgIF4gICAgICA0LjcwNjcr
LTAuMDIwMCAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDQ1MnggZmFzdGVyCisKKyAgICAgICAgKiBi
eXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgIChKU0M6OmR1bXBTcGVjdWxhdGlv
bik6CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyk6CisgICAgICAgIChK
U0M6OnNwZWN1bGF0aW9uRnJvbUpTVHlwZSk6CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJv
bVN0cmluZyk6CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaDoKKyAgICAgICAg
KiBkZmcvREZHQWJzdHJhY3RIZWFwLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVJbnRyaW5zaWNDYWxsKToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAg
ICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAg
ICogZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZHVtcCk6Cisg
ICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50
ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uaDoKKyAgICAgICAgKiBkZmcv
REZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc0ludHJpbnNpYyk6CisgICAg
ICAgIChKU0M6OkRGRzo6Tm9kZTo6aW50cmluc2ljKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2Rl
OjpoYXNIZWFwUHJlZGljdGlvbik6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAg
ICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25z
Lmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAg
ICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVU
b0V4ZWN1dGVFZGdlOjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVj
dXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVEYXRlT2JqZWN0KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVEYXRlR2V0KToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5jcHA6CisgICAgICAgIChX
VEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdVc2VLaW5kLmg6CisgICAgICAg
IChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAgICAgIChKU0M6OkRGRzo6aXNDZWxsKToK
KyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHA6CisgICAgICAgICog
ZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBm
dGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlRGF0ZUdldCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
Omxvd0RhdGVPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpz
cGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxh
dGVEYXRlT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6Zm9ybWF0RGF0ZVRpbWUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3Rh
bmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5E
YXRlVGltZSBjb25zdCk6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3Jl
Z29yaWFuRGF0ZVRpbWVVVEMgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNl
Lmg6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oOgorICAgICAgICAoSlND
OjpEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMp
OgorICAgICAgICAoSlNDOjpEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlh
bkRhdGVUaW1lKToKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVn
b3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKToKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQyk6CisgICAgICAgIChKU0M6
OkRhdGVJbnN0YW5jZURhdGE6OkRhdGVJbnN0YW5jZURhdGEpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmZvcm1hdExvY2FsZURh
dGUpOgorICAgICAgICAoSlNDOjpmb3JtYXRlRGF0ZUluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dl
dEZ1bGxZZWFyKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyKToK
KyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldE1vbnRoKToKKyAgICAgICAgKEpTQzo6ZGF0
ZVByb3RvRnVuY0dldFVUQ01vbnRoKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldERh
dGUpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZSk6CisgICAgICAgIChK
U0M6OmRhdGVQcm90b0Z1bmNHZXREYXkpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0
VVRDRGF5KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldEhvdXJzKToKKyAgICAgICAg
KEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3Rv
RnVuY0dldE1pbnV0ZXMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRl
cyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRTZWNvbmRzKToKKyAgICAgICAgKEpT
Qzo6ZGF0ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9G
dW5jR2V0TWlsbGlTZWNvbmRzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ01p
bGxpc2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNl
dCk6CisgICAgICAgIChKU0M6OnNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKToKKyAgICAgICAgKEpT
Qzo6c2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3MpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5j
U2V0WWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRZZWFyKToKKyAgICAgICAg
KiBydW50aW1lL0ludHJpbnNpYy5jcHA6CisgICAgICAgIChKU0M6OmludHJpbnNpY05hbWUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSW50cmluc2ljLmg6CisgICAgICAgICogcnVudGltZS9KU0RhdGVN
YXRoLmNwcDoKKyAgICAgICAgKEpTQzo6bXNUb0dyZWdvcmlhbkRhdGVUaW1lKToKKyAgICAgICAg
KiBydW50aW1lL0pTVHlwZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNUeXBlLmg6CisKIDIwMTktMTAtMjggIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgSlNQcm9taXNlRGVmZXJy
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggNTBhYmZmODc2NzFjNzI1NzA3Nzc0MmNkOGM0ODgwM2VlNjYzZGY4My4uMTc0Yzk2
OTUyNzgyNDNlYzY2OWY3OTQ4NWIyNzA2ZGRjMTJlZGUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0xMC0yOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFtKU0NdIERhdGUgZnVuY3Rpb25zIHNob3VsZCBoYXZlIGludHJpbnNpYworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTg3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRGF0ZU1hdGguaDoKKyAg
ICAgICAgKiB3dGYvR3JlZ29yaWFuRGF0ZVRpbWUuY3BwOgorICAgICAgICAoV1RGOjpHcmVnb3Jp
YW5EYXRlVGltZTo6c2V0VG9DdXJyZW50TG9jYWxUaW1lKToKKyAgICAgICAgKiB3dGYvR3JlZ29y
aWFuRGF0ZVRpbWUuaDoKKwogMjAxOS0xMC0yNiAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUHV0IE9mZnNjcmVlbkNhbnZhcyBiZWhpbmQgYSBidWlsZCBmbGFnCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNTkzODQwMzE5MzM2M2MzY2VmZTVmNWY1Y2JhYmNmYTVjNGE2ZjRjNy4uNjI1
YmIyNzQ3NzJjNWYzNDE3YWIzMzdhMjI5MjMxMjcwMWRjN2M1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDE5LTEwLTI4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0pTQ10gRGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGhhdmUgaW50cmluc2ljCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxODcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9h
cmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNSFRNTEFy
Y2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRhKToKKwogMjAxOS0xMC0yOCAgRGFuaWVsIEJhdGVzICA8
ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5ICNpbmNsdWRl
IDxsaW1pdHMuaD4gaGVhZGVyIGZyb20gVGltZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAppbmRleCA4NDQzOGUzOTM1ZTI3MjAy
MWYwOWQyNTFjNTlmNzg5YTkyZGY5ODIxLi40MTllZWJkOGRkOTU4MTY3MGQyZjAwYWJlMDNhMGVl
YzllZTZkNTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3Bl
Y3VsYXRlZFR5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVj
dWxhdGVkVHlwZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgogCisjaW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAj
aW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5oIgogI2luY2x1
ZGUgIkpTQmlnSW50LmgiCkBAIC0xNzQsNiArMTc1LDExIEBAIHZvaWQgZHVtcFNwZWN1bGF0aW9u
KFByaW50U3RyZWFtJiBvdXRTdHJlYW0sIFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CiAKKyAgICAgICAgICAgIGlm
ICh2YWx1ZSAmIFNwZWNEYXRlT2JqZWN0KQorICAgICAgICAgICAgICAgIHN0ck91dC5wcmludCgi
RGF0ZU9iamVjdCIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlzVG9wID0g
ZmFsc2U7CisKICAgICAgICAgICAgIGlmICh2YWx1ZSAmIFNwZWNQcm9taXNlT2JqZWN0KQogICAg
ICAgICAgICAgICAgIHN0ck91dC5wcmludCgiUHJvbWlzZU9iamVjdCIpOwogICAgICAgICAgICAg
ZWxzZQpAQCAtNDQ1LDYgKzQ1MSw5IEBAIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbUNs
YXNzSW5mbyhjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykKICAgICBpZiAoY2xhc3NJbmZvID09
IFJlZ0V4cE9iamVjdDo6aW5mbygpKQogICAgICAgICByZXR1cm4gU3BlY1JlZ0V4cE9iamVjdDsK
IAorICAgIGlmIChjbGFzc0luZm8gPT0gRGF0ZUluc3RhbmNlOjppbmZvKCkpCisgICAgICAgIHJl
dHVybiBTcGVjRGF0ZU9iamVjdDsKKwogICAgIGlmIChjbGFzc0luZm8gPT0gSlNNYXA6OmluZm8o
KSkKICAgICAgICAgcmV0dXJuIFNwZWNNYXBPYmplY3Q7CiAKQEAgLTU5NCw2ICs2MDMsOCBAQCBP
cHRpb25hbDxTcGVjdWxhdGVkVHlwZT4gc3BlY3VsYXRpb25Gcm9tSlNUeXBlKEpTVHlwZSB0eXBl
KQogICAgICAgICByZXR1cm4gU3BlY0Rlcml2ZWRBcnJheTsKICAgICBjYXNlIFJlZ0V4cE9iamVj
dFR5cGU6CiAgICAgICAgIHJldHVybiBTcGVjUmVnRXhwT2JqZWN0OworICAgIGNhc2UgSlNEYXRl
VHlwZToKKyAgICAgICAgcmV0dXJuIFNwZWNEYXRlT2JqZWN0OwogICAgIGNhc2UgUHJveHlPYmpl
Y3RUeXBlOgogICAgICAgICByZXR1cm4gU3BlY1Byb3h5T2JqZWN0OwogICAgIGNhc2UgSlNQcm9t
aXNlVHlwZToKQEAgLTgxNCw2ICs4MjUsOCBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZy
b21TdHJpbmcoY29uc3QgY2hhciogc3BlY3VsYXRpb24pCiAgICAgICAgIHJldHVybiBTcGVjU3Ry
aW5nT2JqZWN0OwogICAgIGlmICghc3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNSZWdFeHBPYmpl
Y3QiLCBzdHJsZW4oIlNwZWNSZWdFeHBPYmplY3QiKSkpCiAgICAgICAgIHJldHVybiBTcGVjUmVn
RXhwT2JqZWN0OworICAgIGlmICghc3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNEYXRlT2JqZWN0
Iiwgc3RybGVuKCJTcGVjRGF0ZU9iamVjdCIpKSkKKyAgICAgICAgcmV0dXJuIFNwZWNEYXRlT2Jq
ZWN0OwogICAgIGlmICghc3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNQcm9taXNlT2JqZWN0Iiwg
c3RybGVuKCJTcGVjUHJvbWlzZU9iamVjdCIpKSkKICAgICAgICAgcmV0dXJuIFNwZWNQcm9taXNl
T2JqZWN0OwogICAgIGlmICghc3RybmNtcChzcGVjdWxhdGlvbiwgIlNwZWNNYXBPYmplY3QiLCBz
dHJsZW4oIlNwZWNNYXBPYmplY3QiKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9TcGVjdWxhdGVkVHlwZS5oCmluZGV4IGIxMTUzYjQ3ZDJmZDNhNTllZTNmY2ZmYjBmM2Ji
ZjM5YjAxNTE5NWIuLmExMTIzOGMxOThhMzcyOGFjYTAyZWU5NTMzMTdkMDkyZjEwYjM3NzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCkBA
IC01OCwzMiArNTgsMzMgQEAgc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRGly
ZWN0QXJndW1lbnRzICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PAogc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjU2NvcGVkQXJndW1lbnRzICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCAxNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2NvcGVkQXJndW1lbnRzIG9iamVjdC4K
IHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ09iamVjdCAgICAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMTU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN0cmluZ09i
amVjdC4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1JlZ0V4cE9iamVjdCAg
ICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFJl
Z0V4cE9iamVjdCAoYW5kIG5vdCBhbnkgc3ViY2xhc3Mgb2YgUmVnRXhwT2JqZWN0KS4KLXN0YXRp
YyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1Byb21pc2VPYmplY3QgICAgICAgICAgICAg
ICAgICAgICA9IDF1bGwgPDwgMTc7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb21pc2Ugb2JqZWN0
IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5
cGUgU3BlY01hcE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTg7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIE1hcCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgot
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU2V0T2JqZWN0ICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAxOTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2V0IG9iamVj
dCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRU
eXBlIFNwZWNXZWFrTWFwT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIwOyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBXZWFrTWFwIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNz
ZXMuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNXZWFrU2V0T2JqZWN0ICAg
ICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBXZWFr
U2V0IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDIyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm94eSBvYmplY3Qgb3Igb25lIG9mIGl0cyBz
dWJjbGFzc2VzLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRGVyaXZlZEFy
cmF5ICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5
IGEgRGVyaXZlZEFycmF5IG9iamVjdC4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY09iamVjdE90aGVyICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0
J3MgZGVmaW5pdGVseSBhbiBvYmplY3QgYnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBv
ciBKU0Z1bmN0aW9uLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5n
SWRlbnQgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyNTsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFuIGlkZW50aWZpZXIuCi1zdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFu
IGlkZW50aWZpZXIuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEYXRlT2Jq
ZWN0ICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE3OyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBEYXRlIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm9taXNlT2JqZWN0ICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm9taXNlIG9iamVjdCBvciBvbmUg
b2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNN
YXBPYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE5OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDF1bGwgPDwgMjA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVj
V2Vha01hcE9iamVjdCAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMTsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgV2Vha01hcCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3Rh
dGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha1NldE9iamVjdCAgICAgICAgICAg
ICAgICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha1NldCBvYmpl
Y3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMzsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgUHJveHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nl
cy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Rlcml2ZWRBcnJheSAgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERlcml2
ZWRBcnJheSBvYmplY3QuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmpl
Y3RPdGhlciAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJdCdzIGRlZmlu
aXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5j
dGlvbi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAg
ICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpT
U3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxh
dGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAy
NzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIG5vdCBhbiBpZGVudGlm
aWVyLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gU3BlY1N0cmluZ0lkZW50IHwgU3BlY1N0cmluZ1ZhcjsgLy8g
SXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRU
eXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI3OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRU
eXBlIFNwZWNDZWxsT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI4OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwgYnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0
IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3RyaW5nLCBCaWdJbnQsIG9yIFN5bWJvbC4KLXN0YXRp
YyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDF1bGwgPDwgMjk7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZh
bHVlIDAgb3IgMS4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJ
bnQzMiAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBvciAxLgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3ltYm9sLgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAgICAgICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCAyOTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBzdWJjbGFz
cyBvZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZywgQmlnSW50LCBvciBT
eW1ib2wuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4g
SW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNOb25Cb29sSW50MzIgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMxOyAvLyBJ
dCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KIHN0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyT25seSAgICAgICAgICAgICAg
ICAgICAgICAgICA9IFNwZWNCb29sSW50MzIgfCBTcGVjTm9uQm9vbEludDMyOyAvLyBJdCdzIGRl
ZmluaXRlbHkgYW4gSW50MzIuCiAKLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0ludDMyQXNJbnQ1MiAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzE7IC8vIEl0J3Mg
YW4gSW50NTIgYW5kIGl0IGNhbiBmaXQgaW4gYW4gaW50MzIuCi1zdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnQzMkFzSW50NTIgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDMyOyAvLyBJdCdzIGFuIEludDUyIGFuZCBpdCBjYW4ndCBmaXQgaW4gYW4gaW50MzIuCitz
dGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMkFzSW50NTIgICAgICAgICAg
ICAgICAgICAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGFuIEludDUyIGFuZCBpdCBjYW4gZml0
IGluIGFuIGludDMyLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50
MzJBc0ludDUyICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzMzsgLy8gSXQncyBhbiBJbnQ1
MiBhbmQgaXQgY2FuJ3QgZml0IGluIGFuIGludDMyLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxh
dGVkVHlwZSBTcGVjSW50NTJBbnkgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDMy
QXNJbnQ1MiB8IFNwZWNOb25JbnQzMkFzSW50NTI7IC8vIEl0J3MgYW55IGtpbmQgb2YgSW50NTIu
CiAKLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzM7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1
MiBhbmQgaXQncyBpbnNpZGUgYSBkb3VibGUuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRU
eXBlIFNwZWNOb25JbnRBc0RvdWJsZSAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM0OyAv
LyBJdCdzIGRlZmluaXRlbHkgbm90IGFuIEludDUyIGJ1dCBpdCdzIGEgcmVhbCBudW1iZXIgYW5k
IGl0J3MgYSBkb3VibGUuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNBbnlJ
bnRBc0RvdWJsZSAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmlu
aXRlbHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50QXNEb3VibGUgICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCAzNTsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQ1MiBidXQgaXQncyBhIHJl
YWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY05vbkludEFz
RG91YmxlIHwgU3BlY0FueUludEFzRG91YmxlOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBub24tTmFO
IGRvdWJsZS4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVB1cmVO
YU4gICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzU7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IE5hTiB0aGF0IGlzIHNhZmUgdG8gdGFnIChpLmUuIHB1cmUpLgotc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgICAgICAgICAgICAgICAgID0gMXVs
bCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAo
aS5lLiBpbXB1cmUpLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91Ymxl
UHVyZU5hTiAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgTmFOIHRoYXQgaXMgc2FmZSB0byB0YWcgKGkuZS4gcHVyZSkuCitzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVJbXB1cmVOYU4gICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDM3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyB1bnNhZmUgdG8g
dGFnIChpLmUuIGltcHVyZSkuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNE
b3VibGVOYU4gICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRG91YmxlUHVyZU5hTiB8IFNw
ZWNEb3VibGVJbXB1cmVOYU47IC8vIEl0J3MgZGVmaW5pdGVseSBzb21lIGtpbmQgb2YgTmFOLgog
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVEb3VibGUgICAgICAg
ICAgICAgICAgICAgID0gU3BlY0RvdWJsZVJlYWwgfCBTcGVjRG91YmxlUHVyZU5hTjsgLy8gSXQn
cyBlaXRoZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZSwgYnV0IGl0J3MgZGVmaW5pdGVseSBu
b3QgaW1wdXJlIE5hTi4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxE
b3VibGUgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNEb3VibGVSZWFsIHwgU3BlY0RvdWJs
ZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZS4KQEAgLTkzLDE0
ICs5NCwxNCBAQCBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZU51
bWJlciAgICAgICAgICAgICAgICAgICAgPSBTcGVjSW50Mwogc3RhdGljIGNvbnN0ZXhwciBTcGVj
dWxhdGVkVHlwZSBTcGVjSW50QW55Rm9ybWF0ICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0lu
dDUyQW55IHwgU3BlY0ludDMyT25seSB8IFNwZWNBbnlJbnRBc0RvdWJsZTsKIAogc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbE51bWJlciAgICAgICAgICAgICAgICAgICAg
ICAgID0gU3BlY0ludEFueUZvcm1hdCB8IFNwZWNGdWxsRG91YmxlOyAvLyBJdCdzIGVpdGhlciBh
biBJbnQzMiwgSW50NTIsIG9yIGEgRG91YmxlLCBhbmQgdGhlIERvdWJsZSBjYW4gYmUgaW1wdXJl
IE5hTi4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzc7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJv
b2xlYW4uCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM4OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0
aGVyIE51bGwgb3IgVW5kZWZpbmVkLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjQm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzODsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY090aGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzk7IC8vIEl0
J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBvciBVbmRlZmluZWQuCiBzdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBT
cGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBhIGJvb2xl
YW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY0VtcHR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzk7IC8vIEl0
J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCi1zdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNCaWdJbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDQwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCaWdJbnQuCi1zdGF0aWMgY29uc3RleHByIFNw
ZWN1bGF0ZWRUeXBlIFNwZWNEYXRhVmlld09iamVjdCAgICAgICAgICAgICAgICAgICAgPSAxdWxs
IDw8IDQxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0RhdGFWaWV3Lgorc3RhdGljIGNvbnN0ZXhw
ciBTcGVjdWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g
MXVsbCA8PCA0MDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KK3N0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0JpZ0ludCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IDF1bGwgPDwgNDE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJpZ0ludC4KK3N0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0RhdGFWaWV3T2JqZWN0ICAgICAgICAg
ICAgICAgICAgICA9IDF1bGwgPDwgNDI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTRGF0YVZpZXcu
CiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAg
ICAgICAgICAgICAgICAgPSBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51
bWJlciB8IFNwZWNNaXNjIHwgU3BlY0JpZ0ludDsgLy8gSXQncyBhbnkgbm9uLU9iamVjdCBKU1Zh
bHVlLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1
bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNT
Y29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNw
ZWNQcm9taXNlT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVjV2Vh
a01hcE9iamVjdCB8IFNwZWNXZWFrU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rl
cml2ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlciB8IFNwZWNEYXRhVmlld09iamVjdDsgLy8gQml0
bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4K
K3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlv
biB8IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBTcGVjU2NvcGVk
QXJndW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNwZWNSZWdFeHBPYmplY3QgfCBTcGVjRGF0
ZU9iamVjdCB8IFNwZWNQcm9taXNlT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmpl
Y3QgfCBTcGVjV2Vha01hcE9iamVjdCB8IFNwZWNXZWFrU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2Jq
ZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlciB8IFNwZWNEYXRhVmlld09i
amVjdDsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3Qg
cHJlZGljdGlvbi4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNPYmplY3QgfCBTcGVjU3RyaW5nIHwgU3Bl
Y1N5bWJvbCB8IFNwZWNDZWxsT3RoZXIgfCBTcGVjQmlnSW50OyAvLyBJdCdzIGRlZmluaXRlbHkg
YSBKU0NlbGwuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJlciB8
IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVj
SW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFOLgogc3RhdGljIGNvbnN0ZXhwciBTcGVj
dWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVUb3AgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0hl
YXBUb3AgfCBTcGVjRW1wdHk7IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQg
Zm9yIFNwZWNJbnQ1Mk9ubHkgYW5kIFNwZWNEb3VibGVJbXB1cmVOYU4uIENvcnJlc3BvbmRzIHRv
IHdoYXQgY291bGQgYmUgZm91bmQgaW4gYSBieXRlY29kZSBsb2NhbC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RIZWFwLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCmluZGV4IGEzMDkyOWQ4YjBkNjhiMTY5OGYw
ZTQwMmY5NTY0ZDY3ZjUyMDZmYWYuLmJmOTkzNzc5NzA0NzAyZDhkNWIyMGI2YzJmNmY3Mzk1YWZl
NmI4NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RI
ZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaApA
QCAtNzEsNiArNzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFj
cm8oSGVhcE9iamVjdENvdW50KSAvKiBVc2VkIHRvIHJlZmxlY3QgdGhlIGZhY3QgdGhhdCBzb21l
IGFsbG9jYXRpb25zIHJldmVhbCBvYmplY3QgaWRlbnRpdHkgKi9cCiAgICAgbWFjcm8oUmVnRXhw
U3RhdGUpIFwKICAgICBtYWNybyhNYXRoRG90UmFuZG9tU3RhdGUpIFwKKyAgICBtYWNybyhKU0Rh
dGVGaWVsZHMpIFwKICAgICBtYWNybyhKU01hcEZpZWxkcykgXAogICAgIG1hY3JvKEpTU2V0Rmll
bGRzKSBcCiAgICAgbWFjcm8oSlNXZWFrTWFwRmllbGRzKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5k
ZXggNTM3MDMzNzk2ZjZiOWJhMjE0Y2RmZTc5ZDFiNmJmNDUxODEyODBhYi4uOGI3NTJkZjE0N2Ey
MDlkMTE3NjAxYmYwOWIzYWJmODZjYjBmNDQwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtNDA2
OCw2ICs0MDY4LDE2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlw
ZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIAorICAgIGNhc2UgRGF0ZUdldEpTTnVtYmVyOiB7CisgICAgICAgIHNldE5vbkNlbGxU
eXBlRm9yTm9kZShub2RlLCBTcGVjQnl0ZWNvZGVOdW1iZXIpOworICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICBjYXNlIERhdGVHZXRNYWNoaW5lRG91YmxlOiB7CisgICAgICAgIHNldE5vbkNl
bGxUeXBlRm9yTm9kZShub2RlLCBTcGVjRnVsbERvdWJsZSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKwogICAgIGNhc2UgRGF0YVZpZXdTZXQ6IHsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCAy
MjM0NDVjMmQ5NDU4MDdiZmNiODE5YWVmMjUxN2Y4NTBlMWUzNDRmLi5lNDUwYjJkOTA0OTQ4MzBk
Y2FlNzkwNzA5MWFjYWQ2NDU3N2FlYjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMzE5NSw2ICszMTk1LDQxIEBAIGJvb2wgQnl0
ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwoTm9kZSogY2FsbGVlLCBWaXJ0dWFsUmVn
aXN0ZXIgcmVzdWx0LCBJCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCisg
ICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWM6IHsKKyAgICAgICAgICAg
IGlmICghaXM2NEJpdCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
ICAgIGluc2VydENoZWNrcygpOworICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldCh2aXJ0dWFs
UmVnaXN0ZXJGb3JBcmd1bWVudCgwLCByZWdpc3Rlck9mZnNldCkpOworICAgICAgICAgICAgc2V0
UmVzdWx0KGFkZFRvR3JhcGgoRGF0ZUdldE1hY2hpbmVEb3VibGUsIE9wSW5mbyhpbnRyaW5zaWMp
LCBPcEluZm8oKSwgYmFzZSkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K
KworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRGdWxsWWVhckludHJpbnNpYzoKKyAgICAg
ICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRnVsbFllYXJJbnRyaW5zaWM6CisgICAgICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90
b3R5cGVHZXRVVENNb250aEludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0
RGF0ZUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJp
bnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF5SW50cmluc2ljOgorICAgICAg
ICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENEYXlJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0
ZVByb3RvdHlwZUdldEhvdXJzSW50cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVH
ZXRVVENIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWludXRl
c0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJp
bnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0ludHJpbnNpYzoKKyAg
ICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAg
Y2FzZSBEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljOgorICAgICAgICBjYXNl
IERhdGVQcm90b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJbnRyaW5zaWM6CisgICAgICAgIGNhc2Ug
RGF0ZVByb3RvdHlwZUdldFRpbWV6b25lT2Zmc2V0SW50cmluc2ljOgorICAgICAgICBjYXNlIERh
dGVQcm90b3R5cGVHZXRZZWFySW50cmluc2ljOiB7CisgICAgICAgICAgICBpZiAoIWlzNjRCaXQo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpbnNlcnRDaGVj
a3MoKTsKKyAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJn
dW1lbnQoMCwgcmVnaXN0ZXJPZmZzZXQpKTsKKyAgICAgICAgICAgIHNldFJlc3VsdChhZGRUb0dy
YXBoKERhdGVHZXRKU051bWJlciwgT3BJbmZvKGludHJpbnNpYyksIE9wSW5mbyhwcmVkaWN0aW9u
KSwgYmFzZSkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAg
ICBjYXNlIERhdGFWaWV3R2V0SW50ODoKICAgICAgICAgY2FzZSBEYXRhVmlld0dldFVpbnQ4Ogog
ICAgICAgICBjYXNlIERhdGFWaWV3R2V0SW50MTY6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2xvYmJlcml6ZS5oCmluZGV4IGI4OWMwM2MwZmQwY2VkMDA3OTRkYWJkZjMzZDk1N2FmZjkz
Yjg4MDMuLjVjMzcwYmY2MzkyYWI3MmQ0MTNjMjJiYjI1NGEyZDcwZWUyZDA3ZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xODE0LDYgKzE4MTQsMTMg
QEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1
bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBu
b2RlLT52YWxpZFJhZGl4Q29uc3RhbnQoKSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNl
IERhdGVHZXRNYWNoaW5lRG91YmxlOgorICAgIGNhc2UgRGF0ZUdldEpTTnVtYmVyOiB7CisgICAg
ICAgIHJlYWQoSlNEYXRlRmllbGRzKTsKKyAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihEYXRlRmll
bGRMb2MsIEFic3RyYWN0SGVhcChKU0RhdGVGaWVsZHMsIHN0YXRpY19jYXN0PHVpbnQ2NF90Pihu
b2RlLT5pbnRyaW5zaWMoKSkpLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKICAgICBj
YXNlIERhdGFWaWV3R2V0SW50OiB7CiAgICAgICAgIHJlYWQoTWlzY0ZpZWxkcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNWQyYjA1ZDNmZDE5YjM4YzFjN2I4
NTI2YjJjNGM1NzkzYTNkMTRiMC4uYzk0YjE4MjkwNDQwNTRjMmQ3MDY4ZTgzYzg5NGQxYmIyMzZk
MmQyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMjQyLDYg
KzI0Miw4IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNl
IEZpbHRlckdldEJ5SWRTdGF0dXM6CiAgICAgY2FzZSBGaWx0ZXJQdXRCeUlkU3RhdHVzOgogICAg
IGNhc2UgRmlsdGVySW5CeUlkU3RhdHVzOgorICAgIGNhc2UgRGF0ZUdldEpTTnVtYmVyOgorICAg
IGNhc2UgRGF0ZUdldE1hY2hpbmVEb3VibGU6CiAgICAgY2FzZSBEYXRhVmlld0dldEludDoKICAg
ICBjYXNlIERhdGFWaWV3R2V0RmxvYXQ6CiAgICAgY2FzZSBEYXRhVmlld1NldDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGUxZTE2NzgyNmYzODMw
NDI4MWQwYTNlY2Y3ODk1Y2ZkZGQyYTRmNDcuLmQxODE2MzkyNzcxYTg0MzU4ZjExN2M0ODZlNDFh
NDU2MTc4YzQ2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcApAQCAtMjMyMCw2ICsyMzIwLDExIEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhh
c2UgewogICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAg
ICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIERhdGVHZXRKU051bWJlcjoKKyAgICAgICAg
Y2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZToKKyAgICAgICAgICAgIGZpeEVkZ2U8RGF0ZU9iamVj
dFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2Fz
ZSBEYXRhVmlld0dldEludDoKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0OiB7CiAgICAg
ICAgICAgICBmaXhFZGdlPERhdGFWaWV3T2JqZWN0VXNlPihub2RlLT5jaGlsZDEoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCmluZGV4IGFkYmY1MDI1Y2YzZDQ0MWJlMThi
NzJiMDlkZGY4OGY4NDVkYjkxMWQuLmNhOWZjMzRlMWQzOWU1NzQ3NGExYmE0MzhhMzhkNjA3YjZi
MmE0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguY3BwCkBAIC0zNjUsNiAr
MzY1LDggQEAgdm9pZCBHcmFwaDo6ZHVtcChQcmludFN0cmVhbSYgb3V0LCBjb25zdCBjaGFyKiBw
cmVmaXhTdHIsIE5vZGUqIG5vZGUsIER1bXBDb250ZXgKICAgICB9CiAgICAgaWYgKG5vZGUtPmhh
c0lnbm9yZUxhc3RJbmRleElzV3JpdGFibGUoKSkKICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAi
aWdub3JlTGFzdEluZGV4SXNXcml0YWJsZSA9ICIsIG5vZGUtPmlnbm9yZUxhc3RJbmRleElzV3Jp
dGFibGUoKSk7CisgICAgaWYgKG5vZGUtPmhhc0ludHJpbnNpYygpKQorICAgICAgICBvdXQucHJp
bnQoY29tbWEsICJpbnRyaW5zaWMgPSAiLCBub2RlLT5pbnRyaW5zaWMoKSk7CiAgICAgaWYgKG5v
ZGUtPmlzQ29uc3RhbnQoKSkKICAgICAgICAgb3V0LnByaW50KGNvbW1hLCBwb2ludGVyRHVtcElu
Q29udGV4dChub2RlLT5jb25zdGFudCgpLCBjb250ZXh0KSk7CiAgICAgaWYgKG5vZGUtPmhhc0Nh
bGxMaW5rU3RhdHVzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0hlYXBMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2Nh
dGlvbi5jcHAKaW5kZXggZTRiOTdiMzBjMmEwYTQwYzBmZjIwMjE2YWY0OTJkOWVkNjFhOGI0OC4u
YzJiOTZiNWZkZmQ1OGQ2ODQ3ZDljNDIxZTlhNThiNzk3OWY3ZjIxMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcApAQCAtMTY4LDYgKzE2OCwxMCBA
QCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgTG9jYXRpb25LaW5kIGtpbmQp
CiAgICAgICAgIG91dC5wcmludCgiUmVnRXhwT2JqZWN0TGFzdEluZGV4TG9jIik7CiAgICAgICAg
IHJldHVybjsKIAorICAgIGNhc2UgRGF0ZUZpZWxkTG9jOgorICAgICAgICBvdXQucHJpbnQoIkRh
dGVGaWVsZExvYyIpOworICAgICAgICByZXR1cm47CisKICAgICBjYXNlIE1hcEJ1Y2tldExvYzoK
ICAgICAgICAgb3V0LnByaW50KCJNYXBCdWNrZXRMb2MiKTsKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKaW5kZXggMDkxMDA2NDEy
NjlmMGMwNjE3NDQzZjNiYzBmNDdjYjkyZjU5MDU3NC4uYThlNzM4MTgwM2M3OTQ4NDYzY2U5ODlj
YzExYTY5M2ZlODQxZmFmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdIZWFwTG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBM
b2NhdGlvbi5oCkBAIC02NCw2ICs2NCw3IEBAIGVudW0gTG9jYXRpb25LaW5kIHsKICAgICBQcm90
b3R5cGVMb2MsCiAgICAgU3RhY2tMb2MsCiAgICAgU3RhY2tQYXlsb2FkTG9jLAorICAgIERhdGVG
aWVsZExvYywKICAgICBNYXBCdWNrZXRMb2MsCiAgICAgTWFwQnVja2V0SGVhZExvYywKICAgICBN
YXBCdWNrZXRWYWx1ZUxvYywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggMTFk
OGI0MGZhNjMyNmZkOTVjMmRkNjJkZjdmNzZhZDdiNjViMmIzZi4uMjUyZTA2NTZhZTc0ZWU2ZGQy
YzM3MWI3MjUyY2M3YzkxZmY2MGQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgK
QEAgLTE1NTQsOSArMTU1NCwyMSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIHJldHVybiBtX29w
SW5mby5hczxFbnRyeVN3aXRjaERhdGEqPigpOwogICAgIH0KIAorICAgIGJvb2wgaGFzSW50cmlu
c2ljKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAob3AoKSkgeworICAgICAgICBjYXNlIENQVUlu
dHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZToKKyAgICAgICAgY2Fz
ZSBEYXRlR2V0SlNOdW1iZXI6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKwogICAg
IEludHJpbnNpYyBpbnRyaW5zaWMoKQogICAgIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQob3Ao
KSA9PSBDUFVJbnRyaW5zaWMpOworICAgICAgICBBU1NFUlQoaGFzSW50cmluc2ljKCkpOwogICAg
ICAgICByZXR1cm4gbV9vcEluZm8uYXM8SW50cmluc2ljPigpOwogICAgIH0KICAgICAKQEAgLTE3
NTMsNiArMTc2NSw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgY2FzZSBUb1RoaXM6CiAgICAg
ICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoK
KyAgICAgICAgY2FzZSBEYXRlR2V0SlNOdW1iZXI6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCA4Y2EzYjc5MjlmNzYxYTAxNjBjNmUzODRl
YTM4Mjc1YzM0NmZkZWExLi45MWJjNzEzZTUwMjE3MzBiOGRiNzBhY2NlYzdhMGNmNDliMmJjNDg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC01MTYsNiArNTE2
LDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKERhdGFWaWV3
R2V0SW50LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEpTKSAvKiBUaGUgZ2V0cyBhcmUg
bXVzdCBnZW5lcmF0ZSBmb3Igbm93IGJlY2F1c2UgdGhleSBkbyBib3VuZHMgY2hlY2tzICovIFwK
ICAgICBtYWNybyhEYXRhVmlld0dldEZsb2F0LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3Vs
dERvdWJsZSkgXAogICAgIG1hY3JvKERhdGFWaWV3U2V0LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9k
ZU11c3RHZW5lcmF0ZSB8IE5vZGVIYXNWYXJBcmdzKSBcCisgICAgLyogRGF0ZSBhY2Nlc3MgKi8g
XAorICAgIG1hY3JvKERhdGVHZXRKU051bWJlciwgTm9kZVJlc3VsdEpTKSBcCisgICAgbWFjcm8o
RGF0ZUdldE1hY2hpbmVEb3VibGUsIE5vZGVSZXN1bHREb3VibGUpIFwKIAogCiAvLyBUaGlzIGVu
dW0gZ2VuZXJhdGVzIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGlkIGZvciBhbGwgTm9kZSB0
eXBlcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4
IDcwZWZkNmJlOTYwOTNhNGY1ZWRhODZlYzlmNzRmMjFhYzdhODZjYzYuLjRkYjQ2MjcyYzgwNzk2
ZTBjY2Q5MWNmODMxMjIyMDIwZjQyYTVhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRGR1RvRlRM
RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiREZHVG9GVExGb3JPU1JF
bnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0
LmgiCisjaW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRGVmaW5lUHJvcGVydHlB
dHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiRXZh
bENvZGVCbG9jay5oIgpAQCAtMzM5MSw2ICszMzkyLDE5OCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkdldFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNP
YmplY3QtPmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSkpOwogfQogCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhcihWTSogdm1Qb2ludGVy
LCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3Bl
cmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisg
ICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3Jl
Z29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpKSk7Cit9CisKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0Z1bGxZZWFyKFZNKiB2bVBv
aW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOwor
ICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBK
SVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7
CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRl
LT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT55ZWFyKCkpKTsKK30KKwor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TW9udGgoVk0qIHZt
UG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7
CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAg
IEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1l
KTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRh
dGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKK30KKwor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDTW9udGgoVk0q
IHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50
ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwor
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9
IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVU
aW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsK
K30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0RGF0ZShW
TSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9p
bnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1l
ID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRp
bWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGhEYXkoKSkp
OworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENE
YXRlKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAq
dm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1F
KHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0s
IGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0
ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3Jp
YW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250
aERheSgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0
ZUdldERheShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZt
ID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlh
bkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29y
aWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vl
a0RheSgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0
ZUdldFVUQ0RheShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdv
cmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOworICAgIGlmICgh
Z3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4o
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGlt
ZS0+d2Vla0RheSgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uRGF0ZUdldEhvdXJzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAg
ICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSog
Z3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CisgICAgaWYg
KCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05h
TigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVU
aW1lLT5ob3VyKCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25EYXRlR2V0VVRDSG91cnMoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQorewor
ICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKKyAg
ICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFu
RGF0ZVRpbWUtPmhvdXIoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkRhdGVHZXRNaW51dGVzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkK
K3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0g
REVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7Cisg
ICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlh
bkRhdGVUaW1lLT5taW51dGUoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkRhdGVHZXRVVENNaW51dGVzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSog
ZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3Jp
YW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVU
Qyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KGdyZWdvcmlhbkRhdGVUaW1lLT5taW51dGUoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRzKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0
YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSog
Y2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9s
b2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRl
VGltZSh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVt
YmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5zZWNvbmQoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENTZWNvbmRzKFZNKiB2bVBvaW50ZXIsIERh
dGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRp
b25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3Jp
YW5EYXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5zZWNvbmQoKSkpOworfQorCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRUaW1lem9uZU9mZnNldChWTSog
dm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRl
cjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Cisg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0g
ZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUp
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcigtZ3JlZ29yaWFuRGF0ZVRpbWUtPnV0Y09mZnNldEluTWlu
dXRlKCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRl
R2V0WWVhcihWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZt
ID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9G
UkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlh
bkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29y
aWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVh
cigpIC0gMTkwMCkpOworfQorCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dERkco
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWVUb1Rocm93
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5kZXggMjU2NGQ5ZmM4ZGY5ODc2NzE1OGZkMjQxNjY3
YjNhYjZlYmI2MGI2NS4uMjc0ZjhhNTNlYmJlYzQ5ODIxZmMwYTBmNDRiMGZjZDJiYWQxZmQ2NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAgLTMxLDcgKzMx
LDExIEBACiAjaW5jbHVkZSAiSklUT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlU
eXBlLmgiCiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKK25hbWVzcGFjZSBKU0Mg
eworCitjbGFzcyBEYXRlSW5zdGFuY2U7CisKK25hbWVzcGFjZSBERkcgewogCiBzdHJ1Y3QgT1NS
RXhpdEJhc2U7CiAKQEAgLTI5NCw2ICsyOTgsMjMgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbk5ld09iamVjdFdpdGhCdXR0ZXJmbHlXaXRoSW5kZXhpbmdIZWFkZXJBbmRWZWN0b3IK
IAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtEaXJlY3RDYWxsKENhbGxMaW5rSW5m
byosIEpTRnVuY3Rpb24qKSBXVEZfSU5URVJOQUw7CiAKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lO
VEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRD
RnVsbFllYXIoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRNb250aChWTSosIERhdGVJbnN0YW5jZSop
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0
ZUdldFVUQ01vbnRoKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0RGF0ZShWTSosIERhdGVJbnN0YW5j
ZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGF0ZUdldFVUQ0RhdGUoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXREYXkoVk0qLCBEYXRlSW5zdGFu
Y2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkRhdGVHZXRVVENEYXkoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRIb3VycyhWTSosIERhdGVJbnN0
YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uRGF0ZUdldFVUQ0hvdXJzKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TWludXRlcyhWTSosIERh
dGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uRGF0ZUdldFVUQ01pbnV0ZXMoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJO
QUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRTZWNvbmRz
KFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25kcyhWTSosIERhdGVJbnN0YW5jZSopIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdl
dFRpbWV6b25lT2Zmc2V0KFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0WWVhcihWTSosIERhdGVJbnN0
YW5jZSopIFdURl9JTlRFUk5BTDsKKwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Nl
c3NUeXBlUHJvZmlsZXJMb2dERkcoVk0qKSBXVEZfSU5URVJOQUw7CiAKIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25UcmlnZ2VyUmVvcHRpbWl6YXRpb25Ob3coQ29kZUJsb2NrKiBiYXNlbGlu
ZUNvZGVCbG9jaywgQ29kZUJsb2NrKiBvcHRpaW16ZWRDb2RlQmxvY2ssIE9TUkV4aXRCYXNlKikg
V1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBlNzJhYTVkZDI1N2YzMjQ2
ZTFiZGI2Y2M2Yzg1OTU5ZjI4OWU5NTRjLi4xNTA2NTRhMDY2N2FkZmIyODYyMTE3MTQ5OWZmY2Iy
ZjBiYzM1NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtODQ1LDExICs4NDUsMTcgQEAg
Y2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAg
ICBjYXNlIEdldFByb3RvdHlwZU9mOgogICAgICAgICBjYXNlIEV4dHJhY3RWYWx1ZUZyb21XZWFr
TWFwR2V0OiAKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDoKLSAgICAgICAgY2FzZSBEYXRh
Vmlld0dldEZsb2F0OiB7CisgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKKyAgICAgICAg
Y2FzZSBEYXRlR2V0SlNOdW1iZXI6IHsKICAgICAgICAgICAgIHNldFByZWRpY3Rpb24obV9jdXJy
ZW50Tm9kZS0+Z2V0SGVhcFByZWRpY3Rpb24oKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogCisgICAgICAgIGNhc2UgRGF0ZUdldE1hY2hpbmVEb3VibGU6IHsKKyAgICAgICAgICAg
IHNldFByZWRpY3Rpb24oU3BlY0Z1bGxOdW1iZXIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKwogICAgICAgICBjYXNlIFdlYWtNYXBHZXQ6CiAgICAgICAgIGNhc2UgUmVzb2x2ZVNj
b3BlRm9ySG9pc3RpbmdGdW5jRGVjbEluRXZhbDogewogICAgICAgICAgICAgc2V0UHJlZGljdGlv
bihTcGVjQnl0ZWNvZGVUb3ApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVU
b0V4ZWN1dGUuaAppbmRleCA0NjA2MWM4NmNmOTVjMDc4MTYxZjRhNTkyNGNkM2E1MjQ2Y2RjMDIx
Li42YmQ4ZjI5MzM0M2VhZTM4MTA4M2FmNzUxMGUzYmU5MjI0OTZhNzA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNjIsNiArNjIsNyBAQCBj
bGFzcyBTYWZlVG9FeGVjdXRlRWRnZSB7CiAgICAgICAgIGNhc2UgUHJvbWlzZU9iamVjdFVzZToK
ICAgICAgICAgY2FzZSBQcm94eU9iamVjdFVzZToKICAgICAgICAgY2FzZSBEZXJpdmVkQXJyYXlV
c2U6CisgICAgICAgIGNhc2UgRGF0ZU9iamVjdFVzZToKICAgICAgICAgY2FzZSBNYXBPYmplY3RV
c2U6CiAgICAgICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAgICAgICBjYXNlIFdlYWtNYXBPYmpl
Y3RVc2U6CkBAIC00ODksNiArNDkwLDggQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3Rh
dGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBib29sIGlnbm8KICAgICBj
YXNlIEF0b21pY3NJc0xvY2tGcmVlOgogICAgIGNhc2UgSW5pdGlhbGl6ZUVudHJ5cG9pbnRBcmd1
bWVudHM6CiAgICAgY2FzZSBNYXRjaFN0cnVjdHVyZToKKyAgICBjYXNlIERhdGVHZXRKU051bWJl
cjoKKyAgICBjYXNlIERhdGVHZXRNYWNoaW5lRG91YmxlOgogICAgIGNhc2UgRGF0YVZpZXdHZXRJ
bnQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0OgogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXgg
NDc0MTYxNGM1N2JkOGM5YmU2MGU2OGYzYzJhNDJlYTcwNDU3NTEwZS4uOWVhYzIxNmY2MDJjMGI0
MWZhZjhlYzhkZTI2N2E4YTFiNTc1Njk5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJE
RkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRGR1Ns
b3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiREZHU25pcHBldFBhcmFtcy5oIgorI2luY2x1
ZGUgIkRhdGVJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5oIgogI2luY2x1
ZGUgIkRpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgogI2luY2x1ZGUgIkpJVEFk
ZEdlbmVyYXRvci5oIgpAQCAtMTAxOTUsNiArMTAxOTYsMjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlUHJvbWlzZU9iamVjdChFZGdlIGVkZ2UpCiAgICAgc3BlY3VsYXRlUHJvbWlz
ZU9iamVjdChlZGdlLCBvcGVyYW5kLmdwcigpKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlRGF0ZU9iamVjdChFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQoreworICAgIHNwZWN1
bGF0ZUNlbGxUeXBlKGVkZ2UsIGNlbGwsIFNwZWNEYXRlT2JqZWN0LCBKU0RhdGVUeXBlKTsKK30K
Kwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRGF0ZU9iamVjdChFZGdlIGVkZ2UpCit7
CisgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjRGF0ZU9iamVjdCkpCisgICAgICAg
IHJldHVybjsKKworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhpcywgZWRnZSk7
CisgICAgc3BlY3VsYXRlRGF0ZU9iamVjdChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTWFwT2JqZWN0KEVkZ2UgZWRnZSwgR1BSUmVnIGNl
bGwpCiB7CiAgICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRnZSwgY2VsbCwgU3BlY01hcE9iamVjdCwg
SlNNYXBUeXBlKTsKQEAgLTEwNjAwLDYgKzEwNjE1LDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2FzZSBEZXJpdmVkQXJyYXlVc2U6CiAg
ICAgICAgIHNwZWN1bGF0ZURlcml2ZWRBcnJheShlZGdlKTsKICAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBEYXRlT2JqZWN0VXNlOgorICAgICAgICBzcGVjdWxhdGVEYXRlT2JqZWN0KGVkZ2UpOwor
ICAgICAgICBicmVhazsKICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgc3BlY3VsYXRl
TWFwT2JqZWN0KGVkZ2UpOwogICAgICAgICBicmVhazsKQEAgLTE0MDA4LDYgKzE0MDI2LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU1ha2VSb3BlKE5vZGUqIG5vZGUpCiAjZW5kaWYK
IH0KIAorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDFiYTUyMTFmYzExMzA3
N2VkZjE3YmE5YjllMTQxMDY1OWRiY2I4MjUuLjFiMjBkOTQ0Y2JjZGRhNjJmYWNiNDU2ZDRjOThk
MTliNWMwNWZmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmgKQEAgLTE0ODksNiArMTQ4OSw3IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAg
ICB2b2lkIGNvbXBpbGVDbGVhckNhdGNoTG9jYWxzKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVQ
cm9maWxlVHlwZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlU3RyaW5nQ29kZVBvaW50QXQoTm9k
ZSopOworICAgIHZvaWQgY29tcGlsZURhdGVHZXQoTm9kZSopOwogCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgSlNDbGFzcywgdHlwZW5hbWUgT3BlcmF0aW9uPgogICAgIHZvaWQgY29tcGlsZUNyZWF0
ZUludGVybmFsRmllbGRPYmplY3QoTm9kZSosIE9wZXJhdGlvbik7CkBAIC0xNjE2LDYgKzE2MTcs
OCBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBzcGVjdWxhdGVQcm94eU9iamVj
dChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZURlcml2ZWRBcnJheShFZGdlLCBHUFJSZWcgY2Vs
bCk7CiAgICAgdm9pZCBzcGVjdWxhdGVEZXJpdmVkQXJyYXkoRWRnZSk7CisgICAgdm9pZCBzcGVj
dWxhdGVEYXRlT2JqZWN0KEVkZ2UpOworICAgIHZvaWQgc3BlY3VsYXRlRGF0ZU9iamVjdChFZGdl
LCBHUFJSZWcgY2VsbCk7CiAgICAgdm9pZCBzcGVjdWxhdGVNYXBPYmplY3QoRWRnZSk7CiAgICAg
dm9pZCBzcGVjdWxhdGVNYXBPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3Bl
Y3VsYXRlU2V0T2JqZWN0KEVkZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggMTRmMjFjNzc2ZmRjNjM0NzQzNjQz
ZWRiYmQ2ZTA2YmIzYmE1NWMwYS4uYjRhZDYwOTYwN2UxNWMwNDgwZmZiMTNiM2M5YWNmZDhmMzY4
NmYzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCkBAIC00MTYyLDYgKzQxNjIsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBEYXRhVmlld0dldEludDoKICAgICBjYXNl
IERhdGFWaWV3R2V0RmxvYXQ6CiAgICAgY2FzZSBEYXRhVmlld1NldDoKKyAgICBjYXNlIERhdGVH
ZXRKU051bWJlcjoKKyAgICBjYXNlIERhdGVHZXRNYWNoaW5lRG91YmxlOgogICAgIGNhc2UgU3Ry
aW5nQ29kZVBvaW50QXQ6CiAgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBub2RlLCAi
dW5leHBlY3RlZCBub2RlIGluIERGRyBiYWNrZW5kIik7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXgg
MTQyYzdlMDY4OWMyNmExZmFmZGNkNTAwM2YxZjM0YmViMjUzODAyYS4uYmI2YjUzNDEyZjkwODQ0
ZGM5MTM5ZmY0NDY3MDE4ODhhMmMzMzExZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSAiREZHRG9lc0dDLmgiCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkRG
R1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVk
ZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVk
ZSAiSGFzT3duUHJvcGVydHlDYWNoZS5oIgpAQCAtNDg3NCw2ICs0ODc1LDExIEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQog
CisgICAgY2FzZSBEYXRlR2V0SlNOdW1iZXI6CisgICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJs
ZToKKyAgICAgICAgY29tcGlsZURhdGVHZXQobm9kZSk7CisgICAgICAgIGJyZWFrOworCiAgICAg
Y2FzZSBEYXRhVmlld1NldDogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBkYXRhVmll
dyh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKICAgICAgICAgR1BSUmVnIGRh
dGFWaWV3R1BSID0gZGF0YVZpZXcuZ3ByKCk7CkBAIC01MzQ4LDYgKzUzNTQsMTQzIEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpbmdDb2RlUG9pbnRBdChOb2RlKiBub2RlKQogICAg
IGludDMyUmVzdWx0KHNjcmF0Y2gxR1BSLCBtX2N1cnJlbnROb2RlKTsKIH0KIAordm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZURhdGVHZXQoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBHUFJSZWcgYmFzZUdQ
UiA9IGJhc2UuZ3ByKCk7CisgICAgc3BlY3VsYXRlRGF0ZU9iamVjdChub2RlLT5jaGlsZDEoKSwg
YmFzZUdQUik7CisKKyAgICBhdXRvIGVtaXRHZXRDb2RlV2l0aENhbGxiYWNrID0gWyZdIChwdHJk
aWZmX3QgY2FjaGVkRG91YmxlT2Zmc2V0LCBwdHJkaWZmX3QgY2FjaGVkRGF0YU9mZnNldCwgYXV0
byogb3BlcmF0aW9uLCBhdXRvIGNhbGxiYWNrKSB7CisgICAgICAgIEpTVmFsdWVSZWdzVGVtcG9y
YXJ5IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXAxKHRoaXMpOworICAg
ICAgICBGUFJUZW1wb3JhcnkgdGVtcDIodGhpcyk7CisKKyAgICAgICAgSlNWYWx1ZVJlZ3MgcmVz
dWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CisgICAgICAgIEZQUlJlZyB0ZW1wMUZQUiA9IHRlbXAx
LmZwcigpOworICAgICAgICBGUFJSZWcgdGVtcDJGUFIgPSB0ZW1wMi5mcHIoKTsKKworICAgICAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dDYXNlczsKKworICAgICAgICBtX2ppdC5sb2Fk
UHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBEYXRlSW5zdGFuY2U6Om9mZnNldE9m
RGF0YSgpKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgICAgICBzbG93Q2FzZXMuYXBw
ZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCByZXN1bHRSZWdzLnBh
eWxvYWRHUFIoKSkpOworICAgICAgICBtX2ppdC5sb2FkRG91YmxlKENDYWxsSGVscGVyczo6QWRk
cmVzcyhiYXNlR1BSLCBEYXRlSW5zdGFuY2U6Om9mZnNldE9mSW50ZXJuYWxOdW1iZXIoKSksIHRl
bXAxRlBSKTsKKyAgICAgICAgbV9qaXQubG9hZERvdWJsZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
cmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIGNhY2hlZERvdWJsZU9mZnNldCksIHRlbXAyRlBSKTsK
KyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hEb3VibGUoQ0NhbGxIZWxwZXJz
OjpEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkLCB0ZW1wMUZQUiwgdGVtcDJGUFIpKTsKKyAgICAg
ICAgbV9qaXQubG9hZDMyKENDYWxsSGVscGVyczo6QWRkcmVzcyhyZXN1bHRSZWdzLnBheWxvYWRH
UFIoKSwgY2FjaGVkRGF0YU9mZnNldCksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKKyAgICAg
ICAgY2FsbGJhY2socmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgICAgICBtX2ppdC5ib3hJ
bnQzMihyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgcmVzdWx0UmVncyk7CisKKyAgICAgICAgYWRk
U2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKHNsb3dDYXNlcywgdGhpcywgb3BlcmF0aW9u
LCByZXN1bHRSZWdzLCAmdm0oKSwgYmFzZUdQUikpOworCisgICAgICAgIGpzVmFsdWVSZXN1bHQo
cmVzdWx0UmVncywgbm9kZSk7CisgICAgfTsKKworICAgIGF1dG8gZW1pdEdldENvZGUgPSBbJl0g
KHB0cmRpZmZfdCBjYWNoZWREb3VibGVPZmZzZXQsIHB0cmRpZmZfdCBjYWNoZWREYXRhT2Zmc2V0
LCBhdXRvKiBvcGVyYXRpb24pIHsKKyAgICAgICAgZW1pdEdldENvZGVXaXRoQ2FsbGJhY2soY2Fj
aGVkRG91YmxlT2Zmc2V0LCBjYWNoZWREYXRhT2Zmc2V0LCBvcGVyYXRpb24sIFtdIChHUFJSZWcp
IHsgfSk7CisgICAgfTsKKworICAgIHN3aXRjaCAobm9kZS0+aW50cmluc2ljKCkpIHsKKyAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljOiB7CisgICAgICAgIEZQUlRlbXBvcmFy
eSByZXN1bHQodGhpcyk7CisgICAgICAgIEZQUlJlZyByZXN1bHRGUFIgPSByZXN1bHQuZnByKCk7
CisgICAgICAgIG1faml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VHUFIs
IERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigpKSwgcmVzdWx0RlBSKTsKKyAg
ICAgICAgZG91YmxlUmVzdWx0KHJlc3VsdEZQUiwgbm9kZSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIC8vIFdlIGRvIG5vdCBoYXZlIGFueSB0aW1lem9uZSBvZmZzZXQgd2hpY2ggYWZm
ZWN0cyBvbiBtaWxsaXNlY29uZHMuCisgICAgLy8gU28gRGF0ZSNnZXRNaWxsaXNlY29uZHMgYW5k
IERhdGUjZ2V0VVRDTWlsbGlzZWNvbmRzIGhhdmUgdGhlIHNhbWUgaW1wbGVtZW50YXRpb24uCisg
ICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljOgorICAgIGNhc2Ug
RGF0ZVByb3RvdHlwZUdldFVUQ01pbGxpc2Vjb25kc0ludHJpbnNpYzogeworICAgICAgICBKU1Zh
bHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgICAgIEZQUlRlbXBvcmFyeSB0ZW1w
MSh0aGlzKTsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXAyKHRoaXMpOworICAgICAgICBGUFJU
ZW1wb3JhcnkgdGVtcDModGhpcyk7CisgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSBy
ZXN1bHQucmVncygpOworICAgICAgICBGUFJSZWcgdGVtcDFGUFIgPSB0ZW1wMS5mcHIoKTsKKyAg
ICAgICAgRlBSUmVnIHRlbXAyRlBSID0gdGVtcDIuZnByKCk7CisgICAgICAgIEZQUlJlZyB0ZW1w
M0ZQUiA9IHRlbXAzLmZwcigpOworCisgICAgICAgIG1faml0Lm1vdmVUcnVzdGVkVmFsdWUoanNO
YU4oKSwgcmVzdWx0UmVncyk7CisgICAgICAgIG1faml0LmxvYWREb3VibGUoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKGJhc2VHUFIsIERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigp
KSwgdGVtcDFGUFIpOworICAgICAgICBhdXRvIGlzTmFOID0gbV9qaXQuYnJhbmNoSWZOYU4odGVt
cDFGUFIpOworCisgICAgICAgIHN0YXRpYyBjb25zdCBkb3VibGUgbXNQZXJTZWNvbmRDb25zdGFu
dCA9IG1zUGVyU2Vjb25kOworICAgICAgICBtX2ppdC5sb2FkRG91YmxlKFRydXN0ZWRJbW1QdHIo
Jm1zUGVyU2Vjb25kQ29uc3RhbnQpLCB0ZW1wMkZQUik7CisgICAgICAgIG1faml0LmRpdkRvdWJs
ZSh0ZW1wMUZQUiwgdGVtcDJGUFIsIHRlbXAzRlBSKTsKKyAgICAgICAgbV9qaXQuZmxvb3JEb3Vi
bGUodGVtcDNGUFIsIHRlbXAzRlBSKTsKKyAgICAgICAgbV9qaXQubXVsRG91YmxlKHRlbXAzRlBS
LCB0ZW1wMkZQUiwgdGVtcDNGUFIpOworICAgICAgICBtX2ppdC5zdWJEb3VibGUodGVtcDFGUFIs
IHRlbXAzRlBSLCB0ZW1wMUZQUik7CisgICAgICAgIG1faml0LnRydW5jYXRlRG91YmxlVG9JbnQz
Mih0ZW1wMUZQUiwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgICAgICBtX2ppdC5ib3hJ
bnQzMihyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgcmVzdWx0UmVncyk7CisKKyAgICAgICAgaXNO
YU4ubGluaygmbV9qaXQpOworICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUp
OworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRGdWxs
WWVhckludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9m
ZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZz
ZXRPZlllYXIoKSwgb3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRnVsbFllYXJJbnRyaW5zaWM6CisgICAgICAgIGVt
aXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVVVEND
YWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZZZWFyKCksIG9wZXJhdGlv
bkRhdGVHZXRVVENGdWxsWWVhcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3Rv
dHlwZUdldE1vbnRoSW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRp
bWU6Om9mZnNldE9mTW9udGgoKSwgb3BlcmF0aW9uRGF0ZUdldE1vbnRoKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTW9udGhJbnRyaW5zaWM6CisgICAgICAg
IGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVV
VENDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlh
bkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aCgpLCBvcGVy
YXRpb25EYXRlR2V0VVRDTW9udGgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90
b3R5cGVHZXREYXRlSW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRp
bWU6Om9mZnNldE9mTW9udGhEYXkoKSwgb3BlcmF0aW9uRGF0ZUdldERhdGUpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENEYXRlSW50cmluc2ljOgorICAgICAg
ICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1l
VVRDQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3Jp
YW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mTW9udGhEYXkoKSwg
b3BlcmF0aW9uRGF0ZUdldFVUQ0RhdGUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVQ
cm90b3R5cGVHZXREYXlJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5j
ZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFu
Y2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRl
VGltZTo6b2Zmc2V0T2ZXZWVrRGF5KCksIG9wZXJhdGlvbkRhdGVHZXREYXkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENEYXlJbnRyaW5zaWM6CisgICAgICAg
IGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVV
VENDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlh
bkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZXZWVrRGF5KCksIG9w
ZXJhdGlvbkRhdGVHZXRVVENEYXkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90
b3R5cGVHZXRIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCksIERhdGVJbnN0YW5j
ZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVU
aW1lOjpvZmZzZXRPZkhvdXIoKSwgb3BlcmF0aW9uRGF0ZUdldEhvdXJzKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDSG91cnNJbnRyaW5zaWM6CisgICAgICAg
IGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVV
VENDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlh
bkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZIb3VyKCksIG9wZXJh
dGlvbkRhdGVHZXRVVENIb3Vycyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3Rv
dHlwZUdldE1pbnV0ZXNJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5j
ZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFu
Y2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRl
VGltZTo6b2Zmc2V0T2ZNaW51dGUoKSwgb3BlcmF0aW9uRGF0ZUdldE1pbnV0ZXMpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNaW51dGVzSW50cmluc2ljOgor
ICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRh
dGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRH
cmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mTWludXRl
KCksIG9wZXJhdGlvbkRhdGVHZXRVVENNaW51dGVzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUo
RGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKCks
IERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdy
ZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZlNlY29uZCgpLCBvcGVyYXRpb25EYXRlR2V0U2Vjb25k
cyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ1NlY29uZHNJ
bnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9m
R3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZz
ZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zm
c2V0T2ZTZWNvbmQoKSwgb3BlcmF0aW9uRGF0ZUdldFVUQ1NlY29uZHMpOworICAgICAgICBicmVh
azsKKworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWV6b25lT2Zmc2V0SW50cmluc2ljOiB7
CisgICAgICAgIGVtaXRHZXRDb2RlV2l0aENhbGxiYWNrKERhdGVJbnN0YW5jZURhdGE6Om9mZnNl
dE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZz
ZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0
T2ZVVENPZmZzZXRJbk1pbnV0ZSgpLCBvcGVyYXRpb25EYXRlR2V0VGltZXpvbmVPZmZzZXQsIFsm
XSAoR1BSUmVnIG9mZnNldEdQUikgeworICAgICAgICAgICAgbV9qaXQubmVnMzIob2Zmc2V0R1BS
KTsKKyAgICAgICAgfSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgRGF0ZVBy
b3RvdHlwZUdldFllYXJJbnRyaW5zaWM6IHsKKyAgICAgICAgZW1pdEdldENvZGVXaXRoQ2FsbGJh
Y2soRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1T
KCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSAr
IEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZlllYXIoKSwgb3BlcmF0aW9uRGF0ZUdldFllYXIs
IFsmXSAoR1BSUmVnIHllYXJHUFIpIHsKKyAgICAgICAgICAgIG1faml0LnN1YjMyKFRydXN0ZWRJ
bW0zMigxOTAwKSwgeWVhckdQUik7CisgICAgICAgIH0pOworICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIH0KK30KKwogI2VuZGlmCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCmluZGV4IDA4NGI1OTViMzk5YTZhMDRiNDlj
OWNjMTIzOWQ1MGUyYjkyMjhlMjQuLjhlZjczYjZmMmU4NzU1MDM1OTZhODY0OTc0MGIzYTQ1OGFi
MDk3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAtMTA2
LDYgKzEwNiw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBVc2VLaW5k
IHVzZUtpbmQpCiAgICAgY2FzZSBEZXJpdmVkQXJyYXlVc2U6CiAgICAgICAgIG91dC5wcmludCgi
RGVyaXZlZEFycmF5Iik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIERhdGVPYmplY3RVc2U6
CisgICAgICAgIG91dC5wcmludCgiRGF0ZU9iamVjdCIpOworICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgIG91dC5wcmludCgiTWFwT2JqZWN0Iik7CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNl
S2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5kZXggMmVj
NGVhMTUzZDVjM2QyMzc0YjA5ZTFjZTczODNkMDhiNDFmM2FlZi4uOWMxM2M1YmNkMzU2OTU3OWIw
MzA5MmM1YzhmNzU4YjZlOWMwNTlhNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VL
aW5kLmgKQEAgLTY3LDYgKzY3LDcgQEAgZW51bSBVc2VLaW5kIHsKICAgICBLbm93blByaW1pdGl2
ZVVzZSwgLy8gVGhpcyBiaXphcnJlIHR5cGUgYXJpc2VzIGZvciBvcF9zdHJjYXQsIHdoaWNoIGhh
cyBhIGJ5dGVjb2RlIGd1YXJhbnRlZSB0aGF0IGl0IHdpbGwgb25seSBzZWUgcHJpbWl0aXZlcyAo
aS5lLiBub3Qgb2JqZWN0cykuCiAgICAgU3ltYm9sVXNlLAogICAgIEJpZ0ludFVzZSwKKyAgICBE
YXRlT2JqZWN0VXNlLAogICAgIE1hcE9iamVjdFVzZSwKICAgICBTZXRPYmplY3RVc2UsCiAgICAg
V2Vha01hcE9iamVjdFVzZSwKQEAgLTE1NSw2ICsxNTYsOCBAQCBpbmxpbmUgU3BlY3VsYXRlZFR5
cGUgdHlwZUZpbHRlckZvcihVc2VLaW5kIHVzZUtpbmQpCiAgICAgICAgIHJldHVybiBTcGVjQmln
SW50OwogICAgIGNhc2UgUHJvbWlzZU9iamVjdFVzZToKICAgICAgICAgcmV0dXJuIFNwZWNQcm9t
aXNlT2JqZWN0OworICAgIGNhc2UgRGF0ZU9iamVjdFVzZToKKyAgICAgICAgcmV0dXJuIFNwZWNE
YXRlT2JqZWN0OwogICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICByZXR1cm4gU3BlY01h
cE9iamVjdDsKICAgICBjYXNlIFNldE9iamVjdFVzZToKQEAgLTI2MSw2ICsyNjQsNyBAQCBpbmxp
bmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5kKQogICAgIGNhc2UgQmlnSW50VXNlOgogICAgIGNh
c2UgU3RyaW5nT2JqZWN0VXNlOgogICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6Cisg
ICAgY2FzZSBEYXRlT2JqZWN0VXNlOgogICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgIGNhc2Ug
U2V0T2JqZWN0VXNlOgogICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwCmlu
ZGV4IDljM2MxYzdhYzZmYThhZjI4MjYzYmFiMmE3MjY5ZGI1NTBlMzU2ZGIuLmM0NWM5ZDFiN2U1
NGEwYjdjNzRkMGE3MzRkZmQwNzE1MzU5YzIyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM1BhdGNocG9p
bnRWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiRGF0ZUlu
c3RhbmNlLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiRlRMU3Rh
dGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXggMTAzNjllNGU0
OTQ1MjYwZGE3Y2M0YzEzYTNmNzE4NmE2ZTQyMzU0MC4uNWRmNDNmNzc0ZmYzNDY2NzBjZTE4NGVj
NzU4ZDFhMTEzMDcyYmQwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTUyLDYgKzUyLDI2IEBAIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhCdXR0ZXJmbHlfdmVjdG9yTGVuZ3Ro
LCBCdXR0ZXJmbHk6Om9mZnNldE9mVmVjdG9yTGVuZ3RoKCkpIFwKICAgICBtYWNybyhDYWxsRnJh
bWVfY2FsbGVyRnJhbWUsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSkgXAogICAgIG1h
Y3JvKENsYXNzSW5mb19wYXJlbnRDbGFzcywgQ2xhc3NJbmZvOjpvZmZzZXRPZlBhcmVudENsYXNz
KCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VfaW50ZXJuYWxOdW1iZXIsIERhdGVJbnN0YW5j
ZTo6b2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlX2Rh
dGEsIERhdGVJbnN0YW5jZTo6b2Zmc2V0T2ZEYXRhKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFu
Y2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMsIERhdGVJbnN0YW5jZURhdGE6Om9m
ZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygpKSBcCisgICAgbWFjcm8oRGF0ZUlu
c3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBEYXRlSW5zdGFuY2VE
YXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSkgXAorICAgIG1h
Y3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfeWVhciwgRGF0ZUlu
c3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFu
RGF0ZVRpbWU6Om9mZnNldE9mWWVhcigpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9j
YWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ195ZWFyLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRP
ZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0
T2ZZZWFyKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lX21vbnRoLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aCgpKSBcCisgICAgbWFj
cm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19tb250aCwgRGF0
ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3Jl
Z29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mTW9udGgoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5j
ZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfbW9udGhEYXksIERhdGVJbnN0YW5jZURhdGE6
Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpv
ZmZzZXRPZk1vbnRoRGF5KCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lVVRDX21vbnRoRGF5LCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNh
Y2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZN
b250aERheSgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5E
YXRlVGltZV93ZWVrRGF5LCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlh
bkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZXZWVrRGF5KCkpIFwKKyAg
ICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX3dlZWtE
YXksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMo
KSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZldlZWtEYXkoKSkgXAorICAgIG1hY3JvKERh
dGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfaG91ciwgRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRp
bWU6Om9mZnNldE9mSG91cigpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRH
cmVnb3JpYW5EYXRlVGltZVVUQ19ob3VyLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hl
ZEdyZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZIb3Vy
KCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1l
X21pbnV0ZSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGlt
ZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mTWludXRlKCkpIFwKKyAgICBtYWNybyhE
YXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX21pbnV0ZSwgRGF0ZUlu
c3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29y
aWFuRGF0ZVRpbWU6Om9mZnNldE9mTWludXRlKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VE
YXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX3NlY29uZCwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNl
dE9mU2Vjb25kKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlh
bkRhdGVUaW1lVVRDX3NlY29uZCwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVn
b3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mU2Vjb25kKCkp
IFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX3V0
Y09mZnNldEluTWludXRlLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlh
bkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZVVENPZmZzZXRJbk1pbnV0
ZSgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGlt
ZVVUQ191dGNPZmZzZXRJbk1pbnV0ZSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRH
cmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mVVRDT2Zm
c2V0SW5NaW51dGUoKSkgXAogICAgIG1hY3JvKERpcmVjdEFyZ3VtZW50c19jYWxsZWUsIERpcmVj
dEFyZ3VtZW50czo6b2Zmc2V0T2ZDYWxsZWUoKSkgXAogICAgIG1hY3JvKERpcmVjdEFyZ3VtZW50
c19sZW5ndGgsIERpcmVjdEFyZ3VtZW50czo6b2Zmc2V0T2ZMZW5ndGgoKSkgXAogICAgIG1hY3Jv
KERpcmVjdEFyZ3VtZW50c19taW5DYXBhY2l0eSwgRGlyZWN0QXJndW1lbnRzOjpvZmZzZXRPZk1p
bkNhcGFjaXR5KCkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcAppbmRleCBjNjFmOWU2NTgwYmYzYjZlNDVjNjE1MGI5OWYwZjRiODNjMzFlNmE5Li45
NWQzY2E2MWUwMGI5NGI4MTIxMDViNWIwNDRiZWNmYjc3MWQ4MTljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0zODgsNiArMzg4LDggQEAg
aW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBE
YXRhVmlld0dldEludDoKICAgICBjYXNlIERhdGFWaWV3R2V0RmxvYXQ6CiAgICAgY2FzZSBEYXRh
Vmlld1NldDoKKyAgICBjYXNlIERhdGVHZXRKU051bWJlcjoKKyAgICBjYXNlIERhdGVHZXRNYWNo
aW5lRG91YmxlOgogICAgICAgICAvLyBUaGVzZSBhcmUgT0suCiAgICAgICAgIGJyZWFrOwogCkBA
IC00NzAsNiArNDcyLDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBo
KQogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CiAgICAgICAg
ICAgICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBCaWdJbnRVc2U6
CisgICAgICAgICAgICAgICAgY2FzZSBEYXRlT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNh
c2UgTWFwT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAg
ICAgICAgICAgICAgIGNhc2UgV2Vha01hcE9iamVjdFVzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCBhZjBhOGViMDcwYjMwYWJiZmZiZjBh
NzY1NTg5NWFlYzYyZTlhOTdmLi5kZjJmZTdlYzU5OWFlYjUwMWM1YWNjNjdkYjhhYzg3NmEyMDQ3
NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CkBAIC0xNTQ1LDYgKzE1NDUsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgY2Fz
ZSBGaWx0ZXJJbkJ5SWRTdGF0dXM6CiAgICAgICAgICAgICBjb21waWxlRmlsdGVySUNTdGF0dXMo
KTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVHZXRKU051bWJlcjoKKyAg
ICAgICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZToKKyAgICAgICAgICAgIGNvbXBpbGVEYXRl
R2V0KCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDoK
ICAgICAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0OgogICAgICAgICAgICAgY29tcGlsZURhdGFW
aWV3R2V0KCk7CkBAIC0xMzQwNyw2ICsxMzQxMSwxMTUgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KKworICAgIHZvaWQgY29tcGlsZURhdGVH
ZXQoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dEYXRlT2JqZWN0KG1fbm9kZS0+
Y2hpbGQxKCkpOworCisgICAgICAgIGF1dG8gZW1pdEdldENvZGVXaXRoQ2FsbGJhY2sgPSBbJl0g
KGNvbnN0IEFic3RyYWN0SGVhcCYgY2FjaGVkRG91YmxlT2Zmc2V0LCBjb25zdCBBYnN0cmFjdEhl
YXAmIGNhY2hlZERhdGFPZmZzZXQsIGF1dG8qIG9wZXJhdGlvbiwgYXV0byBjYWxsYmFjaykgewor
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgZGF0YUV4aXN0c0Nhc2UgPSBtX291dC5uZXdCbG9jaygp
OworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZmFzdENhc2UgPSBtX291dC5uZXdCbG9jaygpOwor
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOworICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKKwor
ICAgICAgICAgICAgTFZhbHVlIGRhdGEgPSBtX291dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuRGF0
ZUluc3RhbmNlX2RhdGEpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdFplcm82
NChkYXRhKSwgdW5zdXJlKGRhdGFFeGlzdHNDYXNlKSwgdW5zdXJlKHNsb3dDYXNlKSk7CisKKyAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZGF0YUV4aXN0
c0Nhc2UsIGZhc3RDYXNlKTsKKyAgICAgICAgICAgIExWYWx1ZSBtaWxsaXNlY29uZHMgPSBtX291
dC5sb2FkRG91YmxlKGJhc2UsIG1faGVhcHMuRGF0ZUluc3RhbmNlX2ludGVybmFsTnVtYmVyKTsK
KyAgICAgICAgICAgIExWYWx1ZSBjYWNoZWRNaWxsaXNlY29uZHMgPSBtX291dC5sb2FkRG91Ymxl
KGRhdGEsIGNhY2hlZERvdWJsZU9mZnNldCk7CisgICAgICAgICAgICBtX291dC5icmFuY2gobV9v
dXQuZG91YmxlTm90RXF1YWxPclVub3JkZXJlZChtaWxsaXNlY29uZHMsIGNhY2hlZE1pbGxpc2Vj
b25kcyksIHVuc3VyZShzbG93Q2FzZSksIHVuc3VyZShmYXN0Q2FzZSkpOworCisgICAgICAgICAg
ICBtX291dC5hcHBlbmRUbyhmYXN0Q2FzZSwgc2xvd0Nhc2UpOworICAgICAgICAgICAgVmFsdWVG
cm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihib3hJbnQzMihjYWxsYmFjayhtX291
dC5sb2FkMzIoZGF0YSwgY2FjaGVkRGF0YU9mZnNldCkpKSk7CisgICAgICAgICAgICBtX291dC5q
dW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dDYXNl
LCBjb250aW51YXRpb24pOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9
IG1fb3V0LmFuY2hvcih2bUNhbGwoSW50NjQsIG9wZXJhdGlvbiwgbV92bVZhbHVlLCBiYXNlKSk7
CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgICAgIG1f
b3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAgICAgc2V0SlNW
YWx1ZShtX291dC5waGkoSW50NjQsIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpKTsKKyAgICAgICAg
fTsKKworICAgICAgICBhdXRvIGVtaXRHZXRDb2RlID0gWyZdIChjb25zdCBBYnN0cmFjdEhlYXAm
IGNhY2hlZERvdWJsZU9mZnNldCwgY29uc3QgQWJzdHJhY3RIZWFwJiBjYWNoZWREYXRhT2Zmc2V0
LCBhdXRvKiBvcGVyYXRpb24pIHsKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlV2l0aENhbGxiYWNr
KGNhY2hlZERvdWJsZU9mZnNldCwgY2FjaGVkRGF0YU9mZnNldCwgb3BlcmF0aW9uLCBbXSAoTFZh
bHVlIHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfSk7CisgICAgICAgIH07CisKKyAgICAgICAgc3dp
dGNoIChtX25vZGUtPmludHJpbnNpYygpKSB7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdl
dFRpbWVJbnRyaW5zaWM6CisgICAgICAgICAgICBzZXREb3VibGUobV9vdXQubG9hZERvdWJsZShi
YXNlLCBtX2hlYXBzLkRhdGVJbnN0YW5jZV9pbnRlcm5hbE51bWJlcikpOworICAgICAgICAgICAg
YnJlYWs7CisKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRzSW50cmlu
c2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJbnRyaW5z
aWM6IHsKKyAgICAgICAgICAgIExWYWx1ZSBtaWxsaXNlY29uZHMgPSBtX291dC5sb2FkRG91Ymxl
KGJhc2UsIG1faGVhcHMuRGF0ZUluc3RhbmNlX2ludGVybmFsTnVtYmVyKTsKKyAgICAgICAgICAg
IExWYWx1ZSBtc1BlclNlY29uZENvbnN0YW50ID0gbV9vdXQuY29uc3REb3VibGUobXNQZXJTZWNv
bmQpOworICAgICAgICAgICAgTFZhbHVlIHNlY29uZHMgPSBtX291dC5kb3VibGVGbG9vcihtX291
dC5kb3VibGVEaXYobWlsbGlzZWNvbmRzLCBtc1BlclNlY29uZENvbnN0YW50KSk7CisgICAgICAg
ICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuZG91YmxlVG9JbnQobV9vdXQuZG91YmxlU3ViKG1p
bGxpc2Vjb25kcywgbV9vdXQuZG91YmxlTXVsKHNlY29uZHMsIG1zUGVyU2Vjb25kQ29uc3RhbnQp
KSk7CisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnNlbGVjdChtX291dC5kb3VibGVOb3RF
cXVhbE9yVW5vcmRlcmVkKG1pbGxpc2Vjb25kcywgbWlsbGlzZWNvbmRzKSwgbV9vdXQuY29uc3RJ
bnQ2NChKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSkpLCBib3hJbnQzMihyZXN1bHQpKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdl
dEZ1bGxZZWFySW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRl
SW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUlu
c3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV95ZWFyLCBvcGVyYXRpb25EYXRlR2V0
RnVsbFllYXIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlw
ZUdldFVUQ0Z1bGxZZWFySW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFw
cy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMsIG1faGVh
cHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ195ZWFyLCBvcGVy
YXRpb25EYXRlR2V0VVRDRnVsbFllYXIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENv
ZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMs
IG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9tb250aCwg
b3BlcmF0aW9uRGF0ZUdldE1vbnRoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IERhdGVQcm90b3R5cGVHZXRVVENNb250aEludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRD
b2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZv
ck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENf
bW9udGgsIG9wZXJhdGlvbkRhdGVHZXRVVENNb250aCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF0ZUludHJpbnNpYzoKKyAgICAgICAgICAgIGVt
aXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hl
ZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVf
bW9udGhEYXksIG9wZXJhdGlvbkRhdGVHZXREYXRlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENEYXRlSW50cmluc2ljOgorICAgICAgICAgICAg
ZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRD
Q2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRl
VGltZVVUQ19tb250aERheSwgb3BlcmF0aW9uRGF0ZUdldFVUQ0RhdGUpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldERheUludHJpbnNpYzoKKyAgICAg
ICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRl
VGltZUNhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVfd2Vla0RheSwgb3BlcmF0aW9uRGF0ZUdldERheSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF5SW50cmluc2ljOgorICAgICAg
ICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVU
aW1lVVRDQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3Jp
YW5EYXRlVGltZVVUQ193ZWVrRGF5LCBvcGVyYXRpb25EYXRlR2V0VVRDRGF5KTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYzoK
KyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3Jp
YW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3Jl
Z29yaWFuRGF0ZVRpbWVfaG91ciwgb3BlcmF0aW9uRGF0ZUdldEhvdXJzKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYzoK
KyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3Jp
YW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVk
R3JlZ29yaWFuRGF0ZVRpbWVVVENfaG91ciwgb3BlcmF0aW9uRGF0ZUdldFVUQ0hvdXJzKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNaW51dGVzSW50
cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRh
X2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9j
YWNoZWRHcmVnb3JpYW5EYXRlVGltZV9taW51dGUsIG9wZXJhdGlvbkRhdGVHZXRNaW51dGVzKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNaW51
dGVzSW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFwcy5EYXRlSW5zdGFu
Y2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3Rh
bmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19taW51dGUsIG9wZXJhdGlvbkRhdGVH
ZXRVVENNaW51dGVzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90
b3R5cGVHZXRTZWNvbmRzSW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUobV9oZWFw
cy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMsIG1faGVhcHMu
RGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9zZWNvbmQsIG9wZXJhdGlv
bkRhdGVHZXRTZWNvbmRzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQ
cm90b3R5cGVHZXRVVENTZWNvbmRzSW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGUo
bV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMs
IG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19zZWNv
bmQsIG9wZXJhdGlvbkRhdGVHZXRVVENTZWNvbmRzKTsKKyAgICAgICAgICAgIGJyZWFrOworCisg
ICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFRpbWV6b25lT2Zmc2V0SW50cmluc2ljOgorICAg
ICAgICAgICAgZW1pdEdldENvZGVXaXRoQ2FsbGJhY2sobV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRh
X2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMsIG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9j
YWNoZWRHcmVnb3JpYW5EYXRlVGltZV91dGNPZmZzZXRJbk1pbnV0ZSwgb3BlcmF0aW9uRGF0ZUdl
dFRpbWV6b25lT2Zmc2V0LCBbJl0gKExWYWx1ZSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbV9vdXQubmVnKG9mZnNldCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFllYXJJbnRyaW5zaWM6CisgICAg
ICAgICAgICBlbWl0R2V0Q29kZVdpdGhDYWxsYmFjayhtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFf
Z3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2Nh
Y2hlZEdyZWdvcmlhbkRhdGVUaW1lX3llYXIsIG9wZXJhdGlvbkRhdGVHZXRZZWFyLCBbJl0gKExW
YWx1ZSB5ZWFyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fb3V0LnN1Yih5ZWFyLCBtX291
dC5jb25zdEludDMyKDE5MDApKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgCiAgICAgdm9pZCBlbWl0U3dpdGNoRm9yTXVs
dGlCeU9mZnNldChMVmFsdWUgYmFzZSwgYm9vbCBzdHJ1Y3R1cmVzQ2hlY2tlZCwgVmVjdG9yPFN3
aXRjaENhc2UsIDI+JiBjYXNlcywgTEJhc2ljQmxvY2sgZXhpdCkKICAgICB7CkBAIC0xNTc1Niw2
ICsxNTg2OSwxMyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBzcGVjdWxhdGVEYXRh
Vmlld09iamVjdChlZGdlLCByZXN1bHQpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
KworICAgIExWYWx1ZSBsb3dEYXRlT2JqZWN0KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIExW
YWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UpOworICAgICAgICBzcGVjdWxhdGVEYXRlT2JqZWN0
KGVkZ2UsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQogICAgIAogICAg
IExWYWx1ZSBsb3dTdHJpbmcoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUg
PSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAgewpAQCAtMTYyNDAsNiArMTYzNjAs
OSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBjYXNlIERlcml2ZWRBcnJheVVzZToK
ICAgICAgICAgICAgIHNwZWN1bGF0ZURlcml2ZWRBcnJheShlZGdlKTsKICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIERhdGVPYmplY3RVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVE
YXRlT2JqZWN0KGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWFwT2Jq
ZWN0VXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlTWFwT2JqZWN0KGVkZ2UpOwogICAgICAgICAg
ICAgYnJlYWs7CkBAIC0xNjc2Niw2ICsxNjg4OSwxNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewog
ICAgICAgICBzcGVjdWxhdGVQcm9taXNlT2JqZWN0KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOwogICAg
IH0KIAorICAgIHZvaWQgc3BlY3VsYXRlRGF0ZU9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxs
KQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCisgICAgICAgICAgICBqc1ZhbHVlVmFs
dWUoY2VsbCksIGVkZ2UsIFNwZWNEYXRlT2JqZWN0LCBpc05vdFR5cGUoY2VsbCwgSlNEYXRlVHlw
ZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlRGF0ZU9iamVjdChFZGdlIGVkZ2UpCisg
ICAgeworICAgICAgICBzcGVjdWxhdGVEYXRlT2JqZWN0KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOwor
ICAgIH0KKwogICAgIHZvaWQgc3BlY3VsYXRlTWFwT2JqZWN0KEVkZ2UgZWRnZSwgTFZhbHVlIGNl
bGwpCiAgICAgewogICAgICAgICBGVExfVFlQRV9DSEVDSygKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcAppbmRleCBhZTlmNGUwY2E3Y2NiMDJm
YWI0MmJmYzJlMjY0OWIwMmJhOGVkOTRhLi41YjJhYTFhNzFmZmY1YTUwZGQzMTFlZGQyNWVhZGQx
ODJlN2I3YzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNv
bnZlcnNpb24uY3BwCkBAIC05Nyw4ICs5Nyw4IEBAIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25z
dCBHcmVnb3JpYW5EYXRlVGltZSYgdCwgRGF0ZVRpbWVGb3JtYXQgZm9ybWF0LCBib29sIGFzCiAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIEdNVCIpOwogCiAgICAgICAgIGlmICghYXNV
VENWYXJpYW50KSB7Ci0gICAgICAgICAgICBpbnQgb2Zmc2V0ID0gYWJzKHQudXRjT2Zmc2V0KCkp
IC8gNjA7Ci0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh0LnV0Y09mZnNldCgpIDwgMCA/ICct
JyA6ICcrJyk7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gYWJzKHQudXRjT2Zmc2V0SW5NaW51
dGUoKSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh0LnV0Y09mZnNldEluTWludXRlKCkg
PCAwID8gJy0nIDogJysnKTsKICAgICAgICAgICAgIGFwcGVuZE51bWJlcjwyPihidWlsZGVyLCBv
ZmZzZXQgLyA2MCk7CiAgICAgICAgICAgICBhcHBlbmROdW1iZXI8Mj4oYnVpbGRlciwgb2Zmc2V0
ICUgNjApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
SW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNl
LmNwcAppbmRleCA3YjRlNDVjZWE0MTk5YTE4NzIzNzkxNDFjZDVlMjJlMTc2ZDM0ZTQ3Li44ZjVj
MmVkMjI2MzI5NWNiYzQ1N2VlNzZlYWViMzc0ZDNlN2YyYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKQEAgLTU3LDEzICs1NywxMiBAQCB2
b2lkIERhdGVJbnN0YW5jZTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAgICAgc3RhdGljX2Nhc3Q8
RGF0ZUluc3RhbmNlKj4oY2VsbCktPkRhdGVJbnN0YW5jZTo6fkRhdGVJbnN0YW5jZSgpOwogfQog
Ci1jb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3Jp
YW5EYXRlVGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAorY29uc3QgR3Jl
Z29yaWFuRGF0ZVRpbWUqIERhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWUo
Vk0mIHZtKSBjb25zdAogewogICAgIGRvdWJsZSBtaWxsaSA9IGludGVybmFsTnVtYmVyKCk7CiAg
ICAgaWYgKHN0ZDo6aXNuYW4obWlsbGkpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgaWYg
KCFtX2RhdGEpCiAgICAgICAgIG1fZGF0YSA9IHZtLmRhdGVJbnN0YW5jZUNhY2hlLmFkZChtaWxs
aSk7CiAKQEAgLTc0LDEzICs3MywxMiBAQCBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUlu
c3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZShKU0dsb2JhbE9iamVjdAogICAgIHJl
dHVybiAmbV9kYXRhLT5tX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lOwogfQogCi1jb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZVVU
QyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAorY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIERhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWVVVEMoVk0mIHZt
KSBjb25zdAogewogICAgIGRvdWJsZSBtaWxsaSA9IGludGVybmFsTnVtYmVyKCk7CiAgICAgaWYg
KHN0ZDo6aXNuYW4obWlsbGkpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgaWYgKCFtX2Rh
dGEpCiAgICAgICAgIG1fZGF0YSA9IHZtLmRhdGVJbnN0YW5jZUNhY2hlLmFkZChtaWxsaSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKaW5kZXggMzU3
OGFiODJhNDY1MzYwMWMwOWQ4MGRkMDQ1NDQ1ZWI4MDQyOWM2Yy4uOWU3NzgzOTcxNGZjZGMxN2I4
N2E2NGQ5N2JiODQwZjk3Y2FkYzQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUluc3RhbmNlLmgKQEAgLTU0LDI4ICs1NCwzMSBAQCBjbGFzcyBEYXRlSW5zdGFuY2Ug
ZmluYWwgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogCiAgICAgREVDTEFSRV9FWFBP
UlRfSU5GTzsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGlt
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAorICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZShWTSYgdm0pIGNvbnN0CiAgICAgewogICAgICAg
ICBpZiAobV9kYXRhICYmIG1fZGF0YS0+bV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TID09
IGludGVybmFsTnVtYmVyKCkpCiAgICAgICAgICAgICByZXR1cm4gJm1fZGF0YS0+bV9jYWNoZWRH
cmVnb3JpYW5EYXRlVGltZTsKLSAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVU
aW1lKGdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiBjYWxjdWxhdGVHcmVnb3JpYW5EYXRl
VGltZSh2bSk7CiAgICAgfQogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlh
bkRhdGVUaW1lVVRDKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CisgICAgY29u
c3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lVVRDKFZNJiB2bSkgY29uc3QK
ICAgICB7CiAgICAgICAgIGlmIChtX2RhdGEgJiYgbV9kYXRhLT5tX2dyZWdvcmlhbkRhdGVUaW1l
VVRDQ2FjaGVkRm9yTVMgPT0gaW50ZXJuYWxOdW1iZXIoKSkKICAgICAgICAgICAgIHJldHVybiAm
bV9kYXRhLT5tX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDOwotICAgICAgICByZXR1cm4gY2Fs
Y3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJu
IGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICB9CiAKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSlNEYXRlVHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAorICAgIHN0YXRpYyBwdHJkaWZmX3Qg
b2Zmc2V0T2ZJbnRlcm5hbE51bWJlcigpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihEYXRlSW5z
dGFuY2UsIG1faW50ZXJuYWxOdW1iZXIpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRP
ZkRhdGEoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRGF0ZUluc3RhbmNlLCBtX2RhdGEpOyB9
CisKIHByaXZhdGU6Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgR3JlZ29yaWFuRGF0ZVRp
bWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7Ci0g
ICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGNhbGN1bGF0ZUdy
ZWdvcmlhbkRhdGVUaW1lVVRDKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVU
aW1lKFZNJikgY29uc3Q7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lVVRDKFZNJikgY29uc3Q7CiAKICAgICBk
b3VibGUgbV9pbnRlcm5hbE51bWJlciB7IFBOYU4gfTsKICAgICBtdXRhYmxlIFJlZlB0cjxEYXRl
SW5zdGFuY2VEYXRhPiBtX2RhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUluc3RhbmNlQ2FjaGUuaAppbmRleCA3NTY0MGViMzczMDQxYzhlOTNjNGI5MjY2NmI4
ZjFmZTIzNzM4NWExLi4yYzRmYjUyMmQzZWY5YjYyZThiNDBiZTMzZWU4ZWVjZWFlMTBiMGE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2VDYWNo
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hl
LmgKQEAgLTM3LDE3ICszNywxOCBAQCBjbGFzcyBEYXRlSW5zdGFuY2VEYXRhIDogcHVibGljIFJl
ZkNvdW50ZWQ8RGF0ZUluc3RhbmNlRGF0YT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGF0
ZUluc3RhbmNlRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlSW5zdGFu
Y2VEYXRhKTsgfQogCi0gICAgZG91YmxlIG1fZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUzsK
KyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JN
UygpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihEYXRlSW5zdGFuY2VEYXRhLCBtX2dyZWdvcmlh
bkRhdGVUaW1lQ2FjaGVkRm9yTVMpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkNh
Y2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKERhdGVJbnN0
YW5jZURhdGEsIG1fY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUpOyB9CisgICAgc3RhdGljIHB0cmRp
ZmZfdCBvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSB7IHJldHVybiBP
QkpFQ1RfT0ZGU0VUT0YoRGF0ZUluc3RhbmNlRGF0YSwgbV9ncmVnb3JpYW5EYXRlVGltZVVUQ0Nh
Y2hlZEZvck1TKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZDYWNoZWRHcmVnb3Jp
YW5EYXRlVGltZVVUQygpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihEYXRlSW5zdGFuY2VEYXRh
LCBtX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDKTsgfQorCisgICAgZG91YmxlIG1fZ3JlZ29y
aWFuRGF0ZVRpbWVDYWNoZWRGb3JNUyB7IFBOYU4gfTsKICAgICBHcmVnb3JpYW5EYXRlVGltZSBt
X2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lOwotICAgIGRvdWJsZSBtX2dyZWdvcmlhbkRhdGVUaW1l
VVRDQ2FjaGVkRm9yTVM7CisgICAgZG91YmxlIG1fZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRG
b3JNUyB7IFBOYU4gfTsKICAgICBHcmVnb3JpYW5EYXRlVGltZSBtX2NhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lVVRDOwogCiBwcml2YXRlOgotICAgIERhdGVJbnN0YW5jZURhdGEoKQotICAgICAgICA6
IG1fZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUyhQTmFOKQotICAgICAgICAsIG1fZ3JlZ29y
aWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUyhQTmFOKQotICAgIHsKLSAgICB9CisgICAgRGF0ZUlu
c3RhbmNlRGF0YSgpID0gZGVmYXVsdDsKIH07CiAKIGNsYXNzIERhdGVJbnN0YW5jZUNhY2hlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5k
ZXggMjM5ZTkzMmVlZGM0ZmFkNTA3YmVhMTgzNGY3ZDQ5NzVlNjlmMTJjZS4uMmFmZjBmNzNkN2M2
NDRjNjhkYWQ1YzE2N2ZmZTNmMzdiZDQ3Yzg3NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKQEAgLTMxMyw3ICszMTMsNyBAQCBzdGF0aWMg
SlNDZWxsKiBmb3JtYXRMb2NhbGVEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYQogc3RhdGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlRGF0ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRGF0ZUluc3RhbmNl
KiBkYXRlT2JqZWN0LCBkb3VibGUsIExvY2FsZURhdGVUaW1lRm9ybWF0IGZvcm1hdCkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRp
bWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZU9iamVjdC0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xv
YmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRp
bWUgPSBkYXRlT2JqZWN0LT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3Jp
YW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIkludmFs
aWQgRGF0ZSJfcyk7CiAgICAgcmV0dXJuIGZvcm1hdExvY2FsZURhdGUoZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUsICpncmVnb3JpYW5EYXRlVGltZSwgZm9ybWF0KTsKQEAgLTMzMSw4ICszMzEsOCBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZm9ybWF0ZURhdGVJbnN0YW5jZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBn
cmVnb3JpYW5EYXRlVGltZSA9IGFzVVRDVmFyaWFudAotICAgICAgICA/IHRoaXNEYXRlT2JqLT5n
cmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpCi0gICAgICAgIDogdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgICAgID8gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKQorICAgICAgICA6IHRoaXNEYXRlT2JqLT5ncmVnb3Jp
YW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcodm0sIFN0cmluZygiSW52YWxp
ZCBEYXRlIl9zKSkpOwogCkBAIC00NTQsMjUgKzQ1NCwyNiBAQCBjb25zdCBDbGFzc0luZm8gRGF0
ZVByb3RvdHlwZTo6c19pbmZvID0geyJPYmplY3QiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZv
LCAmZAogICB0b0xvY2FsZVN0cmluZyAgICAgICAgZGF0ZVByb3RvRnVuY1RvTG9jYWxlU3RyaW5n
ICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKICAgdG9Mb2NhbGVEYXRlU3RyaW5n
ICAgIGRhdGVQcm90b0Z1bmNUb0xvY2FsZURhdGVTdHJpbmcgICAgICBEb250RW51bXxGdW5jdGlv
biAgICAgICAwCiAgIHRvTG9jYWxlVGltZVN0cmluZyAgICBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVU
aW1lU3RyaW5nICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICB2YWx1ZU9mICAgICAg
ICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFRpbWUgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uICAgICAgIDAKLSAgZ2V0VGltZSAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRU
aW1lICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldEZ1bGxZ
ZWFyICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIgICAgICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gICAgICAgMAotICBnZXRVVENGdWxsWWVhciAgICAgICAgZGF0ZVByb3RvRnVu
Y0dldFVUQ0Z1bGxZZWFyICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0
TW9udGggICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRNb250aCAgICAgICAgICAgICAgICBE
b250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFVUQ01vbnRoICAgICAgICAgICBkYXRlUHJv
dG9GdW5jR2V0VVRDTW9udGggICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAot
ICBnZXREYXRlICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldERhdGUgICAgICAgICAgICAg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VVRDRGF0ZSAgICAgICAgICAgIGRh
dGVQcm90b0Z1bmNHZXRVVENEYXRlICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAg
ICAwCi0gIGdldERheSAgICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0RGF5ICAgICAgICAg
ICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRVVENEYXkgICAgICAgICAg
ICAgZGF0ZVByb3RvRnVuY0dldFVUQ0RheSAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
ICAgICAgIDAKLSAgZ2V0SG91cnMgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRIb3VycyAg
ICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFVUQ0hvdXJzICAg
ICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMgICAgICAgICAgICAgRG9udEVudW18RnVu
Y3Rpb24gICAgICAgMAotICBnZXRNaW51dGVzICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldE1p
bnV0ZXMgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VVRDTWlu
dXRlcyAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVzICAgICAgICAgICBEb250RW51
bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFNlY29uZHMgICAgICAgICAgICBkYXRlUHJvdG9GdW5j
R2V0U2Vjb25kcyAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRV
VENTZWNvbmRzICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMgICAgICAgICAgIERv
bnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0TWlsbGlzZWNvbmRzICAgICAgIGRhdGVQcm90
b0Z1bmNHZXRNaWxsaVNlY29uZHMgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0g
IGdldFVUQ01pbGxpc2Vjb25kcyAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzICAg
ICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRUaW1lem9uZU9mZnNldCAgICAgZGF0
ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAg
IDAKKyAgdmFsdWVPZiAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRUaW1lICAgICAgICAg
ICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VGltZUlu
dHJpbnNpYworICBnZXRUaW1lICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFRpbWUgICAg
ICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRU
aW1lSW50cmluc2ljCisgIGdldEZ1bGxZZWFyICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0RnVs
bFllYXIgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlw
ZUdldEZ1bGxZZWFySW50cmluc2ljCisgIGdldFVUQ0Z1bGxZZWFyICAgICAgICBkYXRlUHJvdG9G
dW5jR2V0VVRDRnVsbFllYXIgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0
ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50cmluc2ljCisgIGdldE1vbnRoICAgICAgICAgICAg
ICBkYXRlUHJvdG9GdW5jR2V0TW9udGggICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
ICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50cmluc2ljCisgIGdldFVUQ01vbnRoICAg
ICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGggICAgICAgICAgICAgRG9udEVudW18RnVu
Y3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ01vbnRoSW50cmluc2ljCisgIGdldERh
dGUgICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0RGF0ZSAgICAgICAgICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldERhdGVJbnRyaW5zaWMKKyAg
Z2V0VVRDRGF0ZSAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlICAgICAgICAgICAg
ICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJp
bnNpYworICBnZXREYXkgICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldERheSAgICAgICAg
ICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXREYXlJ
bnRyaW5zaWMKKyAgZ2V0VVRDRGF5ICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENEYXkg
ICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0
VVRDRGF5SW50cmluc2ljCisgIGdldEhvdXJzICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0
SG91cnMgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3Rv
dHlwZUdldEhvdXJzSW50cmluc2ljCisgIGdldFVUQ0hvdXJzICAgICAgICAgICBkYXRlUHJvdG9G
dW5jR2V0VVRDSG91cnMgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0
ZVByb3RvdHlwZUdldFVUQ0hvdXJzSW50cmluc2ljCisgIGdldE1pbnV0ZXMgICAgICAgICAgICBk
YXRlUHJvdG9GdW5jR2V0TWludXRlcyAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAg
ICAgMCAgRGF0ZVByb3RvdHlwZUdldE1pbnV0ZXNJbnRyaW5zaWMKKyAgZ2V0VVRDTWludXRlcyAg
ICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVzICAgICAgICAgICBEb250RW51bXxGdW5j
dGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYworICBnZXRT
ZWNvbmRzICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFNlY29uZHMgICAgICAgICAgICAgIERv
bnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRTZWNvbmRzSW50cmluc2lj
CisgIGdldFVUQ1NlY29uZHMgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyAgICAg
ICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ1NlY29u
ZHNJbnRyaW5zaWMKKyAgZ2V0TWlsbGlzZWNvbmRzICAgICAgIGRhdGVQcm90b0Z1bmNHZXRNaWxs
aVNlY29uZHMgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBl
R2V0TWlsbGlzZWNvbmRzSW50cmluc2ljCisgIGdldFVUQ01pbGxpc2Vjb25kcyAgICBkYXRlUHJv
dG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAg
RGF0ZVByb3RvdHlwZUdldFVUQ01pbGxpc2Vjb25kc0ludHJpbnNpYworICBnZXRUaW1lem9uZU9m
ZnNldCAgICAgZGF0ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0ICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9mZnNldEludHJpbnNpYwor
ICBnZXRZZWFyICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFllYXIgICAgICAgICAgICAg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRZZWFySW50cmlu
c2ljCiAgIHNldFRpbWUgICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jU2V0VGltZSAgICAgICAg
ICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMQogICBzZXRNaWxsaXNlY29uZHMgICAg
ICAgZGF0ZVByb3RvRnVuY1NldE1pbGxpU2Vjb25kcyAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
ICAgICAgIDEKICAgc2V0VVRDTWlsbGlzZWNvbmRzICAgIGRhdGVQcm90b0Z1bmNTZXRVVENNaWxs
aXNlY29uZHMgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAxCkBAIC00ODksNyArNDkwLDYg
QEAgY29uc3QgQ2xhc3NJbmZvIERhdGVQcm90b3R5cGU6OnNfaW5mbyA9IHsiT2JqZWN0IiwgJkpT
Tm9uRmluYWxPYmplY3Q6OnNfaW5mbywgJmQKICAgc2V0RnVsbFllYXIgICAgICAgICAgIGRhdGVQ
cm90b0Z1bmNTZXRGdWxsWWVhciAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAz
CiAgIHNldFVUQ0Z1bGxZZWFyICAgICAgICBkYXRlUHJvdG9GdW5jU2V0VVRDRnVsbFllYXIgICAg
ICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMwogICBzZXRZZWFyICAgICAgICAgICAgICAg
ZGF0ZVByb3RvRnVuY1NldFllYXIgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAg
ICAgIDEKLSAgZ2V0WWVhciAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRZZWFyICAgICAg
ICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCiAgIHRvSlNPTiAgICAgICAgICAg
ICAgICBkYXRlUHJvdG9GdW5jVG9KU09OICAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rp
b24gICAgICAgMQogQGVuZAogKi8KQEAgLTU0OSw3ICs1NDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZQogICAgIGlmICghc3RkOjppc2Zpbml0ZSh0aGlzRGF0ZU9iai0+aW50ZXJuYWxOdW1i
ZXIoKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
Y3JlYXRlUmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsICJJbnZhbGlkIERhdGUiX3MpKTsKIAotICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRl
VGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcodm0sIFN0cmluZygiSW52YWxpZCBE
YXRlIl9zKSkpOwogICAgIC8vIE1heGltdW0gYW1vdW50IG9mIHNwYWNlIHdlIG5lZWQgaW4gYnVm
ZmVyOiA3IChtYXguIGRpZ2l0cyBpbiB5ZWFyKSArIDIgKiA1ICgyIGNoYXJhY3RlcnMgZWFjaCBm
b3IgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQpICsgNCAoLiArIDMgZGlnaXRzIGZv
ciBtaWxsaXNlY29uZHMpCkBAIC02NjQsNyArNjY0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amUKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5E
YXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRp
bWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICgh
Z3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4o
KSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGlt
ZS0+eWVhcigpKSk7CkBAIC02NzksNyArNjc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8K
ICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVV
VEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlm
ICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
YU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRl
VGltZS0+eWVhcigpKSk7CkBAIC02OTQsNyArNjk0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TW9udGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5E
YXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRp
bWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFu
RGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICgh
Z3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4o
KSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGlt
ZS0+bW9udGgoKSkpOwpAQCAtNzA5LDcgKzcwOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
CiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1l
VVRDKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlh
bkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICBp
ZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0
ZVRpbWUtPm1vbnRoKCkpKTsKQEAgLTcyNCw3ICs3MjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVU
aW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlh
bkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAo
IWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFO
KCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRp
bWUtPm1vbnRoRGF5KCkpKTsKQEAgLTczOSw3ICs3MzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplYwogICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRl
VGltZVVUQyhnbG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVn
b3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CiAg
ICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc05hTigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlh
bkRhdGVUaW1lLT5tb250aERheSgpKSk7CkBAIC03NTQsNyArNzU0LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RGF5KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEMKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29y
aWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSog
Z3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwog
ICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3Jp
YW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CkBAIC03NjksNyArNzY5LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF5KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29y
aWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMo
dm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihn
cmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CkBAIC03ODQsNyArNzg0LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0SG91cnMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+
Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUo
dm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihn
cmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7CkBAIC03OTksNyArNzk5LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamUKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBjb25z
dCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3Jl
Z29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVV
VEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7CkBAIC04MTQsNyArODE0LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TWludXRlcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWMKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAgICBj
b25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+
Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRl
VGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUo
dm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihn
cmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKTsKQEAgLTgyOSw3ICs4MjksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVzKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYgogICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNv
bnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5n
cmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRh
dGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGlt
ZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVt
YmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5taW51dGUoKSkpOwpAQCAtODQ0LDcgKzg0NCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFNlY29uZHMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0g
ICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVP
YmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVU
aW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnNlY29uZCgpKSk7CkBAIC04NTksNyArODU5LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKLSAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9i
ai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVnb3Jp
YW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0
ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25kKCkpKTsKQEAgLTg4MCw3ICs4ODAsOCBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29u
ZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogCiAgICAgZG91YmxlIHNlY3MgPSBmbG9vcihtaWxs
aSAvIG1zUGVyU2Vjb25kKTsKICAgICBkb3VibGUgbXMgPSBtaWxsaSAtIHNlY3MgKiBtc1BlclNl
Y29uZDsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG1zKSk7CisgICAgLy8g
U2luY2UgdGltZUNsaXAgbWFrZXMgaW50ZXJuYWxOdW1iZXIgaW50ZWdlciBtaWxsaXNlY29uZHMs
IHRoaXMgcmVzdWx0IGlzIGFsd2F5cyBpbnQzMl90LgorICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4obXMpKSk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01pbGxpc2Vjb25kcyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKQEAgLTg5OCw3ICs4
OTksOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENN
aWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsbwogCiAgICAgZG91YmxlIHNlY3MgPSBmbG9v
cihtaWxsaSAvIG1zUGVyU2Vjb25kKTsKICAgICBkb3VibGUgbXMgPSBtaWxsaSAtIHNlY3MgKiBt
c1BlclNlY29uZDsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG1zKSk7Cisg
ICAgLy8gU2luY2UgdGltZUNsaXAgbWFrZXMgaW50ZXJuYWxOdW1iZXIgaW50ZWdlciBtaWxsaXNl
Y29uZHMsIHRoaXMgcmVzdWx0IGlzIGFsd2F5cyBpbnQzMl90LgorICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4obXMpKSk7CiB9CiAKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQpAQCAtOTEw
LDEwICs5MTIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
R2V0VGltZXpvbmVPZmZzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBpZiAoVU5MSUtFTFko
IXRoaXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0
ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9i
ai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7Ci0gICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcigtZ3JlZ29yaWFuRGF0ZVRpbWUtPnV0Y09mZnNldCgpIC8gbWlu
dXRlc1BlckhvdXIpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC1ncmVn
b3JpYW5EYXRlVGltZS0+dXRjT2Zmc2V0SW5NaW51dGUoKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRUaW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQpAQCAtOTUxLDEzICs5NTMsMTIgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICBkb3VibGUgbXMgPSBtaWxsaSAtIHNlY3MgKiBtc1Bl
clNlY29uZDsKIAogICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBvdGhlciA9IGlucHV0VGlt
ZVR5cGUgPT0gV1RGOjpVVENUaW1lCi0gICAgICAgID8gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRh
dGVUaW1lVVRDKGdsb2JhbE9iamVjdCkKLSAgICAgICAgOiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgPyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWVVVEModm0pCisgICAgICAgIDogdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1l
KHZtKTsKICAgICBpZiAoIW90aGVyKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TmFOKCkpOwogCi0gICAgR3JlZ29yaWFuRGF0ZVRpbWUgZ3JlZ29yaWFuRGF0ZVRpbWU7Ci0gICAg
Z3JlZ29yaWFuRGF0ZVRpbWUuY29weUZyb20oKm90aGVyKTsKKyAgICBHcmVnb3JpYW5EYXRlVGlt
ZSBncmVnb3JpYW5EYXRlVGltZSgqb3RoZXIpOwogICAgIGJvb2wgc3VjY2VzcyA9IGZpbGxTdHJ1
Y3R1cmVzVXNpbmdUaW1lQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgbnVtQXJnc1RvVXNl
LCAmbXMsICZncmVnb3JpYW5EYXRlVGltZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgaWYgKCFzdWNjZXNzKSB7CkBAIC05OTQsMTEgKzk5
NSwxMSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3MoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAgIGVsc2UgeyAKICAgICAgICAgbXMg
PSBtaWxsaSAtIGZsb29yKG1pbGxpIC8gbXNQZXJTZWNvbmQpICogbXNQZXJTZWNvbmQ7IAogICAg
ICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogb3RoZXIgPSBpbnB1dFRpbWVUeXBlID09IFdU
Rjo6VVRDVGltZQotICAgICAgICAgICAgPyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVV
VEMoZ2xvYmFsT2JqZWN0KQotICAgICAgICAgICAgOiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0
ZVRpbWUoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgID8gdGhpc0RhdGVPYmotPmdyZWdvcmlh
bkRhdGVUaW1lVVRDKHZtKQorICAgICAgICAgICAgOiB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0
ZVRpbWUodm0pOwogICAgICAgICBpZiAoIW90aGVyKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc05hTigpKTsKLSAgICAgICAgZ3JlZ29yaWFuRGF0ZVRpbWUuY29weUZyb20o
Km90aGVyKTsKKyAgICAgICAgZ3JlZ29yaWFuRGF0ZVRpbWUgPSAqb3RoZXI7CiAgICAgfQogICAg
IAogICAgIGJvb2wgc3VjY2VzcyA9IGZpbGxTdHJ1Y3R1cmVzVXNpbmdEYXRlQXJncyhnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSwgbnVtQXJnc1RvVXNlLCAmbXMsICZncmVnb3JpYW5EYXRlVGltZSk7
CkBAIC0xMTA5LDggKzExMTAsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNTZXRZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgZWxzZSB7
CiAgICAgICAgIGRvdWJsZSBzZWNzID0gZmxvb3IobWlsbGkgLyBtc1BlclNlY29uZCk7CiAgICAg
ICAgIG1zID0gbWlsbGkgLSBzZWNzICogbXNQZXJTZWNvbmQ7Ci0gICAgICAgIGlmIChjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogb3RoZXIgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUo
Z2xvYmFsT2JqZWN0KSkKLSAgICAgICAgICAgIGdyZWdvcmlhbkRhdGVUaW1lLmNvcHlGcm9tKCpv
dGhlcik7CisgICAgICAgIGlmIChjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogb3RoZXIgPSB0aGlz
RGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pKQorICAgICAgICAgICAgZ3JlZ29yaWFuRGF0
ZVRpbWUgPSAqb3RoZXI7CiAgICAgfQogCiAgICAgZG91YmxlIHllYXIgPSBjYWxsRnJhbWUtPmFy
Z3VtZW50KDApLnRvSW50ZWdlclByZXNlcnZlTmFOKGdsb2JhbE9iamVjdCk7CkBAIC0xMTM2LDcg
KzExMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRZ
ZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgaWYgKFVOTElLRUxZKCF0aGlz
RGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1l
ID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29u
c3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdy
ZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcAppbmRleCBhMTJhMjQwNTVjNzI5MGEzYTFjOTU2ZjZh
YjRlNzYzN2Y4N2ZiYjM0Li5hNDFiNTdiMmNiY2JiMWMyZDVkNWY2Y2E5OWI2YWQ2MGI0ZWMyYTlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKQEAgLTgz
LDYgKzgzLDQ0IEBAIGNvbnN0IGNoYXIqIGludHJpbnNpY05hbWUoSW50cmluc2ljIGludHJpbnNp
YykKICAgICAgICAgcmV0dXJuICJDaGFyQ29kZUF0SW50cmluc2ljIjsKICAgICBjYXNlIENoYXJB
dEludHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJDaGFyQXRJbnRyaW5zaWMiOworICAgIGNhc2Ug
RGF0ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3Rv
dHlwZUdldFRpbWVJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldEZ1bGxZZWFy
SW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRGdWxsWWVhckludHJp
bnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRnVsbFllYXJJbnRyaW5zaWM6Cisg
ICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50cmluc2ljIjsKKyAg
ICBjYXNlIERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJE
YXRlUHJvdG90eXBlR2V0TW9udGhJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdl
dFVUQ01vbnRoSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRVVENN
b250aEludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF0ZUludHJpbnNpYzoK
KyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0RGF0ZUludHJpbnNpYyI7CisgICAgY2Fz
ZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRl
UHJvdG90eXBlR2V0VVRDRGF0ZUludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0
RGF5SW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXREYXlJbnRyaW5z
aWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0RheUludHJpbnNpYzoKKyAgICAgICAg
cmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDRGF5SW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQ
cm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBl
R2V0SG91cnNJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0hvdXJzSW50
cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNp
YyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAg
cmV0dXJuICJEYXRlUHJvdG90eXBlR2V0TWludXRlc0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRl
UHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJv
dG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0
U2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0U2Vjb25k
c0ludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNp
YzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNpYyI7
CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRzSW50cmluc2ljOgorICAgICAg
ICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRNaWxsaXNlY29uZHNJbnRyaW5zaWMiOworICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldFVUQ01pbGxpc2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgcmV0
dXJuICJEYXRlUHJvdG90eXBlR2V0VVRDTWlsbGlzZWNvbmRzSW50cmluc2ljIjsKKyAgICBjYXNl
IERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9mZnNldEludHJpbnNpYzoKKyAgICAgICAgcmV0dXJu
ICJEYXRlUHJvdG90eXBlR2V0VGltZXpvbmVPZmZzZXRJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0
ZVByb3RvdHlwZUdldFllYXJJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlw
ZUdldFllYXJJbnRyaW5zaWMiOwogICAgIGNhc2UgRnJvbUNoYXJDb2RlSW50cmluc2ljOgogICAg
ICAgICByZXR1cm4gIkZyb21DaGFyQ29kZUludHJpbnNpYyI7CiAgICAgY2FzZSBQb3dJbnRyaW5z
aWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCmluZGV4IGU1MWI4
MzlkOTg2Njc2ODk4M2U3NTE4ZTI0NzVlYTM1OGQ5ZmQ4NTEuLmZlMmU5MTBmOTFlZGVhZWQyNjA5
ZjQyNDc0ZTI4MDRiYjZmZmNjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludHJpbnNpYy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dHJpbnNpYy5oCkBAIC01NCw2ICs1NCwyNSBAQCBlbnVtIEludHJpbnNpYyA6IHVpbnQ4X3Qgewog
ICAgIEFycmF5SW5kZXhPZkludHJpbnNpYywKICAgICBDaGFyQ29kZUF0SW50cmluc2ljLAogICAg
IENoYXJBdEludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VGltZUludHJpbnNpYywKKyAg
ICBEYXRlUHJvdG90eXBlR2V0RnVsbFllYXJJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdl
dFVUQ0Z1bGxZZWFySW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNp
YywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRDTW9udGhJbnRyaW5zaWMsCisgICAgRGF0ZVByb3Rv
dHlwZUdldERhdGVJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ0RhdGVJbnRyaW5z
aWMsCisgICAgRGF0ZVByb3RvdHlwZUdldERheUludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBl
R2V0VVRDRGF5SW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYywK
KyAgICBEYXRlUHJvdG90eXBlR2V0VVRDSG91cnNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlw
ZUdldE1pbnV0ZXNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ01pbnV0ZXNJbnRy
aW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFNlY29uZHNJbnRyaW5zaWMsCisgICAgRGF0ZVBy
b3RvdHlwZUdldFVUQ1NlY29uZHNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldE1pbGxp
c2Vjb25kc0ludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VVRDTWlsbGlzZWNvbmRzSW50
cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9mZnNldEludHJpbnNpYywKKyAg
ICBEYXRlUHJvdG90eXBlR2V0WWVhckludHJpbnNpYywKICAgICBGcm9tQ2hhckNvZGVJbnRyaW5z
aWMsCiAgICAgUG93SW50cmluc2ljLAogICAgIEZsb29ySW50cmluc2ljLApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNwcAppbmRleCA3OTk2YThmOGFlNzBlZjBj
NTRkZmJiMjhkMzA2YzE5ZmJjNWFhZjIxLi42YzhiMzc5NzY3ZjQ2MzEwY2YzNTNkYTQ4ZTQxZTNh
NmI1ZTIyYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rh
dGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRo
LmNwcApAQCAtMjE5LDcgKzIxOSw3IEBAIHZvaWQgbXNUb0dyZWdvcmlhbkRhdGVUaW1lKFZNJiB2
bSwgZG91YmxlIG1zLCBXVEY6OlRpbWVUeXBlIG91dHB1dFRpbWVUeXBlLCBHcmVnCiAgICAgdG0u
c2V0TW9udGgobW9udGhGcm9tRGF5SW5ZZWFyKHRtLnllYXJEYXkoKSwgaXNMZWFwWWVhcih5ZWFy
KSkpOwogICAgIHRtLnNldFllYXIoeWVhcik7CiAgICAgdG0uc2V0SXNEU1QobG9jYWxUaW1lLmlz
RFNUKTsKLSAgICB0bS5zZXRVdGNPZmZzZXQobG9jYWxUaW1lLm9mZnNldCAvIFdURjo6bXNQZXJT
ZWNvbmQpOworICAgIHRtLnNldFVUQ09mZnNldEluTWludXRlKGxvY2FsVGltZS5vZmZzZXQgLyBX
VEY6Om1zUGVyTWludXRlKTsKIH0KIAogZG91YmxlIHBhcnNlRGF0ZUZyb21OdWxsVGVybWluYXRl
ZENoYXJhY3RlcnMoVk0mIHZtLCBjb25zdCBjaGFyKiBkYXRlU3RyaW5nKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVHlwZS5jcHAKaW5kZXggZDFjNjczZTY1ZmE4ZjJhN2I4ZWJjZjRl
NWYyMTRmZjk4YzI4YjdlNC4uMTZkYzliOTFmNGZjNDMxMjg2NDM2NDZlYzZkMDM5YWVjYWRmN2Mx
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuY3BwCkBAIC05Niw2ICs5
Niw3IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OkpTVHlwZSB0
eXBlKQogICAgIENBU0UoV2l0aFNjb3BlVHlwZSkKICAgICBDQVNFKE1vZHVsZU5hbWVzcGFjZU9i
amVjdFR5cGUpCiAgICAgQ0FTRShSZWdFeHBPYmplY3RUeXBlKQorICAgIENBU0UoSlNEYXRlVHlw
ZSkKICAgICBDQVNFKFByb3h5T2JqZWN0VHlwZSkKICAgICBDQVNFKEpTR2VuZXJhdG9yVHlwZSkK
ICAgICBDQVNFKEpTQXN5bmNHZW5lcmF0b3JUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1R5cGUuaAppbmRleCA2ZTk5Njg3NGVmMmUzYjdhYzQyYjUwYTE4NGVmNDhiNjJhZWQwYjZj
Li44MGJkMzRjYjYyMjFhYWZiZTk2YWYxMDQ2NTMyYTY3ZDc3MzJlYzdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGUuaApAQCAtMTA3LDYgKzEwNyw3IEBAIGVudW0gSlNUeXBl
IDogdWludDhfdCB7CiAKICAgICBNb2R1bGVOYW1lc3BhY2VPYmplY3RUeXBlLAogICAgIFJlZ0V4
cE9iamVjdFR5cGUsCisgICAgSlNEYXRlVHlwZSwKICAgICBQcm94eU9iamVjdFR5cGUsCiAgICAg
SlNHZW5lcmF0b3JUeXBlLAogICAgIEpTQXN5bmNHZW5lcmF0b3JUeXBlLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvRGF0ZU1hdGguaCBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKaW5k
ZXggZjllMjgxMWZiYWM0ZTc3OTg1Zjc2NjU4MDA1MThhNTU2NDA0NDg1My4uN2UyZDFkZTczOTZh
Nzg0OTYyMDE4NDEyMjVhMzQ2MGUyODEyN2M2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
RGF0ZU1hdGguaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCkBAIC0xMDYsMTYgKzEw
NiwxNiBAQCBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3XSA9IHsgIk1vbiIsICJUdWUi
LCAiV2VkIiwgIlRodSIsICJGcmkiLCAiU2F0IiwgIgogY29uc3QgY2hhciogY29uc3QgbW9udGhO
YW1lWzEyXSA9IHsgIkphbiIsICJGZWIiLCAiTWFyIiwgIkFwciIsICJNYXkiLCAiSnVuIiwgIkp1
bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAiRGVjIiB9OwogY29uc3QgY2hhciogY29u
c3QgbW9udGhGdWxsTmFtZVsxMl0gPSB7ICJKYW51YXJ5IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwg
IkFwcmlsIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAiQXVndXN0IiwgIlNlcHRlbWJlciIsICJP
Y3RvYmVyIiwgIk5vdmVtYmVyIiwgIkRlY2VtYmVyIiB9OwogCi1jb25zdCBkb3VibGUgaG91cnNQ
ZXJEYXkgPSAyNC4wOwotY29uc3QgZG91YmxlIG1pbnV0ZXNQZXJIb3VyID0gNjAuMDsKLWNvbnN0
IGRvdWJsZSBzZWNvbmRzUGVyTWludXRlID0gNjAuMDsKLWNvbnN0IGRvdWJsZSBtc1BlclNlY29u
ZCA9IDEwMDAuMDsKLWNvbnN0IGRvdWJsZSBtc1Blck1vbnRoID0gMjU5MjAwMDAwMC4wOwotY29u
c3QgZG91YmxlIHNlY29uZHNQZXJIb3VyID0gc2Vjb25kc1Blck1pbnV0ZSAqIG1pbnV0ZXNQZXJI
b3VyOwotY29uc3QgZG91YmxlIHNlY29uZHNQZXJEYXkgPSBzZWNvbmRzUGVySG91ciAqIGhvdXJz
UGVyRGF5OwotY29uc3QgZG91YmxlIG1zUGVyTWludXRlID0gbXNQZXJTZWNvbmQgKiBzZWNvbmRz
UGVyTWludXRlOwotY29uc3QgZG91YmxlIG1zUGVySG91ciA9IG1zUGVyU2Vjb25kICogc2Vjb25k
c1BlckhvdXI7Ci1jb25zdCBkb3VibGUgbXNQZXJEYXkgPSBtc1BlclNlY29uZCAqIHNlY29uZHNQ
ZXJEYXk7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBob3Vyc1BlckRheSA9IDI0LjA7CitzdGF0
aWMgY29uc3RleHByIGRvdWJsZSBtaW51dGVzUGVySG91ciA9IDYwLjA7CitzdGF0aWMgY29uc3Rl
eHByIGRvdWJsZSBzZWNvbmRzUGVyTWludXRlID0gNjAuMDsKK3N0YXRpYyBjb25zdGV4cHIgZG91
YmxlIG1zUGVyU2Vjb25kID0gMTAwMC4wOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbXNQZXJN
b250aCA9IDI1OTIwMDAwMDAuMDsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIHNlY29uZHNQZXJI
b3VyID0gc2Vjb25kc1Blck1pbnV0ZSAqIG1pbnV0ZXNQZXJIb3VyOworc3RhdGljIGNvbnN0ZXhw
ciBkb3VibGUgc2Vjb25kc1BlckRheSA9IHNlY29uZHNQZXJIb3VyICogaG91cnNQZXJEYXk7Citz
dGF0aWMgY29uc3RleHByIGRvdWJsZSBtc1Blck1pbnV0ZSA9IG1zUGVyU2Vjb25kICogc2Vjb25k
c1Blck1pbnV0ZTsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIG1zUGVySG91ciA9IG1zUGVyU2Vj
b25kICogc2Vjb25kc1BlckhvdXI7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBtc1BlckRheSA9
IG1zUGVyU2Vjb25kICogc2Vjb25kc1BlckRheTsKIAogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wg
aXNMZWFwWWVhcihpbnQgeWVhcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0dyZWdv
cmlhbkRhdGVUaW1lLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0dyZWdvcmlhbkRhdGVUaW1lLmNwcApp
bmRleCBhM2M0NGI5MjFhNzA4MzJjMjQ1NzhlZjRiOTA0ZGEyMTIyNjgyZjY0Li4zMjE0ODg3ZWYz
ZmY0YzkyMmNhYjUxNTkwMTYyMzc1MjYyMzA5NDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9HcmVnb3JpYW5EYXRlVGltZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvR3JlZ29yaWFuRGF0
ZVRpbWUuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgR3JlZ29yaWFuRGF0ZVRpbWU6OnNldFRv
Q3VycmVudExvY2FsVGltZSgpCiAgICAgbV9ob3VyID0gc3lzdGVtVGltZS53SG91cjsKICAgICBt
X21pbnV0ZSA9IHN5c3RlbVRpbWUud01pbnV0ZTsKICAgICBtX3NlY29uZCA9IHN5c3RlbVRpbWUu
d1NlY29uZDsKLSAgICBtX3V0Y09mZnNldCA9IC1iaWFzICogc2Vjb25kc1Blck1pbnV0ZTsKKyAg
ICBtX3V0Y09mZnNldEluTWludXRlID0gLWJpYXM7CiAgICAgbV9pc0RTVCA9IHRpbWVab25lSWQg
PT0gVElNRV9aT05FX0lEX0RBWUxJR0hUID8gMSA6IDA7CiAjZWxzZQogICAgIHRtIGxvY2FsVE07
CkBAIC04Myw5ICs4Myw5IEBAIHZvaWQgR3JlZ29yaWFuRGF0ZVRpbWU6OnNldFRvQ3VycmVudExv
Y2FsVGltZSgpCiAgICAgbV9zZWNvbmQgPSBsb2NhbFRNLnRtX3NlYzsKICAgICBtX2lzRFNUID0g
bG9jYWxUTS50bV9pc2RzdDsKICNpZiBIQVZFKFRNX0dNVE9GRikKLSAgICBtX3V0Y09mZnNldCA9
IGxvY2FsVE0udG1fZ210b2ZmOworICAgIG1fdXRjT2Zmc2V0SW5NaW51dGUgPSBsb2NhbFRNLnRt
X2dtdG9mZiAvIHNlY29uZHNQZXJNaW51dGU7CiAjZWxzZQotICAgIG1fdXRjT2Zmc2V0ID0gY2Fs
Y3VsYXRlTG9jYWxUaW1lT2Zmc2V0KGxvY2FsVGltZSAqIG1zUGVyU2Vjb25kKS5vZmZzZXQgLyBt
c1BlclNlY29uZDsKKyAgICBtX3V0Y09mZnNldEluTWludXRlID0gY2FsY3VsYXRlTG9jYWxUaW1l
T2Zmc2V0KGxvY2FsVGltZSAqIG1zUGVyU2Vjb25kKS5vZmZzZXQgLyBtc1Blck1pbnV0ZTsKICNl
bmRpZgogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9HcmVnb3JpYW5EYXRl
VGltZS5oIGIvU291cmNlL1dURi93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuaAppbmRleCAyNWRkMTVj
YWUwNGJmODI3ZmUxZmZjZTk1Y2U1NzFmODczNjU3NTdmLi4wMmMyZWM3Y2YzMjFhYTlkNGI3ZmYw
OWFhYjkwYTU3YWY1YWYwNjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9HcmVnb3JpYW5E
YXRlVGltZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0dyZWdvcmlhbkRhdGVUaW1lLmgKQEAgLTI2
LDI3ICsyNiwxNiBAQAogCiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8dGltZS5oPgor
I2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgor
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKIGNsYXNz
IEdyZWdvcmlhbkRhdGVUaW1lIGZpbmFsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
LSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHcmVnb3JpYW5EYXRlVGltZSk7CiBwdWJsaWM6Ci0g
ICAgR3JlZ29yaWFuRGF0ZVRpbWUoKQotICAgICAgICA6IG1feWVhcigwKQotICAgICAgICAsIG1f
bW9udGgoMCkKLSAgICAgICAgLCBtX3llYXJEYXkoMCkKLSAgICAgICAgLCBtX21vbnRoRGF5KDAp
Ci0gICAgICAgICwgbV93ZWVrRGF5KDApCi0gICAgICAgICwgbV9ob3VyKDApCi0gICAgICAgICwg
bV9taW51dGUoMCkKLSAgICAgICAgLCBtX3NlY29uZCgwKQotICAgICAgICAsIG1fdXRjT2Zmc2V0
KDApCi0gICAgICAgICwgbV9pc0RTVCgwKQotICAgIHsKLSAgICB9CisgICAgR3JlZ29yaWFuRGF0
ZVRpbWUoKSA9IGRlZmF1bHQ7CiAKICAgICBpbmxpbmUgaW50IHllYXIoKSBjb25zdCB7IHJldHVy
biBtX3llYXI7IH0KICAgICBpbmxpbmUgaW50IG1vbnRoKCkgY29uc3QgeyByZXR1cm4gbV9tb250
aDsgfQpAQCAtNTYsNyArNDUsNyBAQCBjbGFzcyBHcmVnb3JpYW5EYXRlVGltZSBmaW5hbCB7CiAg
ICAgaW5saW5lIGludCBob3VyKCkgY29uc3QgeyByZXR1cm4gbV9ob3VyOyB9CiAgICAgaW5saW5l
IGludCBtaW51dGUoKSBjb25zdCB7IHJldHVybiBtX21pbnV0ZTsgfQogICAgIGlubGluZSBpbnQg
c2Vjb25kKCkgY29uc3QgeyByZXR1cm4gbV9zZWNvbmQ7IH0KLSAgICBpbmxpbmUgaW50IHV0Y09m
ZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdXRjT2Zmc2V0OyB9CisgICAgaW5saW5lIGludCB1dGNP
ZmZzZXRJbk1pbnV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXRjT2Zmc2V0SW5NaW51dGU7IH0KICAg
ICBpbmxpbmUgaW50IGlzRFNUKCkgY29uc3QgeyByZXR1cm4gbV9pc0RTVDsgfQogCiAgICAgaW5s
aW5lIHZvaWQgc2V0WWVhcihpbnQgeWVhcikgeyBtX3llYXIgPSB5ZWFyOyB9CkBAIC02Nyw5ICs1
NiwyMCBAQCBjbGFzcyBHcmVnb3JpYW5EYXRlVGltZSBmaW5hbCB7CiAgICAgaW5saW5lIHZvaWQg
c2V0SG91cihpbnQgaG91cikgeyBtX2hvdXIgPSBob3VyOyB9CiAgICAgaW5saW5lIHZvaWQgc2V0
TWludXRlKGludCBtaW51dGUpIHsgbV9taW51dGUgPSBtaW51dGU7IH0KICAgICBpbmxpbmUgdm9p
ZCBzZXRTZWNvbmQoaW50IHNlY29uZCkgeyBtX3NlY29uZCA9IHNlY29uZDsgfQotICAgIGlubGlu
ZSB2b2lkIHNldFV0Y09mZnNldChpbnQgdXRjT2Zmc2V0KSB7IG1fdXRjT2Zmc2V0ID0gdXRjT2Zm
c2V0OyB9CisgICAgaW5saW5lIHZvaWQgc2V0VVRDT2Zmc2V0SW5NaW51dGUoaW50IHV0Y09mZnNl
dEluTWludXRlKSB7IG1fdXRjT2Zmc2V0SW5NaW51dGUgPSB1dGNPZmZzZXRJbk1pbnV0ZTsgfQog
ICAgIGlubGluZSB2b2lkIHNldElzRFNUKGludCBpc0RTVCkgeyBtX2lzRFNUID0gaXNEU1Q7IH0K
IAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZZZWFyKCkgeyByZXR1cm4gT0JKRUNUX09G
RlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX3llYXIpOyB9CisgICAgc3RhdGljIHB0cmRpZmZf
dCBvZmZzZXRPZk1vbnRoKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVU
aW1lLCBtX21vbnRoKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZZZWFyRGF5KCkg
eyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX3llYXJEYXkpOyB9
CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk1vbnRoRGF5KCkgeyByZXR1cm4gT0JKRUNU
X09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX21vbnRoRGF5KTsgfQorICAgIHN0YXRpYyBw
dHJkaWZmX3Qgb2Zmc2V0T2ZXZWVrRGF5KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdv
cmlhbkRhdGVUaW1lLCBtX3dlZWtEYXkpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRP
ZkhvdXIoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoR3JlZ29yaWFuRGF0ZVRpbWUsIG1faG91
cik7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mTWludXRlKCkgeyByZXR1cm4gT0JK
RUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX21pbnV0ZSk7IH0KKyAgICBzdGF0aWMg
cHRyZGlmZl90IG9mZnNldE9mU2Vjb25kKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdv
cmlhbkRhdGVUaW1lLCBtX3NlY29uZCk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9m
VVRDT2Zmc2V0SW5NaW51dGUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoR3JlZ29yaWFuRGF0
ZVRpbWUsIG1fdXRjT2Zmc2V0SW5NaW51dGUpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZz
ZXRPZklzRFNUKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBt
X2lzRFNUKTsgfQorCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0VG9DdXJyZW50TG9j
YWxUaW1lKCk7CiAKICAgICBvcGVyYXRvciB0bSgpIGNvbnN0CkBAIC04OCwzNyArODgsMjMgQEAg
Y2xhc3MgR3JlZ29yaWFuRGF0ZVRpbWUgZmluYWwgewogICAgICAgICByZXQudG1faXNkc3QgPSBt
X2lzRFNUOwogCiAjaWYgSEFWRShUTV9HTVRPRkYpCi0gICAgICAgIHJldC50bV9nbXRvZmYgPSBz
dGF0aWNfY2FzdDxsb25nPihtX3V0Y09mZnNldCk7CisgICAgICAgIHJldC50bV9nbXRvZmYgPSBz
dGF0aWNfY2FzdDxsb25nPihtX3V0Y09mZnNldEluTWludXRlKSAqIHN0YXRpY19jYXN0PGxvbmc+
KHNlY29uZHNQZXJNaW51dGUpOwogI2VuZGlmCiAKICAgICAgICAgcmV0dXJuIHJldDsKICAgICB9
CiAKLSAgICB2b2lkIGNvcHlGcm9tKGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lJiBvdGhlcikKLSAg
ICB7Ci0gICAgICAgIG1feWVhciA9IG90aGVyLm1feWVhcjsKLSAgICAgICAgbV9tb250aCA9IG90
aGVyLm1fbW9udGg7Ci0gICAgICAgIG1feWVhckRheSA9IG90aGVyLm1feWVhckRheTsKLSAgICAg
ICAgbV9tb250aERheSA9IG90aGVyLm1fbW9udGhEYXk7Ci0gICAgICAgIG1fd2Vla0RheSA9IG90
aGVyLm1fd2Vla0RheTsKLSAgICAgICAgbV9ob3VyID0gb3RoZXIubV9ob3VyOwotICAgICAgICBt
X21pbnV0ZSA9IG90aGVyLm1fbWludXRlOwotICAgICAgICBtX3NlY29uZCA9IG90aGVyLm1fc2Vj
b25kOwotICAgICAgICBtX3V0Y09mZnNldCA9IG90aGVyLm1fdXRjT2Zmc2V0OwotICAgICAgICBt
X2lzRFNUID0gb3RoZXIubV9pc0RTVDsKLSAgICB9Ci0KIHByaXZhdGU6Ci0gICAgaW50IG1feWVh
cjsKLSAgICBpbnQgbV9tb250aDsKLSAgICBpbnQgbV95ZWFyRGF5OwotICAgIGludCBtX21vbnRo
RGF5OwotICAgIGludCBtX3dlZWtEYXk7Ci0gICAgaW50IG1faG91cjsKLSAgICBpbnQgbV9taW51
dGU7Ci0gICAgaW50IG1fc2Vjb25kOwotICAgIGludCBtX3V0Y09mZnNldDsKLSAgICBpbnQgbV9p
c0RTVDsKKyAgICBpbnQgbV95ZWFyIHsgMCB9OworICAgIGludCBtX21vbnRoIHsgMCB9OworICAg
IGludCBtX3llYXJEYXkgeyAwIH07CisgICAgaW50IG1fbW9udGhEYXkgeyAwIH07CisgICAgaW50
IG1fd2Vla0RheSB7IDAgfTsKKyAgICBpbnQgbV9ob3VyIHsgMCB9OworICAgIGludCBtX21pbnV0
ZSB7IDAgfTsKKyAgICBpbnQgbV9zZWNvbmQgeyAwIH07CisgICAgaW50IG1fdXRjT2Zmc2V0SW5N
aW51dGUgeyAwIH07CisgICAgaW50IG1faXNEU1QgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01I
VE1MQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRN
TEFyY2hpdmUuY3BwCmluZGV4IGM5OTdiMzE4NjdkMzgwZDI4OTBjZWUyYmY1NTFkYjlkNDcxMDhk
MjUuLjEwNmE3ZjhmOWI0MWUwNDM4YTAzNjc0NWJhOWNkN2FmZGFlZThmZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcApA
QCAtMTQxLDcgKzE0MSw3IEBAIFJlZjxTaGFyZWRCdWZmZXI+IE1IVE1MQXJjaGl2ZTo6Z2VuZXJh
dGVNSFRNTERhdGEoUGFnZSogcGFnZSkKIAogICAgIEdyZWdvcmlhbkRhdGVUaW1lIG5vdzsKICAg
ICBub3cuc2V0VG9DdXJyZW50TG9jYWxUaW1lKCk7Ci0gICAgU3RyaW5nIGRhdGVTdHJpbmcgPSBt
YWtlUkZDMjgyMkRhdGVTdHJpbmcobm93LndlZWtEYXkoKSwgbm93Lm1vbnRoRGF5KCksIG5vdy5t
b250aCgpLCBub3cueWVhcigpLCBub3cuaG91cigpLCBub3cubWludXRlKCksIG5vdy5zZWNvbmQo
KSwgbm93LnV0Y09mZnNldCgpIC8gNjApOworICAgIFN0cmluZyBkYXRlU3RyaW5nID0gbWFrZVJG
QzI4MjJEYXRlU3RyaW5nKG5vdy53ZWVrRGF5KCksIG5vdy5tb250aERheSgpLCBub3cubW9udGgo
KSwgbm93LnllYXIoKSwgbm93LmhvdXIoKSwgbm93Lm1pbnV0ZSgpLCBub3cuc2Vjb25kKCksIG5v
dy51dGNPZmZzZXRJbk1pbnV0ZSgpKTsKIAogICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nQnVpbGRl
cjsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgiRnJvbTogPFNhdmVkIGJ5IFdlYktpdD5cclxu
Iik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDZhY2Q0YTI2N2U4YTQ0YmRiOGRiY2RjNjkyY2Y5Y2QwNDQ1ZjdkY2UuLjg1Y2YyZjA5Nzgx
ZTk0MjU4MDIxMGQzZjQxZmExZDE4MzE5YTQ3NjUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMTktMTAtMjgg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBEYXRl
IGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBpbnRyaW5zaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LWRhdGUtaml0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0
cmVzcy9kYXRlLWdldC1kYXktaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC1mdWxsLXllYXItaml0Lmpz
OiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHN0cmVzcy9kYXRlLWdldC1ob3Vycy1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUp
OgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LW1pbGxpc2Vjb25k
cy1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LW1pbnV0ZXMtaml0LmpzOiBBZGRlZC4KKyAgICAgICAg
KHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC1t
b250aC1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXNlY29uZHMtaml0LmpzOiBBZGRlZC4KKyAgICAg
ICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdl
dC10aW1lLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdGltZXpvbmUtb2Zmc2V0LWppdC5qczogQWRk
ZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJl
c3MvZGF0ZS1nZXQtdXRjLWRhdGUtaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToK
KyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC11dGMtZGF5LWppdC5q
czogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KiBzdHJlc3MvZGF0ZS1nZXQtdXRjLWZ1bGwteWVhci1qaXQuanM6IEFkZGVkLgorICAgICAgICAo
c2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXV0
Yy1ob3Vycy1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXV0Yy1taWxsaXNlY29uZHMtaml0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0
cmVzcy9kYXRlLWdldC11dGMtbWludXRlcy1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxk
QmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXV0Yy1tb250
aC1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXV0Yy1zZWNvbmRzLWppdC5qczogQWRkZWQuCisgICAg
ICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1n
ZXQteWVhci1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtdmFsdWUtb2Ytaml0LmpzOiBBZGRlZC4KKyAgICAg
ICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorCiAyMDE5LTEwLTI4ICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gT3B0aW1pemUgUHJvbWlz
ZSBydW50aW1lIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQt
ZGF0ZS1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1kYXRlLWppdC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mNDNlN2JlZTIxNmIyOWZkYTZiOTg4MDI5MWJjYTRmYmM2YTI2MzQyCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF0ZS1qaXQuanMKQEAgLTAsMCArMSwx
OSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyAr
IGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdl
dERhdGUoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2
YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldERhdGUo
KTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRh
dGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRl
c3QoZCksIGQuZ2V0RGF0ZSgpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwg
dHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1kYXktaml0Lmpz
IGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF5LWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjU3NzMx
NDgyYzEwNTc1YWE4N2E5YmU4ZmI2ZTc2ZTQzMDZjMTcxCi0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF5LWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlv
biBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0
ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30K
KworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0RGF5KCk7Cit9Citu
b0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBu
ZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXREYXkoKTsKK2ZvciAodmFyIGkg
PSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7
CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0RGF5
KCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LWZ1bGwteWVhci1qaXQuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9kYXRlLWdldC1mdWxsLXllYXItaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMzhiYjFmODFk
MDMwNmM5ZDA3NzIzYWI1MjFhZjBhZGZmYjJmZDgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9kYXRlLWdldC1mdWxsLXllYXItaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBl
Y3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwor
fQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigp
OworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZh
bGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0RnVsbFllYXIoKTsK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUp
LCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3Qo
ZCksIGQuZ2V0RnVsbFllYXIoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSks
IHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtaG91cnMtaml0
LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtaG91cnMtaml0LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdm
Mjg3MDRjZmU2ZGJiNTIwN2NmOWEyNmVhMGEwYWNjNDkxZGU3M2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1ob3Vycy1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAor
ZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVh
bCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldEhvdXJz
KCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGlu
dmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRIb3VycygpOwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSks
IGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChk
KSwgZC5nZXRIb3VycygpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1
ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1taWxsaXNlY29uZHMt
aml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtbWlsbGlzZWNvbmRzLWppdC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNDkwOWNmMjMwNzc4OGQyZjNlNDFiN2M4ZGQ3ZmU4YWRhZjc4NDllCi0tLSAvZGV2
L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtbWlsbGlzZWNvbmRzLWppdC5qcwpA
QCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFk
IHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0
dXJuIGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRh
dGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVj
dGVkID0gZGF0ZS5nZXRNaWxsaXNlY29uZHMoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyAr
K2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBu
ZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0TWlsbGlzZWNvbmRzKCkpOwor
ICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LW1pbnV0ZXMtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3Mv
ZGF0ZS1nZXQtbWludXRlcy1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y0Nzc0YTFkOGVhZTUyYjA2ZmNk
ODg2ZmJlMTQ2OWJiMzgwNDYwNwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Rh
dGUtZ2V0LW1pbnV0ZXMtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlv
biB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRNaW51dGVzKCk7Cit9Citub0lubGlu
ZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0
ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRNaW51dGVzKCk7Citmb3IgKHZhciBpID0g
MDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOwor
ICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldE1pbnV0
ZXMoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtbW9udGgtaml0LmpzIGIvSlNUZXN0cy9z
dHJlc3MvZGF0ZS1nZXQtbW9udGgtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0NWRjMWFiNmVlMzI3YzY3
YjdhMWY3ZDE3ODRiYWZmODg1NmVlN2MKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy9kYXRlLWdldC1tb250aC1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxk
QmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0
aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCk7Cit9Citub0lubGlu
ZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0
ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRNb250aCgpOworZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAg
ICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRNb250aCgp
KTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1zZWNvbmRzLWppdC5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2RhdGUtZ2V0LXNlY29uZHMtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmNDc2Y2JhNDhkNTdmODE4
YWM3ZGNhNGIzMjJlYjk3ZmQ3ZmViZDkKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy9kYXRlLWdldC1zZWNvbmRzLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91
bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVu
Y3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0U2Vjb25kcygpOworfQorbm9J
bmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3
IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0U2Vjb25kcygpOworZm9yICh2YXIg
aSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVk
KTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRT
ZWNvbmRzKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30K
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXRpbWUtaml0LmpzIGIvSlNUZXN0
cy9zdHJlc3MvZGF0ZS1nZXQtdGltZS1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThlMTY0MWVmODk3Y2E0
OGQ2N2FiN2JhYzY5MzM3OTdkYzUyZDVhNwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL2RhdGUtZ2V0LXRpbWUtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3Vs
ZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5j
dGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCk7Cit9Citub0lubGlu
ZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0
ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRUaW1lKCk7Citmb3IgKHZhciBpID0gMDsg
aSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAg
IHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldFRpbWUoKSk7
CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdGltZXpvbmUtb2Zmc2V0LWppdC5qcyBiL0pTVGVz
dHMvc3RyZXNzL2RhdGUtZ2V0LXRpbWV6b25lLW9mZnNldC1qaXQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRm
Nzc3MjYwN2YyY2I1MjExMjIzMDE2YjMzODFkYzNiMDg4ZDI4ZgotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXRpbWV6b25lLW9mZnNldC1qaXQuanMKQEAgLTAsMCAr
MSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChh
Y3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTog
JyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRl
LmdldFRpbWV6b25lT2Zmc2V0KCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBu
ZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0g
ZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkg
eworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBE
YXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRUaW1lem9uZU9mZnNldCgpKTsKKyAg
ICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtZGF0ZS1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9k
YXRlLWdldC11dGMtZGF0ZS1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBlMTUyZDk2OWQ2NmQzZWU4MWIx
NWYzNWMzYTM3ZjcyNTBiYzU2ZAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Rh
dGUtZ2V0LXV0Yy1kYXRlLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRC
ZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rp
b24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VVRDRGF0ZSgpOworfQorbm9Jbmxp
bmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERh
dGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0VVRDRGF0ZSgpOworZm9yICh2YXIgaSA9
IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsK
KyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRVVENE
YXRlKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1kYXktaml0LmpzIGIvSlNUZXN0
cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLWRheS1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYzYWNjYzRmMDVm
NmRmOTlhMDczNmExZjAwOGQzYTkzMTQyYTNkYwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
c3RyZXNzL2RhdGUtZ2V0LXV0Yy1kYXktaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3Rl
ZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQor
CitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRVVENEYXkoKTsKK30K
K25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9
IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFVUQ0RheSgpOworZm9yICh2
YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVj
dGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5n
ZXRVVENEYXkoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOwor
fQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLWZ1bGwteWVhci1qaXQu
anMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtZnVsbC15ZWFyLWppdC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iN2FkNjNlMmViYjY3NDk5YmRmMjVlN2M5MTM5ZjFkY2IyZTY3Y2QxCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLWZ1bGwteWVhci1qaXQuanMKQEAg
LTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAg
IGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2
YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVy
biBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUg
PSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVk
ID0gZGF0ZS5nZXRVVENGdWxsWWVhcigpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkg
eworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBE
YXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRVVENGdWxsWWVhcigpKTsKKyAgICBz
aG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9kYXRlLWdldC11dGMtaG91cnMtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0
ZS1nZXQtdXRjLWhvdXJzLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzVkZDc0MDkxZTM3NWNjMzJmNTg4
NzViZTUwNmM5Y2RjNmI4ZWM0Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0
ZS1nZXQtdXRjLWhvdXJzLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRC
ZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rp
b24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VVRDSG91cnMoKTsKK30KK25vSW5s
aW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBE
YXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFVUQ0hvdXJzKCk7Citmb3IgKHZhciBp
ID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQp
OworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldFVU
Q0hvdXJzKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30K
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1taWxsaXNlY29uZHMtaml0
LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1pbGxpc2Vjb25kcy1qaXQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmM3NDIxZTIzODJhMzljZTY3MWI3NjM2NDQ1Yzc2ZWM0YTUxY2IxNwotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1taWxsaXNlY29uZHMtaml0
LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAg
ICByZXR1cm4gZGF0ZS5nZXRVVENNaWxsaXNlY29uZHMoKTsKK30KK25vSW5saW5lKHRlc3QpOwor
Cit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2
YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFVUQ01pbGxpc2Vjb25kcygpOworZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAg
ICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRVVENNaWxs
aXNlY29uZHMoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOwor
fQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1pbnV0ZXMtaml0Lmpz
IGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1pbnV0ZXMtaml0LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU5MjYzYzVmZDE3MjNhMjJlYjIwNjI0OWRiZTcwNTQ0Mzg5NzdkNjEKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtbWludXRlcy1qaXQuanMKQEAgLTAsMCAr
MSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChh
Y3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTog
JyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRl
LmdldFVUQ01pbnV0ZXMoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBE
YXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRl
LmdldFVUQ01pbnV0ZXMoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBz
aG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOwor
ICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0VVRDTWludXRlcygpKTsKKyAgICBzaG91bGRCZShp
c05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9kYXRlLWdldC11dGMtbW9udGgtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRj
LW1vbnRoLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NmJjNTI0MDdjODY3ODZmODQzNzA5NDQwNWJlOGEy
MWNmZjhkMmY5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRj
LW1vbnRoLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWws
IGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChk
YXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VVRDTW9udGgoKTsKK30KK25vSW5saW5lKHRlc3Qp
OworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7
Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFVUQ01vbnRoKCk7Citmb3IgKHZhciBpID0gMDsgaSA8
IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZh
ciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldFVUQ01vbnRoKCkp
OworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1zZWNvbmRzLWppdC5qcyBiL0pTVGVzdHMv
c3RyZXNzL2RhdGUtZ2V0LXV0Yy1zZWNvbmRzLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzg3YzMwZDI5
ZTc4ZjY3ZGFiNzc3NzNlNTcxMTMwMGIzNDBlMDA3Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLXNlY29uZHMtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBl
eHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwp
OworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRVVENTZWNv
bmRzKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFy
IGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRVVENTZWNv
bmRzKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVz
dChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRC
ZSh0ZXN0KGQpLCBkLmdldFVUQ1NlY29uZHMoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChp
bnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQt
eWVhci1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC15ZWFyLWppdC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43ZTE2YjgzNWEwNmRkMzI5YjY3YWQ4OWZiOTA2N2E4NmMxNjk3NDliCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQteWVhci1qaXQuanMKQEAgLTAsMCArMSwx
OSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1
YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyAr
IGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdl
dFllYXIoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2
YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFllYXIo
KTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRh
dGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRl
c3QoZCksIGQuZ2V0WWVhcigpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwg
dHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLXZhbHVlLW9mLWppdC5q
cyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtdmFsdWUtb2Ytaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMzkz
OGI0NjhhN2Q3NGZjN2RiZjdlMmVlYTc3OWU2OGEyYzA3ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3N0cmVzcy9kYXRlLXZhbHVlLW9mLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5j
dGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhw
ZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsK
K30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUudmFsdWVPZigpOwor
fQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlk
ID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUudmFsdWVPZigpOworZm9yICh2
YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVj
dGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC52
YWx1ZU9mKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382273</attachid>
            <date>2019-10-29 20:38:25 -0700</date>
            <delta_ts>2019-10-29 20:49:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202187-20191029203824.patch</filename>
            <type>text/plain</type>
            <size>126718</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YmVkMjQyMGM1ZmI1NWJiYTEzNGYwNjc1NTM1NzFlZjgxNmI1OWRiLi44MjRiYWZjNDA4M2E4MmNh
NTg2MzZlN2FlNWE1OWYzOTFhZDQ0YmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjQgQEAKKzIwMTktMTAtMjkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBEYXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBpbnRyaW5zaWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE4Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBpbnRyaW5zaWMgdG8gRGF0ZSBvYmplY3QgZ2V0dGVyIGZ1bmN0aW9ucyB0byBtYWtl
IGl0IGlubGluZWQgaW4gREZHIGFuZCBGVEwuCisgICAgICAgIFdlIGFkZCB0d28gREZHIG5vZGVz
LCBEYXRlR2V0SlNOdW1iZXIgYW5kIERhdGVHZXRNYWNoaW5lRG91YmxlLiBEYXRlR2V0TWFjaGlu
ZURvdWJsZSBpcyB1c2VkIHdoZW4gd2Uga25vdworICAgICAgICB0aGF0IHRoZSByZXN1bHQgaXMg
YWx3YXlzIG1hY2hpbmUgZG91YmxlLiBPbiB0aGUgb3RoZXIgaGFuZCwgRGF0ZUdldEpTTnVtYmVy
IGlzIHVzZWQgd2hlbiB0aGUgcmVzdWx0IGlzIEludDMyIG9yIE5hTi4KKworICAgICAgICBSdW4g
U3VuU3BpZGVyIDEwMCB0aW1lcyBhbmQgZ2V0IHRoZSBzb2xpZCBpbXByb3ZlbWVudCBpbiBEYXRl
IHJlbGF0ZWQgYmVuY2htYXJrcy4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVG9UICAgICAgICAgICAgICAgICAgICAgUGF0Y2hlZAorCisgICAgICAgICAgICBk
YXRlLWZvcm1hdC10b2Z0ZSAgICAgICAgNS4zNTExKy0wLjAyNjAgICAgIF4gICAgICA1LjI3NDcr
LTAuMDI3MyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDE0NXggZmFzdGVyCisgICAgICAgICAgICBk
YXRlLWZvcm1hdC14cGFyYiAgICAgICAgNC45MTk2Ky0wLjAyNjUgICAgIF4gICAgICA0LjcwNjcr
LTAuMDIwMCAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDQ1MnggZmFzdGVyCisKKyAgICAgICAgKiBi
eXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgIChKU0M6OmR1bXBTcGVjdWxhdGlv
bik6CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyk6CisgICAgICAgIChK
U0M6OnNwZWN1bGF0aW9uRnJvbUpTVHlwZSk6CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJv
bVN0cmluZyk6CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaDoKKyAgICAgICAg
KiBkZmcvREZHQWJzdHJhY3RIZWFwLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVJbnRyaW5zaWNDYWxsKToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAg
ICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAg
ICogZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZHVtcCk6Cisg
ICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50
ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uaDoKKyAgICAgICAgKiBkZmcv
REZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc0ludHJpbnNpYyk6CisgICAg
ICAgIChKU0M6OkRGRzo6Tm9kZTo6aW50cmluc2ljKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2Rl
OjpoYXNIZWFwUHJlZGljdGlvbik6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAg
ICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25z
Lmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAg
ICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVU
b0V4ZWN1dGVFZGdlOjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVj
dXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVEYXRlT2JqZWN0KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVEYXRlR2V0KToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5jcHA6CisgICAgICAgIChX
VEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdVc2VLaW5kLmg6CisgICAgICAg
IChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAgICAgIChKU0M6OkRGRzo6aXNDZWxsKToK
KyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHA6CisgICAgICAgICog
ZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBm
dGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlRGF0ZUdldCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
Omxvd0RhdGVPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpz
cGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxh
dGVEYXRlT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6Zm9ybWF0RGF0ZVRpbWUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3Rh
bmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5E
YXRlVGltZSBjb25zdCk6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3Jl
Z29yaWFuRGF0ZVRpbWVVVEMgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNl
Lmg6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oOgorICAgICAgICAoSlND
OjpEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMp
OgorICAgICAgICAoSlNDOjpEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlh
bkRhdGVUaW1lKToKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVn
b3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKToKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQyk6CisgICAgICAgIChKU0M6
OkRhdGVJbnN0YW5jZURhdGE6OkRhdGVJbnN0YW5jZURhdGEpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmZvcm1hdExvY2FsZURh
dGUpOgorICAgICAgICAoSlNDOjpmb3JtYXRlRGF0ZUluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dl
dEZ1bGxZZWFyKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyKToK
KyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldE1vbnRoKToKKyAgICAgICAgKEpTQzo6ZGF0
ZVByb3RvRnVuY0dldFVUQ01vbnRoKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldERh
dGUpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZSk6CisgICAgICAgIChK
U0M6OmRhdGVQcm90b0Z1bmNHZXREYXkpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0
VVRDRGF5KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldEhvdXJzKToKKyAgICAgICAg
KEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3Rv
RnVuY0dldE1pbnV0ZXMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRl
cyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRTZWNvbmRzKToKKyAgICAgICAgKEpT
Qzo6ZGF0ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9G
dW5jR2V0TWlsbGlTZWNvbmRzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ01p
bGxpc2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNl
dCk6CisgICAgICAgIChKU0M6OnNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKToKKyAgICAgICAgKEpT
Qzo6c2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3MpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5j
U2V0WWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRZZWFyKToKKyAgICAgICAg
KiBydW50aW1lL0ludHJpbnNpYy5jcHA6CisgICAgICAgIChKU0M6OmludHJpbnNpY05hbWUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSW50cmluc2ljLmg6CisgICAgICAgICogcnVudGltZS9KU0RhdGVN
YXRoLmNwcDoKKyAgICAgICAgKEpTQzo6bXNUb0dyZWdvcmlhbkRhdGVUaW1lKToKKyAgICAgICAg
KiBydW50aW1lL0pTVHlwZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNUeXBlLmg6CisKIDIwMTktMTAtMDcgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHRoZSBSZW1vdGUgUGxheWJhY2sg
QVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCA2YTBlOGEzMDFmNjIxN2QzY2U2NGU4ZDFkMzNmNTQ5MjdkM2ViOGE4Li5lYWM5
OTM1ZmNmYmY4ZDgwMTA4ODBjMTlkNDRhMzg3ZjgyMzEzMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDE5LTEwLTI5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0pTQ10gRGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGhhdmUgaW50cmluc2ljCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxODcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9EYXRlTWF0aC5oOgor
ICAgICAgICAqIHd0Zi9HcmVnb3JpYW5EYXRlVGltZS5jcHA6CisgICAgICAgIChXVEY6OkdyZWdv
cmlhbkRhdGVUaW1lOjpzZXRUb0N1cnJlbnRMb2NhbFRpbWUpOgorICAgICAgICAqIHd0Zi9HcmVn
b3JpYW5EYXRlVGltZS5oOgorCiAyMDE5LTEwLTI5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gQWRkIGZhc3QgcGF0aCBmb3IgU3RyaW5nI2xvY2Fs
ZUNvbXBhcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYjE1YmE5N2I4MGJiNDAxYjEyNjcwN2RmYjVlYTI4NTZm
Y2FmMzUzLi4yMWUyYzgwOGUyNDc4MGM1MzBmNTg1ZDY0ZjZiZDdkNzIzZmQxNzJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMTAtMjkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtp
QGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBEYXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBp
bnRyaW5zaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMjE4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEpOgorCiAyMDE5LTEwLTI5ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgW1NWRzJd
IFNWR1N5bWJvbEVsZW1lbnQgc2hvdWxkIGluaGVyaXRzIFNWR0dyYXBoaWNzRWxlbWVudApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKaW5k
ZXggODQ0MzhlMzkzNWUyNzIwMjFmMDlkMjUxYzU5Zjc4OWE5MmRmOTgyMS4uNDE5ZWViZDhkZDk1
ODE2NzBkMmYwMGFiZTAzYTBlZWM5ZWU2ZDU5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU3BlY3VsYXRlZFR5cGUuaCIKIAorI2luY2x1ZGUg
IkRhdGVJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUg
IkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0JpZ0ludC5oIgpAQCAtMTc0LDYgKzE3NSwxMSBAQCB2
b2lkIGR1bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYgb3V0U3RyZWFtLCBTcGVjdWxhdGVkVHlw
ZSB2YWx1ZSkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNl
OwogCisgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVjRGF0ZU9iamVjdCkKKyAgICAgICAgICAg
ICAgICBzdHJPdXQucHJpbnQoIkRhdGVPYmplY3QiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBpc1RvcCA9IGZhbHNlOworCiAgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVj
UHJvbWlzZU9iamVjdCkKICAgICAgICAgICAgICAgICBzdHJPdXQucHJpbnQoIlByb21pc2VPYmpl
Y3QiKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTQ0NSw2ICs0NTEsOSBAQCBTcGVjdWxhdGVkVHlw
ZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAg
ICAgaWYgKGNsYXNzSW5mbyA9PSBSZWdFeHBPYmplY3Q6OmluZm8oKSkKICAgICAgICAgcmV0dXJu
IFNwZWNSZWdFeHBPYmplY3Q7CiAKKyAgICBpZiAoY2xhc3NJbmZvID09IERhdGVJbnN0YW5jZTo6
aW5mbygpKQorICAgICAgICByZXR1cm4gU3BlY0RhdGVPYmplY3Q7CisKICAgICBpZiAoY2xhc3NJ
bmZvID09IEpTTWFwOjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjTWFwT2JqZWN0OwogCkBA
IC01OTQsNiArNjAzLDggQEAgT3B0aW9uYWw8U3BlY3VsYXRlZFR5cGU+IHNwZWN1bGF0aW9uRnJv
bUpTVHlwZShKU1R5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIFNwZWNEZXJpdmVkQXJyYXk7CiAg
ICAgY2FzZSBSZWdFeHBPYmplY3RUeXBlOgogICAgICAgICByZXR1cm4gU3BlY1JlZ0V4cE9iamVj
dDsKKyAgICBjYXNlIEpTRGF0ZVR5cGU6CisgICAgICAgIHJldHVybiBTcGVjRGF0ZU9iamVjdDsK
ICAgICBjYXNlIFByb3h5T2JqZWN0VHlwZToKICAgICAgICAgcmV0dXJuIFNwZWNQcm94eU9iamVj
dDsKICAgICBjYXNlIEpTUHJvbWlzZVR5cGU6CkBAIC04MTQsNiArODI1LDggQEAgU3BlY3VsYXRl
ZFR5cGUgc3BlY3VsYXRpb25Gcm9tU3RyaW5nKGNvbnN0IGNoYXIqIHNwZWN1bGF0aW9uKQogICAg
ICAgICByZXR1cm4gU3BlY1N0cmluZ09iamVjdDsKICAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRp
b24sICJTcGVjUmVnRXhwT2JqZWN0Iiwgc3RybGVuKCJTcGVjUmVnRXhwT2JqZWN0IikpKQogICAg
ICAgICByZXR1cm4gU3BlY1JlZ0V4cE9iamVjdDsKKyAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRp
b24sICJTcGVjRGF0ZU9iamVjdCIsIHN0cmxlbigiU3BlY0RhdGVPYmplY3QiKSkpCisgICAgICAg
IHJldHVybiBTcGVjRGF0ZU9iamVjdDsKICAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRpb24sICJT
cGVjUHJvbWlzZU9iamVjdCIsIHN0cmxlbigiU3BlY1Byb21pc2VPYmplY3QiKSkpCiAgICAgICAg
IHJldHVybiBTcGVjUHJvbWlzZU9iamVjdDsKICAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRpb24s
ICJTcGVjTWFwT2JqZWN0Iiwgc3RybGVuKCJTcGVjTWFwT2JqZWN0IikpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAppbmRleCBiMTE1M2I0N2Qy
ZmQzYTU5ZWUzZmNmZmIwZjNiYmYzOWIwMTUxOTViLi5hMTEyMzhjMTk4YTM3MjhhY2EwMmVlOTUz
MzE3ZDA5MmYxMGIzNzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3BlY3VsYXRlZFR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3BlY3VsYXRlZFR5cGUuaApAQCAtNTgsMzIgKzU4LDMzIEBAIHN0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0RpcmVjdEFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1Njb3BlZEFyZ3VtZW50cyAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNjb3Bl
ZEFyZ3VtZW50cyBvYmplY3QuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNT
dHJpbmdPYmplY3QgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE1OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBTdHJpbmdPYmplY3QuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNSZWdFeHBPYmplY3QgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE2OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBSZWdFeHBPYmplY3QgKGFuZCBub3QgYW55IHN1YmNsYXNzIG9mIFJl
Z0V4cE9iamVjdCkuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm9taXNl
T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE3OyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBQcm9taXNlIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29u
c3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9yIG9uZSBv
ZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1Nl
dE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTk7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha01hcE9iamVjdCAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAyMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha01hcCBvYmplY3Qgb3Ig
b25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjV2Vha1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMTsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgV2Vha1NldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgot
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJveHkgb2Jq
ZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY0Rlcml2ZWRBcnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjM7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIERlcml2ZWRBcnJheSBvYmplY3QuCi1zdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDI0OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5h
bE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MjU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVy
Lgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJp
bmcsIGFuZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxh
dGVkVHlwZSBTcGVjRGF0ZU9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAx
NzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGF0ZSBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFz
c2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjUHJvbWlzZU9iamVjdCAg
ICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJv
bWlzZSBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjTWFwT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVs
bCA8PCAxOTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTWFwIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1
YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTZXRPYmplY3Qg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkg
YSBTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY1dlYWtNYXBPYmplY3QgICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMjE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFdlYWtNYXAgb2JqZWN0IG9yIG9uZSBvZiBp
dHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1dlYWtT
ZXRPYmplY3QgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIFdlYWtTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1Byb3h5T2JqZWN0ICAgICAgICAgICAgICAgICAg
ICAgICA9IDF1bGwgPDwgMjM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb3h5IG9iamVjdCBvciBv
bmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNw
ZWNEZXJpdmVkQXJyYXkgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI0OyAvLyBJdCdz
IGRlZmluaXRlbHkgYSBEZXJpdmVkQXJyYXkgb2JqZWN0Lgorc3RhdGljIGNvbnN0ZXhwciBTcGVj
dWxhdGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmplY3Qs
IEpTQXJyYXksIG9yIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNTdHJpbmdJZGVudCAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3MgYW4gaWRlbnRpZmllci4KK3N0YXRp
YyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDF1bGwgPDwgMjc7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQg
aXQncyBub3QgYW4gaWRlbnRpZmllci4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNTdHJpbmdJZGVudCB8
IFNwZWNTdHJpbmdWYXI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLgotc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3ltYm9sLgotc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBz
dWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZywgQmlnSW50
LCBvciBTeW1ib2wuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50
MzIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI5OyAvLyBJdCdzIGRlZmluaXRl
bHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNOb25Cb29sSW50MzIgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMw
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3Ig
MS4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1N5bWJvbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN5bWJv
bC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjk7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2Vs
bCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5kIGRlZmluaXRlbHkgbm90IGEgSlNT
dHJpbmcsIEJpZ0ludCwgb3IgU3ltYm9sLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlw
ZSBTcGVjQm9vbEludDMyICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzMDsgLy8g
SXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgMCBvciAxLgorc3RhdGljIGNvbnN0
ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uQm9vbEludDMyICAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgb3Ro
ZXIgdGhhbiAwIG9yIDEuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQz
Mk9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQm9vbEludDMyIHwgU3BlY05vbkJv
b2xJbnQzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyLgogCi1zdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMkFzSW50NTIgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDMxOyAvLyBJdCdzIGFuIEludDUyIGFuZCBpdCBjYW4gZml0IGluIGFuIGludDMyLgot
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50MzJBc0ludDUyICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQncyBhbiBJbnQ1MiBhbmQgaXQgY2FuJ3Qg
Zml0IGluIGFuIGludDMyLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50
MzJBc0ludDUyICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQncyBhbiBJ
bnQ1MiBhbmQgaXQgY2FuIGZpdCBpbiBhbiBpbnQzMi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY05vbkludDMyQXNJbnQ1MiAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MzM7IC8vIEl0J3MgYW4gSW50NTIgYW5kIGl0IGNhbid0IGZpdCBpbiBhbiBpbnQzMi4KIHN0YXRp
YyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDUyQW55ICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IFNwZWNJbnQzMkFzSW50NTIgfCBTcGVjTm9uSW50MzJBc0ludDUyOyAvLyBJdCdz
IGFueSBraW5kIG9mIEludDUyLgogCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNw
ZWNBbnlJbnRBc0RvdWJsZSAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMzOyAvLyBJdCdz
IGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgotc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50QXNEb3VibGUgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQ1MiBidXQgaXQn
cyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgorc3RhdGljIGNvbnN0ZXhwciBTcGVj
dWxhdGVkVHlwZSBTcGVjQW55SW50QXNEb3VibGUgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBpdCdzIGluc2lkZSBhIGRvdWJs
ZS4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91YmxlICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzU7IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4g
SW50NTIgYnV0IGl0J3MgYSByZWFsIG51bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KIHN0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVJlYWwgICAgICAgICAgICAgICAgICAg
ICAgICA9IFNwZWNOb25JbnRBc0RvdWJsZSB8IFNwZWNBbnlJbnRBc0RvdWJsZTsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgbm9uLU5hTiBkb3VibGUuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRU
eXBlIFNwZWNEb3VibGVQdXJlTmFOICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM1OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBzYWZlIHRvIHRhZyAoaS5lLiBwdXJlKS4K
LXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZUltcHVyZU5hTiAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0
IGlzIHVuc2FmZSB0byB0YWcgKGkuZS4gaW1wdXJlKS4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY0RvdWJsZVB1cmVOYU4gICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MzY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHNhZmUgdG8gdGFnIChpLmUuIHB1
cmUpLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFO
ICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFO
IHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgogc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlTmFOICAgICAgICAgICAgICAgICAgICAgICAgID0gU3Bl
Y0RvdWJsZVB1cmVOYU4gfCBTcGVjRG91YmxlSW1wdXJlTmFOOyAvLyBJdCdzIGRlZmluaXRlbHkg
c29tZSBraW5kIG9mIE5hTi4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0J5
dGVjb2RlRG91YmxlICAgICAgICAgICAgICAgICAgICA9IFNwZWNEb3VibGVSZWFsIHwgU3BlY0Rv
dWJsZVB1cmVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUsIGJ1
dCBpdCdzIGRlZmluaXRlbHkgbm90IGltcHVyZSBOYU4uCiBzdGF0aWMgY29uc3RleHByIFNwZWN1
bGF0ZWRUeXBlIFNwZWNGdWxsRG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRG91
YmxlUmVhbCB8IFNwZWNEb3VibGVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5h
TiBkb3VibGUuCkBAIC05MywxNCArOTQsMTQgQEAgc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjQnl0ZWNvZGVOdW1iZXIgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDMKIHN0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludEFueUZvcm1hdCAgICAgICAgICAg
ICAgICAgICAgICA9IFNwZWNJbnQ1MkFueSB8IFNwZWNJbnQzMk9ubHkgfCBTcGVjQW55SW50QXNE
b3VibGU7CiAKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxOdW1iZXIg
ICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnRBbnlGb3JtYXQgfCBTcGVjRnVsbERvdWJs
ZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIsIEludDUyLCBvciBhIERvdWJsZSwgYW5kIHRoZSBE
b3VibGUgY2FuIGJlIGltcHVyZSBOYU4uCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNCb29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM3OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlw
ZSBTcGVjT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzODsgLy8g
SXQncyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9yIFVuZGVmaW5lZC4KK3N0YXRpYyBjb25zdGV4
cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDF1bGwgPDwgMzg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCitzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDM5OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVk
Lgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTWlzYyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gU3BlY0Jvb2xlYW4gfCBTcGVjT3RoZXI7IC8vIEl0J3MgZGVmaW5p
dGVseSBlaXRoZXIgYSBib29sZWFuLCBOdWxsLCBvciBVbmRlZmluZWQuCi1zdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNFbXB0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDM5OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gZW1wdHkgdmFsdWUgbWFya2VyLgot
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQmlnSW50ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCA0MDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQmlnSW50Lgot
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRGF0YVZpZXdPYmplY3QgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCA0MTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNEYXRhVmll
dy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0
eSB2YWx1ZSBtYXJrZXIuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCaWdJ
bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDQxOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBCaWdJbnQuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEYXRh
Vmlld09iamVjdCAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDQyOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBKU0RhdGFWaWV3Lgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVj
UHJpbWl0aXZlICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY1N0cmluZyB8IFNwZWNTeW1i
b2wgfCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlzYyB8IFNwZWNCaWdJbnQ7IC8vIEl0J3Mg
YW55IG5vbi1PYmplY3QgSlNWYWx1ZS4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY09iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8
IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlvbiB8IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJl
Y3RBcmd1bWVudHMgfCBTcGVjU2NvcGVkQXJndW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNw
ZWNSZWdFeHBPYmplY3QgfCBTcGVjUHJvbWlzZU9iamVjdCB8IFNwZWNNYXBPYmplY3QgfCBTcGVj
U2V0T2JqZWN0IHwgU3BlY1dlYWtNYXBPYmplY3QgfCBTcGVjV2Vha1NldE9iamVjdCB8IFNwZWNQ
cm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBTcGVjT2JqZWN0T3RoZXIgfCBTcGVjRGF0
YVZpZXdPYmplY3Q7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3IgYW55IGtpbmQgb2Yg
b2JqZWN0IHByZWRpY3Rpb24uCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNP
YmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRmluYWxPYmplY3QgfCBTcGVj
QXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBTcGVjRGlyZWN0QXJn
dW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmplY3QgfCBTcGVjUmVn
RXhwT2JqZWN0IHwgU3BlY0RhdGVPYmplY3QgfCBTcGVjUHJvbWlzZU9iamVjdCB8IFNwZWNNYXBP
YmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1dlYWtNYXBPYmplY3QgfCBTcGVjV2Vha1NldE9i
amVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBTcGVjT2JqZWN0T3Ro
ZXIgfCBTcGVjRGF0YVZpZXdPYmplY3Q7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3Ig
YW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNDZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjT2JqZWN0
IHwgU3BlY1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyIHwgU3BlY0JpZ0ludDsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjSGVhcFRvcCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0NlbGwgfCBT
cGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlzYzsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJv
dmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUltcHVyZU5hTi4KIHN0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlVG9wICAgICAgICAgICAg
ICAgICAgICAgICA9IFNwZWNIZWFwVG9wIHwgU3BlY0VtcHR5OyAvLyBJdCBjYW4gYmUgYW55IG9m
IHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJl
TmFOLiBDb3JyZXNwb25kcyB0byB3aGF0IGNvdWxkIGJlIGZvdW5kIGluIGEgYnl0ZWNvZGUgbG9j
YWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVh
cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaAppbmRleCBh
MzA5MjlkOGIwZDY4YjE2OThmMGU0MDJmOTU2NGQ2N2Y1MjA2ZmFmLi5iZjk5Mzc3OTcwNDcwMmQ4
ZDViMjBiNmMyZjZmNzM5NWFmZTZiODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RIZWFwLmgKQEAgLTcxLDYgKzcxLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewogICAgIG1hY3JvKEhlYXBPYmplY3RDb3VudCkgLyogVXNlZCB0byByZWZsZWN0
IHRoZSBmYWN0IHRoYXQgc29tZSBhbGxvY2F0aW9ucyByZXZlYWwgb2JqZWN0IGlkZW50aXR5ICov
XAogICAgIG1hY3JvKFJlZ0V4cFN0YXRlKSBcCiAgICAgbWFjcm8oTWF0aERvdFJhbmRvbVN0YXRl
KSBcCisgICAgbWFjcm8oSlNEYXRlRmllbGRzKSBcCiAgICAgbWFjcm8oSlNNYXBGaWVsZHMpIFwK
ICAgICBtYWNybyhKU1NldEZpZWxkcykgXAogICAgIG1hY3JvKEpTV2Vha01hcEZpZWxkcykgXApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCmluZGV4IDUzNzAzMzc5NmY2YjliYTIxNGNkZmU3OWQxYjZiZjQ1MTgx
MjgwYWIuLjhiNzUyZGYxNDdhMjA5ZDExNzYwMWJmMDliM2FiZjg2Y2IwZjQ0MDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0
ZXJJbmxpbmVzLmgKQEAgLTQwNjgsNiArNDA2OCwxNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0
ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGlt
aQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIERhdGVHZXRKU051bWJlcjogewor
ICAgICAgICBzZXROb25DZWxsVHlwZUZvck5vZGUobm9kZSwgU3BlY0J5dGVjb2RlTnVtYmVyKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZTog
eworICAgICAgICBzZXROb25DZWxsVHlwZUZvck5vZGUobm9kZSwgU3BlY0Z1bGxEb3VibGUpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIERhdGFWaWV3U2V0OiB7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKaW5kZXggMjIzNDQ1YzJkOTQ1ODA3YmZjYjgxOWFlZjI1MTdmODUwZTFlMzQ0
Zi4uZTQ1MGIyZDkwNDk0ODMwZGNhZTc5MDcwOTFhY2FkNjQ1NzdhZWI5YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTMxOTUsNiAr
MzE5NSw0MSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKE5vZGUq
IGNhbGxlZSwgVmlydHVhbFJlZ2lzdGVyIHJlc3VsdCwgSQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmlu
c2ljOiB7CisgICAgICAgICAgICBpZiAoIWlzNjRCaXQoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICBpbnNlcnRDaGVja3MoKTsKKyAgICAgICAgICAgIE5vZGUq
IGJhc2UgPSBnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoMCwgcmVnaXN0ZXJPZmZzZXQp
KTsKKyAgICAgICAgICAgIHNldFJlc3VsdChhZGRUb0dyYXBoKERhdGVHZXRNYWNoaW5lRG91Ymxl
LCBPcEluZm8oaW50cmluc2ljKSwgT3BJbmZvKCksIGJhc2UpKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RnVsbFll
YXJJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50
cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNpYzoKKyAg
ICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTW9udGhJbnRyaW5zaWM6CisgICAgICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldERhdGVJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3Rv
dHlwZUdldFVUQ0RhdGVJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldERh
eUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF5SW50cmluc2lj
OgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAg
Y2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDSG91cnNJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0
ZVByb3RvdHlwZUdldE1pbnV0ZXNJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlw
ZUdldFVUQ01pbnV0ZXNJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFNl
Y29uZHNJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ1NlY29uZHNJ
bnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1pbGxpc2Vjb25kc0ludHJp
bnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTWlsbGlzZWNvbmRzSW50cmlu
c2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9mZnNldEludHJpbnNp
YzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0WWVhckludHJpbnNpYzogeworICAgICAg
ICAgICAgaWYgKCFpczY0Qml0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7CisgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KHZp
cnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KDAsIHJlZ2lzdGVyT2Zmc2V0KSk7CisgICAgICAgICAg
ICBzZXRSZXN1bHQoYWRkVG9HcmFwaChEYXRlR2V0SlNOdW1iZXIsIE9wSW5mbyhpbnRyaW5zaWMp
LCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CisKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDg6CiAgICAgICAgIGNhc2Ug
RGF0YVZpZXdHZXRVaW50ODoKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDE2OgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCBiODljMDNjMGZkMGNlZDAw
Nzk0ZGFiZGYzM2Q5NTdhZmY5M2I4ODAzLi41YzM3MGJmNjM5MmFiNzJkNDEzYzIyYmIyNTRhMmQ3
MGVlMmQwN2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2Ji
ZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApA
QCAtMTgxNCw2ICsxODE0LDEzIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRl
ZihQdXJlVmFsdWUobm9kZSwgbm9kZS0+dmFsaWRSYWRpeENvbnN0YW50KCkpKTsKICAgICAgICAg
cmV0dXJuOwogCisgICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZToKKyAgICBjYXNlIERhdGVH
ZXRKU051bWJlcjogeworICAgICAgICByZWFkKEpTRGF0ZUZpZWxkcyk7CisgICAgICAgIGRlZihI
ZWFwTG9jYXRpb24oRGF0ZUZpZWxkTG9jLCBBYnN0cmFjdEhlYXAoSlNEYXRlRmllbGRzLCBzdGF0
aWNfY2FzdDx1aW50NjRfdD4obm9kZS0+aW50cmluc2ljKCkpKSwgbm9kZS0+Y2hpbGQxKCkpLCBM
YXp5Tm9kZShub2RlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBjYXNlIERhdGFW
aWV3R2V0RmxvYXQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEludDogewogICAgICAgICByZWFkKE1p
c2NGaWVsZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDVk
MmIwNWQzZmQxOWIzOGMxYzdiODUyNmIyYzRjNTc5M2EzZDE0YjAuLmM5NGIxODI5MDQ0MDU0YzJk
NzA2OGU4M2M4OTRkMWJiMjM2ZDJkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rv
ZXNHQy5jcHAKQEAgLTI0Miw2ICsyNDIsOCBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5v
ZGUqIG5vZGUpCiAgICAgY2FzZSBGaWx0ZXJHZXRCeUlkU3RhdHVzOgogICAgIGNhc2UgRmlsdGVy
UHV0QnlJZFN0YXR1czoKICAgICBjYXNlIEZpbHRlckluQnlJZFN0YXR1czoKKyAgICBjYXNlIERh
dGVHZXRKU051bWJlcjoKKyAgICBjYXNlIERhdGVHZXRNYWNoaW5lRG91YmxlOgogICAgIGNhc2Ug
RGF0YVZpZXdHZXRJbnQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0OgogICAgIGNhc2UgRGF0
YVZpZXdTZXQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApp
bmRleCBlMWUxNjc4MjZmMzgzMDQyODFkMGEzZWNmNzg5NWNmZGRkMmE0ZjQ3Li5kMTgxNjM5Mjc3
MWE4NDM1OGYxMTdjNDg2ZTQxYTQ1NjE3OGM0NjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTIzMjAsNiArMjMyMCwxMSBAQCBjbGFzcyBGaXh1
cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9k
ZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBEYXRlR2V0
SlNOdW1iZXI6CisgICAgICAgIGNhc2UgRGF0ZUdldE1hY2hpbmVEb3VibGU6CisgICAgICAgICAg
ICBmaXhFZGdlPERhdGVPYmplY3RVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworCiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgICAgIGNhc2UgRGF0YVZp
ZXdHZXRGbG9hdDogewogICAgICAgICAgICAgZml4RWRnZTxEYXRhVmlld09iamVjdFVzZT4obm9k
ZS0+Y2hpbGQxKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAppbmRleCBh
ZGJmNTAyNWNmM2Q0NDFiZTE4YjcyYjA5ZGRmODhmODQ1ZGI5MTFkLi5jYTlmYzM0ZTFkMzllNTc0
NzRhMWJhNDM4YTM4ZDYwN2I2YjJhNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmNwcApAQCAtMzY1LDYgKzM2NSw4IEBAIHZvaWQgR3JhcGg6OmR1bXAoUHJpbnRTdHJlYW0m
IG91dCwgY29uc3QgY2hhciogcHJlZml4U3RyLCBOb2RlKiBub2RlLCBEdW1wQ29udGV4CiAgICAg
fQogICAgIGlmIChub2RlLT5oYXNJZ25vcmVMYXN0SW5kZXhJc1dyaXRhYmxlKCkpCiAgICAgICAg
IG91dC5wcmludChjb21tYSwgImlnbm9yZUxhc3RJbmRleElzV3JpdGFibGUgPSAiLCBub2RlLT5p
Z25vcmVMYXN0SW5kZXhJc1dyaXRhYmxlKCkpOworICAgIGlmIChub2RlLT5oYXNJbnRyaW5zaWMo
KSkKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiaW50cmluc2ljID0gIiwgbm9kZS0+aW50cmlu
c2ljKCkpOwogICAgIGlmIChub2RlLT5pc0NvbnN0YW50KCkpCiAgICAgICAgIG91dC5wcmludChj
b21tYSwgcG9pbnRlckR1bXBJbkNvbnRleHQobm9kZS0+Y29uc3RhbnQoKSwgY29udGV4dCkpOwog
ICAgIGlmIChub2RlLT5oYXNDYWxsTGlua1N0YXR1cygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCmluZGV4IGU0Yjk3YjMwYzJhMGE0MGMwZmYyMDIx
NmFmNDkyZDllZDYxYThiNDguLmMyYjk2YjVmZGZkNThkNjg0N2Q5YzQyMWU5YTU4Yjc5NzlmN2Yy
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9u
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAK
QEAgLTE2OCw2ICsxNjgsMTAgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQs
IExvY2F0aW9uS2luZCBraW5kKQogICAgICAgICBvdXQucHJpbnQoIlJlZ0V4cE9iamVjdExhc3RJ
bmRleExvYyIpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIERhdGVGaWVsZExvYzoKKyAg
ICAgICAgb3V0LnByaW50KCJEYXRlRmllbGRMb2MiKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAg
Y2FzZSBNYXBCdWNrZXRMb2M6CiAgICAgICAgIG91dC5wcmludCgiTWFwQnVja2V0TG9jIik7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SGVhcExvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlv
bi5oCmluZGV4IDA5MTAwNjQxMjY5ZjBjMDYxNzQ0M2YzYmMwZjQ3Y2I5MmY1OTA1NzQuLmE4ZTcz
ODE4MDNjNzk0ODQ2M2NlOTg5Y2MxMWE2OTNmZTg0MWZhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaApAQCAtNjQsNiArNjQsNyBAQCBlbnVtIExvY2F0
aW9uS2luZCB7CiAgICAgUHJvdG90eXBlTG9jLAogICAgIFN0YWNrTG9jLAogICAgIFN0YWNrUGF5
bG9hZExvYywKKyAgICBEYXRlRmllbGRMb2MsCiAgICAgTWFwQnVja2V0TG9jLAogICAgIE1hcEJ1
Y2tldEhlYWRMb2MsCiAgICAgTWFwQnVja2V0VmFsdWVMb2MsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZS5oCmluZGV4IDExZDhiNDBmYTYzMjZmZDk1YzJkZDYyZGY3Zjc2YWQ3YjY1YjJiM2Yu
LjI1MmUwNjU2YWU3NGVlNmRkMmMzNzFiNzI1MmNjN2M5MWZmNjBkOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZS5oCkBAIC0xNTU0LDkgKzE1NTQsMjEgQEAgc3RydWN0IE5vZGUgewog
ICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8RW50cnlTd2l0Y2hEYXRhKj4oKTsKICAgICB9CiAK
KyAgICBib29sIGhhc0ludHJpbnNpYygpCisgICAgeworICAgICAgICBzd2l0Y2ggKG9wKCkpIHsK
KyAgICAgICAgY2FzZSBDUFVJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZUdldE1hY2hpbmVE
b3VibGU6CisgICAgICAgIGNhc2UgRGF0ZUdldEpTTnVtYmVyOgorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0KKyAgICB9CisKICAgICBJbnRyaW5zaWMgaW50cmluc2ljKCkKICAgICB7Ci0gICAgICAg
IFJFTEVBU0VfQVNTRVJUKG9wKCkgPT0gQ1BVSW50cmluc2ljKTsKKyAgICAgICAgQVNTRVJUKGhh
c0ludHJpbnNpYygpKTsKICAgICAgICAgcmV0dXJuIG1fb3BJbmZvLmFzPEludHJpbnNpYz4oKTsK
ICAgICB9CiAgICAgCkBAIC0xNzUzLDYgKzE3NjUsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAg
IGNhc2UgVG9UaGlzOgogICAgICAgICBjYXNlIERhdGFWaWV3R2V0SW50OgogICAgICAgICBjYXNl
IERhdGFWaWV3R2V0RmxvYXQ6CisgICAgICAgIGNhc2UgRGF0ZUdldEpTTnVtYmVyOgogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggOGNhM2I3
OTI5Zjc2MWEwMTYwYzZlMzg0ZWEzODI3NWMzNDZmZGVhMS4uOTFiYzcxM2U1MDIxNzMwYjhkYjcw
YWNjZWM3YTBjZjQ5YjJiYzQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaApAQCAtNTE2LDYgKzUxNiw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsK
ICAgICBtYWNybyhEYXRhVmlld0dldEludCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRK
UykgLyogVGhlIGdldHMgYXJlIG11c3QgZ2VuZXJhdGUgZm9yIG5vdyBiZWNhdXNlIHRoZXkgZG8g
Ym91bmRzIGNoZWNrcyAqLyBcCiAgICAgbWFjcm8oRGF0YVZpZXdHZXRGbG9hdCwgTm9kZU11c3RH
ZW5lcmF0ZSB8IE5vZGVSZXN1bHREb3VibGUpIFwKICAgICBtYWNybyhEYXRhVmlld1NldCwgTm9k
ZU11c3RHZW5lcmF0ZSB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAorICAg
IC8qIERhdGUgYWNjZXNzICovIFwKKyAgICBtYWNybyhEYXRlR2V0SlNOdW1iZXIsIE5vZGVSZXN1
bHRKUykgXAorICAgIG1hY3JvKERhdGVHZXRNYWNoaW5lRG91YmxlLCBOb2RlUmVzdWx0RG91Ymxl
KSBcCiAKIAogLy8gVGhpcyBlbnVtIGdlbmVyYXRlcyBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2lu
ZyBpZCBmb3IgYWxsIE5vZGUgdHlwZXMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcAppbmRleCA3MGVmZDZiZTk2MDkzYTRmNWVkYTg2ZWM5Zjc0ZjIxYWM3YTg2
Y2M2Li40ZGI0NjI3MmM4MDc5NmUwY2NkOTFjZjgzMTIyMjAyMGY0MmE1YWIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTM4LDYgKzM4LDcgQEAK
ICNpbmNsdWRlICJERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIgogI2luY2x1
ZGUgIkRGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCIKICNp
bmNsdWRlICJERkdXb3JrbGlzdC5oIgorI2luY2x1ZGUgIkRhdGVJbnN0YW5jZS5oIgogI2luY2x1
ZGUgIkRlZmluZVByb3BlcnR5QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50
cy5oIgogI2luY2x1ZGUgIkV2YWxDb2RlQmxvY2suaCIKQEAgLTMzOTEsNiArMzM5MiwxOTggQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcm90b3R5cGVPZihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCkp
KTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0RnVs
bFllYXIoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAgIFZNJiB2bSA9
ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5E
YXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKKyAgICBpZiAoIWdyZWdvcmlh
bkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnllYXIo
KSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRV
VENGdWxsWWVhcihWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdv
cmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOworICAgIGlmICgh
Z3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4o
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGlt
ZS0+eWVhcigpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGF0ZUdldE1vbnRoKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBW
TSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3Jl
Z29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CisgICAgaWYgKCFn
cmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigp
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1l
LT5tb250aCgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGF0ZUdldFVUQ01vbnRoKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAg
ICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSog
Z3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAg
aWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRh
dGVUaW1lLT5tb250aCgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uRGF0ZUdldERhdGUoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQorewor
ICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKKyAgICBp
ZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0
ZVRpbWUtPm1vbnRoRGF5KCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25EYXRlR2V0VVRDRGF0ZShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUp
Cit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0p
OworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVn
b3JpYW5EYXRlVGltZS0+bW9udGhEYXkoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRhdGVHZXREYXkoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBk
YXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZt
KTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3Jl
Z29yaWFuRGF0ZVRpbWUtPndlZWtEYXkoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENEYXkoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNl
KiBkYXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3Vl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdv
cmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1l
VVRDKHZtKTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPndlZWtEYXkoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRIb3VycyhWTSogdm1Qb2ludGVyLCBEYXRlSW5z
dGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3Qg
R3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0
ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0hvdXJzKFZNKiB2bVBvaW50ZXIsIERhdGVJ
bnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25z
dCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5E
YXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5ob3VyKCkpKTsKK30KKworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TWludXRlcyhWTSogdm1Qb2ludGVyLCBE
YXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0
aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAg
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29y
aWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKTsKK30KKworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDTWludXRlcyhWTSogdm1Qb2lu
dGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklU
T3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwor
CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+
Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKTsKK30KKwor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0U2Vjb25kcyhWTSog
dm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRl
cjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Cisg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0g
ZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUp
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25kKCkpKTsKK30K
KworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25k
cyhWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOworICAgIGlmICghZ3JlZ29yaWFu
RGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25k
KCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0
VGltZXpvbmVPZmZzZXQoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAg
IFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBn
cmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKKyAgICBpZiAo
IWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFO
KCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLWdyZWdvcmlhbkRhdGVU
aW1lLT51dGNPZmZzZXRJbk1pbnV0ZSgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uRGF0ZUdldFllYXIoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBk
YXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZt
KTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3Jl
Z29yaWFuRGF0ZVRpbWUtPnllYXIoKSAtIDE5MDApKTsKK30KKwogdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblRocm93REZHKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHZhbHVlVG9UaHJvdykKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IDI1NjRkOWZj
OGRmOTg3NjcxNThmZDI0MTY2N2IzYWI2ZWJiNjBiNjUuLjI3NGY4YTUzZWJiZWM0OTgyMWZjMGEw
ZjQ0YjBmY2QyYmFkMWZkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5oCkBAIC0zMSw3ICszMSwxMSBAQAogI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJUeXBlZEFycmF5VHlwZS5oIgogCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERG
RyB7CituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgRGF0ZUluc3RhbmNlOworCituYW1lc3BhY2Ug
REZHIHsKIAogc3RydWN0IE9TUkV4aXRCYXNlOwogCkBAIC0yOTQsNiArMjk4LDIzIEBAIEpTQ2Vs
bCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4
aW5nSGVhZGVyQW5kVmVjdG9yCiAKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rRGly
ZWN0Q2FsbChDYWxsTGlua0luZm8qLCBKU0Z1bmN0aW9uKikgV1RGX0lOVEVSTkFMOwogCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhcihWTSosIERh
dGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uRGF0ZUdldFVUQ0Z1bGxZZWFyKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TW9udGgo
Vk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENNb250aChWTSosIERhdGVJbnN0YW5jZSopIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldERh
dGUoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENEYXRlKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0
RGF5KFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDRGF5KFZNKiwgRGF0ZUluc3RhbmNlKikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0
SG91cnMoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENIb3VycyhWTSosIERhdGVJbnN0YW5jZSop
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0
ZUdldE1pbnV0ZXMoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENNaW51dGVzKFZNKiwgRGF0ZUlu
c3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25EYXRlR2V0U2Vjb25kcyhWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ1NlY29uZHMoVk0q
LCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkRhdGVHZXRUaW1lem9uZU9mZnNldChWTSosIERhdGVJbnN0YW5jZSopIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdl
dFllYXIoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CisKIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVyTG9nREZHKFZNKikgV1RGX0lOVEVSTkFM
OwogCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJpZ2dlclJlb3B0aW1pemF0aW9uTm93
KENvZGVCbG9jayogYmFzZWxpbmVDb2RlQmxvY2ssIENvZGVCbG9jayogb3B0aWltemVkQ29kZUJs
b2NrLCBPU1JFeGl0QmFzZSopIFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5k
ZXggZTcyYWE1ZGQyNTdmMzI0NmUxYmRiNmNjNmM4NTk1OWYyODllOTU0Yy4uMTUwNjU0YTA2Njdh
ZGZiMjg2MjExNzE0OTlmZmNiMmYwYmMzNTYxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAg
LTg0NSwxMSArODQ1LDE3IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVi
bGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBHZXRQcm90b3R5cGVPZjoKICAgICAgICAgY2FzZSBF
eHRyYWN0VmFsdWVGcm9tV2Vha01hcEdldDogCiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6
Ci0gICAgICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDogeworICAgICAgICBjYXNlIERhdGFWaWV3
R2V0RmxvYXQ6CisgICAgICAgIGNhc2UgRGF0ZUdldEpTTnVtYmVyOiB7CiAgICAgICAgICAgICBz
ZXRQcmVkaWN0aW9uKG1fY3VycmVudE5vZGUtPmdldEhlYXBQcmVkaWN0aW9uKCkpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIERhdGVHZXRNYWNoaW5lRG91
YmxlOiB7CisgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNGdWxsTnVtYmVyKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBXZWFrTWFwR2V0OgogICAg
ICAgICBjYXNlIFJlc29sdmVTY29wZUZvckhvaXN0aW5nRnVuY0RlY2xJbkV2YWw6IHsKICAgICAg
ICAgICAgIHNldFByZWRpY3Rpb24oU3BlY0J5dGVjb2RlVG9wKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggNDYwNjFjODZjZjk1YzA3ODE2MWY0
YTU5MjRjZDNhNTI0NmNkYzAyMS4uNmJkOGYyOTMzNDNlYWUzODEwODNhZjc1MTBlM2JlOTIyNDk2
YTcwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVj
dXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgK
QEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgU2FmZVRvRXhlY3V0ZUVkZ2UgewogICAgICAgICBjYXNl
IFByb21pc2VPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgUHJveHlPYmplY3RVc2U6CiAgICAgICAg
IGNhc2UgRGVyaXZlZEFycmF5VXNlOgorICAgICAgICBjYXNlIERhdGVPYmplY3RVc2U6CiAgICAg
ICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAg
ICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgpAQCAtNDg5LDYgKzQ5MCw4IEBAIGJvb2wgc2FmZVRv
RXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZSwgYm9vbCBpZ25vCiAgICAgY2FzZSBBdG9taWNzSXNMb2NrRnJlZToKICAgICBjYXNlIEluaXRp
YWxpemVFbnRyeXBvaW50QXJndW1lbnRzOgogICAgIGNhc2UgTWF0Y2hTdHJ1Y3R1cmU6CisgICAg
Y2FzZSBEYXRlR2V0SlNOdW1iZXI6CisgICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZToKICAg
ICBjYXNlIERhdGFWaWV3R2V0SW50OgogICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKICAgICAg
ICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCmluZGV4IDQ3NDE2MTRjNTdiZDhjOWJlNjBlNjhmM2MyYTQyZWE3MDQ1NzUx
MGUuLjllYWMyMTZmNjAyYzBiNDFmYWY4ZWM4ZGUyNjdhOGExYjU3NTY5OTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRGR1NuaXBw
ZXRQYXJhbXMuaCIKKyNpbmNsdWRlICJEYXRlSW5zdGFuY2UuaCIKICNpbmNsdWRlICJEaXJlY3RB
cmd1bWVudHMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2Uu
aCIKICNpbmNsdWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKQEAgLTEwMTk1LDYgKzEwMTk2LDIwIEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVByb21pc2VPYmplY3QoRWRnZSBlZGdlKQog
ICAgIHNwZWN1bGF0ZVByb21pc2VPYmplY3QoZWRnZSwgb3BlcmFuZC5ncHIoKSk7CiB9CiAKK3Zv
aWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGVPYmplY3QoRWRnZSBlZGdlLCBHUFJSZWcg
Y2VsbCkKK3sKKyAgICBzcGVjdWxhdGVDZWxsVHlwZShlZGdlLCBjZWxsLCBTcGVjRGF0ZU9iamVj
dCwgSlNEYXRlVHlwZSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGVP
YmplY3QoRWRnZSBlZGdlKQoreworICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY0Rh
dGVPYmplY3QpKQorICAgICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBv
cGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZURhdGVPYmplY3QoZWRnZSwgb3BlcmFu
ZC5ncHIoKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1hcE9iamVjdChF
ZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQogewogICAgIHNwZWN1bGF0ZUNlbGxUeXBlKGVkZ2UsIGNl
bGwsIFNwZWNNYXBPYmplY3QsIEpTTWFwVHlwZSk7CkBAIC0xMDYwMCw2ICsxMDYxNSw5IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgIGNhc2Ug
RGVyaXZlZEFycmF5VXNlOgogICAgICAgICBzcGVjdWxhdGVEZXJpdmVkQXJyYXkoZWRnZSk7CiAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZU9iamVjdFVzZToKKyAgICAgICAgc3BlY3VsYXRl
RGF0ZU9iamVjdChlZGdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYXBPYmplY3RVc2U6
CiAgICAgICAgIHNwZWN1bGF0ZU1hcE9iamVjdChlZGdlKTsKICAgICAgICAgYnJlYWs7CkBAIC0x
NDAwOCw2ICsxNDAyNiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYWtlUm9wZShO
b2RlKiBub2RlKQogI2VuZGlmCiB9CiAKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApp
bmRleCAxYmE1MjExZmMxMTMwNzdlZGYxN2JhOWI5ZTE0MTA2NTlkYmNiODI1Li4xYjIwZDk0NGNi
Y2RkYTYyZmFjYjQ1NmQ0Yzk4ZDE5YjVjMDVmZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xNDg5LDYgKzE0ODksNyBAQCBjbGFzcyBT
cGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlQ2xlYXJDYXRjaExvY2FscyhOb2RlKik7
CiAgICAgdm9pZCBjb21waWxlUHJvZmlsZVR5cGUoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVN0
cmluZ0NvZGVQb2ludEF0KE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVEYXRlR2V0KE5vZGUqKTsK
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3MsIHR5cGVuYW1lIE9wZXJhdGlvbj4KICAg
ICB2b2lkIGNvbXBpbGVDcmVhdGVJbnRlcm5hbEZpZWxkT2JqZWN0KE5vZGUqLCBPcGVyYXRpb24p
OwpAQCAtMTYxNiw2ICsxNjE3LDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQg
c3BlY3VsYXRlUHJveHlPYmplY3QoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVEZXJpdmVkQXJy
YXkoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlRGVyaXZlZEFycmF5KEVk
Z2UpOworICAgIHZvaWQgc3BlY3VsYXRlRGF0ZU9iamVjdChFZGdlKTsKKyAgICB2b2lkIHNwZWN1
bGF0ZURhdGVPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlTWFw
T2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTWFwT2JqZWN0KEVkZ2UsIEdQUlJlZyBj
ZWxsKTsKICAgICB2b2lkIHNwZWN1bGF0ZVNldE9iamVjdChFZGdlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDE0
ZjIxYzc3NmZkYzYzNDc0MzY0M2VkYmJkNmUwNmJiM2JhNTVjMGEuLmI0YWQ2MDk2MDdlMTVjMDQ4
MGZmYjEzYjNjOWFjZmQ4ZjM2ODZmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNDE2Miw2ICs0MTYyLDggQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgRGF0YVZp
ZXdHZXRJbnQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0OgogICAgIGNhc2UgRGF0YVZpZXdT
ZXQ6CisgICAgY2FzZSBEYXRlR2V0SlNOdW1iZXI6CisgICAgY2FzZSBEYXRlR2V0TWFjaGluZURv
dWJsZToKICAgICBjYXNlIFN0cmluZ0NvZGVQb2ludEF0OgogICAgICAgICBERkdfQ1JBU0gobV9q
aXQuZ3JhcGgoKSwgbm9kZSwgInVuZXhwZWN0ZWQgbm9kZSBpbiBERkcgYmFja2VuZCIpOwogICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCmluZGV4IDE0MmM3ZTA2ODljMjZhMWZhZmRjZDUwMDNmMWYzNGJlYjI1Mzgw
MmEuLmJiNmI1MzQxMmY5MDg0NGRjOTEzOWZmNDQ2NzAxODg4YTJjMzMxMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMzYs
NiArMzYsNyBAQAogI2luY2x1ZGUgIkRGR0RvZXNHQy5oIgogI2luY2x1ZGUgIkRGR09wZXJhdGlv
bnMuaCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkRhdGVJ
bnN0YW5jZS5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkdldHRl
clNldHRlci5oIgogI2luY2x1ZGUgIkhhc093blByb3BlcnR5Q2FjaGUuaCIKQEAgLTQ4NzQsNiAr
NDg3NSwxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgRGF0ZUdldEpTTnVtYmVyOgorICAgIGNhc2Ug
RGF0ZUdldE1hY2hpbmVEb3VibGU6CisgICAgICAgIGNvbXBpbGVEYXRlR2V0KG5vZGUpOworICAg
ICAgICBicmVhazsKKwogICAgIGNhc2UgRGF0YVZpZXdTZXQ6IHsKICAgICAgICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgZGF0YVZpZXcodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSk7
CiAgICAgICAgIEdQUlJlZyBkYXRhVmlld0dQUiA9IGRhdGFWaWV3LmdwcigpOwpAQCAtNTM0OCw2
ICs1MzU0LDE0MyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nQ29kZVBvaW50
QXQoTm9kZSogbm9kZSkKICAgICBpbnQzMlJlc3VsdChzY3JhdGNoMUdQUiwgbV9jdXJyZW50Tm9k
ZSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEYXRlR2V0KE5vZGUqIG5vZGUp
Cit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
CisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAgIHNwZWN1bGF0ZURhdGVPYmpl
Y3Qobm9kZS0+Y2hpbGQxKCksIGJhc2VHUFIpOworCisgICAgYXV0byBlbWl0R2V0Q29kZVdpdGhD
YWxsYmFjayA9IFsmXSAocHRyZGlmZl90IGNhY2hlZERvdWJsZU9mZnNldCwgcHRyZGlmZl90IGNh
Y2hlZERhdGFPZmZzZXQsIGF1dG8qIG9wZXJhdGlvbiwgYXV0byBjYWxsYmFjaykgeworICAgICAg
ICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgICAgIEZQUlRlbXBvcmFy
eSB0ZW1wMSh0aGlzKTsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXAyKHRoaXMpOworCisgICAg
ICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOworICAgICAgICBGUFJS
ZWcgdGVtcDFGUFIgPSB0ZW1wMS5mcHIoKTsKKyAgICAgICAgRlBSUmVnIHRlbXAyRlBSID0gdGVt
cDIuZnByKCk7CisKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93Q2FzZXM7CisK
KyAgICAgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgRGF0
ZUluc3RhbmNlOjpvZmZzZXRPZkRhdGEoKSksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0UHRyKENDYWxsSGVscGVyczo6
WmVybywgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpKTsKKyAgICAgICAgbV9qaXQubG9hZERvdWJs
ZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgRGF0ZUluc3RhbmNlOjpvZmZzZXRPZklu
dGVybmFsTnVtYmVyKCkpLCB0ZW1wMUZQUik7CisgICAgICAgIG1faml0LmxvYWREb3VibGUoQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCBjYWNoZWREb3VibGVP
ZmZzZXQpLCB0ZW1wMkZQUik7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNo
RG91YmxlKENDYWxsSGVscGVyczo6RG91YmxlTm90RXF1YWxPclVub3JkZXJlZCwgdGVtcDFGUFIs
IHRlbXAyRlBSKSk7CisgICAgICAgIG1faml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
cmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIGNhY2hlZERhdGFPZmZzZXQpLCByZXN1bHRSZWdzLnBh
eWxvYWRHUFIoKSk7CisgICAgICAgIGNhbGxiYWNrKHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsK
KyAgICAgICAgbV9qaXQuYm94SW50MzIocmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIHJlc3VsdFJl
Z3MpOworCisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChzbG93Q2Fz
ZXMsIHRoaXMsIG9wZXJhdGlvbiwgcmVzdWx0UmVncywgJnZtKCksIGJhc2VHUFIpKTsKKworICAg
ICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworICAgIH07CisKKyAgICBhdXRv
IGVtaXRHZXRDb2RlID0gWyZdIChwdHJkaWZmX3QgY2FjaGVkRG91YmxlT2Zmc2V0LCBwdHJkaWZm
X3QgY2FjaGVkRGF0YU9mZnNldCwgYXV0byogb3BlcmF0aW9uKSB7CisgICAgICAgIGVtaXRHZXRD
b2RlV2l0aENhbGxiYWNrKGNhY2hlZERvdWJsZU9mZnNldCwgY2FjaGVkRGF0YU9mZnNldCwgb3Bl
cmF0aW9uLCBbXSAoR1BSUmVnKSB7IH0pOworICAgIH07CisKKyAgICBzd2l0Y2ggKG5vZGUtPmlu
dHJpbnNpYygpKSB7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VGltZUludHJpbnNpYzogewor
ICAgICAgICBGUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAgICBGUFJSZWcgcmVzdWx0
RlBSID0gcmVzdWx0LmZwcigpOworICAgICAgICBtX2ppdC5sb2FkRG91YmxlKENDYWxsSGVscGVy
czo6QWRkcmVzcyhiYXNlR1BSLCBEYXRlSW5zdGFuY2U6Om9mZnNldE9mSW50ZXJuYWxOdW1iZXIo
KSksIHJlc3VsdEZQUik7CisgICAgICAgIGRvdWJsZVJlc3VsdChyZXN1bHRGUFIsIG5vZGUpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICAvLyBXZSBkbyBub3QgaGF2ZSBhbnkgdGltZXpv
bmUgb2Zmc2V0IHdoaWNoIGFmZmVjdHMgb24gbWlsbGlzZWNvbmRzLgorICAgIC8vIFNvIERhdGUj
Z2V0TWlsbGlzZWNvbmRzIGFuZCBEYXRlI2dldFVUQ01pbGxpc2Vjb25kcyBoYXZlIHRoZSBzYW1l
IGltcGxlbWVudGF0aW9uLgorICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1pbGxpc2Vjb25kc0lu
dHJpbnNpYzoKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJbnRyaW5z
aWM6IHsKKyAgICAgICAgSlNWYWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAg
ICBGUFJUZW1wb3JhcnkgdGVtcDEodGhpcyk7CisgICAgICAgIEZQUlRlbXBvcmFyeSB0ZW1wMih0
aGlzKTsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXAzKHRoaXMpOworICAgICAgICBKU1ZhbHVl
UmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKyAgICAgICAgRlBSUmVnIHRlbXAxRlBS
ID0gdGVtcDEuZnByKCk7CisgICAgICAgIEZQUlJlZyB0ZW1wMkZQUiA9IHRlbXAyLmZwcigpOwor
ICAgICAgICBGUFJSZWcgdGVtcDNGUFIgPSB0ZW1wMy5mcHIoKTsKKworICAgICAgICBtX2ppdC5t
b3ZlVHJ1c3RlZFZhbHVlKGpzTmFOKCksIHJlc3VsdFJlZ3MpOworICAgICAgICBtX2ppdC5sb2Fk
RG91YmxlKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBEYXRlSW5zdGFuY2U6Om9mZnNl
dE9mSW50ZXJuYWxOdW1iZXIoKSksIHRlbXAxRlBSKTsKKyAgICAgICAgYXV0byBpc05hTiA9IG1f
aml0LmJyYW5jaElmTmFOKHRlbXAxRlBSKTsKKworICAgICAgICBzdGF0aWMgY29uc3QgZG91Ymxl
IG1zUGVyU2Vjb25kQ29uc3RhbnQgPSBtc1BlclNlY29uZDsKKyAgICAgICAgbV9qaXQubG9hZERv
dWJsZShUcnVzdGVkSW1tUHRyKCZtc1BlclNlY29uZENvbnN0YW50KSwgdGVtcDJGUFIpOworICAg
ICAgICBtX2ppdC5kaXZEb3VibGUodGVtcDFGUFIsIHRlbXAyRlBSLCB0ZW1wM0ZQUik7CisgICAg
ICAgIG1faml0LmZsb29yRG91YmxlKHRlbXAzRlBSLCB0ZW1wM0ZQUik7CisgICAgICAgIG1faml0
Lm11bERvdWJsZSh0ZW1wM0ZQUiwgdGVtcDJGUFIsIHRlbXAzRlBSKTsKKyAgICAgICAgbV9qaXQu
c3ViRG91YmxlKHRlbXAxRlBSLCB0ZW1wM0ZQUiwgdGVtcDFGUFIpOworICAgICAgICBtX2ppdC50
cnVuY2F0ZURvdWJsZVRvSW50MzIodGVtcDFGUFIsIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsK
KyAgICAgICAgbV9qaXQuYm94SW50MzIocmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIHJlc3VsdFJl
Z3MpOworCisgICAgICAgIGlzTmFOLmxpbmsoJm1faml0KTsKKyAgICAgICAganNWYWx1ZVJlc3Vs
dChyZXN1bHRSZWdzLCBub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBE
YXRlUHJvdG90eXBlR2V0RnVsbFllYXJJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERh
dGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygpLCBE
YXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVn
b3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZZZWFyKCksIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhcik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50
cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdy
ZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0
T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNl
dE9mWWVhcigpLCBvcGVyYXRpb25EYXRlR2V0VVRDRnVsbFllYXIpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNpYzoKKyAgICAgICAgZW1pdEdl
dENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZv
ck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUo
KSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoKCksIG9wZXJhdGlvbkRhdGVHZXRN
b250aCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01vbnRo
SW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRP
ZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9m
ZnNldE9mTW9udGgoKSwgb3BlcmF0aW9uRGF0ZUdldFVUQ01vbnRoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF0ZUludHJpbnNpYzoKKyAgICAgICAgZW1pdEdl
dENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZv
ck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUo
KSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoRGF5KCksIG9wZXJhdGlvbkRhdGVH
ZXREYXRlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF0
ZUludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0
T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9m
ZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpv
ZmZzZXRPZk1vbnRoRGF5KCksIG9wZXJhdGlvbkRhdGVHZXRVVENEYXRlKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF5SW50cmluc2ljOgorICAgICAgICBlbWl0
R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVk
Rm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGlt
ZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mV2Vla0RheSgpLCBvcGVyYXRpb25EYXRl
R2V0RGF5KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF5
SW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRP
ZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9m
ZnNldE9mV2Vla0RheSgpLCBvcGVyYXRpb25EYXRlR2V0VVRDRGF5KTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0SG91cnNJbnRyaW5zaWM6CisgICAgICAgIGVtaXRH
ZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRG
b3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1l
KCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZIb3VyKCksIG9wZXJhdGlvbkRhdGVHZXRI
b3Vycyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0hvdXJz
SW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRP
ZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9m
ZnNldE9mSG91cigpLCBvcGVyYXRpb25EYXRlR2V0VVRDSG91cnMpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNaW51dGVzSW50cmluc2ljOgorICAgICAgICBlbWl0
R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVk
Rm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGlt
ZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mTWludXRlKCksIG9wZXJhdGlvbkRhdGVH
ZXRNaW51dGVzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRD
TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6
b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURh
dGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVU
aW1lOjpvZmZzZXRPZk1pbnV0ZSgpLCBvcGVyYXRpb25EYXRlR2V0VVRDTWludXRlcyk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFNlY29uZHNJbnRyaW5zaWM6Cisg
ICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0
ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdv
cmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZTZWNvbmQoKSwgb3Bl
cmF0aW9uRGF0ZUdldFNlY29uZHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90
b3R5cGVHZXRVVENTZWNvbmRzSW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5z
dGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0
ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3Jl
Z29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mU2Vjb25kKCksIG9wZXJhdGlvbkRhdGVHZXRVVENTZWNv
bmRzKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lem9u
ZU9mZnNldEludHJpbnNpYzogeworICAgICAgICBlbWl0R2V0Q29kZVdpdGhDYWxsYmFjayhEYXRl
SW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSwgRGF0
ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29y
aWFuRGF0ZVRpbWU6Om9mZnNldE9mVVRDT2Zmc2V0SW5NaW51dGUoKSwgb3BlcmF0aW9uRGF0ZUdl
dFRpbWV6b25lT2Zmc2V0LCBbJl0gKEdQUlJlZyBvZmZzZXRHUFIpIHsKKyAgICAgICAgICAgIG1f
aml0Lm5lZzMyKG9mZnNldEdQUik7CisgICAgICAgIH0pOworICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRZZWFySW50cmluc2ljOiB7CisgICAgICAgIGVt
aXRHZXRDb2RlV2l0aENhbGxiYWNrKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFu
RGF0ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZZZWFyKCksIG9w
ZXJhdGlvbkRhdGVHZXRZZWFyLCBbJl0gKEdQUlJlZyB5ZWFyR1BSKSB7CisgICAgICAgICAgICBt
X2ppdC5zdWIzMihUcnVzdGVkSW1tMzIoMTkwMCksIHllYXJHUFIpOworICAgICAgICB9KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorCisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKICNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6REZHCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtp
bmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCAw
ODRiNTk1YjM5OWE2YTA0YjQ5YzljYzEyMzlkNTBlMmI5MjI4ZTI0Li44ZWY3M2I2ZjJlODc1NTAz
NTk2YTg2NDk3NDBiM2E0NThhYjA5NzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VXNlS2luZC5jcHAKQEAgLTEwNiw2ICsxMDYsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRT
dHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgRGVyaXZlZEFycmF5VXNlOgog
ICAgICAgICBvdXQucHJpbnQoIkRlcml2ZWRBcnJheSIpOwogICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBEYXRlT2JqZWN0VXNlOgorICAgICAgICBvdXQucHJpbnQoIkRhdGVPYmplY3QiKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICBvdXQucHJpbnQo
Ik1hcE9iamVjdCIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VXNlS2luZC5oCmluZGV4IDJlYzRlYTE1M2Q1YzNkMjM3NGIwOWUxY2U3MzgzZDA4YjQxZjNhZWYu
LjljMTNjNWJjZDM1Njk1NzliMDMwOTJjNWM4Zjc1OGI2ZTljMDU5YTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCkBAIC02Nyw2ICs2Nyw3IEBAIGVudW0gVXNlS2luZCB7
CiAgICAgS25vd25QcmltaXRpdmVVc2UsIC8vIFRoaXMgYml6YXJyZSB0eXBlIGFyaXNlcyBmb3Ig
b3Bfc3RyY2F0LCB3aGljaCBoYXMgYSBieXRlY29kZSBndWFyYW50ZWUgdGhhdCBpdCB3aWxsIG9u
bHkgc2VlIHByaW1pdGl2ZXMgKGkuZS4gbm90IG9iamVjdHMpLgogICAgIFN5bWJvbFVzZSwKICAg
ICBCaWdJbnRVc2UsCisgICAgRGF0ZU9iamVjdFVzZSwKICAgICBNYXBPYmplY3RVc2UsCiAgICAg
U2V0T2JqZWN0VXNlLAogICAgIFdlYWtNYXBPYmplY3RVc2UsCkBAIC0xNTUsNiArMTU2LDggQEAg
aW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAg
ICAgICByZXR1cm4gU3BlY0JpZ0ludDsKICAgICBjYXNlIFByb21pc2VPYmplY3RVc2U6CiAgICAg
ICAgIHJldHVybiBTcGVjUHJvbWlzZU9iamVjdDsKKyAgICBjYXNlIERhdGVPYmplY3RVc2U6Cisg
ICAgICAgIHJldHVybiBTcGVjRGF0ZU9iamVjdDsKICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAg
ICAgICAgcmV0dXJuIFNwZWNNYXBPYmplY3Q7CiAgICAgY2FzZSBTZXRPYmplY3RVc2U6CkBAIC0y
NjEsNiArMjY0LDcgQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkKICAgICBjYXNl
IEJpZ0ludFVzZToKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICBjYXNlIFN0cmluZ09y
U3RyaW5nT2JqZWN0VXNlOgorICAgIGNhc2UgRGF0ZU9iamVjdFVzZToKICAgICBjYXNlIE1hcE9i
amVjdFVzZToKICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICBjYXNlIFdlYWtNYXBPYmplY3RV
c2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVh
cFJlcG9zaXRvcnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmNwcAppbmRleCA5YzNjMWM3YWM2ZmE4YWYyODI2M2JhYjJhNzI2OWRiNTUw
ZTM1NmRiLi5jNDVjOWQxYjdlNTRhMGI3Yzc0ZDBhNzM0ZGZkMDcxNTM1OWMyMjBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnku
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAj
aW5jbHVkZSAiQjNQYXRjaHBvaW50VmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5o
IgorI2luY2x1ZGUgIkRhdGVJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5o
IgogI2luY2x1ZGUgIkZUTFN0YXRlLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9y
eS5oCmluZGV4IDEwMzY5ZTRlNDk0NTI2MGRhN2NjNGMxM2EzZjcxODZhNmU0MjM1NDAuLjVkZjQz
Zjc3NGZmMzQ2NjcwY2UxODRlYzc1OGQxYTExMzA3MmJkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCkBAIC01Miw2
ICs1MiwyNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oQnV0
dGVyZmx5X3ZlY3Rvckxlbmd0aCwgQnV0dGVyZmx5OjpvZmZzZXRPZlZlY3Rvckxlbmd0aCgpKSBc
CiAgICAgbWFjcm8oQ2FsbEZyYW1lX2NhbGxlckZyYW1lLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1l
T2Zmc2V0KCkpIFwKICAgICBtYWNybyhDbGFzc0luZm9fcGFyZW50Q2xhc3MsIENsYXNzSW5mbzo6
b2Zmc2V0T2ZQYXJlbnRDbGFzcygpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlX2ludGVybmFs
TnVtYmVyLCBEYXRlSW5zdGFuY2U6Om9mZnNldE9mSW50ZXJuYWxOdW1iZXIoKSkgXAorICAgIG1h
Y3JvKERhdGVJbnN0YW5jZV9kYXRhLCBEYXRlSW5zdGFuY2U6Om9mZnNldE9mRGF0YSgpKSBcCisg
ICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBE
YXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSkg
XAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRG
b3JNUywgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hl
ZEZvck1TKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lX3llYXIsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZlllYXIoKSkgXAorICAgIG1hY3Jv
KERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfeWVhciwgRGF0ZUlu
c3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29y
aWFuRGF0ZVRpbWU6Om9mZnNldE9mWWVhcigpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0
YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9tb250aCwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0
T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9m
TW9udGgoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWVVVENfbW9udGgsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoKCkpIFwKKyAg
ICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX21vbnRoRGF5
LCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBH
cmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aERheSgpKSBcCisgICAgbWFjcm8oRGF0ZUlu
c3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19tb250aERheSwgRGF0ZUluc3Rh
bmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFu
RGF0ZVRpbWU6Om9mZnNldE9mTW9udGhEYXkoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURh
dGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfd2Vla0RheSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNl
dE9mV2Vla0RheSgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3Jp
YW5EYXRlVGltZVVUQ193ZWVrRGF5LCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZXZWVrRGF5
KCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1l
X2hvdXIsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUo
KSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZkhvdXIoKSkgXAorICAgIG1hY3JvKERhdGVJ
bnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfaG91ciwgRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0
ZVRpbWU6Om9mZnNldE9mSG91cigpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNo
ZWRHcmVnb3JpYW5EYXRlVGltZV9taW51dGUsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2Fj
aGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1pbnV0
ZSgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGlt
ZVVUQ19taW51dGUsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1pbnV0ZSgpKSBcCisgICAg
bWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9zZWNvbmQsIERh
dGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdv
cmlhbkRhdGVUaW1lOjpvZmZzZXRPZlNlY29uZCgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNl
RGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19zZWNvbmQsIERhdGVJbnN0YW5jZURhdGE6
Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1l
OjpvZmZzZXRPZlNlY29uZCgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRH
cmVnb3JpYW5EYXRlVGltZV91dGNPZmZzZXRJbk1pbnV0ZSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNl
dE9mVVRDT2Zmc2V0SW5NaW51dGUoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2Fj
aGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfdXRjT2Zmc2V0SW5NaW51dGUsIERhdGVJbnN0YW5jZURh
dGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVU
aW1lOjpvZmZzZXRPZlVUQ09mZnNldEluTWludXRlKCkpIFwKICAgICBtYWNybyhEaXJlY3RBcmd1
bWVudHNfY2FsbGVlLCBEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mQ2FsbGVlKCkpIFwKICAgICBt
YWNybyhEaXJlY3RBcmd1bWVudHNfbGVuZ3RoLCBEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mTGVu
Z3RoKCkpIFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVudHNfbWluQ2FwYWNpdHksIERpcmVjdEFy
Z3VtZW50czo6b2Zmc2V0T2ZNaW5DYXBhY2l0eSgpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggYzYxZjllNjU4MGJmM2I2ZTQ1YzYxNTBi
OTlmMGY0YjgzYzMxZTZhOS4uOTVkM2NhNjFlMDBiOTRiODEyMTA1YjViMDQ0YmVjZmI3NzFkODE5
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApA
QCAtMzg4LDYgKzM4OCw4IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2Rl
KiBub2RlKQogICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEZs
b2F0OgogICAgIGNhc2UgRGF0YVZpZXdTZXQ6CisgICAgY2FzZSBEYXRlR2V0SlNOdW1iZXI6Cisg
ICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZToKICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgog
ICAgICAgICBicmVhazsKIApAQCAtNDcwLDYgKzQ3Miw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5D
b21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIFN0cmluZ09yU3RyaW5n
T2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICAgICAg
ICAgIGNhc2UgQmlnSW50VXNlOgorICAgICAgICAgICAgICAgIGNhc2UgRGF0ZU9iamVjdFVzZToK
ICAgICAgICAgICAgICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNl
IFNldE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggYWYw
YThlYjA3MGIzMGFiYmZmYmYwYTc2NTU4OTVhZWM2MmU5YTk3Zi4uZGYyZmU3ZWM1OTlhZWI1MDFj
NWFjYzY3ZGI4YWM4NzZhMjA0Nzc3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTU0NSw2ICsxNTQ1LDEwIEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgICAgIGNhc2UgRmlsdGVySW5CeUlkU3RhdHVzOgogICAgICAgICAgICAgY29t
cGlsZUZpbHRlcklDU3RhdHVzKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBE
YXRlR2V0SlNOdW1iZXI6CisgICAgICAgIGNhc2UgRGF0ZUdldE1hY2hpbmVEb3VibGU6CisgICAg
ICAgICAgICBjb21waWxlRGF0ZUdldCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKICAgICAg
ICAgICAgIGNvbXBpbGVEYXRhVmlld0dldCgpOwpAQCAtMTM0MDcsNiArMTM0MTEsMTE1IEBAIGNs
YXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisKKyAg
ICB2b2lkIGNvbXBpbGVEYXRlR2V0KCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93
RGF0ZU9iamVjdChtX25vZGUtPmNoaWxkMSgpKTsKKworICAgICAgICBhdXRvIGVtaXRHZXRDb2Rl
V2l0aENhbGxiYWNrID0gWyZdIChjb25zdCBBYnN0cmFjdEhlYXAmIGNhY2hlZERvdWJsZU9mZnNl
dCwgY29uc3QgQWJzdHJhY3RIZWFwJiBjYWNoZWREYXRhT2Zmc2V0LCBhdXRvKiBvcGVyYXRpb24s
IGF1dG8gY2FsbGJhY2spIHsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGRhdGFFeGlzdHNDYXNl
ID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGZhc3RDYXNlID0g
bV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gbV9v
dXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1f
b3V0Lm5ld0Jsb2NrKCk7CisKKyAgICAgICAgICAgIExWYWx1ZSBkYXRhID0gbV9vdXQubG9hZFB0
cihiYXNlLCBtX2hlYXBzLkRhdGVJbnN0YW5jZV9kYXRhKTsKKyAgICAgICAgICAgIG1fb3V0LmJy
YW5jaChtX291dC5ub3RaZXJvNjQoZGF0YSksIHVuc3VyZShkYXRhRXhpc3RzQ2FzZSksIHVuc3Vy
ZShzbG93Q2FzZSkpOworCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0
LmFwcGVuZFRvKGRhdGFFeGlzdHNDYXNlLCBmYXN0Q2FzZSk7CisgICAgICAgICAgICBMVmFsdWUg
bWlsbGlzZWNvbmRzID0gbV9vdXQubG9hZERvdWJsZShiYXNlLCBtX2hlYXBzLkRhdGVJbnN0YW5j
ZV9pbnRlcm5hbE51bWJlcik7CisgICAgICAgICAgICBMVmFsdWUgY2FjaGVkTWlsbGlzZWNvbmRz
ID0gbV9vdXQubG9hZERvdWJsZShkYXRhLCBjYWNoZWREb3VibGVPZmZzZXQpOworICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKG1fb3V0LmRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQobWlsbGlzZWNv
bmRzLCBjYWNoZWRNaWxsaXNlY29uZHMpLCB1bnN1cmUoc2xvd0Nhc2UpLCB1bnN1cmUoZmFzdENh
c2UpKTsKKworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZmFzdENhc2UsIHNsb3dDYXNlKTsK
KyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3IoYm94
SW50MzIoY2FsbGJhY2sobV9vdXQubG9hZDMyKGRhdGEsIGNhY2hlZERhdGFPZmZzZXQpKSkpOwor
ICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAgICAgICAgICBtX291
dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIFZhbHVlRnJv
bUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxsKEludDY0LCBvcGVyYXRpb24s
IG1fdm1WYWx1ZSwgYmFzZSkpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24p
OworCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsK
KyAgICAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKEludDY0LCBmYXN0UmVzdWx0LCBzbG93
UmVzdWx0KSk7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0byBlbWl0R2V0Q29kZSA9IFsmXSAo
Y29uc3QgQWJzdHJhY3RIZWFwJiBjYWNoZWREb3VibGVPZmZzZXQsIGNvbnN0IEFic3RyYWN0SGVh
cCYgY2FjaGVkRGF0YU9mZnNldCwgYXV0byogb3BlcmF0aW9uKSB7CisgICAgICAgICAgICBlbWl0
R2V0Q29kZVdpdGhDYWxsYmFjayhjYWNoZWREb3VibGVPZmZzZXQsIGNhY2hlZERhdGFPZmZzZXQs
IG9wZXJhdGlvbiwgW10gKExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0pOworICAgICAg
ICB9OworCisgICAgICAgIHN3aXRjaCAobV9ub2RlLT5pbnRyaW5zaWMoKSkgeworICAgICAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljOgorICAgICAgICAgICAgc2V0RG91Ymxl
KG1fb3V0LmxvYWREb3VibGUoYmFzZSwgbV9oZWFwcy5EYXRlSW5zdGFuY2VfaW50ZXJuYWxOdW1i
ZXIpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdl
dE1pbGxpc2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRD
TWlsbGlzZWNvbmRzSW50cmluc2ljOiB7CisgICAgICAgICAgICBMVmFsdWUgbWlsbGlzZWNvbmRz
ID0gbV9vdXQubG9hZERvdWJsZShiYXNlLCBtX2hlYXBzLkRhdGVJbnN0YW5jZV9pbnRlcm5hbE51
bWJlcik7CisgICAgICAgICAgICBMVmFsdWUgbXNQZXJTZWNvbmRDb25zdGFudCA9IG1fb3V0LmNv
bnN0RG91YmxlKG1zUGVyU2Vjb25kKTsKKyAgICAgICAgICAgIExWYWx1ZSBzZWNvbmRzID0gbV9v
dXQuZG91YmxlRmxvb3IobV9vdXQuZG91YmxlRGl2KG1pbGxpc2Vjb25kcywgbXNQZXJTZWNvbmRD
b25zdGFudCkpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmRvdWJsZVRvSW50
KG1fb3V0LmRvdWJsZVN1YihtaWxsaXNlY29uZHMsIG1fb3V0LmRvdWJsZU11bChzZWNvbmRzLCBt
c1BlclNlY29uZENvbnN0YW50KSkpOworICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5zZWxl
Y3QobV9vdXQuZG91YmxlTm90RXF1YWxPclVub3JkZXJlZChtaWxsaXNlY29uZHMsIG1pbGxpc2Vj
b25kcyksIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpKSwgYm94SW50
MzIocmVzdWx0KSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRH
ZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZv
ck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfeWVh
ciwgb3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgICAg
IGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZVVU
Q0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWVVVENfeWVhciwgb3BlcmF0aW9uRGF0ZUdldFVUQ0Z1bGxZZWFyKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNpYzoKKyAg
ICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5E
YXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29y
aWFuRGF0ZVRpbWVfbW9udGgsIG9wZXJhdGlvbkRhdGVHZXRNb250aCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTW9udGhJbnRyaW5zaWM6Cisg
ICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFu
RGF0ZVRpbWVVVENDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lVVRDX21vbnRoLCBvcGVyYXRpb25EYXRlR2V0VVRDTW9udGgpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldERhdGVJbnRyaW5z
aWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3Jl
Z29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2NhY2hl
ZEdyZWdvcmlhbkRhdGVUaW1lX21vbnRoRGF5LCBvcGVyYXRpb25EYXRlR2V0RGF0ZSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJp
bnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9n
cmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFf
Y2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfbW9udGhEYXksIG9wZXJhdGlvbkRhdGVHZXRVVENE
YXRlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRE
YXlJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5j
ZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VE
YXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX3dlZWtEYXksIG9wZXJhdGlvbkRhdGVHZXREYXkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0Rh
eUludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNl
RGF0YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5j
ZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfd2Vla0RheSwgb3BlcmF0aW9uRGF0ZUdl
dFVUQ0RheSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBl
R2V0SG91cnNJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJ
bnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5z
dGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX2hvdXIsIG9wZXJhdGlvbkRhdGVHZXRI
b3Vycyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0
VVRDSG91cnNJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJ
bnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRl
SW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX2hvdXIsIG9wZXJhdGlvbkRh
dGVHZXRVVENIb3Vycyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJv
dG90eXBlR2V0TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVh
cHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBz
LkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfbWludXRlLCBvcGVyYXRp
b25EYXRlR2V0TWludXRlcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRl
UHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2Rl
KG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1T
LCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfbWlu
dXRlLCBvcGVyYXRpb25EYXRlR2V0VVRDTWludXRlcyk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgICAg
IGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNh
Y2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRp
bWVfc2Vjb25kLCBvcGVyYXRpb25EYXRlR2V0U2Vjb25kcyk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNpYzoKKyAgICAg
ICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRl
VGltZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29y
aWFuRGF0ZVRpbWVVVENfc2Vjb25kLCBvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25kcyk7CisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9m
ZnNldEludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlV2l0aENhbGxiYWNrKG1faGVh
cHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBz
LkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfdXRjT2Zmc2V0SW5NaW51
dGUsIG9wZXJhdGlvbkRhdGVHZXRUaW1lem9uZU9mZnNldCwgWyZdIChMVmFsdWUgb2Zmc2V0KSB7
CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fb3V0Lm5lZyhvZmZzZXQpOworICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRZ
ZWFySW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGVXaXRoQ2FsbGJhY2sobV9oZWFw
cy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMsIG1faGVhcHMu
RGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV95ZWFyLCBvcGVyYXRpb25E
YXRlR2V0WWVhciwgWyZdIChMVmFsdWUgeWVhcikgeworICAgICAgICAgICAgICAgIHJldHVybiBt
X291dC5zdWIoeWVhciwgbV9vdXQuY29uc3RJbnQzMigxOTAwKSk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgfQogICAgIAogICAgIHZv
aWQgZW1pdFN3aXRjaEZvck11bHRpQnlPZmZzZXQoTFZhbHVlIGJhc2UsIGJvb2wgc3RydWN0dXJl
c0NoZWNrZWQsIFZlY3RvcjxTd2l0Y2hDYXNlLCAyPiYgY2FzZXMsIExCYXNpY0Jsb2NrIGV4aXQp
CiAgICAgewpAQCAtMTU3NTYsNiArMTU4NjksMTMgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAg
ICAgICAgc3BlY3VsYXRlRGF0YVZpZXdPYmplY3QoZWRnZSwgcmVzdWx0KTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CisKKyAgICBMVmFsdWUgbG93RGF0ZU9iamVjdChFZGdlIGVkZ2Up
CisgICAgeworICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93Q2VsbChlZGdlKTsKKyAgICAgICAg
c3BlY3VsYXRlRGF0ZU9iamVjdChlZGdlLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KICAgICAKICAgICBMVmFsdWUgbG93U3RyaW5nKEVkZ2UgZWRnZSwgT3BlcmFuZFNw
ZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQogICAgIHsK
QEAgLTE2MjQwLDYgKzE2MzYwLDkgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgY2Fz
ZSBEZXJpdmVkQXJyYXlVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVEZXJpdmVkQXJyYXkoZWRn
ZSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlT2JqZWN0VXNlOgorICAg
ICAgICAgICAgc3BlY3VsYXRlRGF0ZU9iamVjdChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZU1hcE9iamVj
dChlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTY3NjYsNiArMTY4ODksMTcgQEAgY2xh
c3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgc3BlY3VsYXRlUHJvbWlzZU9iamVjdChlZGdlLCBs
b3dDZWxsKGVkZ2UpKTsKICAgICB9CiAKKyAgICB2b2lkIHNwZWN1bGF0ZURhdGVPYmplY3QoRWRn
ZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKAorICAg
ICAgICAgICAganNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjRGF0ZU9iamVjdCwgaXNOb3RU
eXBlKGNlbGwsIEpTRGF0ZVR5cGUpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZURhdGVP
YmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlRGF0ZU9iamVjdChlZGdl
LCBsb3dDZWxsKGVkZ2UpKTsKKyAgICB9CisKICAgICB2b2lkIHNwZWN1bGF0ZU1hcE9iamVjdChF
ZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVyc2lvbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVyc2lvbi5jcHAKaW5k
ZXggYWU5ZjRlMGNhN2NjYjAyZmFiNDJiZmMyZTI2NDliMDJiYThlZDk0YS4uNWIyYWExYTcxZmZm
NWE1MGRkMzExZWRkMjVlYWRkMTgyZTdiN2M5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcApAQCAtOTcsOCArOTcsOCBAQCBTdHJpbmcg
Zm9ybWF0RGF0ZVRpbWUoY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUmIHQsIERhdGVUaW1lRm9ybWF0
IGZvcm1hdCwgYm9vbCBhcwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBHTVQiKTsK
IAogICAgICAgICBpZiAoIWFzVVRDVmFyaWFudCkgewotICAgICAgICAgICAgaW50IG9mZnNldCA9
IGFicyh0LnV0Y09mZnNldCgpKSAvIDYwOwotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodC51
dGNPZmZzZXQoKSA8IDAgPyAnLScgOiAnKycpOworICAgICAgICAgICAgaW50IG9mZnNldCA9IGFi
cyh0LnV0Y09mZnNldEluTWludXRlKCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodC51
dGNPZmZzZXRJbk1pbnV0ZSgpIDwgMCA/ICctJyA6ICcrJyk7CiAgICAgICAgICAgICBhcHBlbmRO
dW1iZXI8Mj4oYnVpbGRlciwgb2Zmc2V0IC8gNjApOwogICAgICAgICAgICAgYXBwZW5kTnVtYmVy
PDI+KGJ1aWxkZXIsIG9mZnNldCAlIDYwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKaW5kZXggN2I0ZTQ1Y2VhNDE5OWExODcyMzc5MTQxY2Q1
ZTIyZTE3NmQzNGU0Ny4uOGY1YzJlZDIyNjMyOTVjYmM0NTdlZTc2ZWFlYjM3NGQzZTdmMmEyMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCkBA
IC01NywxMyArNTcsMTIgQEAgdm9pZCBEYXRlSW5zdGFuY2U6OmRlc3Ryb3koSlNDZWxsKiBjZWxs
KQogICAgIHN0YXRpY19jYXN0PERhdGVJbnN0YW5jZSo+KGNlbGwpLT5EYXRlSW5zdGFuY2U6On5E
YXRlSW5zdGFuY2UoKTsKIH0KIAotY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIERhdGVJbnN0YW5j
ZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkgY29uc3QKK2NvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBEYXRlSW5zdGFuY2U6OmNhbGN1bGF0
ZUdyZWdvcmlhbkRhdGVUaW1lKFZNJiB2bSkgY29uc3QKIHsKICAgICBkb3VibGUgbWlsbGkgPSBp
bnRlcm5hbE51bWJlcigpOwogICAgIGlmIChzdGQ6OmlzbmFuKG1pbGxpKSkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGlmICghbV9kYXRhKQogICAgICAgICBtX2RhdGEgPSB2bS5kYXRlSW5z
dGFuY2VDYWNoZS5hZGQobWlsbGkpOwogCkBAIC03NCwxMyArNzMsMTIgQEAgY29uc3QgR3JlZ29y
aWFuRGF0ZVRpbWUqIERhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWUoSlNH
bG9iYWxPYmplY3QKICAgICByZXR1cm4gJm1fZGF0YS0+bV9jYWNoZWRHcmVnb3JpYW5EYXRlVGlt
ZTsKIH0KIAotY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIERhdGVJbnN0YW5jZTo6Y2FsY3VsYXRl
R3JlZ29yaWFuRGF0ZVRpbWVVVEMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QK
K2NvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBEYXRlSW5zdGFuY2U6OmNhbGN1bGF0ZUdyZWdvcmlh
bkRhdGVUaW1lVVRDKFZNJiB2bSkgY29uc3QKIHsKICAgICBkb3VibGUgbWlsbGkgPSBpbnRlcm5h
bE51bWJlcigpOwogICAgIGlmIChzdGQ6OmlzbmFuKG1pbGxpKSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGlmICghbV9kYXRhKQogICAgICAgICBtX2RhdGEgPSB2bS5kYXRlSW5zdGFuY2VD
YWNoZS5hZGQobWlsbGkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlSW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJ
bnN0YW5jZS5oCmluZGV4IDM1NzhhYjgyYTQ2NTM2MDFjMDlkODBkZDA0NTQ0NWViODA0MjljNmMu
LjllNzc4Mzk3MTRmY2RjMTdiODdhNjRkOTdiYjg0MGY5N2NhZGM0NmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCkBAIC01NCwyOCArNTQsMzEgQEAg
Y2xhc3MgRGF0ZUluc3RhbmNlIGZpbmFsIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsK
IAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogZ3JlZ29yaWFuRGF0ZVRpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QK
KyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUoVk0mIHZtKSBj
b25zdAogICAgIHsKICAgICAgICAgaWYgKG1fZGF0YSAmJiBtX2RhdGEtPm1fZ3JlZ29yaWFuRGF0
ZVRpbWVDYWNoZWRGb3JNUyA9PSBpbnRlcm5hbE51bWJlcigpKQogICAgICAgICAgICAgcmV0dXJu
ICZtX2RhdGEtPm1fY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWU7Ci0gICAgICAgIHJldHVybiBjYWxj
dWxhdGVHcmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gY2Fs
Y3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIH0KIAotICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZVVUQyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KSBjb25zdAorICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGlt
ZVVUQyhWTSYgdm0pIGNvbnN0CiAgICAgewogICAgICAgICBpZiAobV9kYXRhICYmIG1fZGF0YS0+
bV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TID09IGludGVybmFsTnVtYmVyKCkpCiAg
ICAgICAgICAgICByZXR1cm4gJm1fZGF0YS0+bV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQzsK
LSAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVj
dCk7CisgICAgICAgIHJldHVybiBjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKEpTRGF0ZVR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKKyAg
ICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSW50ZXJuYWxOdW1iZXIoKSB7IHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoRGF0ZUluc3RhbmNlLCBtX2ludGVybmFsTnVtYmVyKTsgfQorICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZEYXRhKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKERhdGVJ
bnN0YW5jZSwgbV9kYXRhKTsgfQorCiBwcml2YXRlOgotICAgIEpTX0VYUE9SVF9QUklWQVRFIGNv
bnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZShKU0dsb2Jh
bE9iamVjdCopIGNvbnN0OwotICAgIEpTX0VYUE9SVF9QUklWQVRFIGNvbnN0IEdyZWdvcmlhbkRh
dGVUaW1lKiBjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZVVUQyhKU0dsb2JhbE9iamVjdCopIGNv
bnN0OworICAgIEpTX0VYUE9SVF9QUklWQVRFIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBjYWxj
dWxhdGVHcmVnb3JpYW5EYXRlVGltZShWTSYpIGNvbnN0OworICAgIEpTX0VYUE9SVF9QUklWQVRF
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZVVUQyhW
TSYpIGNvbnN0OwogCiAgICAgZG91YmxlIG1faW50ZXJuYWxOdW1iZXIgeyBQTmFOIH07CiAgICAg
bXV0YWJsZSBSZWZQdHI8RGF0ZUluc3RhbmNlRGF0YT4gbV9kYXRhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlQ2FjaGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmgKaW5kZXggNzU2NDBlYjM3
MzA0MWM4ZTkzYzRiOTI2NjZiOGYxZmUyMzczODVhMS4uMmM0ZmI1MjJkM2VmOWI2MmU4YjQwYmUz
M2VlOGVlY2VhZTEwYjBhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUluc3RhbmNlQ2FjaGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlSW5zdGFuY2VDYWNoZS5oCkBAIC0zNywxNyArMzcsMTggQEAgY2xhc3MgRGF0ZUluc3Rh
bmNlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGVJbnN0YW5jZURhdGE+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPERhdGVJbnN0YW5jZURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRGF0ZUluc3RhbmNlRGF0YSk7IH0KIAotICAgIGRvdWJsZSBtX2dyZWdvcmlhbkRh
dGVUaW1lQ2FjaGVkRm9yTVM7CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkdyZWdvcmlh
bkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRGF0ZUluc3Rh
bmNlRGF0YSwgbV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKTsgfQorICAgIHN0YXRpYyBw
dHJkaWZmX3Qgb2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpIHsgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihEYXRlSW5zdGFuY2VEYXRhLCBtX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKTsg
fQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hl
ZEZvck1TKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKERhdGVJbnN0YW5jZURhdGEsIG1fZ3Jl
Z29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUyk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9m
ZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VU
T0YoRGF0ZUluc3RhbmNlRGF0YSwgbV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQyk7IH0KKwor
ICAgIGRvdWJsZSBtX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMgeyBQTmFOIH07CiAgICAg
R3JlZ29yaWFuRGF0ZVRpbWUgbV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZTsKLSAgICBkb3VibGUg
bV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TOworICAgIGRvdWJsZSBtX2dyZWdvcmlh
bkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMgeyBQTmFOIH07CiAgICAgR3JlZ29yaWFuRGF0ZVRpbWUg
bV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQzsKIAogcHJpdmF0ZToKLSAgICBEYXRlSW5zdGFu
Y2VEYXRhKCkKLSAgICAgICAgOiBtX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoUE5hTikK
LSAgICAgICAgLCBtX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoUE5hTikKLSAgICB7
Ci0gICAgfQorICAgIERhdGVJbnN0YW5jZURhdGEoKSA9IGRlZmF1bHQ7CiB9OwogCiBjbGFzcyBE
YXRlSW5zdGFuY2VDYWNoZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVQcm90b3R5cGUuY3BwCmluZGV4IDIzOWU5MzJlZWRjNGZhZDUwN2JlYTE4MzRmN2Q0OTc1ZTY5
ZjEyY2UuLjJhZmYwZjczZDdjNjQ0YzY4ZGFkNWMxNjdmZmUzZjM3YmQ0N2M4NzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCkBAIC0zMTMs
NyArMzEzLDcgQEAgc3RhdGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlRGF0ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmEKIHN0YXRpYyBKU0NlbGwqIGZvcm1h
dExvY2FsZURhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIERhdGVJbnN0YW5jZSogZGF0ZU9iamVjdCwgZG91YmxlLCBMb2NhbGVEYXRlVGltZUZv
cm1hdCBmb3JtYXQpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGNv
bnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGVPYmplY3QtPmdy
ZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRp
bWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZU9iamVjdC0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0p
OwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBqc05vbnRyaXZp
YWxTdHJpbmcodm0sICJJbnZhbGlkIERhdGUiX3MpOwogICAgIHJldHVybiBmb3JtYXRMb2NhbGVE
YXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAqZ3JlZ29yaWFuRGF0ZVRpbWUsIGZvcm1hdCk7
CkBAIC0zMzEsOCArMzMxLDggQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZvcm1hdGVEYXRlSW5z
dGFuY2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0KICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKICAgICBjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBhc1VUQ1ZhcmlhbnQKLSAgICAg
ICAgPyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KQotICAg
ICAgICA6IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOworICAg
ICAgICA/IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSkKKyAgICAgICAgOiB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0
ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2aWFsU3RyaW5n
KHZtLCBTdHJpbmcoIkludmFsaWQgRGF0ZSJfcykpKTsKIApAQCAtNDU0LDI1ICs0NTQsMjYgQEAg
Y29uc3QgQ2xhc3NJbmZvIERhdGVQcm90b3R5cGU6OnNfaW5mbyA9IHsiT2JqZWN0IiwgJkpTTm9u
RmluYWxPYmplY3Q6OnNfaW5mbywgJmQKICAgdG9Mb2NhbGVTdHJpbmcgICAgICAgIGRhdGVQcm90
b0Z1bmNUb0xvY2FsZVN0cmluZyAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCiAg
IHRvTG9jYWxlRGF0ZVN0cmluZyAgICBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVEYXRlU3RyaW5nICAg
ICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAogICB0b0xvY2FsZVRpbWVTdHJpbmcgICAgZGF0
ZVByb3RvRnVuY1RvTG9jYWxlVGltZVN0cmluZyAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAg
IDAKLSAgdmFsdWVPZiAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRUaW1lICAgICAgICAg
ICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFRpbWUgICAgICAgICAgICAg
ICBkYXRlUHJvdG9GdW5jR2V0VGltZSAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
ICAgICAgMAotICBnZXRGdWxsWWVhciAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFy
ICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VVRDRnVsbFllYXIg
ICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhciAgICAgICAgICBEb250RW51bXxGdW5j
dGlvbiAgICAgICAwCi0gIGdldE1vbnRoICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0TW9u
dGggICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRVVENNb250
aCAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoICAgICAgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0RGF0ZSAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNH
ZXREYXRlICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFVU
Q0RhdGUgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZSAgICAgICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXREYXkgICAgICAgICAgICAgICAgZGF0ZVByb3Rv
RnVuY0dldERheSAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAg
Z2V0VVRDRGF5ICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENEYXkgICAgICAgICAgICAg
ICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldEhvdXJzICAgICAgICAgICAgICBkYXRl
UHJvdG9GdW5jR2V0SG91cnMgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAg
MAotICBnZXRVVENIb3VycyAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzICAgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0TWludXRlcyAgICAgICAgICAg
IGRhdGVQcm90b0Z1bmNHZXRNaW51dGVzICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAg
ICAgICAwCi0gIGdldFVUQ01pbnV0ZXMgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRl
cyAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRTZWNvbmRzICAgICAg
ICAgICAgZGF0ZVByb3RvRnVuY0dldFNlY29uZHMgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uICAgICAgIDAKLSAgZ2V0VVRDU2Vjb25kcyAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENT
ZWNvbmRzICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldE1pbGxpc2Vj
b25kcyAgICAgICBkYXRlUHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRzICAgICAgICAgRG9udEVudW18
RnVuY3Rpb24gICAgICAgMAotICBnZXRVVENNaWxsaXNlY29uZHMgICAgZGF0ZVByb3RvRnVuY0dl
dFVUQ01pbGxpc2Vjb25kcyAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VGlt
ZXpvbmVPZmZzZXQgICAgIGRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNldCAgICAgICBEb250
RW51bXxGdW5jdGlvbiAgICAgICAwCisgIHZhbHVlT2YgICAgICAgICAgICAgICBkYXRlUHJvdG9G
dW5jR2V0VGltZSAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0
ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWMKKyAgZ2V0VGltZSAgICAgICAgICAgICAgIGRhdGVQ
cm90b0Z1bmNHZXRUaW1lICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAw
ICBEYXRlUHJvdG90eXBlR2V0VGltZUludHJpbnNpYworICBnZXRGdWxsWWVhciAgICAgICAgICAg
ZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAg
ICAgIDAgIERhdGVQcm90b3R5cGVHZXRGdWxsWWVhckludHJpbnNpYworICBnZXRVVENGdWxsWWVh
ciAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyICAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRVVENGdWxsWWVhckludHJpbnNpYworICBn
ZXRNb250aCAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldE1vbnRoICAgICAgICAgICAgICAg
IERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNp
YworICBnZXRVVENNb250aCAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoICAgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRVVENNb250
aEludHJpbnNpYworICBnZXREYXRlICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldERhdGUg
ICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVH
ZXREYXRlSW50cmluc2ljCisgIGdldFVUQ0RhdGUgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0
VVRDRGF0ZSAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3Rv
dHlwZUdldFVUQ0RhdGVJbnRyaW5zaWMKKyAgZ2V0RGF5ICAgICAgICAgICAgICAgIGRhdGVQcm90
b0Z1bmNHZXREYXkgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBE
YXRlUHJvdG90eXBlR2V0RGF5SW50cmluc2ljCisgIGdldFVUQ0RheSAgICAgICAgICAgICBkYXRl
UHJvdG9GdW5jR2V0VVRDRGF5ICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAg
MCAgRGF0ZVByb3RvdHlwZUdldFVUQ0RheUludHJpbnNpYworICBnZXRIb3VycyAgICAgICAgICAg
ICAgZGF0ZVByb3RvRnVuY0dldEhvdXJzICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
ICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYworICBnZXRVVENIb3VycyAg
ICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzICAgICAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYworICBnZXRN
aW51dGVzICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMgICAgICAgICAgICAgIERv
bnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRNaW51dGVzSW50cmluc2lj
CisgIGdldFVUQ01pbnV0ZXMgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRlcyAgICAg
ICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ01pbnV0
ZXNJbnRyaW5zaWMKKyAgZ2V0U2Vjb25kcyAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRTZWNv
bmRzICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBl
R2V0U2Vjb25kc0ludHJpbnNpYworICBnZXRVVENTZWNvbmRzICAgICAgICAgZGF0ZVByb3RvRnVu
Y0dldFVUQ1NlY29uZHMgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQ
cm90b3R5cGVHZXRVVENTZWNvbmRzSW50cmluc2ljCisgIGdldE1pbGxpc2Vjb25kcyAgICAgICBk
YXRlUHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRzICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAg
ICAgMCAgRGF0ZVByb3RvdHlwZUdldE1pbGxpc2Vjb25kc0ludHJpbnNpYworICBnZXRVVENNaWxs
aXNlY29uZHMgICAgZGF0ZVByb3RvRnVuY0dldFVUQ01pbGxpc2Vjb25kcyAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJbnRyaW5z
aWMKKyAgZ2V0VGltZXpvbmVPZmZzZXQgICAgIGRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNl
dCAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VGltZXpv
bmVPZmZzZXRJbnRyaW5zaWMKKyAgZ2V0WWVhciAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNH
ZXRZZWFyICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJv
dG90eXBlR2V0WWVhckludHJpbnNpYwogICBzZXRUaW1lICAgICAgICAgICAgICAgZGF0ZVByb3Rv
RnVuY1NldFRpbWUgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDEKICAg
c2V0TWlsbGlzZWNvbmRzICAgICAgIGRhdGVQcm90b0Z1bmNTZXRNaWxsaVNlY29uZHMgICAgICAg
ICBEb250RW51bXxGdW5jdGlvbiAgICAgICAxCiAgIHNldFVUQ01pbGxpc2Vjb25kcyAgICBkYXRl
UHJvdG9GdW5jU2V0VVRDTWlsbGlzZWNvbmRzICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAg
MQpAQCAtNDg5LDcgKzQ5MCw2IEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlUHJvdG90eXBlOjpzX2lu
Zm8gPSB7Ik9iamVjdCIsICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8sICZkCiAgIHNldEZ1bGxZ
ZWFyICAgICAgICAgICBkYXRlUHJvdG9GdW5jU2V0RnVsbFllYXIgICAgICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gICAgICAgMwogICBzZXRVVENGdWxsWWVhciAgICAgICAgZGF0ZVByb3RvRnVu
Y1NldFVUQ0Z1bGxZZWFyICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDMKICAgc2V0
WWVhciAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNTZXRZZWFyICAgICAgICAgICAgICAgICBE
b250RW51bXxGdW5jdGlvbiAgICAgICAxCi0gIGdldFllYXIgICAgICAgICAgICAgICBkYXRlUHJv
dG9GdW5jR2V0WWVhciAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAog
ICB0b0pTT04gICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY1RvSlNPTiAgICAgICAgICAgICAg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDEKIEBlbmQKICovCkBAIC01NDksNyArNTQ5LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9JU09TdHJpbmco
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodGhpc0Rh
dGVPYmotPmludGVybmFsTnVtYmVyKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiSW52YWxp
ZCBEYXRlIl9zKSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0
ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsK
KyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRp
bWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2aWFsU3RyaW5nKHZt
LCBTdHJpbmcoIkludmFsaWQgRGF0ZSJfcykpKTsKICAgICAvLyBNYXhpbXVtIGFtb3VudCBvZiBz
cGFjZSB3ZSBuZWVkIGluIGJ1ZmZlcjogNyAobWF4LiBkaWdpdHMgaW4geWVhcikgKyAyICogNSAo
MiBjaGFyYWN0ZXJzIGVhY2ggZm9yIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kKSAr
IDQgKC4gKyAzIGRpZ2l0cyBmb3IgbWlsbGlzZWNvbmRzKQpAQCAtNjY0LDcgKzY2NCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0g
ICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVP
YmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVU
aW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnllYXIoKSkpOwpAQCAtNjc5LDcgKzY3OSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAg
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVU
aW1lVVRDKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnllYXIoKSkpOwpAQCAtNjk0LDcgKzY5NCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1vbnRoKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0g
ICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVP
YmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVU
aW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKQEAgLTcwOSw3ICs3MDksNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNb250aChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZQogICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRl
VGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aCgpKSk7CkBAIC03MjQsNyArNzI0LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RGF0ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAot
ICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRl
T2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRl
VGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVt
YmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aERheSgpKSk7CkBAIC03MzksNyArNzM5LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAK
LSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGhEYXkoKSkpOwpAQCAtNzU0LDcgKzc1
NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERheShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0
ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0g
dGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3Qg
R3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdv
cmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPndlZWtEYXkoKSkpOwpAQCAtNzY5LDcgKzc2
OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0Rh
eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0
ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0g
dGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCk7CisgICAgY29u
c3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdy
ZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPndlZWtEYXkoKSkpOwpAQCAtNzg0
LDcgKzc4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dEhvdXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgaWYgKFVOTElLRUxZKCF0
aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAg
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPmhvdXIoKSkpOwpAQCAtNzk5LDcg
Kzc5OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVU
Q0hvdXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgaWYgKFVOTElLRUxZKCF0aGlz
RGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1l
ID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCk7CisgICAg
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPmhvdXIoKSkpOwpAQCAtODE0
LDcgKzgxNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dE1pbnV0ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgaWYgKFVOTElLRUxZKCF0
aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAg
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1pbnV0ZSgpKSk7CkBAIC04Mjks
NyArODI5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0
VVRDTWludXRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBpZiAoVU5MSUtFTFkoIXRo
aXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRp
bWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9i
ai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKTsKQEAg
LTg0NCw3ICs4NDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNHZXRTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIGlmIChVTkxJS0VM
WSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5E
YXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOwor
ICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRl
T2JqLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5zZWNvbmQoKSkpOwpAQCAt
ODU5LDcgKzg1OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVu
Y0dldFVUQ1NlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgaWYgKFVOTElLRUxZ
KCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRh
dGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCk7
CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0Rh
dGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVU
aW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnNlY29uZCgpKSk7
CkBAIC04ODAsNyArODgwLDggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jR2V0TWlsbGlTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIAogICAgIGRvdWJs
ZSBzZWNzID0gZmxvb3IobWlsbGkgLyBtc1BlclNlY29uZCk7CiAgICAgZG91YmxlIG1zID0gbWls
bGkgLSBzZWNzICogbXNQZXJTZWNvbmQ7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihtcykpOworICAgIC8vIFNpbmNlIHRpbWVDbGlwIG1ha2VzIGludGVybmFsTnVtYmVyIGlu
dGVnZXIgbWlsbGlzZWNvbmRzLCB0aGlzIHJlc3VsdCBpcyBhbHdheXMgaW50MzJfdC4KKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PGludDMyX3Q+KG1zKSkp
OwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENN
aWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCkBAIC04OTgsNyArODk5LDggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG8KIAogICAg
IGRvdWJsZSBzZWNzID0gZmxvb3IobWlsbGkgLyBtc1BlclNlY29uZCk7CiAgICAgZG91YmxlIG1z
ID0gbWlsbGkgLSBzZWNzICogbXNQZXJTZWNvbmQ7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihtcykpOworICAgIC8vIFNpbmNlIHRpbWVDbGlwIG1ha2VzIGludGVybmFsTnVt
YmVyIGludGVnZXIgbWlsbGlzZWNvbmRzLCB0aGlzIHJlc3VsdCBpcyBhbHdheXMgaW50MzJfdC4K
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PGludDMyX3Q+
KG1zKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNH
ZXRUaW1lem9uZU9mZnNldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKQEAgLTkxMCwxMCArOTEyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
CiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1l
KGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRh
dGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdy
ZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkp
OwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLWdyZWdvcmlhbkRhdGVUaW1l
LT51dGNPZmZzZXQoKSAvIG1pbnV0ZXNQZXJIb3VyKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcigtZ3JlZ29yaWFuRGF0ZVRpbWUtPnV0Y09mZnNldEluTWludXRlKCkpKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VGltZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKQEAgLTk1
MSwxMyArOTUzLDEyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzZXROZXdWYWx1ZUZyb21UaW1l
QXJncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiAgICAgZG91YmxlIG1zID0g
bWlsbGkgLSBzZWNzICogbXNQZXJTZWNvbmQ7CiAKICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogb3RoZXIgPSBpbnB1dFRpbWVUeXBlID09IFdURjo6VVRDVGltZQotICAgICAgICA/IHRoaXNE
YXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpCi0gICAgICAgIDogdGhp
c0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgICAgID8gdGhp
c0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKQorICAgICAgICA6IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFvdGhlcikKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKIAotICAgIEdyZWdvcmlhbkRhdGVUaW1lIGdyZWdv
cmlhbkRhdGVUaW1lOwotICAgIGdyZWdvcmlhbkRhdGVUaW1lLmNvcHlGcm9tKCpvdGhlcik7Cisg
ICAgR3JlZ29yaWFuRGF0ZVRpbWUgZ3JlZ29yaWFuRGF0ZVRpbWUoKm90aGVyKTsKICAgICBib29s
IHN1Y2Nlc3MgPSBmaWxsU3RydWN0dXJlc1VzaW5nVGltZUFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIG51bUFyZ3NUb1VzZSwgJm1zLCAmZ3JlZ29yaWFuRGF0ZVRpbWUpOwogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIGlmICghc3VjY2Vz
cykgewpAQCAtOTk0LDExICs5OTUsMTEgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHNldE5ld1Zh
bHVlRnJvbURhdGVBcmdzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICBl
bHNlIHsgCiAgICAgICAgIG1zID0gbWlsbGkgLSBmbG9vcihtaWxsaSAvIG1zUGVyU2Vjb25kKSAq
IG1zUGVyU2Vjb25kOyAKICAgICAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIG90aGVyID0g
aW5wdXRUaW1lVHlwZSA9PSBXVEY6OlVUQ1RpbWUKLSAgICAgICAgICAgID8gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCkKLSAgICAgICAgICAgIDogdGhpc0Rh
dGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgICAgICAgICA/IHRo
aXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSkKKyAgICAgICAgICAgIDogdGhpc0Rh
dGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICAgICAgaWYgKCFvdGhlcikKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7Ci0gICAgICAgIGdyZWdvcmlh
bkRhdGVUaW1lLmNvcHlGcm9tKCpvdGhlcik7CisgICAgICAgIGdyZWdvcmlhbkRhdGVUaW1lID0g
Km90aGVyOwogICAgIH0KICAgICAKICAgICBib29sIHN1Y2Nlc3MgPSBmaWxsU3RydWN0dXJlc1Vz
aW5nRGF0ZUFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIG51bUFyZ3NUb1VzZSwgJm1zLCAm
Z3JlZ29yaWFuRGF0ZVRpbWUpOwpAQCAtMTEwOSw4ICsxMTEwLDggQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0WWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LAogICAgIGVsc2UgewogICAgICAgICBkb3VibGUgc2VjcyA9IGZsb29yKG1pbGxpIC8g
bXNQZXJTZWNvbmQpOwogICAgICAgICBtcyA9IG1pbGxpIC0gc2VjcyAqIG1zUGVyU2Vjb25kOwot
ICAgICAgICBpZiAoY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIG90aGVyID0gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCkpCi0gICAgICAgICAgICBncmVnb3JpYW5E
YXRlVGltZS5jb3B5RnJvbSgqb3RoZXIpOworICAgICAgICBpZiAoY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIG90aGVyID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKSkKKyAgICAg
ICAgICAgIGdyZWdvcmlhbkRhdGVUaW1lID0gKm90aGVyOwogICAgIH0KIAogICAgIGRvdWJsZSB5
ZWFyID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b0ludGVnZXJQcmVzZXJ2ZU5hTihnbG9iYWxP
YmplY3QpOwpAQCAtMTEzNiw3ICsxMTM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jR2V0WWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAg
IGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9i
YWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGlt
ZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3Jp
YW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKaW5kZXggYTEyYTI0
MDU1YzcyOTBhM2ExYzk1NmY2YWI0ZTc2MzdmODdmYmIzNC4uYTQxYjU3YjJjYmNiYjFjMmQ1ZDVm
NmNhOTliNmFkNjBiNGVjMmE5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50cmluc2ljLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRyaW5zaWMuY3BwCkBAIC04Myw2ICs4Myw0NCBAQCBjb25zdCBjaGFyKiBpbnRyaW5zaWNOYW1l
KEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgICAgIHJldHVybiAiQ2hhckNvZGVBdEludHJpbnNp
YyI7CiAgICAgY2FzZSBDaGFyQXRJbnRyaW5zaWM6CiAgICAgICAgIHJldHVybiAiQ2hhckF0SW50
cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljOgorICAgICAg
ICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQ
cm90b3R5cGVHZXRGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90
eXBlR2V0RnVsbFllYXJJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0Z1
bGxZZWFySW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRVVENGdWxs
WWVhckludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TW9udGhJbnRyaW5zaWM6
CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50cmluc2ljIjsKKyAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRVVENNb250aEludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJE
YXRlUHJvdG90eXBlR2V0VVRDTW9udGhJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlw
ZUdldERhdGVJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldERhdGVJ
bnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0RhdGVJbnRyaW5zaWM6Cisg
ICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVUQ0RhdGVJbnRyaW5zaWMiOworICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldERheUludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJv
dG90eXBlR2V0RGF5SW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENEYXlJ
bnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVUQ0RheUludHJpbnNp
YyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0SG91cnNJbnRyaW5zaWM6CisgICAgICAgIHJl
dHVybiAiRGF0ZVByb3RvdHlwZUdldEhvdXJzSW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90
b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBl
R2V0VVRDSG91cnNJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1pbnV0ZXNJ
bnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldE1pbnV0ZXNJbnRyaW5z
aWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01pbnV0ZXNJbnRyaW5zaWM6CisgICAg
ICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVUQ01pbnV0ZXNJbnRyaW5zaWMiOworICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldFNlY29uZHNJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0
ZVByb3RvdHlwZUdldFNlY29uZHNJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdl
dFVUQ1NlY29uZHNJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVU
Q1NlY29uZHNJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1pbGxpc2Vjb25k
c0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRz
SW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJbnRy
aW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVUQ01pbGxpc2Vjb25kc0lu
dHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VGltZXpvbmVPZmZzZXRJbnRyaW5z
aWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFRpbWV6b25lT2Zmc2V0SW50cmlu
c2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRZZWFySW50cmluc2ljOgorICAgICAgICBy
ZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRZZWFySW50cmluc2ljIjsKICAgICBjYXNlIEZyb21DaGFy
Q29kZUludHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJGcm9tQ2hhckNvZGVJbnRyaW5zaWMiOwog
ICAgIGNhc2UgUG93SW50cmluc2ljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50cmluc2ljLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRy
aW5zaWMuaAppbmRleCBlNTFiODM5ZDk4NjY3Njg5ODNlNzUxOGUyNDc1ZWEzNThkOWZkODUxLi5m
ZTJlOTEwZjkxZWRlYWVkMjYwOWY0MjQ3NGUyODA0YmI2ZmZjY2U4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaApAQCAtNTQsNiArNTQsMjUgQEAgZW51bSBJbnRy
aW5zaWMgOiB1aW50OF90IHsKICAgICBBcnJheUluZGV4T2ZJbnRyaW5zaWMsCiAgICAgQ2hhckNv
ZGVBdEludHJpbnNpYywKICAgICBDaGFyQXRJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdl
dFRpbWVJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldEZ1bGxZZWFySW50cmluc2ljLAor
ICAgIERhdGVQcm90b3R5cGVHZXRVVENGdWxsWWVhckludHJpbnNpYywKKyAgICBEYXRlUHJvdG90
eXBlR2V0TW9udGhJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ01vbnRoSW50cmlu
c2ljLAorICAgIERhdGVQcm90b3R5cGVHZXREYXRlSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5
cGVHZXRVVENEYXRlSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXREYXlJbnRyaW5zaWMs
CisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ0RheUludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBl
R2V0SG91cnNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ0hvdXJzSW50cmluc2lj
LAorICAgIERhdGVQcm90b3R5cGVHZXRNaW51dGVzSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5
cGVHZXRVVENNaW51dGVzSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRTZWNvbmRzSW50
cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRVVENTZWNvbmRzSW50cmluc2ljLAorICAgIERh
dGVQcm90b3R5cGVHZXRNaWxsaXNlY29uZHNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdl
dFVUQ01pbGxpc2Vjb25kc0ludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VGltZXpvbmVP
ZmZzZXRJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFllYXJJbnRyaW5zaWMsCiAgICAg
RnJvbUNoYXJDb2RlSW50cmluc2ljLAogICAgIFBvd0ludHJpbnNpYywKICAgICBGbG9vckludHJp
bnNpYywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1h
dGguY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAKaW5k
ZXggNzk5NmE4ZjhhZTcwZWYwYzU0ZGZiYjI4ZDMwNmMxOWZiYzVhYWYyMS4uNmM4YjM3OTc2N2Y0
NjMxMGNmMzUzZGE0OGU0MWUzYTZiNWUyMmEzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAKQEAgLTIxOSw3ICsyMTksNyBAQCB2b2lkIG1zVG9HcmVn
b3JpYW5EYXRlVGltZShWTSYgdm0sIGRvdWJsZSBtcywgV1RGOjpUaW1lVHlwZSBvdXRwdXRUaW1l
VHlwZSwgR3JlZwogICAgIHRtLnNldE1vbnRoKG1vbnRoRnJvbURheUluWWVhcih0bS55ZWFyRGF5
KCksIGlzTGVhcFllYXIoeWVhcikpKTsKICAgICB0bS5zZXRZZWFyKHllYXIpOwogICAgIHRtLnNl
dElzRFNUKGxvY2FsVGltZS5pc0RTVCk7Ci0gICAgdG0uc2V0VXRjT2Zmc2V0KGxvY2FsVGltZS5v
ZmZzZXQgLyBXVEY6Om1zUGVyU2Vjb25kKTsKKyAgICB0bS5zZXRVVENPZmZzZXRJbk1pbnV0ZShs
b2NhbFRpbWUub2Zmc2V0IC8gV1RGOjptc1Blck1pbnV0ZSk7CiB9CiAKIGRvdWJsZSBwYXJzZURh
dGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKFZNJiB2bSwgY29uc3QgY2hhciogZGF0ZVN0
cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuY3BwCmluZGV4IGQxYzY3
M2U2NWZhOGYyYTdiOGViY2Y0ZTVmMjE0ZmY5OGMyOGI3ZTQuLjE2ZGM5YjkxZjRmYzQzMTI4NjQz
NjQ2ZWM2ZDAzOWFlY2FkZjdjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlLmNwcApAQCAtOTYsNiArOTYsNyBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0m
IG91dCwgSlNDOjpKU1R5cGUgdHlwZSkKICAgICBDQVNFKFdpdGhTY29wZVR5cGUpCiAgICAgQ0FT
RShNb2R1bGVOYW1lc3BhY2VPYmplY3RUeXBlKQogICAgIENBU0UoUmVnRXhwT2JqZWN0VHlwZSkK
KyAgICBDQVNFKEpTRGF0ZVR5cGUpCiAgICAgQ0FTRShQcm94eU9iamVjdFR5cGUpCiAgICAgQ0FT
RShKU0dlbmVyYXRvclR5cGUpCiAgICAgQ0FTRShKU0FzeW5jR2VuZXJhdG9yVHlwZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggNmU5OTY4NzRlZjJlM2I3YWM0MmI1
MGExODRlZjQ4YjYyYWVkMGI2Yy4uODBiZDM0Y2I2MjIxYWFmYmU5NmFmMTA0NjUzMmE2N2Q3NzMy
ZWM3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKQEAgLTEwNyw2ICsx
MDcsNyBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4X3QgewogCiAgICAgTW9kdWxlTmFtZXNwYWNlT2Jq
ZWN0VHlwZSwKICAgICBSZWdFeHBPYmplY3RUeXBlLAorICAgIEpTRGF0ZVR5cGUsCiAgICAgUHJv
eHlPYmplY3RUeXBlLAogICAgIEpTR2VuZXJhdG9yVHlwZSwKICAgICBKU0FzeW5jR2VuZXJhdG9y
VHlwZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmggYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5oCmluZGV4IGY5ZTI4MTFmYmFjNGU3Nzk4NWY3NjY1ODAwNTE4YTU1NjQw
NDQ4NTMuLjdlMmQxZGU3Mzk2YTc4NDk2MjAxODQxMjI1YTM0NjBlMjgxMjdjNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKKysrIGIvU291cmNlL1dURi93dGYvRGF0ZU1h
dGguaApAQCAtMTA2LDE2ICsxMDYsMTYgQEAgY29uc3QgY2hhciogY29uc3Qgd2Vla2RheU5hbWVb
N10gPSB7ICJNb24iLCAiVHVlIiwgIldlZCIsICJUaHUiLCAiRnJpIiwgIlNhdCIsICIKIGNvbnN0
IGNoYXIqIGNvbnN0IG1vbnRoTmFtZVsxMl0gPSB7ICJKYW4iLCAiRmViIiwgIk1hciIsICJBcHIi
LCAiTWF5IiwgIkp1biIsICJKdWwiLCAiQXVnIiwgIlNlcCIsICJPY3QiLCAiTm92IiwgIkRlYyIg
fTsKIGNvbnN0IGNoYXIqIGNvbnN0IG1vbnRoRnVsbE5hbWVbMTJdID0geyAiSmFudWFyeSIsICJG
ZWJydWFyeSIsICJNYXJjaCIsICJBcHJpbCIsICJNYXkiLCAiSnVuZSIsICJKdWx5IiwgIkF1Z3Vz
dCIsICJTZXB0ZW1iZXIiLCAiT2N0b2JlciIsICJOb3ZlbWJlciIsICJEZWNlbWJlciIgfTsKIAot
Y29uc3QgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQuMDsKLWNvbnN0IGRvdWJsZSBtaW51dGVzUGVy
SG91ciA9IDYwLjA7Ci1jb25zdCBkb3VibGUgc2Vjb25kc1Blck1pbnV0ZSA9IDYwLjA7Ci1jb25z
dCBkb3VibGUgbXNQZXJTZWNvbmQgPSAxMDAwLjA7Ci1jb25zdCBkb3VibGUgbXNQZXJNb250aCA9
IDI1OTIwMDAwMDAuMDsKLWNvbnN0IGRvdWJsZSBzZWNvbmRzUGVySG91ciA9IHNlY29uZHNQZXJN
aW51dGUgKiBtaW51dGVzUGVySG91cjsKLWNvbnN0IGRvdWJsZSBzZWNvbmRzUGVyRGF5ID0gc2Vj
b25kc1BlckhvdXIgKiBob3Vyc1BlckRheTsKLWNvbnN0IGRvdWJsZSBtc1Blck1pbnV0ZSA9IG1z
UGVyU2Vjb25kICogc2Vjb25kc1Blck1pbnV0ZTsKLWNvbnN0IGRvdWJsZSBtc1BlckhvdXIgPSBt
c1BlclNlY29uZCAqIHNlY29uZHNQZXJIb3VyOwotY29uc3QgZG91YmxlIG1zUGVyRGF5ID0gbXNQ
ZXJTZWNvbmQgKiBzZWNvbmRzUGVyRGF5Oworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgaG91cnNQ
ZXJEYXkgPSAyNC4wOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbWludXRlc1BlckhvdXIgPSA2
MC4wOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgc2Vjb25kc1Blck1pbnV0ZSA9IDYwLjA7Citz
dGF0aWMgY29uc3RleHByIGRvdWJsZSBtc1BlclNlY29uZCA9IDEwMDAuMDsKK3N0YXRpYyBjb25z
dGV4cHIgZG91YmxlIG1zUGVyTW9udGggPSAyNTkyMDAwMDAwLjA7CitzdGF0aWMgY29uc3RleHBy
IGRvdWJsZSBzZWNvbmRzUGVySG91ciA9IHNlY29uZHNQZXJNaW51dGUgKiBtaW51dGVzUGVySG91
cjsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIHNlY29uZHNQZXJEYXkgPSBzZWNvbmRzUGVySG91
ciAqIGhvdXJzUGVyRGF5Oworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbXNQZXJNaW51dGUgPSBt
c1BlclNlY29uZCAqIHNlY29uZHNQZXJNaW51dGU7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBt
c1BlckhvdXIgPSBtc1BlclNlY29uZCAqIHNlY29uZHNQZXJIb3VyOworc3RhdGljIGNvbnN0ZXhw
ciBkb3VibGUgbXNQZXJEYXkgPSBtc1BlclNlY29uZCAqIHNlY29uZHNQZXJEYXk7CiAKIFdURl9F
WFBPUlRfUFJJVkFURSBib29sIGlzTGVhcFllYXIoaW50IHllYXIpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9HcmVnb3JpYW5EYXRlVGltZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9HcmVn
b3JpYW5EYXRlVGltZS5jcHAKaW5kZXggYTNjNDRiOTIxYTcwODMyYzI0NTc4ZWY0YjkwNGRhMjEy
MjY4MmY2NC4uMzIxNDg4N2VmM2ZmNGM5MjJjYWI1MTU5MDE2MjM3NTI2MjMwOTQ2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0dyZWdvcmlhbkRhdGVUaW1lLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIEdyZWdv
cmlhbkRhdGVUaW1lOjpzZXRUb0N1cnJlbnRMb2NhbFRpbWUoKQogICAgIG1faG91ciA9IHN5c3Rl
bVRpbWUud0hvdXI7CiAgICAgbV9taW51dGUgPSBzeXN0ZW1UaW1lLndNaW51dGU7CiAgICAgbV9z
ZWNvbmQgPSBzeXN0ZW1UaW1lLndTZWNvbmQ7Ci0gICAgbV91dGNPZmZzZXQgPSAtYmlhcyAqIHNl
Y29uZHNQZXJNaW51dGU7CisgICAgbV91dGNPZmZzZXRJbk1pbnV0ZSA9IC1iaWFzOwogICAgIG1f
aXNEU1QgPSB0aW1lWm9uZUlkID09IFRJTUVfWk9ORV9JRF9EQVlMSUdIVCA/IDEgOiAwOwogI2Vs
c2UKICAgICB0bSBsb2NhbFRNOwpAQCAtODMsOSArODMsOSBAQCB2b2lkIEdyZWdvcmlhbkRhdGVU
aW1lOjpzZXRUb0N1cnJlbnRMb2NhbFRpbWUoKQogICAgIG1fc2Vjb25kID0gbG9jYWxUTS50bV9z
ZWM7CiAgICAgbV9pc0RTVCA9IGxvY2FsVE0udG1faXNkc3Q7CiAjaWYgSEFWRShUTV9HTVRPRkYp
Ci0gICAgbV91dGNPZmZzZXQgPSBsb2NhbFRNLnRtX2dtdG9mZjsKKyAgICBtX3V0Y09mZnNldElu
TWludXRlID0gbG9jYWxUTS50bV9nbXRvZmYgLyBzZWNvbmRzUGVyTWludXRlOwogI2Vsc2UKLSAg
ICBtX3V0Y09mZnNldCA9IGNhbGN1bGF0ZUxvY2FsVGltZU9mZnNldChsb2NhbFRpbWUgKiBtc1Bl
clNlY29uZCkub2Zmc2V0IC8gbXNQZXJTZWNvbmQ7CisgICAgbV91dGNPZmZzZXRJbk1pbnV0ZSA9
IGNhbGN1bGF0ZUxvY2FsVGltZU9mZnNldChsb2NhbFRpbWUgKiBtc1BlclNlY29uZCkub2Zmc2V0
IC8gbXNQZXJNaW51dGU7CiAjZW5kaWYKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuaCBiL1NvdXJjZS9XVEYvd3RmL0dyZWdvcmlhbkRhdGVU
aW1lLmgKaW5kZXggMjVkZDE1Y2FlMDRiZjgyN2ZlMWZmY2U5NWNlNTcxZjg3MzY1NzU3Zi4uMDJj
MmVjN2NmMzIxYWE5ZDRiN2ZmMDlhYWI5MGE1N2FmNWFmMDYxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9HcmVnb3Jp
YW5EYXRlVGltZS5oCkBAIC0yNiwyNyArMjYsMTYgQEAKIAogI2luY2x1ZGUgPHN0cmluZy5oPgog
I2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVz
cGFjZSBXVEYgewogCiBjbGFzcyBHcmVnb3JpYW5EYXRlVGltZSBmaW5hbCB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR3JlZ29yaWFuRGF0
ZVRpbWUpOwogcHVibGljOgotICAgIEdyZWdvcmlhbkRhdGVUaW1lKCkKLSAgICAgICAgOiBtX3ll
YXIoMCkKLSAgICAgICAgLCBtX21vbnRoKDApCi0gICAgICAgICwgbV95ZWFyRGF5KDApCi0gICAg
ICAgICwgbV9tb250aERheSgwKQotICAgICAgICAsIG1fd2Vla0RheSgwKQotICAgICAgICAsIG1f
aG91cigwKQotICAgICAgICAsIG1fbWludXRlKDApCi0gICAgICAgICwgbV9zZWNvbmQoMCkKLSAg
ICAgICAgLCBtX3V0Y09mZnNldCgwKQotICAgICAgICAsIG1faXNEU1QoMCkKLSAgICB7Ci0gICAg
fQorICAgIEdyZWdvcmlhbkRhdGVUaW1lKCkgPSBkZWZhdWx0OwogCiAgICAgaW5saW5lIGludCB5
ZWFyKCkgY29uc3QgeyByZXR1cm4gbV95ZWFyOyB9CiAgICAgaW5saW5lIGludCBtb250aCgpIGNv
bnN0IHsgcmV0dXJuIG1fbW9udGg7IH0KQEAgLTU2LDcgKzQ1LDcgQEAgY2xhc3MgR3JlZ29yaWFu
RGF0ZVRpbWUgZmluYWwgewogICAgIGlubGluZSBpbnQgaG91cigpIGNvbnN0IHsgcmV0dXJuIG1f
aG91cjsgfQogICAgIGlubGluZSBpbnQgbWludXRlKCkgY29uc3QgeyByZXR1cm4gbV9taW51dGU7
IH0KICAgICBpbmxpbmUgaW50IHNlY29uZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vjb25kOyB9Ci0g
ICAgaW5saW5lIGludCB1dGNPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3V0Y09mZnNldDsgfQor
ICAgIGlubGluZSBpbnQgdXRjT2Zmc2V0SW5NaW51dGUoKSBjb25zdCB7IHJldHVybiBtX3V0Y09m
ZnNldEluTWludXRlOyB9CiAgICAgaW5saW5lIGludCBpc0RTVCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNEU1Q7IH0KIAogICAgIGlubGluZSB2b2lkIHNldFllYXIoaW50IHllYXIpIHsgbV95ZWFyID0g
eWVhcjsgfQpAQCAtNjcsOSArNTYsMjAgQEAgY2xhc3MgR3JlZ29yaWFuRGF0ZVRpbWUgZmluYWwg
ewogICAgIGlubGluZSB2b2lkIHNldEhvdXIoaW50IGhvdXIpIHsgbV9ob3VyID0gaG91cjsgfQog
ICAgIGlubGluZSB2b2lkIHNldE1pbnV0ZShpbnQgbWludXRlKSB7IG1fbWludXRlID0gbWludXRl
OyB9CiAgICAgaW5saW5lIHZvaWQgc2V0U2Vjb25kKGludCBzZWNvbmQpIHsgbV9zZWNvbmQgPSBz
ZWNvbmQ7IH0KLSAgICBpbmxpbmUgdm9pZCBzZXRVdGNPZmZzZXQoaW50IHV0Y09mZnNldCkgeyBt
X3V0Y09mZnNldCA9IHV0Y09mZnNldDsgfQorICAgIGlubGluZSB2b2lkIHNldFVUQ09mZnNldElu
TWludXRlKGludCB1dGNPZmZzZXRJbk1pbnV0ZSkgeyBtX3V0Y09mZnNldEluTWludXRlID0gdXRj
T2Zmc2V0SW5NaW51dGU7IH0KICAgICBpbmxpbmUgdm9pZCBzZXRJc0RTVChpbnQgaXNEU1QpIHsg
bV9pc0RTVCA9IGlzRFNUOyB9CiAKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mWWVhcigp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV95ZWFyKTsgfQor
ICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZNb250aCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV9tb250aCk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mWWVhckRheSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRl
VGltZSwgbV95ZWFyRGF5KTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZNb250aERh
eSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV9tb250aERh
eSk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV2Vla0RheSgpIHsgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV93ZWVrRGF5KTsgfQorICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZIb3VyKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdv
cmlhbkRhdGVUaW1lLCBtX2hvdXIpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk1p
bnV0ZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV9taW51
dGUpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlNlY29uZCgpIHsgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV9zZWNvbmQpOyB9CisgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZlVUQ09mZnNldEluTWludXRlKCkgeyByZXR1cm4gT0JKRUNUX09G
RlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX3V0Y09mZnNldEluTWludXRlKTsgfQorICAgIHN0
YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZJc0RTVCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihH
cmVnb3JpYW5EYXRlVGltZSwgbV9pc0RTVCk7IH0KKwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIHNldFRvQ3VycmVudExvY2FsVGltZSgpOwogCiAgICAgb3BlcmF0b3IgdG0oKSBjb25zdApA
QCAtODgsMzcgKzg4LDIzIEBAIGNsYXNzIEdyZWdvcmlhbkRhdGVUaW1lIGZpbmFsIHsKICAgICAg
ICAgcmV0LnRtX2lzZHN0ID0gbV9pc0RTVDsKIAogI2lmIEhBVkUoVE1fR01UT0ZGKQotICAgICAg
ICByZXQudG1fZ210b2ZmID0gc3RhdGljX2Nhc3Q8bG9uZz4obV91dGNPZmZzZXQpOworICAgICAg
ICByZXQudG1fZ210b2ZmID0gc3RhdGljX2Nhc3Q8bG9uZz4obV91dGNPZmZzZXRJbk1pbnV0ZSkg
KiBzdGF0aWNfY2FzdDxsb25nPihzZWNvbmRzUGVyTWludXRlKTsKICNlbmRpZgogCiAgICAgICAg
IHJldHVybiByZXQ7CiAgICAgfQogCi0gICAgdm9pZCBjb3B5RnJvbShjb25zdCBHcmVnb3JpYW5E
YXRlVGltZSYgb3RoZXIpCi0gICAgewotICAgICAgICBtX3llYXIgPSBvdGhlci5tX3llYXI7Ci0g
ICAgICAgIG1fbW9udGggPSBvdGhlci5tX21vbnRoOwotICAgICAgICBtX3llYXJEYXkgPSBvdGhl
ci5tX3llYXJEYXk7Ci0gICAgICAgIG1fbW9udGhEYXkgPSBvdGhlci5tX21vbnRoRGF5OwotICAg
ICAgICBtX3dlZWtEYXkgPSBvdGhlci5tX3dlZWtEYXk7Ci0gICAgICAgIG1faG91ciA9IG90aGVy
Lm1faG91cjsKLSAgICAgICAgbV9taW51dGUgPSBvdGhlci5tX21pbnV0ZTsKLSAgICAgICAgbV9z
ZWNvbmQgPSBvdGhlci5tX3NlY29uZDsKLSAgICAgICAgbV91dGNPZmZzZXQgPSBvdGhlci5tX3V0
Y09mZnNldDsKLSAgICAgICAgbV9pc0RTVCA9IG90aGVyLm1faXNEU1Q7Ci0gICAgfQotCiBwcml2
YXRlOgotICAgIGludCBtX3llYXI7Ci0gICAgaW50IG1fbW9udGg7Ci0gICAgaW50IG1feWVhckRh
eTsKLSAgICBpbnQgbV9tb250aERheTsKLSAgICBpbnQgbV93ZWVrRGF5OwotICAgIGludCBtX2hv
dXI7Ci0gICAgaW50IG1fbWludXRlOwotICAgIGludCBtX3NlY29uZDsKLSAgICBpbnQgbV91dGNP
ZmZzZXQ7Ci0gICAgaW50IG1faXNEU1Q7CisgICAgaW50IG1feWVhciB7IDAgfTsKKyAgICBpbnQg
bV9tb250aCB7IDAgfTsKKyAgICBpbnQgbV95ZWFyRGF5IHsgMCB9OworICAgIGludCBtX21vbnRo
RGF5IHsgMCB9OworICAgIGludCBtX3dlZWtEYXkgeyAwIH07CisgICAgaW50IG1faG91ciB7IDAg
fTsKKyAgICBpbnQgbV9taW51dGUgeyAwIH07CisgICAgaW50IG1fc2Vjb25kIHsgMCB9OworICAg
IGludCBtX3V0Y09mZnNldEluTWludXRlIHsgMCB9OworICAgIGludCBtX2lzRFNUIHsgMCB9Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcAppbmRleCBjOTk3YjMxODY3ZDM4MGQyODkw
Y2VlMmJmNTUxZGI5ZDQ3MTA4ZDI1Li4xMDZhN2Y4ZjliNDFlMDQzOGEwMzY3NDViYTljZDdhZmRh
ZWU4ZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9N
SFRNTEFyY2hpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1s
L01IVE1MQXJjaGl2ZS5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCBSZWY8U2hhcmVkQnVmZmVyPiBN
SFRNTEFyY2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRhKFBhZ2UqIHBhZ2UpCiAKICAgICBHcmVnb3Jp
YW5EYXRlVGltZSBub3c7CiAgICAgbm93LnNldFRvQ3VycmVudExvY2FsVGltZSgpOwotICAgIFN0
cmluZyBkYXRlU3RyaW5nID0gbWFrZVJGQzI4MjJEYXRlU3RyaW5nKG5vdy53ZWVrRGF5KCksIG5v
dy5tb250aERheSgpLCBub3cubW9udGgoKSwgbm93LnllYXIoKSwgbm93LmhvdXIoKSwgbm93Lm1p
bnV0ZSgpLCBub3cuc2Vjb25kKCksIG5vdy51dGNPZmZzZXQoKSAvIDYwKTsKKyAgICBTdHJpbmcg
ZGF0ZVN0cmluZyA9IG1ha2VSRkMyODIyRGF0ZVN0cmluZyhub3cud2Vla0RheSgpLCBub3cubW9u
dGhEYXkoKSwgbm93Lm1vbnRoKCksIG5vdy55ZWFyKCksIG5vdy5ob3VyKCksIG5vdy5taW51dGUo
KSwgbm93LnNlY29uZCgpLCBub3cudXRjT2Zmc2V0SW5NaW51dGUoKSk7CiAKICAgICBTdHJpbmdC
dWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIkZyb206IDxT
YXZlZCBieSBXZWJLaXQ+XHJcbiIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9K
U1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwZjg3YzliZTViYzQ1YzZhMWU0ZTBkMDQyZjFhMGQ3MDRk
YTE2NjhkLi4zNmIwMTNjZmFkNTc5ZjA4ZjhjNDVhMmU3YzdhYTk0YjA4NjBkOTlmIDEwMDY0NAot
LS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDc1IEBACisyMDE5LTEwLTI5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0pTQ10gRGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGhhdmUgaW50cmluc2ljCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxODcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9kYXRl
LWNzZS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKHRlc3QyKToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtZGF0ZS1qaXQuanM6IEFk
ZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3Ry
ZXNzL2RhdGUtZ2V0LWRheS1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LWZ1bGwteWVhci1qaXQuanM6
IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICog
c3RyZXNzL2RhdGUtZ2V0LWhvdXJzLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtbWlsbGlzZWNvbmRz
LWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtbWludXRlcy1qaXQuanM6IEFkZGVkLgorICAgICAgICAo
c2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LW1v
bnRoLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtc2Vjb25kcy1qaXQuanM6IEFkZGVkLgorICAgICAg
ICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0
LXRpbWUtaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC10aW1lem9uZS1vZmZzZXQtaml0LmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVz
cy9kYXRlLWdldC11dGMtZGF0ZS1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgor
ICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXV0Yy1kYXktaml0Lmpz
OiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHN0cmVzcy9kYXRlLWdldC11dGMtZnVsbC15ZWFyLWppdC5qczogQWRkZWQuCisgICAgICAgIChz
aG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdXRj
LWhvdXJzLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdXRjLW1pbGxpc2Vjb25kcy1qaXQuanM6IEFk
ZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3Ry
ZXNzL2RhdGUtZ2V0LXV0Yy1taW51dGVzLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRC
ZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdXRjLW1vbnRo
LWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdXRjLXNlY29uZHMtaml0LmpzOiBBZGRlZC4KKyAgICAg
ICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdl
dC15ZWFyLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS12YWx1ZS1vZi1qaXQuanM6IEFkZGVkLgorICAgICAg
ICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisKIDIwMTktMTAtMjkgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBBZGQgZmFzdCBwYXRoIGZv
ciBTdHJpbmcjbG9jYWxlQ29tcGFyZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1j
c2UuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWNzZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTVhMmVhMzk4
NTRhYmEyNzI2YjBmMDdlM2M3NTk4ZDJjNTM4YTc0Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvZGF0ZS1jc2UuanMKQEAgLTAsMCArMSwyOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUo
YWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9u
IHRlc3QoZGF0ZSkKK3sKKyAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCkgKyBkYXRlLmdldFRpbWUo
KTsKK30KK25vSW5saW5lKHRlc3QpOworCitmdW5jdGlvbiB0ZXN0MigpCit7CisgICAgdmFyIGRh
dGUgPSBuZXcgRGF0ZSgpOworICAgIGRhdGUuc2V0VGltZSgyMCk7CisgICAgdmFyIGZpcnN0ID0g
ZGF0ZS5nZXRUaW1lKCk7CisgICAgZGF0ZS5zZXRUaW1lKDApOworICAgIHZhciBzZWNvbmQgPSBk
YXRlLmdldFRpbWUoKTsKKyAgICByZXR1cm4gZmlyc3QgKyBzZWNvbmQ7Cit9Citub0lubGluZSh0
ZXN0Mik7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciByZXN1bHQgPSBkYXRlLmdldFRp
bWUoKSArIGRhdGUuZ2V0VGltZSgpOwordmFyIHJlc3VsdDIgPSAobmV3IERhdGUoMjApKS5nZXRU
aW1lKCkgKyAobmV3IERhdGUoMCkpLmdldFRpbWUoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2
OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCByZXN1bHQpOworICAgIHNob3VsZEJl
KHRlc3QyKGRhdGUpLCByZXN1bHQyKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2Rh
dGUtZ2V0LWRhdGUtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF0ZS1qaXQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjQzZTdiZWUyMTZiMjlmZGE2Yjk4ODAyOTFiY2E0ZmJjNmEyNjM0MgotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LWRhdGUtaml0LmpzCkBAIC0w
LDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBp
ZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFs
dWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4g
ZGF0ZS5nZXREYXRlKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0
ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5n
ZXREYXRlKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUo
dGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91
bGRCZSh0ZXN0KGQpLCBkLmdldERhdGUoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZh
bGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF5
LWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LWRheS1qaXQuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGI1NzczMTQ4MmMxMDU3NWFhODdhOWJlOGZiNmU3NmU0MzA2YzE3MQotLS0gL2Rldi9udWxsCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LWRheS1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAor
ZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVh
bCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldERheSgp
OworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZh
bGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0RGF5KCk7Citmb3Ig
KHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhw
ZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBk
LmdldERheSgpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1mdWxsLXllYXItaml0LmpzIGIv
SlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZnVsbC15ZWFyLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzM4
YmIxZjgxZDAzMDZjOWQwNzcyM2FiNTIxYWYwYWRmZmIyZmQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
SlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZnVsbC15ZWFyLWppdC5qcwpAQCAtMCwwICsxLDE5IEBA
CitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0
dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0RnVs
bFllYXIoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2
YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldEZ1bGxZ
ZWFyKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVz
dChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRC
ZSh0ZXN0KGQpLCBkLmdldEZ1bGxZZWFyKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52
YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LWhv
dXJzLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LWhvdXJzLWppdC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43ZjI4NzA0Y2ZlNmRiYjUyMDdjZjlhMjZlYTBhMGFjYzQ5MWRlNzNkCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtaG91cnMtaml0LmpzCkBAIC0wLDAgKzEs
MTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0
dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcg
KyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5n
ZXRIb3VycygpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsK
K3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0SG91
cnMoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0
KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJl
KHRlc3QoZCksIGQuZ2V0SG91cnMoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlk
KSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtbWlsbGlz
ZWNvbmRzLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LW1pbGxpc2Vjb25kcy1qaXQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjQ5MDljZjIzMDc3ODhkMmYzZTQxYjdjOGRkN2ZlOGFkYWY3ODQ5ZQot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LW1pbGxpc2Vjb25kcy1q
aXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgewor
ICAgIHJldHVybiBkYXRlLmdldE1pbGxpc2Vjb25kcygpOworfQorbm9JbmxpbmUodGVzdCk7CisK
K3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3Zh
ciBleHBlY3RlZCA9IGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCk7Citmb3IgKHZhciBpID0gMDsgaSA8
IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZh
ciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldE1pbGxpc2Vjb25k
cygpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1taW51dGVzLWppdC5qcyBiL0pTVGVzdHMv
c3RyZXNzL2RhdGUtZ2V0LW1pbnV0ZXMtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmNDc3NGExZDhlYWU1
MmIwNmZjZDg4NmZiZTE0NjliYjM4MDQ2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0
cmVzcy9kYXRlLWdldC1taW51dGVzLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKwor
ZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0TWludXRlcygpOworfQor
bm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0g
bmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0TWludXRlcygpOworZm9yICh2
YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVj
dGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5n
ZXRNaW51dGVzKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsK
K30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LW1vbnRoLWppdC5qcyBiL0pT
VGVzdHMvc3RyZXNzL2RhdGUtZ2V0LW1vbnRoLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDVkYzFhYjZl
ZTMyN2M2N2I3YTFmN2QxNzg0YmFmZjg4NTZlZTdjCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvZGF0ZS1nZXQtbW9udGgtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3Rl
ZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQor
CitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRNb250aCgpOworfQor
bm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0g
bmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0TW9udGgoKTsKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3Rl
ZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0
TW9udGgoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtc2Vjb25kcy1qaXQuanMgYi9KU1Rl
c3RzL3N0cmVzcy9kYXRlLWdldC1zZWNvbmRzLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjQ3NmNiYTQ4
ZDU3ZjgxOGFjN2RjYTRiMzIyZWI5N2ZkN2ZlYmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvZGF0ZS1nZXQtc2Vjb25kcy1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rp
b24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVj
dGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldFNlY29uZHMoKTsK
K30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxp
ZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFNlY29uZHMoKTsKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBl
eHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCks
IGQuZ2V0U2Vjb25kcygpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1
ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC10aW1lLWppdC5qcyBi
L0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXRpbWUtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZTE2NDFl
Zjg5N2NhNDhkNjdhYjdiYWM2OTMzNzk3ZGM1MmQ1YTcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3N0cmVzcy9kYXRlLWdldC10aW1lLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlv
biBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0
ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30K
KworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VGltZSgpOworfQor
bm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0g
bmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0VGltZSgpOworZm9yICh2YXIg
aSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVk
KTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRU
aW1lKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXRpbWV6b25lLW9mZnNldC1qaXQuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC10aW1lem9uZS1vZmZzZXQtaml0LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM0Zjc3NzI2MDdmMmNiNTIxMTIyMzAxNmIzMzgxZGMzYjA4OGQyOGYKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC10aW1lem9uZS1vZmZzZXQtaml0LmpzCkBA
IC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAg
ICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQg
dmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1
cm4gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBk
YXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBl
Y3RlZCA9IGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2
OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQg
PSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0VGltZXpvbmVPZmZzZXQo
KSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLWRhdGUtaml0LmpzIGIvSlNUZXN0cy9z
dHJlc3MvZGF0ZS1nZXQtdXRjLWRhdGUtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwZTE1MmQ5NjlkNjZk
M2VlODFiMTVmMzVjM2EzN2Y3MjUwYmM1NmQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0
cmVzcy9kYXRlLWdldC11dGMtZGF0ZS1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24g
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisK
K2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldFVUQ0RhdGUoKTsKK30K
K25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9
IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldFVUQ0RhdGUoKTsKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBl
Y3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQu
Z2V0VVRDRGF0ZSgpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7
Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtZGF5LWppdC5qcyBi
L0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1kYXktaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2M2Fj
Y2M0ZjA1ZjZkZjk5YTA3MzZhMWYwMDhkM2E5MzE0MmEzZGMKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtZGF5LWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitm
dW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0g
ZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFs
KTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VVRDRGF5
KCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGlu
dmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRVVENEYXkoKTsK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUp
LCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3Qo
ZCksIGQuZ2V0VVRDRGF5KCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0
cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1mdWxsLXll
YXItaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLWZ1bGwteWVhci1qaXQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjdhZDYzZTJlYmI2NzQ5OWJkZjI1ZTdjOTEzOWYxZGNiMmU2N2NkMQotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1mdWxsLXllYXItaml0
LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAg
ICByZXR1cm4gZGF0ZS5nZXRVVENGdWxsWWVhcigpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3Zh
ciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBl
eHBlY3RlZCA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2
OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQg
PSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0VVRDRnVsbFllYXIoKSk7
CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLWhvdXJzLWppdC5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2RhdGUtZ2V0LXV0Yy1ob3Vycy1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc1ZGQ3NDA5MWUzNzVj
YzMyZjU4ODc1YmU1MDZjOWNkYzZiOGVjNAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL2RhdGUtZ2V0LXV0Yy1ob3Vycy1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24g
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisK
K2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldFVUQ0hvdXJzKCk7Cit9
Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQg
PSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRVVENIb3VycygpOworZm9y
ICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4
cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwg
ZC5nZXRVVENIb3VycygpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1
ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtbWlsbGlzZWNv
bmRzLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1taWxsaXNlY29uZHMtaml0
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJjNzQyMWUyMzgyYTM5Y2U2NzFiNzYzNjQ0NWM3NmVjNGE1MWNiMTcK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtbWlsbGlzZWNv
bmRzLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4
cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRl
KSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VVRDTWlsbGlzZWNvbmRzKCk7Cit9Citub0lubGluZSh0
ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShO
YU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRVVENNaWxsaXNlY29uZHMoKTsKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3Rl
ZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0
VVRDTWlsbGlzZWNvbmRzKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0
cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1taW51dGVz
LWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1taW51dGVzLWppdC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41OTI2M2M1ZmQxNzIzYTIyZWIyMDYyNDlkYmU3MDU0NDM4OTc3ZDYxCi0tLSAvZGV2
L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1pbnV0ZXMtaml0LmpzCkBA
IC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAg
ICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQg
dmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1
cm4gZGF0ZS5nZXRVVENNaW51dGVzKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUg
PSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVk
ID0gZGF0ZS5nZXRVVENNaW51dGVzKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7
CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERh
dGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldFVUQ01pbnV0ZXMoKSk7CisgICAgc2hv
dWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1vbnRoLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUt
Z2V0LXV0Yy1tb250aC1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZiYzUyNDA3Yzg2Nzg2Zjg0MzcwOTQ0
MDViZThhMjFjZmY4ZDJmOQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUt
Z2V0LXV0Yy1tb250aC1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUo
YWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9u
IHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldFVUQ01vbnRoKCk7Cit9Citub0lubGlu
ZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0
ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRVVENNb250aCgpOworZm9yICh2YXIgaSA9
IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsK
KyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRVVENN
b250aCgpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtc2Vjb25kcy1qaXQuanMgYi9K
U1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtc2Vjb25kcy1qaXQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc4
N2MzMGQyOWU3OGY2N2RhYjc3NzczZTU3MTEzMDBiMzQwZTAwNwotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1zZWNvbmRzLWppdC5qcwpAQCAtMCwwICsxLDE5
IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVh
bCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsg
YWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0
VVRDU2Vjb25kcygpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUo
KTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0
VVRDU2Vjb25kcygpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3Vs
ZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAg
c2hvdWxkQmUodGVzdChkKSwgZC5nZXRVVENTZWNvbmRzKCkpOworICAgIHNob3VsZEJlKGlzTmFO
KHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2Rh
dGUtZ2V0LXllYXItaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQteWVhci1qaXQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2UxNmI4MzVhMDZkZDMyOWI2N2FkODlmYjkwNjdhODZjMTY5NzQ5YgotLS0g
L2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXllYXItaml0LmpzCkBAIC0w
LDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBp
ZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFs
dWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4g
ZGF0ZS5nZXRZZWFyKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0
ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5n
ZXRZZWFyKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUo
dGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91
bGRCZSh0ZXN0KGQpLCBkLmdldFllYXIoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZh
bGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS12YWx1ZS1v
Zi1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLXZhbHVlLW9mLWppdC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zYzM5MzhiNDY4YTdkNzRmYzdkYmY3ZTJlZWE3NzllNjhhMmMwN2U4Ci0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS12YWx1ZS1vZi1qaXQuanMKQEAgLTAsMCArMSwxOSBA
QAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwg
IT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFj
dHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLnZhbHVl
T2YoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIg
aW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLnZhbHVlT2YoKTsK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUp
LCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3Qo
ZCksIGQudmFsdWVPZigpKTsKKyAgICBzaG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1
ZSk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382275</attachid>
            <date>2019-10-29 20:49:40 -0700</date>
            <delta_ts>2019-10-30 16:34:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202187-20191029204940.patch</filename>
            <type>text/plain</type>
            <size>126922</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YmVkMjQyMGM1ZmI1NWJiYTEzNGYwNjc1NTM1NzFlZjgxNmI1OWRiLi44MjRiYWZjNDA4M2E4MmNh
NTg2MzZlN2FlNWE1OWYzOTFhZDQ0YmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjQgQEAKKzIwMTktMTAtMjkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBEYXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBpbnRyaW5zaWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjE4Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBpbnRyaW5zaWMgdG8gRGF0ZSBvYmplY3QgZ2V0dGVyIGZ1bmN0aW9ucyB0byBtYWtl
IGl0IGlubGluZWQgaW4gREZHIGFuZCBGVEwuCisgICAgICAgIFdlIGFkZCB0d28gREZHIG5vZGVz
LCBEYXRlR2V0SlNOdW1iZXIgYW5kIERhdGVHZXRNYWNoaW5lRG91YmxlLiBEYXRlR2V0TWFjaGlu
ZURvdWJsZSBpcyB1c2VkIHdoZW4gd2Uga25vdworICAgICAgICB0aGF0IHRoZSByZXN1bHQgaXMg
YWx3YXlzIG1hY2hpbmUgZG91YmxlLiBPbiB0aGUgb3RoZXIgaGFuZCwgRGF0ZUdldEpTTnVtYmVy
IGlzIHVzZWQgd2hlbiB0aGUgcmVzdWx0IGlzIEludDMyIG9yIE5hTi4KKworICAgICAgICBSdW4g
U3VuU3BpZGVyIDEwMCB0aW1lcyBhbmQgZ2V0IHRoZSBzb2xpZCBpbXByb3ZlbWVudCBpbiBEYXRl
IHJlbGF0ZWQgYmVuY2htYXJrcy4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVG9UICAgICAgICAgICAgICAgICAgICAgUGF0Y2hlZAorCisgICAgICAgICAgICBk
YXRlLWZvcm1hdC10b2Z0ZSAgICAgICAgNS4zNTExKy0wLjAyNjAgICAgIF4gICAgICA1LjI3NDcr
LTAuMDI3MyAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDE0NXggZmFzdGVyCisgICAgICAgICAgICBk
YXRlLWZvcm1hdC14cGFyYiAgICAgICAgNC45MTk2Ky0wLjAyNjUgICAgIF4gICAgICA0LjcwNjcr
LTAuMDIwMCAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDQ1MnggZmFzdGVyCisKKyAgICAgICAgKiBi
eXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgIChKU0M6OmR1bXBTcGVjdWxhdGlv
bik6CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyk6CisgICAgICAgIChK
U0M6OnNwZWN1bGF0aW9uRnJvbUpTVHlwZSk6CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJv
bVN0cmluZyk6CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaDoKKyAgICAgICAg
KiBkZmcvREZHQWJzdHJhY3RIZWFwLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVJbnRyaW5zaWNDYWxsKToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAg
ICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAg
ICogZGZnL0RGR0dyYXBoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6ZHVtcCk6Cisg
ICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50
ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uaDoKKyAgICAgICAgKiBkZmcv
REZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc0ludHJpbnNpYyk6CisgICAg
ICAgIChKU0M6OkRGRzo6Tm9kZTo6aW50cmluc2ljKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2Rl
OjpoYXNIZWFwUHJlZGljdGlvbik6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAg
ICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25z
Lmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAg
ICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVU
b0V4ZWN1dGVFZGdlOjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVj
dXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVEYXRlT2JqZWN0KToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVEYXRlR2V0KToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5jcHA6CisgICAgICAgIChX
VEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdVc2VLaW5kLmg6CisgICAgICAg
IChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAgICAgIChKU0M6OkRGRzo6aXNDZWxsKToK
KyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHA6CisgICAgICAgICog
ZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBm
dGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlRGF0ZUdldCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
Omxvd0RhdGVPYmplY3QpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpz
cGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxh
dGVEYXRlT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcDoKKyAg
ICAgICAgKEpTQzo6Zm9ybWF0RGF0ZVRpbWUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3Rh
bmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5E
YXRlVGltZSBjb25zdCk6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3Jl
Z29yaWFuRGF0ZVRpbWVVVEMgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNl
Lmg6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oOgorICAgICAgICAoSlND
OjpEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMp
OgorICAgICAgICAoSlNDOjpEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlh
bkRhdGVUaW1lKToKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVn
b3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKToKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQyk6CisgICAgICAgIChKU0M6
OkRhdGVJbnN0YW5jZURhdGE6OkRhdGVJbnN0YW5jZURhdGEpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmZvcm1hdExvY2FsZURh
dGUpOgorICAgICAgICAoSlNDOjpmb3JtYXRlRGF0ZUluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dl
dEZ1bGxZZWFyKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyKToK
KyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldE1vbnRoKToKKyAgICAgICAgKEpTQzo6ZGF0
ZVByb3RvRnVuY0dldFVUQ01vbnRoKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldERh
dGUpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZSk6CisgICAgICAgIChK
U0M6OmRhdGVQcm90b0Z1bmNHZXREYXkpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0
VVRDRGF5KToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldEhvdXJzKToKKyAgICAgICAg
KEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3Rv
RnVuY0dldE1pbnV0ZXMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRl
cyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRTZWNvbmRzKToKKyAgICAgICAgKEpT
Qzo6ZGF0ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9G
dW5jR2V0TWlsbGlTZWNvbmRzKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ01p
bGxpc2Vjb25kcyk6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNl
dCk6CisgICAgICAgIChKU0M6OnNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKToKKyAgICAgICAgKEpT
Qzo6c2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3MpOgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5j
U2V0WWVhcik6CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRZZWFyKToKKyAgICAgICAg
KiBydW50aW1lL0ludHJpbnNpYy5jcHA6CisgICAgICAgIChKU0M6OmludHJpbnNpY05hbWUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSW50cmluc2ljLmg6CisgICAgICAgICogcnVudGltZS9KU0RhdGVN
YXRoLmNwcDoKKyAgICAgICAgKEpTQzo6bXNUb0dyZWdvcmlhbkRhdGVUaW1lKToKKyAgICAgICAg
KiBydW50aW1lL0pTVHlwZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNUeXBlLmg6CisKIDIwMTktMTAtMDcgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHRoZSBSZW1vdGUgUGxheWJhY2sg
QVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCA2YTBlOGEzMDFmNjIxN2QzY2U2NGU4ZDFkMzNmNTQ5MjdkM2ViOGE4Li5lYWM5
OTM1ZmNmYmY4ZDgwMTA4ODBjMTlkNDRhMzg3ZjgyMzEzMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDE5LTEwLTI5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0pTQ10gRGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGhhdmUgaW50cmluc2ljCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxODcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9EYXRlTWF0aC5oOgor
ICAgICAgICAqIHd0Zi9HcmVnb3JpYW5EYXRlVGltZS5jcHA6CisgICAgICAgIChXVEY6OkdyZWdv
cmlhbkRhdGVUaW1lOjpzZXRUb0N1cnJlbnRMb2NhbFRpbWUpOgorICAgICAgICAqIHd0Zi9HcmVn
b3JpYW5EYXRlVGltZS5oOgorCiAyMDE5LTEwLTI5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gQWRkIGZhc3QgcGF0aCBmb3IgU3RyaW5nI2xvY2Fs
ZUNvbXBhcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYjE1YmE5N2I4MGJiNDAxYjEyNjcwN2RmYjVlYTI4NTZm
Y2FmMzUzLi4yMWUyYzgwOGUyNDc4MGM1MzBmNTg1ZDY0ZjZiZDdkNzIzZmQxNzJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMTAtMjkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtp
QGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBEYXRlIGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBp
bnRyaW5zaWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMjE4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEpOgorCiAyMDE5LTEwLTI5ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgW1NWRzJd
IFNWR1N5bWJvbEVsZW1lbnQgc2hvdWxkIGluaGVyaXRzIFNWR0dyYXBoaWNzRWxlbWVudApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKaW5k
ZXggODQ0MzhlMzkzNWUyNzIwMjFmMDlkMjUxYzU5Zjc4OWE5MmRmOTgyMS4uNDE5ZWViZDhkZDk1
ODE2NzBkMmYwMGFiZTAzYTBlZWM5ZWU2ZDU5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU3BlY3VsYXRlZFR5cGUuaCIKIAorI2luY2x1ZGUg
IkRhdGVJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUg
IkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0JpZ0ludC5oIgpAQCAtMTc0LDYgKzE3NSwxMSBAQCB2
b2lkIGR1bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYgb3V0U3RyZWFtLCBTcGVjdWxhdGVkVHlw
ZSB2YWx1ZSkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNl
OwogCisgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVjRGF0ZU9iamVjdCkKKyAgICAgICAgICAg
ICAgICBzdHJPdXQucHJpbnQoIkRhdGVPYmplY3QiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBpc1RvcCA9IGZhbHNlOworCiAgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVj
UHJvbWlzZU9iamVjdCkKICAgICAgICAgICAgICAgICBzdHJPdXQucHJpbnQoIlByb21pc2VPYmpl
Y3QiKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTQ0NSw2ICs0NTEsOSBAQCBTcGVjdWxhdGVkVHlw
ZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAg
ICAgaWYgKGNsYXNzSW5mbyA9PSBSZWdFeHBPYmplY3Q6OmluZm8oKSkKICAgICAgICAgcmV0dXJu
IFNwZWNSZWdFeHBPYmplY3Q7CiAKKyAgICBpZiAoY2xhc3NJbmZvID09IERhdGVJbnN0YW5jZTo6
aW5mbygpKQorICAgICAgICByZXR1cm4gU3BlY0RhdGVPYmplY3Q7CisKICAgICBpZiAoY2xhc3NJ
bmZvID09IEpTTWFwOjppbmZvKCkpCiAgICAgICAgIHJldHVybiBTcGVjTWFwT2JqZWN0OwogCkBA
IC01OTQsNiArNjAzLDggQEAgT3B0aW9uYWw8U3BlY3VsYXRlZFR5cGU+IHNwZWN1bGF0aW9uRnJv
bUpTVHlwZShKU1R5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIFNwZWNEZXJpdmVkQXJyYXk7CiAg
ICAgY2FzZSBSZWdFeHBPYmplY3RUeXBlOgogICAgICAgICByZXR1cm4gU3BlY1JlZ0V4cE9iamVj
dDsKKyAgICBjYXNlIEpTRGF0ZVR5cGU6CisgICAgICAgIHJldHVybiBTcGVjRGF0ZU9iamVjdDsK
ICAgICBjYXNlIFByb3h5T2JqZWN0VHlwZToKICAgICAgICAgcmV0dXJuIFNwZWNQcm94eU9iamVj
dDsKICAgICBjYXNlIEpTUHJvbWlzZVR5cGU6CkBAIC04MTQsNiArODI1LDggQEAgU3BlY3VsYXRl
ZFR5cGUgc3BlY3VsYXRpb25Gcm9tU3RyaW5nKGNvbnN0IGNoYXIqIHNwZWN1bGF0aW9uKQogICAg
ICAgICByZXR1cm4gU3BlY1N0cmluZ09iamVjdDsKICAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRp
b24sICJTcGVjUmVnRXhwT2JqZWN0Iiwgc3RybGVuKCJTcGVjUmVnRXhwT2JqZWN0IikpKQogICAg
ICAgICByZXR1cm4gU3BlY1JlZ0V4cE9iamVjdDsKKyAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRp
b24sICJTcGVjRGF0ZU9iamVjdCIsIHN0cmxlbigiU3BlY0RhdGVPYmplY3QiKSkpCisgICAgICAg
IHJldHVybiBTcGVjRGF0ZU9iamVjdDsKICAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRpb24sICJT
cGVjUHJvbWlzZU9iamVjdCIsIHN0cmxlbigiU3BlY1Byb21pc2VPYmplY3QiKSkpCiAgICAgICAg
IHJldHVybiBTcGVjUHJvbWlzZU9iamVjdDsKICAgICBpZiAoIXN0cm5jbXAoc3BlY3VsYXRpb24s
ICJTcGVjTWFwT2JqZWN0Iiwgc3RybGVuKCJTcGVjTWFwT2JqZWN0IikpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAppbmRleCBiMTE1M2I0N2Qy
ZmQzYTU5ZWUzZmNmZmIwZjNiYmYzOWIwMTUxOTViLi5hMTEyMzhjMTk4YTM3MjhhY2EwMmVlOTUz
MzE3ZDA5MmYxMGIzNzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3BlY3VsYXRlZFR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3BlY3VsYXRlZFR5cGUuaApAQCAtNTgsMzIgKzU4LDMzIEBAIHN0YXRpYyBjb25zdGV4cHIgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0RpcmVjdEFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICA9IDF1bGwg
PDwKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1Njb3BlZEFyZ3VtZW50cyAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNjb3Bl
ZEFyZ3VtZW50cyBvYmplY3QuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNT
dHJpbmdPYmplY3QgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE1OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBTdHJpbmdPYmplY3QuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNSZWdFeHBPYmplY3QgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE2OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBSZWdFeHBPYmplY3QgKGFuZCBub3QgYW55IHN1YmNsYXNzIG9mIFJl
Z0V4cE9iamVjdCkuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm9taXNl
T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDE3OyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBQcm9taXNlIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCi1zdGF0aWMgY29u
c3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgICAgICAgICAgICAg
ICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBNYXAgb2JqZWN0IG9yIG9uZSBv
ZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1Nl
dE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMTk7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjV2Vha01hcE9iamVjdCAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAyMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgV2Vha01hcCBvYmplY3Qgb3Ig
b25lIG9mIGl0cyBzdWJjbGFzc2VzLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBT
cGVjV2Vha1NldE9iamVjdCAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyMTsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgV2Vha1NldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgot
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJveHkgb2Jq
ZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRl
ZFR5cGUgU3BlY0Rlcml2ZWRBcnJheSAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjM7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIERlcml2ZWRBcnJheSBvYmplY3QuCi1zdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDI0OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5h
bE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MjU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVy
Lgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMXVsbCA8PCAyNjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJp
bmcsIGFuZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxh
dGVkVHlwZSBTcGVjRGF0ZU9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAx
NzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGF0ZSBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFz
c2VzLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjUHJvbWlzZU9iamVjdCAg
ICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAxODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJv
bWlzZSBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgorc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjTWFwT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVs
bCA8PCAxOTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTWFwIG9iamVjdCBvciBvbmUgb2YgaXRzIHN1
YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNTZXRPYmplY3Qg
ICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkg
YSBTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIg
U3BlY3VsYXRlZFR5cGUgU3BlY1dlYWtNYXBPYmplY3QgICAgICAgICAgICAgICAgICAgICA9IDF1
bGwgPDwgMjE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFdlYWtNYXAgb2JqZWN0IG9yIG9uZSBvZiBp
dHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1dlYWtT
ZXRPYmplY3QgICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIFdlYWtTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK3N0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1Byb3h5T2JqZWN0ICAgICAgICAgICAgICAgICAg
ICAgICA9IDF1bGwgPDwgMjM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFByb3h5IG9iamVjdCBvciBv
bmUgb2YgaXRzIHN1YmNsYXNzZXMuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNw
ZWNEZXJpdmVkQXJyYXkgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI0OyAvLyBJdCdz
IGRlZmluaXRlbHkgYSBEZXJpdmVkQXJyYXkgb2JqZWN0Lgorc3RhdGljIGNvbnN0ZXhwciBTcGVj
dWxhdGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmplY3Qs
IEpTQXJyYXksIG9yIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNTdHJpbmdJZGVudCAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3MgYW4gaWRlbnRpZmllci4KK3N0YXRp
YyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDF1bGwgPDwgMjc7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQg
aXQncyBub3QgYW4gaWRlbnRpZmllci4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY1N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNTdHJpbmdJZGVudCB8
IFNwZWNTdHJpbmdWYXI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLgotc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3ltYm9sLgotc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBz
dWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZywgQmlnSW50
LCBvciBTeW1ib2wuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50
MzIgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDI5OyAvLyBJdCdzIGRlZmluaXRl
bHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNOb25Cb29sSW50MzIgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMw
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3Ig
MS4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY1N5bWJvbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN5bWJv
bC4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMjk7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2Vs
bCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5kIGRlZmluaXRlbHkgbm90IGEgSlNT
dHJpbmcsIEJpZ0ludCwgb3IgU3ltYm9sLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlw
ZSBTcGVjQm9vbEludDMyICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzMDsgLy8g
SXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgMCBvciAxLgorc3RhdGljIGNvbnN0
ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uQm9vbEludDMyICAgICAgICAgICAgICAgICAgICAg
ID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgb3Ro
ZXIgdGhhbiAwIG9yIDEuCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQz
Mk9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjQm9vbEludDMyIHwgU3BlY05vbkJv
b2xJbnQzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyLgogCi1zdGF0aWMgY29uc3RleHBy
IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMkFzSW50NTIgICAgICAgICAgICAgICAgICAgICAgPSAx
dWxsIDw8IDMxOyAvLyBJdCdzIGFuIEludDUyIGFuZCBpdCBjYW4gZml0IGluIGFuIGludDMyLgot
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50MzJBc0ludDUyICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQncyBhbiBJbnQ1MiBhbmQgaXQgY2FuJ3Qg
Zml0IGluIGFuIGludDMyLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjSW50
MzJBc0ludDUyICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQncyBhbiBJ
bnQ1MiBhbmQgaXQgY2FuIGZpdCBpbiBhbiBpbnQzMi4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY05vbkludDMyQXNJbnQ1MiAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MzM7IC8vIEl0J3MgYW4gSW50NTIgYW5kIGl0IGNhbid0IGZpdCBpbiBhbiBpbnQzMi4KIHN0YXRp
YyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDUyQW55ICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IFNwZWNJbnQzMkFzSW50NTIgfCBTcGVjTm9uSW50MzJBc0ludDUyOyAvLyBJdCdz
IGFueSBraW5kIG9mIEludDUyLgogCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNw
ZWNBbnlJbnRBc0RvdWJsZSAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDMzOyAvLyBJdCdz
IGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgotc3RhdGljIGNv
bnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50QXNEb3VibGUgICAgICAgICAgICAgICAg
ICAgID0gMXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQ1MiBidXQgaXQn
cyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgorc3RhdGljIGNvbnN0ZXhwciBTcGVj
dWxhdGVkVHlwZSBTcGVjQW55SW50QXNEb3VibGUgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8
PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBpdCdzIGluc2lkZSBhIGRvdWJs
ZS4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91YmxlICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgMzU7IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4g
SW50NTIgYnV0IGl0J3MgYSByZWFsIG51bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KIHN0YXRpYyBj
b25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVJlYWwgICAgICAgICAgICAgICAgICAg
ICAgICA9IFNwZWNOb25JbnRBc0RvdWJsZSB8IFNwZWNBbnlJbnRBc0RvdWJsZTsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgbm9uLU5hTiBkb3VibGUuCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRU
eXBlIFNwZWNEb3VibGVQdXJlTmFOICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM1OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBzYWZlIHRvIHRhZyAoaS5lLiBwdXJlKS4K
LXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZUltcHVyZU5hTiAgICAg
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0
IGlzIHVuc2FmZSB0byB0YWcgKGkuZS4gaW1wdXJlKS4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3Vs
YXRlZFR5cGUgU3BlY0RvdWJsZVB1cmVOYU4gICAgICAgICAgICAgICAgICAgICA9IDF1bGwgPDwg
MzY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHNhZmUgdG8gdGFnIChpLmUuIHB1
cmUpLgorc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFO
ICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFO
IHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgogc3RhdGljIGNvbnN0ZXhwciBT
cGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlTmFOICAgICAgICAgICAgICAgICAgICAgICAgID0gU3Bl
Y0RvdWJsZVB1cmVOYU4gfCBTcGVjRG91YmxlSW1wdXJlTmFOOyAvLyBJdCdzIGRlZmluaXRlbHkg
c29tZSBraW5kIG9mIE5hTi4KIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0J5
dGVjb2RlRG91YmxlICAgICAgICAgICAgICAgICAgICA9IFNwZWNEb3VibGVSZWFsIHwgU3BlY0Rv
dWJsZVB1cmVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUsIGJ1
dCBpdCdzIGRlZmluaXRlbHkgbm90IGltcHVyZSBOYU4uCiBzdGF0aWMgY29uc3RleHByIFNwZWN1
bGF0ZWRUeXBlIFNwZWNGdWxsRG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRG91
YmxlUmVhbCB8IFNwZWNEb3VibGVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5h
TiBkb3VibGUuCkBAIC05MywxNCArOTQsMTQgQEAgc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjQnl0ZWNvZGVOdW1iZXIgICAgICAgICAgICAgICAgICAgID0gU3BlY0ludDMKIHN0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0ludEFueUZvcm1hdCAgICAgICAgICAg
ICAgICAgICAgICA9IFNwZWNJbnQ1MkFueSB8IFNwZWNJbnQzMk9ubHkgfCBTcGVjQW55SW50QXNE
b3VibGU7CiAKIHN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxOdW1iZXIg
ICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNJbnRBbnlGb3JtYXQgfCBTcGVjRnVsbERvdWJs
ZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIsIEludDUyLCBvciBhIERvdWJsZSwgYW5kIHRoZSBE
b3VibGUgY2FuIGJlIGltcHVyZSBOYU4uCi1zdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBl
IFNwZWNCb29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDM3OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgotc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlw
ZSBTcGVjT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMXVsbCA8PCAzODsgLy8g
SXQncyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9yIFVuZGVmaW5lZC4KK3N0YXRpYyBjb25zdGV4
cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICA9
IDF1bGwgPDwgMzg7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCitzdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDM5OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVk
Lgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjTWlzYyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gU3BlY0Jvb2xlYW4gfCBTcGVjT3RoZXI7IC8vIEl0J3MgZGVmaW5p
dGVseSBlaXRoZXIgYSBib29sZWFuLCBOdWxsLCBvciBVbmRlZmluZWQuCi1zdGF0aWMgY29uc3Rl
eHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNFbXB0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxdWxsIDw8IDM5OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gZW1wdHkgdmFsdWUgbWFya2VyLgot
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjQmlnSW50ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCA0MDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQmlnSW50Lgot
c3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVjRGF0YVZpZXdPYmplY3QgICAgICAg
ICAgICAgICAgICAgID0gMXVsbCA8PCA0MTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNEYXRhVmll
dy4KK3N0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9IDF1bGwgPDwgNDA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0
eSB2YWx1ZSBtYXJrZXIuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNCaWdJ
bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDQxOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBCaWdJbnQuCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNEYXRh
Vmlld09iamVjdCAgICAgICAgICAgICAgICAgICAgPSAxdWxsIDw8IDQyOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBKU0RhdGFWaWV3Lgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVkVHlwZSBTcGVj
UHJpbWl0aXZlICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY1N0cmluZyB8IFNwZWNTeW1i
b2wgfCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlzYyB8IFNwZWNCaWdJbnQ7IC8vIEl0J3Mg
YW55IG5vbi1PYmplY3QgSlNWYWx1ZS4KLXN0YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUg
U3BlY09iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8
IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlvbiB8IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJl
Y3RBcmd1bWVudHMgfCBTcGVjU2NvcGVkQXJndW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNw
ZWNSZWdFeHBPYmplY3QgfCBTcGVjUHJvbWlzZU9iamVjdCB8IFNwZWNNYXBPYmplY3QgfCBTcGVj
U2V0T2JqZWN0IHwgU3BlY1dlYWtNYXBPYmplY3QgfCBTcGVjV2Vha1NldE9iamVjdCB8IFNwZWNQ
cm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBTcGVjT2JqZWN0T3RoZXIgfCBTcGVjRGF0
YVZpZXdPYmplY3Q7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3IgYW55IGtpbmQgb2Yg
b2JqZWN0IHByZWRpY3Rpb24uCitzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0ZWRUeXBlIFNwZWNP
YmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjRmluYWxPYmplY3QgfCBTcGVj
QXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBTcGVjRGlyZWN0QXJn
dW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmplY3QgfCBTcGVjUmVn
RXhwT2JqZWN0IHwgU3BlY0RhdGVPYmplY3QgfCBTcGVjUHJvbWlzZU9iamVjdCB8IFNwZWNNYXBP
YmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1dlYWtNYXBPYmplY3QgfCBTcGVjV2Vha1NldE9i
amVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBTcGVjT2JqZWN0T3Ro
ZXIgfCBTcGVjRGF0YVZpZXdPYmplY3Q7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3Ig
YW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCiBzdGF0aWMgY29uc3RleHByIFNwZWN1bGF0
ZWRUeXBlIFNwZWNDZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTcGVjT2JqZWN0
IHwgU3BlY1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyIHwgU3BlY0JpZ0ludDsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsLgogc3RhdGljIGNvbnN0ZXhwciBTcGVjdWxhdGVk
VHlwZSBTcGVjSGVhcFRvcCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gU3BlY0NlbGwgfCBT
cGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlzYzsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJv
dmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUltcHVyZU5hTi4KIHN0
YXRpYyBjb25zdGV4cHIgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlVG9wICAgICAgICAgICAg
ICAgICAgICAgICA9IFNwZWNIZWFwVG9wIHwgU3BlY0VtcHR5OyAvLyBJdCBjYW4gYmUgYW55IG9m
IHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJl
TmFOLiBDb3JyZXNwb25kcyB0byB3aGF0IGNvdWxkIGJlIGZvdW5kIGluIGEgYnl0ZWNvZGUgbG9j
YWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVh
cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaAppbmRleCBh
MzA5MjlkOGIwZDY4YjE2OThmMGU0MDJmOTU2NGQ2N2Y1MjA2ZmFmLi5iZjk5Mzc3OTcwNDcwMmQ4
ZDViMjBiNmMyZjZmNzM5NWFmZTZiODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RIZWFwLmgKQEAgLTcxLDYgKzcxLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewogICAgIG1hY3JvKEhlYXBPYmplY3RDb3VudCkgLyogVXNlZCB0byByZWZsZWN0
IHRoZSBmYWN0IHRoYXQgc29tZSBhbGxvY2F0aW9ucyByZXZlYWwgb2JqZWN0IGlkZW50aXR5ICov
XAogICAgIG1hY3JvKFJlZ0V4cFN0YXRlKSBcCiAgICAgbWFjcm8oTWF0aERvdFJhbmRvbVN0YXRl
KSBcCisgICAgbWFjcm8oSlNEYXRlRmllbGRzKSBcCiAgICAgbWFjcm8oSlNNYXBGaWVsZHMpIFwK
ICAgICBtYWNybyhKU1NldEZpZWxkcykgXAogICAgIG1hY3JvKEpTV2Vha01hcEZpZWxkcykgXApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCmluZGV4IDUzNzAzMzc5NmY2YjliYTIxNGNkZmU3OWQxYjZiZjQ1MTgx
MjgwYWIuLjhiNzUyZGYxNDdhMjA5ZDExNzYwMWJmMDliM2FiZjg2Y2IwZjQ0MDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0
ZXJJbmxpbmVzLmgKQEAgLTQwNjgsNiArNDA2OCwxNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0
ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGlt
aQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIERhdGVHZXRKU051bWJlcjogewor
ICAgICAgICBzZXROb25DZWxsVHlwZUZvck5vZGUobm9kZSwgU3BlY0J5dGVjb2RlTnVtYmVyKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZTog
eworICAgICAgICBzZXROb25DZWxsVHlwZUZvck5vZGUobm9kZSwgU3BlY0Z1bGxEb3VibGUpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIERhdGFWaWV3U2V0OiB7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKaW5kZXggMjIzNDQ1YzJkOTQ1ODA3YmZjYjgxOWFlZjI1MTdmODUwZTFlMzQ0
Zi4uZTQ1MGIyZDkwNDk0ODMwZGNhZTc5MDcwOTFhY2FkNjQ1NzdhZWI5YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTMxOTUsNiAr
MzE5NSw0MSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKE5vZGUq
IGNhbGxlZSwgVmlydHVhbFJlZ2lzdGVyIHJlc3VsdCwgSQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmlu
c2ljOiB7CisgICAgICAgICAgICBpZiAoIWlzNjRCaXQoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICBpbnNlcnRDaGVja3MoKTsKKyAgICAgICAgICAgIE5vZGUq
IGJhc2UgPSBnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoMCwgcmVnaXN0ZXJPZmZzZXQp
KTsKKyAgICAgICAgICAgIHNldFJlc3VsdChhZGRUb0dyYXBoKERhdGVHZXRNYWNoaW5lRG91Ymxl
LCBPcEluZm8oaW50cmluc2ljKSwgT3BJbmZvKCksIGJhc2UpKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RnVsbFll
YXJJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50
cmluc2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNpYzoKKyAg
ICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTW9udGhJbnRyaW5zaWM6CisgICAgICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldERhdGVJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3Rv
dHlwZUdldFVUQ0RhdGVJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldERh
eUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF5SW50cmluc2lj
OgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAg
Y2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDSG91cnNJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0
ZVByb3RvdHlwZUdldE1pbnV0ZXNJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlw
ZUdldFVUQ01pbnV0ZXNJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFNl
Y29uZHNJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ1NlY29uZHNJ
bnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1pbGxpc2Vjb25kc0ludHJp
bnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTWlsbGlzZWNvbmRzSW50cmlu
c2ljOgorICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9mZnNldEludHJpbnNp
YzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0WWVhckludHJpbnNpYzogeworICAgICAg
ICAgICAgaWYgKCFpczY0Qml0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7CisgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KHZp
cnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KDAsIHJlZ2lzdGVyT2Zmc2V0KSk7CisgICAgICAgICAg
ICBzZXRSZXN1bHQoYWRkVG9HcmFwaChEYXRlR2V0SlNOdW1iZXIsIE9wSW5mbyhpbnRyaW5zaWMp
LCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CisKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDg6CiAgICAgICAgIGNhc2Ug
RGF0YVZpZXdHZXRVaW50ODoKICAgICAgICAgY2FzZSBEYXRhVmlld0dldEludDE2OgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCBiODljMDNjMGZkMGNlZDAw
Nzk0ZGFiZGYzM2Q5NTdhZmY5M2I4ODAzLi41YzM3MGJmNjM5MmFiNzJkNDEzYzIyYmIyNTRhMmQ3
MGVlMmQwN2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2Ji
ZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApA
QCAtMTgxNCw2ICsxODE0LDEzIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRl
ZihQdXJlVmFsdWUobm9kZSwgbm9kZS0+dmFsaWRSYWRpeENvbnN0YW50KCkpKTsKICAgICAgICAg
cmV0dXJuOwogCisgICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZToKKyAgICBjYXNlIERhdGVH
ZXRKU051bWJlcjogeworICAgICAgICByZWFkKEpTRGF0ZUZpZWxkcyk7CisgICAgICAgIGRlZihI
ZWFwTG9jYXRpb24oRGF0ZUZpZWxkTG9jLCBBYnN0cmFjdEhlYXAoSlNEYXRlRmllbGRzLCBzdGF0
aWNfY2FzdDx1aW50NjRfdD4obm9kZS0+aW50cmluc2ljKCkpKSwgbm9kZS0+Y2hpbGQxKCkpLCBM
YXp5Tm9kZShub2RlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBjYXNlIERhdGFW
aWV3R2V0RmxvYXQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEludDogewogICAgICAgICByZWFkKE1p
c2NGaWVsZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDVk
MmIwNWQzZmQxOWIzOGMxYzdiODUyNmIyYzRjNTc5M2EzZDE0YjAuLmM5NGIxODI5MDQ0MDU0YzJk
NzA2OGU4M2M4OTRkMWJiMjM2ZDJkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rv
ZXNHQy5jcHAKQEAgLTI0Miw2ICsyNDIsOCBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5v
ZGUqIG5vZGUpCiAgICAgY2FzZSBGaWx0ZXJHZXRCeUlkU3RhdHVzOgogICAgIGNhc2UgRmlsdGVy
UHV0QnlJZFN0YXR1czoKICAgICBjYXNlIEZpbHRlckluQnlJZFN0YXR1czoKKyAgICBjYXNlIERh
dGVHZXRKU051bWJlcjoKKyAgICBjYXNlIERhdGVHZXRNYWNoaW5lRG91YmxlOgogICAgIGNhc2Ug
RGF0YVZpZXdHZXRJbnQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0OgogICAgIGNhc2UgRGF0
YVZpZXdTZXQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApp
bmRleCBlMWUxNjc4MjZmMzgzMDQyODFkMGEzZWNmNzg5NWNmZGRkMmE0ZjQ3Li5kMTgxNjM5Mjc3
MWE4NDM1OGYxMTdjNDg2ZTQxYTQ1NjE3OGM0NjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTIzMjAsNiArMjMyMCwxMSBAQCBjbGFzcyBGaXh1
cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9k
ZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBEYXRlR2V0
SlNOdW1iZXI6CisgICAgICAgIGNhc2UgRGF0ZUdldE1hY2hpbmVEb3VibGU6CisgICAgICAgICAg
ICBmaXhFZGdlPERhdGVPYmplY3RVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworCiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgICAgIGNhc2UgRGF0YVZp
ZXdHZXRGbG9hdDogewogICAgICAgICAgICAgZml4RWRnZTxEYXRhVmlld09iamVjdFVzZT4obm9k
ZS0+Y2hpbGQxKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAppbmRleCBh
ZGJmNTAyNWNmM2Q0NDFiZTE4YjcyYjA5ZGRmODhmODQ1ZGI5MTFkLi5jYTlmYzM0ZTFkMzllNTc0
NzRhMWJhNDM4YTM4ZDYwN2I2YjJhNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmNwcApAQCAtMzY1LDYgKzM2NSw4IEBAIHZvaWQgR3JhcGg6OmR1bXAoUHJpbnRTdHJlYW0m
IG91dCwgY29uc3QgY2hhciogcHJlZml4U3RyLCBOb2RlKiBub2RlLCBEdW1wQ29udGV4CiAgICAg
fQogICAgIGlmIChub2RlLT5oYXNJZ25vcmVMYXN0SW5kZXhJc1dyaXRhYmxlKCkpCiAgICAgICAg
IG91dC5wcmludChjb21tYSwgImlnbm9yZUxhc3RJbmRleElzV3JpdGFibGUgPSAiLCBub2RlLT5p
Z25vcmVMYXN0SW5kZXhJc1dyaXRhYmxlKCkpOworICAgIGlmIChub2RlLT5oYXNJbnRyaW5zaWMo
KSkKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiaW50cmluc2ljID0gIiwgbm9kZS0+aW50cmlu
c2ljKCkpOwogICAgIGlmIChub2RlLT5pc0NvbnN0YW50KCkpCiAgICAgICAgIG91dC5wcmludChj
b21tYSwgcG9pbnRlckR1bXBJbkNvbnRleHQobm9kZS0+Y29uc3RhbnQoKSwgY29udGV4dCkpOwog
ICAgIGlmIChub2RlLT5oYXNDYWxsTGlua1N0YXR1cygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCmluZGV4IGU0Yjk3YjMwYzJhMGE0MGMwZmYyMDIx
NmFmNDkyZDllZDYxYThiNDguLmMyYjk2YjVmZGZkNThkNjg0N2Q5YzQyMWU5YTU4Yjc5NzlmN2Yy
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9u
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAK
QEAgLTE2OCw2ICsxNjgsMTAgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQs
IExvY2F0aW9uS2luZCBraW5kKQogICAgICAgICBvdXQucHJpbnQoIlJlZ0V4cE9iamVjdExhc3RJ
bmRleExvYyIpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIERhdGVGaWVsZExvYzoKKyAg
ICAgICAgb3V0LnByaW50KCJEYXRlRmllbGRMb2MiKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAg
Y2FzZSBNYXBCdWNrZXRMb2M6CiAgICAgICAgIG91dC5wcmludCgiTWFwQnVja2V0TG9jIik7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SGVhcExvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlv
bi5oCmluZGV4IDA5MTAwNjQxMjY5ZjBjMDYxNzQ0M2YzYmMwZjQ3Y2I5MmY1OTA1NzQuLmE4ZTcz
ODE4MDNjNzk0ODQ2M2NlOTg5Y2MxMWE2OTNmZTg0MWZhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaApAQCAtNjQsNiArNjQsNyBAQCBlbnVtIExvY2F0
aW9uS2luZCB7CiAgICAgUHJvdG90eXBlTG9jLAogICAgIFN0YWNrTG9jLAogICAgIFN0YWNrUGF5
bG9hZExvYywKKyAgICBEYXRlRmllbGRMb2MsCiAgICAgTWFwQnVja2V0TG9jLAogICAgIE1hcEJ1
Y2tldEhlYWRMb2MsCiAgICAgTWFwQnVja2V0VmFsdWVMb2MsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZS5oCmluZGV4IDExZDhiNDBmYTYzMjZmZDk1YzJkZDYyZGY3Zjc2YWQ3YjY1YjJiM2Yu
LjI1MmUwNjU2YWU3NGVlNmRkMmMzNzFiNzI1MmNjN2M5MWZmNjBkOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZS5oCkBAIC0xNTU0LDkgKzE1NTQsMjEgQEAgc3RydWN0IE5vZGUgewog
ICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8RW50cnlTd2l0Y2hEYXRhKj4oKTsKICAgICB9CiAK
KyAgICBib29sIGhhc0ludHJpbnNpYygpCisgICAgeworICAgICAgICBzd2l0Y2ggKG9wKCkpIHsK
KyAgICAgICAgY2FzZSBDUFVJbnRyaW5zaWM6CisgICAgICAgIGNhc2UgRGF0ZUdldE1hY2hpbmVE
b3VibGU6CisgICAgICAgIGNhc2UgRGF0ZUdldEpTTnVtYmVyOgorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0KKyAgICB9CisKICAgICBJbnRyaW5zaWMgaW50cmluc2ljKCkKICAgICB7Ci0gICAgICAg
IFJFTEVBU0VfQVNTRVJUKG9wKCkgPT0gQ1BVSW50cmluc2ljKTsKKyAgICAgICAgQVNTRVJUKGhh
c0ludHJpbnNpYygpKTsKICAgICAgICAgcmV0dXJuIG1fb3BJbmZvLmFzPEludHJpbnNpYz4oKTsK
ICAgICB9CiAgICAgCkBAIC0xNzUzLDYgKzE3NjUsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAg
IGNhc2UgVG9UaGlzOgogICAgICAgICBjYXNlIERhdGFWaWV3R2V0SW50OgogICAgICAgICBjYXNl
IERhdGFWaWV3R2V0RmxvYXQ6CisgICAgICAgIGNhc2UgRGF0ZUdldEpTTnVtYmVyOgogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggOGNhM2I3
OTI5Zjc2MWEwMTYwYzZlMzg0ZWEzODI3NWMzNDZmZGVhMS4uOTFiYzcxM2U1MDIxNzMwYjhkYjcw
YWNjZWM3YTBjZjQ5YjJiYzQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaApAQCAtNTE2LDYgKzUxNiw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsK
ICAgICBtYWNybyhEYXRhVmlld0dldEludCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRK
UykgLyogVGhlIGdldHMgYXJlIG11c3QgZ2VuZXJhdGUgZm9yIG5vdyBiZWNhdXNlIHRoZXkgZG8g
Ym91bmRzIGNoZWNrcyAqLyBcCiAgICAgbWFjcm8oRGF0YVZpZXdHZXRGbG9hdCwgTm9kZU11c3RH
ZW5lcmF0ZSB8IE5vZGVSZXN1bHREb3VibGUpIFwKICAgICBtYWNybyhEYXRhVmlld1NldCwgTm9k
ZU11c3RHZW5lcmF0ZSB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAorICAg
IC8qIERhdGUgYWNjZXNzICovIFwKKyAgICBtYWNybyhEYXRlR2V0SlNOdW1iZXIsIE5vZGVSZXN1
bHRKUykgXAorICAgIG1hY3JvKERhdGVHZXRNYWNoaW5lRG91YmxlLCBOb2RlUmVzdWx0RG91Ymxl
KSBcCiAKIAogLy8gVGhpcyBlbnVtIGdlbmVyYXRlcyBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2lu
ZyBpZCBmb3IgYWxsIE5vZGUgdHlwZXMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcAppbmRleCA3MGVmZDZiZTk2MDkzYTRmNWVkYTg2ZWM5Zjc0ZjIxYWM3YTg2
Y2M2Li40ZGI0NjI3MmM4MDc5NmUwY2NkOTFjZjgzMTIyMjAyMGY0MmE1YWIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTM4LDYgKzM4LDcgQEAK
ICNpbmNsdWRlICJERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIgogI2luY2x1
ZGUgIkRGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCIKICNp
bmNsdWRlICJERkdXb3JrbGlzdC5oIgorI2luY2x1ZGUgIkRhdGVJbnN0YW5jZS5oIgogI2luY2x1
ZGUgIkRlZmluZVByb3BlcnR5QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50
cy5oIgogI2luY2x1ZGUgIkV2YWxDb2RlQmxvY2suaCIKQEAgLTMzOTEsNiArMzM5MiwxOTggQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQcm90b3R5cGVPZihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCkp
KTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0RnVs
bFllYXIoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAgIFZNJiB2bSA9
ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2
bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5E
YXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKKyAgICBpZiAoIWdyZWdvcmlh
bkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnllYXIo
KSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRV
VENGdWxsWWVhcihWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0m
IHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FM
TF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdv
cmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOworICAgIGlmICgh
Z3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4o
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGlt
ZS0+eWVhcigpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGF0ZUdldE1vbnRoKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAgICBW
TSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3Jl
Z29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CisgICAgaWYgKCFn
cmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigp
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1l
LT5tb250aCgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGF0ZUdldFVUQ01vbnRoKFZNKiB2bVBvaW50ZXIsIERhdGVJbnN0YW5jZSogZGF0ZSkKK3sKKyAg
ICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFS
RV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSog
Z3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CisgICAg
aWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRh
dGVUaW1lLT5tb250aCgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uRGF0ZUdldERhdGUoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQorewor
ICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNM
QVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKKyAgICBp
ZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0
ZVRpbWUtPm1vbnRoRGF5KCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25EYXRlR2V0VVRDRGF0ZShWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUp
Cit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9
IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0p
OworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVn
b3JpYW5EYXRlVGltZS0+bW9udGhEYXkoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRhdGVHZXREYXkoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBk
YXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZt
KTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3Jl
Z29yaWFuRGF0ZVRpbWUtPndlZWtEYXkoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENEYXkoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNl
KiBkYXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3Vl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdv
cmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1l
VVRDKHZtKTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPndlZWtEYXkoKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRIb3VycyhWTSogdm1Qb2ludGVyLCBEYXRlSW5z
dGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxsRnJhbWUq
IGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJv
bG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgY29uc3Qg
R3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0
ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ0hvdXJzKFZNKiB2bVBvaW50ZXIsIERhdGVJ
bnN0YW5jZSogZGF0ZSkKK3sKKyAgICBWTSYgdm0gPSAqdm1Qb2ludGVyOworICAgIENhbGxGcmFt
ZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Q
cm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBjb25z
dCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBkYXRlLT5ncmVnb3JpYW5E
YXRlVGltZVVUQyh2bSk7CisgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5ob3VyKCkpKTsKK30KKworRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TWludXRlcyhWTSogdm1Qb2ludGVyLCBE
YXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAgICBDYWxs
RnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0
aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAg
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+Z3JlZ29y
aWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKTsKK30KKworRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDTWludXRlcyhWTSogdm1Qb2lu
dGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRlcjsKKyAg
ICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklU
T3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwor
CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZS0+
Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCisg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKTsKK30KKwor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0U2Vjb25kcyhWTSog
dm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZtUG9pbnRl
cjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7Cisg
ICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJh
bWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0g
ZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOworICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUp
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25kKCkpKTsKK30K
KworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25k
cyhWTSogdm1Qb2ludGVyLCBEYXRlSW5zdGFuY2UqIGRhdGUpCit7CisgICAgVk0mIHZtID0gKnZt
UG9pbnRlcjsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2
bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBj
YWxsRnJhbWUpOworCisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gZGF0ZS0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOworICAgIGlmICghZ3JlZ29yaWFu
RGF0ZVRpbWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25k
KCkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0
VGltZXpvbmVPZmZzZXQoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBkYXRlKQoreworICAg
IFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBn
cmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKKyAgICBpZiAo
IWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFO
KCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLWdyZWdvcmlhbkRhdGVU
aW1lLT51dGNPZmZzZXRJbk1pbnV0ZSgpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uRGF0ZUdldFllYXIoVk0qIHZtUG9pbnRlciwgRGF0ZUluc3RhbmNlKiBk
YXRlKQoreworICAgIFZNJiB2bSA9ICp2bVBvaW50ZXI7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGUtPmdyZWdvcmlhbkRhdGVUaW1lKHZt
KTsKKyAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTmFOKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3Jl
Z29yaWFuRGF0ZVRpbWUtPnllYXIoKSAtIDE5MDApKTsKK30KKwogdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblRocm93REZHKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHZhbHVlVG9UaHJvdykKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IDI1NjRkOWZj
OGRmOTg3NjcxNThmZDI0MTY2N2IzYWI2ZWJiNjBiNjUuLjI3NGY4YTUzZWJiZWM0OTgyMWZjMGEw
ZjQ0YjBmY2QyYmFkMWZkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5oCkBAIC0zMSw3ICszMSwxMSBAQAogI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJUeXBlZEFycmF5VHlwZS5oIgogCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERG
RyB7CituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgRGF0ZUluc3RhbmNlOworCituYW1lc3BhY2Ug
REZHIHsKIAogc3RydWN0IE9TUkV4aXRCYXNlOwogCkBAIC0yOTQsNiArMjk4LDIzIEBAIEpTQ2Vs
bCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdPYmplY3RXaXRoQnV0dGVyZmx5V2l0aEluZGV4
aW5nSGVhZGVyQW5kVmVjdG9yCiAKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rRGly
ZWN0Q2FsbChDYWxsTGlua0luZm8qLCBKU0Z1bmN0aW9uKikgV1RGX0lOVEVSTkFMOwogCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhcihWTSosIERh
dGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uRGF0ZUdldFVUQ0Z1bGxZZWFyKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVS
TkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0TW9udGgo
Vk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENNb250aChWTSosIERhdGVJbnN0YW5jZSopIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldERh
dGUoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENEYXRlKFZNKiwgRGF0ZUluc3RhbmNlKikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0
RGF5KFZNKiwgRGF0ZUluc3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0VVRDRGF5KFZNKiwgRGF0ZUluc3RhbmNlKikgV1RG
X0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EYXRlR2V0
SG91cnMoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENIb3VycyhWTSosIERhdGVJbnN0YW5jZSop
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0
ZUdldE1pbnV0ZXMoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRhdGVHZXRVVENNaW51dGVzKFZNKiwgRGF0ZUlu
c3RhbmNlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25EYXRlR2V0U2Vjb25kcyhWTSosIERhdGVJbnN0YW5jZSopIFdURl9JTlRFUk5BTDsKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdldFVUQ1NlY29uZHMoVk0q
LCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkRhdGVHZXRUaW1lem9uZU9mZnNldChWTSosIERhdGVJbnN0YW5jZSopIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGF0ZUdl
dFllYXIoVk0qLCBEYXRlSW5zdGFuY2UqKSBXVEZfSU5URVJOQUw7CisKIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Qcm9jZXNzVHlwZVByb2ZpbGVyTG9nREZHKFZNKikgV1RGX0lOVEVSTkFM
OwogCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVHJpZ2dlclJlb3B0aW1pemF0aW9uTm93
KENvZGVCbG9jayogYmFzZWxpbmVDb2RlQmxvY2ssIENvZGVCbG9jayogb3B0aWltemVkQ29kZUJs
b2NrLCBPU1JFeGl0QmFzZSopIFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5k
ZXggZTcyYWE1ZGQyNTdmMzI0NmUxYmRiNmNjNmM4NTk1OWYyODllOTU0Yy4uMTUwNjU0YTA2Njdh
ZGZiMjg2MjExNzE0OTlmZmNiMmYwYmMzNTYxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAg
LTg0NSwxMSArODQ1LDE3IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVi
bGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBHZXRQcm90b3R5cGVPZjoKICAgICAgICAgY2FzZSBF
eHRyYWN0VmFsdWVGcm9tV2Vha01hcEdldDogCiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6
Ci0gICAgICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDogeworICAgICAgICBjYXNlIERhdGFWaWV3
R2V0RmxvYXQ6CisgICAgICAgIGNhc2UgRGF0ZUdldEpTTnVtYmVyOiB7CiAgICAgICAgICAgICBz
ZXRQcmVkaWN0aW9uKG1fY3VycmVudE5vZGUtPmdldEhlYXBQcmVkaWN0aW9uKCkpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIERhdGVHZXRNYWNoaW5lRG91
YmxlOiB7CisgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNGdWxsTnVtYmVyKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBXZWFrTWFwR2V0OgogICAg
ICAgICBjYXNlIFJlc29sdmVTY29wZUZvckhvaXN0aW5nRnVuY0RlY2xJbkV2YWw6IHsKICAgICAg
ICAgICAgIHNldFByZWRpY3Rpb24oU3BlY0J5dGVjb2RlVG9wKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggNDYwNjFjODZjZjk1YzA3ODE2MWY0
YTU5MjRjZDNhNTI0NmNkYzAyMS4uNmJkOGYyOTMzNDNlYWUzODEwODNhZjc1MTBlM2JlOTIyNDk2
YTcwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVj
dXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgK
QEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgU2FmZVRvRXhlY3V0ZUVkZ2UgewogICAgICAgICBjYXNl
IFByb21pc2VPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgUHJveHlPYmplY3RVc2U6CiAgICAgICAg
IGNhc2UgRGVyaXZlZEFycmF5VXNlOgorICAgICAgICBjYXNlIERhdGVPYmplY3RVc2U6CiAgICAg
ICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAg
ICAgY2FzZSBXZWFrTWFwT2JqZWN0VXNlOgpAQCAtNDg5LDYgKzQ5MCw4IEBAIGJvb2wgc2FmZVRv
RXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZSwgYm9vbCBpZ25vCiAgICAgY2FzZSBBdG9taWNzSXNMb2NrRnJlZToKICAgICBjYXNlIEluaXRp
YWxpemVFbnRyeXBvaW50QXJndW1lbnRzOgogICAgIGNhc2UgTWF0Y2hTdHJ1Y3R1cmU6CisgICAg
Y2FzZSBEYXRlR2V0SlNOdW1iZXI6CisgICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZToKICAg
ICBjYXNlIERhdGFWaWV3R2V0SW50OgogICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKICAgICAg
ICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCmluZGV4IDQ3NDE2MTRjNTdiZDhjOWJlNjBlNjhmM2MyYTQyZWE3MDQ1NzUx
MGUuLjllYWMyMTZmNjAyYzBiNDFmYWY4ZWM4ZGUyNjdhOGExYjU3NTY5OTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRGR1NuaXBw
ZXRQYXJhbXMuaCIKKyNpbmNsdWRlICJEYXRlSW5zdGFuY2UuaCIKICNpbmNsdWRlICJEaXJlY3RB
cmd1bWVudHMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2Uu
aCIKICNpbmNsdWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKQEAgLTEwMTk1LDYgKzEwMTk2LDIwIEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVByb21pc2VPYmplY3QoRWRnZSBlZGdlKQog
ICAgIHNwZWN1bGF0ZVByb21pc2VPYmplY3QoZWRnZSwgb3BlcmFuZC5ncHIoKSk7CiB9CiAKK3Zv
aWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGVPYmplY3QoRWRnZSBlZGdlLCBHUFJSZWcg
Y2VsbCkKK3sKKyAgICBzcGVjdWxhdGVDZWxsVHlwZShlZGdlLCBjZWxsLCBTcGVjRGF0ZU9iamVj
dCwgSlNEYXRlVHlwZSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURhdGVP
YmplY3QoRWRnZSBlZGdlKQoreworICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY0Rh
dGVPYmplY3QpKQorICAgICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBv
cGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZURhdGVPYmplY3QoZWRnZSwgb3BlcmFu
ZC5ncHIoKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU1hcE9iamVjdChF
ZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQogewogICAgIHNwZWN1bGF0ZUNlbGxUeXBlKGVkZ2UsIGNl
bGwsIFNwZWNNYXBPYmplY3QsIEpTTWFwVHlwZSk7CkBAIC0xMDYwMCw2ICsxMDYxNSw5IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgIGNhc2Ug
RGVyaXZlZEFycmF5VXNlOgogICAgICAgICBzcGVjdWxhdGVEZXJpdmVkQXJyYXkoZWRnZSk7CiAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZU9iamVjdFVzZToKKyAgICAgICAgc3BlY3VsYXRl
RGF0ZU9iamVjdChlZGdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYXBPYmplY3RVc2U6
CiAgICAgICAgIHNwZWN1bGF0ZU1hcE9iamVjdChlZGdlKTsKICAgICAgICAgYnJlYWs7CkBAIC0x
NDAwOCw2ICsxNDAyNiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVNYWtlUm9wZShO
b2RlKiBub2RlKQogI2VuZGlmCiB9CiAKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApp
bmRleCAxYmE1MjExZmMxMTMwNzdlZGYxN2JhOWI5ZTE0MTA2NTlkYmNiODI1Li4xYjIwZDk0NGNi
Y2RkYTYyZmFjYjQ1NmQ0Yzk4ZDE5YjVjMDVmZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xNDg5LDYgKzE0ODksNyBAQCBjbGFzcyBT
cGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlQ2xlYXJDYXRjaExvY2FscyhOb2RlKik7
CiAgICAgdm9pZCBjb21waWxlUHJvZmlsZVR5cGUoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVN0
cmluZ0NvZGVQb2ludEF0KE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVEYXRlR2V0KE5vZGUqKTsK
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3MsIHR5cGVuYW1lIE9wZXJhdGlvbj4KICAg
ICB2b2lkIGNvbXBpbGVDcmVhdGVJbnRlcm5hbEZpZWxkT2JqZWN0KE5vZGUqLCBPcGVyYXRpb24p
OwpAQCAtMTYxNiw2ICsxNjE3LDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQg
c3BlY3VsYXRlUHJveHlPYmplY3QoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVEZXJpdmVkQXJy
YXkoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlRGVyaXZlZEFycmF5KEVk
Z2UpOworICAgIHZvaWQgc3BlY3VsYXRlRGF0ZU9iamVjdChFZGdlKTsKKyAgICB2b2lkIHNwZWN1
bGF0ZURhdGVPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlTWFw
T2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlTWFwT2JqZWN0KEVkZ2UsIEdQUlJlZyBj
ZWxsKTsKICAgICB2b2lkIHNwZWN1bGF0ZVNldE9iamVjdChFZGdlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDE0
ZjIxYzc3NmZkYzYzNDc0MzY0M2VkYmJkNmUwNmJiM2JhNTVjMGEuLmI0YWQ2MDk2MDdlMTVjMDQ4
MGZmYjEzYjNjOWFjZmQ4ZjM2ODZmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNDE2Miw2ICs0MTYyLDggQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgRGF0YVZp
ZXdHZXRJbnQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEZsb2F0OgogICAgIGNhc2UgRGF0YVZpZXdT
ZXQ6CisgICAgY2FzZSBEYXRlR2V0SlNOdW1iZXI6CisgICAgY2FzZSBEYXRlR2V0TWFjaGluZURv
dWJsZToKICAgICBjYXNlIFN0cmluZ0NvZGVQb2ludEF0OgogICAgICAgICBERkdfQ1JBU0gobV9q
aXQuZ3JhcGgoKSwgbm9kZSwgInVuZXhwZWN0ZWQgbm9kZSBpbiBERkcgYmFja2VuZCIpOwogICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCmluZGV4IDE0MmM3ZTA2ODljMjZhMWZhZmRjZDUwMDNmMWYzNGJlYjI1Mzgw
MmEuLmJiNmI1MzQxMmY5MDg0NGRjOTEzOWZmNDQ2NzAxODg4YTJjMzMxMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMzYs
NiArMzYsNyBAQAogI2luY2x1ZGUgIkRGR0RvZXNHQy5oIgogI2luY2x1ZGUgIkRGR09wZXJhdGlv
bnMuaCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkRhdGVJ
bnN0YW5jZS5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkdldHRl
clNldHRlci5oIgogI2luY2x1ZGUgIkhhc093blByb3BlcnR5Q2FjaGUuaCIKQEAgLTQ4NzQsNiAr
NDg3NSwxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgRGF0ZUdldEpTTnVtYmVyOgorICAgIGNhc2Ug
RGF0ZUdldE1hY2hpbmVEb3VibGU6CisgICAgICAgIGNvbXBpbGVEYXRlR2V0KG5vZGUpOworICAg
ICAgICBicmVhazsKKwogICAgIGNhc2UgRGF0YVZpZXdTZXQ6IHsKICAgICAgICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgZGF0YVZpZXcodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSk7
CiAgICAgICAgIEdQUlJlZyBkYXRhVmlld0dQUiA9IGRhdGFWaWV3LmdwcigpOwpAQCAtNTM0OCw2
ICs1MzU0LDE0MyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaW5nQ29kZVBvaW50
QXQoTm9kZSogbm9kZSkKICAgICBpbnQzMlJlc3VsdChzY3JhdGNoMUdQUiwgbV9jdXJyZW50Tm9k
ZSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEYXRlR2V0KE5vZGUqIG5vZGUp
Cit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
CisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAgIHNwZWN1bGF0ZURhdGVPYmpl
Y3Qobm9kZS0+Y2hpbGQxKCksIGJhc2VHUFIpOworCisgICAgYXV0byBlbWl0R2V0Q29kZVdpdGhD
YWxsYmFjayA9IFsmXSAocHRyZGlmZl90IGNhY2hlZERvdWJsZU9mZnNldCwgcHRyZGlmZl90IGNh
Y2hlZERhdGFPZmZzZXQsIGF1dG8qIG9wZXJhdGlvbiwgYXV0byBjYWxsYmFjaykgeworICAgICAg
ICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgICAgIEZQUlRlbXBvcmFy
eSB0ZW1wMSh0aGlzKTsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXAyKHRoaXMpOworCisgICAg
ICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOworICAgICAgICBGUFJS
ZWcgdGVtcDFGUFIgPSB0ZW1wMS5mcHIoKTsKKyAgICAgICAgRlBSUmVnIHRlbXAyRlBSID0gdGVt
cDIuZnByKCk7CisKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93Q2FzZXM7CisK
KyAgICAgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgRGF0
ZUluc3RhbmNlOjpvZmZzZXRPZkRhdGEoKSksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0UHRyKENDYWxsSGVscGVyczo6
WmVybywgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpKTsKKyAgICAgICAgbV9qaXQubG9hZERvdWJs
ZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgRGF0ZUluc3RhbmNlOjpvZmZzZXRPZklu
dGVybmFsTnVtYmVyKCkpLCB0ZW1wMUZQUik7CisgICAgICAgIG1faml0LmxvYWREb3VibGUoQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCBjYWNoZWREb3VibGVP
ZmZzZXQpLCB0ZW1wMkZQUik7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNo
RG91YmxlKENDYWxsSGVscGVyczo6RG91YmxlTm90RXF1YWxPclVub3JkZXJlZCwgdGVtcDFGUFIs
IHRlbXAyRlBSKSk7CisgICAgICAgIG1faml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
cmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIGNhY2hlZERhdGFPZmZzZXQpLCByZXN1bHRSZWdzLnBh
eWxvYWRHUFIoKSk7CisgICAgICAgIGNhbGxiYWNrKHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsK
KyAgICAgICAgbV9qaXQuYm94SW50MzIocmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIHJlc3VsdFJl
Z3MpOworCisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChzbG93Q2Fz
ZXMsIHRoaXMsIG9wZXJhdGlvbiwgcmVzdWx0UmVncywgJnZtKCksIGJhc2VHUFIpKTsKKworICAg
ICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworICAgIH07CisKKyAgICBhdXRv
IGVtaXRHZXRDb2RlID0gWyZdIChwdHJkaWZmX3QgY2FjaGVkRG91YmxlT2Zmc2V0LCBwdHJkaWZm
X3QgY2FjaGVkRGF0YU9mZnNldCwgYXV0byogb3BlcmF0aW9uKSB7CisgICAgICAgIGVtaXRHZXRD
b2RlV2l0aENhbGxiYWNrKGNhY2hlZERvdWJsZU9mZnNldCwgY2FjaGVkRGF0YU9mZnNldCwgb3Bl
cmF0aW9uLCBbXSAoR1BSUmVnKSB7IH0pOworICAgIH07CisKKyAgICBzd2l0Y2ggKG5vZGUtPmlu
dHJpbnNpYygpKSB7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VGltZUludHJpbnNpYzogewor
ICAgICAgICBGUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAgICBGUFJSZWcgcmVzdWx0
RlBSID0gcmVzdWx0LmZwcigpOworICAgICAgICBtX2ppdC5sb2FkRG91YmxlKENDYWxsSGVscGVy
czo6QWRkcmVzcyhiYXNlR1BSLCBEYXRlSW5zdGFuY2U6Om9mZnNldE9mSW50ZXJuYWxOdW1iZXIo
KSksIHJlc3VsdEZQUik7CisgICAgICAgIGRvdWJsZVJlc3VsdChyZXN1bHRGUFIsIG5vZGUpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICAvLyBXZSBkbyBub3QgaGF2ZSBhbnkgdGltZXpv
bmUgb2Zmc2V0IHdoaWNoIGFmZmVjdHMgb24gbWlsbGlzZWNvbmRzLgorICAgIC8vIFNvIERhdGUj
Z2V0TWlsbGlzZWNvbmRzIGFuZCBEYXRlI2dldFVUQ01pbGxpc2Vjb25kcyBoYXZlIHRoZSBzYW1l
IGltcGxlbWVudGF0aW9uLgorICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1pbGxpc2Vjb25kc0lu
dHJpbnNpYzoKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJbnRyaW5z
aWM6IHsKKyAgICAgICAgSlNWYWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAg
ICBGUFJUZW1wb3JhcnkgdGVtcDEodGhpcyk7CisgICAgICAgIEZQUlRlbXBvcmFyeSB0ZW1wMih0
aGlzKTsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXAzKHRoaXMpOworICAgICAgICBKU1ZhbHVl
UmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKyAgICAgICAgRlBSUmVnIHRlbXAxRlBS
ID0gdGVtcDEuZnByKCk7CisgICAgICAgIEZQUlJlZyB0ZW1wMkZQUiA9IHRlbXAyLmZwcigpOwor
ICAgICAgICBGUFJSZWcgdGVtcDNGUFIgPSB0ZW1wMy5mcHIoKTsKKworICAgICAgICBtX2ppdC5t
b3ZlVHJ1c3RlZFZhbHVlKGpzTmFOKCksIHJlc3VsdFJlZ3MpOworICAgICAgICBtX2ppdC5sb2Fk
RG91YmxlKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBEYXRlSW5zdGFuY2U6Om9mZnNl
dE9mSW50ZXJuYWxOdW1iZXIoKSksIHRlbXAxRlBSKTsKKyAgICAgICAgYXV0byBpc05hTiA9IG1f
aml0LmJyYW5jaElmTmFOKHRlbXAxRlBSKTsKKworICAgICAgICBzdGF0aWMgY29uc3QgZG91Ymxl
IG1zUGVyU2Vjb25kQ29uc3RhbnQgPSBtc1BlclNlY29uZDsKKyAgICAgICAgbV9qaXQubG9hZERv
dWJsZShUcnVzdGVkSW1tUHRyKCZtc1BlclNlY29uZENvbnN0YW50KSwgdGVtcDJGUFIpOworICAg
ICAgICBtX2ppdC5kaXZEb3VibGUodGVtcDFGUFIsIHRlbXAyRlBSLCB0ZW1wM0ZQUik7CisgICAg
ICAgIG1faml0LmZsb29yRG91YmxlKHRlbXAzRlBSLCB0ZW1wM0ZQUik7CisgICAgICAgIG1faml0
Lm11bERvdWJsZSh0ZW1wM0ZQUiwgdGVtcDJGUFIsIHRlbXAzRlBSKTsKKyAgICAgICAgbV9qaXQu
c3ViRG91YmxlKHRlbXAxRlBSLCB0ZW1wM0ZQUiwgdGVtcDFGUFIpOworICAgICAgICBtX2ppdC50
cnVuY2F0ZURvdWJsZVRvSW50MzIodGVtcDFGUFIsIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsK
KyAgICAgICAgbV9qaXQuYm94SW50MzIocmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIHJlc3VsdFJl
Z3MpOworCisgICAgICAgIGlzTmFOLmxpbmsoJm1faml0KTsKKyAgICAgICAganNWYWx1ZVJlc3Vs
dChyZXN1bHRSZWdzLCBub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBE
YXRlUHJvdG90eXBlR2V0RnVsbFllYXJJbnRyaW5zaWM6CisgICAgICAgIGVtaXRHZXRDb2RlKERh
dGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUygpLCBE
YXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVn
b3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZZZWFyKCksIG9wZXJhdGlvbkRhdGVHZXRGdWxsWWVhcik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0Z1bGxZZWFySW50
cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdy
ZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0
T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNl
dE9mWWVhcigpLCBvcGVyYXRpb25EYXRlR2V0VVRDRnVsbFllYXIpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNpYzoKKyAgICAgICAgZW1pdEdl
dENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZv
ck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUo
KSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoKCksIG9wZXJhdGlvbkRhdGVHZXRN
b250aCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01vbnRo
SW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRP
ZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9m
ZnNldE9mTW9udGgoKSwgb3BlcmF0aW9uRGF0ZUdldFVUQ01vbnRoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF0ZUludHJpbnNpYzoKKyAgICAgICAgZW1pdEdl
dENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZUNhY2hlZEZv
ck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUo
KSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoRGF5KCksIG9wZXJhdGlvbkRhdGVH
ZXREYXRlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF0
ZUludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0
T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURhdGE6Om9m
ZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpv
ZmZzZXRPZk1vbnRoRGF5KCksIG9wZXJhdGlvbkRhdGVHZXRVVENEYXRlKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0RGF5SW50cmluc2ljOgorICAgICAgICBlbWl0
R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVk
Rm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGlt
ZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mV2Vla0RheSgpLCBvcGVyYXRpb25EYXRl
R2V0RGF5KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF5
SW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRP
ZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9m
ZnNldE9mV2Vla0RheSgpLCBvcGVyYXRpb25EYXRlR2V0VVRDRGF5KTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0SG91cnNJbnRyaW5zaWM6CisgICAgICAgIGVtaXRH
ZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRG
b3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1l
KCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZIb3VyKCksIG9wZXJhdGlvbkRhdGVHZXRI
b3Vycyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0hvdXJz
SW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRP
ZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9m
ZnNldE9mSG91cigpLCBvcGVyYXRpb25EYXRlR2V0VVRDSG91cnMpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNaW51dGVzSW50cmluc2ljOgorICAgICAgICBlbWl0
R2V0Q29kZShEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVk
Rm9yTVMoKSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGlt
ZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mTWludXRlKCksIG9wZXJhdGlvbkRhdGVH
ZXRNaW51dGVzKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRD
TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgZW1pdEdldENvZGUoRGF0ZUluc3RhbmNlRGF0YTo6
b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TKCksIERhdGVJbnN0YW5jZURh
dGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVU
aW1lOjpvZmZzZXRPZk1pbnV0ZSgpLCBvcGVyYXRpb25EYXRlR2V0VVRDTWludXRlcyk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFNlY29uZHNJbnRyaW5zaWM6Cisg
ICAgICAgIGVtaXRHZXRDb2RlKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFuRGF0
ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdv
cmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZTZWNvbmQoKSwgb3Bl
cmF0aW9uRGF0ZUdldFNlY29uZHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERhdGVQcm90
b3R5cGVHZXRVVENTZWNvbmRzSW50cmluc2ljOgorICAgICAgICBlbWl0R2V0Q29kZShEYXRlSW5z
dGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoKSwgRGF0
ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3Jl
Z29yaWFuRGF0ZVRpbWU6Om9mZnNldE9mU2Vjb25kKCksIG9wZXJhdGlvbkRhdGVHZXRVVENTZWNv
bmRzKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lem9u
ZU9mZnNldEludHJpbnNpYzogeworICAgICAgICBlbWl0R2V0Q29kZVdpdGhDYWxsYmFjayhEYXRl
SW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSwgRGF0
ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29y
aWFuRGF0ZVRpbWU6Om9mZnNldE9mVVRDT2Zmc2V0SW5NaW51dGUoKSwgb3BlcmF0aW9uRGF0ZUdl
dFRpbWV6b25lT2Zmc2V0LCBbJl0gKEdQUlJlZyBvZmZzZXRHUFIpIHsKKyAgICAgICAgICAgIG1f
aml0Lm5lZzMyKG9mZnNldEdQUik7CisgICAgICAgIH0pOworICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRZZWFySW50cmluc2ljOiB7CisgICAgICAgIGVt
aXRHZXRDb2RlV2l0aENhbGxiYWNrKERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mR3JlZ29yaWFu
RGF0ZVRpbWVDYWNoZWRGb3JNUygpLCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZZZWFyKCksIG9w
ZXJhdGlvbkRhdGVHZXRZZWFyLCBbJl0gKEdQUlJlZyB5ZWFyR1BSKSB7CisgICAgICAgICAgICBt
X2ppdC5zdWIzMihUcnVzdGVkSW1tMzIoMTkwMCksIHllYXJHUFIpOworICAgICAgICB9KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorCisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKICNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6REZHCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtp
bmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCAw
ODRiNTk1YjM5OWE2YTA0YjQ5YzljYzEyMzlkNTBlMmI5MjI4ZTI0Li44ZWY3M2I2ZjJlODc1NTAz
NTk2YTg2NDk3NDBiM2E0NThhYjA5NzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VXNlS2luZC5jcHAKQEAgLTEwNiw2ICsxMDYsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRT
dHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgRGVyaXZlZEFycmF5VXNlOgog
ICAgICAgICBvdXQucHJpbnQoIkRlcml2ZWRBcnJheSIpOwogICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBEYXRlT2JqZWN0VXNlOgorICAgICAgICBvdXQucHJpbnQoIkRhdGVPYmplY3QiKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICBvdXQucHJpbnQo
Ik1hcE9iamVjdCIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VXNlS2luZC5oCmluZGV4IDJlYzRlYTE1M2Q1YzNkMjM3NGIwOWUxY2U3MzgzZDA4YjQxZjNhZWYu
LjljMTNjNWJjZDM1Njk1NzliMDMwOTJjNWM4Zjc1OGI2ZTljMDU5YTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCkBAIC02Nyw2ICs2Nyw3IEBAIGVudW0gVXNlS2luZCB7
CiAgICAgS25vd25QcmltaXRpdmVVc2UsIC8vIFRoaXMgYml6YXJyZSB0eXBlIGFyaXNlcyBmb3Ig
b3Bfc3RyY2F0LCB3aGljaCBoYXMgYSBieXRlY29kZSBndWFyYW50ZWUgdGhhdCBpdCB3aWxsIG9u
bHkgc2VlIHByaW1pdGl2ZXMgKGkuZS4gbm90IG9iamVjdHMpLgogICAgIFN5bWJvbFVzZSwKICAg
ICBCaWdJbnRVc2UsCisgICAgRGF0ZU9iamVjdFVzZSwKICAgICBNYXBPYmplY3RVc2UsCiAgICAg
U2V0T2JqZWN0VXNlLAogICAgIFdlYWtNYXBPYmplY3RVc2UsCkBAIC0xNTUsNiArMTU2LDggQEAg
aW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAg
ICAgICByZXR1cm4gU3BlY0JpZ0ludDsKICAgICBjYXNlIFByb21pc2VPYmplY3RVc2U6CiAgICAg
ICAgIHJldHVybiBTcGVjUHJvbWlzZU9iamVjdDsKKyAgICBjYXNlIERhdGVPYmplY3RVc2U6Cisg
ICAgICAgIHJldHVybiBTcGVjRGF0ZU9iamVjdDsKICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAg
ICAgICAgcmV0dXJuIFNwZWNNYXBPYmplY3Q7CiAgICAgY2FzZSBTZXRPYmplY3RVc2U6CkBAIC0y
NjEsNiArMjY0LDcgQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkKICAgICBjYXNl
IEJpZ0ludFVzZToKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICBjYXNlIFN0cmluZ09y
U3RyaW5nT2JqZWN0VXNlOgorICAgIGNhc2UgRGF0ZU9iamVjdFVzZToKICAgICBjYXNlIE1hcE9i
amVjdFVzZToKICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICBjYXNlIFdlYWtNYXBPYmplY3RV
c2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVh
cFJlcG9zaXRvcnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmNwcAppbmRleCA5YzNjMWM3YWM2ZmE4YWYyODI2M2JhYjJhNzI2OWRiNTUw
ZTM1NmRiLi5jNDVjOWQxYjdlNTRhMGI3Yzc0ZDBhNzM0ZGZkMDcxNTM1OWMyMjBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnku
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAj
aW5jbHVkZSAiQjNQYXRjaHBvaW50VmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5o
IgorI2luY2x1ZGUgIkRhdGVJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5o
IgogI2luY2x1ZGUgIkZUTFN0YXRlLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9y
eS5oCmluZGV4IDEwMzY5ZTRlNDk0NTI2MGRhN2NjNGMxM2EzZjcxODZhNmU0MjM1NDAuLjVkZjQz
Zjc3NGZmMzQ2NjcwY2UxODRlYzc1OGQxYTExMzA3MmJkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCkBAIC01Miw2
ICs1MiwyNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oQnV0
dGVyZmx5X3ZlY3Rvckxlbmd0aCwgQnV0dGVyZmx5OjpvZmZzZXRPZlZlY3Rvckxlbmd0aCgpKSBc
CiAgICAgbWFjcm8oQ2FsbEZyYW1lX2NhbGxlckZyYW1lLCBDYWxsRnJhbWU6OmNhbGxlckZyYW1l
T2Zmc2V0KCkpIFwKICAgICBtYWNybyhDbGFzc0luZm9fcGFyZW50Q2xhc3MsIENsYXNzSW5mbzo6
b2Zmc2V0T2ZQYXJlbnRDbGFzcygpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlX2ludGVybmFs
TnVtYmVyLCBEYXRlSW5zdGFuY2U6Om9mZnNldE9mSW50ZXJuYWxOdW1iZXIoKSkgXAorICAgIG1h
Y3JvKERhdGVJbnN0YW5jZV9kYXRhLCBEYXRlSW5zdGFuY2U6Om9mZnNldE9mRGF0YSgpKSBcCisg
ICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBE
YXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkdyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSkg
XAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRG
b3JNUywgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hl
ZEZvck1TKCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRh
dGVUaW1lX3llYXIsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZlllYXIoKSkgXAorICAgIG1hY3Jv
KERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfeWVhciwgRGF0ZUlu
c3RhbmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29y
aWFuRGF0ZVRpbWU6Om9mZnNldE9mWWVhcigpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0
YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9tb250aCwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zmc2V0
T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNldE9m
TW9udGgoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWVVVENfbW9udGgsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFu
RGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1vbnRoKCkpIFwKKyAg
ICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX21vbnRoRGF5
LCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKCkgKyBH
cmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZNb250aERheSgpKSBcCisgICAgbWFjcm8oRGF0ZUlu
c3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19tb250aERheSwgRGF0ZUluc3Rh
bmNlRGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFu
RGF0ZVRpbWU6Om9mZnNldE9mTW9udGhEYXkoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURh
dGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfd2Vla0RheSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNl
dE9mV2Vla0RheSgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3Jp
YW5EYXRlVGltZVVUQ193ZWVrRGF5LCBEYXRlSW5zdGFuY2VEYXRhOjpvZmZzZXRPZkNhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lVVRDKCkgKyBHcmVnb3JpYW5EYXRlVGltZTo6b2Zmc2V0T2ZXZWVrRGF5
KCkpIFwKKyAgICBtYWNybyhEYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1l
X2hvdXIsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUo
KSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZkhvdXIoKSkgXAorICAgIG1hY3JvKERhdGVJ
bnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfaG91ciwgRGF0ZUluc3RhbmNl
RGF0YTo6b2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQygpICsgR3JlZ29yaWFuRGF0
ZVRpbWU6Om9mZnNldE9mSG91cigpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNo
ZWRHcmVnb3JpYW5EYXRlVGltZV9taW51dGUsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2Fj
aGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1pbnV0
ZSgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGlt
ZVVUQ19taW51dGUsIERhdGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1lOjpvZmZzZXRPZk1pbnV0ZSgpKSBcCisgICAg
bWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV9zZWNvbmQsIERh
dGVJbnN0YW5jZURhdGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWUoKSArIEdyZWdv
cmlhbkRhdGVUaW1lOjpvZmZzZXRPZlNlY29uZCgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNl
RGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQ19zZWNvbmQsIERhdGVJbnN0YW5jZURhdGE6
Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVUaW1l
OjpvZmZzZXRPZlNlY29uZCgpKSBcCisgICAgbWFjcm8oRGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRH
cmVnb3JpYW5EYXRlVGltZV91dGNPZmZzZXRJbk1pbnV0ZSwgRGF0ZUluc3RhbmNlRGF0YTo6b2Zm
c2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpICsgR3JlZ29yaWFuRGF0ZVRpbWU6Om9mZnNl
dE9mVVRDT2Zmc2V0SW5NaW51dGUoKSkgXAorICAgIG1hY3JvKERhdGVJbnN0YW5jZURhdGFfY2Fj
aGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfdXRjT2Zmc2V0SW5NaW51dGUsIERhdGVJbnN0YW5jZURh
dGE6Om9mZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSArIEdyZWdvcmlhbkRhdGVU
aW1lOjpvZmZzZXRPZlVUQ09mZnNldEluTWludXRlKCkpIFwKICAgICBtYWNybyhEaXJlY3RBcmd1
bWVudHNfY2FsbGVlLCBEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mQ2FsbGVlKCkpIFwKICAgICBt
YWNybyhEaXJlY3RBcmd1bWVudHNfbGVuZ3RoLCBEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mTGVu
Z3RoKCkpIFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVudHNfbWluQ2FwYWNpdHksIERpcmVjdEFy
Z3VtZW50czo6b2Zmc2V0T2ZNaW5DYXBhY2l0eSgpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggYzYxZjllNjU4MGJmM2I2ZTQ1YzYxNTBi
OTlmMGY0YjgzYzMxZTZhOS4uOTVkM2NhNjFlMDBiOTRiODEyMTA1YjViMDQ0YmVjZmI3NzFkODE5
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApA
QCAtMzg4LDYgKzM4OCw4IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2Rl
KiBub2RlKQogICAgIGNhc2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgY2FzZSBEYXRhVmlld0dldEZs
b2F0OgogICAgIGNhc2UgRGF0YVZpZXdTZXQ6CisgICAgY2FzZSBEYXRlR2V0SlNOdW1iZXI6Cisg
ICAgY2FzZSBEYXRlR2V0TWFjaGluZURvdWJsZToKICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgog
ICAgICAgICBicmVhazsKIApAQCAtNDcwLDYgKzQ3Miw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5D
b21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIFN0cmluZ09yU3RyaW5n
T2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICAgICAg
ICAgIGNhc2UgQmlnSW50VXNlOgorICAgICAgICAgICAgICAgIGNhc2UgRGF0ZU9iamVjdFVzZToK
ICAgICAgICAgICAgICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNl
IFNldE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIFdlYWtNYXBPYmplY3RVc2U6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggYWYw
YThlYjA3MGIzMGFiYmZmYmYwYTc2NTU4OTVhZWM2MmU5YTk3Zi4uZGYyZmU3ZWM1OTlhZWI1MDFj
NWFjYzY3ZGI4YWM4NzZhMjA0Nzc3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTU0NSw2ICsxNTQ1LDEwIEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgICAgIGNhc2UgRmlsdGVySW5CeUlkU3RhdHVzOgogICAgICAgICAgICAgY29t
cGlsZUZpbHRlcklDU3RhdHVzKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBE
YXRlR2V0SlNOdW1iZXI6CisgICAgICAgIGNhc2UgRGF0ZUdldE1hY2hpbmVEb3VibGU6CisgICAg
ICAgICAgICBjb21waWxlRGF0ZUdldCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgRGF0YVZpZXdHZXRJbnQ6CiAgICAgICAgIGNhc2UgRGF0YVZpZXdHZXRGbG9hdDoKICAgICAg
ICAgICAgIGNvbXBpbGVEYXRhVmlld0dldCgpOwpAQCAtMTM0MDcsNiArMTM0MTEsMTE1IEBAIGNs
YXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisKKyAg
ICB2b2lkIGNvbXBpbGVEYXRlR2V0KCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93
RGF0ZU9iamVjdChtX25vZGUtPmNoaWxkMSgpKTsKKworICAgICAgICBhdXRvIGVtaXRHZXRDb2Rl
V2l0aENhbGxiYWNrID0gWyZdIChjb25zdCBBYnN0cmFjdEhlYXAmIGNhY2hlZERvdWJsZU9mZnNl
dCwgY29uc3QgQWJzdHJhY3RIZWFwJiBjYWNoZWREYXRhT2Zmc2V0LCBhdXRvKiBvcGVyYXRpb24s
IGF1dG8gY2FsbGJhY2spIHsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGRhdGFFeGlzdHNDYXNl
ID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGZhc3RDYXNlID0g
bV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gbV9v
dXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1f
b3V0Lm5ld0Jsb2NrKCk7CisKKyAgICAgICAgICAgIExWYWx1ZSBkYXRhID0gbV9vdXQubG9hZFB0
cihiYXNlLCBtX2hlYXBzLkRhdGVJbnN0YW5jZV9kYXRhKTsKKyAgICAgICAgICAgIG1fb3V0LmJy
YW5jaChtX291dC5ub3RaZXJvNjQoZGF0YSksIHVuc3VyZShkYXRhRXhpc3RzQ2FzZSksIHVuc3Vy
ZShzbG93Q2FzZSkpOworCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0
LmFwcGVuZFRvKGRhdGFFeGlzdHNDYXNlLCBmYXN0Q2FzZSk7CisgICAgICAgICAgICBMVmFsdWUg
bWlsbGlzZWNvbmRzID0gbV9vdXQubG9hZERvdWJsZShiYXNlLCBtX2hlYXBzLkRhdGVJbnN0YW5j
ZV9pbnRlcm5hbE51bWJlcik7CisgICAgICAgICAgICBMVmFsdWUgY2FjaGVkTWlsbGlzZWNvbmRz
ID0gbV9vdXQubG9hZERvdWJsZShkYXRhLCBjYWNoZWREb3VibGVPZmZzZXQpOworICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKG1fb3V0LmRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQobWlsbGlzZWNv
bmRzLCBjYWNoZWRNaWxsaXNlY29uZHMpLCB1bnN1cmUoc2xvd0Nhc2UpLCB1bnN1cmUoZmFzdENh
c2UpKTsKKworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZmFzdENhc2UsIHNsb3dDYXNlKTsK
KyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3IoYm94
SW50MzIoY2FsbGJhY2sobV9vdXQubG9hZDMyKGRhdGEsIGNhY2hlZERhdGFPZmZzZXQpKSkpOwor
ICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAgICAgICAgICBtX291
dC5hcHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIFZhbHVlRnJv
bUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxsKEludDY0LCBvcGVyYXRpb24s
IG1fdm1WYWx1ZSwgYmFzZSkpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24p
OworCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsK
KyAgICAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKEludDY0LCBmYXN0UmVzdWx0LCBzbG93
UmVzdWx0KSk7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0byBlbWl0R2V0Q29kZSA9IFsmXSAo
Y29uc3QgQWJzdHJhY3RIZWFwJiBjYWNoZWREb3VibGVPZmZzZXQsIGNvbnN0IEFic3RyYWN0SGVh
cCYgY2FjaGVkRGF0YU9mZnNldCwgYXV0byogb3BlcmF0aW9uKSB7CisgICAgICAgICAgICBlbWl0
R2V0Q29kZVdpdGhDYWxsYmFjayhjYWNoZWREb3VibGVPZmZzZXQsIGNhY2hlZERhdGFPZmZzZXQs
IG9wZXJhdGlvbiwgW10gKExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0pOworICAgICAg
ICB9OworCisgICAgICAgIHN3aXRjaCAobV9ub2RlLT5pbnRyaW5zaWMoKSkgeworICAgICAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljOgorICAgICAgICAgICAgc2V0RG91Ymxl
KG1fb3V0LmxvYWREb3VibGUoYmFzZSwgbV9oZWFwcy5EYXRlSW5zdGFuY2VfaW50ZXJuYWxOdW1i
ZXIpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdl
dE1pbGxpc2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRD
TWlsbGlzZWNvbmRzSW50cmluc2ljOiB7CisgICAgICAgICAgICBMVmFsdWUgbWlsbGlzZWNvbmRz
ID0gbV9vdXQubG9hZERvdWJsZShiYXNlLCBtX2hlYXBzLkRhdGVJbnN0YW5jZV9pbnRlcm5hbE51
bWJlcik7CisgICAgICAgICAgICBMVmFsdWUgbXNQZXJTZWNvbmRDb25zdGFudCA9IG1fb3V0LmNv
bnN0RG91YmxlKG1zUGVyU2Vjb25kKTsKKyAgICAgICAgICAgIExWYWx1ZSBzZWNvbmRzID0gbV9v
dXQuZG91YmxlRmxvb3IobV9vdXQuZG91YmxlRGl2KG1pbGxpc2Vjb25kcywgbXNQZXJTZWNvbmRD
b25zdGFudCkpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmRvdWJsZVRvSW50
KG1fb3V0LmRvdWJsZVN1YihtaWxsaXNlY29uZHMsIG1fb3V0LmRvdWJsZU11bChzZWNvbmRzLCBt
c1BlclNlY29uZENvbnN0YW50KSkpOworICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5zZWxl
Y3QobV9vdXQuZG91YmxlTm90RXF1YWxPclVub3JkZXJlZChtaWxsaXNlY29uZHMsIG1pbGxpc2Vj
b25kcyksIG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpKSwgYm94SW50
MzIocmVzdWx0KSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRH
ZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZv
ck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfeWVh
ciwgb3BlcmF0aW9uRGF0ZUdldEZ1bGxZZWFyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgICAg
IGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZVVU
Q0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0
ZVRpbWVVVENfeWVhciwgb3BlcmF0aW9uRGF0ZUdldFVUQ0Z1bGxZZWFyKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNpYzoKKyAg
ICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5E
YXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29y
aWFuRGF0ZVRpbWVfbW9udGgsIG9wZXJhdGlvbkRhdGVHZXRNb250aCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDTW9udGhJbnRyaW5zaWM6Cisg
ICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3JlZ29yaWFu
RGF0ZVRpbWVVVENDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2NhY2hlZEdy
ZWdvcmlhbkRhdGVUaW1lVVRDX21vbnRoLCBvcGVyYXRpb25EYXRlR2V0VVRDTW9udGgpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldERhdGVJbnRyaW5z
aWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfZ3Jl
Z29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VEYXRhX2NhY2hl
ZEdyZWdvcmlhbkRhdGVUaW1lX21vbnRoRGF5LCBvcGVyYXRpb25EYXRlR2V0RGF0ZSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDRGF0ZUludHJp
bnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9n
cmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFf
Y2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfbW9udGhEYXksIG9wZXJhdGlvbkRhdGVHZXRVVENE
YXRlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRE
YXlJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJbnN0YW5j
ZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5zdGFuY2VE
YXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX3dlZWtEYXksIG9wZXJhdGlvbkRhdGVHZXREYXkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0Rh
eUludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNl
RGF0YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5j
ZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfd2Vla0RheSwgb3BlcmF0aW9uRGF0ZUdl
dFVUQ0RheSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBl
R2V0SG91cnNJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJ
bnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRlSW5z
dGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lX2hvdXIsIG9wZXJhdGlvbkRhdGVHZXRI
b3Vycyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0
VVRDSG91cnNJbnRyaW5zaWM6CisgICAgICAgICAgICBlbWl0R2V0Q29kZShtX2hlYXBzLkRhdGVJ
bnN0YW5jZURhdGFfZ3JlZ29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUywgbV9oZWFwcy5EYXRl
SW5zdGFuY2VEYXRhX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lVVRDX2hvdXIsIG9wZXJhdGlvbkRh
dGVHZXRVVENIb3Vycyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlUHJv
dG90eXBlR2V0TWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlKG1faGVh
cHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBz
LkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfbWludXRlLCBvcGVyYXRp
b25EYXRlR2V0TWludXRlcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRl
UHJvdG90eXBlR2V0VVRDTWludXRlc0ludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2Rl
KG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1T
LCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVENfbWlu
dXRlLCBvcGVyYXRpb25EYXRlR2V0VVRDTWludXRlcyk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0U2Vjb25kc0ludHJpbnNpYzoKKyAgICAgICAgICAg
IGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNh
Y2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRp
bWVfc2Vjb25kLCBvcGVyYXRpb25EYXRlR2V0U2Vjb25kcyk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VVRDU2Vjb25kc0ludHJpbnNpYzoKKyAgICAg
ICAgICAgIGVtaXRHZXRDb2RlKG1faGVhcHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRl
VGltZVVUQ0NhY2hlZEZvck1TLCBtX2hlYXBzLkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29y
aWFuRGF0ZVRpbWVVVENfc2Vjb25kLCBvcGVyYXRpb25EYXRlR2V0VVRDU2Vjb25kcyk7CisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lem9uZU9m
ZnNldEludHJpbnNpYzoKKyAgICAgICAgICAgIGVtaXRHZXRDb2RlV2l0aENhbGxiYWNrKG1faGVh
cHMuRGF0ZUluc3RhbmNlRGF0YV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TLCBtX2hlYXBz
LkRhdGVJbnN0YW5jZURhdGFfY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVfdXRjT2Zmc2V0SW5NaW51
dGUsIG9wZXJhdGlvbkRhdGVHZXRUaW1lem9uZU9mZnNldCwgWyZdIChMVmFsdWUgb2Zmc2V0KSB7
CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fb3V0Lm5lZyhvZmZzZXQpOworICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRZ
ZWFySW50cmluc2ljOgorICAgICAgICAgICAgZW1pdEdldENvZGVXaXRoQ2FsbGJhY2sobV9oZWFw
cy5EYXRlSW5zdGFuY2VEYXRhX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMsIG1faGVhcHMu
RGF0ZUluc3RhbmNlRGF0YV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZV95ZWFyLCBvcGVyYXRpb25E
YXRlR2V0WWVhciwgWyZdIChMVmFsdWUgeWVhcikgeworICAgICAgICAgICAgICAgIHJldHVybiBt
X291dC5zdWIoeWVhciwgbV9vdXQuY29uc3RJbnQzMigxOTAwKSk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgfQogICAgIAogICAgIHZv
aWQgZW1pdFN3aXRjaEZvck11bHRpQnlPZmZzZXQoTFZhbHVlIGJhc2UsIGJvb2wgc3RydWN0dXJl
c0NoZWNrZWQsIFZlY3RvcjxTd2l0Y2hDYXNlLCAyPiYgY2FzZXMsIExCYXNpY0Jsb2NrIGV4aXQp
CiAgICAgewpAQCAtMTU3NTYsNiArMTU4NjksMTMgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAg
ICAgICAgc3BlY3VsYXRlRGF0YVZpZXdPYmplY3QoZWRnZSwgcmVzdWx0KTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CisKKyAgICBMVmFsdWUgbG93RGF0ZU9iamVjdChFZGdlIGVkZ2Up
CisgICAgeworICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93Q2VsbChlZGdlKTsKKyAgICAgICAg
c3BlY3VsYXRlRGF0ZU9iamVjdChlZGdlLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KICAgICAKICAgICBMVmFsdWUgbG93U3RyaW5nKEVkZ2UgZWRnZSwgT3BlcmFuZFNw
ZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQogICAgIHsK
QEAgLTE2MjQwLDYgKzE2MzYwLDkgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgY2Fz
ZSBEZXJpdmVkQXJyYXlVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVEZXJpdmVkQXJyYXkoZWRn
ZSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEYXRlT2JqZWN0VXNlOgorICAg
ICAgICAgICAgc3BlY3VsYXRlRGF0ZU9iamVjdChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIE1hcE9iamVjdFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZU1hcE9iamVj
dChlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTY3NjYsNiArMTY4ODksMTcgQEAgY2xh
c3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgc3BlY3VsYXRlUHJvbWlzZU9iamVjdChlZGdlLCBs
b3dDZWxsKGVkZ2UpKTsKICAgICB9CiAKKyAgICB2b2lkIHNwZWN1bGF0ZURhdGVPYmplY3QoRWRn
ZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKAorICAg
ICAgICAgICAganNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjRGF0ZU9iamVjdCwgaXNOb3RU
eXBlKGNlbGwsIEpTRGF0ZVR5cGUpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZURhdGVP
YmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlRGF0ZU9iamVjdChlZGdl
LCBsb3dDZWxsKGVkZ2UpKTsKKyAgICB9CisKICAgICB2b2lkIHNwZWN1bGF0ZU1hcE9iamVjdChF
ZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVyc2lvbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29udmVyc2lvbi5jcHAKaW5k
ZXggYWU5ZjRlMGNhN2NjYjAyZmFiNDJiZmMyZTI2NDliMDJiYThlZDk0YS4uNWIyYWExYTcxZmZm
NWE1MGRkMzExZWRkMjVlYWRkMTgyZTdiN2M5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVDb252ZXJzaW9uLmNwcApAQCAtOTcsOCArOTcsOCBAQCBTdHJpbmcg
Zm9ybWF0RGF0ZVRpbWUoY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUmIHQsIERhdGVUaW1lRm9ybWF0
IGZvcm1hdCwgYm9vbCBhcwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBHTVQiKTsK
IAogICAgICAgICBpZiAoIWFzVVRDVmFyaWFudCkgewotICAgICAgICAgICAgaW50IG9mZnNldCA9
IGFicyh0LnV0Y09mZnNldCgpKSAvIDYwOwotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodC51
dGNPZmZzZXQoKSA8IDAgPyAnLScgOiAnKycpOworICAgICAgICAgICAgaW50IG9mZnNldCA9IGFi
cyh0LnV0Y09mZnNldEluTWludXRlKCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQodC51
dGNPZmZzZXRJbk1pbnV0ZSgpIDwgMCA/ICctJyA6ICcrJyk7CiAgICAgICAgICAgICBhcHBlbmRO
dW1iZXI8Mj4oYnVpbGRlciwgb2Zmc2V0IC8gNjApOwogICAgICAgICAgICAgYXBwZW5kTnVtYmVy
PDI+KGJ1aWxkZXIsIG9mZnNldCAlIDYwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKaW5kZXggN2I0ZTQ1Y2VhNDE5OWExODcyMzc5MTQxY2Q1
ZTIyZTE3NmQzNGU0Ny4uOGY1YzJlZDIyNjMyOTVjYmM0NTdlZTc2ZWFlYjM3NGQzZTdmMmEyMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCkBA
IC01NywxMyArNTcsMTIgQEAgdm9pZCBEYXRlSW5zdGFuY2U6OmRlc3Ryb3koSlNDZWxsKiBjZWxs
KQogICAgIHN0YXRpY19jYXN0PERhdGVJbnN0YW5jZSo+KGNlbGwpLT5EYXRlSW5zdGFuY2U6On5E
YXRlSW5zdGFuY2UoKTsKIH0KIAotY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIERhdGVJbnN0YW5j
ZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkgY29uc3QKK2NvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBEYXRlSW5zdGFuY2U6OmNhbGN1bGF0
ZUdyZWdvcmlhbkRhdGVUaW1lKFZNJiB2bSkgY29uc3QKIHsKICAgICBkb3VibGUgbWlsbGkgPSBp
bnRlcm5hbE51bWJlcigpOwogICAgIGlmIChzdGQ6OmlzbmFuKG1pbGxpKSkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGlmICghbV9kYXRhKQogICAgICAgICBtX2RhdGEgPSB2bS5kYXRlSW5z
dGFuY2VDYWNoZS5hZGQobWlsbGkpOwogCkBAIC03NCwxMyArNzMsMTIgQEAgY29uc3QgR3JlZ29y
aWFuRGF0ZVRpbWUqIERhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWUoSlNH
bG9iYWxPYmplY3QKICAgICByZXR1cm4gJm1fZGF0YS0+bV9jYWNoZWRHcmVnb3JpYW5EYXRlVGlt
ZTsKIH0KIAotY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIERhdGVJbnN0YW5jZTo6Y2FsY3VsYXRl
R3JlZ29yaWFuRGF0ZVRpbWVVVEMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QK
K2NvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBEYXRlSW5zdGFuY2U6OmNhbGN1bGF0ZUdyZWdvcmlh
bkRhdGVUaW1lVVRDKFZNJiB2bSkgY29uc3QKIHsKICAgICBkb3VibGUgbWlsbGkgPSBpbnRlcm5h
bE51bWJlcigpOwogICAgIGlmIChzdGQ6OmlzbmFuKG1pbGxpKSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGlmICghbV9kYXRhKQogICAgICAgICBtX2RhdGEgPSB2bS5kYXRlSW5zdGFuY2VD
YWNoZS5hZGQobWlsbGkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlSW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJ
bnN0YW5jZS5oCmluZGV4IDM1NzhhYjgyYTQ2NTM2MDFjMDlkODBkZDA0NTQ0NWViODA0MjljNmMu
LjllNzc4Mzk3MTRmY2RjMTdiODdhNjRkOTdiYjg0MGY5N2NhZGM0NmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCkBAIC01NCwyOCArNTQsMzEgQEAg
Y2xhc3MgRGF0ZUluc3RhbmNlIGZpbmFsIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsK
IAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogZ3JlZ29yaWFuRGF0ZVRpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QK
KyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUoVk0mIHZtKSBj
b25zdAogICAgIHsKICAgICAgICAgaWYgKG1fZGF0YSAmJiBtX2RhdGEtPm1fZ3JlZ29yaWFuRGF0
ZVRpbWVDYWNoZWRGb3JNUyA9PSBpbnRlcm5hbE51bWJlcigpKQogICAgICAgICAgICAgcmV0dXJu
ICZtX2RhdGEtPm1fY2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWU7Ci0gICAgICAgIHJldHVybiBjYWxj
dWxhdGVHcmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gY2Fs
Y3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIH0KIAotICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZVVUQyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KSBjb25zdAorICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGlt
ZVVUQyhWTSYgdm0pIGNvbnN0CiAgICAgewogICAgICAgICBpZiAobV9kYXRhICYmIG1fZGF0YS0+
bV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TID09IGludGVybmFsTnVtYmVyKCkpCiAg
ICAgICAgICAgICByZXR1cm4gJm1fZGF0YS0+bV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQzsK
LSAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVj
dCk7CisgICAgICAgIHJldHVybiBjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZVVUQyh2bSk7CiAg
ICAgfQogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKEpTRGF0ZVR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKKyAg
ICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSW50ZXJuYWxOdW1iZXIoKSB7IHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoRGF0ZUluc3RhbmNlLCBtX2ludGVybmFsTnVtYmVyKTsgfQorICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZEYXRhKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKERhdGVJ
bnN0YW5jZSwgbV9kYXRhKTsgfQorCiBwcml2YXRlOgotICAgIEpTX0VYUE9SVF9QUklWQVRFIGNv
bnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZShKU0dsb2Jh
bE9iamVjdCopIGNvbnN0OwotICAgIEpTX0VYUE9SVF9QUklWQVRFIGNvbnN0IEdyZWdvcmlhbkRh
dGVUaW1lKiBjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZVVUQyhKU0dsb2JhbE9iamVjdCopIGNv
bnN0OworICAgIEpTX0VYUE9SVF9QUklWQVRFIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBjYWxj
dWxhdGVHcmVnb3JpYW5EYXRlVGltZShWTSYpIGNvbnN0OworICAgIEpTX0VYUE9SVF9QUklWQVRF
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZVVUQyhW
TSYpIGNvbnN0OwogCiAgICAgZG91YmxlIG1faW50ZXJuYWxOdW1iZXIgeyBQTmFOIH07CiAgICAg
bXV0YWJsZSBSZWZQdHI8RGF0ZUluc3RhbmNlRGF0YT4gbV9kYXRhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlQ2FjaGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmgKaW5kZXggNzU2NDBlYjM3
MzA0MWM4ZTkzYzRiOTI2NjZiOGYxZmUyMzczODVhMS4uMmM0ZmI1MjJkM2VmOWI2MmU4YjQwYmUz
M2VlOGVlY2VhZTEwYjBhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUluc3RhbmNlQ2FjaGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlSW5zdGFuY2VDYWNoZS5oCkBAIC0zNywxNyArMzcsMTggQEAgY2xhc3MgRGF0ZUluc3Rh
bmNlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGVJbnN0YW5jZURhdGE+IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPERhdGVJbnN0YW5jZURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRGF0ZUluc3RhbmNlRGF0YSk7IH0KIAotICAgIGRvdWJsZSBtX2dyZWdvcmlhbkRh
dGVUaW1lQ2FjaGVkRm9yTVM7CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkdyZWdvcmlh
bkRhdGVUaW1lQ2FjaGVkRm9yTVMoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRGF0ZUluc3Rh
bmNlRGF0YSwgbV9ncmVnb3JpYW5EYXRlVGltZUNhY2hlZEZvck1TKTsgfQorICAgIHN0YXRpYyBw
dHJkaWZmX3Qgb2Zmc2V0T2ZDYWNoZWRHcmVnb3JpYW5EYXRlVGltZSgpIHsgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihEYXRlSW5zdGFuY2VEYXRhLCBtX2NhY2hlZEdyZWdvcmlhbkRhdGVUaW1lKTsg
fQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZHcmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hl
ZEZvck1TKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKERhdGVJbnN0YW5jZURhdGEsIG1fZ3Jl
Z29yaWFuRGF0ZVRpbWVVVENDYWNoZWRGb3JNUyk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9m
ZnNldE9mQ2FjaGVkR3JlZ29yaWFuRGF0ZVRpbWVVVEMoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VU
T0YoRGF0ZUluc3RhbmNlRGF0YSwgbV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQyk7IH0KKwor
ICAgIGRvdWJsZSBtX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMgeyBQTmFOIH07CiAgICAg
R3JlZ29yaWFuRGF0ZVRpbWUgbV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZTsKLSAgICBkb3VibGUg
bV9ncmVnb3JpYW5EYXRlVGltZVVUQ0NhY2hlZEZvck1TOworICAgIGRvdWJsZSBtX2dyZWdvcmlh
bkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMgeyBQTmFOIH07CiAgICAgR3JlZ29yaWFuRGF0ZVRpbWUg
bV9jYWNoZWRHcmVnb3JpYW5EYXRlVGltZVVUQzsKIAogcHJpdmF0ZToKLSAgICBEYXRlSW5zdGFu
Y2VEYXRhKCkKLSAgICAgICAgOiBtX2dyZWdvcmlhbkRhdGVUaW1lQ2FjaGVkRm9yTVMoUE5hTikK
LSAgICAgICAgLCBtX2dyZWdvcmlhbkRhdGVUaW1lVVRDQ2FjaGVkRm9yTVMoUE5hTikKLSAgICB7
Ci0gICAgfQorICAgIERhdGVJbnN0YW5jZURhdGEoKSA9IGRlZmF1bHQ7CiB9OwogCiBjbGFzcyBE
YXRlSW5zdGFuY2VDYWNoZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVQcm90b3R5cGUuY3BwCmluZGV4IDIzOWU5MzJlZWRjNGZhZDUwN2JlYTE4MzRmN2Q0OTc1ZTY5
ZjEyY2UuLjJhZmYwZjczZDdjNjQ0YzY4ZGFkNWMxNjdmZmUzZjM3YmQ0N2M4NzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCkBAIC0zMTMs
NyArMzEzLDcgQEAgc3RhdGljIEpTQ2VsbCogZm9ybWF0TG9jYWxlRGF0ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmEKIHN0YXRpYyBKU0NlbGwqIGZvcm1h
dExvY2FsZURhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIERhdGVJbnN0YW5jZSogZGF0ZU9iamVjdCwgZG91YmxlLCBMb2NhbGVEYXRlVGltZUZv
cm1hdCBmb3JtYXQpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGNv
bnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IGRhdGVPYmplY3QtPmdy
ZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRp
bWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gZGF0ZU9iamVjdC0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0p
OwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJldHVybiBqc05vbnRyaXZp
YWxTdHJpbmcodm0sICJJbnZhbGlkIERhdGUiX3MpOwogICAgIHJldHVybiBmb3JtYXRMb2NhbGVE
YXRlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAqZ3JlZ29yaWFuRGF0ZVRpbWUsIGZvcm1hdCk7
CkBAIC0zMzEsOCArMzMxLDggQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZvcm1hdGVEYXRlSW5z
dGFuY2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0KICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAKICAgICBjb25zdCBH
cmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSBhc1VUQ1ZhcmlhbnQKLSAgICAg
ICAgPyB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KQotICAg
ICAgICA6IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOworICAg
ICAgICA/IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSkKKyAgICAgICAgOiB0
aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWUodm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0
ZVRpbWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2aWFsU3RyaW5n
KHZtLCBTdHJpbmcoIkludmFsaWQgRGF0ZSJfcykpKTsKIApAQCAtNDU0LDI1ICs0NTQsMjYgQEAg
Y29uc3QgQ2xhc3NJbmZvIERhdGVQcm90b3R5cGU6OnNfaW5mbyA9IHsiT2JqZWN0IiwgJkpTTm9u
RmluYWxPYmplY3Q6OnNfaW5mbywgJmQKICAgdG9Mb2NhbGVTdHJpbmcgICAgICAgIGRhdGVQcm90
b0Z1bmNUb0xvY2FsZVN0cmluZyAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCiAg
IHRvTG9jYWxlRGF0ZVN0cmluZyAgICBkYXRlUHJvdG9GdW5jVG9Mb2NhbGVEYXRlU3RyaW5nICAg
ICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAogICB0b0xvY2FsZVRpbWVTdHJpbmcgICAgZGF0
ZVByb3RvRnVuY1RvTG9jYWxlVGltZVN0cmluZyAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAg
IDAKLSAgdmFsdWVPZiAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRUaW1lICAgICAgICAg
ICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFRpbWUgICAgICAgICAgICAg
ICBkYXRlUHJvdG9GdW5jR2V0VGltZSAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
ICAgICAgMAotICBnZXRGdWxsWWVhciAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFy
ICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VVRDRnVsbFllYXIg
ICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhciAgICAgICAgICBEb250RW51bXxGdW5j
dGlvbiAgICAgICAwCi0gIGdldE1vbnRoICAgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0TW9u
dGggICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRVVENNb250
aCAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoICAgICAgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0RGF0ZSAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNH
ZXREYXRlICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldFVU
Q0RhdGUgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZSAgICAgICAgICAgICAgRG9u
dEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXREYXkgICAgICAgICAgICAgICAgZGF0ZVByb3Rv
RnVuY0dldERheSAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAg
Z2V0VVRDRGF5ICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENEYXkgICAgICAgICAgICAg
ICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldEhvdXJzICAgICAgICAgICAgICBkYXRl
UHJvdG9GdW5jR2V0SG91cnMgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAg
MAotICBnZXRVVENIb3VycyAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzICAgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0TWludXRlcyAgICAgICAgICAg
IGRhdGVQcm90b0Z1bmNHZXRNaW51dGVzICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAg
ICAgICAwCi0gIGdldFVUQ01pbnV0ZXMgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRl
cyAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAotICBnZXRTZWNvbmRzICAgICAg
ICAgICAgZGF0ZVByb3RvRnVuY0dldFNlY29uZHMgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uICAgICAgIDAKLSAgZ2V0VVRDU2Vjb25kcyAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRVVENT
ZWNvbmRzICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwCi0gIGdldE1pbGxpc2Vj
b25kcyAgICAgICBkYXRlUHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRzICAgICAgICAgRG9udEVudW18
RnVuY3Rpb24gICAgICAgMAotICBnZXRVVENNaWxsaXNlY29uZHMgICAgZGF0ZVByb3RvRnVuY0dl
dFVUQ01pbGxpc2Vjb25kcyAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAKLSAgZ2V0VGlt
ZXpvbmVPZmZzZXQgICAgIGRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNldCAgICAgICBEb250
RW51bXxGdW5jdGlvbiAgICAgICAwCisgIHZhbHVlT2YgICAgICAgICAgICAgICBkYXRlUHJvdG9G
dW5jR2V0VGltZSAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0
ZVByb3RvdHlwZUdldFRpbWVJbnRyaW5zaWMKKyAgZ2V0VGltZSAgICAgICAgICAgICAgIGRhdGVQ
cm90b0Z1bmNHZXRUaW1lICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAw
ICBEYXRlUHJvdG90eXBlR2V0VGltZUludHJpbnNpYworICBnZXRGdWxsWWVhciAgICAgICAgICAg
ZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAg
ICAgIDAgIERhdGVQcm90b3R5cGVHZXRGdWxsWWVhckludHJpbnNpYworICBnZXRVVENGdWxsWWVh
ciAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyICAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRVVENGdWxsWWVhckludHJpbnNpYworICBn
ZXRNb250aCAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldE1vbnRoICAgICAgICAgICAgICAg
IERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRNb250aEludHJpbnNp
YworICBnZXRVVENNb250aCAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoICAgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRVVENNb250
aEludHJpbnNpYworICBnZXREYXRlICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldERhdGUg
ICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVH
ZXREYXRlSW50cmluc2ljCisgIGdldFVUQ0RhdGUgICAgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0
VVRDRGF0ZSAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3Rv
dHlwZUdldFVUQ0RhdGVJbnRyaW5zaWMKKyAgZ2V0RGF5ICAgICAgICAgICAgICAgIGRhdGVQcm90
b0Z1bmNHZXREYXkgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBE
YXRlUHJvdG90eXBlR2V0RGF5SW50cmluc2ljCisgIGdldFVUQ0RheSAgICAgICAgICAgICBkYXRl
UHJvdG9GdW5jR2V0VVRDRGF5ICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAg
MCAgRGF0ZVByb3RvdHlwZUdldFVUQ0RheUludHJpbnNpYworICBnZXRIb3VycyAgICAgICAgICAg
ICAgZGF0ZVByb3RvRnVuY0dldEhvdXJzICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9u
ICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRIb3Vyc0ludHJpbnNpYworICBnZXRVVENIb3VycyAg
ICAgICAgICAgZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzICAgICAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYworICBnZXRN
aW51dGVzICAgICAgICAgICAgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMgICAgICAgICAgICAgIERv
bnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRNaW51dGVzSW50cmluc2lj
CisgIGdldFVUQ01pbnV0ZXMgICAgICAgICBkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRlcyAgICAg
ICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMCAgRGF0ZVByb3RvdHlwZUdldFVUQ01pbnV0
ZXNJbnRyaW5zaWMKKyAgZ2V0U2Vjb25kcyAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNHZXRTZWNv
bmRzICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBl
R2V0U2Vjb25kc0ludHJpbnNpYworICBnZXRVVENTZWNvbmRzICAgICAgICAgZGF0ZVByb3RvRnVu
Y0dldFVUQ1NlY29uZHMgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDAgIERhdGVQ
cm90b3R5cGVHZXRVVENTZWNvbmRzSW50cmluc2ljCisgIGdldE1pbGxpc2Vjb25kcyAgICAgICBk
YXRlUHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRzICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAg
ICAgMCAgRGF0ZVByb3RvdHlwZUdldE1pbGxpc2Vjb25kc0ludHJpbnNpYworICBnZXRVVENNaWxs
aXNlY29uZHMgICAgZGF0ZVByb3RvRnVuY0dldFVUQ01pbGxpc2Vjb25kcyAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uICAgICAgIDAgIERhdGVQcm90b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJbnRyaW5z
aWMKKyAgZ2V0VGltZXpvbmVPZmZzZXQgICAgIGRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNl
dCAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJvdG90eXBlR2V0VGltZXpv
bmVPZmZzZXRJbnRyaW5zaWMKKyAgZ2V0WWVhciAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNH
ZXRZZWFyICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAgICAgICAwICBEYXRlUHJv
dG90eXBlR2V0WWVhckludHJpbnNpYwogICBzZXRUaW1lICAgICAgICAgICAgICAgZGF0ZVByb3Rv
RnVuY1NldFRpbWUgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDEKICAg
c2V0TWlsbGlzZWNvbmRzICAgICAgIGRhdGVQcm90b0Z1bmNTZXRNaWxsaVNlY29uZHMgICAgICAg
ICBEb250RW51bXxGdW5jdGlvbiAgICAgICAxCiAgIHNldFVUQ01pbGxpc2Vjb25kcyAgICBkYXRl
UHJvdG9GdW5jU2V0VVRDTWlsbGlzZWNvbmRzICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAg
MQpAQCAtNDg5LDcgKzQ5MCw2IEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlUHJvdG90eXBlOjpzX2lu
Zm8gPSB7Ik9iamVjdCIsICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8sICZkCiAgIHNldEZ1bGxZ
ZWFyICAgICAgICAgICBkYXRlUHJvdG9GdW5jU2V0RnVsbFllYXIgICAgICAgICAgICAgRG9udEVu
dW18RnVuY3Rpb24gICAgICAgMwogICBzZXRVVENGdWxsWWVhciAgICAgICAgZGF0ZVByb3RvRnVu
Y1NldFVUQ0Z1bGxZZWFyICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDMKICAgc2V0
WWVhciAgICAgICAgICAgICAgIGRhdGVQcm90b0Z1bmNTZXRZZWFyICAgICAgICAgICAgICAgICBE
b250RW51bXxGdW5jdGlvbiAgICAgICAxCi0gIGdldFllYXIgICAgICAgICAgICAgICBkYXRlUHJv
dG9GdW5jR2V0WWVhciAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gICAgICAgMAog
ICB0b0pTT04gICAgICAgICAgICAgICAgZGF0ZVByb3RvRnVuY1RvSlNPTiAgICAgICAgICAgICAg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uICAgICAgIDEKIEBlbmQKICovCkBAIC01NDksNyArNTQ5LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9JU09TdHJpbmco
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodGhpc0Rh
dGVPYmotPmludGVybmFsTnVtYmVyKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiSW52YWxp
ZCBEYXRlIl9zKSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0
ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsK
KyAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRp
bWUpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2aWFsU3RyaW5nKHZt
LCBTdHJpbmcoIkludmFsaWQgRGF0ZSJfcykpKTsKICAgICAvLyBNYXhpbXVtIGFtb3VudCBvZiBz
cGFjZSB3ZSBuZWVkIGluIGJ1ZmZlcjogNyAobWF4LiBkaWdpdHMgaW4geWVhcikgKyAyICogNSAo
MiBjaGFyYWN0ZXJzIGVhY2ggZm9yIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kKSAr
IDQgKC4gKyAzIGRpZ2l0cyBmb3IgbWlsbGlzZWNvbmRzKQpAQCAtNjY0LDcgKzY2NCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0g
ICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVP
YmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVU
aW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnllYXIoKSkpOwpAQCAtNjc5LDcgKzY3OSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAg
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVU
aW1lVVRDKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnllYXIoKSkpOwpAQCAtNjk0LDcgKzY5NCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1vbnRoKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0g
ICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVP
YmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFu
RGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVU
aW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKQEAgLTcwOSw3ICs3MDksNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNb250aChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZQogICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAg
IGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRl
VGltZVVUQyh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aCgpKSk7CkBAIC03MjQsNyArNzI0LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RGF0ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAot
ICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRl
T2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRl
VGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVt
YmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5tb250aERheSgpKSk7CkBAIC03MzksNyArNzM5LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBpZiAoVU5MSUtFTFkoIXRoaXNEYXRlT2JqKSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAK
LSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0
ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdCBHcmVn
b3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFu
RGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGhEYXkoKSkpOwpAQCAtNzU0LDcgKzc1
NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERheShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0
ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0g
dGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgY29uc3Qg
R3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdv
cmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPndlZWtEYXkoKSkpOwpAQCAtNzY5LDcgKzc2
OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0Rh
eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0
ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0g
dGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCk7CisgICAgY29u
c3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdy
ZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPndlZWtEYXkoKSkpOwpAQCAtNzg0
LDcgKzc4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dEhvdXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgaWYgKFVOTElLRUxZKCF0
aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAg
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPmhvdXIoKSkpOwpAQCAtNzk5LDcg
Kzc5OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVU
Q0hvdXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgaWYgKFVOTElLRUxZKCF0aGlz
RGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1l
ID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCk7CisgICAg
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPmhvdXIoKSkpOwpAQCAtODE0
LDcgKzgxNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dE1pbnV0ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgaWYgKFVOTElLRUxZKCF0
aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVU
aW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAg
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVUaW1lKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1pbnV0ZSgpKSk7CkBAIC04Mjks
NyArODI5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0
VVRDTWludXRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBpZiAoVU5MSUtFTFkoIXRo
aXNEYXRlT2JqKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSk7CiAKLSAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRp
bWUgPSB0aGlzRGF0ZU9iai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEMoZ2xvYmFsT2JqZWN0KTsKKyAg
ICBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogZ3JlZ29yaWFuRGF0ZVRpbWUgPSB0aGlzRGF0ZU9i
ai0+Z3JlZ29yaWFuRGF0ZVRpbWVVVEModm0pOwogICAgIGlmICghZ3JlZ29yaWFuRGF0ZVRpbWUp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKTsKQEAg
LTg0NCw3ICs4NDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNHZXRTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIGlmIChVTkxJS0VM
WSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5E
YXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9iYWxPYmplY3QpOwor
ICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRl
T2JqLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3JpYW5EYXRlVGltZSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5zZWNvbmQoKSkpOwpAQCAt
ODU5LDcgKzg1OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVu
Y0dldFVUQ1NlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgaWYgKFVOTElLRUxZ
KCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRh
dGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCk7
CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0Rh
dGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKTsKICAgICBpZiAoIWdyZWdvcmlhbkRhdGVU
aW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnNlY29uZCgpKSk7
CkBAIC04ODAsNyArODgwLDggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jR2V0TWlsbGlTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIAogICAgIGRvdWJs
ZSBzZWNzID0gZmxvb3IobWlsbGkgLyBtc1BlclNlY29uZCk7CiAgICAgZG91YmxlIG1zID0gbWls
bGkgLSBzZWNzICogbXNQZXJTZWNvbmQ7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihtcykpOworICAgIC8vIFNpbmNlIHRpbWVDbGlwIG1ha2VzIGludGVybmFsTnVtYmVyIGlu
dGVnZXIgbWlsbGlzZWNvbmRzLCB0aGlzIHJlc3VsdCBpcyBhbHdheXMgaW50MzJfdC4KKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PGludDMyX3Q+KG1zKSkp
OwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENN
aWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCkBAIC04OTgsNyArODk5LDggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG8KIAogICAg
IGRvdWJsZSBzZWNzID0gZmxvb3IobWlsbGkgLyBtc1BlclNlY29uZCk7CiAgICAgZG91YmxlIG1z
ID0gbWlsbGkgLSBzZWNzICogbXNQZXJTZWNvbmQ7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcihtcykpOworICAgIC8vIFNpbmNlIHRpbWVDbGlwIG1ha2VzIGludGVybmFsTnVt
YmVyIGludGVnZXIgbWlsbGlzZWNvbmRzLCB0aGlzIHJlc3VsdCBpcyBhbHdheXMgaW50MzJfdC4K
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PGludDMyX3Q+
KG1zKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNH
ZXRUaW1lem9uZU9mZnNldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKQEAgLTkxMCwxMCArOTEyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
CiAgICAgaWYgKFVOTElLRUxZKCF0aGlzRGF0ZU9iaikpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogCi0gICAgY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIGdyZWdvcmlhbkRhdGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1l
KGdsb2JhbE9iamVjdCk7CisgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIGdyZWdvcmlhbkRh
dGVUaW1lID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICBpZiAoIWdy
ZWdvcmlhbkRhdGVUaW1lKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTmFOKCkp
OwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLWdyZWdvcmlhbkRhdGVUaW1l
LT51dGNPZmZzZXQoKSAvIG1pbnV0ZXNQZXJIb3VyKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcigtZ3JlZ29yaWFuRGF0ZVRpbWUtPnV0Y09mZnNldEluTWludXRlKCkpKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VGltZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKQEAgLTk1
MSwxMyArOTUzLDEyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzZXROZXdWYWx1ZUZyb21UaW1l
QXJncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiAgICAgZG91YmxlIG1zID0g
bWlsbGkgLSBzZWNzICogbXNQZXJTZWNvbmQ7CiAKICAgICBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogb3RoZXIgPSBpbnB1dFRpbWVUeXBlID09IFdURjo6VVRDVGltZQotICAgICAgICA/IHRoaXNE
YXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyhnbG9iYWxPYmplY3QpCi0gICAgICAgIDogdGhp
c0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgICAgID8gdGhp
c0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lVVRDKHZtKQorICAgICAgICA6IHRoaXNEYXRlT2Jq
LT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFvdGhlcikKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKIAotICAgIEdyZWdvcmlhbkRhdGVUaW1lIGdyZWdv
cmlhbkRhdGVUaW1lOwotICAgIGdyZWdvcmlhbkRhdGVUaW1lLmNvcHlGcm9tKCpvdGhlcik7Cisg
ICAgR3JlZ29yaWFuRGF0ZVRpbWUgZ3JlZ29yaWFuRGF0ZVRpbWUoKm90aGVyKTsKICAgICBib29s
IHN1Y2Nlc3MgPSBmaWxsU3RydWN0dXJlc1VzaW5nVGltZUFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIG51bUFyZ3NUb1VzZSwgJm1zLCAmZ3JlZ29yaWFuRGF0ZVRpbWUpOwogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIGlmICghc3VjY2Vz
cykgewpAQCAtOTk0LDExICs5OTUsMTEgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHNldE5ld1Zh
bHVlRnJvbURhdGVBcmdzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICBl
bHNlIHsgCiAgICAgICAgIG1zID0gbWlsbGkgLSBmbG9vcihtaWxsaSAvIG1zUGVyU2Vjb25kKSAq
IG1zUGVyU2Vjb25kOyAKICAgICAgICAgY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIG90aGVyID0g
aW5wdXRUaW1lVHlwZSA9PSBXVEY6OlVUQ1RpbWUKLSAgICAgICAgICAgID8gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lVVRDKGdsb2JhbE9iamVjdCkKLSAgICAgICAgICAgIDogdGhpc0Rh
dGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCk7CisgICAgICAgICAgICA/IHRo
aXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZVVUQyh2bSkKKyAgICAgICAgICAgIDogdGhpc0Rh
dGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKTsKICAgICAgICAgaWYgKCFvdGhlcikKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7Ci0gICAgICAgIGdyZWdvcmlh
bkRhdGVUaW1lLmNvcHlGcm9tKCpvdGhlcik7CisgICAgICAgIGdyZWdvcmlhbkRhdGVUaW1lID0g
Km90aGVyOwogICAgIH0KICAgICAKICAgICBib29sIHN1Y2Nlc3MgPSBmaWxsU3RydWN0dXJlc1Vz
aW5nRGF0ZUFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIG51bUFyZ3NUb1VzZSwgJm1zLCAm
Z3JlZ29yaWFuRGF0ZVRpbWUpOwpAQCAtMTEwOSw4ICsxMTEwLDggQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0WWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LAogICAgIGVsc2UgewogICAgICAgICBkb3VibGUgc2VjcyA9IGZsb29yKG1pbGxpIC8g
bXNQZXJTZWNvbmQpOwogICAgICAgICBtcyA9IG1pbGxpIC0gc2VjcyAqIG1zUGVyU2Vjb25kOwot
ICAgICAgICBpZiAoY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUqIG90aGVyID0gdGhpc0RhdGVPYmot
PmdyZWdvcmlhbkRhdGVUaW1lKGdsb2JhbE9iamVjdCkpCi0gICAgICAgICAgICBncmVnb3JpYW5E
YXRlVGltZS5jb3B5RnJvbSgqb3RoZXIpOworICAgICAgICBpZiAoY29uc3QgR3JlZ29yaWFuRGF0
ZVRpbWUqIG90aGVyID0gdGhpc0RhdGVPYmotPmdyZWdvcmlhbkRhdGVUaW1lKHZtKSkKKyAgICAg
ICAgICAgIGdyZWdvcmlhbkRhdGVUaW1lID0gKm90aGVyOwogICAgIH0KIAogICAgIGRvdWJsZSB5
ZWFyID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b0ludGVnZXJQcmVzZXJ2ZU5hTihnbG9iYWxP
YmplY3QpOwpAQCAtMTEzNiw3ICsxMTM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jR2V0WWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAg
IGlmIChVTkxJS0VMWSghdGhpc0RhdGVPYmopKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKIAotICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1l
KiBncmVnb3JpYW5EYXRlVGltZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZShnbG9i
YWxPYmplY3QpOworICAgIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBncmVnb3JpYW5EYXRlVGlt
ZSA9IHRoaXNEYXRlT2JqLT5ncmVnb3JpYW5EYXRlVGltZSh2bSk7CiAgICAgaWYgKCFncmVnb3Jp
YW5EYXRlVGltZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05hTigpKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAKaW5kZXggYTEyYTI0
MDU1YzcyOTBhM2ExYzk1NmY2YWI0ZTc2MzdmODdmYmIzNC4uYTQxYjU3YjJjYmNiYjFjMmQ1ZDVm
NmNhOTliNmFkNjBiNGVjMmE5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50cmluc2ljLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRyaW5zaWMuY3BwCkBAIC04Myw2ICs4Myw0NCBAQCBjb25zdCBjaGFyKiBpbnRyaW5zaWNOYW1l
KEludHJpbnNpYyBpbnRyaW5zaWMpCiAgICAgICAgIHJldHVybiAiQ2hhckNvZGVBdEludHJpbnNp
YyI7CiAgICAgY2FzZSBDaGFyQXRJbnRyaW5zaWM6CiAgICAgICAgIHJldHVybiAiQ2hhckF0SW50
cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljOgorICAgICAg
ICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRUaW1lSW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQ
cm90b3R5cGVHZXRGdWxsWWVhckludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90
eXBlR2V0RnVsbFllYXJJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0Z1
bGxZZWFySW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRVVENGdWxs
WWVhckludHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0TW9udGhJbnRyaW5zaWM6
CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldE1vbnRoSW50cmluc2ljIjsKKyAgICBj
YXNlIERhdGVQcm90b3R5cGVHZXRVVENNb250aEludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJE
YXRlUHJvdG90eXBlR2V0VVRDTW9udGhJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlw
ZUdldERhdGVJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldERhdGVJ
bnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ0RhdGVJbnRyaW5zaWM6Cisg
ICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVUQ0RhdGVJbnRyaW5zaWMiOworICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldERheUludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJv
dG90eXBlR2V0RGF5SW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENEYXlJ
bnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVUQ0RheUludHJpbnNp
YyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0SG91cnNJbnRyaW5zaWM6CisgICAgICAgIHJl
dHVybiAiRGF0ZVByb3RvdHlwZUdldEhvdXJzSW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90
b3R5cGVHZXRVVENIb3Vyc0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBl
R2V0VVRDSG91cnNJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1pbnV0ZXNJ
bnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldE1pbnV0ZXNJbnRyaW5z
aWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldFVUQ01pbnV0ZXNJbnRyaW5zaWM6CisgICAg
ICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVUQ01pbnV0ZXNJbnRyaW5zaWMiOworICAgIGNh
c2UgRGF0ZVByb3RvdHlwZUdldFNlY29uZHNJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0
ZVByb3RvdHlwZUdldFNlY29uZHNJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdl
dFVUQ1NlY29uZHNJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVU
Q1NlY29uZHNJbnRyaW5zaWMiOworICAgIGNhc2UgRGF0ZVByb3RvdHlwZUdldE1pbGxpc2Vjb25k
c0ludHJpbnNpYzoKKyAgICAgICAgcmV0dXJuICJEYXRlUHJvdG90eXBlR2V0TWlsbGlzZWNvbmRz
SW50cmluc2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRVVENNaWxsaXNlY29uZHNJbnRy
aW5zaWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFVUQ01pbGxpc2Vjb25kc0lu
dHJpbnNpYyI7CisgICAgY2FzZSBEYXRlUHJvdG90eXBlR2V0VGltZXpvbmVPZmZzZXRJbnRyaW5z
aWM6CisgICAgICAgIHJldHVybiAiRGF0ZVByb3RvdHlwZUdldFRpbWV6b25lT2Zmc2V0SW50cmlu
c2ljIjsKKyAgICBjYXNlIERhdGVQcm90b3R5cGVHZXRZZWFySW50cmluc2ljOgorICAgICAgICBy
ZXR1cm4gIkRhdGVQcm90b3R5cGVHZXRZZWFySW50cmluc2ljIjsKICAgICBjYXNlIEZyb21DaGFy
Q29kZUludHJpbnNpYzoKICAgICAgICAgcmV0dXJuICJGcm9tQ2hhckNvZGVJbnRyaW5zaWMiOwog
ICAgIGNhc2UgUG93SW50cmluc2ljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50cmluc2ljLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRy
aW5zaWMuaAppbmRleCBlNTFiODM5ZDk4NjY3Njg5ODNlNzUxOGUyNDc1ZWEzNThkOWZkODUxLi5m
ZTJlOTEwZjkxZWRlYWVkMjYwOWY0MjQ3NGUyODA0YmI2ZmZjY2U4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaApAQCAtNTQsNiArNTQsMjUgQEAgZW51bSBJbnRy
aW5zaWMgOiB1aW50OF90IHsKICAgICBBcnJheUluZGV4T2ZJbnRyaW5zaWMsCiAgICAgQ2hhckNv
ZGVBdEludHJpbnNpYywKICAgICBDaGFyQXRJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdl
dFRpbWVJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldEZ1bGxZZWFySW50cmluc2ljLAor
ICAgIERhdGVQcm90b3R5cGVHZXRVVENGdWxsWWVhckludHJpbnNpYywKKyAgICBEYXRlUHJvdG90
eXBlR2V0TW9udGhJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ01vbnRoSW50cmlu
c2ljLAorICAgIERhdGVQcm90b3R5cGVHZXREYXRlSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5
cGVHZXRVVENEYXRlSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXREYXlJbnRyaW5zaWMs
CisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ0RheUludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBl
R2V0SG91cnNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFVUQ0hvdXJzSW50cmluc2lj
LAorICAgIERhdGVQcm90b3R5cGVHZXRNaW51dGVzSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5
cGVHZXRVVENNaW51dGVzSW50cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRTZWNvbmRzSW50
cmluc2ljLAorICAgIERhdGVQcm90b3R5cGVHZXRVVENTZWNvbmRzSW50cmluc2ljLAorICAgIERh
dGVQcm90b3R5cGVHZXRNaWxsaXNlY29uZHNJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdl
dFVUQ01pbGxpc2Vjb25kc0ludHJpbnNpYywKKyAgICBEYXRlUHJvdG90eXBlR2V0VGltZXpvbmVP
ZmZzZXRJbnRyaW5zaWMsCisgICAgRGF0ZVByb3RvdHlwZUdldFllYXJJbnRyaW5zaWMsCiAgICAg
RnJvbUNoYXJDb2RlSW50cmluc2ljLAogICAgIFBvd0ludHJpbnNpYywKICAgICBGbG9vckludHJp
bnNpYywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1h
dGguY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAKaW5k
ZXggNzk5NmE4ZjhhZTcwZWYwYzU0ZGZiYjI4ZDMwNmMxOWZiYzVhYWYyMS4uNmM4YjM3OTc2N2Y0
NjMxMGNmMzUzZGE0OGU0MWUzYTZiNWUyMmEzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAKQEAgLTIxOSw3ICsyMTksNyBAQCB2b2lkIG1zVG9HcmVn
b3JpYW5EYXRlVGltZShWTSYgdm0sIGRvdWJsZSBtcywgV1RGOjpUaW1lVHlwZSBvdXRwdXRUaW1l
VHlwZSwgR3JlZwogICAgIHRtLnNldE1vbnRoKG1vbnRoRnJvbURheUluWWVhcih0bS55ZWFyRGF5
KCksIGlzTGVhcFllYXIoeWVhcikpKTsKICAgICB0bS5zZXRZZWFyKHllYXIpOwogICAgIHRtLnNl
dElzRFNUKGxvY2FsVGltZS5pc0RTVCk7Ci0gICAgdG0uc2V0VXRjT2Zmc2V0KGxvY2FsVGltZS5v
ZmZzZXQgLyBXVEY6Om1zUGVyU2Vjb25kKTsKKyAgICB0bS5zZXRVVENPZmZzZXRJbk1pbnV0ZShs
b2NhbFRpbWUub2Zmc2V0IC8gV1RGOjptc1Blck1pbnV0ZSk7CiB9CiAKIGRvdWJsZSBwYXJzZURh
dGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKFZNJiB2bSwgY29uc3QgY2hhciogZGF0ZVN0
cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuY3BwCmluZGV4IGQxYzY3
M2U2NWZhOGYyYTdiOGViY2Y0ZTVmMjE0ZmY5OGMyOGI3ZTQuLjE2ZGM5YjkxZjRmYzQzMTI4NjQz
NjQ2ZWM2ZDAzOWFlY2FkZjdjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlLmNwcApAQCAtOTYsNiArOTYsNyBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0m
IG91dCwgSlNDOjpKU1R5cGUgdHlwZSkKICAgICBDQVNFKFdpdGhTY29wZVR5cGUpCiAgICAgQ0FT
RShNb2R1bGVOYW1lc3BhY2VPYmplY3RUeXBlKQogICAgIENBU0UoUmVnRXhwT2JqZWN0VHlwZSkK
KyAgICBDQVNFKEpTRGF0ZVR5cGUpCiAgICAgQ0FTRShQcm94eU9iamVjdFR5cGUpCiAgICAgQ0FT
RShKU0dlbmVyYXRvclR5cGUpCiAgICAgQ0FTRShKU0FzeW5jR2VuZXJhdG9yVHlwZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggNmU5OTY4NzRlZjJlM2I3YWM0MmI1
MGExODRlZjQ4YjYyYWVkMGI2Yy4uODBiZDM0Y2I2MjIxYWFmYmU5NmFmMTA0NjUzMmE2N2Q3NzMy
ZWM3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKQEAgLTEwNyw2ICsx
MDcsNyBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4X3QgewogCiAgICAgTW9kdWxlTmFtZXNwYWNlT2Jq
ZWN0VHlwZSwKICAgICBSZWdFeHBPYmplY3RUeXBlLAorICAgIEpTRGF0ZVR5cGUsCiAgICAgUHJv
eHlPYmplY3RUeXBlLAogICAgIEpTR2VuZXJhdG9yVHlwZSwKICAgICBKU0FzeW5jR2VuZXJhdG9y
VHlwZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmggYi9Tb3VyY2UvV1RG
L3d0Zi9EYXRlTWF0aC5oCmluZGV4IGY5ZTI4MTFmYmFjNGU3Nzk4NWY3NjY1ODAwNTE4YTU1NjQw
NDQ4NTMuLjdlMmQxZGU3Mzk2YTc4NDk2MjAxODQxMjI1YTM0NjBlMjgxMjdjNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKKysrIGIvU291cmNlL1dURi93dGYvRGF0ZU1h
dGguaApAQCAtMTA2LDE2ICsxMDYsMTYgQEAgY29uc3QgY2hhciogY29uc3Qgd2Vla2RheU5hbWVb
N10gPSB7ICJNb24iLCAiVHVlIiwgIldlZCIsICJUaHUiLCAiRnJpIiwgIlNhdCIsICIKIGNvbnN0
IGNoYXIqIGNvbnN0IG1vbnRoTmFtZVsxMl0gPSB7ICJKYW4iLCAiRmViIiwgIk1hciIsICJBcHIi
LCAiTWF5IiwgIkp1biIsICJKdWwiLCAiQXVnIiwgIlNlcCIsICJPY3QiLCAiTm92IiwgIkRlYyIg
fTsKIGNvbnN0IGNoYXIqIGNvbnN0IG1vbnRoRnVsbE5hbWVbMTJdID0geyAiSmFudWFyeSIsICJG
ZWJydWFyeSIsICJNYXJjaCIsICJBcHJpbCIsICJNYXkiLCAiSnVuZSIsICJKdWx5IiwgIkF1Z3Vz
dCIsICJTZXB0ZW1iZXIiLCAiT2N0b2JlciIsICJOb3ZlbWJlciIsICJEZWNlbWJlciIgfTsKIAot
Y29uc3QgZG91YmxlIGhvdXJzUGVyRGF5ID0gMjQuMDsKLWNvbnN0IGRvdWJsZSBtaW51dGVzUGVy
SG91ciA9IDYwLjA7Ci1jb25zdCBkb3VibGUgc2Vjb25kc1Blck1pbnV0ZSA9IDYwLjA7Ci1jb25z
dCBkb3VibGUgbXNQZXJTZWNvbmQgPSAxMDAwLjA7Ci1jb25zdCBkb3VibGUgbXNQZXJNb250aCA9
IDI1OTIwMDAwMDAuMDsKLWNvbnN0IGRvdWJsZSBzZWNvbmRzUGVySG91ciA9IHNlY29uZHNQZXJN
aW51dGUgKiBtaW51dGVzUGVySG91cjsKLWNvbnN0IGRvdWJsZSBzZWNvbmRzUGVyRGF5ID0gc2Vj
b25kc1BlckhvdXIgKiBob3Vyc1BlckRheTsKLWNvbnN0IGRvdWJsZSBtc1Blck1pbnV0ZSA9IG1z
UGVyU2Vjb25kICogc2Vjb25kc1Blck1pbnV0ZTsKLWNvbnN0IGRvdWJsZSBtc1BlckhvdXIgPSBt
c1BlclNlY29uZCAqIHNlY29uZHNQZXJIb3VyOwotY29uc3QgZG91YmxlIG1zUGVyRGF5ID0gbXNQ
ZXJTZWNvbmQgKiBzZWNvbmRzUGVyRGF5Oworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgaG91cnNQ
ZXJEYXkgPSAyNC4wOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbWludXRlc1BlckhvdXIgPSA2
MC4wOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgc2Vjb25kc1Blck1pbnV0ZSA9IDYwLjA7Citz
dGF0aWMgY29uc3RleHByIGRvdWJsZSBtc1BlclNlY29uZCA9IDEwMDAuMDsKK3N0YXRpYyBjb25z
dGV4cHIgZG91YmxlIG1zUGVyTW9udGggPSAyNTkyMDAwMDAwLjA7CitzdGF0aWMgY29uc3RleHBy
IGRvdWJsZSBzZWNvbmRzUGVySG91ciA9IHNlY29uZHNQZXJNaW51dGUgKiBtaW51dGVzUGVySG91
cjsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIHNlY29uZHNQZXJEYXkgPSBzZWNvbmRzUGVySG91
ciAqIGhvdXJzUGVyRGF5Oworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbXNQZXJNaW51dGUgPSBt
c1BlclNlY29uZCAqIHNlY29uZHNQZXJNaW51dGU7CitzdGF0aWMgY29uc3RleHByIGRvdWJsZSBt
c1BlckhvdXIgPSBtc1BlclNlY29uZCAqIHNlY29uZHNQZXJIb3VyOworc3RhdGljIGNvbnN0ZXhw
ciBkb3VibGUgbXNQZXJEYXkgPSBtc1BlclNlY29uZCAqIHNlY29uZHNQZXJEYXk7CiAKIFdURl9F
WFBPUlRfUFJJVkFURSBib29sIGlzTGVhcFllYXIoaW50IHllYXIpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9HcmVnb3JpYW5EYXRlVGltZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9HcmVn
b3JpYW5EYXRlVGltZS5jcHAKaW5kZXggYTNjNDRiOTIxYTcwODMyYzI0NTc4ZWY0YjkwNGRhMjEy
MjY4MmY2NC4uMzIxNDg4N2VmM2ZmNGM5MjJjYWI1MTU5MDE2MjM3NTI2MjMwOTQ2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0dyZWdvcmlhbkRhdGVUaW1lLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIEdyZWdv
cmlhbkRhdGVUaW1lOjpzZXRUb0N1cnJlbnRMb2NhbFRpbWUoKQogICAgIG1faG91ciA9IHN5c3Rl
bVRpbWUud0hvdXI7CiAgICAgbV9taW51dGUgPSBzeXN0ZW1UaW1lLndNaW51dGU7CiAgICAgbV9z
ZWNvbmQgPSBzeXN0ZW1UaW1lLndTZWNvbmQ7Ci0gICAgbV91dGNPZmZzZXQgPSAtYmlhcyAqIHNl
Y29uZHNQZXJNaW51dGU7CisgICAgbV91dGNPZmZzZXRJbk1pbnV0ZSA9IC1iaWFzOwogICAgIG1f
aXNEU1QgPSB0aW1lWm9uZUlkID09IFRJTUVfWk9ORV9JRF9EQVlMSUdIVCA/IDEgOiAwOwogI2Vs
c2UKICAgICB0bSBsb2NhbFRNOwpAQCAtODMsOSArODMsOSBAQCB2b2lkIEdyZWdvcmlhbkRhdGVU
aW1lOjpzZXRUb0N1cnJlbnRMb2NhbFRpbWUoKQogICAgIG1fc2Vjb25kID0gbG9jYWxUTS50bV9z
ZWM7CiAgICAgbV9pc0RTVCA9IGxvY2FsVE0udG1faXNkc3Q7CiAjaWYgSEFWRShUTV9HTVRPRkYp
Ci0gICAgbV91dGNPZmZzZXQgPSBsb2NhbFRNLnRtX2dtdG9mZjsKKyAgICBtX3V0Y09mZnNldElu
TWludXRlID0gbG9jYWxUTS50bV9nbXRvZmYgLyBzZWNvbmRzUGVyTWludXRlOwogI2Vsc2UKLSAg
ICBtX3V0Y09mZnNldCA9IGNhbGN1bGF0ZUxvY2FsVGltZU9mZnNldChsb2NhbFRpbWUgKiBtc1Bl
clNlY29uZCkub2Zmc2V0IC8gbXNQZXJTZWNvbmQ7CisgICAgbV91dGNPZmZzZXRJbk1pbnV0ZSA9
IGNhbGN1bGF0ZUxvY2FsVGltZU9mZnNldChsb2NhbFRpbWUgKiBtc1BlclNlY29uZCkub2Zmc2V0
IC8gbXNQZXJNaW51dGU7CiAjZW5kaWYKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuaCBiL1NvdXJjZS9XVEYvd3RmL0dyZWdvcmlhbkRhdGVU
aW1lLmgKaW5kZXggMjVkZDE1Y2FlMDRiZjgyN2ZlMWZmY2U5NWNlNTcxZjg3MzY1NzU3Zi4uMDJj
MmVjN2NmMzIxYWE5ZDRiN2ZmMDlhYWI5MGE1N2FmNWFmMDYxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvR3JlZ29yaWFuRGF0ZVRpbWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9HcmVnb3Jp
YW5EYXRlVGltZS5oCkBAIC0yNiwyNyArMjYsMTYgQEAKIAogI2luY2x1ZGUgPHN0cmluZy5oPgog
I2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVz
cGFjZSBXVEYgewogCiBjbGFzcyBHcmVnb3JpYW5EYXRlVGltZSBmaW5hbCB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR3JlZ29yaWFuRGF0
ZVRpbWUpOwogcHVibGljOgotICAgIEdyZWdvcmlhbkRhdGVUaW1lKCkKLSAgICAgICAgOiBtX3ll
YXIoMCkKLSAgICAgICAgLCBtX21vbnRoKDApCi0gICAgICAgICwgbV95ZWFyRGF5KDApCi0gICAg
ICAgICwgbV9tb250aERheSgwKQotICAgICAgICAsIG1fd2Vla0RheSgwKQotICAgICAgICAsIG1f
aG91cigwKQotICAgICAgICAsIG1fbWludXRlKDApCi0gICAgICAgICwgbV9zZWNvbmQoMCkKLSAg
ICAgICAgLCBtX3V0Y09mZnNldCgwKQotICAgICAgICAsIG1faXNEU1QoMCkKLSAgICB7Ci0gICAg
fQorICAgIEdyZWdvcmlhbkRhdGVUaW1lKCkgPSBkZWZhdWx0OwogCiAgICAgaW5saW5lIGludCB5
ZWFyKCkgY29uc3QgeyByZXR1cm4gbV95ZWFyOyB9CiAgICAgaW5saW5lIGludCBtb250aCgpIGNv
bnN0IHsgcmV0dXJuIG1fbW9udGg7IH0KQEAgLTU2LDcgKzQ1LDcgQEAgY2xhc3MgR3JlZ29yaWFu
RGF0ZVRpbWUgZmluYWwgewogICAgIGlubGluZSBpbnQgaG91cigpIGNvbnN0IHsgcmV0dXJuIG1f
aG91cjsgfQogICAgIGlubGluZSBpbnQgbWludXRlKCkgY29uc3QgeyByZXR1cm4gbV9taW51dGU7
IH0KICAgICBpbmxpbmUgaW50IHNlY29uZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vjb25kOyB9Ci0g
ICAgaW5saW5lIGludCB1dGNPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3V0Y09mZnNldDsgfQor
ICAgIGlubGluZSBpbnQgdXRjT2Zmc2V0SW5NaW51dGUoKSBjb25zdCB7IHJldHVybiBtX3V0Y09m
ZnNldEluTWludXRlOyB9CiAgICAgaW5saW5lIGludCBpc0RTVCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNEU1Q7IH0KIAogICAgIGlubGluZSB2b2lkIHNldFllYXIoaW50IHllYXIpIHsgbV95ZWFyID0g
eWVhcjsgfQpAQCAtNjcsOSArNTYsMjAgQEAgY2xhc3MgR3JlZ29yaWFuRGF0ZVRpbWUgZmluYWwg
ewogICAgIGlubGluZSB2b2lkIHNldEhvdXIoaW50IGhvdXIpIHsgbV9ob3VyID0gaG91cjsgfQog
ICAgIGlubGluZSB2b2lkIHNldE1pbnV0ZShpbnQgbWludXRlKSB7IG1fbWludXRlID0gbWludXRl
OyB9CiAgICAgaW5saW5lIHZvaWQgc2V0U2Vjb25kKGludCBzZWNvbmQpIHsgbV9zZWNvbmQgPSBz
ZWNvbmQ7IH0KLSAgICBpbmxpbmUgdm9pZCBzZXRVdGNPZmZzZXQoaW50IHV0Y09mZnNldCkgeyBt
X3V0Y09mZnNldCA9IHV0Y09mZnNldDsgfQorICAgIGlubGluZSB2b2lkIHNldFVUQ09mZnNldElu
TWludXRlKGludCB1dGNPZmZzZXRJbk1pbnV0ZSkgeyBtX3V0Y09mZnNldEluTWludXRlID0gdXRj
T2Zmc2V0SW5NaW51dGU7IH0KICAgICBpbmxpbmUgdm9pZCBzZXRJc0RTVChpbnQgaXNEU1QpIHsg
bV9pc0RTVCA9IGlzRFNUOyB9CiAKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mWWVhcigp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV95ZWFyKTsgfQor
ICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZNb250aCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV9tb250aCk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mWWVhckRheSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRl
VGltZSwgbV95ZWFyRGF5KTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZNb250aERh
eSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV9tb250aERh
eSk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV2Vla0RheSgpIHsgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV93ZWVrRGF5KTsgfQorICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZIb3VyKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEdyZWdv
cmlhbkRhdGVUaW1lLCBtX2hvdXIpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk1p
bnV0ZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV9taW51
dGUpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlNlY29uZCgpIHsgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihHcmVnb3JpYW5EYXRlVGltZSwgbV9zZWNvbmQpOyB9CisgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZlVUQ09mZnNldEluTWludXRlKCkgeyByZXR1cm4gT0JKRUNUX09G
RlNFVE9GKEdyZWdvcmlhbkRhdGVUaW1lLCBtX3V0Y09mZnNldEluTWludXRlKTsgfQorICAgIHN0
YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZJc0RTVCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihH
cmVnb3JpYW5EYXRlVGltZSwgbV9pc0RTVCk7IH0KKwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIHNldFRvQ3VycmVudExvY2FsVGltZSgpOwogCiAgICAgb3BlcmF0b3IgdG0oKSBjb25zdApA
QCAtODgsMzcgKzg4LDIzIEBAIGNsYXNzIEdyZWdvcmlhbkRhdGVUaW1lIGZpbmFsIHsKICAgICAg
ICAgcmV0LnRtX2lzZHN0ID0gbV9pc0RTVDsKIAogI2lmIEhBVkUoVE1fR01UT0ZGKQotICAgICAg
ICByZXQudG1fZ210b2ZmID0gc3RhdGljX2Nhc3Q8bG9uZz4obV91dGNPZmZzZXQpOworICAgICAg
ICByZXQudG1fZ210b2ZmID0gc3RhdGljX2Nhc3Q8bG9uZz4obV91dGNPZmZzZXRJbk1pbnV0ZSkg
KiBzdGF0aWNfY2FzdDxsb25nPihzZWNvbmRzUGVyTWludXRlKTsKICNlbmRpZgogCiAgICAgICAg
IHJldHVybiByZXQ7CiAgICAgfQogCi0gICAgdm9pZCBjb3B5RnJvbShjb25zdCBHcmVnb3JpYW5E
YXRlVGltZSYgb3RoZXIpCi0gICAgewotICAgICAgICBtX3llYXIgPSBvdGhlci5tX3llYXI7Ci0g
ICAgICAgIG1fbW9udGggPSBvdGhlci5tX21vbnRoOwotICAgICAgICBtX3llYXJEYXkgPSBvdGhl
ci5tX3llYXJEYXk7Ci0gICAgICAgIG1fbW9udGhEYXkgPSBvdGhlci5tX21vbnRoRGF5OwotICAg
ICAgICBtX3dlZWtEYXkgPSBvdGhlci5tX3dlZWtEYXk7Ci0gICAgICAgIG1faG91ciA9IG90aGVy
Lm1faG91cjsKLSAgICAgICAgbV9taW51dGUgPSBvdGhlci5tX21pbnV0ZTsKLSAgICAgICAgbV9z
ZWNvbmQgPSBvdGhlci5tX3NlY29uZDsKLSAgICAgICAgbV91dGNPZmZzZXQgPSBvdGhlci5tX3V0
Y09mZnNldDsKLSAgICAgICAgbV9pc0RTVCA9IG90aGVyLm1faXNEU1Q7Ci0gICAgfQotCiBwcml2
YXRlOgotICAgIGludCBtX3llYXI7Ci0gICAgaW50IG1fbW9udGg7Ci0gICAgaW50IG1feWVhckRh
eTsKLSAgICBpbnQgbV9tb250aERheTsKLSAgICBpbnQgbV93ZWVrRGF5OwotICAgIGludCBtX2hv
dXI7Ci0gICAgaW50IG1fbWludXRlOwotICAgIGludCBtX3NlY29uZDsKLSAgICBpbnQgbV91dGNP
ZmZzZXQ7Ci0gICAgaW50IG1faXNEU1Q7CisgICAgaW50IG1feWVhciB7IDAgfTsKKyAgICBpbnQg
bV9tb250aCB7IDAgfTsKKyAgICBpbnQgbV95ZWFyRGF5IHsgMCB9OworICAgIGludCBtX21vbnRo
RGF5IHsgMCB9OworICAgIGludCBtX3dlZWtEYXkgeyAwIH07CisgICAgaW50IG1faG91ciB7IDAg
fTsKKyAgICBpbnQgbV9taW51dGUgeyAwIH07CisgICAgaW50IG1fc2Vjb25kIHsgMCB9OworICAg
IGludCBtX3V0Y09mZnNldEluTWludXRlIHsgMCB9OworICAgIGludCBtX2lzRFNUIHsgMCB9Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcAppbmRleCBjOTk3YjMxODY3ZDM4MGQyODkw
Y2VlMmJmNTUxZGI5ZDQ3MTA4ZDI1Li4xMDZhN2Y4ZjliNDFlMDQzOGEwMzY3NDViYTljZDdhZmRh
ZWU4ZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9N
SFRNTEFyY2hpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1s
L01IVE1MQXJjaGl2ZS5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCBSZWY8U2hhcmVkQnVmZmVyPiBN
SFRNTEFyY2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRhKFBhZ2UqIHBhZ2UpCiAKICAgICBHcmVnb3Jp
YW5EYXRlVGltZSBub3c7CiAgICAgbm93LnNldFRvQ3VycmVudExvY2FsVGltZSgpOwotICAgIFN0
cmluZyBkYXRlU3RyaW5nID0gbWFrZVJGQzI4MjJEYXRlU3RyaW5nKG5vdy53ZWVrRGF5KCksIG5v
dy5tb250aERheSgpLCBub3cubW9udGgoKSwgbm93LnllYXIoKSwgbm93LmhvdXIoKSwgbm93Lm1p
bnV0ZSgpLCBub3cuc2Vjb25kKCksIG5vdy51dGNPZmZzZXQoKSAvIDYwKTsKKyAgICBTdHJpbmcg
ZGF0ZVN0cmluZyA9IG1ha2VSRkMyODIyRGF0ZVN0cmluZyhub3cud2Vla0RheSgpLCBub3cubW9u
dGhEYXkoKSwgbm93Lm1vbnRoKCksIG5vdy55ZWFyKCksIG5vdy5ob3VyKCksIG5vdy5taW51dGUo
KSwgbm93LnNlY29uZCgpLCBub3cudXRjT2Zmc2V0SW5NaW51dGUoKSk7CiAKICAgICBTdHJpbmdC
dWlsZGVyIHN0cmluZ0J1aWxkZXI7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIkZyb206IDxT
YXZlZCBieSBXZWJLaXQ+XHJcbiIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9K
U1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwZjg3YzliZTViYzQ1YzZhMWU0ZTBkMDQyZjFhMGQ3MDRk
YTE2NjhkLi43M2QzMDE4NDY3MGI4YzgxNjY0ZjZjMDgyMjEzNzAyYjEwZWE3MDY1IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDc2IEBACisyMDE5LTEwLTI5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0pTQ10gRGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGhhdmUgaW50cmluc2ljCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxODcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9kYXRl
LWNzZS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKHRlc3QyKToKKyAgICAgICAgKHRlc3QzKToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1n
ZXQtZGF0ZS1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LWRheS1qaXQuanM6IEFkZGVkLgorICAgICAg
ICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0
LWZ1bGwteWVhci1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LWhvdXJzLWppdC5qczogQWRkZWQuCisg
ICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0
ZS1nZXQtbWlsbGlzZWNvbmRzLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6Cisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtbWludXRlcy1qaXQuanM6
IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICog
c3RyZXNzL2RhdGUtZ2V0LW1vbnRoLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtc2Vjb25kcy1qaXQu
anM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogc3RyZXNzL2RhdGUtZ2V0LXRpbWUtaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJl
KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC10aW1lem9uZS1v
ZmZzZXQtaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC11dGMtZGF0ZS1qaXQuanM6IEFkZGVkLgorICAg
ICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogc3RyZXNzL2RhdGUt
Z2V0LXV0Yy1kYXktaml0LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHN0cmVzcy9kYXRlLWdldC11dGMtZnVsbC15ZWFyLWppdC5qczog
QWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBz
dHJlc3MvZGF0ZS1nZXQtdXRjLWhvdXJzLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRC
ZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdXRjLW1pbGxp
c2Vjb25kcy1qaXQuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogc3RyZXNzL2RhdGUtZ2V0LXV0Yy1taW51dGVzLWppdC5qczogQWRkZWQu
CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3Mv
ZGF0ZS1nZXQtdXRjLW1vbnRoLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6Cisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS1nZXQtdXRjLXNlY29uZHMtaml0
LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAg
ICAqIHN0cmVzcy9kYXRlLWdldC15ZWFyLWppdC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRC
ZSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBzdHJlc3MvZGF0ZS12YWx1ZS1vZi1qaXQu
anM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVzdCk6CisKIDIwMTkt
MTAtMjkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlND
XSBBZGQgZmFzdCBwYXRoIGZvciBTdHJpbmcjbG9jYWxlQ29tcGFyZQpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvZGF0ZS1jc2UuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWNzZS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xYTEyNTIyYmQ1YmI3MDAxY2RmMWM0MWNmMDI2NmUwMTY3ZjkwYzMzCi0tLSAvZGV2
L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1jc2UuanMKQEAgLTAsMCArMSwzNyBAQAor
ZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVh
bCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkKK3sKKyAgICByZXR1cm4gZGF0ZS5nZXRUaW1l
KCkgKyBkYXRlLmdldFRpbWUoKTsKK30KK25vSW5saW5lKHRlc3QpOworCitmdW5jdGlvbiB0ZXN0
MigpCit7CisgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSgpOworICAgIGRhdGUuc2V0VGltZSgyMCk7
CisgICAgdmFyIGZpcnN0ID0gZGF0ZS5nZXRUaW1lKCk7CisgICAgZGF0ZS5zZXRUaW1lKDApOwor
ICAgIHZhciBzZWNvbmQgPSBkYXRlLmdldFRpbWUoKTsKKyAgICByZXR1cm4gZmlyc3QgKyBzZWNv
bmQ7Cit9Citub0lubGluZSh0ZXN0Mik7CisKK2Z1bmN0aW9uIHRlc3QzKGRhdGUpCit7CisgICAg
cmV0dXJuIGRhdGUuZ2V0VGltZSgpICsgZGF0ZS5nZXRGdWxsWWVhcigpOworfQorbm9JbmxpbmUo
dGVzdDMpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgcmVzdWx0ID0gZGF0ZS5nZXRU
aW1lKCkgKyBkYXRlLmdldFRpbWUoKTsKK3ZhciByZXN1bHQyID0gKG5ldyBEYXRlKDIwKSkuZ2V0
VGltZSgpICsgKG5ldyBEYXRlKDApKS5nZXRUaW1lKCk7Cit2YXIgcmVzdWx0MyA9IGRhdGUuZ2V0
VGltZSgpICsgZGF0ZS5nZXRGdWxsWWVhcigpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsr
aSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIHJlc3VsdCk7CisgICAgc2hvdWxkQmUodGVz
dDIoZGF0ZSksIHJlc3VsdDIpOworICAgIHNob3VsZEJlKHRlc3QzKGRhdGUpLCByZXN1bHQzKTsK
K30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LWRhdGUtaml0LmpzIGIvSlNU
ZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF0ZS1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQzZTdiZWUyMTZi
MjlmZGE2Yjk4ODAyOTFiY2E0ZmJjNmEyNjM0MgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
c3RyZXNzL2RhdGUtZ2V0LWRhdGUtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitm
dW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXREYXRlKCk7Cit9Citub0lu
bGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcg
RGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXREYXRlKCk7Citmb3IgKHZhciBpID0g
MDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOwor
ICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldERhdGUo
KSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtZGF5LWppdC5qcyBiL0pTVGVzdHMvc3RyZXNz
L2RhdGUtZ2V0LWRheS1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI1NzczMTQ4MmMxMDU3NWFhODdhOWJl
OGZiNmU3NmU0MzA2YzE3MQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUt
Z2V0LWRheS1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFs
LCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3Qo
ZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldERheSgpOworfQorbm9JbmxpbmUodGVzdCk7CisK
K3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3Zh
ciBleHBlY3RlZCA9IGRhdGUuZ2V0RGF5KCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytp
KSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3
IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldERheSgpKTsKKyAgICBzaG91bGRC
ZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9kYXRlLWdldC1mdWxsLXllYXItaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQt
ZnVsbC15ZWFyLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzM4YmIxZjgxZDAzMDZjOWQwNzcyM2FiNTIx
YWYwYWRmZmIyZmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQt
ZnVsbC15ZWFyLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1
YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVz
dChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTsKK30KK25vSW5saW5lKHRl
c3QpOworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5h
Tik7Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLmdldEZ1bGxZZWFyKCk7Citmb3IgKHZhciBpID0gMDsg
aSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAg
IHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldEZ1bGxZZWFy
KCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LWhvdXJzLWppdC5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2RhdGUtZ2V0LWhvdXJzLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjI4NzA0Y2ZlNmRiYjUyMDdj
ZjlhMjZlYTBhMGFjYzQ5MWRlNzNkCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
ZGF0ZS1nZXQtaG91cnMtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlv
biB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRIb3VycygpOworfQorbm9JbmxpbmUo
dGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUo
TmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0SG91cnMoKTsKK2ZvciAodmFyIGkgPSAwOyBp
IDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAg
dmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0SG91cnMoKSk7
CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtbWlsbGlzZWNvbmRzLWppdC5qcyBiL0pTVGVzdHMv
c3RyZXNzL2RhdGUtZ2V0LW1pbGxpc2Vjb25kcy1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQ5MDljZjIz
MDc3ODhkMmYzZTQxYjdjOGRkN2ZlOGFkYWY3ODQ5ZQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2RhdGUtZ2V0LW1pbGxpc2Vjb25kcy1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAor
ZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09
IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVh
bCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLmdldE1pbGxp
c2Vjb25kcygpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsK
K3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0TWls
bGlzZWNvbmRzKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxk
QmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBz
aG91bGRCZSh0ZXN0KGQpLCBkLmdldE1pbGxpc2Vjb25kcygpKTsKKyAgICBzaG91bGRCZShpc05h
Tih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9k
YXRlLWdldC1taW51dGVzLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LW1pbnV0ZXMt
aml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNmNDc3NGExZDhlYWU1MmIwNmZjZDg4NmZiZTE0NjliYjM4MDQ2
MDcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1taW51dGVzLWpp
dC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVk
KSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7Cisg
ICAgcmV0dXJuIGRhdGUuZ2V0TWludXRlcygpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBk
YXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBl
Y3RlZCA9IGRhdGUuZ2V0TWludXRlcygpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkg
eworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBE
YXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRNaW51dGVzKCkpOworICAgIHNob3Vs
ZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL2RhdGUtZ2V0LW1vbnRoLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LW1v
bnRoLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDVkYzFhYjZlZTMyN2M2N2I3YTFmN2QxNzg0YmFmZjg4
NTZlZTdjCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtbW9udGgt
aml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0
ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsK
KyAgICByZXR1cm4gZGF0ZS5nZXRNb250aCgpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBk
YXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBl
Y3RlZCA9IGRhdGUuZ2V0TW9udGgoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsK
KyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0
ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0TW9udGgoKSk7CisgICAgc2hvdWxkQmUo
aXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvZGF0ZS1nZXQtc2Vjb25kcy1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC1zZWNv
bmRzLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjQ3NmNiYTQ4ZDU3ZjgxOGFjN2RjYTRiMzIyZWI5N2Zk
N2ZlYmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtc2Vjb25k
cy1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBl
Y3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkg
eworICAgIHJldHVybiBkYXRlLmdldFNlY29uZHMoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2
YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIg
ZXhwZWN0ZWQgPSBkYXRlLmdldFNlY29uZHMoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyAr
K2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBu
ZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0U2Vjb25kcygpKTsKKyAgICBz
aG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9kYXRlLWdldC10aW1lLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0
LXRpbWUtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZTE2NDFlZjg5N2NhNDhkNjdhYjdiYWM2OTMzNzk3
ZGM1MmQ1YTcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC10aW1l
LWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVj
dGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7
CisgICAgcmV0dXJuIGRhdGUuZ2V0VGltZSgpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBk
YXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBl
Y3RlZCA9IGRhdGUuZ2V0VGltZSgpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgewor
ICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRl
KCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRUaW1lKCkpOworICAgIHNob3VsZEJlKGlz
TmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2RhdGUtZ2V0LXRpbWV6b25lLW9mZnNldC1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdl
dC10aW1lem9uZS1vZmZzZXQtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0Zjc3NzI2MDdmMmNiNTIxMTIy
MzAxNmIzMzgxZGMzYjA4OGQyOGYKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9k
YXRlLWdldC10aW1lem9uZS1vZmZzZXQtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3Rl
ZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQor
CitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRUaW1lem9uZU9mZnNl
dCgpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBp
bnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0VGltZXpvbmVP
ZmZzZXQoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0
ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3Vs
ZEJlKHRlc3QoZCksIGQuZ2V0VGltZXpvbmVPZmZzZXQoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4o
dGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0
ZS1nZXQtdXRjLWRhdGUtaml0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLWRhdGUt
aml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIwZTE1MmQ5NjlkNjZkM2VlODFiMTVmMzVjM2EzN2Y3MjUwYmM1
NmQKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11dGMtZGF0ZS1q
aXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgewor
ICAgIHJldHVybiBkYXRlLmdldFVUQ0RhdGUoKTsKK30KK25vSW5saW5lKHRlc3QpOworCit2YXIg
ZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7Cit2YXIgZXhw
ZWN0ZWQgPSBkYXRlLmdldFVUQ0RhdGUoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kp
IHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcg
RGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0VVRDRGF0ZSgpKTsKKyAgICBzaG91
bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9kYXRlLWdldC11dGMtZGF5LWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0
LXV0Yy1kYXktaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2M2FjY2M0ZjA1ZjZkZjk5YTA3MzZhMWYwMDhk
M2E5MzE0MmEzZGMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11
dGMtZGF5LWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWws
IGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChk
YXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VVRDRGF5KCk7Cit9Citub0lubGluZSh0ZXN0KTsK
KwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwor
dmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRVVENEYXkoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2
OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQg
PSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0VVRDRGF5KCkpOworICAg
IHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1mdWxsLXllYXItaml0LmpzIGIvSlNUZXN0cy9zdHJl
c3MvZGF0ZS1nZXQtdXRjLWZ1bGwteWVhci1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdhZDYzZTJlYmI2
NzQ5OWJkZjI1ZTdjOTEzOWYxZGNiMmU2N2NkMQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
c3RyZXNzL2RhdGUtZ2V0LXV0Yy1mdWxsLXllYXItaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBl
eHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwp
OworfQorCitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRVVENGdWxs
WWVhcigpOworfQorbm9JbmxpbmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3Zh
ciBpbnZhbGlkID0gbmV3IERhdGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0VVRDRnVs
bFllYXIoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsKKyAgICBzaG91bGRCZSh0
ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOworICAgIHNob3Vs
ZEJlKHRlc3QoZCksIGQuZ2V0VVRDRnVsbFllYXIoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVz
dChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1n
ZXQtdXRjLWhvdXJzLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1ob3Vycy1q
aXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODc1ZGQ3NDA5MWUzNzVjYzMyZjU4ODc1YmU1MDZjOWNkYzZiOGVj
NAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1ob3Vycy1q
aXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3Rl
ZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgewor
ICAgIHJldHVybiBkYXRlLmdldFVUQ0hvdXJzKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFy
IGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4
cGVjdGVkID0gZGF0ZS5nZXRVVENIb3VycygpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsr
aSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5l
dyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRVVENIb3VycygpKTsKKyAgICBz
aG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9kYXRlLWdldC11dGMtbWlsbGlzZWNvbmRzLWppdC5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2RhdGUtZ2V0LXV0Yy1taWxsaXNlY29uZHMtaml0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzQyMWUy
MzgyYTM5Y2U2NzFiNzYzNjQ0NWM3NmVjNGE1MWNiMTcKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rl
c3RzL3N0cmVzcy9kYXRlLWdldC11dGMtbWlsbGlzZWNvbmRzLWppdC5qcwpAQCAtMCwwICsxLDE5
IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVh
bCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsg
YWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0
VVRDTWlsbGlzZWNvbmRzKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcg
RGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0
ZS5nZXRVVENNaWxsaXNlY29uZHMoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2OyArK2kpIHsK
KyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQgPSBuZXcgRGF0
ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQuZ2V0VVRDTWlsbGlzZWNvbmRzKCkpOworICAg
IHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsKK30KZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1taW51dGVzLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNz
L2RhdGUtZ2V0LXV0Yy1taW51dGVzLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTI2M2M1ZmQxNzIzYTIy
ZWIyMDYyNDlkYmU3MDU0NDM4OTc3ZDYxCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJl
c3MvZGF0ZS1nZXQtdXRjLW1pbnV0ZXMtaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3Rl
ZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQor
CitmdW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRVVENNaW51dGVzKCk7
Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFs
aWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRVVENNaW51dGVzKCk7
Citmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRl
KSwgZXhwZWN0ZWQpOworICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0
KGQpLCBkLmdldFVUQ01pbnV0ZXMoKSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlk
KSksIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS1nZXQtdXRjLW1v
bnRoLWppdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1tb250aC1qaXQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODZiYzUyNDA3Yzg2Nzg2Zjg0MzcwOTQ0MDViZThhMjFjZmY4ZDJmOQotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXV0Yy1tb250aC1qaXQuanMKQEAg
LTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAg
IGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2
YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoZGF0ZSkgeworICAgIHJldHVy
biBkYXRlLmdldFVUQ01vbnRoKCk7Cit9Citub0lubGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBu
ZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcgRGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0g
ZGF0ZS5nZXRVVENNb250aCgpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAg
IHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVkKTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7
CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRVVENNb250aCgpKTsKKyAgICBzaG91bGRCZShp
c05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9kYXRlLWdldC11dGMtc2Vjb25kcy1qaXQuanMgYi9KU1Rlc3RzL3N0cmVzcy9kYXRlLWdldC11
dGMtc2Vjb25kcy1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc4N2MzMGQyOWU3OGY2N2RhYjc3NzczZTU3
MTEzMDBiMzQwZTAwNwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0
LXV0Yy1zZWNvbmRzLWppdC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShh
Y3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24g
dGVzdChkYXRlKSB7CisgICAgcmV0dXJuIGRhdGUuZ2V0VVRDU2Vjb25kcygpOworfQorbm9Jbmxp
bmUodGVzdCk7CisKK3ZhciBkYXRlID0gbmV3IERhdGUoKTsKK3ZhciBpbnZhbGlkID0gbmV3IERh
dGUoTmFOKTsKK3ZhciBleHBlY3RlZCA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpOworZm9yICh2YXIg
aSA9IDA7IGkgPCAxZTY7ICsraSkgeworICAgIHNob3VsZEJlKHRlc3QoZGF0ZSksIGV4cGVjdGVk
KTsKKyAgICB2YXIgZCA9IG5ldyBEYXRlKCk7CisgICAgc2hvdWxkQmUodGVzdChkKSwgZC5nZXRV
VENTZWNvbmRzKCkpOworICAgIHNob3VsZEJlKGlzTmFOKHRlc3QoaW52YWxpZCkpLCB0cnVlKTsK
K30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RhdGUtZ2V0LXllYXItaml0LmpzIGIvSlNU
ZXN0cy9zdHJlc3MvZGF0ZS1nZXQteWVhci1qaXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UxNmI4MzVhMDZk
ZDMyOWI2N2FkODlmYjkwNjdhODZjMTY5NzQ5YgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
c3RyZXNzL2RhdGUtZ2V0LXllYXItaml0LmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHNo
b3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitm
dW5jdGlvbiB0ZXN0KGRhdGUpIHsKKyAgICByZXR1cm4gZGF0ZS5nZXRZZWFyKCk7Cit9Citub0lu
bGluZSh0ZXN0KTsKKwordmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwordmFyIGludmFsaWQgPSBuZXcg
RGF0ZShOYU4pOwordmFyIGV4cGVjdGVkID0gZGF0ZS5nZXRZZWFyKCk7Citmb3IgKHZhciBpID0g
MDsgaSA8IDFlNjsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdChkYXRlKSwgZXhwZWN0ZWQpOwor
ICAgIHZhciBkID0gbmV3IERhdGUoKTsKKyAgICBzaG91bGRCZSh0ZXN0KGQpLCBkLmdldFllYXIo
KSk7CisgICAgc2hvdWxkQmUoaXNOYU4odGVzdChpbnZhbGlkKSksIHRydWUpOworfQpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvZGF0ZS12YWx1ZS1vZi1qaXQuanMgYi9KU1Rlc3RzL3N0cmVz
cy9kYXRlLXZhbHVlLW9mLWppdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzM5MzhiNDY4YTdkNzRmYzdkYmY3
ZTJlZWE3NzllNjhhMmMwN2U4Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGF0
ZS12YWx1ZS1vZi1qaXQuanMKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0
dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3QoZGF0ZSkgeworICAgIHJldHVybiBkYXRlLnZhbHVlT2YoKTsKK30KK25vSW5saW5lKHRlc3Qp
OworCit2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7Cit2YXIgaW52YWxpZCA9IG5ldyBEYXRlKE5hTik7
Cit2YXIgZXhwZWN0ZWQgPSBkYXRlLnZhbHVlT2YoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU2
OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0KGRhdGUpLCBleHBlY3RlZCk7CisgICAgdmFyIGQg
PSBuZXcgRGF0ZSgpOworICAgIHNob3VsZEJlKHRlc3QoZCksIGQudmFsdWVPZigpKTsKKyAgICBz
aG91bGRCZShpc05hTih0ZXN0KGludmFsaWQpKSwgdHJ1ZSk7Cit9Cg==
</data>
<flag name="review"
          id="398001"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>