<?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>233706</bug_id>
          
          <creation_ts>2021-12-01 08:21:06 -0800</creation_ts>
          <short_desc>[Model] Add load and error events to distinguish resource load from model readiness</short_desc>
          <delta_ts>2022-01-23 15:39:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>234153</dependson>
          <blocked>233643</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1819249</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-01 08:21:06 -0800</bug_when>
    <thetext>As it stands &lt;model&gt; elements have a &quot;ready&quot; promise, which resolves once the resource has been loaded. However, this promise should be used when the &lt;model&gt; is fully ready, and this is done on macOS and iOS asynchronously after the resource has been loaded. So we should have &quot;load&quot; and &quot;error&quot; events and a &quot;complete&quot; property to match &lt;img&gt; to identify resource load, and use the &quot;ready&quot; promise for when the model is fully ready and its various APIs safely usable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819251</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-01 08:21:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/85922697&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821039</commentid>
    <comment_count>2</comment_count>
      <attachid>446174</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-07 08:13:52 -0800</bug_when>
    <thetext>Created attachment 446174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821042</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-07 08:27:22 -0800</bug_when>
    <thetext>It seems you are not overriding virtualHasPendingActivity() and I believe that is an issue

You need to override it to keep the HTMLModelElement JS wrapper alive as long as you may fire load/error events on it

queueTaskToDispatchEvent() keeps the JS wrapper alive between the call to queueTaskToDispatchEvent() and the point where the event actually gets fired. However, nothing seems to make sure your JS wrapper says alive until you eventually call queueTaskToDispatchEvent().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821071</commentid>
    <comment_count>4</comment_count>
      <attachid>446189</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-07 09:34:03 -0800</bug_when>
    <thetext>Created attachment 446189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821073</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-07 09:35:54 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; It seems you are not overriding virtualHasPendingActivity() and I believe
&gt; that is an issue
&gt; 
&gt; You need to override it to keep the HTMLModelElement JS wrapper alive as
&gt; long as you may fire load/error events on it
&gt; 
&gt; queueTaskToDispatchEvent() keeps the JS wrapper alive between the call to
&gt; queueTaskToDispatchEvent() and the point where the event actually gets
&gt; fired. However, nothing seems to make sure your JS wrapper says alive until
&gt; you eventually call queueTaskToDispatchEvent().

Thanks for pointing that out. The new patch has an implementation for virtualHasPendingActivity() and calls suspendIfNeeded() in the create() method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821078</commentid>
    <comment_count>6</comment_count>
      <attachid>446189</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-07 09:41:23 -0800</bug_when>
    <thetext>Comment on attachment 446189
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821472</commentid>
    <comment_count>7</comment_count>
      <attachid>446333</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-08 01:33:26 -0800</bug_when>
    <thetext>Created attachment 446333
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822051</commentid>
    <comment_count>8</comment_count>
      <attachid>446513</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-09 03:14:31 -0800</bug_when>
    <thetext>Created attachment 446513
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822555</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-10 00:15:22 -0800</bug_when>
    <thetext>Committed r286836 (245069@trunk): &lt;https://commits.webkit.org/245069@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822556</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-10 00:19:39 -0800</bug_when>
    <thetext>A note to bot watchers: the existing test model-element/model-element-contents-layer-updates-with-clipping.html was modified as part of this patch and the iOS-15-Simulator-WK2-Tests-EWS bot saw flakiness with it as part of the run-layout-tests-in-stress-mode step. Subsequent test runs did not see such an issue. I tried to run the test locally with the iPhone 8 simulator using the iOS 12.2 SDK and did not see an issue running the test with `--ios-simulator --release --iterations=100`. I also tried with `--run-singly`. In case you see some flakiness with this test, please mark it as flaky for now and file a bug so that I may investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822557</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-10 00:20:06 -0800</bug_when>
    <thetext>That would be the iOS 15.2 SDK, not 12.2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822752</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-12-10 09:23:52 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 234153</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822756</commentid>
    <comment_count>13</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-10 09:26:33 -0800</bug_when>
    <thetext>There two types of failures with the changed or new tests. On iOS, you can see some flakiness by running:

run-webkit-tests --no-build --release --ios-simulator --exit-after-n-failures 1 --skip-failing-tests --iterations 100 LayoutTests/model-element/model-element-contents-layer-updates.html LayoutTests/model-element/model-element-contents-layer-updates-with-clipping.html LayoutTests/model-element/model-element-graphics-layers-opacity.html LayoutTests/model-element/model-element-error-and-load-events.html LayoutTests/model-element/model-element-graphics-layers.html LayoutTests/model-element/model-element-ready.html

On macOS, you can see some crashes by running:

rwt --debug --iterations=100 model-element --exit-after-n-failures=1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823713</commentid>
    <comment_count>14</comment_count>
      <attachid>447050</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-13 13:17:23 -0800</bug_when>
    <thetext>Created attachment 447050
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833127</commentid>
    <comment_count>15</comment_count>
      <attachid>449762</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-01-23 12:24:50 -0800</bug_when>
    <thetext>Created attachment 449762
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833140</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-23 13:51:36 -0800</bug_when>
    <thetext>Committed r288424 (246315@main): &lt;https://commits.webkit.org/246315@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449762.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446174</attachid>
            <date>2021-12-07 08:13:52 -0800</date>
            <delta_ts>2021-12-07 09:33:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233706-20211207171350.patch</filename>
            <type>text/plain</type>
            <size>25342</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQ1ZDNmM2Q4MzhmMDlm
NDI0ZWI2NGNmMzEwNTNmMDVkM2Q0OWU3Yy4uZGVlOTRlODJlMzY1OTEwMWI3ZWZjMDQwYzFlNmY0
NmNlNjJkNWRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTA3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQWRkIGxv
YWQgYW5kIGVycm9yIGV2ZW50cyB0byBkaXN0aW5ndWlzaCByZXNvdXJjZSBsb2FkIGZyb20gbW9k
ZWwgcmVhZGluZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzM3MDYKKyAgICAgICAgcmRhcjovLzg1OTIyNjk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbW9kZWwtZWxlbWVudC9tb2RlbC1l
bGVtZW50LWVycm9yLWFuZC1sb2FkLWV2ZW50cy5odG1sCisKKyAgICAgICAgUHJpb3IgdG8gdGhp
cyBwYXRjaCwgPG1vZGVsPiBlbGVtZW50cyBoYWQgYSAicmVhZHkiIHByb21pc2Ugd2hpY2ggcmVz
b2x2ZWQgb25jZSB0aGUgcmVzb3VyY2UgaGFkIGJlZW4gbG9hZGVkLgorICAgICAgICBIb3dldmVy
LCB0aGlzIHByb21pc2Ugc2hvdWxkIGJlIHVzZWQgd2hlbiB0aGUgPG1vZGVsPiBpcyBmdWxseSBy
ZWFkeSwgYW5kIHRoaXMgaXMgZG9uZSBvbiBtYWNPUyBhbmQgaU9TIGFzeW5jaHJvbm91c2x5Cisg
ICAgICAgIGFmdGVyIHRoZSByZXNvdXJjZSBoYXMgYmVlbiBsb2FkZWQgYnkgdGhlIHN1cHBvcnRp
bmcgQVJRTCBmcmFtZXdvcmsuIFNvIHdlIG5lZWQgYSB3YXkgdG8gbW9uaXRvciBzdWNjZXNzIG9y
IGZhaWx1cmUgb2YKKyAgICAgICAgdGhlIHJlc291cmNlIGxvYWQgc3BlY2lmaWNhbGx5LgorCisg
ICAgICAgIFRvIHRoYXQgZW5kLCBhbmQgbWF0Y2hpbmcgdGhlIDxpbWc+IGVsZW1lbnQsIHdlIGRp
c3BhdGNoICJsb2FkIiBhbmQgImVycm9yIiBldmVudHMgb24gPG1vZGVsPiBlbGVtZW50cyBhbmQg
YWRkIGEKKyAgICAgICAgImNvbXBsZXRlIiBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB3aGV0aGVyIHRo
ZSByZXNvdXJjZSBpcyBsb2FkZWQuCisKKyAgICAgICAgTWVhbndoaWxlLCB0aGUgInJlYWR5IiBw
cm9taXNlIGlzIG5vdyByZXNvbHZlZCB3aGVuIHRoZSBtb2RlbCBpcyBmdWxseSBsb2FkZWQgYnkg
dGhlIHN1cHBvcnRpbmcgZnJhbWV3b3JrLCBpbmRpY2F0aW5nCisgICAgICAgIHRoYXQgZnVydGhl
ciBBUElzIGFyZSBzYWZlIHRvIHVzZS4KKworICAgICAgICBTaW5jZSBjcmVhdGluZyB0aGUgc3Vw
cG9ydCBBUlFMIG9iamVjdCBmb3IgbWFjT1MgYW5kIGlPUyBhbHNvIHJlcXVpcmVzIHRoZSA8bW9k
ZWw+IGVsZW1lbnQncyByZW5kZXJlciBiZWluZyBhdmFpbGFibGUsCisgICAgICAgIHdlIG9wdCBp
bnRvICJjdXN0b20gc3R5bGUgcmVzb2x2ZSBjYWxsYmFja3MiIHNvIHRoYXQgd2UgbWF5IGltcGxl
bWVudCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvbiBIVE1MTW9kZWxFbGVtZW50IGFuZCBrZWVwCisg
ICAgICAgIHRyYWNrIG9mIHJlbmRlcmVyIGF2YWlsYWJpbGl0eSBiZWZvcmUgYXR0ZW1wdGluZyB0
byBjcmVhdGUgdGhlIE1vZGVsUGxheWVyLgorCisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxl
bWVudDo6SFRNTE1vZGVsRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVt
ZW50OjpzZXRTb3VyY2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6
ZGlkQXR0YWNoUmVuZGVyZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6
Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6Om1v
ZGVsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmNyZWF0
ZU1vZGVsUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6ZGlkRmFp
bExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6Z2V0Q2FtZXJh
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OnNldENhbWVyYSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oOgor
ICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbDoKKwog
MjAyMS0xMi0wNiAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
W0NvY29hXSBXZWIgSW5zcGVjdG9yOiBVbmlmeSBHcmlkIG92ZXJsYXkgZHJhd2luZyBjb2RlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVs
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1v
ZGVsRWxlbWVudC5jcHAKaW5kZXggMzA5YzAyNjQzZjVhN2FlOWZlYzA4YTE0ZWIyMTIyNDA5YjFm
ODllMC4uMmQ2YWMzZjYyYzU0YjlhN2Q1M2E1MGZiNGU2M2Y4MmQ5YmJkOTM1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmNwcApAQCAtNjUsOCArNjUsMTAgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KEhUTUxNb2RlbEVsZW1lbnQpOwogCiBIVE1MTW9kZWxFbGVtZW50OjpIVE1MTW9kZWxFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6
IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQorICAgICwgQWN0aXZlRE9NT2JqZWN0KGRv
Y3VtZW50KQogICAgICwgbV9yZWFkeVByb21pc2UgeyBtYWtlVW5pcXVlUmVmPFJlYWR5UHJvbWlz
ZT4oKnRoaXMsICZIVE1MTW9kZWxFbGVtZW50OjpyZWFkeVByb21pc2VSZXNvbHZlKSB9CiB7Cisg
ICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKIEhUTUxNb2RlbEVs
ZW1lbnQ6On5IVE1MTW9kZWxFbGVtZW50KCkKQEAgLTEzMSw5ICsxMzMsMTIgQEAgdm9pZCBIVE1M
TW9kZWxFbGVtZW50OjpzZXRTb3VyY2VVUkwoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIG1fcmVh
ZHlQcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9KTsKIAogICAgIG1fcmVh
ZHlQcm9taXNlID0gbWFrZVVuaXF1ZVJlZjxSZWFkeVByb21pc2U+KCp0aGlzLCAmSFRNTE1vZGVs
RWxlbWVudDo6cmVhZHlQcm9taXNlUmVzb2x2ZSk7CisgICAgbV9zaG91bGRDcmVhdGVNb2RlbFBs
YXllclVwb25SZW5kZXJlckF0dGFjaG1lbnQgPSBmYWxzZTsKIAotICAgIGlmIChtX3NvdXJjZVVS
TC5pc0VtcHR5KCkpCisgICAgaWYgKG1fc291cmNlVVJMLmlzRW1wdHkoKSkgeworICAgICAgICBx
dWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlv
biwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJs
ZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9
CiAKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CiAgICAgb3B0aW9ucy5kZXN0aW5h
dGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Ok1vZGVsOwpAQCAtMTQ1LDYgKzE1MCw3
IEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6c2V0U291cmNlVVJMKGNvbnN0IFVSTCYgdXJsKQog
CiAgICAgYXV0byByZXNvdXJjZSA9IGRvY3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5y
ZXF1ZXN0TW9kZWxSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpKTsKICAgICBpZiAoIXJlc291cmNl
Lmhhc192YWx1ZSgpKSB7CisgICAgICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywg
VGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5l
cnJvckV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
KTsKICAgICAgICAgbV9yZWFkeVByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBOZXR3b3JrRXJy
b3IgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNzUsNiArMTgxLDE1IEBAIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBIVE1MTW9kZWxFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVuZGVyU3R5bGUmJiBzCiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1vZGVs
PigqdGhpcywgV1RGTW92ZShzdHlsZSkpOwogfQogCit2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OmRp
ZEF0dGFjaFJlbmRlcmVycygpCit7CisgICAgaWYgKCFtX3Nob3VsZENyZWF0ZU1vZGVsUGxheWVy
VXBvblJlbmRlcmVyQXR0YWNobWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zaG91bGRD
cmVhdGVNb2RlbFBsYXllclVwb25SZW5kZXJlckF0dGFjaG1lbnQgPSBmYWxzZTsKKyAgICBjcmVh
dGVNb2RlbFBsYXllcigpOworfQorCiAvLyBNQVJLOiAtIENhY2hlZFJhd1Jlc291cmNlQ2xpZW50
CiAKIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6ZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlJiBy
ZXNvdXJjZSwgY29uc3QgdWludDhfdCogZGF0YSwgaW50IGRhdGFMZW5ndGgpCkBAIC0xOTksNiAr
MjE0LDcgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSYgcmVzb3VyY2UsIGNvbnN0IE5ldHdvcmtMb2EKIAogICAgICAgICBpbnZhbGlkYXRlUmVz
b3VyY2VIYW5kbGVBbmRVcGRhdGVSZW5kZXJlcigpOwogCisgICAgICAgIGRpc3BhdGNoRXZlbnQo
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiAgICAgICAgIG1fcmVhZHlQcm9taXNlLT5y
ZWplY3QoRXhjZXB0aW9uIHsgTmV0d29ya0Vycm9yIH0pOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtMjA4LDcgKzIyNCw3IEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6bm90aWZ5RmluaXNo
ZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBOZXR3b3JrTG9hCiAKICAgICBpbnZh
bGlkYXRlUmVzb3VyY2VIYW5kbGVBbmRVcGRhdGVSZW5kZXJlcigpOwogCi0gICAgbV9yZWFkeVBy
b21pc2UtPnJlc29sdmUoKnRoaXMpOworICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkubG9hZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKIAogICAgIG1vZGVsRGlkQ2hhbmdlKCk7CiB9CkBAIC0yMTcsMjUgKzIz
MywzNCBAQCB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291
cmNlJiByZXNvdXJjZSwgY29uc3QgTmV0d29ya0xvYQogCiB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6
Om1vZGVsRGlkQ2hhbmdlKCkKIHsKLSAgICAvLyBGSVhNRTogRm9yIHRoZSBlYXJseSByZXR1cm5z
IGhlcmUsIHdlIHNob3VsZCBwcm9iYWJseSBpbmZvcm0gdGhlIHBhZ2UgdGhhdCB0aGluZ3MgaGF2
ZQotICAgIC8vIGZhaWxlZCB0byByZW5kZXIuIEZvciB0aGUgY2FzZSBvZiBuby1yZW5kZXJlciwg
d2Ugc2hvdWxkIHByb2JhYmx5IGFsc28gYnVpbGQgdGhlIG1vZGVsCi0gICAgLy8gd2hlbi9pZiBh
IHJlbmRlcmVyIGlzIGNyZWF0ZWQuCi0KLSAgICBhdXRvIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2Uo
KTsKLSAgICBpZiAoIXBhZ2UpCisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwor
ICAgIGlmICghcGFnZSkgeworICAgICAgICBtX3JlYWR5UHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlv
biB7IEFib3J0RXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvKiBy
ZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFyZW5kZXJlcikKKyAgICBpZiAo
IXJlbmRlcmVyKSB7CisgICAgICAgIG1fc2hvdWxkQ3JlYXRlTW9kZWxQbGF5ZXJVcG9uUmVuZGVy
ZXJBdHRhY2htZW50ID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIG1fbW9k
ZWxQbGF5ZXIgPSBwYWdlLT5tb2RlbFBsYXllclByb3ZpZGVyKCkuY3JlYXRlTW9kZWxQbGF5ZXIo
KnRoaXMpOwotICAgIGlmICghbV9tb2RlbFBsYXllcikKKyAgICBjcmVhdGVNb2RlbFBsYXllcigp
OworfQorCit2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OmNyZWF0ZU1vZGVsUGxheWVyKCkKK3sKKyAg
ICBBU1NFUlQoZG9jdW1lbnQoKS5wYWdlKCkpOworICAgIG1fbW9kZWxQbGF5ZXIgPSBkb2N1bWVu
dCgpLnBhZ2UoKS0+bW9kZWxQbGF5ZXJQcm92aWRlcigpLmNyZWF0ZU1vZGVsUGxheWVyKCp0aGlz
KTsKKyAgICBpZiAoIW1fbW9kZWxQbGF5ZXIpIHsKKyAgICAgICAgbV9yZWFkeVByb21pc2UtPnJl
amVjdChFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOwogICAgICAgICByZXR1cm47CisgICAgfQog
CiAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gdGVsbCB0aGUgcGxheWVyIGlmIHRoZSBzaXplIGNo
YW5nZXMgYXMgd2VsbCwgc28gcGFzc2luZyB0aGlzCiAgICAgLy8gaW4gd2l0aCBsb2FkIHByb2Jh
Ymx5IGRvZXNuJ3QgbWFrZSBzZW5zZS4KLSAgICBhdXRvIHNpemUgPSByZW5kZXJlci0+YWJzb2x1
dGVCb3VuZGluZ0JveFJlY3QoZmFsc2UpLnNpemUoKTsKKyAgICBBU1NFUlQocmVuZGVyZXIoKSk7
CisgICAgYXV0byBzaXplID0gcmVuZGVyZXIoKS0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoZmFs
c2UpLnNpemUoKTsKICAgICBtX21vZGVsUGxheWVyLT5sb2FkKCptX21vZGVsLCBzaXplKTsKIH0K
IApAQCAtMjU1LDExICsyODAsMTQgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkaWRGaW5pc2hM
b2FkaW5nKE1vZGVsUGxheWVyJiBtb2RlbFBsYXllcikKIAogICAgIGlmIChhdXRvKiByZW5kZXJl
ciA9IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJlbmRlcmVyLT51cGRhdGVGcm9tRWxlbWVu
dCgpOworCisgICAgbV9yZWFkeVByb21pc2UtPnJlc29sdmUoKnRoaXMpOwogfQogCiB2b2lkIEhU
TUxNb2RlbEVsZW1lbnQ6OmRpZEZhaWxMb2FkaW5nKE1vZGVsUGxheWVyJiBtb2RlbFBsYXllciwg
Y29uc3QgUmVzb3VyY2VFcnJvciYpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChtb2RlbFBsYXllciwg
Jm1vZGVsUGxheWVyID09IG1fbW9kZWxQbGF5ZXIpOworICAgIG1fcmVhZHlQcm9taXNlLT5yZWpl
Y3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9KTsKIH0KIAogR3JhcGhpY3NMYXllcjo6UGxhdGZv
cm1MYXllcklEIEhUTUxNb2RlbEVsZW1lbnQ6OnBsYXRmb3JtTGF5ZXJJRCgpCkBAIC0zNjEsNyAr
Mzg5LDcgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkcmFnRGlkRW5kKE1vdXNlRXZlbnQmIGV2
ZW50KQogdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpnZXRDYW1lcmEoQ2FtZXJhUHJvbWlzZSYmIHBy
b21pc2UpCiB7CiAgICAgaWYgKCFtX21vZGVsUGxheWVyKSB7Ci0gICAgICAgIHByb21pc2UucmVq
ZWN0KCk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IgfSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM3Niw3ICs0MDQsNyBAQCB2b2lkIEhUTUxN
b2RlbEVsZW1lbnQ6OmdldENhbWVyYShDYW1lcmFQcm9taXNlJiYgcHJvbWlzZSkKIHZvaWQgSFRN
TE1vZGVsRWxlbWVudDo6c2V0Q2FtZXJhKEhUTUxNb2RlbEVsZW1lbnRDYW1lcmEgY2FtZXJhLCBE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewogICAgIGlmICghbV9tb2RlbFBs
YXllcikgewotICAgICAgICBwcm9taXNlLnJlamVjdCgpOworICAgICAgICBwcm9taXNlLnJlamVj
dChFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC01NTIsNiArNTgwLDExIEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6c2V0SXNNdXRlZChib29s
IGlzTXV0ZWQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pCiAgICAgfSk7CiB9CiAK
K2NvbnN0IGNoYXIqIEhUTUxNb2RlbEVsZW1lbnQ6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dAoreworICAgIHJldHVybiAiSFRNTE1vZGVsRWxlbWVudCI7Cit9CisKICNpZiBQTEFURk9STShD
T0NPQSkKIFZlY3RvcjxSZXRhaW5QdHI8aWQ+PiBIVE1MTW9kZWxFbGVtZW50OjphY2Nlc3NpYmls
aXR5Q2hpbGRyZW4oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKaW5kZXggMDVhMWNkYWEzZTE0ODc3YTBhZTQ2
NWI2MzQ5YWE1YmJiMWFmMmM4Mi4uMzBhZjNjNjg5NmU0ZDQwZmZhMmU0YmE3M2FmYmUxZjExZTc0
OWY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hU
TUxNb2RlbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvSFRNTE1vZGVsRWxlbWVudC5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTU9E
RUxfRUxFTUVOVCkKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgpAQCAtNDksNyArNTAsNyBAQCBjbGFz
cyBNb3VzZUV2ZW50OwogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlz
ZURlZmVycmVkOwogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZVBy
b3h5V2l0aFJlc29sdmVDYWxsYmFjazsKIAotY2xhc3MgSFRNTE1vZGVsRWxlbWVudCBmaW5hbCA6
IHB1YmxpYyBIVE1MRWxlbWVudCwgcHJpdmF0ZSBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCwgcHVi
bGljIE1vZGVsUGxheWVyQ2xpZW50IHsKK2NsYXNzIEhUTUxNb2RlbEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgSFRNTEVsZW1lbnQsIHByaXZhdGUgQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQsIHB1Ymxp
YyBNb2RlbFBsYXllckNsaWVudCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChIVE1MTW9kZWxFbGVtZW50KTsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPEhUTUxNb2RlbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKQEAgLTU3LDYgKzU4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzb3VyY2VzQ2hhbmdl
ZCgpOwogICAgIGNvbnN0IFVSTCYgY3VycmVudFNyYygpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
VVJMOyB9CisgICAgYm9vbCBjb21wbGV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YUNvbXBsZXRl
OyB9CiAKICAgICAvLyBNQVJLOiBET00gRnVuY3Rpb25zIGFuZCBBdHRyaWJ1dGVzCiAKQEAgLTEw
NiwxNCArMTA4LDE5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldFNvdXJjZVVSTChjb25zdCBV
UkwmKTsKICAgICB2b2lkIG1vZGVsRGlkQ2hhbmdlKCk7CisgICAgdm9pZCBjcmVhdGVNb2RlbFBs
YXllcigpOwogCiAgICAgSFRNTE1vZGVsRWxlbWVudCYgcmVhZHlQcm9taXNlUmVzb2x2ZSgpOwog
CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IGZpbmFsOworCiAgICAgLy8gRE9NIG92ZXJyaWRlcy4KICAgICB2b2lkIGRp
ZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ld0Rv
Y3VtZW50KSBmaW5hbDsKIAogICAgIC8vIFJlbmRlcmluZyBvdmVycmlkZXMuCiAgICAgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIGRpZEF0dGFjaFJlbmRl
cmVycygpIGZpbmFsOwogCiAgICAgLy8gQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQgb3ZlcnJpZGVz
LgogICAgIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlJiwgY29uc3QgdWludDhfdCog
ZGF0YSwgaW50IGRhdGFMZW5ndGgpIGZpbmFsOwpAQCAtMTM4LDYgKzE0NSw3IEBAIHByaXZhdGU6
CiAgICAgVW5pcXVlUmVmPFJlYWR5UHJvbWlzZT4gbV9yZWFkeVByb21pc2U7CiAgICAgYm9vbCBt
X2RhdGFDb21wbGV0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzRHJhZ2dpbmcgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9zaG91bGRDcmVhdGVNb2RlbFBsYXllclVwb25SZW5kZXJlckF0dGFjaG1l
bnQgeyBmYWxzZSB9OwogCiAgICAgUmVmUHRyPE1vZGVsUGxheWVyPiBtX21vZGVsUGxheWVyOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9I
VE1MTW9kZWxFbGVtZW50LmlkbAppbmRleCA3MjgzMWExNzJmMmFkZTU2OGFkYzI3MWU1MjE1MDRm
NjNjYmVkZjhlLi42YTQ2OTdhZTQ1MGM2YmZkYTdlYTE5Yzk5Y2QyMTk2ZDFhYmIyYTg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxN
b2RlbEVsZW1lbnQuaWRsCkBAIC0zMCw2ICszMCw3IEBACiBdIGludGVyZmFjZSBIVE1MTW9kZWxF
bGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgIFtVUkxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZT
dHJpbmcgY3VycmVudFNyYzsKIAorICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGNvbXBs
ZXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPEhUTUxNb2RlbEVsZW1lbnQ+IHJl
YWR5OwogCiAgICAgdW5kZWZpbmVkIGVudGVyRnVsbHNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc4NjI3Y2Rj
ZmJmNmFkNmJmZDEwNGFiM2ZiNjI4ODMzZDU0OGQ3MTAuLjllMWYwZmZmNGM3N2JjNTlkODc1ZTgy
MTJhOWM4MzY5YzZkNTY1YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0xMi0wNyAgQW50
b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBbTW9kZWxdIEFkZCBs
b2FkIGFuZCBlcnJvciBldmVudHMgdG8gZGlzdGluZ3Vpc2ggcmVzb3VyY2UgbG9hZCBmcm9tIG1v
ZGVsIHJlYWRpbmVzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMzNzA2CisgICAgICAgIHJkYXI6Ly84NTkyMjY5NworICAgICAgICAKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGV4aXN0aW5nIHRl
c3RzIGFyb3VuZCByZXNvdXJjZSBsb2FkaW5nIGFuZCByZWNyZWF0ZSB0aGVtIGluIHRlcm1zIG9m
ICJsb2FkIiBhbmQgImVycm9yIgorICAgICAgICBldmVudHMgaW4gbW9kZWwtZWxlbWVudC9tb2Rl
bC1lbGVtZW50LWVycm9yLWFuZC1sb2FkLWV2ZW50cy5odG1sIGFuZCBpbiB0ZXJtcyBvZiB0aGUg
cmVhZHkKKyAgICAgICAgcHJvbWlzZSBpbiBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVh
ZHkuaHRtbC4KKworICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1h
bmQtbG9hZC1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtb2RlbC1lbGVt
ZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtYWJvcnRlZC1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVt
ZW50LXJlYWR5LWxvYWQtYWJvcnRlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1vZGVsLWVs
ZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWZhaWxlZC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFp
bGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50
LXJlYWR5Lmh0bWw6CisgICAgICAgICogbW9kZWwtZWxlbWVudC9yZXNvdXJjZXMvbW9kZWwtZWxl
bWVudC10ZXN0LXV0aWxzLmpzOiBBZGRlZC4KKyAgICAgICAgKGNvbnN0LmNyZWF0ZU1vZGVsQW5k
U291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAy
MS0xMi0wNiAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJ
Ql0gU21hbGwgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50
L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmYmY5MDgzMTM2NWJiMDRjMGJiMGRiNjVkNzdmYzM0
NDc5ZDY1N2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21v
ZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKKworUEFTUyA8bW9kZWw+IGRpc3BhdGNoZXMgYW4gImVycm9yIiBldmVudCB3aGVuIGl0
cyByZXNvdXJjZSBsb2FkIGlzIGFib3J0ZWQgYmVmb3JlIGNvbXBsZXRpb24uCitQQVNTIDxtb2Rl
bD4gZGlzcGF0Y2hlcyBhbiAiZXJyb3IiIGV2ZW50IHdoZW4gaXRzIHNwZWNpZmllZCByZXNvdXJj
ZSBkb2VzIG5vdCBleGlzdC4KK1BBU1MgPG1vZGVsPiBkaXNwYXRjaGVzIGEgImxvYWQiIGV2ZW50
IHdoZW4gaXRzIHJlc291cmNlIGlzIHN1Y2Nlc3NmdWxseSBsb2FkZWQuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1l
dmVudHMuaHRtbCBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJv
ci1hbmQtbG9hZC1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWE1YmZjMTIyOGMwZDUyNzA2MDE2
NmYwM2I0OGRkODQ3M2UyZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbW9kZWwt
ZWxlbWVudC9tb2RlbC1lbGVtZW50LWVycm9yLWFuZC1sb2FkLWV2ZW50cy5odG1sCkBAIC0wLDAg
KzEsNTIgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PiZsdDttb2RlbD4gbG9hZCBhbmQgZXJyb3IgZXZlbnRzPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL21vZGVsLWVsZW1lbnQtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CisndXNlIHN0cmljdCc7CisKK2NvbnN0IG1vZGVsX2xvYWRfdGVzdCA9IChleHBlY3Rl
ZEV2ZW50LCBleGVjdXRvciwgZGVzY3JpcHRpb24pID0+IHsKKyAgICBwcm9taXNlX3Rlc3QodCA9
PiB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Cisg
ICAgICAgICAgICBjb25zdCBbbW9kZWwsIHNvdXJjZV0gPSBjcmVhdGVNb2RlbEFuZFNvdXJjZSh0
KTsKKworICAgICAgICAgICAgY29uc3QgaGFuZGxlRXZlbnQgPSBldmVudCA9PiB7CisgICAgICAg
ICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICJsb2FkIikKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X3RydWUobW9kZWwuY29tcGxldGUsIGBtb2RlbC5jb21wbGV0ZSBpcyB0cnVlIHVwb24g
cmVjZWl2aW5nIHRoZSAibG9hZCIgZXZlbnQuYCk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAo
ZXZlbnQudHlwZSA9PT0gImVycm9yIikKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNl
KG1vZGVsLmNvbXBsZXRlLCBgbW9kZWwuY29tcGxldGUgaXMgZmFsc2UgdXBvbiByZWNlaXZpbmcg
dGhlICJlcnJvciIgZXZlbnQuYCk7CisKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9
PT0gZXhwZWN0ZWRFdmVudCkKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGByZWNlaXZlZCB1bmV4
cGVjdGVkIGV2ZW50OiAke2V2ZW50LnR5cGV9YCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGFzc2VydF9mYWxzZShtb2RlbC5jb21wbGV0ZSwgIm1vZGVsLmNvbXBsZXRlIGlzIGZhbHNl
IGJlZm9yZSB0aGUgbG9hZCBpcyBpbml0aWF0ZWQuIik7CisKKyAgICAgICAgICAgIG1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBoYW5kbGVFdmVudCk7CisgICAgICAgICAgICBtb2RlbC5h
ZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGhhbmRsZUV2ZW50KTsKKworICAgICAgICAgICAgZXhl
Y3V0b3Ioc291cmNlKTsKKyAgICAgICAgfSk7CisgICAgfSwgZGVzY3JpcHRpb24pOworfTsKKwor
bW9kZWxfbG9hZF90ZXN0KCJlcnJvciIsIHNvdXJjZSA9PiB7CisgICAgc291cmNlLnNyYyA9ICJy
ZXNvdXJjZXMvaGVhcnQudXNkeiI7CisgICAgc291cmNlLnJlbW92ZSgpOworfSwgYDxtb2RlbD4g
ZGlzcGF0Y2hlcyBhbiAiZXJyb3IiIGV2ZW50IHdoZW4gaXRzIHJlc291cmNlIGxvYWQgaXMgYWJv
cnRlZCBiZWZvcmUgY29tcGxldGlvbi5gKTsKKworbW9kZWxfbG9hZF90ZXN0KCJlcnJvciIsIHNv
dXJjZSA9PiB7CisgICAgc291cmNlLnNyYyA9ICJyZXNvdXJjZXMvZG9lcy1ub3QtZXhpc3QudXNk
eiI7Cit9LCBgPG1vZGVsPiBkaXNwYXRjaGVzIGFuICJlcnJvciIgZXZlbnQgd2hlbiBpdHMgc3Bl
Y2lmaWVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0LmApOworCittb2RlbF9sb2FkX3Rlc3QoImxv
YWQiLCBzb3VyY2UgPT4geworICAgIHNvdXJjZS5zcmMgPSAicmVzb3VyY2VzL2N1YmUudXNkeiI7
Cit9LCBgPG1vZGVsPiBkaXNwYXRjaGVzIGEgImxvYWQiIGV2ZW50IHdoZW4gaXRzIHJlc291cmNl
IGlzIHN1Y2Nlc3NmdWxseSBsb2FkZWQuYCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1l
eHBlY3RlZC50eHQKaW5kZXggZjg3YjI0NTI0YTE4ODFkZmNhNWE2MjVjY2U0MWZjMDU1OWUwMjQ2
Ni4uODdmMjk3NjQ5Y2VmYmFiNTYzZjUzM2MyYWMzNjE1OWExYjE3YjJiZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktZXhw
ZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBAQAotVGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRo
ZSB3b3JkICJQYXNzZWQiIGJlbG93OgogCi1QYXNzZWQKK1BBU1MgPG1vZGVsPiByZWplY3RzIHRo
ZSByZWFkeSBwcm9taXNlIHdoZW4gcHJvdmlkZWQgd2l0aCBhbiB1bmtub3duIHJlc291cmUuCitQ
QVNTIDxtb2RlbD4gcmVqZWN0cyB0aGUgcmVhZHkgcHJvbWlzZSB3aGVuIGl0cyByZXNvdXJjZSBs
b2FkIGlzIGFib3J0ZWQuCitQQVNTIDxtb2RlbD4gcmVzb2x2ZXMgdGhlIHJlYWR5IHByb21pc2Ug
d2hlbiBwcm92aWRlZCB3aXRoIGEga25vd24gcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWFib3J0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5
LWxvYWQtYWJvcnRlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGY4N2IyNDUyNGExODgxZGZjYTVhNjI1Y2NlNDFmYzA1NTllMDI0NjYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVu
dC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtYWJvcnRlZC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLVRoaXMgdGVzdCBwYXNzZXMgaWYgeW91IHNlZSB0aGUgd29y
ZCAiUGFzc2VkIiBiZWxvdzoKLQotUGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2Rl
bC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVkLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhM2NhMTFiM2ZhZTZjZDFjZDI1NTA5N2Rm
M2IzMjQ5MjcxYTU1NjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQt
YWJvcnRlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBNb2RlbEVsZW1lbnRFbmFibGVkPXRydWUgXSAt
LT4KLTxodG1sPgotPGJvZHk+Ci08bW9kZWwgaWQ9Im1vZGVsIj4KLSAgICA8c291cmNlIGlkPSJt
b2RlbC1zb3VyY2UiPgotPC9tb2RlbD4KLTxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgeW91IHNlZSB0
aGUgd29yZCAiUGFzc2VkIiBiZWxvdzo8L3A+Ci08cCBpZD0icmVzdWx0Ij5GYWlsZWQ8L3A+Ci08
c2NyaXB0PgotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAg
fQotCi0gICAgbGV0IHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsK
LSAgICBsZXQgbW9kZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZWwiKTsKLSAgICBs
ZXQgc291cmNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGVsLXNvdXJjZSIpOwotCi0g
ICAgbW9kZWwucmVhZHkudGhlbih2YWx1ZSA9PiB7Ci0gICAgICAgIHJlc3VsdC50ZXh0Q29udGVu
dCA9ICJGYWlsZWQuIE1vZGVsIHNob3VsZCBub3QgaGF2ZSBsb2FkZWQsIGJ1dCBkaWQuIjsKLSAg
ICB9LCByZWFzb24gPT4gewotICAgICAgICBpZiAocmVhc29uLm5hbWUgPT0gIkFib3J0RXJyb3Ii
KQotICAgICAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gYFBhc3NlZGA7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHJlc3VsdC50ZXh0Q29udGVudCA9IGBGYWlsZWQuIFdyb25nIGVycm9y
IHR5cGU6ICR7cmVhc29ufS5gOwotICAgIH0pLmZpbmFsbHkoKCkgPT4geyAKLSAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Ci0gICAgfSk7Ci0KLSAgICBzb3VyY2Uuc3JjID0gInJlc291cmNlcy9oZWFydC51c2R6IjsKLQot
ICAgIG1vZGVsLnJlbW92ZUNoaWxkKHNvdXJjZSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1y
ZWFkeS1sb2FkLWZhaWxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50
L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1mYWlsZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmODdiMjQ1MjRhMTg4MWRmY2E1YTYyNWNjZTQxZmMwNTU5ZTAy
NDY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWZhaWxlZC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRoaXMgdGVzdCBwYXNzZXMg
aWYgeW91IHNlZSB0aGUgd29yZCAiUGFzc2VkIiBiZWxvdzoKLQotUGFzc2VkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1mYWls
ZWQuaHRtbCBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1s
b2FkLWZhaWxlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxM2U4M2FjYjNi
MDYwMmM5NTIwYTMwZWFkMGY3ZTMzZDMyZDI0ZjRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxl
bWVudC1yZWFkeS1sb2FkLWZhaWxlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBNb2RlbEVsZW1lbnRF
bmFibGVkPXRydWUgXSAtLT4KLTxodG1sPgotPGJvZHk+Ci08bW9kZWwgaWQ9Im1vZGVsIj4KLSAg
ICA8c291cmNlIHNyYz0icmVzb3VyY2VzL2RvZXMtbm90LWV4aXN0LnVzZHoiPgotPC9tb2RlbD4K
LTxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgeW91IHNlZSB0aGUgd29yZCAiUGFzc2VkIiBiZWxvdzo8
L3A+Ci08cCBpZD0icmVzdWx0Ij5GYWlsZWQ8L3A+Ci08c2NyaXB0PgotICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgfQotCi0gICAgbGV0IHJlc3VsdCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKLSAgICBsZXQgbW9kZWwgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibW9kZWwiKTsKLQotICAgIG1vZGVsLnJlYWR5LnRoZW4odmFsdWUg
PT4gewotICAgICAgICByZXN1bHQudGV4dENvbnRlbnQgPSAiRmFpbGVkLiBNb2RlbCBzaG91bGQg
bm90IGhhdmUgbG9hZGVkLCBidXQgZGlkLiI7Ci0gICAgfSwgcmVhc29uID0+IHsKLSAgICAgICAg
aWYgKHJlYXNvbi5uYW1lID09ICJOZXR3b3JrRXJyb3IiKQotICAgICAgICAgICAgcmVzdWx0LnRl
eHRDb250ZW50ID0gYFBhc3NlZGA7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdC50
ZXh0Q29udGVudCA9IGBGYWlsZWQuIFdyb25nIGVycm9yIHR5cGU6ICR7cmVhc29ufS5gOwotICAg
IH0pLmZpbmFsbHkoKCkgPT4geyAKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfSk7Ci08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9k
ZWwtZWxlbWVudC1yZWFkeS5odG1sIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1l
bGVtZW50LXJlYWR5Lmh0bWwKaW5kZXggZTgwNjI0YWU1N2E1ZWMxOWI5MmMwNWYwNTM2MzUyZTFk
ZmFlNDI3NC4uODM5YjY5ODFmODNkZGI2N2YyYjVhYTM5MmM2MjUzYTBlYTY2M2I3YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0bWwK
QEAgLTEsMjggKzEsMzggQEAKLTwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgTW9kZWxFbGVtZW50RW5hYmxlZD10cnVlIF0gLS0+Ci08aHRtbD4KKzwhZG9jdHlwZSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPiZsdDttb2RlbD4gcmVhZHkgcHJvbWlz
ZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9tb2RlbC1lbGVtZW50LXRlc3QtdXRpbHMu
anMiPjwvc2NyaXB0PgogPGJvZHk+Ci08bW9kZWwgaWQ9Im1vZGVsIj4KLSAgICA8c291cmNlIHNy
Yz0icmVzb3VyY2VzL2hlYXJ0LnVzZHoiPgotPC9tb2RlbD4KLTxwPlRoaXMgdGVzdCBwYXNzZXMg
aWYgeW91IHNlZSB0aGUgd29yZCAiUGFzc2VkIiBiZWxvdzo8L3A+Ci08cCBpZD0icmVzdWx0Ij5G
YWlsZWQ8L3A+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci0gICAgfQorJ3VzZSBzdHJpY3QnOwogCi0gICAgbGV0IHJlc3VsdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKLSAgICBsZXQgbW9kZWwgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibW9kZWwiKTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25z
dCBbbW9kZWwsIHNvdXJjZV0gPSBjcmVhdGVNb2RlbEFuZFNvdXJjZSh0LCAicmVzb3VyY2VzL2Rv
ZXMtbm90LWV4aXN0LnVzZHoiKTsKKyAgICByZXR1cm4gbW9kZWwucmVhZHkudGhlbigKKyAgICAg
ICAgdmFsdWUgPT4gYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCByZWFkeSBwcm9taXNlIHJl
c29sdXRpb24uIiksCisgICAgICAgIHJlYXNvbiA9PiBhc3NlcnRfdHJ1ZShyZWFzb24udG9TdHJp
bmcoKS5pbmNsdWRlcygiTmV0d29ya0Vycm9yIiksICJUaGUgcmVhZHkgcHJvbWlzZSBpcyByZWpl
Y3RlZCB3aXRoIGEgTmV0d29ya0Vycm9yLiIpCisgICAgKTsKK30sIGA8bW9kZWw+IHJlamVjdHMg
dGhlIHJlYWR5IHByb21pc2Ugd2hlbiBwcm92aWRlZCB3aXRoIGFuIHVua25vd24gcmVzb3VyZS5g
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IFttb2RlbCwgc291cmNl
XSA9IGNyZWF0ZU1vZGVsQW5kU291cmNlKHQsICJyZXNvdXJjZXMvaGVhcnQudXNkeiIpOworICAg
IGNvbnN0IG1vZGVsUmVhZHkgPSBtb2RlbC5yZWFkeTsKKworICAgIHNvdXJjZS5yZW1vdmUoKTsK
KyAgICBhc3NlcnRfbm90X2VxdWFscyhtb2RlbC5yZWFkeSwgbW9kZWxSZWFkeSwgIlJlbW92aW5n
IHRoZSA8c291cmNlPiBjaGlsZCByZXNldHMgdGhlIHJlYWR5IHByb21pc2UuIik7CisKKyAgICBy
ZXR1cm4gbW9kZWxSZWFkeS50aGVuKAorICAgICAgICB2YWx1ZSA9PiBhc3NlcnRfdW5yZWFjaGVk
KCJVbmV4cGVjdGVkIHJlYWR5IHByb21pc2UgcmVzb2x1dGlvbi4iKSwKKyAgICAgICAgcmVhc29u
ID0+IGFzc2VydF90cnVlKHJlYXNvbi50b1N0cmluZygpLmluY2x1ZGVzKCJBYm9ydEVycm9yIiks
ICJUaGUgcmVhZHkgcHJvbWlzZSBpcyByZWplY3RlZCB3aXRoIGEgTmV0d29ya0Vycm9yLiIpCisg
ICAgKTsKK30sIGA8bW9kZWw+IHJlamVjdHMgdGhlIHJlYWR5IHByb21pc2Ugd2hlbiBpdHMgcmVz
b3VyY2UgbG9hZCBpcyBhYm9ydGVkLmApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgY29uc3QgW21vZGVsLCBzb3VyY2VdID0gY3JlYXRlTW9kZWxBbmRTb3VyY2UodCwgInJlc291
cmNlcy9jdWJlLnVzZHoiKTsKKyAgICBhd2FpdCBtb2RlbC5yZWFkeTsKK30sIGA8bW9kZWw+IHJl
c29sdmVzIHRoZSByZWFkeSBwcm9taXNlIHdoZW4gcHJvdmlkZWQgd2l0aCBhIGtub3duIHJlc291
cmNlLmApOwogCi0gICAgbW9kZWwucmVhZHkudGhlbih2YWx1ZSA9PiB7Ci0gICAgICAgIHJlc3Vs
dC50ZXh0Q29udGVudCA9IGBQYXNzZWRgOwotICAgIH0sIHJlYXNvbiA9PiB7Ci0gICAgICAgIHJl
c3VsdC50ZXh0Q29udGVudCA9IGBGYWlsZWQuIE1vZGVsIGRpZCBub3QgbG9hZDogJHtyZWFzb259
YDsKLSAgICB9KS5maW5hbGx5KCgpID0+IHsgCi0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0pOwogPC9zY3Jp
cHQ+CiA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVt
ZW50L3Jlc291cmNlcy9tb2RlbC1lbGVtZW50LXRlc3QtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9t
b2RlbC1lbGVtZW50L3Jlc291cmNlcy9tb2RlbC1lbGVtZW50LXRlc3QtdXRpbHMuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGE1MzRjY2MwZmIwMTE0ZTQyMzVhYTRlMTA1NTI2OGVkZGQ3ZWNjMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvcmVzb3VyY2VzL21vZGVsLWVsZW1l
bnQtdGVzdC11dGlscy5qcwpAQCAtMCwwICsxLDE0IEBACisKK2NvbnN0IGNyZWF0ZU1vZGVsQW5k
U291cmNlID0gKHRlc3QsIHNyYykgPT4geworICAgIGNvbnN0IG1vZGVsID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibW9kZWwiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1vZGVs
KTsKKworICAgIGNvbnN0IHNvdXJjZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNvdXJjZSIp
OworICAgIGlmIChzcmMpCisgICAgICAgIHNvdXJjZS5zcmMgPSBzcmM7CisgICAgbW9kZWwuYXBw
ZW5kQ2hpbGQoc291cmNlKTsKKworICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gbW9kZWwucmVt
b3ZlKCkpOworCisgICAgcmV0dXJuIFttb2RlbCwgc291cmNlXTsKK307CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBlM2U3YmI3ZjU3MmNmMWJiNDczZjAz
NTM1N2ZlMTc5MTViZDBjYjQuLjdiYzBlZmQwYjE5MDFhOWUwM2NiYzc3YWJhMWM0NzUwYzY3YmQw
OWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjgy
LDggKzIyODIsOCBAQCB3ZWJraXQub3JnL2IvMjI4MzExIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2Nzcy1zY29waW5nLQogIyB3ZWJraXQub3JnL2IvMjI4
MjAwIEFkanVzdGluZyB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgTW9udGVyZXkgb24gT3BlbiBTb3Vy
Y2UgPHJkYXI6Ly84MDM0NDEzOD46CiBbIE1vbnRlcmV5IF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvbmV0d29yay1wYXJ0aXRpb24ta2V5Lmh0
bWwgWyBGYWlsdXJlIF0KIAotIyB3ZWJraXQub3JnL2IvMjI4MjAwIFNldHRpbmcgbXVsdGlwbGUg
dGVzdCBleHBlY3RhdGlvbnMgZm9yIE1vbmV0ZXJ5IG9uIE9wZW5Tb3VyY2U6Ci1bIE1vbnRlcmV5
IF0gbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWdyYXBoaWNzLWxheWVycy1vcGFjaXR5Lmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQorIyB3ZWJraXQub3JnL2IvMjI4MjAwIFNldHRpbmcgbXVsdGlw
bGUgdGVzdCBleHBlY3RhdGlvbnMgZm9yIE1vbnRlcmV5IG9uIE9wZW5Tb3VyY2U6CitbIE1vbnRl
cmV5KyBdIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMtb3BhY2l0
eS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIFsgTW9udGVyZXkgRGVidWcgYXJtNjQgXSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0
SWNlLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgQ3Jhc2ggXQogCiAjcmRhcjovLzgyMDUzMjEw
IChbR3VhcmQtTWFsbG9jXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9y
ZWxhdGlvbnMvaHRtbDUtdHJlZS9kaXNwbGF5LTIuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUpCkBA
IC0yNDI4LDMgKzI0MjgsOCBAQCBwbGF0Zm9ybS9tYWMvcGx1Z2lucy9jb252ZXJ0LXBvaW50Lmh0
bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMjY4MjYgWyBNb250ZXJleSBdIGh0dHAvdGVzdHMv
c3NsL2FwcGxlcGF5L0FwcGxlUGF5QnV0dG9uLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9y
Zy9iLzIyMTIzMCBbIEJpZ1N1cisgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21l
ZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRzb3VyY2VidWZmZXIuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCisKKyMgPG1vZGVsPiB0ZXN0cyBpbnZvbHZpbmcgdGhlIHJlYWR5IHByb21pc2UgY2FuIG9u
bHkgd29yayBvbiBNb250ZXJleSBhbmQgdXAKK1sgQ2F0YWxpbmEgQmlnU3VyIF0gbW9kZWwtZWxl
bWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0bWwgWyBTa2lwIF0KK1sgQ2F0YWxpbmEgQmlnU3Vy
IF0gbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWdyYXBoaWNzLWxheWVycy5odG1sIFsgU2tp
cCBdCitbIENhdGFsaW5hIEJpZ1N1ciBdIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1ncmFw
aGljcy1sYXllcnMtb3BhY2l0eS5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446189</attachid>
            <date>2021-12-07 09:34:03 -0800</date>
            <delta_ts>2021-12-07 20:48:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233706-20211207183402.patch</filename>
            <type>text/plain</type>
            <size>25806</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQ1ZDNmM2Q4MzhmMDlm
NDI0ZWI2NGNmMzEwNTNmMDVkM2Q0OWU3Yy4uOTNiMTUwYjQ1ODE3YzkwNmQxYTBmNWE5NTYxNWYy
YWY5YzNiYzg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTEyLTA3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQWRkIGxv
YWQgYW5kIGVycm9yIGV2ZW50cyB0byBkaXN0aW5ndWlzaCByZXNvdXJjZSBsb2FkIGZyb20gbW9k
ZWwgcmVhZGluZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzM3MDYKKyAgICAgICAgcmRhcjovLzg1OTIyNjk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbW9kZWwtZWxlbWVudC9tb2RlbC1l
bGVtZW50LWVycm9yLWFuZC1sb2FkLWV2ZW50cy5odG1sCisKKyAgICAgICAgUHJpb3IgdG8gdGhp
cyBwYXRjaCwgPG1vZGVsPiBlbGVtZW50cyBoYWQgYSAicmVhZHkiIHByb21pc2Ugd2hpY2ggcmVz
b2x2ZWQgb25jZSB0aGUgcmVzb3VyY2UgaGFkIGJlZW4gbG9hZGVkLgorICAgICAgICBIb3dldmVy
LCB0aGlzIHByb21pc2Ugc2hvdWxkIGJlIHVzZWQgd2hlbiB0aGUgPG1vZGVsPiBpcyBmdWxseSBy
ZWFkeSwgYW5kIHRoaXMgaXMgZG9uZSBvbiBtYWNPUyBhbmQgaU9TIGFzeW5jaHJvbm91c2x5Cisg
ICAgICAgIGFmdGVyIHRoZSByZXNvdXJjZSBoYXMgYmVlbiBsb2FkZWQgYnkgdGhlIHN1cHBvcnRp
bmcgQVJRTCBmcmFtZXdvcmsuIFNvIHdlIG5lZWQgYSB3YXkgdG8gbW9uaXRvciBzdWNjZXNzIG9y
IGZhaWx1cmUgb2YKKyAgICAgICAgdGhlIHJlc291cmNlIGxvYWQgc3BlY2lmaWNhbGx5LgorCisg
ICAgICAgIFRvIHRoYXQgZW5kLCBhbmQgbWF0Y2hpbmcgdGhlIDxpbWc+IGVsZW1lbnQsIHdlIGRp
c3BhdGNoICJsb2FkIiBhbmQgImVycm9yIiBldmVudHMgb24gPG1vZGVsPiBlbGVtZW50cyBhbmQg
YWRkIGEKKyAgICAgICAgImNvbXBsZXRlIiBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB3aGV0aGVyIHRo
ZSByZXNvdXJjZSBpcyBsb2FkZWQuCisKKyAgICAgICAgTWVhbndoaWxlLCB0aGUgInJlYWR5IiBw
cm9taXNlIGlzIG5vdyByZXNvbHZlZCB3aGVuIHRoZSBtb2RlbCBpcyBmdWxseSBsb2FkZWQgYnkg
dGhlIHN1cHBvcnRpbmcgZnJhbWV3b3JrLCBpbmRpY2F0aW5nCisgICAgICAgIHRoYXQgZnVydGhl
ciBBUElzIGFyZSBzYWZlIHRvIHVzZS4KKworICAgICAgICBTaW5jZSBjcmVhdGluZyB0aGUgc3Vw
cG9ydCBBUlFMIG9iamVjdCBmb3IgbWFjT1MgYW5kIGlPUyBhbHNvIHJlcXVpcmVzIHRoZSA8bW9k
ZWw+IGVsZW1lbnQncyByZW5kZXJlciBiZWluZyBhdmFpbGFibGUsCisgICAgICAgIHdlIG9wdCBp
bnRvICJjdXN0b20gc3R5bGUgcmVzb2x2ZSBjYWxsYmFja3MiIHNvIHRoYXQgd2UgbWF5IGltcGxl
bWVudCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvbiBIVE1MTW9kZWxFbGVtZW50IGFuZCBrZWVwCisg
ICAgICAgIHRyYWNrIG9mIHJlbmRlcmVyIGF2YWlsYWJpbGl0eSBiZWZvcmUgYXR0ZW1wdGluZyB0
byBjcmVhdGUgdGhlIE1vZGVsUGxheWVyLgorCisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxl
bWVudDo6SFRNTE1vZGVsRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVt
ZW50OjpzZXRTb3VyY2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6
ZGlkQXR0YWNoUmVuZGVyZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6
Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6Om1v
ZGVsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmNyZWF0
ZU1vZGVsUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6ZGlkRmFp
bExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6YWN0aXZlRE9N
T2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Ojp2
aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVs
LWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxl
bWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbDoKKwogMjAyMS0xMi0wNiAgUGF0cmljayBBbmdsZSAg
PHBhbmdsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBVbmlm
eSBHcmlkIG92ZXJsYXkgZHJhd2luZyBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKaW5kZXggMzA5YzAy
NjQzZjVhN2FlOWZlYzA4YTE0ZWIyMTIyNDA5YjFmODllMC4uOGRjMmFjNjUwNjkzYjY1ZjA4OTA4
NGNkZmJmYTIxODRkNGEzNDcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcApAQCAtNjUsOCArNjUsMTAg
QEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxNb2RlbEVsZW1lbnQpOwogCiBIVE1M
TW9kZWxFbGVtZW50OjpIVE1MTW9kZWxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KQorICAgICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogICAgICwgbV9yZWFkeVByb21p
c2UgeyBtYWtlVW5pcXVlUmVmPFJlYWR5UHJvbWlzZT4oKnRoaXMsICZIVE1MTW9kZWxFbGVtZW50
OjpyZWFkeVByb21pc2VSZXNvbHZlKSB9CiB7CisgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZl
Q2FsbGJhY2tzKCk7CiB9CiAKIEhUTUxNb2RlbEVsZW1lbnQ6On5IVE1MTW9kZWxFbGVtZW50KCkK
QEAgLTc5LDcgKzgxLDkgQEAgSFRNTE1vZGVsRWxlbWVudDo6fkhUTUxNb2RlbEVsZW1lbnQoKQog
CiBSZWY8SFRNTE1vZGVsRWxlbWVudD4gSFRNTE1vZGVsRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIVE1MTW9kZWxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAg
YXV0byBtb2RlbCA9IGFkb3B0UmVmKCpuZXcgSFRNTE1vZGVsRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOworICAgIG1vZGVsLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gbW9kZWw7
CiB9CiAKIFJlZlB0cjxNb2RlbD4gSFRNTE1vZGVsRWxlbWVudDo6bW9kZWwoKSBjb25zdApAQCAt
MTMxLDkgKzEzNSwxMiBAQCB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OnNldFNvdXJjZVVSTChjb25z
dCBVUkwmIHVybCkKICAgICAgICAgbV9yZWFkeVByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBB
Ym9ydEVycm9yIH0pOwogCiAgICAgbV9yZWFkeVByb21pc2UgPSBtYWtlVW5pcXVlUmVmPFJlYWR5
UHJvbWlzZT4oKnRoaXMsICZIVE1MTW9kZWxFbGVtZW50OjpyZWFkeVByb21pc2VSZXNvbHZlKTsK
KyAgICBtX3Nob3VsZENyZWF0ZU1vZGVsUGxheWVyVXBvblJlbmRlcmVyQXR0YWNobWVudCA9IGZh
bHNlOwogCi0gICAgaWYgKG1fc291cmNlVVJMLmlzRW1wdHkoKSkKKyAgICBpZiAobV9zb3VyY2VV
UkwuaXNFbXB0eSgpKSB7CisgICAgICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywg
VGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5l
cnJvckV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8p
KTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBv
cHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlv
bnMoKTsKICAgICBvcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
bjo6TW9kZWw7CkBAIC0xNDUsNiArMTUyLDcgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpzZXRT
b3VyY2VVUkwoY29uc3QgVVJMJiB1cmwpCiAKICAgICBhdXRvIHJlc291cmNlID0gZG9jdW1lbnQo
KS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RNb2RlbFJlc291cmNlKFdURk1vdmUocmVx
dWVzdCkpOwogICAgIGlmICghcmVzb3VyY2UuaGFzX3ZhbHVlKCkpIHsKKyAgICAgICAgcXVldWVU
YXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogICAgICAgICBtX3JlYWR5UHJvbWlzZS0+cmVq
ZWN0KEV4Y2VwdGlvbiB7IE5ldHdvcmtFcnJvciB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTE3NSw2ICsxODMsMTUgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxNb2RlbEVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHMKICAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8UmVuZGVyTW9kZWw+KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7CiB9CiAK
K3ZvaWQgSFRNTE1vZGVsRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKCkKK3sKKyAgICBpZiAo
IW1fc2hvdWxkQ3JlYXRlTW9kZWxQbGF5ZXJVcG9uUmVuZGVyZXJBdHRhY2htZW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3Nob3VsZENyZWF0ZU1vZGVsUGxheWVyVXBvblJlbmRlcmVyQXR0
YWNobWVudCA9IGZhbHNlOworICAgIGNyZWF0ZU1vZGVsUGxheWVyKCk7Cit9CisKIC8vIE1BUks6
IC0gQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQKIAogdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkYXRh
UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCB1aW50OF90KiBkYXRhLCBp
bnQgZGF0YUxlbmd0aCkKQEAgLTE5Nyw2ICsyMTQsOCBAQCB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6
Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgTmV0d29ya0xv
YQogICAgIGlmIChyZXNvdXJjZS5sb2FkRmFpbGVkT3JDYW5jZWxlZCgpKSB7CiAgICAgICAgIG1f
ZGF0YSA9IG51bGxwdHI7CiAKKyAgICAgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlz
LCBUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LmVycm9yRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpO
bykpOworCiAgICAgICAgIGludmFsaWRhdGVSZXNvdXJjZUhhbmRsZUFuZFVwZGF0ZVJlbmRlcmVy
KCk7CiAKICAgICAgICAgbV9yZWFkeVByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBOZXR3b3Jr
RXJyb3IgfSk7CkBAIC0yMDYsOSArMjI1LDkgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50Ojpub3Rp
ZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IE5ldHdvcmtMb2EKICAg
ICBtX2RhdGFDb21wbGV0ZSA9IHRydWU7CiAgICAgbV9tb2RlbCA9IE1vZGVsOjpjcmVhdGUobV9k
YXRhLnJlbGVhc2VOb25OdWxsKCkuZ2V0KCksIHJlc291cmNlLm1pbWVUeXBlKCksIHJlc291cmNl
LnVybCgpKTsKIAotICAgIGludmFsaWRhdGVSZXNvdXJjZUhhbmRsZUFuZFVwZGF0ZVJlbmRlcmVy
KCk7CisgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpET01N
YW5pcHVsYXRpb24sIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmxvYWRFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiAKLSAgICBtX3JlYWR5
UHJvbWlzZS0+cmVzb2x2ZSgqdGhpcyk7CisgICAgaW52YWxpZGF0ZVJlc291cmNlSGFuZGxlQW5k
VXBkYXRlUmVuZGVyZXIoKTsKIAogICAgIG1vZGVsRGlkQ2hhbmdlKCk7CiB9CkBAIC0yMTcsMjUg
KzIzNiwzNCBAQCB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlJiByZXNvdXJjZSwgY29uc3QgTmV0d29ya0xvYQogCiB2b2lkIEhUTUxNb2RlbEVsZW1l
bnQ6Om1vZGVsRGlkQ2hhbmdlKCkKIHsKLSAgICAvLyBGSVhNRTogRm9yIHRoZSBlYXJseSByZXR1
cm5zIGhlcmUsIHdlIHNob3VsZCBwcm9iYWJseSBpbmZvcm0gdGhlIHBhZ2UgdGhhdCB0aGluZ3Mg
aGF2ZQotICAgIC8vIGZhaWxlZCB0byByZW5kZXIuIEZvciB0aGUgY2FzZSBvZiBuby1yZW5kZXJl
ciwgd2Ugc2hvdWxkIHByb2JhYmx5IGFsc28gYnVpbGQgdGhlIG1vZGVsCi0gICAgLy8gd2hlbi9p
ZiBhIHJlbmRlcmVyIGlzIGNyZWF0ZWQuCi0KLSAgICBhdXRvIHBhZ2UgPSBkb2N1bWVudCgpLnBh
Z2UoKTsKLSAgICBpZiAoIXBhZ2UpCisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgp
OworICAgIGlmICghcGFnZSkgeworICAgICAgICBtX3JlYWR5UHJvbWlzZS0+cmVqZWN0KEV4Y2Vw
dGlvbiB7IEFib3J0RXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRv
KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFyZW5kZXJlcikKKyAgICBp
ZiAoIXJlbmRlcmVyKSB7CisgICAgICAgIG1fc2hvdWxkQ3JlYXRlTW9kZWxQbGF5ZXJVcG9uUmVu
ZGVyZXJBdHRhY2htZW50ID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIG1f
bW9kZWxQbGF5ZXIgPSBwYWdlLT5tb2RlbFBsYXllclByb3ZpZGVyKCkuY3JlYXRlTW9kZWxQbGF5
ZXIoKnRoaXMpOwotICAgIGlmICghbV9tb2RlbFBsYXllcikKKyAgICBjcmVhdGVNb2RlbFBsYXll
cigpOworfQorCit2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OmNyZWF0ZU1vZGVsUGxheWVyKCkKK3sK
KyAgICBBU1NFUlQoZG9jdW1lbnQoKS5wYWdlKCkpOworICAgIG1fbW9kZWxQbGF5ZXIgPSBkb2N1
bWVudCgpLnBhZ2UoKS0+bW9kZWxQbGF5ZXJQcm92aWRlcigpLmNyZWF0ZU1vZGVsUGxheWVyKCp0
aGlzKTsKKyAgICBpZiAoIW1fbW9kZWxQbGF5ZXIpIHsKKyAgICAgICAgbV9yZWFkeVByb21pc2Ut
PnJlamVjdChFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOwogICAgICAgICByZXR1cm47CisgICAg
fQogCiAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gdGVsbCB0aGUgcGxheWVyIGlmIHRoZSBzaXpl
IGNoYW5nZXMgYXMgd2VsbCwgc28gcGFzc2luZyB0aGlzCiAgICAgLy8gaW4gd2l0aCBsb2FkIHBy
b2JhYmx5IGRvZXNuJ3QgbWFrZSBzZW5zZS4KLSAgICBhdXRvIHNpemUgPSByZW5kZXJlci0+YWJz
b2x1dGVCb3VuZGluZ0JveFJlY3QoZmFsc2UpLnNpemUoKTsKKyAgICBBU1NFUlQocmVuZGVyZXIo
KSk7CisgICAgYXV0byBzaXplID0gcmVuZGVyZXIoKS0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3Qo
ZmFsc2UpLnNpemUoKTsKICAgICBtX21vZGVsUGxheWVyLT5sb2FkKCptX21vZGVsLCBzaXplKTsK
IH0KIApAQCAtMjU1LDExICsyODMsMTQgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkaWRGaW5p
c2hMb2FkaW5nKE1vZGVsUGxheWVyJiBtb2RlbFBsYXllcikKIAogICAgIGlmIChhdXRvKiByZW5k
ZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJlbmRlcmVyLT51cGRhdGVGcm9tRWxl
bWVudCgpOworCisgICAgbV9yZWFkeVByb21pc2UtPnJlc29sdmUoKnRoaXMpOwogfQogCiB2b2lk
IEhUTUxNb2RlbEVsZW1lbnQ6OmRpZEZhaWxMb2FkaW5nKE1vZGVsUGxheWVyJiBtb2RlbFBsYXll
ciwgY29uc3QgUmVzb3VyY2VFcnJvciYpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChtb2RlbFBsYXll
ciwgJm1vZGVsUGxheWVyID09IG1fbW9kZWxQbGF5ZXIpOworICAgIG1fcmVhZHlQcm9taXNlLT5y
ZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9KTsKIH0KIAogR3JhcGhpY3NMYXllcjo6UGxh
dGZvcm1MYXllcklEIEhUTUxNb2RlbEVsZW1lbnQ6OnBsYXRmb3JtTGF5ZXJJRCgpCkBAIC01NTIs
NiArNTgzLDE4IEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6c2V0SXNNdXRlZChib29sIGlzTXV0
ZWQsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pCiAgICAgfSk7CiB9CiAKK2NvbnN0
IGNoYXIqIEhUTUxNb2RlbEVsZW1lbnQ6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAorewor
ICAgIHJldHVybiAiSFRNTE1vZGVsRWxlbWVudCI7Cit9CisKK2Jvb2wgSFRNTE1vZGVsRWxlbWVu
dDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7CisgICAgLy8gV2UgbmVlZCB0
byBlbnN1cmUgdGhlIEpTIHdyYXBwZXIgaXMga2VwdCBhbGl2ZSBpZiBhIGxvYWQgaXMgaW4gcHJv
Z3Jlc3MgYW5kIHdlIG1heSB5ZXQgZGlzcGF0Y2gKKyAgICAvLyAibG9hZCIgb3IgImVycm9yIiBl
dmVudHMsIGllLiBhcyBsb25nIGFzIHdlIGhhdmUgYSByZXNvdXJjZSwgbWVhbmluZyB3ZSBhcmUg
aW4gdGhlIHByb2Nlc3Mgb2YgbG9hZGluZy4KKyAgICByZXR1cm4gbV9yZXNvdXJjZTsKK30KKwog
I2lmIFBMQVRGT1JNKENPQ09BKQogVmVjdG9yPFJldGFpblB0cjxpZD4+IEhUTUxNb2RlbEVsZW1l
bnQ6OmFjY2Vzc2liaWxpdHlDaGlsZHJlbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaAppbmRleCAwNWExY2Rh
YTNlMTQ4NzdhMGFlNDY1YjYzNDlhYTViYmIxYWYyYzgyLi45ZWFhZTc3MDE1NzA4ZjdiZmI0NzRl
ZWFmZmE3MTMwNzRjZDg5NTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAog
I2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQogCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNv
dXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCkBAIC00OSw3
ICs1MCw3IEBAIGNsYXNzIE1vdXNlRXZlbnQ7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBj
bGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFz
cyBET01Qcm9taXNlUHJveHlXaXRoUmVzb2x2ZUNhbGxiYWNrOwogCi1jbGFzcyBIVE1MTW9kZWxF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50LCBwcml2YXRlIENhY2hlZFJhd1Jlc291
cmNlQ2xpZW50LCBwdWJsaWMgTW9kZWxQbGF5ZXJDbGllbnQgeworY2xhc3MgSFRNTE1vZGVsRWxl
bWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHJpdmF0ZSBDYWNoZWRSYXdSZXNvdXJj
ZUNsaWVudCwgcHVibGljIE1vZGVsUGxheWVyQ2xpZW50LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEhUTUxNb2RlbEVsZW1lbnQpOwogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8SFRNTE1vZGVsRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwpAQCAtNTcsNiArNTgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNvdXJjZXNDaGFuZ2VkKCk7CiAgICAgY29uc3QgVVJMJiBjdXJyZW50U3JjKCkgY29uc3QgeyBy
ZXR1cm4gbV9zb3VyY2VVUkw7IH0KKyAgICBib29sIGNvbXBsZXRlKCkgY29uc3QgeyByZXR1cm4g
bV9kYXRhQ29tcGxldGU7IH0KIAogICAgIC8vIE1BUks6IERPTSBGdW5jdGlvbnMgYW5kIEF0dHJp
YnV0ZXMKIApAQCAtMTA2LDE0ICsxMDgsMjAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0U291
cmNlVVJMKGNvbnN0IFVSTCYpOwogICAgIHZvaWQgbW9kZWxEaWRDaGFuZ2UoKTsKKyAgICB2b2lk
IGNyZWF0ZU1vZGVsUGxheWVyKCk7CiAKICAgICBIVE1MTW9kZWxFbGVtZW50JiByZWFkeVByb21p
c2VSZXNvbHZlKCk7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBh
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCB2aXJ0dWFsSGFzUGVu
ZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CisKICAgICAvLyBET00gb3ZlcnJpZGVzLgogICAg
IHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQmIG9sZERvY3VtZW50LCBEb2N1bWVu
dCYgbmV3RG9jdW1lbnQpIGZpbmFsOwogCiAgICAgLy8gUmVuZGVyaW5nIG92ZXJyaWRlcy4KICAg
ICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0
eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOworICAgIHZvaWQgZGlkQXR0
YWNoUmVuZGVyZXJzKCkgZmluYWw7CiAKICAgICAvLyBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCBv
dmVycmlkZXMuCiAgICAgdm9pZCBkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmLCBjb25zdCB1
aW50OF90KiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkgZmluYWw7CkBAIC0xMzgsNiArMTQ2LDcgQEAg
cHJpdmF0ZToKICAgICBVbmlxdWVSZWY8UmVhZHlQcm9taXNlPiBtX3JlYWR5UHJvbWlzZTsKICAg
ICBib29sIG1fZGF0YUNvbXBsZXRlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNEcmFnZ2luZyB7
IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZENyZWF0ZU1vZGVsUGxheWVyVXBvblJlbmRlcmVy
QXR0YWNobWVudCB7IGZhbHNlIH07CiAKICAgICBSZWZQdHI8TW9kZWxQbGF5ZXI+IG1fbW9kZWxQ
bGF5ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L0hUTUxNb2RlbEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaWRsCmluZGV4IDcyODMxYTE3MmYyYWRlNTY4YWRjMjcx
ZTUyMTUwNGY2M2NiZWRmOGUuLjZhNDY5N2FlNDUwYzZiZmRhN2VhMTljOTljZDIxOTZkMWFiYjJh
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvSFRNTE1vZGVsRWxlbWVudC5pZGwKQEAgLTMwLDYgKzMwLDcgQEAKIF0gaW50ZXJmYWNlIEhU
TUxNb2RlbEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgW1VSTF0gcmVhZG9ubHkgYXR0cmli
dXRlIFVTVlN0cmluZyBjdXJyZW50U3JjOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gY29tcGxldGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFByb21pc2U8SFRNTE1vZGVsRWxl
bWVudD4gcmVhZHk7CiAKICAgICB1bmRlZmluZWQgZW50ZXJGdWxsc2NyZWVuKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
Nzg2MjdjZGNmYmY2YWQ2YmZkMTA0YWIzZmI2Mjg4MzNkNTQ4ZDcxMC4uOWUxZjBmZmY0Yzc3YmM1
OWQ4NzVlODIxMmE5YzgzNjljNmQ1NjVjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTEy
LTA3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2Rl
bF0gQWRkIGxvYWQgYW5kIGVycm9yIGV2ZW50cyB0byBkaXN0aW5ndWlzaCByZXNvdXJjZSBsb2Fk
IGZyb20gbW9kZWwgcmVhZGluZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM3MDYKKyAgICAgICAgcmRhcjovLzg1OTIyNjk3CisgICAgICAgIAor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgZXhp
c3RpbmcgdGVzdHMgYXJvdW5kIHJlc291cmNlIGxvYWRpbmcgYW5kIHJlY3JlYXRlIHRoZW0gaW4g
dGVybXMgb2YgImxvYWQiIGFuZCAiZXJyb3IiCisgICAgICAgIGV2ZW50cyBpbiBtb2RlbC1lbGVt
ZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRzLmh0bWwgYW5kIGluIHRlcm1z
IG9mIHRoZSByZWFkeQorICAgICAgICBwcm9taXNlIGluIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxl
bWVudC1yZWFkeS5odG1sLgorCisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50
LWVycm9yLWFuZC1sb2FkLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1v
ZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1h
Ym9ydGVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtb2RlbC1lbGVtZW50L21v
ZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
bW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHkt
bG9hZC1mYWlsZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtb2RlbC1lbGVtZW50L21vZGVs
LWVsZW1lbnQtcmVhZHkuaHRtbDoKKyAgICAgICAgKiBtb2RlbC1lbGVtZW50L3Jlc291cmNlcy9t
b2RlbC1lbGVtZW50LXRlc3QtdXRpbHMuanM6IEFkZGVkLgorICAgICAgICAoY29uc3QuY3JlYXRl
TW9kZWxBbmRTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
OgorCiAyMDIxLTEyLTA2ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHTElCXSBTbWFsbCBnYXJkZW5pbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVs
LWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWVycm9yLWFuZC1sb2Fk
LWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZiZjkwODMxMzY1YmIwNGMwYmIwZGI2
NWQ3N2ZjMzQ0NzlkNjU3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21vZGVsLWVs
ZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorCitQQVNTIDxtb2RlbD4gZGlzcGF0Y2hlcyBhbiAiZXJyb3IiIGV2ZW50
IHdoZW4gaXRzIHJlc291cmNlIGxvYWQgaXMgYWJvcnRlZCBiZWZvcmUgY29tcGxldGlvbi4KK1BB
U1MgPG1vZGVsPiBkaXNwYXRjaGVzIGFuICJlcnJvciIgZXZlbnQgd2hlbiBpdHMgc3BlY2lmaWVk
IHJlc291cmNlIGRvZXMgbm90IGV4aXN0LgorUEFTUyA8bW9kZWw+IGRpc3BhdGNoZXMgYSAibG9h
ZCIgZXZlbnQgd2hlbiBpdHMgcmVzb3VyY2UgaXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZC4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWVycm9yLWFu
ZC1sb2FkLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVt
ZW50LWVycm9yLWFuZC1sb2FkLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5YTViZmMxMjI4YzBk
NTI3MDYwMTY2ZjAzYjQ4ZGQ4NDczZTJlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRzLmh0bWwK
QEAgLTAsMCArMSw1MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+Jmx0O21vZGVsPiBsb2FkIGFuZCBlcnJvciBldmVudHM8L3RpdGxlPgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvbW9kZWwtZWxlbWVudC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxi
b2R5PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgbW9kZWxfbG9hZF90ZXN0ID0g
KGV4cGVjdGVkRXZlbnQsIGV4ZWN1dG9yLCBkZXNjcmlwdGlvbikgPT4geworICAgIHByb21pc2Vf
dGVzdCh0ID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IFttb2RlbCwgc291cmNlXSA9IGNyZWF0ZU1vZGVsQW5k
U291cmNlKHQpOworCisgICAgICAgICAgICBjb25zdCBoYW5kbGVFdmVudCA9IGV2ZW50ID0+IHsK
KyAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gImxvYWQiKQorICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShtb2RlbC5jb21wbGV0ZSwgYG1vZGVsLmNvbXBsZXRlIGlzIHRy
dWUgdXBvbiByZWNlaXZpbmcgdGhlICJsb2FkIiBldmVudC5gKTsKKyAgICAgICAgICAgICAgICBl
bHNlIGlmIChldmVudC50eXBlID09PSAiZXJyb3IiKQorICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZmFsc2UobW9kZWwuY29tcGxldGUsIGBtb2RlbC5jb21wbGV0ZSBpcyBmYWxzZSB1cG9uIHJl
Y2VpdmluZyB0aGUgImVycm9yIiBldmVudC5gKTsKKworICAgICAgICAgICAgICAgIGlmIChldmVu
dC50eXBlID09PSBleHBlY3RlZEV2ZW50KQorICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByZWplY3QoYHJlY2Vp
dmVkIHVuZXhwZWN0ZWQgZXZlbnQ6ICR7ZXZlbnQudHlwZX1gKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1vZGVsLmNvbXBsZXRlLCAibW9kZWwuY29tcGxldGUg
aXMgZmFsc2UgYmVmb3JlIHRoZSBsb2FkIGlzIGluaXRpYXRlZC4iKTsKKworICAgICAgICAgICAg
bW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGhhbmRsZUV2ZW50KTsKKyAgICAgICAgICAg
IG1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgaGFuZGxlRXZlbnQpOworCisgICAgICAg
ICAgICBleGVjdXRvcihzb3VyY2UpOworICAgICAgICB9KTsKKyAgICB9LCBkZXNjcmlwdGlvbik7
Cit9OworCittb2RlbF9sb2FkX3Rlc3QoImVycm9yIiwgc291cmNlID0+IHsKKyAgICBzb3VyY2Uu
c3JjID0gInJlc291cmNlcy9oZWFydC51c2R6IjsKKyAgICBzb3VyY2UucmVtb3ZlKCk7Cit9LCBg
PG1vZGVsPiBkaXNwYXRjaGVzIGFuICJlcnJvciIgZXZlbnQgd2hlbiBpdHMgcmVzb3VyY2UgbG9h
ZCBpcyBhYm9ydGVkIGJlZm9yZSBjb21wbGV0aW9uLmApOworCittb2RlbF9sb2FkX3Rlc3QoImVy
cm9yIiwgc291cmNlID0+IHsKKyAgICBzb3VyY2Uuc3JjID0gInJlc291cmNlcy9kb2VzLW5vdC1l
eGlzdC51c2R6IjsKK30sIGA8bW9kZWw+IGRpc3BhdGNoZXMgYW4gImVycm9yIiBldmVudCB3aGVu
IGl0cyBzcGVjaWZpZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QuYCk7CisKK21vZGVsX2xvYWRf
dGVzdCgibG9hZCIsIHNvdXJjZSA9PiB7CisgICAgc291cmNlLnNyYyA9ICJyZXNvdXJjZXMvY3Vi
ZS51c2R6IjsKK30sIGA8bW9kZWw+IGRpc3BhdGNoZXMgYSAibG9hZCIgZXZlbnQgd2hlbiBpdHMg
cmVzb3VyY2UgaXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZC5gKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVh
ZHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50
LXJlYWR5LWV4cGVjdGVkLnR4dAppbmRleCBmODdiMjQ1MjRhMTg4MWRmY2E1YTYyNWNjZTQxZmMw
NTU5ZTAyNDY2Li44N2YyOTc2NDljZWZiYWI1NjNmNTMzYzJhYzM2MTU5YTFiMTdiMmJkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1y
ZWFkeS1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw1IEBACi1UaGlzIHRlc3QgcGFzc2VzIGlmIHlv
dSBzZWUgdGhlIHdvcmQgIlBhc3NlZCIgYmVsb3c6CiAKLVBhc3NlZAorUEFTUyA8bW9kZWw+IHJl
amVjdHMgdGhlIHJlYWR5IHByb21pc2Ugd2hlbiBwcm92aWRlZCB3aXRoIGFuIHVua25vd24gcmVz
b3VyZS4KK1BBU1MgPG1vZGVsPiByZWplY3RzIHRoZSByZWFkeSBwcm9taXNlIHdoZW4gaXRzIHJl
c291cmNlIGxvYWQgaXMgYWJvcnRlZC4KK1BBU1MgPG1vZGVsPiByZXNvbHZlcyB0aGUgcmVhZHkg
cHJvbWlzZSB3aGVuIHByb3ZpZGVkIHdpdGggYSBrbm93biByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtYWJv
cnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1l
bnQtcmVhZHktbG9hZC1hYm9ydGVkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZjg3YjI0NTI0YTE4ODFkZmNhNWE2MjVjY2U0MWZjMDU1OWUwMjQ2Ni4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tb2Rl
bC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVkLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2Vl
IHRoZSB3b3JkICJQYXNzZWQiIGJlbG93OgotCi1QYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWFib3J0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWFib3J0
ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2EzY2ExMWIzZmFlNmNkMWNk
MjU1MDk3ZGYzYjMyNDkyNzFhNTU2Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVh
ZHktbG9hZC1hYm9ydGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIE1vZGVsRWxlbWVudEVuYWJsZWQ9
dHJ1ZSBdIC0tPgotPGh0bWw+Ci08Ym9keT4KLTxtb2RlbCBpZD0ibW9kZWwiPgotICAgIDxzb3Vy
Y2UgaWQ9Im1vZGVsLXNvdXJjZSI+Ci08L21vZGVsPgotPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5
b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQiIGJlbG93OjwvcD4KLTxwIGlkPSJyZXN1bHQiPkZhaWxl
ZDwvcD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLSAgICB9Ci0KLSAgICBsZXQgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
c3VsdCIpOwotICAgIGxldCBtb2RlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIp
OwotICAgIGxldCBzb3VyY2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZWwtc291cmNl
Iik7Ci0KLSAgICBtb2RlbC5yZWFkeS50aGVuKHZhbHVlID0+IHsKLSAgICAgICAgcmVzdWx0LnRl
eHRDb250ZW50ID0gIkZhaWxlZC4gTW9kZWwgc2hvdWxkIG5vdCBoYXZlIGxvYWRlZCwgYnV0IGRp
ZC4iOwotICAgIH0sIHJlYXNvbiA9PiB7Ci0gICAgICAgIGlmIChyZWFzb24ubmFtZSA9PSAiQWJv
cnRFcnJvciIpCi0gICAgICAgICAgICByZXN1bHQudGV4dENvbnRlbnQgPSBgUGFzc2VkYDsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gYEZhaWxlZC4gV3Jv
bmcgZXJyb3IgdHlwZTogJHtyZWFzb259LmA7Ci0gICAgfSkuZmluYWxseSgoKSA9PiB7IAotICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKLSAgICB9KTsKLQotICAgIHNvdXJjZS5zcmMgPSAicmVzb3VyY2VzL2hlYXJ0LnVz
ZHoiOwotCi0gICAgbW9kZWwucmVtb3ZlQ2hpbGQoc291cmNlKTsKLTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1l
bGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21vZGVs
LWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWZhaWxlZC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4N2IyNDUyNGExODgxZGZjYTVhNjI1Y2NlNDFm
YzA1NTllMDI0NjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFp
bGVkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGhpcyB0ZXN0
IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQiIGJlbG93OgotCi1QYXNzZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1s
b2FkLWZhaWxlZC5odG1sIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50
LXJlYWR5LWxvYWQtZmFpbGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEz
ZTgzYWNiM2IwNjAyYzk1MjBhMzBlYWQwZjdlMzNkMzJkMjRmNGMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9t
b2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIE1vZGVs
RWxlbWVudEVuYWJsZWQ9dHJ1ZSBdIC0tPgotPGh0bWw+Ci08Ym9keT4KLTxtb2RlbCBpZD0ibW9k
ZWwiPgotICAgIDxzb3VyY2Ugc3JjPSJyZXNvdXJjZXMvZG9lcy1ub3QtZXhpc3QudXNkeiI+Ci08
L21vZGVsPgotPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQi
IGJlbG93OjwvcD4KLTxwIGlkPSJyZXN1bHQiPkZhaWxlZDwvcD4KLTxzY3JpcHQ+Ci0gICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB9Ci0KLSAgICBsZXQgcmVz
dWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwotICAgIGxldCBtb2RlbCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIpOwotCi0gICAgbW9kZWwucmVhZHkudGhl
bih2YWx1ZSA9PiB7Ci0gICAgICAgIHJlc3VsdC50ZXh0Q29udGVudCA9ICJGYWlsZWQuIE1vZGVs
IHNob3VsZCBub3QgaGF2ZSBsb2FkZWQsIGJ1dCBkaWQuIjsKLSAgICB9LCByZWFzb24gPT4gewot
ICAgICAgICBpZiAocmVhc29uLm5hbWUgPT0gIk5ldHdvcmtFcnJvciIpCi0gICAgICAgICAgICBy
ZXN1bHQudGV4dENvbnRlbnQgPSBgUGFzc2VkYDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
cmVzdWx0LnRleHRDb250ZW50ID0gYEZhaWxlZC4gV3JvbmcgZXJyb3IgdHlwZTogJHtyZWFzb259
LmA7Ci0gICAgfSkuZmluYWxseSgoKSA9PiB7IAotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9KTsKLTwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxl
bWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50
L21vZGVsLWVsZW1lbnQtcmVhZHkuaHRtbAppbmRleCBlODA2MjRhZTU3YTVlYzE5YjkyYzA1ZjA1
MzYzNTJlMWRmYWU0Mjc0Li44MzliNjk4MWY4M2RkYjY3ZjJiNWFhMzkyYzYyNTNhMGVhNjYzYjdj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVh
ZHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVh
ZHkuaHRtbApAQCAtMSwyOCArMSwzOCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBNb2RlbEVsZW1lbnRFbmFibGVkPXRydWUgXSAtLT4KLTxodG1sPgorPCFkb2N0
eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+Jmx0O21vZGVsPiByZWFk
eSBwcm9taXNlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21vZGVsLWVsZW1lbnQtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+CiA8Ym9keT4KLTxtb2RlbCBpZD0ibW9kZWwiPgotICAgIDxz
b3VyY2Ugc3JjPSJyZXNvdXJjZXMvaGVhcnQudXNkeiI+Ci08L21vZGVsPgotPHA+VGhpcyB0ZXN0
IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQiIGJlbG93OjwvcD4KLTxwIGlkPSJy
ZXN1bHQiPkZhaWxlZDwvcD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLSAgICB9CisndXNlIHN0cmljdCc7CiAKLSAgICBsZXQgcmVzdWx0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwotICAgIGxldCBtb2RlbCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIpOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICAgIGNvbnN0IFttb2RlbCwgc291cmNlXSA9IGNyZWF0ZU1vZGVsQW5kU291cmNlKHQsICJyZXNv
dXJjZXMvZG9lcy1ub3QtZXhpc3QudXNkeiIpOworICAgIHJldHVybiBtb2RlbC5yZWFkeS50aGVu
KAorICAgICAgICB2YWx1ZSA9PiBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIHJlYWR5IHBy
b21pc2UgcmVzb2x1dGlvbi4iKSwKKyAgICAgICAgcmVhc29uID0+IGFzc2VydF90cnVlKHJlYXNv
bi50b1N0cmluZygpLmluY2x1ZGVzKCJOZXR3b3JrRXJyb3IiKSwgIlRoZSByZWFkeSBwcm9taXNl
IGlzIHJlamVjdGVkIHdpdGggYSBOZXR3b3JrRXJyb3IuIikKKyAgICApOworfSwgYDxtb2RlbD4g
cmVqZWN0cyB0aGUgcmVhZHkgcHJvbWlzZSB3aGVuIHByb3ZpZGVkIHdpdGggYW4gdW5rbm93biBy
ZXNvdXJlLmApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgW21vZGVs
LCBzb3VyY2VdID0gY3JlYXRlTW9kZWxBbmRTb3VyY2UodCwgInJlc291cmNlcy9oZWFydC51c2R6
Iik7CisgICAgY29uc3QgbW9kZWxSZWFkeSA9IG1vZGVsLnJlYWR5OworCisgICAgc291cmNlLnJl
bW92ZSgpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKG1vZGVsLnJlYWR5LCBtb2RlbFJlYWR5LCAi
UmVtb3ZpbmcgdGhlIDxzb3VyY2U+IGNoaWxkIHJlc2V0cyB0aGUgcmVhZHkgcHJvbWlzZS4iKTsK
KworICAgIHJldHVybiBtb2RlbFJlYWR5LnRoZW4oCisgICAgICAgIHZhbHVlID0+IGFzc2VydF91
bnJlYWNoZWQoIlVuZXhwZWN0ZWQgcmVhZHkgcHJvbWlzZSByZXNvbHV0aW9uLiIpLAorICAgICAg
ICByZWFzb24gPT4gYXNzZXJ0X3RydWUocmVhc29uLnRvU3RyaW5nKCkuaW5jbHVkZXMoIkFib3J0
RXJyb3IiKSwgIlRoZSByZWFkeSBwcm9taXNlIGlzIHJlamVjdGVkIHdpdGggYSBOZXR3b3JrRXJy
b3IuIikKKyAgICApOworfSwgYDxtb2RlbD4gcmVqZWN0cyB0aGUgcmVhZHkgcHJvbWlzZSB3aGVu
IGl0cyByZXNvdXJjZSBsb2FkIGlzIGFib3J0ZWQuYCk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgICBjb25zdCBbbW9kZWwsIHNvdXJjZV0gPSBjcmVhdGVNb2RlbEFuZFNvdXJjZSh0
LCAicmVzb3VyY2VzL2N1YmUudXNkeiIpOworICAgIGF3YWl0IG1vZGVsLnJlYWR5OworfSwgYDxt
b2RlbD4gcmVzb2x2ZXMgdGhlIHJlYWR5IHByb21pc2Ugd2hlbiBwcm92aWRlZCB3aXRoIGEga25v
d24gcmVzb3VyY2UuYCk7CiAKLSAgICBtb2RlbC5yZWFkeS50aGVuKHZhbHVlID0+IHsKLSAgICAg
ICAgcmVzdWx0LnRleHRDb250ZW50ID0gYFBhc3NlZGA7Ci0gICAgfSwgcmVhc29uID0+IHsKLSAg
ICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gYEZhaWxlZC4gTW9kZWwgZGlkIG5vdCBsb2FkOiAk
e3JlYXNvbn1gOwotICAgIH0pLmZpbmFsbHkoKCkgPT4geyAKLSAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfSk7
CiA8L3NjcmlwdD4KIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21v
ZGVsLWVsZW1lbnQvcmVzb3VyY2VzL21vZGVsLWVsZW1lbnQtdGVzdC11dGlscy5qcyBiL0xheW91
dFRlc3RzL21vZGVsLWVsZW1lbnQvcmVzb3VyY2VzL21vZGVsLWVsZW1lbnQtdGVzdC11dGlscy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wYTUzNGNjYzBmYjAxMTRlNDIzNWFhNGUxMDU1MjY4ZWRkZDdlY2MwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9yZXNvdXJjZXMvbW9k
ZWwtZWxlbWVudC10ZXN0LXV0aWxzLmpzCkBAIC0wLDAgKzEsMTQgQEAKKworY29uc3QgY3JlYXRl
TW9kZWxBbmRTb3VyY2UgPSAodGVzdCwgc3JjKSA9PiB7CisgICAgY29uc3QgbW9kZWwgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJtb2RlbCIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQobW9kZWwpOworCisgICAgY29uc3Qgc291cmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c291cmNlIik7CisgICAgaWYgKHNyYykKKyAgICAgICAgc291cmNlLnNyYyA9IHNyYzsKKyAgICBt
b2RlbC5hcHBlbmRDaGlsZChzb3VyY2UpOworCisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBt
b2RlbC5yZW1vdmUoKSk7CisKKyAgICByZXR1cm4gW21vZGVsLCBzb3VyY2VdOworfTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMGUzZTdiYjdmNTcyY2Yx
YmI0NzNmMDM1MzU3ZmUxNzkxNWJkMGNiNC4uN2JjMGVmZDBiMTkwMWE5ZTAzY2JjNzdhYmExYzQ3
NTBjNjdiZDA5ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTIyODIsOCArMjI4Miw4IEBAIHdlYmtpdC5vcmcvYi8yMjgzMTEgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjb3BpbmcvY3NzLXNjb3BpbmctCiAjIHdlYmtpdC5v
cmcvYi8yMjgyMDAgQWRqdXN0aW5nIHRlc3QgZXhwZWN0YXRpb25zIGZvciBNb250ZXJleSBvbiBP
cGVuIFNvdXJjZSA8cmRhcjovLzgwMzQ0MTM4PjoKIFsgTW9udGVyZXkgXSBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Nvbm5lY3Rpb24tcG9vbC9uZXR3b3JrLXBhcnRpdGlv
bi1rZXkuaHRtbCBbIEZhaWx1cmUgXQogCi0jIHdlYmtpdC5vcmcvYi8yMjgyMDAgU2V0dGluZyBt
dWx0aXBsZSB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgTW9uZXRlcnkgb24gT3BlblNvdXJjZToKLVsg
TW9udGVyZXkgXSBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZ3JhcGhpY3MtbGF5ZXJzLW9w
YWNpdHkuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisjIHdlYmtpdC5vcmcvYi8yMjgyMDAgU2V0dGlu
ZyBtdWx0aXBsZSB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgTW9udGVyZXkgb24gT3BlblNvdXJjZToK
K1sgTW9udGVyZXkrIF0gbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWdyYXBoaWNzLWxheWVy
cy1vcGFjaXR5Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogWyBNb250ZXJleSBEZWJ1ZyBhcm02NCBd
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXJlc3RhcnRJY2UuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBDcmFzaCBdCiAKICNyZGFyOi8v
ODIwNTMyMTAgKFtHdWFyZC1NYWxsb2NdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWF0aG1sL3JlbGF0aW9ucy9odG1sNS10cmVlL2Rpc3BsYXktMi5odG1sIGlzIGEgZmxha3kgZmFp
bHVyZSkKQEAgLTI0MjgsMyArMjQyOCw4IEBAIHBsYXRmb3JtL21hYy9wbHVnaW5zL2NvbnZlcnQt
cG9pbnQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIyNjgyNiBbIE1vbnRlcmV5IF0gaHR0
cC90ZXN0cy9zc2wvYXBwbGVwYXkvQXBwbGVQYXlCdXR0b24uaHRtbCBbIEZhaWx1cmUgXQogCiB3
ZWJraXQub3JnL2IvMjIxMjMwIFsgQmlnU3VyKyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFkZHNvdXJjZWJ1ZmZlci5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KKworIyA8bW9kZWw+IHRlc3RzIGludm9sdmluZyB0aGUgcmVhZHkgcHJvbWlz
ZSBjYW4gb25seSB3b3JrIG9uIE1vbnRlcmV5IGFuZCB1cAorWyBDYXRhbGluYSBCaWdTdXIgXSBt
b2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHkuaHRtbCBbIFNraXAgXQorWyBDYXRhbGlu
YSBCaWdTdXIgXSBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZ3JhcGhpY3MtbGF5ZXJzLmh0
bWwgWyBTa2lwIF0KK1sgQ2F0YWxpbmEgQmlnU3VyIF0gbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVt
ZW50LWdyYXBoaWNzLWxheWVycy1vcGFjaXR5Lmh0bWwgWyBTa2lwIF0K
</data>
<flag name="review"
          id="471517"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="471643"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446333</attachid>
            <date>2021-12-08 01:33:26 -0800</date>
            <delta_ts>2021-12-09 03:15:23 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233706-20211208103325.patch</filename>
            <type>text/plain</type>
            <size>26971</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjc1NzhjN2UxNWI3Y2Rm
YjA0NzViYjg2NmYyMzYyNTFmYzA5YTBiNy4uNjFhMmFlMjYzNmRmZWQyNGNlMTQ3YjYxNjk0M2M5
YTQ4ODVjNWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTEyLTA3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQWRkIGxv
YWQgYW5kIGVycm9yIGV2ZW50cyB0byBkaXN0aW5ndWlzaCByZXNvdXJjZSBsb2FkIGZyb20gbW9k
ZWwgcmVhZGluZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzM3MDYKKyAgICAgICAgcmRhcjovLzg1OTIyNjk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQ2hyaXMgRHVtZXogYW5kIERlYW4gSmFja3Nvbi4KKworICAgICAgICBUZXN0OiBtb2RlbC1l
bGVtZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRzLmh0bWwKKworICAgICAg
ICBQcmlvciB0byB0aGlzIHBhdGNoLCA8bW9kZWw+IGVsZW1lbnRzIGhhZCBhICJyZWFkeSIgcHJv
bWlzZSB3aGljaCByZXNvbHZlZCBvbmNlIHRoZSByZXNvdXJjZSBoYWQgYmVlbiBsb2FkZWQuCisg
ICAgICAgIEhvd2V2ZXIsIHRoaXMgcHJvbWlzZSBzaG91bGQgYmUgdXNlZCB3aGVuIHRoZSA8bW9k
ZWw+IGlzIGZ1bGx5IHJlYWR5LCBhbmQgdGhpcyBpcyBkb25lIG9uIG1hY09TIGFuZCBpT1MgYXN5
bmNocm9ub3VzbHkKKyAgICAgICAgYWZ0ZXIgdGhlIHJlc291cmNlIGhhcyBiZWVuIGxvYWRlZCBi
eSB0aGUgc3VwcG9ydGluZyBBUlFMIGZyYW1ld29yay4gU28gd2UgbmVlZCBhIHdheSB0byBtb25p
dG9yIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBvZgorICAgICAgICB0aGUgcmVzb3VyY2UgbG9hZCBzcGVj
aWZpY2FsbHkuCisKKyAgICAgICAgVG8gdGhhdCBlbmQsIGFuZCBtYXRjaGluZyB0aGUgPGltZz4g
ZWxlbWVudCwgd2UgZGlzcGF0Y2ggImxvYWQiIGFuZCAiZXJyb3IiIGV2ZW50cyBvbiA8bW9kZWw+
IGVsZW1lbnRzIGFuZCBhZGQgYQorICAgICAgICAiY29tcGxldGUiIHByb3BlcnR5IHRvIGluZGlj
YXRlIHdoZXRoZXIgdGhlIHJlc291cmNlIGlzIGxvYWRlZC4KKworICAgICAgICBNZWFud2hpbGUs
IHRoZSAicmVhZHkiIHByb21pc2UgaXMgbm93IHJlc29sdmVkIHdoZW4gdGhlIG1vZGVsIGlzIGZ1
bGx5IGxvYWRlZCBieSB0aGUgc3VwcG9ydGluZyBmcmFtZXdvcmssIGluZGljYXRpbmcKKyAgICAg
ICAgdGhhdCBmdXJ0aGVyIEFQSXMgYXJlIHNhZmUgdG8gdXNlLgorCisgICAgICAgIFNpbmNlIGNy
ZWF0aW5nIHRoZSBzdXBwb3J0IEFSUUwgb2JqZWN0IGZvciBtYWNPUyBhbmQgaU9TIGFsc28gcmVx
dWlyZXMgdGhlIDxtb2RlbD4gZWxlbWVudCdzIHJlbmRlcmVyIGJlaW5nIGF2YWlsYWJsZSwKKyAg
ICAgICAgd2Ugb3B0IGludG8gImN1c3RvbSBzdHlsZSByZXNvbHZlIGNhbGxiYWNrcyIgc28gdGhh
dCB3ZSBtYXkgaW1wbGVtZW50IGRpZEF0dGFjaFJlbmRlcmVycygpIG9uIEhUTUxNb2RlbEVsZW1l
bnQgYW5kIGtlZXAKKyAgICAgICAgdHJhY2sgb2YgcmVuZGVyZXIgYXZhaWxhYmlsaXR5IGJlZm9y
ZSBhdHRlbXB0aW5nIHRvIGNyZWF0ZSB0aGUgTW9kZWxQbGF5ZXIuCisKKyAgICAgICAgKiBNb2R1
bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTW9kZWxFbGVtZW50OjpIVE1MTW9kZWxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNb2RlbEVsZW1lbnQ6OnNldFNvdXJjZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TW9kZWxFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1vZGVsRWxlbWVudDo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1v
ZGVsRWxlbWVudDo6bW9kZWxEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVs
RWxlbWVudDo6Y3JlYXRlTW9kZWxQbGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVs
RWxlbWVudDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxF
bGVtZW50OjpkaWRGYWlsTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVt
ZW50OjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
b2RlbEVsZW1lbnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmg6CisgICAgICAgICogTW9k
dWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaWRsOgorCiAyMDIxLTEyLTA4ICBE
aWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TihyMjg2NTU2KTogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGlzIG9ubHkgYXZh
aWxhYmxlIGluIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCmluZGV4IDMwOWMwMjY0M2Y1YTdhZTlmZWMw
OGExNGViMjEyMjQwOWIxZjg5ZTAuLjhkYzJhYzY1MDY5M2I2NWYwODkwODRjZGZiZmEyMTg0ZDRh
MzQ3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9I
VE1MTW9kZWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKQEAgLTY1LDggKzY1LDEwIEBAIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChIVE1MTW9kZWxFbGVtZW50KTsKIAogSFRNTE1vZGVsRWxlbWVudDo6
SFRNTE1vZGVsRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKKyAgICAsIEFj
dGl2ZURPTU9iamVjdChkb2N1bWVudCkKICAgICAsIG1fcmVhZHlQcm9taXNlIHsgbWFrZVVuaXF1
ZVJlZjxSZWFkeVByb21pc2U+KCp0aGlzLCAmSFRNTE1vZGVsRWxlbWVudDo6cmVhZHlQcm9taXNl
UmVzb2x2ZSkgfQogeworICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwog
fQogCiBIVE1MTW9kZWxFbGVtZW50Ojp+SFRNTE1vZGVsRWxlbWVudCgpCkBAIC03OSw3ICs4MSw5
IEBAIEhUTUxNb2RlbEVsZW1lbnQ6On5IVE1MTW9kZWxFbGVtZW50KCkKIAogUmVmPEhUTUxNb2Rl
bEVsZW1lbnQ+IEhUTUxNb2RlbEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SFRNTE1vZGVsRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIGF1dG8gbW9kZWwgPSBh
ZG9wdFJlZigqbmV3IEhUTUxNb2RlbEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICBt
b2RlbC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIG1vZGVsOwogfQogCiBSZWZQdHI8
TW9kZWw+IEhUTUxNb2RlbEVsZW1lbnQ6Om1vZGVsKCkgY29uc3QKQEAgLTEzMSw5ICsxMzUsMTIg
QEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpzZXRTb3VyY2VVUkwoY29uc3QgVVJMJiB1cmwpCiAg
ICAgICAgIG1fcmVhZHlQcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9KTsK
IAogICAgIG1fcmVhZHlQcm9taXNlID0gbWFrZVVuaXF1ZVJlZjxSZWFkeVByb21pc2U+KCp0aGlz
LCAmSFRNTE1vZGVsRWxlbWVudDo6cmVhZHlQcm9taXNlUmVzb2x2ZSk7CisgICAgbV9zaG91bGRD
cmVhdGVNb2RlbFBsYXllclVwb25SZW5kZXJlckF0dGFjaG1lbnQgPSBmYWxzZTsKIAotICAgIGlm
IChtX3NvdXJjZVVSTC5pc0VtcHR5KCkpCisgICAgaWYgKG1fc291cmNlVVJMLmlzRW1wdHkoKSkg
eworICAgICAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6OkRP
TU1hbmlwdWxhdGlvbiwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgRXZl
bnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CiAgICAgb3B0
aW9ucy5kZXN0aW5hdGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Ok1vZGVsOwpAQCAt
MTQ1LDYgKzE1Miw3IEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6c2V0U291cmNlVVJMKGNvbnN0
IFVSTCYgdXJsKQogCiAgICAgYXV0byByZXNvdXJjZSA9IGRvY3VtZW50KCkuY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS5yZXF1ZXN0TW9kZWxSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpKTsKICAgICBp
ZiAoIXJlc291cmNlLmhhc192YWx1ZSgpKSB7CisgICAgICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hF
dmVudCgqdGhpcywgVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKICAgICAgICAgbV9yZWFkeVByb21pc2UtPnJlamVjdChFeGNlcHRpb24g
eyBOZXR3b3JrRXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNzUsNiArMTgz
LDE1IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MTW9kZWxFbGVtZW50OjpjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzCiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlck1vZGVsPigqdGhpcywgV1RGTW92ZShzdHlsZSkpOwogfQogCit2b2lkIEhUTUxNb2Rl
bEVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycygpCit7CisgICAgaWYgKCFtX3Nob3VsZENyZWF0
ZU1vZGVsUGxheWVyVXBvblJlbmRlcmVyQXR0YWNobWVudCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9zaG91bGRDcmVhdGVNb2RlbFBsYXllclVwb25SZW5kZXJlckF0dGFjaG1lbnQgPSBmYWxz
ZTsKKyAgICBjcmVhdGVNb2RlbFBsYXllcigpOworfQorCiAvLyBNQVJLOiAtIENhY2hlZFJhd1Jl
c291cmNlQ2xpZW50CiAKIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6ZGF0YVJlY2VpdmVkKENhY2hl
ZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgdWludDhfdCogZGF0YSwgaW50IGRhdGFMZW5ndGgp
CkBAIC0xOTcsNiArMjE0LDggQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50Ojpub3RpZnlGaW5pc2hl
ZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IE5ldHdvcmtMb2EKICAgICBpZiAocmVz
b3VyY2UubG9hZEZhaWxlZE9yQ2FuY2VsZWQoKSkgewogICAgICAgICBtX2RhdGEgPSBudWxscHRy
OwogCisgICAgICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6
RE9NTWFuaXB1bGF0aW9uLCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBF
dmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKwogICAgICAg
ICBpbnZhbGlkYXRlUmVzb3VyY2VIYW5kbGVBbmRVcGRhdGVSZW5kZXJlcigpOwogCiAgICAgICAg
IG1fcmVhZHlQcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgTmV0d29ya0Vycm9yIH0pOwpAQCAt
MjA2LDkgKzIyNSw5IEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2Fj
aGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBOZXR3b3JrTG9hCiAgICAgbV9kYXRhQ29tcGxl
dGUgPSB0cnVlOwogICAgIG1fbW9kZWwgPSBNb2RlbDo6Y3JlYXRlKG1fZGF0YS5yZWxlYXNlTm9u
TnVsbCgpLmdldCgpLCByZXNvdXJjZS5taW1lVHlwZSgpLCByZXNvdXJjZS51cmwoKSk7CiAKLSAg
ICBpbnZhbGlkYXRlUmVzb3VyY2VIYW5kbGVBbmRVcGRhdGVSZW5kZXJlcigpOworICAgIHF1ZXVl
VGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5v
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogCi0gICAgbV9yZWFkeVByb21pc2UtPnJlc29s
dmUoKnRoaXMpOworICAgIGludmFsaWRhdGVSZXNvdXJjZUhhbmRsZUFuZFVwZGF0ZVJlbmRlcmVy
KCk7CiAKICAgICBtb2RlbERpZENoYW5nZSgpOwogfQpAQCAtMjE3LDI1ICsyMzYsMzQgQEAgdm9p
ZCBIVE1MTW9kZWxFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3Vy
Y2UsIGNvbnN0IE5ldHdvcmtMb2EKIAogdm9pZCBIVE1MTW9kZWxFbGVtZW50Ojptb2RlbERpZENo
YW5nZSgpCiB7Ci0gICAgLy8gRklYTUU6IEZvciB0aGUgZWFybHkgcmV0dXJucyBoZXJlLCB3ZSBz
aG91bGQgcHJvYmFibHkgaW5mb3JtIHRoZSBwYWdlIHRoYXQgdGhpbmdzIGhhdmUKLSAgICAvLyBm
YWlsZWQgdG8gcmVuZGVyLiBGb3IgdGhlIGNhc2Ugb2Ygbm8tcmVuZGVyZXIsIHdlIHNob3VsZCBw
cm9iYWJseSBhbHNvIGJ1aWxkIHRoZSBtb2RlbAotICAgIC8vIHdoZW4vaWYgYSByZW5kZXJlciBp
cyBjcmVhdGVkLgotCi0gICAgYXV0byBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCk7Ci0gICAgaWYg
KCFwYWdlKQorICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKTsKKyAgICBpZiAoIXBh
Z2UpIHsKKyAgICAgICAgbV9yZWFkeVByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBBYm9ydEVy
cm9yIH0pOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgYXV0byogcmVuZGVyZXIgPSB0
aGlzLT5yZW5kZXJlcigpOwotICAgIGlmICghcmVuZGVyZXIpCisgICAgaWYgKCFyZW5kZXJlcikg
eworICAgICAgICBtX3Nob3VsZENyZWF0ZU1vZGVsUGxheWVyVXBvblJlbmRlcmVyQXR0YWNobWVu
dCA9IHRydWU7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICBtX21vZGVsUGxheWVyID0g
cGFnZS0+bW9kZWxQbGF5ZXJQcm92aWRlcigpLmNyZWF0ZU1vZGVsUGxheWVyKCp0aGlzKTsKLSAg
ICBpZiAoIW1fbW9kZWxQbGF5ZXIpCisgICAgY3JlYXRlTW9kZWxQbGF5ZXIoKTsKK30KKwordm9p
ZCBIVE1MTW9kZWxFbGVtZW50OjpjcmVhdGVNb2RlbFBsYXllcigpCit7CisgICAgQVNTRVJUKGRv
Y3VtZW50KCkucGFnZSgpKTsKKyAgICBtX21vZGVsUGxheWVyID0gZG9jdW1lbnQoKS5wYWdlKCkt
Pm1vZGVsUGxheWVyUHJvdmlkZXIoKS5jcmVhdGVNb2RlbFBsYXllcigqdGhpcyk7CisgICAgaWYg
KCFtX21vZGVsUGxheWVyKSB7CisgICAgICAgIG1fcmVhZHlQcm9taXNlLT5yZWplY3QoRXhjZXB0
aW9uIHsgQWJvcnRFcnJvciB9KTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIC8vIEZJ
WE1FOiBXZSBuZWVkIHRvIHRlbGwgdGhlIHBsYXllciBpZiB0aGUgc2l6ZSBjaGFuZ2VzIGFzIHdl
bGwsIHNvIHBhc3NpbmcgdGhpcwogICAgIC8vIGluIHdpdGggbG9hZCBwcm9iYWJseSBkb2Vzbid0
IG1ha2Ugc2Vuc2UuCi0gICAgYXV0byBzaXplID0gcmVuZGVyZXItPmFic29sdXRlQm91bmRpbmdC
b3hSZWN0KGZhbHNlKS5zaXplKCk7CisgICAgQVNTRVJUKHJlbmRlcmVyKCkpOworICAgIGF1dG8g
c2l6ZSA9IHJlbmRlcmVyKCktPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KGZhbHNlKS5zaXplKCk7
CiAgICAgbV9tb2RlbFBsYXllci0+bG9hZCgqbV9tb2RlbCwgc2l6ZSk7CiB9CiAKQEAgLTI1NSwx
MSArMjgzLDE0IEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6ZGlkRmluaXNoTG9hZGluZyhNb2Rl
bFBsYXllciYgbW9kZWxQbGF5ZXIpCiAKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5y
ZW5kZXJlcigpKQogICAgICAgICByZW5kZXJlci0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKKworICAg
IG1fcmVhZHlQcm9taXNlLT5yZXNvbHZlKCp0aGlzKTsKIH0KIAogdm9pZCBIVE1MTW9kZWxFbGVt
ZW50OjpkaWRGYWlsTG9hZGluZyhNb2RlbFBsYXllciYgbW9kZWxQbGF5ZXIsIGNvbnN0IFJlc291
cmNlRXJyb3ImKQogewogICAgIEFTU0VSVF9VTlVTRUQobW9kZWxQbGF5ZXIsICZtb2RlbFBsYXll
ciA9PSBtX21vZGVsUGxheWVyKTsKKyAgICBtX3JlYWR5UHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlv
biB7IEFib3J0RXJyb3IgfSk7CiB9CiAKIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBI
VE1MTW9kZWxFbGVtZW50OjpwbGF0Zm9ybUxheWVySUQoKQpAQCAtNTUyLDYgKzU4MywxOCBAQCB2
b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OnNldElzTXV0ZWQoYm9vbCBpc011dGVkLCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taQogICAgIH0pOwogfQogCitjb25zdCBjaGFyKiBIVE1MTW9k
ZWxFbGVtZW50OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIkhU
TUxNb2RlbEVsZW1lbnQiOworfQorCitib29sIEhUTUxNb2RlbEVsZW1lbnQ6OnZpcnR1YWxIYXNQ
ZW5kaW5nQWN0aXZpdHkoKSBjb25zdAoreworICAgIC8vIFdlIG5lZWQgdG8gZW5zdXJlIHRoZSBK
UyB3cmFwcGVyIGlzIGtlcHQgYWxpdmUgaWYgYSBsb2FkIGlzIGluIHByb2dyZXNzIGFuZCB3ZSBt
YXkgeWV0IGRpc3BhdGNoCisgICAgLy8gImxvYWQiIG9yICJlcnJvciIgZXZlbnRzLCBpZS4gYXMg
bG9uZyBhcyB3ZSBoYXZlIGEgcmVzb3VyY2UsIG1lYW5pbmcgd2UgYXJlIGluIHRoZSBwcm9jZXNz
IG9mIGxvYWRpbmcuCisgICAgcmV0dXJuIG1fcmVzb3VyY2U7Cit9CisKICNpZiBQTEFURk9STShD
T0NPQSkKIFZlY3RvcjxSZXRhaW5QdHI8aWQ+PiBIVE1MTW9kZWxFbGVtZW50OjphY2Nlc3NpYmls
aXR5Q2hpbGRyZW4oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKaW5kZXggMDVhMWNkYWEzZTE0ODc3YTBhZTQ2
NWI2MzQ5YWE1YmJiMWFmMmM4Mi4uOWVhYWU3NzAxNTcwOGY3YmZiNDc0ZWVhZmZhNzEzMDc0Y2Q4
OTUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hU
TUxNb2RlbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvSFRNTE1vZGVsRWxlbWVudC5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTU9E
RUxfRUxFTUVOVCkKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgpAQCAtNDksNyArNTAsNyBAQCBjbGFz
cyBNb3VzZUV2ZW50OwogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlz
ZURlZmVycmVkOwogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZVBy
b3h5V2l0aFJlc29sdmVDYWxsYmFjazsKIAotY2xhc3MgSFRNTE1vZGVsRWxlbWVudCBmaW5hbCA6
IHB1YmxpYyBIVE1MRWxlbWVudCwgcHJpdmF0ZSBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCwgcHVi
bGljIE1vZGVsUGxheWVyQ2xpZW50IHsKK2NsYXNzIEhUTUxNb2RlbEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgSFRNTEVsZW1lbnQsIHByaXZhdGUgQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQsIHB1Ymxp
YyBNb2RlbFBsYXllckNsaWVudCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChIVE1MTW9kZWxFbGVtZW50KTsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPEhUTUxNb2RlbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKQEAgLTU3LDYgKzU4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzb3VyY2VzQ2hhbmdl
ZCgpOwogICAgIGNvbnN0IFVSTCYgY3VycmVudFNyYygpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
VVJMOyB9CisgICAgYm9vbCBjb21wbGV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YUNvbXBsZXRl
OyB9CiAKICAgICAvLyBNQVJLOiBET00gRnVuY3Rpb25zIGFuZCBBdHRyaWJ1dGVzCiAKQEAgLTEw
NiwxNCArMTA4LDIwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldFNvdXJjZVVSTChjb25zdCBV
UkwmKTsKICAgICB2b2lkIG1vZGVsRGlkQ2hhbmdlKCk7CisgICAgdm9pZCBjcmVhdGVNb2RlbFBs
YXllcigpOwogCiAgICAgSFRNTE1vZGVsRWxlbWVudCYgcmVhZHlQcm9taXNlUmVzb2x2ZSgpOwog
CisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgp
IGNvbnN0IGZpbmFsOworCiAgICAgLy8gRE9NIG92ZXJyaWRlcy4KICAgICB2b2lkIGRpZE1vdmVU
b05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50
KSBmaW5hbDsKIAogICAgIC8vIFJlbmRlcmluZyBvdmVycmlkZXMuCiAgICAgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygp
IGZpbmFsOwogCiAgICAgLy8gQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQgb3ZlcnJpZGVzLgogICAg
IHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlJiwgY29uc3QgdWludDhfdCogZGF0YSwg
aW50IGRhdGFMZW5ndGgpIGZpbmFsOwpAQCAtMTM4LDYgKzE0Niw3IEBAIHByaXZhdGU6CiAgICAg
VW5pcXVlUmVmPFJlYWR5UHJvbWlzZT4gbV9yZWFkeVByb21pc2U7CiAgICAgYm9vbCBtX2RhdGFD
b21wbGV0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzRHJhZ2dpbmcgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9zaG91bGRDcmVhdGVNb2RlbFBsYXllclVwb25SZW5kZXJlckF0dGFjaG1lbnQgeyBm
YWxzZSB9OwogCiAgICAgUmVmUHRyPE1vZGVsUGxheWVyPiBtX21vZGVsUGxheWVyOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmlkbAppbmRleCAzZmY2Y2U5NjZkZTNmMGI3YmRmODZiNWZmMmU1ZGEwNzU1MGQ2
YTE1Li40NWI4ZmQyNmM3NGZlYzNiOTIwYzM1NDg0MDBjZDcyZTgyYzU4ZmVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVs
ZW1lbnQuaWRsCkBAIC0zMCw2ICszMCw3IEBACiBdIGludGVyZmFjZSBIVE1MTW9kZWxFbGVtZW50
IDogSFRNTEVsZW1lbnQgewogICAgIFtVUkxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcg
Y3VycmVudFNyYzsKIAorICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGNvbXBsZXRlOwog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPEhUTUxNb2RlbEVsZW1lbnQ+IHJlYWR5Owog
CiAgICAgdW5kZWZpbmVkIGVudGVyRnVsbHNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg1YWU3NGFiYjI1ZTU3
MmNjZjMxOTMzNzNmNzIzZDVhOGU0MDA0NDIuLjMxOTM5Nzk3NzY0ZDQ3ODVhZDNlNTdjMTExYmY1
MGQ3ZTE2N2U5ZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMS0xMi0wNyAgQW50b2luZSBR
dWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBbTW9kZWxdIEFkZCBsb2FkIGFu
ZCBlcnJvciBldmVudHMgdG8gZGlzdGluZ3Vpc2ggcmVzb3VyY2UgbG9hZCBmcm9tIG1vZGVsIHJl
YWRpbmVzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMzNzA2CisgICAgICAgIHJkYXI6Ly84NTkyMjY5NworICAgICAgICAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQ2hyaXMgRHVtZXogYW5kIERlYW4gSmFja3Nvbi4KKworICAgICAgICBSZW1vdmUgZXhp
c3RpbmcgdGVzdHMgYXJvdW5kIHJlc291cmNlIGxvYWRpbmcgYW5kIHJlY3JlYXRlIHRoZW0gaW4g
dGVybXMgb2YgImxvYWQiIGFuZCAiZXJyb3IiCisgICAgICAgIGV2ZW50cyBpbiBtb2RlbC1lbGVt
ZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRzLmh0bWwgYW5kIGluIHRlcm1z
IG9mIHRoZSByZWFkeQorICAgICAgICBwcm9taXNlIGluIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxl
bWVudC1yZWFkeS5odG1sLgorCisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50
LWVycm9yLWFuZC1sb2FkLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1v
ZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1h
Ym9ydGVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtb2RlbC1lbGVtZW50L21v
ZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
bW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHkt
bG9hZC1mYWlsZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtb2RlbC1lbGVtZW50L21vZGVs
LWVsZW1lbnQtcmVhZHkuaHRtbDoKKyAgICAgICAgKiBtb2RlbC1lbGVtZW50L3Jlc291cmNlcy9t
b2RlbC1lbGVtZW50LXRlc3QtdXRpbHMuanM6IEFkZGVkLgorICAgICAgICAoY29uc3QuY3JlYXRl
TW9kZWxBbmRTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKwog
MjAyMS0xMi0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
W0NTUyBDYXNjYWRlIExheWVyc10gaW1wb3J0IHNvbWUgbmV3IFdQVHMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVu
dHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50
LWVycm9yLWFuZC1sb2FkLWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZiZjkwODMx
MzY1YmIwNGMwYmIwZGI2NWQ3N2ZjMzQ0NzlkNjU3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIDxtb2RlbD4gZGlzcGF0Y2hlcyBh
biAiZXJyb3IiIGV2ZW50IHdoZW4gaXRzIHJlc291cmNlIGxvYWQgaXMgYWJvcnRlZCBiZWZvcmUg
Y29tcGxldGlvbi4KK1BBU1MgPG1vZGVsPiBkaXNwYXRjaGVzIGFuICJlcnJvciIgZXZlbnQgd2hl
biBpdHMgc3BlY2lmaWVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0LgorUEFTUyA8bW9kZWw+IGRp
c3BhdGNoZXMgYSAibG9hZCIgZXZlbnQgd2hlbiBpdHMgcmVzb3VyY2UgaXMgc3VjY2Vzc2Z1bGx5
IGxvYWRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1l
bGVtZW50LWVycm9yLWFuZC1sb2FkLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxl
bWVudC9tb2RlbC1lbGVtZW50LWVycm9yLWFuZC1sb2FkLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA5YTViZmMxMjI4YzBkNTI3MDYwMTY2ZjAzYjQ4ZGQ4NDczZTJlNTYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxv
YWQtZXZlbnRzLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+Jmx0O21vZGVsPiBsb2FkIGFuZCBlcnJvciBldmVudHM8
L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbW9kZWwtZWxlbWVudC10ZXN0LXV0aWxzLmpz
Ij48L3NjcmlwdD4KKzxib2R5PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgbW9k
ZWxfbG9hZF90ZXN0ID0gKGV4cGVjdGVkRXZlbnQsIGV4ZWN1dG9yLCBkZXNjcmlwdGlvbikgPT4g
eworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IFttb2RlbCwgc291cmNlXSA9
IGNyZWF0ZU1vZGVsQW5kU291cmNlKHQpOworCisgICAgICAgICAgICBjb25zdCBoYW5kbGVFdmVu
dCA9IGV2ZW50ID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gImxvYWQi
KQorICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShtb2RlbC5jb21wbGV0ZSwgYG1vZGVs
LmNvbXBsZXRlIGlzIHRydWUgdXBvbiByZWNlaXZpbmcgdGhlICJsb2FkIiBldmVudC5gKTsKKyAg
ICAgICAgICAgICAgICBlbHNlIGlmIChldmVudC50eXBlID09PSAiZXJyb3IiKQorICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UobW9kZWwuY29tcGxldGUsIGBtb2RlbC5jb21wbGV0ZSBp
cyBmYWxzZSB1cG9uIHJlY2VpdmluZyB0aGUgImVycm9yIiBldmVudC5gKTsKKworICAgICAgICAg
ICAgICAgIGlmIChldmVudC50eXBlID09PSBleHBlY3RlZEV2ZW50KQorICAgICAgICAgICAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICByZWplY3QoYHJlY2VpdmVkIHVuZXhwZWN0ZWQgZXZlbnQ6ICR7ZXZlbnQudHlwZX1gKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1vZGVsLmNvbXBsZXRlLCAi
bW9kZWwuY29tcGxldGUgaXMgZmFsc2UgYmVmb3JlIHRoZSBsb2FkIGlzIGluaXRpYXRlZC4iKTsK
KworICAgICAgICAgICAgbW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGhhbmRsZUV2ZW50
KTsKKyAgICAgICAgICAgIG1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgaGFuZGxlRXZl
bnQpOworCisgICAgICAgICAgICBleGVjdXRvcihzb3VyY2UpOworICAgICAgICB9KTsKKyAgICB9
LCBkZXNjcmlwdGlvbik7Cit9OworCittb2RlbF9sb2FkX3Rlc3QoImVycm9yIiwgc291cmNlID0+
IHsKKyAgICBzb3VyY2Uuc3JjID0gInJlc291cmNlcy9oZWFydC51c2R6IjsKKyAgICBzb3VyY2Uu
cmVtb3ZlKCk7Cit9LCBgPG1vZGVsPiBkaXNwYXRjaGVzIGFuICJlcnJvciIgZXZlbnQgd2hlbiBp
dHMgcmVzb3VyY2UgbG9hZCBpcyBhYm9ydGVkIGJlZm9yZSBjb21wbGV0aW9uLmApOworCittb2Rl
bF9sb2FkX3Rlc3QoImVycm9yIiwgc291cmNlID0+IHsKKyAgICBzb3VyY2Uuc3JjID0gInJlc291
cmNlcy9kb2VzLW5vdC1leGlzdC51c2R6IjsKK30sIGA8bW9kZWw+IGRpc3BhdGNoZXMgYW4gImVy
cm9yIiBldmVudCB3aGVuIGl0cyBzcGVjaWZpZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QuYCk7
CisKK21vZGVsX2xvYWRfdGVzdCgibG9hZCIsIHNvdXJjZSA9PiB7CisgICAgc291cmNlLnNyYyA9
ICJyZXNvdXJjZXMvY3ViZS51c2R6IjsKK30sIGA8bW9kZWw+IGRpc3BhdGNoZXMgYSAibG9hZCIg
ZXZlbnQgd2hlbiBpdHMgcmVzb3VyY2UgaXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZC5gKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21v
ZGVsLWVsZW1lbnQtcmVhZHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVu
dC9tb2RlbC1lbGVtZW50LXJlYWR5LWV4cGVjdGVkLnR4dAppbmRleCBmODdiMjQ1MjRhMTg4MWRm
Y2E1YTYyNWNjZTQxZmMwNTU5ZTAyNDY2Li44N2YyOTc2NDljZWZiYWI1NjNmNTMzYzJhYzM2MTU5
YTFiMTdiMmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVs
ZW1lbnQtcmVhZHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQv
bW9kZWwtZWxlbWVudC1yZWFkeS1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw1IEBACi1UaGlzIHRl
c3QgcGFzc2VzIGlmIHlvdSBzZWUgdGhlIHdvcmQgIlBhc3NlZCIgYmVsb3c6CiAKLVBhc3NlZAor
UEFTUyA8bW9kZWw+IHJlamVjdHMgdGhlIHJlYWR5IHByb21pc2Ugd2hlbiBwcm92aWRlZCB3aXRo
IGFuIHVua25vd24gcmVzb3VyZS4KK1BBU1MgPG1vZGVsPiByZWplY3RzIHRoZSByZWFkeSBwcm9t
aXNlIHdoZW4gaXRzIHJlc291cmNlIGxvYWQgaXMgYWJvcnRlZC4KK1BBU1MgPG1vZGVsPiByZXNv
bHZlcyB0aGUgcmVhZHkgcHJvbWlzZSB3aGVuIHByb3ZpZGVkIHdpdGggYSBrbm93biByZXNvdXJj
ZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50
LXJlYWR5LWxvYWQtYWJvcnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVt
ZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVkLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjg3YjI0NTI0YTE4ODFkZmNhNWE2MjVjY2U0MWZjMDU1
OWUwMjQ2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVk
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGhpcyB0ZXN0IHBh
c3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQiIGJlbG93OgotCi1QYXNzZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2Fk
LWFib3J0ZWQuaHRtbCBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1y
ZWFkeS1sb2FkLWFib3J0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Ez
Y2ExMWIzZmFlNmNkMWNkMjU1MDk3ZGYzYjMyNDkyNzFhNTU2Mi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21v
ZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIE1vZGVs
RWxlbWVudEVuYWJsZWQ9dHJ1ZSBdIC0tPgotPGh0bWw+Ci08Ym9keT4KLTxtb2RlbCBpZD0ibW9k
ZWwiPgotICAgIDxzb3VyY2UgaWQ9Im1vZGVsLXNvdXJjZSI+Ci08L21vZGVsPgotPHA+VGhpcyB0
ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQiIGJlbG93OjwvcD4KLTxwIGlk
PSJyZXN1bHQiPkZhaWxlZDwvcD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKLSAgICB9Ci0KLSAgICBsZXQgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlc3VsdCIpOwotICAgIGxldCBtb2RlbCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJtb2RlbCIpOwotICAgIGxldCBzb3VyY2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibW9kZWwtc291cmNlIik7Ci0KLSAgICBtb2RlbC5yZWFkeS50aGVuKHZhbHVlID0+IHsKLSAg
ICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gIkZhaWxlZC4gTW9kZWwgc2hvdWxkIG5vdCBoYXZl
IGxvYWRlZCwgYnV0IGRpZC4iOwotICAgIH0sIHJlYXNvbiA9PiB7Ci0gICAgICAgIGlmIChyZWFz
b24ubmFtZSA9PSAiQWJvcnRFcnJvciIpCi0gICAgICAgICAgICByZXN1bHQudGV4dENvbnRlbnQg
PSBgUGFzc2VkYDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0LnRleHRDb250ZW50
ID0gYEZhaWxlZC4gV3JvbmcgZXJyb3IgdHlwZTogJHtyZWFzb259LmA7Ci0gICAgfSkuZmluYWxs
eSgoKSA9PiB7IAotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9KTsKLQotICAgIHNvdXJjZS5zcmMgPSAicmVz
b3VyY2VzL2hlYXJ0LnVzZHoiOwotCi0gICAgbW9kZWwucmVtb3ZlQ2hpbGQoc291cmNlKTsKLTwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwt
ZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWZhaWxlZC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4N2IyNDUyNGExODgx
ZGZjYTVhNjI1Y2NlNDFmYzA1NTllMDI0NjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50
LXJlYWR5LWxvYWQtZmFpbGVkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotVGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQiIGJlbG93
OgotCi1QYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwt
ZWxlbWVudC1yZWFkeS1sb2FkLWZhaWxlZC5odG1sIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVu
dC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDEzZTgzYWNiM2IwNjAyYzk1MjBhMzBlYWQwZjdlMzNkMzJkMjRmNGMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
bW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIE1vZGVsRWxlbWVudEVuYWJsZWQ9dHJ1ZSBdIC0tPgotPGh0bWw+Ci08Ym9keT4K
LTxtb2RlbCBpZD0ibW9kZWwiPgotICAgIDxzb3VyY2Ugc3JjPSJyZXNvdXJjZXMvZG9lcy1ub3Qt
ZXhpc3QudXNkeiI+Ci08L21vZGVsPgotPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRo
ZSB3b3JkICJQYXNzZWQiIGJlbG93OjwvcD4KLTxwIGlkPSJyZXN1bHQiPkZhaWxlZDwvcD4KLTxz
Y3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB9
Ci0KLSAgICBsZXQgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwot
ICAgIGxldCBtb2RlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIpOwotCi0gICAg
bW9kZWwucmVhZHkudGhlbih2YWx1ZSA9PiB7Ci0gICAgICAgIHJlc3VsdC50ZXh0Q29udGVudCA9
ICJGYWlsZWQuIE1vZGVsIHNob3VsZCBub3QgaGF2ZSBsb2FkZWQsIGJ1dCBkaWQuIjsKLSAgICB9
LCByZWFzb24gPT4gewotICAgICAgICBpZiAocmVhc29uLm5hbWUgPT0gIk5ldHdvcmtFcnJvciIp
Ci0gICAgICAgICAgICByZXN1bHQudGV4dENvbnRlbnQgPSBgUGFzc2VkYDsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gYEZhaWxlZC4gV3JvbmcgZXJyb3Ig
dHlwZTogJHtyZWFzb259LmA7Ci0gICAgfSkuZmluYWxseSgoKSA9PiB7IAotICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
LSAgICB9KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0bWwgYi9MYXlvdXRUZXN0
cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHkuaHRtbAppbmRleCBlODA2MjRhZTU3
YTVlYzE5YjkyYzA1ZjA1MzYzNTJlMWRmYWU0Mjc0Li44MzliNjk4MWY4M2RkYjY3ZjJiNWFhMzky
YzYyNTNhMGVhNjYzYjdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21v
ZGVsLWVsZW1lbnQtcmVhZHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21v
ZGVsLWVsZW1lbnQtcmVhZHkuaHRtbApAQCAtMSwyOCArMSwzOCBAQAotPCFET0NUWVBFIGh0bWw+
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBNb2RlbEVsZW1lbnRFbmFibGVkPXRydWUgXSAtLT4K
LTxodG1sPgorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
Jmx0O21vZGVsPiByZWFkeSBwcm9taXNlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21v
ZGVsLWVsZW1lbnQtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CiA8Ym9keT4KLTxtb2RlbCBpZD0i
bW9kZWwiPgotICAgIDxzb3VyY2Ugc3JjPSJyZXNvdXJjZXMvaGVhcnQudXNkeiI+Ci08L21vZGVs
PgotPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQiIGJlbG93
OjwvcD4KLTxwIGlkPSJyZXN1bHQiPkZhaWxlZDwvcD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB9CisndXNlIHN0cmljdCc7CiAKLSAg
ICBsZXQgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwotICAgIGxl
dCBtb2RlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIpOworcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICAgIGNvbnN0IFttb2RlbCwgc291cmNlXSA9IGNyZWF0ZU1vZGVsQW5k
U291cmNlKHQsICJyZXNvdXJjZXMvZG9lcy1ub3QtZXhpc3QudXNkeiIpOworICAgIHJldHVybiBt
b2RlbC5yZWFkeS50aGVuKAorICAgICAgICB2YWx1ZSA9PiBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4
cGVjdGVkIHJlYWR5IHByb21pc2UgcmVzb2x1dGlvbi4iKSwKKyAgICAgICAgcmVhc29uID0+IGFz
c2VydF90cnVlKHJlYXNvbi50b1N0cmluZygpLmluY2x1ZGVzKCJOZXR3b3JrRXJyb3IiKSwgIlRo
ZSByZWFkeSBwcm9taXNlIGlzIHJlamVjdGVkIHdpdGggYSBOZXR3b3JrRXJyb3IuIikKKyAgICAp
OworfSwgYDxtb2RlbD4gcmVqZWN0cyB0aGUgcmVhZHkgcHJvbWlzZSB3aGVuIHByb3ZpZGVkIHdp
dGggYW4gdW5rbm93biByZXNvdXJlLmApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgY29uc3QgW21vZGVsLCBzb3VyY2VdID0gY3JlYXRlTW9kZWxBbmRTb3VyY2UodCwgInJlc291
cmNlcy9oZWFydC51c2R6Iik7CisgICAgY29uc3QgbW9kZWxSZWFkeSA9IG1vZGVsLnJlYWR5Owor
CisgICAgc291cmNlLnJlbW92ZSgpOworICAgIGFzc2VydF9ub3RfZXF1YWxzKG1vZGVsLnJlYWR5
LCBtb2RlbFJlYWR5LCAiUmVtb3ZpbmcgdGhlIDxzb3VyY2U+IGNoaWxkIHJlc2V0cyB0aGUgcmVh
ZHkgcHJvbWlzZS4iKTsKKworICAgIHJldHVybiBtb2RlbFJlYWR5LnRoZW4oCisgICAgICAgIHZh
bHVlID0+IGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgcmVhZHkgcHJvbWlzZSByZXNvbHV0
aW9uLiIpLAorICAgICAgICByZWFzb24gPT4gYXNzZXJ0X3RydWUocmVhc29uLnRvU3RyaW5nKCku
aW5jbHVkZXMoIkFib3J0RXJyb3IiKSwgIlRoZSByZWFkeSBwcm9taXNlIGlzIHJlamVjdGVkIHdp
dGggYSBOZXR3b3JrRXJyb3IuIikKKyAgICApOworfSwgYDxtb2RlbD4gcmVqZWN0cyB0aGUgcmVh
ZHkgcHJvbWlzZSB3aGVuIGl0cyByZXNvdXJjZSBsb2FkIGlzIGFib3J0ZWQuYCk7CisKK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBbbW9kZWwsIHNvdXJjZV0gPSBjcmVhdGVN
b2RlbEFuZFNvdXJjZSh0LCAicmVzb3VyY2VzL2N1YmUudXNkeiIpOworICAgIGF3YWl0IG1vZGVs
LnJlYWR5OworfSwgYDxtb2RlbD4gcmVzb2x2ZXMgdGhlIHJlYWR5IHByb21pc2Ugd2hlbiBwcm92
aWRlZCB3aXRoIGEga25vd24gcmVzb3VyY2UuYCk7CiAKLSAgICBtb2RlbC5yZWFkeS50aGVuKHZh
bHVlID0+IHsKLSAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gYFBhc3NlZGA7Ci0gICAgfSwg
cmVhc29uID0+IHsKLSAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gYEZhaWxlZC4gTW9kZWwg
ZGlkIG5vdCBsb2FkOiAke3JlYXNvbn1gOwotICAgIH0pLmZpbmFsbHkoKCkgPT4geyAKLSAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7Ci0gICAgfSk7CiA8L3NjcmlwdD4KIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvcmVzb3VyY2VzL21vZGVsLWVsZW1lbnQtdGVzdC11
dGlscy5qcyBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvcmVzb3VyY2VzL21vZGVsLWVsZW1l
bnQtdGVzdC11dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTUzNGNjYzBmYjAxMTRlNDIzNWFhNGUxMDU1
MjY4ZWRkZDdlY2MwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVu
dC9yZXNvdXJjZXMvbW9kZWwtZWxlbWVudC10ZXN0LXV0aWxzLmpzCkBAIC0wLDAgKzEsMTQgQEAK
KworY29uc3QgY3JlYXRlTW9kZWxBbmRTb3VyY2UgPSAodGVzdCwgc3JjKSA9PiB7CisgICAgY29u
c3QgbW9kZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtb2RlbCIpOworICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQobW9kZWwpOworCisgICAgY29uc3Qgc291cmNlID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic291cmNlIik7CisgICAgaWYgKHNyYykKKyAgICAgICAgc291cmNlLnNy
YyA9IHNyYzsKKyAgICBtb2RlbC5hcHBlbmRDaGlsZChzb3VyY2UpOworCisgICAgdGVzdC5hZGRf
Y2xlYW51cCgoKSA9PiBtb2RlbC5yZW1vdmUoKSk7CisKKyAgICByZXR1cm4gW21vZGVsLCBzb3Vy
Y2VdOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Iv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBjOTRiOTk1ZTcxZDM5N2ZlYWJiOGJkZTA0NTY1MGE1NGM1MmZh
MjI2Li5kNGZiZTFlNjBmOTUxNGU1NjU0MTU3MDYxOGY2MDBlYTJmNTM3YTA1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xNTIsMyArMTUyLDEwIEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJl
bW90ZS1hdWRpby1hbGxvd2VkLWNyb3Nzb3JpZ2luLmh0bWwgWyBQYXNzCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1yZW1vdGUtYXVkaW8tYWxsb3dlZC1jcm9zc29yaWdpbi1y
ZWRpcmVjdC5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzIyMzk0OSBjcnlw
dG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMtb29tLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQorCisjIFRo
ZXNlIHRlc3RzIHJlbHkgb24gQVJRTCBBUElzIHdoaWNoIGFyZSBub3QgYXZhaWxhYmxlIGluIHRo
ZSBTaW11bGF0b3IKK21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1jb250ZW50cy1sYXllci11
cGRhdGVzLXdpdGgtY2xpcHBpbmcuaHRtbCBbIFNraXAgXQorbW9kZWwtZWxlbWVudC9tb2RlbC1l
bGVtZW50LWNvbnRlbnRzLWxheWVyLXVwZGF0ZXMuaHRtbCBbIFNraXAgXQorbW9kZWwtZWxlbWVu
dC9tb2RlbC1lbGVtZW50LWdyYXBoaWNzLWxheWVycy1vcGFjaXR5Lmh0bWwgWyBTa2lwIF0KK21v
ZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMuaHRtbCBbIFNraXAgXQor
bW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0bWwgWyBTa2lwIF0KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDBlM2U3YmI3ZjU3MmNmMWJiNDczZjAzNTM1N2ZlMTc5MTViZDBjYjQuLjdiYzBl
ZmQwYjE5MDFhOWUwM2NiYzc3YWJhMWM0NzUwYzY3YmQwOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjgyLDggKzIyODIsOCBAQCB3ZWJraXQub3Jn
L2IvMjI4MzExIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5n
L2Nzcy1zY29waW5nLQogIyB3ZWJraXQub3JnL2IvMjI4MjAwIEFkanVzdGluZyB0ZXN0IGV4cGVj
dGF0aW9ucyBmb3IgTW9udGVyZXkgb24gT3BlbiBTb3VyY2UgPHJkYXI6Ly84MDM0NDEzOD46CiBb
IE1vbnRlcmV5IF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0
aW9uLXBvb2wvbmV0d29yay1wYXJ0aXRpb24ta2V5Lmh0bWwgWyBGYWlsdXJlIF0KIAotIyB3ZWJr
aXQub3JnL2IvMjI4MjAwIFNldHRpbmcgbXVsdGlwbGUgdGVzdCBleHBlY3RhdGlvbnMgZm9yIE1v
bmV0ZXJ5IG9uIE9wZW5Tb3VyY2U6Ci1bIE1vbnRlcmV5IF0gbW9kZWwtZWxlbWVudC9tb2RlbC1l
bGVtZW50LWdyYXBoaWNzLWxheWVycy1vcGFjaXR5Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQorIyB3
ZWJraXQub3JnL2IvMjI4MjAwIFNldHRpbmcgbXVsdGlwbGUgdGVzdCBleHBlY3RhdGlvbnMgZm9y
IE1vbnRlcmV5IG9uIE9wZW5Tb3VyY2U6CitbIE1vbnRlcmV5KyBdIG1vZGVsLWVsZW1lbnQvbW9k
ZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMtb3BhY2l0eS5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
IFsgTW9udGVyZXkgRGVidWcgYXJtNjQgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZXN0YXJ0SWNlLmh0dHBzLmh0bWwgWyBQYXNzIEZh
aWx1cmUgQ3Jhc2ggXQogCiAjcmRhcjovLzgyMDUzMjEwIChbR3VhcmQtTWFsbG9jXSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9yZWxhdGlvbnMvaHRtbDUtdHJlZS9kaXNw
bGF5LTIuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUpCkBAIC0yNDI4LDMgKzI0MjgsOCBAQCBwbGF0
Zm9ybS9tYWMvcGx1Z2lucy9jb252ZXJ0LXBvaW50Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcv
Yi8yMjY4MjYgWyBNb250ZXJleSBdIGh0dHAvdGVzdHMvc3NsL2FwcGxlcGF5L0FwcGxlUGF5QnV0
dG9uLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIyMTIzMCBbIEJpZ1N1cisgXSBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1h
ZGRzb3VyY2VidWZmZXIuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKKyMgPG1vZGVsPiB0ZXN0cyBp
bnZvbHZpbmcgdGhlIHJlYWR5IHByb21pc2UgY2FuIG9ubHkgd29yayBvbiBNb250ZXJleSBhbmQg
dXAKK1sgQ2F0YWxpbmEgQmlnU3VyIF0gbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5
Lmh0bWwgWyBTa2lwIF0KK1sgQ2F0YWxpbmEgQmlnU3VyIF0gbW9kZWwtZWxlbWVudC9tb2RlbC1l
bGVtZW50LWdyYXBoaWNzLWxheWVycy5odG1sIFsgU2tpcCBdCitbIENhdGFsaW5hIEJpZ1N1ciBd
IG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMtb3BhY2l0eS5odG1s
IFsgU2tpcCBdCg==
</data>
<flag name="commit-queue"
          id="471911"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446513</attachid>
            <date>2021-12-09 03:14:31 -0800</date>
            <delta_ts>2021-12-13 13:16:03 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233706-20211209121429.patch</filename>
            <type>text/plain</type>
            <size>38831</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjc1NzhjN2UxNWI3Y2Rm
YjA0NzViYjg2NmYyMzYyNTFmYzA5YTBiNy4uZGNiNDdmODZiZjg0NGNkMmQxZWU2MjExYzYzZmY5
M2UzYzVlZGY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTA5ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQWRkIGxv
YWQgYW5kIGVycm9yIGV2ZW50cyB0byBkaXN0aW5ndWlzaCByZXNvdXJjZSBsb2FkIGZyb20gbW9k
ZWwgcmVhZGluZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzM3MDYKKyAgICAgICAgcmRhcjovLzg1OTIyNjk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQ2hyaXMgRHVtZXogYW5kIERlYW4gSmFja3Nvbi4KKworICAgICAgICBUZXN0OiBtb2RlbC1l
bGVtZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRzLmh0bWwKKworICAgICAg
ICBQcmlvciB0byB0aGlzIHBhdGNoLCA8bW9kZWw+IGVsZW1lbnRzIGhhZCBhICJyZWFkeSIgcHJv
bWlzZSB3aGljaCByZXNvbHZlZCBvbmNlIHRoZSByZXNvdXJjZSBoYWQgYmVlbiBsb2FkZWQuCisg
ICAgICAgIEhvd2V2ZXIsIHRoaXMgcHJvbWlzZSBzaG91bGQgYmUgdXNlZCB3aGVuIHRoZSA8bW9k
ZWw+IGlzIGZ1bGx5IHJlYWR5LCBhbmQgdGhpcyBpcyBkb25lIG9uIG1hY09TIGFuZCBpT1MgYXN5
bmNocm9ub3VzbHkKKyAgICAgICAgYWZ0ZXIgdGhlIHJlc291cmNlIGhhcyBiZWVuIGxvYWRlZCBi
eSB0aGUgc3VwcG9ydGluZyBBUlFMIGZyYW1ld29yay4gU28gd2UgbmVlZCBhIHdheSB0byBtb25p
dG9yIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBvZgorICAgICAgICB0aGUgcmVzb3VyY2UgbG9hZCBzcGVj
aWZpY2FsbHkuCisKKyAgICAgICAgVG8gdGhhdCBlbmQsIGFuZCBtYXRjaGluZyB0aGUgPGltZz4g
ZWxlbWVudCwgd2UgZGlzcGF0Y2ggImxvYWQiIGFuZCAiZXJyb3IiIGV2ZW50cyBvbiA8bW9kZWw+
IGVsZW1lbnRzIGFuZCBhZGQgYQorICAgICAgICAiY29tcGxldGUiIHByb3BlcnR5IHRvIGluZGlj
YXRlIHdoZXRoZXIgdGhlIHJlc291cmNlIGlzIGxvYWRlZC4KKworICAgICAgICBNZWFud2hpbGUs
IHRoZSAicmVhZHkiIHByb21pc2UgaXMgbm93IHJlc29sdmVkIHdoZW4gdGhlIG1vZGVsIGlzIGZ1
bGx5IGxvYWRlZCBieSB0aGUgc3VwcG9ydGluZyBmcmFtZXdvcmssIGluZGljYXRpbmcKKyAgICAg
ICAgdGhhdCBmdXJ0aGVyIEFQSXMgYXJlIHNhZmUgdG8gdXNlLgorCisgICAgICAgIFNpbmNlIGNy
ZWF0aW5nIHRoZSBzdXBwb3J0IEFSUUwgb2JqZWN0IGZvciBtYWNPUyBhbmQgaU9TIGFsc28gcmVx
dWlyZXMgdGhlIDxtb2RlbD4gZWxlbWVudCdzIHJlbmRlcmVyIGJlaW5nIGF2YWlsYWJsZSwKKyAg
ICAgICAgd2Ugb3B0IGludG8gImN1c3RvbSBzdHlsZSByZXNvbHZlIGNhbGxiYWNrcyIgc28gdGhh
dCB3ZSBtYXkgaW1wbGVtZW50IGRpZEF0dGFjaFJlbmRlcmVycygpIG9uIEhUTUxNb2RlbEVsZW1l
bnQgYW5kIGtlZXAKKyAgICAgICAgdHJhY2sgb2YgcmVuZGVyZXIgYXZhaWxhYmlsaXR5IGJlZm9y
ZSBhdHRlbXB0aW5nIHRvIGNyZWF0ZSB0aGUgTW9kZWxQbGF5ZXIuCisKKyAgICAgICAgKiBNb2R1
bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTW9kZWxFbGVtZW50OjpIVE1MTW9kZWxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNb2RlbEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxF
bGVtZW50OjpzZXRTb3VyY2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVu
dDo6ZGlkQXR0YWNoUmVuZGVyZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1l
bnQ6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6
Om1vZGVsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmNy
ZWF0ZU1vZGVsUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRp
ZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6ZGlk
RmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6YWN0aXZl
RE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50
Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21v
ZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwt
ZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbDoKKwogMjAyMS0xMi0wOCAgRGllZ28gUGlubyBH
YXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4NjU1Nik6
IERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCBpcyBvbmx5IGF2YWlsYWJsZSBpbiBp
T1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9I
VE1MTW9kZWxFbGVtZW50LmNwcAppbmRleCAzMDljMDI2NDNmNWE3YWU5ZmVjMDhhMTRlYjIxMjI0
MDliMWY4OWUwLi44ZGMyYWM2NTA2OTNiNjVmMDg5MDg0Y2RmYmZhMjE4NGQ0YTM0NzEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxN
b2RlbEVsZW1lbnQuY3BwCkBAIC02NSw4ICs2NSwxMCBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoSFRNTE1vZGVsRWxlbWVudCk7CiAKIEhUTUxNb2RlbEVsZW1lbnQ6OkhUTUxNb2RlbEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCisgICAgLCBBY3RpdmVET01PYmpl
Y3QoZG9jdW1lbnQpCiAgICAgLCBtX3JlYWR5UHJvbWlzZSB7IG1ha2VVbmlxdWVSZWY8UmVhZHlQ
cm9taXNlPigqdGhpcywgJkhUTUxNb2RlbEVsZW1lbnQ6OnJlYWR5UHJvbWlzZVJlc29sdmUpIH0K
IHsKKyAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KIAogSFRNTE1v
ZGVsRWxlbWVudDo6fkhUTUxNb2RlbEVsZW1lbnQoKQpAQCAtNzksNyArODEsOSBAQCBIVE1MTW9k
ZWxFbGVtZW50Ojp+SFRNTE1vZGVsRWxlbWVudCgpCiAKIFJlZjxIVE1MTW9kZWxFbGVtZW50PiBI
VE1MTW9kZWxFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxNb2RlbEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICBhdXRvIG1vZGVsID0gYWRvcHRSZWYoKm5l
dyBIVE1MTW9kZWxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgbW9kZWwtPnN1c3Bl
bmRJZk5lZWRlZCgpOworICAgIHJldHVybiBtb2RlbDsKIH0KIAogUmVmUHRyPE1vZGVsPiBIVE1M
TW9kZWxFbGVtZW50Ojptb2RlbCgpIGNvbnN0CkBAIC0xMzEsOSArMTM1LDEyIEBAIHZvaWQgSFRN
TE1vZGVsRWxlbWVudDo6c2V0U291cmNlVVJMKGNvbnN0IFVSTCYgdXJsKQogICAgICAgICBtX3Jl
YWR5UHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IgfSk7CiAKICAgICBtX3Jl
YWR5UHJvbWlzZSA9IG1ha2VVbmlxdWVSZWY8UmVhZHlQcm9taXNlPigqdGhpcywgJkhUTUxNb2Rl
bEVsZW1lbnQ6OnJlYWR5UHJvbWlzZVJlc29sdmUpOworICAgIG1fc2hvdWxkQ3JlYXRlTW9kZWxQ
bGF5ZXJVcG9uUmVuZGVyZXJBdHRhY2htZW50ID0gZmFsc2U7CiAKLSAgICBpZiAobV9zb3VyY2VV
UkwuaXNFbXB0eSgpKQorICAgIGlmIChtX3NvdXJjZVVSTC5pc0VtcHR5KCkpIHsKKyAgICAgICAg
cXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpET01NYW5pcHVsYXRp
b24sIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIEV2ZW50OjpDYW5CdWJi
bGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogICAgICAgICByZXR1cm47CisgICAg
fQogCiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOwogICAgIG9wdGlvbnMuZGVzdGlu
YXRpb24gPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpNb2RlbDsKQEAgLTE0NSw2ICsxNTIs
NyBAQCB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OnNldFNvdXJjZVVSTChjb25zdCBVUkwmIHVybCkK
IAogICAgIGF1dG8gcmVzb3VyY2UgPSBkb2N1bWVudCgpLmNhY2hlZFJlc291cmNlTG9hZGVyKCku
cmVxdWVzdE1vZGVsUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgaWYgKCFyZXNvdXJj
ZS5oYXNfdmFsdWUoKSkgeworICAgICAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMs
IFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5v
KSk7CiAgICAgICAgIG1fcmVhZHlQcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgTmV0d29ya0Vy
cm9yIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTc1LDYgKzE4MywxNSBAQCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTE1vZGVsRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYgcwogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNb2Rl
bD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAordm9pZCBIVE1MTW9kZWxFbGVtZW50Ojpk
aWRBdHRhY2hSZW5kZXJlcnMoKQoreworICAgIGlmICghbV9zaG91bGRDcmVhdGVNb2RlbFBsYXll
clVwb25SZW5kZXJlckF0dGFjaG1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc2hvdWxk
Q3JlYXRlTW9kZWxQbGF5ZXJVcG9uUmVuZGVyZXJBdHRhY2htZW50ID0gZmFsc2U7CisgICAgY3Jl
YXRlTW9kZWxQbGF5ZXIoKTsKK30KKwogLy8gTUFSSzogLSBDYWNoZWRSYXdSZXNvdXJjZUNsaWVu
dAogCiB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OmRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSYg
cmVzb3VyY2UsIGNvbnN0IHVpbnQ4X3QqIGRhdGEsIGludCBkYXRhTGVuZ3RoKQpAQCAtMTk3LDYg
KzIxNCw4IEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVz
b3VyY2UmIHJlc291cmNlLCBjb25zdCBOZXR3b3JrTG9hCiAgICAgaWYgKHJlc291cmNlLmxvYWRG
YWlsZWRPckNhbmNlbGVkKCkpIHsKICAgICAgICAgbV9kYXRhID0gbnVsbHB0cjsKIAorICAgICAg
ICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxh
dGlvbiwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1
YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CisKICAgICAgICAgaW52YWxpZGF0
ZVJlc291cmNlSGFuZGxlQW5kVXBkYXRlUmVuZGVyZXIoKTsKIAogICAgICAgICBtX3JlYWR5UHJv
bWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5ldHdvcmtFcnJvciB9KTsKQEAgLTIwNiw5ICsyMjUs
OSBAQCB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNl
JiByZXNvdXJjZSwgY29uc3QgTmV0d29ya0xvYQogICAgIG1fZGF0YUNvbXBsZXRlID0gdHJ1ZTsK
ICAgICBtX21vZGVsID0gTW9kZWw6OmNyZWF0ZShtX2RhdGEucmVsZWFzZU5vbk51bGwoKS5nZXQo
KSwgcmVzb3VyY2UubWltZVR5cGUoKSwgcmVzb3VyY2UudXJsKCkpOwogCi0gICAgaW52YWxpZGF0
ZVJlc291cmNlSGFuZGxlQW5kVXBkYXRlUmVuZGVyZXIoKTsKKyAgICBxdWV1ZVRhc2tUb0Rpc3Bh
dGNoRXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkubG9hZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6Oklz
Q2FuY2VsYWJsZTo6Tm8pKTsKIAotICAgIG1fcmVhZHlQcm9taXNlLT5yZXNvbHZlKCp0aGlzKTsK
KyAgICBpbnZhbGlkYXRlUmVzb3VyY2VIYW5kbGVBbmRVcGRhdGVSZW5kZXJlcigpOwogCiAgICAg
bW9kZWxEaWRDaGFuZ2UoKTsKIH0KQEAgLTIxNywyNSArMjM2LDM0IEBAIHZvaWQgSFRNTE1vZGVs
RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBO
ZXR3b3JrTG9hCiAKIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6bW9kZWxEaWRDaGFuZ2UoKQogewot
ICAgIC8vIEZJWE1FOiBGb3IgdGhlIGVhcmx5IHJldHVybnMgaGVyZSwgd2Ugc2hvdWxkIHByb2Jh
Ymx5IGluZm9ybSB0aGUgcGFnZSB0aGF0IHRoaW5ncyBoYXZlCi0gICAgLy8gZmFpbGVkIHRvIHJl
bmRlci4gRm9yIHRoZSBjYXNlIG9mIG5vLXJlbmRlcmVyLCB3ZSBzaG91bGQgcHJvYmFibHkgYWxz
byBidWlsZCB0aGUgbW9kZWwKLSAgICAvLyB3aGVuL2lmIGEgcmVuZGVyZXIgaXMgY3JlYXRlZC4K
LQotICAgIGF1dG8gcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwotICAgIGlmICghcGFnZSkKKyAg
ICBhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCk7CisgICAgaWYgKCFwYWdlKSB7CisgICAg
ICAgIG1fcmVhZHlQcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9KTsKICAg
ICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVy
ZXIoKTsKLSAgICBpZiAoIXJlbmRlcmVyKQorICAgIGlmICghcmVuZGVyZXIpIHsKKyAgICAgICAg
bV9zaG91bGRDcmVhdGVNb2RlbFBsYXllclVwb25SZW5kZXJlckF0dGFjaG1lbnQgPSB0cnVlOwog
ICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgbV9tb2RlbFBsYXllciA9IHBhZ2UtPm1vZGVs
UGxheWVyUHJvdmlkZXIoKS5jcmVhdGVNb2RlbFBsYXllcigqdGhpcyk7Ci0gICAgaWYgKCFtX21v
ZGVsUGxheWVyKQorICAgIGNyZWF0ZU1vZGVsUGxheWVyKCk7Cit9CisKK3ZvaWQgSFRNTE1vZGVs
RWxlbWVudDo6Y3JlYXRlTW9kZWxQbGF5ZXIoKQoreworICAgIEFTU0VSVChkb2N1bWVudCgpLnBh
Z2UoKSk7CisgICAgbV9tb2RlbFBsYXllciA9IGRvY3VtZW50KCkucGFnZSgpLT5tb2RlbFBsYXll
clByb3ZpZGVyKCkuY3JlYXRlTW9kZWxQbGF5ZXIoKnRoaXMpOworICAgIGlmICghbV9tb2RlbFBs
YXllcikgeworICAgICAgICBtX3JlYWR5UHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0
RXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICAvLyBGSVhNRTogV2UgbmVl
ZCB0byB0ZWxsIHRoZSBwbGF5ZXIgaWYgdGhlIHNpemUgY2hhbmdlcyBhcyB3ZWxsLCBzbyBwYXNz
aW5nIHRoaXMKICAgICAvLyBpbiB3aXRoIGxvYWQgcHJvYmFibHkgZG9lc24ndCBtYWtlIHNlbnNl
LgotICAgIGF1dG8gc2l6ZSA9IHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdChmYWxz
ZSkuc2l6ZSgpOworICAgIEFTU0VSVChyZW5kZXJlcigpKTsKKyAgICBhdXRvIHNpemUgPSByZW5k
ZXJlcigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdChmYWxzZSkuc2l6ZSgpOwogICAgIG1fbW9k
ZWxQbGF5ZXItPmxvYWQoKm1fbW9kZWwsIHNpemUpOwogfQogCkBAIC0yNTUsMTEgKzI4MywxNCBA
QCB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OmRpZEZpbmlzaExvYWRpbmcoTW9kZWxQbGF5ZXImIG1v
ZGVsUGxheWVyKQogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkK
ICAgICAgICAgcmVuZGVyZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7CisKKyAgICBtX3JlYWR5UHJv
bWlzZS0+cmVzb2x2ZSgqdGhpcyk7CiB9CiAKIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6ZGlkRmFp
bExvYWRpbmcoTW9kZWxQbGF5ZXImIG1vZGVsUGxheWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJikK
IHsKICAgICBBU1NFUlRfVU5VU0VEKG1vZGVsUGxheWVyLCAmbW9kZWxQbGF5ZXIgPT0gbV9tb2Rl
bFBsYXllcik7CisgICAgbV9yZWFkeVByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBBYm9ydEVy
cm9yIH0pOwogfQogCiBHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgSFRNTE1vZGVsRWxl
bWVudDo6cGxhdGZvcm1MYXllcklEKCkKQEAgLTU1Miw2ICs1ODMsMTggQEAgdm9pZCBIVE1MTW9k
ZWxFbGVtZW50OjpzZXRJc011dGVkKGJvb2wgaXNNdXRlZCwgRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYgcHJvbWkKICAgICB9KTsKIH0KIAorY29uc3QgY2hhciogSFRNTE1vZGVsRWxlbWVudDo6
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJIVE1MTW9kZWxFbGVt
ZW50IjsKK30KKworYm9vbCBIVE1MTW9kZWxFbGVtZW50Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3QKK3sKKyAgICAvLyBXZSBuZWVkIHRvIGVuc3VyZSB0aGUgSlMgd3JhcHBlciBp
cyBrZXB0IGFsaXZlIGlmIGEgbG9hZCBpcyBpbiBwcm9ncmVzcyBhbmQgd2UgbWF5IHlldCBkaXNw
YXRjaAorICAgIC8vICJsb2FkIiBvciAiZXJyb3IiIGV2ZW50cywgaWUuIGFzIGxvbmcgYXMgd2Ug
aGF2ZSBhIHJlc291cmNlLCBtZWFuaW5nIHdlIGFyZSBpbiB0aGUgcHJvY2VzcyBvZiBsb2FkaW5n
LgorICAgIHJldHVybiBtX3Jlc291cmNlOworfQorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiBWZWN0
b3I8UmV0YWluUHRyPGlkPj4gSFRNTE1vZGVsRWxlbWVudDo6YWNjZXNzaWJpbGl0eUNoaWxkcmVu
KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9I
VE1MTW9kZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQv
SFRNTE1vZGVsRWxlbWVudC5oCmluZGV4IDA1YTFjZGFhM2UxNDg3N2EwYWU0NjViNjM0OWFhNWJi
YjFhZjJjODIuLjllYWFlNzcwMTU3MDhmN2JmYjQ3NGVlYWZmYTcxMzA3NGNkODk1MTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2Rl
bEVsZW1lbnQuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQp
CiAKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNv
dXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKQEAgLTQ5LDcgKzUwLDcgQEAgY2xhc3MgTW91c2VFdmVu
dDsKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsK
IHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VQcm94eVdpdGhSZXNv
bHZlQ2FsbGJhY2s7CiAKLWNsYXNzIEhUTUxNb2RlbEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRN
TEVsZW1lbnQsIHByaXZhdGUgQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQsIHB1YmxpYyBNb2RlbFBs
YXllckNsaWVudCB7CitjbGFzcyBIVE1MTW9kZWxFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxF
bGVtZW50LCBwcml2YXRlIENhY2hlZFJhd1Jlc291cmNlQ2xpZW50LCBwdWJsaWMgTW9kZWxQbGF5
ZXJDbGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoSFRNTE1vZGVsRWxlbWVudCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxIVE1MTW9k
ZWxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkBAIC01
Nyw2ICs1OCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc291cmNlc0NoYW5nZWQoKTsKICAgICBj
b25zdCBVUkwmIGN1cnJlbnRTcmMoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfQorICAg
IGJvb2wgY29tcGxldGUoKSBjb25zdCB7IHJldHVybiBtX2RhdGFDb21wbGV0ZTsgfQogCiAgICAg
Ly8gTUFSSzogRE9NIEZ1bmN0aW9ucyBhbmQgQXR0cmlidXRlcwogCkBAIC0xMDYsMTQgKzEwOCwy
MCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRTb3VyY2VVUkwoY29uc3QgVVJMJik7CiAgICAg
dm9pZCBtb2RlbERpZENoYW5nZSgpOworICAgIHZvaWQgY3JlYXRlTW9kZWxQbGF5ZXIoKTsKIAog
ICAgIEhUTUxNb2RlbEVsZW1lbnQmIHJlYWR5UHJvbWlzZVJlc29sdmUoKTsKIAorICAgIC8vIEFj
dGl2ZURPTU9iamVjdAorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dCBmaW5hbDsKKyAgICBib29sIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5h
bDsKKwogICAgIC8vIERPTSBvdmVycmlkZXMuCiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVu
dChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkgZmluYWw7CiAK
ICAgICAvLyBSZW5kZXJpbmcgb3ZlcnJpZGVzLgogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgZmluYWw7CisgICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBmaW5hbDsKIAog
ICAgIC8vIENhY2hlZFJhd1Jlc291cmNlQ2xpZW50IG92ZXJyaWRlcy4KICAgICB2b2lkIGRhdGFS
ZWNlaXZlZChDYWNoZWRSZXNvdXJjZSYsIGNvbnN0IHVpbnQ4X3QqIGRhdGEsIGludCBkYXRhTGVu
Z3RoKSBmaW5hbDsKQEAgLTEzOCw2ICsxNDYsNyBAQCBwcml2YXRlOgogICAgIFVuaXF1ZVJlZjxS
ZWFkeVByb21pc2U+IG1fcmVhZHlQcm9taXNlOwogICAgIGJvb2wgbV9kYXRhQ29tcGxldGUgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc0RyYWdnaW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hv
dWxkQ3JlYXRlTW9kZWxQbGF5ZXJVcG9uUmVuZGVyZXJBdHRhY2htZW50IHsgZmFsc2UgfTsKIAog
ICAgIFJlZlB0cjxNb2RlbFBsYXllcj4gbV9tb2RlbFBsYXllcjsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5p
ZGwKaW5kZXggM2ZmNmNlOTY2ZGUzZjBiN2JkZjg2YjVmZjJlNWRhMDc1NTBkNmExNS4uNDViOGZk
MjZjNzRmZWMzYjkyMGMzNTQ4NDAwY2Q3MmU4MmM1OGZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbApA
QCAtMzAsNiArMzAsNyBAQAogXSBpbnRlcmZhY2UgSFRNTE1vZGVsRWxlbWVudCA6IEhUTUxFbGVt
ZW50IHsKICAgICBbVVJMXSByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGN1cnJlbnRTcmM7
CiAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wbGV0ZTsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgUHJvbWlzZTxIVE1MTW9kZWxFbGVtZW50PiByZWFkeTsKIAogICAgIHVuZGVm
aW5lZCBlbnRlckZ1bGxzY3JlZW4oKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBhM2RmZDNkMGVjMTE4NDA2NWU4OGNkNzAzMmYyNjE5MGE3YTZi
NGFlLi5mZjIxYTcwM2YzN2E1N2VhYzU1ZTNmNTAxNzE5NTRhYzk0NGQ3MTFjIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMjEtMTItMDkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgW01vZGVsXSBBZGQgbG9hZCBhbmQgZXJyb3IgZXZlbnRzIHRvIGRpc3Rpbmd1aXNoIHJlc291
cmNlIGxvYWQgZnJvbSBtb2RlbCByZWFkaW5lc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzcwNgorICAgICAgICByZGFyOi8vODU5MjI2OTcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1leiBhbmQgRGVhbiBKYWNrc29uLgorCisgICAg
ICAgIFVzZSB0aGUgImxvYWQiIGV2ZW50IGluc3RlYWQgb2YgdGhlICJyZWFkeSIgcHJvbWlzZSBm
b3IgdGhpcyB0ZXN0IHdoaWNoIG9ubHkgcmVxdWlyZXMgbW9uaXRvcmluZworICAgICAgICB0aGUg
PG1vZGVsPiByZXNvdXJjZSBiZWluZyBsb2FkZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL2lvcy9EcmFnQW5kRHJvcFRlc3RzSU9TLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisKIDIwMjEtMTItMDcgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIGZpbmQtaW4tcGFn
ZSBTUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmRE
cm9wVGVzdHNJT1MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EcmFnQW5kRHJv
cFRlc3RzSU9TLm1tCmluZGV4IDE4OThjM2RmYmRjY2M4ZWQyNDlhYTEzYTgwYTIwY2QxYzczYWIz
MDAuLjM5ODUxMTZjODdiODA4YjZmMWU0Nzg4MzJiNzY2MDM2MzUzZGJhYmQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRHJhZ0FuZERyb3BUZXN0c0lPUy5tbQpA
QCAtMjE5Nyw3ICsyMTk3LDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBDYW5TdGFydERyYWdP
bk1vZGVsKQogICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5n
ZXQoKSBmb3JVUkxTY2hlbWU6QCJtb2RlbCJdOwogICAgIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxtb2RlbD48c291cmNlIHNyYz0n
bW9kZWw6Ly9jdWJlLnVzZHonPjwvbW9kZWw+PHNjcmlwdD5kb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgnbW9kZWwnKVswXS5yZWFkeS50aGVuKCgpID0+IHsgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMubW9kZWxMb2FkaW5nLnBvc3RNZXNzYWdlKCdSRUFEWScpIH0pOzwvc2NyaXB0
PiJdOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxtb2RlbD48
c291cmNlIHNyYz0nbW9kZWw6Ly9jdWJlLnVzZHonPjwvbW9kZWw+PHNjcmlwdD5kb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCdtb2RlbCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBldmVudCA9PiB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5tb2RlbExvYWRpbmcucG9zdE1lc3NhZ2UoJ1JF
QURZJykpOzwvc2NyaXB0PiJdOwogCiAgICAgd2hpbGUgKCFbbWVzc2FnZUhhbmRsZXIgZGlkTG9h
ZE1vZGVsXSkKICAgICAgICAgVXRpbDo6c3BpblJ1bkxvb3AoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NWFlNzRhYmIy
NWU1NzJjY2YzMTkzMzczZjcyM2Q1YThlNDAwNDQyLi44ZGIyYThlZjllY2NlZTk1ZjQ5Nzg5OTM0
ZDc4YzJiOTNlOWU4ZGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMTItMDkgIEFudG9p
bmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01vZGVsXSBBZGQgbG9h
ZCBhbmQgZXJyb3IgZXZlbnRzIHRvIGRpc3Rpbmd1aXNoIHJlc291cmNlIGxvYWQgZnJvbSBtb2Rl
bCByZWFkaW5lc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMzcwNgorICAgICAgICByZGFyOi8vODU5MjI2OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBDaHJpcyBEdW1leiBhbmQgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFJlbW92ZSBleGlzdGlu
ZyB0ZXN0cyBhcm91bmQgcmVzb3VyY2UgbG9hZGluZyBhbmQgcmVjcmVhdGUgdGhlbSBpbiB0ZXJt
cyBvZiAibG9hZCIgYW5kICJlcnJvciIKKyAgICAgICAgZXZlbnRzIGluIG1vZGVsLWVsZW1lbnQv
bW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMuaHRtbCBhbmQgaW4gdGVybXMgb2Yg
dGhlIHJlYWR5CisgICAgICAgIHByb21pc2UgaW4gbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50
LXJlYWR5Lmh0bWwuCisKKyAgICAgICAgT3RoZXIgdGVzdHMgdXNpbmcgbW9kZWwucmVhZHkgZm9y
IG90aGVyIHB1cnBvc2VzIGFyZSBhbHNvIHJld3JpdHRlbiB1c2luZyBldmVudHMuIAorCisgICAg
ICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWNvbnRlbnRzLWxheWVyLXVwZGF0ZXMt
d2l0aC1jbGlwcGluZy5odG1sOgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVu
dC1jb250ZW50cy1sYXllci11cGRhdGVzLmh0bWw6CisgICAgICAgICogbW9kZWwtZWxlbWVudC9t
b2RlbC1lbGVtZW50LWVycm9yLWFuZC1sb2FkLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVu
dHMuaHRtbDogQWRkZWQuCisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWdy
YXBoaWNzLWxheWVycy1vcGFjaXR5Lmh0bWw6CisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2Rl
bC1lbGVtZW50LWdyYXBoaWNzLWxheWVycy5odG1sOgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQv
bW9kZWwtZWxlbWVudC1yZWFkeS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbW9kZWwtZWxlbWVu
dC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtYWJvcnRlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtYWJvcnRl
ZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1y
ZWFkeS1sb2FkLWZhaWxlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbW9kZWwt
ZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0bWw6CisgICAgICAg
ICogbW9kZWwtZWxlbWVudC9yZXNvdXJjZXMvbW9kZWwtZWxlbWVudC10ZXN0LXV0aWxzLmpzOiBB
ZGRlZC4KKyAgICAgICAgKGNvbnN0LmNyZWF0ZU1vZGVsQW5kU291cmNlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMTItMDggIEFudHRpIEtvaXZpc3RvICA8
YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtDU1MgQ2FzY2FkZSBMYXllcnNdIGltcG9ydCBz
b21lIG5ldyBXUFRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVs
LWVsZW1lbnQtY29udGVudHMtbGF5ZXItdXBkYXRlcy13aXRoLWNsaXBwaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtY29udGVudHMtbGF5ZXItdXBkYXRl
cy13aXRoLWNsaXBwaW5nLmh0bWwKaW5kZXggZTg5ZjI2ODlmMTQ0OWFlMWY3YjllMDAxOTA1MDkz
NjdlNTljOWIxOC4uZGM5MWYzYTIxMDZjNjhhODAzZGZjMWFhZWZhMWVjNmIzMGVjNmNkZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWNvbnRlbnRz
LWxheWVyLXVwZGF0ZXMtd2l0aC1jbGlwcGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL21vZGVs
LWVsZW1lbnQvbW9kZWwtZWxlbWVudC1jb250ZW50cy1sYXllci11cGRhdGVzLXdpdGgtY2xpcHBp
bmcuaHRtbApAQCAtNiwzOSArNiw0MCBAQAogPC9tb2RlbD4KIDxwcmUgaWQ9ImxheWVycyI+PC9w
cmU+CiA8c2NyaXB0PgotICAgIGxldCBsYXllcnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bGF5ZXJzIik7Ci0gICAgbGV0IHNvdXJjZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJzb3VyY2UiKVswXTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lcj8ud2FpdFVudGlsRG9uZSgpOwor
ICAgIHdpbmRvdy50ZXN0UnVubmVyPy5kdW1wQXNUZXh0KCk7CiAKLSAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIH0gZWxzZQotICAgICAgICBsYXllcnMudGV4
dENvbnRlbnQgPSAiVGhpcyB0ZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXIuIjsKKyAgICBjb25zdCBs
YXllcnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGF5ZXJzIik7CisgICAgY29uc3Qgc291
cmNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic291cmNlIik7CisgICAgY29uc3QgbW9kZWwg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZWwiKTsKIAotICAgIGxldCBtb2RlbCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIpOwotCi0gICAgbW9kZWwucmVhZHkudGhlbih2
YWx1ZSA9PiB7CisgICAgY29uc3QgbW9kZWxEaWRMb2FkRmlyc3RTb3VyY2UgPSAoKSA9PiB7CiAg
ICAgICAgIGxheWVycy50ZXh0Q29udGVudCA9ICJCZWZvcmUgQ2hhbmdpbmcgU291cmNlOlxuIjsK
LSAgICAgICAgbGF5ZXJzLnRleHRDb250ZW50ICs9IHdpbmRvdy5pbnRlcm5hbHMucGxhdGZvcm1M
YXllclRyZWVBc1RleHQobW9kZWwsIHdpbmRvdy5pbnRlcm5hbHMuUExBVEZPUk1fTEFZRVJfVFJF
RV9JTkNMVURFX01PREVMUyk7CisgICAgICAgIGxheWVycy50ZXh0Q29udGVudCArPSB3aW5kb3cu
aW50ZXJuYWxzPy5wbGF0Zm9ybUxheWVyVHJlZUFzVGV4dChtb2RlbCwgd2luZG93LmludGVybmFs
cy5QTEFURk9STV9MQVlFUl9UUkVFX0lOQ0xVREVfTU9ERUxTKSA/PyAiVGhpcyB0ZXN0IHJlcXVp
cmVzIHRlc3RSdW5uZXIuIjsKKworICAgICAgICBtb2RlbC5hZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgZXZlbnQgPT4geworICAgICAgICAgICAgbGF5ZXJzLnRleHRDb250ZW50ICs9ICJBZnRlciBD
aGFuZ2luZyBTb3VyY2U6XG4iOworICAgICAgICAgICAgbGF5ZXJzLnRleHRDb250ZW50ICs9IHdp
bmRvdy5pbnRlcm5hbHM/LnBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0KG1vZGVsLCB3aW5kb3cuaW50
ZXJuYWxzLlBMQVRGT1JNX0xBWUVSX1RSRUVfSU5DTFVERV9NT0RFTFMpID8/ICJUaGlzIHRlc3Qg
cmVxdWlyZXMgdGVzdFJ1bm5lci4iOworICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXI/Lm5v
dGlmeURvbmUoKTsKKyAgICAgICAgfSwgeyBvbmNlOiB0cnVlIH0pOworCisgICAgICAgIG1vZGVs
LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZXZlbnQgPT4geworICAgICAgICAgICAgbGF5ZXJz
LnRleHRDb250ZW50ID0gYEZhaWxlZC4gU2Vjb25kIG1vZGVsIGRpZCBub3QgbG9hZC5gOworICAg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXI/Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgeyBv
bmNlOiB0cnVlIH0pOwogCiAgICAgICAgIHNvdXJjZS5zcmMgPSAicmVzb3VyY2VzL2N1YmUudXNk
eiI7Ci0gICAgICAgIG1vZGVsLnJlYWR5LnRoZW4odmFsdWUgPT4gewotICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgbGF5ZXJzLnRleHRDb250ZW50
ICs9ICJBZnRlciBDaGFuZ2luZyBTb3VyY2U6XG4iOwotICAgICAgICAgICAgICAgIGxheWVycy50
ZXh0Q29udGVudCArPSB3aW5kb3cuaW50ZXJuYWxzLnBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0KG1v
ZGVsLCB3aW5kb3cuaW50ZXJuYWxzLlBMQVRGT1JNX0xBWUVSX1RSRUVfSU5DTFVERV9NT0RFTFMp
OwotICAgICAgICAgICAgfQotICAgICAgICB9LCByZWFzb24gPT4gewotICAgICAgICAgICAgbGF5
ZXJzLnRleHRDb250ZW50ID0gYEZhaWxlZC4gU2Vjb25kIG1vZGVsIGRpZCBub3QgbG9hZDogJHty
ZWFzb259YDsKLSAgICAgICAgfSkuZmluYWxseSgoKSA9PiB7IAotICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwotICAgICAgICB9KTsKLSAgICAgICAgCi0gICAgfSwgcmVhc29uID0+IHsKLSAgICAgICAgbGF5
ZXJzLnRleHRDb250ZW50ID0gYEZhaWxlZC4gRmlyc3QgbW9kZWwgZGlkIG5vdCBsb2FkOiAke3Jl
YXNvbn1gOwotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9KTsKKyAgICB9CisKKyAgICBpZiAobW9kZWwuY29t
cGxldGUpCisgICAgICAgIG1vZGVsRGlkTG9hZEZpcnN0U291cmNlKCk7CisgICAgZWxzZSB7Cisg
ICAgICAgIG1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBtb2RlbERpZExvYWRGaXJzdFNv
dXJjZSwgeyBvbmNlOiB0cnVlIH0pOworICAgICAgICBtb2RlbC5hZGRFdmVudExpc3RlbmVyKCJl
cnJvciIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCA9IGBGYWls
ZWQuIEZpcnN0IG1vZGVsIGRpZCBub3QgbG9hZC5gOworICAgICAgICAgICAgd2luZG93LnRlc3RS
dW5uZXI/Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgeyBvbmNlOiB0cnVlIH0pOworICAgIH0K
IDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9k
ZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWNvbnRlbnRzLWxheWVyLXVwZGF0ZXMuaHRtbCBiL0xh
eW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1jb250ZW50cy1sYXllci11cGRh
dGVzLmh0bWwKaW5kZXggOWYxM2E2NDQyNzM4NDAyZjFjZTdmMWUxYWMwNWJmZDcxNjFjNDZiYS4u
Yzk5MjEwYTM5ZTA3MmZhMTdjMDAyMTgzNzYyZGE3YjJiODNhNWVjMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWNvbnRlbnRzLWxheWVyLXVwZGF0
ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtY29u
dGVudHMtbGF5ZXItdXBkYXRlcy5odG1sCkBAIC02LDM5ICs2LDQwIEBACiA8L21vZGVsPgogPHBy
ZSBpZD0ibGF5ZXJzIj48L3ByZT4KIDxzY3JpcHQ+Ci0gICAgbGV0IGxheWVycyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJsYXllcnMiKTsKLSAgICBsZXQgc291cmNlID0gZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoInNvdXJjZSIpWzBdOworICAgIHdpbmRvdy50ZXN0UnVubmVyPy53
YWl0VW50aWxEb25lKCk7CisgICAgd2luZG93LnRlc3RSdW5uZXI/LmR1bXBBc1RleHQoKTsKIAot
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIGxheWVycy50ZXh0Q29udGVudCA9ICJUaGlzIHRlc3QgcmVxdWlyZXMgdGVzdFJ1bm5l
ci4iOworICAgIGNvbnN0IGxheWVycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllcnMi
KTsKKyAgICBjb25zdCBzb3VyY2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzb3VyY2UiKTsK
KyAgICBjb25zdCBtb2RlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIpOwogCi0g
ICAgbGV0IG1vZGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGVsIik7Ci0KLSAgICBt
b2RlbC5yZWFkeS50aGVuKHZhbHVlID0+IHsKKyAgICBjb25zdCBtb2RlbERpZExvYWRGaXJzdFNv
dXJjZSA9ICgpID0+IHsKICAgICAgICAgbGF5ZXJzLnRleHRDb250ZW50ID0gIkJlZm9yZSBDaGFu
Z2luZyBTb3VyY2U6XG4iOwotICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgKz0gd2luZG93Lmlu
dGVybmFscy5wbGF0Zm9ybUxheWVyVHJlZUFzVGV4dChtb2RlbCwgd2luZG93LmludGVybmFscy5Q
TEFURk9STV9MQVlFUl9UUkVFX0lOQ0xVREVfTU9ERUxTKTsKKyAgICAgICAgbGF5ZXJzLnRleHRD
b250ZW50ICs9IHdpbmRvdy5pbnRlcm5hbHM/LnBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0KG1vZGVs
LCB3aW5kb3cuaW50ZXJuYWxzLlBMQVRGT1JNX0xBWUVSX1RSRUVfSU5DTFVERV9NT0RFTFMpID8/
ICJUaGlzIHRlc3QgcmVxdWlyZXMgdGVzdFJ1bm5lci4iOworCisgICAgICAgIG1vZGVsLmFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBldmVudCA9PiB7CisgICAgICAgICAgICBsYXllcnMudGV4dENv
bnRlbnQgKz0gIkFmdGVyIENoYW5naW5nIFNvdXJjZTpcbiI7CisgICAgICAgICAgICBsYXllcnMu
dGV4dENvbnRlbnQgKz0gd2luZG93LmludGVybmFscz8ucGxhdGZvcm1MYXllclRyZWVBc1RleHQo
bW9kZWwsIHdpbmRvdy5pbnRlcm5hbHMuUExBVEZPUk1fTEFZRVJfVFJFRV9JTkNMVURFX01PREVM
UykgPz8gIlRoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyLiI7CisgICAgICAgICAgICB3aW5k
b3cudGVzdFJ1bm5lcj8ubm90aWZ5RG9uZSgpOworICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7
CisKKyAgICAgICAgbW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBldmVudCA9PiB7Cisg
ICAgICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgPSBgRmFpbGVkLiBTZWNvbmQgbW9kZWwgZGlk
IG5vdCBsb2FkLmA7CisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lcj8ubm90aWZ5RG9uZSgp
OworICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7CiAKICAgICAgICAgc291cmNlLnNyYyA9ICJy
ZXNvdXJjZXMvY3ViZS51c2R6IjsKLSAgICAgICAgbW9kZWwucmVhZHkudGhlbih2YWx1ZSA9PiB7
Ci0gICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICBs
YXllcnMudGV4dENvbnRlbnQgKz0gIkFmdGVyIENoYW5naW5nIFNvdXJjZTpcbiI7Ci0gICAgICAg
ICAgICAgICAgbGF5ZXJzLnRleHRDb250ZW50ICs9IHdpbmRvdy5pbnRlcm5hbHMucGxhdGZvcm1M
YXllclRyZWVBc1RleHQobW9kZWwsIHdpbmRvdy5pbnRlcm5hbHMuUExBVEZPUk1fTEFZRVJfVFJF
RV9JTkNMVURFX01PREVMUyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sIHJlYXNvbiA9PiB7
Ci0gICAgICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgPSBgRmFpbGVkLiBTZWNvbmQgbW9kZWwg
ZGlkIG5vdCBsb2FkOiAke3JlYXNvbn1gOwotICAgICAgICB9KS5maW5hbGx5KCgpID0+IHsgCi0g
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIH0pOwotICAgICAgICAKLSAgICB9LCByZWFzb24g
PT4gewotICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgPSBgRmFpbGVkLiBGaXJzdCBtb2RlbCBk
aWQgbm90IGxvYWQ6ICR7cmVhc29ufWA7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0pOworICAgIH0KKwor
ICAgIGlmIChtb2RlbC5jb21wbGV0ZSkKKyAgICAgICAgbW9kZWxEaWRMb2FkRmlyc3RTb3VyY2Uo
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgbW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIG1v
ZGVsRGlkTG9hZEZpcnN0U291cmNlLCB7IG9uY2U6IHRydWUgfSk7CisgICAgICAgIG1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZXZlbnQgPT4geworICAgICAgICAgICAgbGF5ZXJzLnRl
eHRDb250ZW50ID0gYEZhaWxlZC4gRmlyc3QgbW9kZWwgZGlkIG5vdCBsb2FkLmA7CisgICAgICAg
ICAgICB3aW5kb3cudGVzdFJ1bm5lcj8ubm90aWZ5RG9uZSgpOworICAgICAgICB9LCB7IG9uY2U6
IHRydWUgfSk7CisgICAgfQogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQt
ZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxl
bWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmYmY5
MDgzMTM2NWJiMDRjMGJiMGRiNjVkNzdmYzM0NDc5ZDY1N2IKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZl
bnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyA8bW9kZWw+IGRpc3BhdGNo
ZXMgYW4gImVycm9yIiBldmVudCB3aGVuIGl0cyByZXNvdXJjZSBsb2FkIGlzIGFib3J0ZWQgYmVm
b3JlIGNvbXBsZXRpb24uCitQQVNTIDxtb2RlbD4gZGlzcGF0Y2hlcyBhbiAiZXJyb3IiIGV2ZW50
IHdoZW4gaXRzIHNwZWNpZmllZCByZXNvdXJjZSBkb2VzIG5vdCBleGlzdC4KK1BBU1MgPG1vZGVs
PiBkaXNwYXRjaGVzIGEgImxvYWQiIGV2ZW50IHdoZW4gaXRzIHJlc291cmNlIGlzIHN1Y2Nlc3Nm
dWxseSBsb2FkZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9k
ZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL21vZGVs
LWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wOWE1YmZjMTIyOGMwZDUyNzA2MDE2NmYwM2I0OGRkODQ3M2UyZTU2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWVycm9yLWFu
ZC1sb2FkLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPiZsdDttb2RlbD4gbG9hZCBhbmQgZXJyb3IgZXZl
bnRzPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21vZGVsLWVsZW1lbnQtdGVzdC11dGls
cy5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK2NvbnN0
IG1vZGVsX2xvYWRfdGVzdCA9IChleHBlY3RlZEV2ZW50LCBleGVjdXRvciwgZGVzY3JpcHRpb24p
ID0+IHsKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBjb25zdCBbbW9kZWwsIHNvdXJj
ZV0gPSBjcmVhdGVNb2RlbEFuZFNvdXJjZSh0KTsKKworICAgICAgICAgICAgY29uc3QgaGFuZGxl
RXZlbnQgPSBldmVudCA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICJs
b2FkIikKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUobW9kZWwuY29tcGxldGUsIGBt
b2RlbC5jb21wbGV0ZSBpcyB0cnVlIHVwb24gcmVjZWl2aW5nIHRoZSAibG9hZCIgZXZlbnQuYCk7
CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gImVycm9yIikKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1vZGVsLmNvbXBsZXRlLCBgbW9kZWwuY29tcGxl
dGUgaXMgZmFsc2UgdXBvbiByZWNlaXZpbmcgdGhlICJlcnJvciIgZXZlbnQuYCk7CisKKyAgICAg
ICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gZXhwZWN0ZWRFdmVudCkKKyAgICAgICAgICAg
ICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgcmVqZWN0KGByZWNlaXZlZCB1bmV4cGVjdGVkIGV2ZW50OiAke2V2ZW50LnR5cGV9YCk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShtb2RlbC5jb21wbGV0
ZSwgIm1vZGVsLmNvbXBsZXRlIGlzIGZhbHNlIGJlZm9yZSB0aGUgbG9hZCBpcyBpbml0aWF0ZWQu
Iik7CisKKyAgICAgICAgICAgIG1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBoYW5kbGVF
dmVudCk7CisgICAgICAgICAgICBtb2RlbC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGhhbmRs
ZUV2ZW50KTsKKworICAgICAgICAgICAgZXhlY3V0b3Ioc291cmNlKTsKKyAgICAgICAgfSk7Cisg
ICAgfSwgZGVzY3JpcHRpb24pOworfTsKKworbW9kZWxfbG9hZF90ZXN0KCJlcnJvciIsIHNvdXJj
ZSA9PiB7CisgICAgc291cmNlLnNyYyA9ICJyZXNvdXJjZXMvaGVhcnQudXNkeiI7CisgICAgc291
cmNlLnJlbW92ZSgpOworfSwgYDxtb2RlbD4gZGlzcGF0Y2hlcyBhbiAiZXJyb3IiIGV2ZW50IHdo
ZW4gaXRzIHJlc291cmNlIGxvYWQgaXMgYWJvcnRlZCBiZWZvcmUgY29tcGxldGlvbi5gKTsKKwor
bW9kZWxfbG9hZF90ZXN0KCJlcnJvciIsIHNvdXJjZSA9PiB7CisgICAgc291cmNlLnNyYyA9ICJy
ZXNvdXJjZXMvZG9lcy1ub3QtZXhpc3QudXNkeiI7Cit9LCBgPG1vZGVsPiBkaXNwYXRjaGVzIGFu
ICJlcnJvciIgZXZlbnQgd2hlbiBpdHMgc3BlY2lmaWVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0
LmApOworCittb2RlbF9sb2FkX3Rlc3QoImxvYWQiLCBzb3VyY2UgPT4geworICAgIHNvdXJjZS5z
cmMgPSAicmVzb3VyY2VzL2N1YmUudXNkeiI7Cit9LCBgPG1vZGVsPiBkaXNwYXRjaGVzIGEgImxv
YWQiIGV2ZW50IHdoZW4gaXRzIHJlc291cmNlIGlzIHN1Y2Nlc3NmdWxseSBsb2FkZWQuYCk7CisK
Kzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVu
dC9tb2RlbC1lbGVtZW50LWdyYXBoaWNzLWxheWVycy1vcGFjaXR5Lmh0bWwgYi9MYXlvdXRUZXN0
cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZ3JhcGhpY3MtbGF5ZXJzLW9wYWNpdHkuaHRt
bAppbmRleCA0OTgxZTZkYmIzYzljNTRlNjcxZDVhMmE2ZmI1ZDJmZTdiMTFlMDhiLi5hNjEzMmY5
MjZkNzdjMThhMGIzZmM4ODlmZjdlNmMzZTY1MDA4OGFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZ3JhcGhpY3MtbGF5ZXJzLW9wYWNpdHkuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZ3JhcGhpY3Mt
bGF5ZXJzLW9wYWNpdHkuaHRtbApAQCAtMTMsMjYgKzEzLDI3IEBACiA8L21vZGVsPgogPHByZSBp
ZD0ibGF5ZXJzIj48L3ByZT4KIDxzY3JpcHQ+Ci0gICAgbGV0IGxheWVycyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJsYXllcnMiKTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lcj8ud2FpdFVudGls
RG9uZSgpOworICAgIHdpbmRvdy50ZXN0UnVubmVyPy5kdW1wQXNUZXh0KCk7CiAKLSAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIH0gZWxzZQotICAgICAgICBs
YXllcnMudGV4dENvbnRlbnQgPSAiVGhpcyB0ZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXIuIjsKKyAg
ICBjb25zdCBsYXllcnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGF5ZXJzIik7CisgICAg
Y29uc3QgbW9kZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZWwiKTsKIAotICAgIGxl
dCBtb2RlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIpOwotCi0gICAgbW9kZWwu
cmVhZHkudGhlbih2YWx1ZSA9PiB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgICAgIGxheWVycy5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLnBsYXRmb3JtTGF5
ZXJUcmVlQXNUZXh0KG1vZGVsKTsKKyAgICBjb25zdCBtb2RlbERpZExvYWQgPSAoKSA9PiB7Cisg
ICAgICAgIGxheWVycy5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzPy5wbGF0Zm9ybUxheWVy
VHJlZUFzVGV4dChtb2RlbCkgPz8gIlRoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyLiI7CiAg
ICAgICAgIG1vZGVsLnJlbW92ZSgpOwotICAgIH0sIHJlYXNvbiA9PiB7Ci0gICAgICAgIGxheWVy
cy50ZXh0Q29udGVudCA9IGBGYWlsZWQuIE1vZGVsIGRpZCBub3QgbG9hZDogJHtyZWFzb259YDsK
LSAgICB9KS5maW5hbGx5KCgpID0+IHsgCi0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0pOworICAgICAgICB3
aW5kb3cudGVzdFJ1bm5lcj8ubm90aWZ5RG9uZSgpOworICAgIH07CisKKyAgICBpZiAobW9kZWwu
Y29tcGxldGUpCisgICAgICAgIG1vZGVsRGlkTG9hZCgpOworICAgIGVsc2UgeworICAgICAgICBt
b2RlbC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgbW9kZWxEaWRMb2FkKTsKKyAgICAgICAgbW9k
ZWwuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBldmVudCA9PiB7CisgICAgICAgICAgICBsYXll
cnMudGV4dENvbnRlbnQgPSBgRmFpbGVkLiBNb2RlbCBkaWQgbm90IGxvYWQuYDsKKyAgICAgICAg
ICAgIHdpbmRvdy50ZXN0UnVubmVyPy5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0K
IDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9k
ZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWdyYXBoaWNzLWxheWVycy5odG1sIGIvTGF5b3V0VGVz
dHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWdyYXBoaWNzLWxheWVycy5odG1sCmluZGV4
IGYwOTM4M2ViYzgyNTIyMTNjM2NkYzkyMzBlMGQwZjY5YWQ2ZDFmOGEuLmFmMWEyMWE4ZjEwN2Zk
NDgwMWQ4YzUyMmJkYmY0Njk2MTY4MDg4NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21vZGVs
LWVsZW1lbnQvbW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZ3JhcGhpY3MtbGF5ZXJzLmh0bWwKQEAg
LTYsMjYgKzYsMjcgQEAKIDwvbW9kZWw+CiA8cHJlIGlkPSJsYXllcnMiPjwvcHJlPgogPHNjcmlw
dD4KLSAgICBsZXQgbGF5ZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVycyIpOwor
ICAgIHdpbmRvdy50ZXN0UnVubmVyPy53YWl0VW50aWxEb25lKCk7CisgICAgd2luZG93LnRlc3RS
dW5uZXI/LmR1bXBBc1RleHQoKTsKIAotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGxheWVycy50ZXh0Q29udGVudCA9ICJUaGlz
IHRlc3QgcmVxdWlyZXMgdGVzdFJ1bm5lci4iOworICAgIGNvbnN0IGxheWVycyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJsYXllcnMiKTsKKyAgICBjb25zdCBtb2RlbCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJtb2RlbCIpOwogCi0gICAgbGV0IG1vZGVsID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm1vZGVsIik7Ci0KLSAgICBtb2RlbC5yZWFkeS50aGVuKHZhbHVlID0+IHsKLSAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgbGF5ZXJzLmlubmVyVGV4
dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KTsKKyAgICBjb25z
dCBtb2RlbERpZExvYWQgPSAoKSA9PiB7CisgICAgICAgIGxheWVycy5pbm5lclRleHQgPSB3aW5k
b3cuaW50ZXJuYWxzPy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpID8/ICJUaGlzIHRlc3QgcmVx
dWlyZXMgdGVzdFJ1bm5lci4iOwogICAgICAgICBtb2RlbC5yZW1vdmUoKTsKLSAgICB9LCByZWFz
b24gPT4gewotICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgPSBgRmFpbGVkLiBNb2RlbCBkaWQg
bm90IGxvYWQ6ICR7cmVhc29ufWA7Ci0gICAgfSkuZmluYWxseSgoKSA9PiB7IAotICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKLSAgICB9KTsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXI/Lm5vdGlmeURvbmUoKTsKKyAg
ICB9CisKKyAgICBpZiAobW9kZWwuY29tcGxldGUpCisgICAgICAgIG1vZGVsRGlkTG9hZCgpOwor
ICAgIGVsc2UgeworICAgICAgICBtb2RlbC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgbW9kZWxE
aWRMb2FkKTsKKyAgICAgICAgbW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBldmVudCA9
PiB7CisgICAgICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgPSBgRmFpbGVkLiBNb2RlbCBkaWQg
bm90IGxvYWQuYDsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyPy5ub3RpZnlEb25lKCk7
CisgICAgICAgIH0pOworICAgIH0KIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1l
eHBlY3RlZC50eHQKaW5kZXggZjg3YjI0NTI0YTE4ODFkZmNhNWE2MjVjY2U0MWZjMDU1OWUwMjQ2
Ni4uODdmMjk3NjQ5Y2VmYmFiNTYzZjUzM2MyYWMzNjE1OWExYjE3YjJiZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktZXhw
ZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBAQAotVGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRo
ZSB3b3JkICJQYXNzZWQiIGJlbG93OgogCi1QYXNzZWQKK1BBU1MgPG1vZGVsPiByZWplY3RzIHRo
ZSByZWFkeSBwcm9taXNlIHdoZW4gcHJvdmlkZWQgd2l0aCBhbiB1bmtub3duIHJlc291cmUuCitQ
QVNTIDxtb2RlbD4gcmVqZWN0cyB0aGUgcmVhZHkgcHJvbWlzZSB3aGVuIGl0cyByZXNvdXJjZSBs
b2FkIGlzIGFib3J0ZWQuCitQQVNTIDxtb2RlbD4gcmVzb2x2ZXMgdGhlIHJlYWR5IHByb21pc2Ug
d2hlbiBwcm92aWRlZCB3aXRoIGEga25vd24gcmVzb3VyY2UuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWFib3J0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5
LWxvYWQtYWJvcnRlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGY4N2IyNDUyNGExODgxZGZjYTVhNjI1Y2NlNDFmYzA1NTllMDI0NjYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVu
dC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtYWJvcnRlZC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLVRoaXMgdGVzdCBwYXNzZXMgaWYgeW91IHNlZSB0aGUgd29y
ZCAiUGFzc2VkIiBiZWxvdzoKLQotUGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2Rl
bC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVkLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhM2NhMTFiM2ZhZTZjZDFjZDI1NTA5N2Rm
M2IzMjQ5MjcxYTU1NjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQt
YWJvcnRlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBNb2RlbEVsZW1lbnRFbmFibGVkPXRydWUgXSAt
LT4KLTxodG1sPgotPGJvZHk+Ci08bW9kZWwgaWQ9Im1vZGVsIj4KLSAgICA8c291cmNlIGlkPSJt
b2RlbC1zb3VyY2UiPgotPC9tb2RlbD4KLTxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgeW91IHNlZSB0
aGUgd29yZCAiUGFzc2VkIiBiZWxvdzo8L3A+Ci08cCBpZD0icmVzdWx0Ij5GYWlsZWQ8L3A+Ci08
c2NyaXB0PgotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAg
fQotCi0gICAgbGV0IHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsK
LSAgICBsZXQgbW9kZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZWwiKTsKLSAgICBs
ZXQgc291cmNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGVsLXNvdXJjZSIpOwotCi0g
ICAgbW9kZWwucmVhZHkudGhlbih2YWx1ZSA9PiB7Ci0gICAgICAgIHJlc3VsdC50ZXh0Q29udGVu
dCA9ICJGYWlsZWQuIE1vZGVsIHNob3VsZCBub3QgaGF2ZSBsb2FkZWQsIGJ1dCBkaWQuIjsKLSAg
ICB9LCByZWFzb24gPT4gewotICAgICAgICBpZiAocmVhc29uLm5hbWUgPT0gIkFib3J0RXJyb3Ii
KQotICAgICAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gYFBhc3NlZGA7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHJlc3VsdC50ZXh0Q29udGVudCA9IGBGYWlsZWQuIFdyb25nIGVycm9y
IHR5cGU6ICR7cmVhc29ufS5gOwotICAgIH0pLmZpbmFsbHkoKCkgPT4geyAKLSAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Ci0gICAgfSk7Ci0KLSAgICBzb3VyY2Uuc3JjID0gInJlc291cmNlcy9oZWFydC51c2R6IjsKLQot
ICAgIG1vZGVsLnJlbW92ZUNoaWxkKHNvdXJjZSk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1y
ZWFkeS1sb2FkLWZhaWxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50
L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1mYWlsZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmODdiMjQ1MjRhMTg4MWRmY2E1YTYyNWNjZTQxZmMwNTU5ZTAy
NDY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWZhaWxlZC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRoaXMgdGVzdCBwYXNzZXMg
aWYgeW91IHNlZSB0aGUgd29yZCAiUGFzc2VkIiBiZWxvdzoKLQotUGFzc2VkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1mYWls
ZWQuaHRtbCBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1s
b2FkLWZhaWxlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxM2U4M2FjYjNi
MDYwMmM5NTIwYTMwZWFkMGY3ZTMzZDMyZDI0ZjRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxl
bWVudC1yZWFkeS1sb2FkLWZhaWxlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBNb2RlbEVsZW1lbnRF
bmFibGVkPXRydWUgXSAtLT4KLTxodG1sPgotPGJvZHk+Ci08bW9kZWwgaWQ9Im1vZGVsIj4KLSAg
ICA8c291cmNlIHNyYz0icmVzb3VyY2VzL2RvZXMtbm90LWV4aXN0LnVzZHoiPgotPC9tb2RlbD4K
LTxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgeW91IHNlZSB0aGUgd29yZCAiUGFzc2VkIiBiZWxvdzo8
L3A+Ci08cCBpZD0icmVzdWx0Ij5GYWlsZWQ8L3A+Ci08c2NyaXB0PgotICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgfQotCi0gICAgbGV0IHJlc3VsdCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKLSAgICBsZXQgbW9kZWwgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibW9kZWwiKTsKLQotICAgIG1vZGVsLnJlYWR5LnRoZW4odmFsdWUg
PT4gewotICAgICAgICByZXN1bHQudGV4dENvbnRlbnQgPSAiRmFpbGVkLiBNb2RlbCBzaG91bGQg
bm90IGhhdmUgbG9hZGVkLCBidXQgZGlkLiI7Ci0gICAgfSwgcmVhc29uID0+IHsKLSAgICAgICAg
aWYgKHJlYXNvbi5uYW1lID09ICJOZXR3b3JrRXJyb3IiKQotICAgICAgICAgICAgcmVzdWx0LnRl
eHRDb250ZW50ID0gYFBhc3NlZGA7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdC50
ZXh0Q29udGVudCA9IGBGYWlsZWQuIFdyb25nIGVycm9yIHR5cGU6ICR7cmVhc29ufS5gOwotICAg
IH0pLmZpbmFsbHkoKCkgPT4geyAKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfSk7Ci08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9k
ZWwtZWxlbWVudC1yZWFkeS5odG1sIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1l
bGVtZW50LXJlYWR5Lmh0bWwKaW5kZXggZTgwNjI0YWU1N2E1ZWMxOWI5MmMwNWYwNTM2MzUyZTFk
ZmFlNDI3NC4uODM5YjY5ODFmODNkZGI2N2YyYjVhYTM5MmM2MjUzYTBlYTY2M2I3YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0bWwK
QEAgLTEsMjggKzEsMzggQEAKLTwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgTW9kZWxFbGVtZW50RW5hYmxlZD10cnVlIF0gLS0+Ci08aHRtbD4KKzwhZG9jdHlwZSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPiZsdDttb2RlbD4gcmVhZHkgcHJvbWlz
ZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9tb2RlbC1lbGVtZW50LXRlc3QtdXRpbHMu
anMiPjwvc2NyaXB0PgogPGJvZHk+Ci08bW9kZWwgaWQ9Im1vZGVsIj4KLSAgICA8c291cmNlIHNy
Yz0icmVzb3VyY2VzL2hlYXJ0LnVzZHoiPgotPC9tb2RlbD4KLTxwPlRoaXMgdGVzdCBwYXNzZXMg
aWYgeW91IHNlZSB0aGUgd29yZCAiUGFzc2VkIiBiZWxvdzo8L3A+Ci08cCBpZD0icmVzdWx0Ij5G
YWlsZWQ8L3A+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci0gICAgfQorJ3VzZSBzdHJpY3QnOwogCi0gICAgbGV0IHJlc3VsdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKLSAgICBsZXQgbW9kZWwgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibW9kZWwiKTsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25z
dCBbbW9kZWwsIHNvdXJjZV0gPSBjcmVhdGVNb2RlbEFuZFNvdXJjZSh0LCAicmVzb3VyY2VzL2Rv
ZXMtbm90LWV4aXN0LnVzZHoiKTsKKyAgICByZXR1cm4gbW9kZWwucmVhZHkudGhlbigKKyAgICAg
ICAgdmFsdWUgPT4gYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCByZWFkeSBwcm9taXNlIHJl
c29sdXRpb24uIiksCisgICAgICAgIHJlYXNvbiA9PiBhc3NlcnRfdHJ1ZShyZWFzb24udG9TdHJp
bmcoKS5pbmNsdWRlcygiTmV0d29ya0Vycm9yIiksICJUaGUgcmVhZHkgcHJvbWlzZSBpcyByZWpl
Y3RlZCB3aXRoIGEgTmV0d29ya0Vycm9yLiIpCisgICAgKTsKK30sIGA8bW9kZWw+IHJlamVjdHMg
dGhlIHJlYWR5IHByb21pc2Ugd2hlbiBwcm92aWRlZCB3aXRoIGFuIHVua25vd24gcmVzb3VyZS5g
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IFttb2RlbCwgc291cmNl
XSA9IGNyZWF0ZU1vZGVsQW5kU291cmNlKHQsICJyZXNvdXJjZXMvaGVhcnQudXNkeiIpOworICAg
IGNvbnN0IG1vZGVsUmVhZHkgPSBtb2RlbC5yZWFkeTsKKworICAgIHNvdXJjZS5yZW1vdmUoKTsK
KyAgICBhc3NlcnRfbm90X2VxdWFscyhtb2RlbC5yZWFkeSwgbW9kZWxSZWFkeSwgIlJlbW92aW5n
IHRoZSA8c291cmNlPiBjaGlsZCByZXNldHMgdGhlIHJlYWR5IHByb21pc2UuIik7CisKKyAgICBy
ZXR1cm4gbW9kZWxSZWFkeS50aGVuKAorICAgICAgICB2YWx1ZSA9PiBhc3NlcnRfdW5yZWFjaGVk
KCJVbmV4cGVjdGVkIHJlYWR5IHByb21pc2UgcmVzb2x1dGlvbi4iKSwKKyAgICAgICAgcmVhc29u
ID0+IGFzc2VydF90cnVlKHJlYXNvbi50b1N0cmluZygpLmluY2x1ZGVzKCJBYm9ydEVycm9yIiks
ICJUaGUgcmVhZHkgcHJvbWlzZSBpcyByZWplY3RlZCB3aXRoIGEgTmV0d29ya0Vycm9yLiIpCisg
ICAgKTsKK30sIGA8bW9kZWw+IHJlamVjdHMgdGhlIHJlYWR5IHByb21pc2Ugd2hlbiBpdHMgcmVz
b3VyY2UgbG9hZCBpcyBhYm9ydGVkLmApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgY29uc3QgW21vZGVsLCBzb3VyY2VdID0gY3JlYXRlTW9kZWxBbmRTb3VyY2UodCwgInJlc291
cmNlcy9jdWJlLnVzZHoiKTsKKyAgICBhd2FpdCBtb2RlbC5yZWFkeTsKK30sIGA8bW9kZWw+IHJl
c29sdmVzIHRoZSByZWFkeSBwcm9taXNlIHdoZW4gcHJvdmlkZWQgd2l0aCBhIGtub3duIHJlc291
cmNlLmApOwogCi0gICAgbW9kZWwucmVhZHkudGhlbih2YWx1ZSA9PiB7Ci0gICAgICAgIHJlc3Vs
dC50ZXh0Q29udGVudCA9IGBQYXNzZWRgOwotICAgIH0sIHJlYXNvbiA9PiB7Ci0gICAgICAgIHJl
c3VsdC50ZXh0Q29udGVudCA9IGBGYWlsZWQuIE1vZGVsIGRpZCBub3QgbG9hZDogJHtyZWFzb259
YDsKLSAgICB9KS5maW5hbGx5KCgpID0+IHsgCi0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0pOwogPC9zY3Jp
cHQ+CiA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVt
ZW50L3Jlc291cmNlcy9tb2RlbC1lbGVtZW50LXRlc3QtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9t
b2RlbC1lbGVtZW50L3Jlc291cmNlcy9tb2RlbC1lbGVtZW50LXRlc3QtdXRpbHMuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGE1MzRjY2MwZmIwMTE0ZTQyMzVhYTRlMTA1NTI2OGVkZGQ3ZWNjMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvcmVzb3VyY2VzL21vZGVsLWVsZW1l
bnQtdGVzdC11dGlscy5qcwpAQCAtMCwwICsxLDE0IEBACisKK2NvbnN0IGNyZWF0ZU1vZGVsQW5k
U291cmNlID0gKHRlc3QsIHNyYykgPT4geworICAgIGNvbnN0IG1vZGVsID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibW9kZWwiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1vZGVs
KTsKKworICAgIGNvbnN0IHNvdXJjZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNvdXJjZSIp
OworICAgIGlmIChzcmMpCisgICAgICAgIHNvdXJjZS5zcmMgPSBzcmM7CisgICAgbW9kZWwuYXBw
ZW5kQ2hpbGQoc291cmNlKTsKKworICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gbW9kZWwucmVt
b3ZlKCkpOworCisgICAgcmV0dXJuIFttb2RlbCwgc291cmNlXTsKK307CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzk0
Yjk5NWU3MWQzOTdmZWFiYjhiZGUwNDU2NTBhNTRjNTJmYTIyNi4uMGE2NThhMzFhNWFjM2IyNmU5
YmE0ZDYxYmQ4ZjM3ZGIyZGUzNzdjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTUyLDMgKzE1Miw2IEBAIGh0dHAv
dGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1hbGxvd2VkLWNyb3Nz
b3JpZ2luLmh0bWwgWyBQYXNzCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3dlYmF1ZGlvLXJlbmRlci1y
ZW1vdGUtYXVkaW8tYWxsb3dlZC1jcm9zc29yaWdpbi1yZWRpcmVjdC5odG1sIFsgUGFzcyBUaW1l
b3V0IF0KIAogd2Via2l0Lm9yZy9iLzIyMzk0OSBjcnlwdG8vY3J5cHRvLXJhbmRvbS12YWx1ZXMt
b29tLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQorCisjIFRoaXMgdGVzdCByZWxpZXMgb24gQVJRTCBB
UElzIHdoaWNoIGFyZSBub3QgYXZhaWxhYmxlIGluIHRoZSBTaW11bGF0b3IKK21vZGVsLWVsZW1l
bnQvbW9kZWwtZWxlbWVudC1yZWFkeS5odG1sIFsgU2tpcCBdClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAw
ZTNlN2JiN2Y1NzJjZjFiYjQ3M2YwMzUzNTdmZTE3OTE1YmQwY2I0Li4zZjk2YWRjNzk5NTVmMjQ4
MDcyNTQwMmEzM2E2MjZiY2Y5ODM1ZWQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMjI4Miw3ICsyMjgyLDcgQEAgd2Via2l0Lm9yZy9iLzIyODMxMSBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2NvcGluZy9jc3Mtc2NvcGlu
Zy0KICMgd2Via2l0Lm9yZy9iLzIyODIwMCBBZGp1c3RpbmcgdGVzdCBleHBlY3RhdGlvbnMgZm9y
IE1vbnRlcmV5IG9uIE9wZW4gU291cmNlIDxyZGFyOi8vODAzNDQxMzg+OgogWyBNb250ZXJleSBd
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29ubmVjdGlvbi1wb29sL25l
dHdvcmstcGFydGl0aW9uLWtleS5odG1sIFsgRmFpbHVyZSBdCiAKLSMgd2Via2l0Lm9yZy9iLzIy
ODIwMCBTZXR0aW5nIG11bHRpcGxlIHRlc3QgZXhwZWN0YXRpb25zIGZvciBNb25ldGVyeSBvbiBP
cGVuU291cmNlOgorIyB3ZWJraXQub3JnL2IvMjI4MjAwIFNldHRpbmcgbXVsdGlwbGUgdGVzdCBl
eHBlY3RhdGlvbnMgZm9yIE1vbnRlcmV5IG9uIE9wZW5Tb3VyY2U6CiBbIE1vbnRlcmV5IF0gbW9k
ZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWdyYXBoaWNzLWxheWVycy1vcGFjaXR5Lmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogWyBNb250ZXJleSBEZWJ1ZyBhcm02NCBdIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlc3RhcnRJY2UuaHR0cHMu
aHRtbCBbIFBhc3MgRmFpbHVyZSBDcmFzaCBdCiAKQEAgLTI0MjgsMyArMjQyOCw2IEBAIHBsYXRm
b3JtL21hYy9wbHVnaW5zL2NvbnZlcnQtcG9pbnQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9i
LzIyNjgyNiBbIE1vbnRlcmV5IF0gaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXkvQXBwbGVQYXlCdXR0
b24uaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMjIxMjMwIFsgQmlnU3VyKyBdIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWFk
ZHNvdXJjZWJ1ZmZlci5odG1sIFsgUGFzcyBGYWlsdXJlIF0KKworIyA8bW9kZWw+IHRlc3RzIGlu
dm9sdmluZyB0aGUgcmVhZHkgcHJvbWlzZSBjYW4gb25seSB3b3JrIG9uIE1vbnRlcmV5IGFuZCB1
cAorWyBDYXRhbGluYSBCaWdTdXIgXSBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHku
aHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447050</attachid>
            <date>2021-12-13 13:17:23 -0800</date>
            <delta_ts>2022-01-23 12:25:08 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233706-20211213221721.patch</filename>
            <type>text/plain</type>
            <size>43307</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2OTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUyYzBhMzJjMzZjNDMz
YThmMTZhNjEwYWFjMGYwNTA1ZDVjNzg0Zi4uNmNmOTZhYWI3OGRlMTQyYTc0YTlkZWI5NThhYTEw
NTE1OWFiYjMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTEzICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQWRkIGxv
YWQgYW5kIGVycm9yIGV2ZW50cyB0byBkaXN0aW5ndWlzaCByZXNvdXJjZSBsb2FkIGZyb20gbW9k
ZWwgcmVhZGluZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzM3MDYKKyAgICAgICAgcmRhcjovLzg1OTIyNjk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQ2hyaXMgRHVtZXogYW5kIERlYW4gSmFja3Nvbi4KKworICAgICAgICBUZXN0OiBtb2RlbC1l
bGVtZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRzLmh0bWwKKworICAgICAg
ICBQcmlvciB0byB0aGlzIHBhdGNoLCA8bW9kZWw+IGVsZW1lbnRzIGhhZCBhICJyZWFkeSIgcHJv
bWlzZSB3aGljaCByZXNvbHZlZCBvbmNlIHRoZSByZXNvdXJjZSBoYWQgYmVlbiBsb2FkZWQuCisg
ICAgICAgIEhvd2V2ZXIsIHRoaXMgcHJvbWlzZSBzaG91bGQgYmUgdXNlZCB3aGVuIHRoZSA8bW9k
ZWw+IGlzIGZ1bGx5IHJlYWR5LCBhbmQgdGhpcyBpcyBkb25lIG9uIG1hY09TIGFuZCBpT1MgYXN5
bmNocm9ub3VzbHkKKyAgICAgICAgYWZ0ZXIgdGhlIHJlc291cmNlIGhhcyBiZWVuIGxvYWRlZCBi
eSB0aGUgc3VwcG9ydGluZyBBUlFMIGZyYW1ld29yay4gU28gd2UgbmVlZCBhIHdheSB0byBtb25p
dG9yIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBvZgorICAgICAgICB0aGUgcmVzb3VyY2UgbG9hZCBzcGVj
aWZpY2FsbHkuCisKKyAgICAgICAgVG8gdGhhdCBlbmQsIGFuZCBtYXRjaGluZyB0aGUgPGltZz4g
ZWxlbWVudCwgd2UgZGlzcGF0Y2ggImxvYWQiIGFuZCAiZXJyb3IiIGV2ZW50cyBvbiA8bW9kZWw+
IGVsZW1lbnRzIGFuZCBhZGQgYQorICAgICAgICAiY29tcGxldGUiIHByb3BlcnR5IHRvIGluZGlj
YXRlIHdoZXRoZXIgdGhlIHJlc291cmNlIGlzIGxvYWRlZC4KKworICAgICAgICBNZWFud2hpbGUs
IHRoZSAicmVhZHkiIHByb21pc2UgaXMgbm93IHJlc29sdmVkIHdoZW4gdGhlIG1vZGVsIGlzIGZ1
bGx5IGxvYWRlZCBieSB0aGUgc3VwcG9ydGluZyBmcmFtZXdvcmssIGluZGljYXRpbmcKKyAgICAg
ICAgdGhhdCBmdXJ0aGVyIEFQSXMgYXJlIHNhZmUgdG8gdXNlLgorCisgICAgICAgIFNpbmNlIGNy
ZWF0aW5nIHRoZSBzdXBwb3J0IEFSUUwgb2JqZWN0IGZvciBtYWNPUyBhbmQgaU9TIGFsc28gcmVx
dWlyZXMgdGhlIDxtb2RlbD4gZWxlbWVudCdzIHJlbmRlcmVyIGJlaW5nIGF2YWlsYWJsZSwKKyAg
ICAgICAgd2Ugb3B0IGludG8gImN1c3RvbSBzdHlsZSByZXNvbHZlIGNhbGxiYWNrcyIgc28gdGhh
dCB3ZSBtYXkgaW1wbGVtZW50IGRpZEF0dGFjaFJlbmRlcmVycygpIG9uIEhUTUxNb2RlbEVsZW1l
bnQgYW5kIGtlZXAKKyAgICAgICAgdHJhY2sgb2YgcmVuZGVyZXIgYXZhaWxhYmlsaXR5IGJlZm9y
ZSBhdHRlbXB0aW5nIHRvIGNyZWF0ZSB0aGUgTW9kZWxQbGF5ZXIuCisKKyAgICAgICAgKiBNb2R1
bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTW9kZWxFbGVtZW50OjpIVE1MTW9kZWxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNb2RlbEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxF
bGVtZW50OjpzZXRTb3VyY2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVu
dDo6ZGlkQXR0YWNoUmVuZGVyZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1l
bnQ6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6
Om1vZGVsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmNy
ZWF0ZU1vZGVsUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRp
ZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6ZGlk
RmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6YWN0aXZl
RE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50
Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21v
ZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwt
ZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbDoKKwogMjAyMS0xMi0xMyAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBDYXNjYWRlIExheWVyc10gTGF5
ZXJzIHNwZWNpZmllZCBpbiBpbXBvcnQgcnVsZXMgY2FuIG5vdCBiZSByZW9yZGVyZWQgb24gbWVk
aWEgcXVlcnkgZXZhbHVhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCmluZGV4IDc1ZGVhZDNiOTYwYmE5
YmM1MmFjYzcyMWU4YTkxY2I4NDIwYTY2ZmEuLmVhZmQ1M2ZiNWFkMGYyYWNhMWQzOTZhYzM4MWVl
ZTdmM2RhMjk4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKQEAgLTY1LDggKzY1LDEwIEBAIFdURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChIVE1MTW9kZWxFbGVtZW50KTsKIAogSFRNTE1vZGVsRWxl
bWVudDo6SFRNTE1vZGVsRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKKyAg
ICAsIEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKICAgICAsIG1fcmVhZHlQcm9taXNlIHsgbWFr
ZVVuaXF1ZVJlZjxSZWFkeVByb21pc2U+KCp0aGlzLCAmSFRNTE1vZGVsRWxlbWVudDo6cmVhZHlQ
cm9taXNlUmVzb2x2ZSkgfQogeworICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNr
cygpOwogfQogCiBIVE1MTW9kZWxFbGVtZW50Ojp+SFRNTE1vZGVsRWxlbWVudCgpCkBAIC03OSw3
ICs4MSw5IEBAIEhUTUxNb2RlbEVsZW1lbnQ6On5IVE1MTW9kZWxFbGVtZW50KCkKIAogUmVmPEhU
TUxNb2RlbEVsZW1lbnQ+IEhUTUxNb2RlbEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSFRNTE1vZGVsRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOworICAgIGF1dG8gbW9k
ZWwgPSBhZG9wdFJlZigqbmV3IEhUTUxNb2RlbEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
KyAgICBtb2RlbC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIG1vZGVsOwogfQogCiBS
ZWZQdHI8TW9kZWw+IEhUTUxNb2RlbEVsZW1lbnQ6Om1vZGVsKCkgY29uc3QKQEAgLTEzMSw5ICsx
MzUsMTIgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpzZXRTb3VyY2VVUkwoY29uc3QgVVJMJiB1
cmwpCiAgICAgICAgIG1fcmVhZHlQcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJv
ciB9KTsKIAogICAgIG1fcmVhZHlQcm9taXNlID0gbWFrZVVuaXF1ZVJlZjxSZWFkeVByb21pc2U+
KCp0aGlzLCAmSFRNTE1vZGVsRWxlbWVudDo6cmVhZHlQcm9taXNlUmVzb2x2ZSk7CisgICAgbV9z
aG91bGRDcmVhdGVNb2RlbFBsYXllclVwb25SZW5kZXJlckF0dGFjaG1lbnQgPSBmYWxzZTsKIAot
ICAgIGlmIChtX3NvdXJjZVVSTC5pc0VtcHR5KCkpCisgICAgaWYgKG1fc291cmNlVVJMLmlzRW1w
dHkoKSkgeworICAgICAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoKnRoaXMsIFRhc2tTb3Vy
Y2U6OkRPTU1hbmlwdWxhdGlvbiwgRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVu
dCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiAgICAg
ICAgIHJldHVybjsKKyAgICB9CiAKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9
IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CiAg
ICAgb3B0aW9ucy5kZXN0aW5hdGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Ok1vZGVs
OwpAQCAtMTQ1LDYgKzE1Miw3IEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6c2V0U291cmNlVVJM
KGNvbnN0IFVSTCYgdXJsKQogCiAgICAgYXV0byByZXNvdXJjZSA9IGRvY3VtZW50KCkuY2FjaGVk
UmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0TW9kZWxSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpKTsK
ICAgICBpZiAoIXJlc291cmNlLmhhc192YWx1ZSgpKSB7CisgICAgICAgIHF1ZXVlVGFza1RvRGlz
cGF0Y2hFdmVudCgqdGhpcywgVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICAgICAgbV9yZWFkeVByb21pc2UtPnJlamVjdChFeGNl
cHRpb24geyBOZXR3b3JrRXJyb3IgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNzUs
NiArMTgzLDE1IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MTW9kZWxFbGVtZW50Ojpj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzCiAgICAgcmV0dXJuIGNyZWF0ZVJl
bmRlcmVyPFJlbmRlck1vZGVsPigqdGhpcywgV1RGTW92ZShzdHlsZSkpOwogfQogCit2b2lkIEhU
TUxNb2RlbEVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycygpCit7CisgICAgaWYgKCFtX3Nob3Vs
ZENyZWF0ZU1vZGVsUGxheWVyVXBvblJlbmRlcmVyQXR0YWNobWVudCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9zaG91bGRDcmVhdGVNb2RlbFBsYXllclVwb25SZW5kZXJlckF0dGFjaG1lbnQg
PSBmYWxzZTsKKyAgICBjcmVhdGVNb2RlbFBsYXllcigpOworfQorCiAvLyBNQVJLOiAtIENhY2hl
ZFJhd1Jlc291cmNlQ2xpZW50CiAKIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6ZGF0YVJlY2VpdmVk
KENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgdWludDhfdCogZGF0YSwgaW50IGRhdGFM
ZW5ndGgpCkBAIC0xOTcsNiArMjE0LDggQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50Ojpub3RpZnlG
aW5pc2hlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IE5ldHdvcmtMb2EKICAgICBp
ZiAocmVzb3VyY2UubG9hZEZhaWxlZE9yQ2FuY2VsZWQoKSkgewogICAgICAgICBtX2RhdGEgPSBu
dWxscHRyOwogCisgICAgICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1Nv
dXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2
ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKKwog
ICAgICAgICBpbnZhbGlkYXRlUmVzb3VyY2VIYW5kbGVBbmRVcGRhdGVSZW5kZXJlcigpOwogCiAg
ICAgICAgIG1fcmVhZHlQcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgTmV0d29ya0Vycm9yIH0p
OwpAQCAtMjA2LDkgKzIyNSw5IEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6bm90aWZ5RmluaXNo
ZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBOZXR3b3JrTG9hCiAgICAgbV9kYXRh
Q29tcGxldGUgPSB0cnVlOwogICAgIG1fbW9kZWwgPSBNb2RlbDo6Y3JlYXRlKG1fZGF0YS5yZWxl
YXNlTm9uTnVsbCgpLT5tYWtlQ29udGlndW91cygpLmdldCgpLCByZXNvdXJjZS5taW1lVHlwZSgp
LCByZXNvdXJjZS51cmwoKSk7CiAKLSAgICBpbnZhbGlkYXRlUmVzb3VyY2VIYW5kbGVBbmRVcGRh
dGVSZW5kZXJlcigpOworICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqdGhpcywgVGFza1Nv
dXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5sb2FkRXZl
bnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogCi0g
ICAgbV9yZWFkeVByb21pc2UtPnJlc29sdmUoKnRoaXMpOworICAgIGludmFsaWRhdGVSZXNvdXJj
ZUhhbmRsZUFuZFVwZGF0ZVJlbmRlcmVyKCk7CiAKICAgICBtb2RlbERpZENoYW5nZSgpOwogfQpA
QCAtMjE3LDI1ICsyMzYsMzQgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50Ojpub3RpZnlGaW5pc2hl
ZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IE5ldHdvcmtMb2EKIAogdm9pZCBIVE1M
TW9kZWxFbGVtZW50Ojptb2RlbERpZENoYW5nZSgpCiB7Ci0gICAgLy8gRklYTUU6IEZvciB0aGUg
ZWFybHkgcmV0dXJucyBoZXJlLCB3ZSBzaG91bGQgcHJvYmFibHkgaW5mb3JtIHRoZSBwYWdlIHRo
YXQgdGhpbmdzIGhhdmUKLSAgICAvLyBmYWlsZWQgdG8gcmVuZGVyLiBGb3IgdGhlIGNhc2Ugb2Yg
bm8tcmVuZGVyZXIsIHdlIHNob3VsZCBwcm9iYWJseSBhbHNvIGJ1aWxkIHRoZSBtb2RlbAotICAg
IC8vIHdoZW4vaWYgYSByZW5kZXJlciBpcyBjcmVhdGVkLgotCi0gICAgYXV0byBwYWdlID0gZG9j
dW1lbnQoKS5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQorICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVu
dCgpLnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpIHsKKyAgICAgICAgbV9yZWFkeVByb21pc2UtPnJl
amVjdChFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOwogICAgICAgICByZXR1cm47CisgICAgfQog
CiAgICAgYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOwotICAgIGlmICghcmVuZGVy
ZXIpCisgICAgaWYgKCFyZW5kZXJlcikgeworICAgICAgICBtX3Nob3VsZENyZWF0ZU1vZGVsUGxh
eWVyVXBvblJlbmRlcmVyQXR0YWNobWVudCA9IHRydWU7CiAgICAgICAgIHJldHVybjsKKyAgICB9
CiAKLSAgICBtX21vZGVsUGxheWVyID0gcGFnZS0+bW9kZWxQbGF5ZXJQcm92aWRlcigpLmNyZWF0
ZU1vZGVsUGxheWVyKCp0aGlzKTsKLSAgICBpZiAoIW1fbW9kZWxQbGF5ZXIpCisgICAgY3JlYXRl
TW9kZWxQbGF5ZXIoKTsKK30KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpjcmVhdGVNb2RlbFBs
YXllcigpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KCkucGFnZSgpKTsKKyAgICBtX21vZGVsUGxh
eWVyID0gZG9jdW1lbnQoKS5wYWdlKCktPm1vZGVsUGxheWVyUHJvdmlkZXIoKS5jcmVhdGVNb2Rl
bFBsYXllcigqdGhpcyk7CisgICAgaWYgKCFtX21vZGVsUGxheWVyKSB7CisgICAgICAgIG1fcmVh
ZHlQcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9KTsKICAgICAgICAgcmV0
dXJuOworICAgIH0KIAogICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIHRlbGwgdGhlIHBsYXllciBp
ZiB0aGUgc2l6ZSBjaGFuZ2VzIGFzIHdlbGwsIHNvIHBhc3NpbmcgdGhpcwogICAgIC8vIGluIHdp
dGggbG9hZCBwcm9iYWJseSBkb2Vzbid0IG1ha2Ugc2Vuc2UuCi0gICAgYXV0byBzaXplID0gcmVu
ZGVyZXItPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KGZhbHNlKS5zaXplKCk7CisgICAgQVNTRVJU
KHJlbmRlcmVyKCkpOworICAgIGF1dG8gc2l6ZSA9IHJlbmRlcmVyKCktPmFic29sdXRlQm91bmRp
bmdCb3hSZWN0KGZhbHNlKS5zaXplKCk7CiAgICAgbV9tb2RlbFBsYXllci0+bG9hZCgqbV9tb2Rl
bCwgc2l6ZSk7CiB9CiAKQEAgLTI1NSwxMSArMjgzLDE0IEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVu
dDo6ZGlkRmluaXNoTG9hZGluZyhNb2RlbFBsYXllciYgbW9kZWxQbGF5ZXIpCiAKICAgICBpZiAo
YXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAgICByZW5kZXJlci0+dXBk
YXRlRnJvbUVsZW1lbnQoKTsKKworICAgIG1fcmVhZHlQcm9taXNlLT5yZXNvbHZlKCp0aGlzKTsK
IH0KIAogdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkaWRGYWlsTG9hZGluZyhNb2RlbFBsYXllciYg
bW9kZWxQbGF5ZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImKQogewogICAgIEFTU0VSVF9VTlVTRUQo
bW9kZWxQbGF5ZXIsICZtb2RlbFBsYXllciA9PSBtX21vZGVsUGxheWVyKTsKKyAgICBtX3JlYWR5
UHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IgfSk7CiB9CiAKIEdyYXBoaWNz
TGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBIVE1MTW9kZWxFbGVtZW50OjpwbGF0Zm9ybUxheWVySUQo
KQpAQCAtNTUyLDYgKzU4MywxOCBAQCB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OnNldElzTXV0ZWQo
Ym9vbCBpc011dGVkLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taQogICAgIH0pOwog
fQogCitjb25zdCBjaGFyKiBIVE1MTW9kZWxFbGVtZW50OjphY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gIkhUTUxNb2RlbEVsZW1lbnQiOworfQorCitib29sIEhUTUxN
b2RlbEVsZW1lbnQ6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAoreworICAgIC8v
IFdlIG5lZWQgdG8gZW5zdXJlIHRoZSBKUyB3cmFwcGVyIGlzIGtlcHQgYWxpdmUgaWYgYSBsb2Fk
IGlzIGluIHByb2dyZXNzIGFuZCB3ZSBtYXkgeWV0IGRpc3BhdGNoCisgICAgLy8gImxvYWQiIG9y
ICJlcnJvciIgZXZlbnRzLCBpZS4gYXMgbG9uZyBhcyB3ZSBoYXZlIGEgcmVzb3VyY2UsIG1lYW5p
bmcgd2UgYXJlIGluIHRoZSBwcm9jZXNzIG9mIGxvYWRpbmcuCisgICAgcmV0dXJuIG1fcmVzb3Vy
Y2U7Cit9CisKICNpZiBQTEFURk9STShDT0NPQSkKIFZlY3RvcjxSZXRhaW5QdHI8aWQ+PiBIVE1M
TW9kZWxFbGVtZW50OjphY2Nlc3NpYmlsaXR5Q2hpbGRyZW4oKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKaW5k
ZXggMDVhMWNkYWEzZTE0ODc3YTBhZTQ2NWI2MzQ5YWE1YmJiMWFmMmM4Mi4uOWVhYWU3NzAxNTcw
OGY3YmZiNDc0ZWVhZmZhNzEzMDc0Y2Q4OTUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAKICNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKIAorI2luY2x1ZGUgIkFjdGl2ZURP
TU9iamVjdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmF3UmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5o
IgpAQCAtNDksNyArNTAsNyBAQCBjbGFzcyBNb3VzZUV2ZW50OwogdGVtcGxhdGU8dHlwZW5hbWUg
SURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogdGVtcGxhdGU8dHlwZW5hbWUgSURM
VHlwZT4gY2xhc3MgRE9NUHJvbWlzZVByb3h5V2l0aFJlc29sdmVDYWxsYmFjazsKIAotY2xhc3Mg
SFRNTE1vZGVsRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHJpdmF0ZSBDYWNo
ZWRSYXdSZXNvdXJjZUNsaWVudCwgcHVibGljIE1vZGVsUGxheWVyQ2xpZW50IHsKK2NsYXNzIEhU
TUxNb2RlbEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQsIHByaXZhdGUgQ2FjaGVk
UmF3UmVzb3VyY2VDbGllbnQsIHB1YmxpYyBNb2RlbFBsYXllckNsaWVudCwgcHVibGljIEFjdGl2
ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1MTW9kZWxFbGVtZW50
KTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEhUTUxNb2RlbEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKQEAgLTU3LDYgKzU4LDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzb3VyY2VzQ2hhbmdlZCgpOwogICAgIGNvbnN0IFVSTCYgY3VycmVudFNyYygp
IGNvbnN0IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9CisgICAgYm9vbCBjb21wbGV0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGF0YUNvbXBsZXRlOyB9CiAKICAgICAvLyBNQVJLOiBET00gRnVuY3Rpb25z
IGFuZCBBdHRyaWJ1dGVzCiAKQEAgLTEwNiwxNCArMTA4LDIwIEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHNldFNvdXJjZVVSTChjb25zdCBVUkwmKTsKICAgICB2b2lkIG1vZGVsRGlkQ2hhbmdlKCk7
CisgICAgdm9pZCBjcmVhdGVNb2RlbFBsYXllcigpOwogCiAgICAgSFRNTE1vZGVsRWxlbWVudCYg
cmVhZHlQcm9taXNlUmVzb2x2ZSgpOwogCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgdmly
dHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IGZpbmFsOworCiAgICAgLy8gRE9NIG92ZXJy
aWRlcy4KICAgICB2b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVu
dCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50KSBmaW5hbDsKIAogICAgIC8vIFJlbmRlcmluZyBvdmVy
cmlkZXMuCiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKKyAgICB2
b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIGZpbmFsOwogCiAgICAgLy8gQ2FjaGVkUmF3UmVzb3Vy
Y2VDbGllbnQgb3ZlcnJpZGVzLgogICAgIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNl
JiwgY29uc3QgdWludDhfdCogZGF0YSwgaW50IGRhdGFMZW5ndGgpIGZpbmFsOwpAQCAtMTM4LDYg
KzE0Niw3IEBAIHByaXZhdGU6CiAgICAgVW5pcXVlUmVmPFJlYWR5UHJvbWlzZT4gbV9yZWFkeVBy
b21pc2U7CiAgICAgYm9vbCBtX2RhdGFDb21wbGV0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lz
RHJhZ2dpbmcgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRDcmVhdGVNb2RlbFBsYXllclVw
b25SZW5kZXJlckF0dGFjaG1lbnQgeyBmYWxzZSB9OwogCiAgICAgUmVmUHRyPE1vZGVsUGxheWVy
PiBtX21vZGVsUGxheWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbAppbmRleCAzZmY2Y2U5NjZkZTNm
MGI3YmRmODZiNWZmMmU1ZGEwNzU1MGQ2YTE1Li40NWI4ZmQyNmM3NGZlYzNiOTIwYzM1NDg0MDBj
ZDcyZTgyYzU4ZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaWRsCkBAIC0zMCw2ICszMCw3IEBACiBdIGlu
dGVyZmFjZSBIVE1MTW9kZWxFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgIFtVUkxdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgY3VycmVudFNyYzsKIAorICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIGNvbXBsZXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNlPEhU
TUxNb2RlbEVsZW1lbnQ+IHJlYWR5OwogCiAgICAgdW5kZWZpbmVkIGVudGVyRnVsbHNjcmVlbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50
Q29udHJvbGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxF
bGVtZW50Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDg2OGMxZTU3MzYxNWMyMDI4MmYyNzQ3ZmU3
NmIxNmM5ZTU1NzAyYTMuLjUzNDE4YjlhMDg2MzExM2U5MDcxMThmNDFlOWUyYzg4MjY3NDhlMTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENv
bnRyb2xsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2Rl
bEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KQEAgLTE2NCwzMSArMTY0LDM1IEBAIHZvaWQgTW9k
ZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhVUkwgZmls
ZVVSTCwgU3RyaW5nIHV1CiAgICAgLy8gRklYTUU6IFdoeSBpcyB0aGlzIG5vdCBqdXN0IHVzaW5n
IG5vcm1hbCBVUkwgLT4gTlNVUkwgY29udmVyc2lvbj8KICAgICBhdXRvIHVybCA9IGFkb3B0TlMo
W1tOU1VSTCBhbGxvY10gaW5pdEZpbGVVUkxXaXRoUGF0aDpmaWxlVVJMLmZpbGVTeXN0ZW1QYXRo
KCldKTsKIAorICAgIGF1dG8gaGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyV2l0aEZpbmFsaXpl
cjx2b2lkKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvcj4pPihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgW3VybF0gKEZ1bmN0aW9u
PHZvaWQoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWludDMyX3Q+LCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yPik+JiBjb21wbGV0aW9uSGFuZGxlcikgeworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtYWtlVW5leHBlY3RlZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHsgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvcjo6VHlwZTo6R2VuZXJhbCB9KSk7CisgICAgfSk7CisKICAgICBSRUxFQVNFX0FT
U0VSVChpc01haW5SdW5Mb29wKCkpOwotICAgIFtwcmV2aWV3IHNldHVwUmVtb3RlQ29ubmVjdGlv
bldpdGhDb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH0sIHByZXZpZXcsIHV1aWQgPSBXVEZNb3ZlKHV1aWQpLCB1cmwgPSBXVEZNb3ZlKHVy
bCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChOU0Vy
cm9yICpjb250ZXh0RXJyb3IpIG11dGFibGUgeworICAgIFtwcmV2aWV3IHNldHVwUmVtb3RlQ29u
bmVjdGlvbldpdGhDb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIHByZXZpZXcsIHV1aWQgPSBXVEZNb3ZlKHV1aWQpLCB1cmwgPSBXVEZN
b3ZlKHVybCksIGhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpXSAoTlNFcnJvciAqY29udGV4dEVy
cm9yKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGNvbnRleHRFcnJvcikgewogICAgICAgICAgICAg
TE9HKE1vZGVsRWxlbWVudCwgIlVuYWJsZSB0byBjcmVhdGUgcmVtb3RlIGNvbm5lY3Rpb24gZm9y
IHV1aWQgJXM6ICVALiIsIHV1aWQudXRmOCgpLmRhdGEoKSwgY29udGV4dEVycm9yLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKTsKIAotICAgICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlz
ID0gV1RGTW92ZSh3ZWFrVGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlciksIGVycm9yID0gV2ViQ29yZTo6UmVzb3VyY2VFcnJvciB7IGNvbnRleHRFcnJv
ciB9XSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhp
cyA9IFdURk1vdmUod2Vha1RoaXMpLCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgZXJyb3Ig
PSBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHsgY29udGV4dEVycm9yIH1dICgpIG11dGFibGUgewog
ICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKGVy
cm9yKSk7CisgICAgICAgICAgICAgICAgaGFuZGxlcihtYWtlVW5leHBlY3RlZChlcnJvcikpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAg
ICBMT0coTW9kZWxFbGVtZW50LCAiRXN0YWJsaXNoZWQgcmVtb3RlIGNvbm5lY3Rpb24gd2l0aCBV
VUlEICVzLiIsIHV1aWQudXRmOCgpLmRhdGEoKSk7CiAKLSAgICAgICAgW3ByZXZpZXcgcHJlcGFy
ZVByZXZpZXdPZkZpbGVBdFVSTDp1cmwuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2Nr
UHRyKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBwcmV2aWV3LCB1dWlkID0gV1RGTW92
ZSh1dWlkKSwgdXJsID0gV1RGTW92ZSh1cmwpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSAoTlNFcnJvciAqbG9hZEVycm9yKSBtdXRhYmxlIHsKKyAgICAg
ICAgW3ByZXZpZXcgcHJlcGFyZVByZXZpZXdPZkZpbGVBdFVSTDp1cmwuZ2V0KCkgY29tcGxldGlv
bkhhbmRsZXI6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBwcmV2
aWV3LCB1dWlkID0gV1RGTW92ZSh1dWlkKSwgdXJsID0gV1RGTW92ZSh1cmwpLCBoYW5kbGVyID0g
V1RGTW92ZShoYW5kbGVyKV0gKE5TRXJyb3IgKmxvYWRFcnJvcikgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBpZiAobG9hZEVycm9yKSB7CiAgICAgICAgICAgICAgICAgTE9HKE1vZGVsRWxlbWVudCwg
IlVuYWJsZSB0byBsb2FkIGZpbGUgZm9yIHV1aWQgJXM6ICVALiIsIHV1aWQudXRmOCgpLmRhdGEo
KSwgbG9hZEVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKTsKIAotICAgICAgICAgICAgICAgIGNh
bGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBlcnJvciA9IFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgeyBsb2FkRXJyb3IgfV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAg
Y2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGhhbmRsZXIg
PSBXVEZNb3ZlKGhhbmRsZXIpLCBlcnJvciA9IFdlYkNvcmU6OlJlc291cmNlRXJyb3IgeyBsb2Fk
RXJyb3IgfV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMp
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoZXJyb3IpKTsKKyAgICAgICAgICAgICAg
ICAgICAgaGFuZGxlcihtYWtlVW5leHBlY3RlZChlcnJvcikpOwogICAgICAgICAgICAgICAgIH0p
OwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTE5NiwxMSArMjAw
LDExIEBAIHZvaWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50RGlkQ3JlYXRl
UHJldmlldyhVUkwgZmlsZVVSTCwgU3RyaW5nIHV1CiAgICAgICAgICAgICBMT0coTW9kZWxFbGVt
ZW50LCAiTG9hZGVkIGZpbGUgd2l0aCBVVUlEICVzLiIsIHV1aWQudXRmOCgpLmRhdGEoKSk7CiAK
ICAgICAgICAgICAgIGF1dG8gY29udGV4dElkID0gW3ByZXZpZXcgY29udGV4dElkXTsKLSAgICAg
ICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB1
dWlkID0gV1RGTW92ZSh1dWlkKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgY29udGV4dElkXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNhbGxPbk1h
aW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB1dWlkID0gV1RGTW92ZSh1
dWlkKSwgaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlciksIGNvbnRleHRJZF0gKCkgbXV0YWJsZSB7
CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjptYWtlX3BhaXIo
dXVpZCwgY29udGV4dElkKSk7CisgICAgICAgICAgICAgICAgaGFuZGxlcihzdGQ6Om1ha2VfcGFp
cih1dWlkLCBjb250ZXh0SWQpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KS5nZXQoKV07
CiAgICAgfSkuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDRkMWFiZWYyMTUxZjYzZWM5MTNlNTUxYmE3ZDk4YjJiMmFkYzkxMGQuLjZm
MGQ5Nzk4ZjkwY2NjNGRjNDQzOTVmN2NiYWI3MjQ3MzI1NDU2MmIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0x
Mi0xMyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBbTW9k
ZWxdIEFkZCBsb2FkIGFuZCBlcnJvciBldmVudHMgdG8gZGlzdGluZ3Vpc2ggcmVzb3VyY2UgbG9h
ZCBmcm9tIG1vZGVsIHJlYWRpbmVzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMzNzA2CisgICAgICAgIHJkYXI6Ly84NTkyMjY5NworCisgICAgICAg
IFJldmlld2VkIGJ5IENocmlzIER1bWV6IGFuZCBEZWFuIEphY2tzb24uCisKKyAgICAgICAgVXNl
IHRoZSAibG9hZCIgZXZlbnQgaW5zdGVhZCBvZiB0aGUgInJlYWR5IiBwcm9taXNlIGZvciB0aGlz
IHRlc3Qgd2hpY2ggb25seSByZXF1aXJlcyBtb25pdG9yaW5nCisgICAgICAgIHRoZSA8bW9kZWw+
IHJlc291cmNlIGJlaW5nIGxvYWRlZC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKwogMjAyMS0xMi0xMyAgQW5nZWxvcyBPaWtvbm9tb3BvdWxvcyAgPGFuZ2Vsb3NAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbSlNDXSBVbmlmeSBkZWZhdWx0L25vaXN5IHRlc3RzIGRlZmluaXRp
b24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmREcm9w
VGVzdHNJT1MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EcmFnQW5kRHJvcFRl
c3RzSU9TLm1tCmluZGV4IDE4OThjM2RmYmRjY2M4ZWQyNDlhYTEzYTgwYTIwY2QxYzczYWIzMDAu
LjM5ODUxMTZjODdiODA4YjZmMWU0Nzg4MzJiNzY2MDM2MzUzZGJhYmQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRHJhZ0FuZERyb3BUZXN0c0lPUy5tbQpAQCAt
MjE5Nyw3ICsyMTk3LDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBDYW5TdGFydERyYWdPbk1v
ZGVsKQogICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQo
KSBmb3JVUkxTY2hlbWU6QCJtb2RlbCJdOwogICAgIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
MzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxtb2RlbD48c291cmNlIHNyYz0nbW9k
ZWw6Ly9jdWJlLnVzZHonPjwvbW9kZWw+PHNjcmlwdD5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnbW9kZWwnKVswXS5yZWFkeS50aGVuKCgpID0+IHsgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMubW9kZWxMb2FkaW5nLnBvc3RNZXNzYWdlKCdSRUFEWScpIH0pOzwvc2NyaXB0PiJd
OworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxtb2RlbD48c291
cmNlIHNyYz0nbW9kZWw6Ly9jdWJlLnVzZHonPjwvbW9kZWw+PHNjcmlwdD5kb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdtb2RlbCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBldmVudCA9PiB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5tb2RlbExvYWRpbmcucG9zdE1lc3NhZ2UoJ1JFQURZ
JykpOzwvc2NyaXB0PiJdOwogCiAgICAgd2hpbGUgKCFbbWVzc2FnZUhhbmRsZXIgZGlkTG9hZE1v
ZGVsXSkKICAgICAgICAgVXRpbDo6c3BpblJ1bkxvb3AoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ZjBjZThjZGZiOGEx
ZGFjNjE4ZTU5Y2M4MDEzZmFkM2QzZjNhZjk2Li4wNTZiZGQ2MTA4OWE0MWI4YmUxOTNiYzJiNjdj
NDljMWQwMGQxN2ZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMTItMTMgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01vZGVsXSBBZGQgbG9hZCBh
bmQgZXJyb3IgZXZlbnRzIHRvIGRpc3Rpbmd1aXNoIHJlc291cmNlIGxvYWQgZnJvbSBtb2RlbCBy
ZWFkaW5lc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMzcwNgorICAgICAgICByZGFyOi8vODU5MjI2OTcKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1leiBhbmQgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFJlbW92ZSBleGlzdGluZyB0
ZXN0cyBhcm91bmQgcmVzb3VyY2UgbG9hZGluZyBhbmQgcmVjcmVhdGUgdGhlbSBpbiB0ZXJtcyBv
ZiAibG9hZCIgYW5kICJlcnJvciIKKyAgICAgICAgZXZlbnRzIGluIG1vZGVsLWVsZW1lbnQvbW9k
ZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMuaHRtbCBhbmQgaW4gdGVybXMgb2YgdGhl
IHJlYWR5CisgICAgICAgIHByb21pc2UgaW4gbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJl
YWR5Lmh0bWwuCisKKyAgICAgICAgT3RoZXIgdGVzdHMgdXNpbmcgbW9kZWwucmVhZHkgZm9yIG90
aGVyIHB1cnBvc2VzIGFyZSBhbHNvIHJld3JpdHRlbiB1c2luZyBldmVudHMuIAorCisgICAgICAg
ICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWNvbnRlbnRzLWxheWVyLXVwZGF0ZXMtd2l0
aC1jbGlwcGluZy5odG1sOgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1j
b250ZW50cy1sYXllci11cGRhdGVzLmh0bWw6CisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2Rl
bC1lbGVtZW50LWVycm9yLWFuZC1sb2FkLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMu
aHRtbDogQWRkZWQuCisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWdyYXBo
aWNzLWxheWVycy1vcGFjaXR5Lmh0bWw6CisgICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1l
bGVtZW50LWdyYXBoaWNzLWxheWVycy5odG1sOgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9k
ZWwtZWxlbWVudC1yZWFkeS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbW9kZWwtZWxlbWVudC9t
b2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtYWJvcnRlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtYWJvcnRlZC5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFk
eS1sb2FkLWZhaWxlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbW9kZWwtZWxl
bWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0bWw6CisgICAgICAgICog
bW9kZWwtZWxlbWVudC9yZXNvdXJjZXMvbW9kZWwtZWxlbWVudC10ZXN0LXV0aWxzLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGNvbnN0LmNyZWF0ZU1vZGVsQW5kU291cmNlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMTItMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIEZldGNoUmVzcG9uc2U6OmNsb25lIHNob3VsZCB1c2Ug
dGhlIHJlbGV2YW50IHJlYWxtIGZvciB0aGUgY2xvbmVkIHJlc3BvbnNlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtY29udGVudHMtbGF5ZXItdXBk
YXRlcy13aXRoLWNsaXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVs
LWVsZW1lbnQtY29udGVudHMtbGF5ZXItdXBkYXRlcy13aXRoLWNsaXBwaW5nLmh0bWwKaW5kZXgg
ZTg5ZjI2ODlmMTQ0OWFlMWY3YjllMDAxOTA1MDkzNjdlNTljOWIxOC4uNjM0MWI3YTg1M2NjMmRm
NmJiNWM3ZWYzNWY5YTI1NWQ0ZjcxNzFiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwt
ZWxlbWVudC9tb2RlbC1lbGVtZW50LWNvbnRlbnRzLWxheWVyLXVwZGF0ZXMtd2l0aC1jbGlwcGlu
Zy5odG1sCisrKyBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1jb250
ZW50cy1sYXllci11cGRhdGVzLXdpdGgtY2xpcHBpbmcuaHRtbApAQCAtMiw0MyArMiw0MyBAQAog
PGh0bWw+CiA8Ym9keT4KIDxtb2RlbCBpZD0ibW9kZWwiIHN0eWxlPSJib3JkZXItcmFkaXVzOiA1
cHgiPgotICAgIDxzb3VyY2Ugc3JjPSJyZXNvdXJjZXMvaGVhcnQudXNkeiI+CisgICAgPHNvdXJj
ZT4KIDwvbW9kZWw+CiA8cHJlIGlkPSJsYXllcnMiPjwvcHJlPgogPHNjcmlwdD4KLSAgICBsZXQg
bGF5ZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVycyIpOwotICAgIGxldCBzb3Vy
Y2UgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic291cmNlIilbMF07CisgICAgd2lu
ZG93LnRlc3RSdW5uZXI/LndhaXRVbnRpbERvbmUoKTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lcj8u
ZHVtcEFzVGV4dCgpOwogCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLSAgICB9IGVsc2UKLSAgICAgICAgbGF5ZXJzLnRleHRDb250ZW50ID0gIlRoaXMgdGVzdCBy
ZXF1aXJlcyB0ZXN0UnVubmVyLiI7CisgICAgY29uc3QgbGF5ZXJzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImxheWVycyIpOworICAgIGNvbnN0IHNvdXJjZSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoInNvdXJjZSIpOworICAgIGNvbnN0IG1vZGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm1vZGVsIik7CiAKLSAgICBsZXQgbW9kZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bW9kZWwiKTsKLQotICAgIG1vZGVsLnJlYWR5LnRoZW4odmFsdWUgPT4geworICAgIGNvbnN0IG1v
ZGVsRGlkTG9hZEZpcnN0U291cmNlID0gKCkgPT4gewogICAgICAgICBsYXllcnMudGV4dENvbnRl
bnQgPSAiQmVmb3JlIENoYW5naW5nIFNvdXJjZTpcbiI7Ci0gICAgICAgIGxheWVycy50ZXh0Q29u
dGVudCArPSB3aW5kb3cuaW50ZXJuYWxzLnBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0KG1vZGVsLCB3
aW5kb3cuaW50ZXJuYWxzLlBMQVRGT1JNX0xBWUVSX1RSRUVfSU5DTFVERV9NT0RFTFMpOworICAg
ICAgICBsYXllcnMudGV4dENvbnRlbnQgKz0gd2luZG93LmludGVybmFscz8ucGxhdGZvcm1MYXll
clRyZWVBc1RleHQobW9kZWwsIHdpbmRvdy5pbnRlcm5hbHMuUExBVEZPUk1fTEFZRVJfVFJFRV9J
TkNMVURFX01PREVMUykgPz8gIlRoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyLiI7CisKKyAg
ICAgICAgbW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGV2ZW50ID0+IHsKKyAgICAgICAg
ICAgIGxheWVycy50ZXh0Q29udGVudCArPSAiQWZ0ZXIgQ2hhbmdpbmcgU291cmNlOlxuIjsKKyAg
ICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCArPSB3aW5kb3cuaW50ZXJuYWxzPy5wbGF0Zm9y
bUxheWVyVHJlZUFzVGV4dChtb2RlbCwgd2luZG93LmludGVybmFscy5QTEFURk9STV9MQVlFUl9U
UkVFX0lOQ0xVREVfTU9ERUxTKSA/PyAiVGhpcyB0ZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXIuIjsK
KyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyPy5ub3RpZnlEb25lKCk7CisgICAgICAgIH0s
IHsgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICBtb2RlbC5hZGRFdmVudExpc3RlbmVyKCJlcnJv
ciIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCA9IGBGYWlsZWQu
IFNlY29uZCBtb2RlbCBkaWQgbm90IGxvYWQuYDsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVu
bmVyPy5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKIAogICAgICAg
ICBzb3VyY2Uuc3JjID0gInJlc291cmNlcy9jdWJlLnVzZHoiOwotICAgICAgICBtb2RlbC5yZWFk
eS50aGVuKHZhbHVlID0+IHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewot
ICAgICAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCArPSAiQWZ0ZXIgQ2hhbmdpbmcgU291
cmNlOlxuIjsKLSAgICAgICAgICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgKz0gd2luZG93Lmlu
dGVybmFscy5wbGF0Zm9ybUxheWVyVHJlZUFzVGV4dChtb2RlbCwgd2luZG93LmludGVybmFscy5Q
TEFURk9STV9MQVlFUl9UUkVFX0lOQ0xVREVfTU9ERUxTKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSwgcmVhc29uID0+IHsKLSAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCA9IGBGYWls
ZWQuIFNlY29uZCBtb2RlbCBkaWQgbm90IGxvYWQ6ICR7cmVhc29ufWA7Ci0gICAgICAgIH0pLmZp
bmFsbHkoKCkgPT4geyAKLSAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAgfSk7Ci0gICAgICAg
IAotICAgIH0sIHJlYXNvbiA9PiB7Ci0gICAgICAgIGxheWVycy50ZXh0Q29udGVudCA9IGBGYWls
ZWQuIEZpcnN0IG1vZGVsIGRpZCBub3QgbG9hZDogJHtyZWFzb259YDsKLSAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0g
ICAgfSk7CisgICAgfTsKKworICAgIG1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBtb2Rl
bERpZExvYWRGaXJzdFNvdXJjZSwgeyBvbmNlOiB0cnVlIH0pOworICAgIG1vZGVsLmFkZEV2ZW50
TGlzdGVuZXIoImVycm9yIiwgZXZlbnQgPT4geworICAgICAgICBsYXllcnMudGV4dENvbnRlbnQg
PSBgRmFpbGVkLiBGaXJzdCBtb2RlbCBkaWQgbm90IGxvYWQuYDsKKyAgICAgICAgd2luZG93LnRl
c3RSdW5uZXI/Lm5vdGlmeURvbmUoKTsKKyAgICB9LCB7IG9uY2U6IHRydWUgfSk7CisKKyAgICBz
b3VyY2Uuc3JjID0gInJlc291cmNlcy9oZWFydC51c2R6IjsKKwogPC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVs
ZW1lbnQtY29udGVudHMtbGF5ZXItdXBkYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxl
bWVudC9tb2RlbC1lbGVtZW50LWNvbnRlbnRzLWxheWVyLXVwZGF0ZXMuaHRtbAppbmRleCA5ZjEz
YTY0NDI3Mzg0MDJmMWNlN2YxZTFhYzA1YmZkNzE2MWM0NmJhLi5jOTkyMTBhMzllMDcyZmExN2Mw
MDIxODM3NjJkYTdiMmI4M2E1ZWMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVt
ZW50L21vZGVsLWVsZW1lbnQtY29udGVudHMtbGF5ZXItdXBkYXRlcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1jb250ZW50cy1sYXllci11cGRhdGVz
Lmh0bWwKQEAgLTYsMzkgKzYsNDAgQEAKIDwvbW9kZWw+CiA8cHJlIGlkPSJsYXllcnMiPjwvcHJl
PgogPHNjcmlwdD4KLSAgICBsZXQgbGF5ZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxh
eWVycyIpOwotICAgIGxldCBzb3VyY2UgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
c291cmNlIilbMF07CisgICAgd2luZG93LnRlc3RSdW5uZXI/LndhaXRVbnRpbERvbmUoKTsKKyAg
ICB3aW5kb3cudGVzdFJ1bm5lcj8uZHVtcEFzVGV4dCgpOwogCi0gICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgbGF5ZXJzLnRleHRD
b250ZW50ID0gIlRoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyLiI7CisgICAgY29uc3QgbGF5
ZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVycyIpOworICAgIGNvbnN0IHNvdXJj
ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNvdXJjZSIpOworICAgIGNvbnN0IG1vZGVsID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGVsIik7CiAKLSAgICBsZXQgbW9kZWwgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZWwiKTsKLQotICAgIG1vZGVsLnJlYWR5LnRoZW4odmFs
dWUgPT4geworICAgIGNvbnN0IG1vZGVsRGlkTG9hZEZpcnN0U291cmNlID0gKCkgPT4gewogICAg
ICAgICBsYXllcnMudGV4dENvbnRlbnQgPSAiQmVmb3JlIENoYW5naW5nIFNvdXJjZTpcbiI7Ci0g
ICAgICAgIGxheWVycy50ZXh0Q29udGVudCArPSB3aW5kb3cuaW50ZXJuYWxzLnBsYXRmb3JtTGF5
ZXJUcmVlQXNUZXh0KG1vZGVsLCB3aW5kb3cuaW50ZXJuYWxzLlBMQVRGT1JNX0xBWUVSX1RSRUVf
SU5DTFVERV9NT0RFTFMpOworICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgKz0gd2luZG93Lmlu
dGVybmFscz8ucGxhdGZvcm1MYXllclRyZWVBc1RleHQobW9kZWwsIHdpbmRvdy5pbnRlcm5hbHMu
UExBVEZPUk1fTEFZRVJfVFJFRV9JTkNMVURFX01PREVMUykgPz8gIlRoaXMgdGVzdCByZXF1aXJl
cyB0ZXN0UnVubmVyLiI7CisKKyAgICAgICAgbW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
IGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCArPSAiQWZ0ZXIgQ2hh
bmdpbmcgU291cmNlOlxuIjsKKyAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCArPSB3aW5k
b3cuaW50ZXJuYWxzPy5wbGF0Zm9ybUxheWVyVHJlZUFzVGV4dChtb2RlbCwgd2luZG93LmludGVy
bmFscy5QTEFURk9STV9MQVlFUl9UUkVFX0lOQ0xVREVfTU9ERUxTKSA/PyAiVGhpcyB0ZXN0IHJl
cXVpcmVzIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyPy5ub3Rp
ZnlEb25lKCk7CisgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICBtb2RlbC5h
ZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGxheWVycy50
ZXh0Q29udGVudCA9IGBGYWlsZWQuIFNlY29uZCBtb2RlbCBkaWQgbm90IGxvYWQuYDsKKyAgICAg
ICAgICAgIHdpbmRvdy50ZXN0UnVubmVyPy5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIHsgb25j
ZTogdHJ1ZSB9KTsKIAogICAgICAgICBzb3VyY2Uuc3JjID0gInJlc291cmNlcy9jdWJlLnVzZHoi
OwotICAgICAgICBtb2RlbC5yZWFkeS50aGVuKHZhbHVlID0+IHsKLSAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCAr
PSAiQWZ0ZXIgQ2hhbmdpbmcgU291cmNlOlxuIjsKLSAgICAgICAgICAgICAgICBsYXllcnMudGV4
dENvbnRlbnQgKz0gd2luZG93LmludGVybmFscy5wbGF0Zm9ybUxheWVyVHJlZUFzVGV4dChtb2Rl
bCwgd2luZG93LmludGVybmFscy5QTEFURk9STV9MQVlFUl9UUkVFX0lOQ0xVREVfTU9ERUxTKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfSwgcmVhc29uID0+IHsKLSAgICAgICAgICAgIGxheWVy
cy50ZXh0Q29udGVudCA9IGBGYWlsZWQuIFNlY29uZCBtb2RlbCBkaWQgbm90IGxvYWQ6ICR7cmVh
c29ufWA7Ci0gICAgICAgIH0pLmZpbmFsbHkoKCkgPT4geyAKLSAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
LSAgICAgICAgfSk7Ci0gICAgICAgIAotICAgIH0sIHJlYXNvbiA9PiB7Ci0gICAgICAgIGxheWVy
cy50ZXh0Q29udGVudCA9IGBGYWlsZWQuIEZpcnN0IG1vZGVsIGRpZCBub3QgbG9hZDogJHtyZWFz
b259YDsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfSk7CisgICAgfQorCisgICAgaWYgKG1vZGVsLmNvbXBs
ZXRlKQorICAgICAgICBtb2RlbERpZExvYWRGaXJzdFNvdXJjZSgpOworICAgIGVsc2UgeworICAg
ICAgICBtb2RlbC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgbW9kZWxEaWRMb2FkRmlyc3RTb3Vy
Y2UsIHsgb25jZTogdHJ1ZSB9KTsKKyAgICAgICAgbW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigiZXJy
b3IiLCBldmVudCA9PiB7CisgICAgICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgPSBgRmFpbGVk
LiBGaXJzdCBtb2RlbCBkaWQgbm90IGxvYWQuYDsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVu
bmVyPy5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKKyAgICB9CiA8
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVs
LWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWVycm9yLWFuZC1sb2Fk
LWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZiZjkwODMxMzY1YmIwNGMwYmIwZGI2
NWQ3N2ZjMzQ0NzlkNjU3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21vZGVsLWVs
ZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorCitQQVNTIDxtb2RlbD4gZGlzcGF0Y2hlcyBhbiAiZXJyb3IiIGV2ZW50
IHdoZW4gaXRzIHJlc291cmNlIGxvYWQgaXMgYWJvcnRlZCBiZWZvcmUgY29tcGxldGlvbi4KK1BB
U1MgPG1vZGVsPiBkaXNwYXRjaGVzIGFuICJlcnJvciIgZXZlbnQgd2hlbiBpdHMgc3BlY2lmaWVk
IHJlc291cmNlIGRvZXMgbm90IGV4aXN0LgorUEFTUyA8bW9kZWw+IGRpc3BhdGNoZXMgYSAibG9h
ZCIgZXZlbnQgd2hlbiBpdHMgcmVzb3VyY2UgaXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZC4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWVycm9yLWFu
ZC1sb2FkLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVt
ZW50LWVycm9yLWFuZC1sb2FkLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5YTViZmMxMjI4YzBk
NTI3MDYwMTY2ZjAzYjQ4ZGQ4NDczZTJlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRzLmh0bWwK
QEAgLTAsMCArMSw1MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8dGl0bGU+Jmx0O21vZGVsPiBsb2FkIGFuZCBlcnJvciBldmVudHM8L3RpdGxlPgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvbW9kZWwtZWxlbWVudC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxi
b2R5PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgbW9kZWxfbG9hZF90ZXN0ID0g
KGV4cGVjdGVkRXZlbnQsIGV4ZWN1dG9yLCBkZXNjcmlwdGlvbikgPT4geworICAgIHByb21pc2Vf
dGVzdCh0ID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IFttb2RlbCwgc291cmNlXSA9IGNyZWF0ZU1vZGVsQW5k
U291cmNlKHQpOworCisgICAgICAgICAgICBjb25zdCBoYW5kbGVFdmVudCA9IGV2ZW50ID0+IHsK
KyAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gImxvYWQiKQorICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShtb2RlbC5jb21wbGV0ZSwgYG1vZGVsLmNvbXBsZXRlIGlzIHRy
dWUgdXBvbiByZWNlaXZpbmcgdGhlICJsb2FkIiBldmVudC5gKTsKKyAgICAgICAgICAgICAgICBl
bHNlIGlmIChldmVudC50eXBlID09PSAiZXJyb3IiKQorICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfZmFsc2UobW9kZWwuY29tcGxldGUsIGBtb2RlbC5jb21wbGV0ZSBpcyBmYWxzZSB1cG9uIHJl
Y2VpdmluZyB0aGUgImVycm9yIiBldmVudC5gKTsKKworICAgICAgICAgICAgICAgIGlmIChldmVu
dC50eXBlID09PSBleHBlY3RlZEV2ZW50KQorICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByZWplY3QoYHJlY2Vp
dmVkIHVuZXhwZWN0ZWQgZXZlbnQ6ICR7ZXZlbnQudHlwZX1gKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1vZGVsLmNvbXBsZXRlLCAibW9kZWwuY29tcGxldGUg
aXMgZmFsc2UgYmVmb3JlIHRoZSBsb2FkIGlzIGluaXRpYXRlZC4iKTsKKworICAgICAgICAgICAg
bW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGhhbmRsZUV2ZW50KTsKKyAgICAgICAgICAg
IG1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgaGFuZGxlRXZlbnQpOworCisgICAgICAg
ICAgICBleGVjdXRvcihzb3VyY2UpOworICAgICAgICB9KTsKKyAgICB9LCBkZXNjcmlwdGlvbik7
Cit9OworCittb2RlbF9sb2FkX3Rlc3QoImVycm9yIiwgc291cmNlID0+IHsKKyAgICBzb3VyY2Uu
c3JjID0gInJlc291cmNlcy9oZWFydC51c2R6IjsKKyAgICBzb3VyY2UucmVtb3ZlKCk7Cit9LCBg
PG1vZGVsPiBkaXNwYXRjaGVzIGFuICJlcnJvciIgZXZlbnQgd2hlbiBpdHMgcmVzb3VyY2UgbG9h
ZCBpcyBhYm9ydGVkIGJlZm9yZSBjb21wbGV0aW9uLmApOworCittb2RlbF9sb2FkX3Rlc3QoImVy
cm9yIiwgc291cmNlID0+IHsKKyAgICBzb3VyY2Uuc3JjID0gInJlc291cmNlcy9kb2VzLW5vdC1l
eGlzdC51c2R6IjsKK30sIGA8bW9kZWw+IGRpc3BhdGNoZXMgYW4gImVycm9yIiBldmVudCB3aGVu
IGl0cyBzcGVjaWZpZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QuYCk7CisKK21vZGVsX2xvYWRf
dGVzdCgibG9hZCIsIHNvdXJjZSA9PiB7CisgICAgc291cmNlLnNyYyA9ICJyZXNvdXJjZXMvY3Vi
ZS51c2R6IjsKK30sIGA8bW9kZWw+IGRpc3BhdGNoZXMgYSAibG9hZCIgZXZlbnQgd2hlbiBpdHMg
cmVzb3VyY2UgaXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZC5gKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZ3Jh
cGhpY3MtbGF5ZXJzLW9wYWNpdHkuaHRtbCBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9k
ZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMtb3BhY2l0eS5odG1sCmluZGV4IDQ5ODFlNmRiYjNj
OWM1NGU2NzFkNWEyYTZmYjVkMmZlN2IxMWUwOGIuLmE2MTMyZjkyNmQ3N2MxOGEwYjNmYzg4OWZm
N2U2YzNlNjUwMDg4YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9k
ZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMtb3BhY2l0eS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMtb3BhY2l0eS5odG1s
CkBAIC0xMywyNiArMTMsMjcgQEAKIDwvbW9kZWw+CiA8cHJlIGlkPSJsYXllcnMiPjwvcHJlPgog
PHNjcmlwdD4KLSAgICBsZXQgbGF5ZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVy
cyIpOworICAgIHdpbmRvdy50ZXN0UnVubmVyPy53YWl0VW50aWxEb25lKCk7CisgICAgd2luZG93
LnRlc3RSdW5uZXI/LmR1bXBBc1RleHQoKTsKIAotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGxheWVycy50ZXh0Q29udGVudCA9
ICJUaGlzIHRlc3QgcmVxdWlyZXMgdGVzdFJ1bm5lci4iOworICAgIGNvbnN0IGxheWVycyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllcnMiKTsKKyAgICBjb25zdCBtb2RlbCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIpOwogCi0gICAgbGV0IG1vZGVsID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm1vZGVsIik7Ci0KLSAgICBtb2RlbC5yZWFkeS50aGVuKHZhbHVlID0+
IHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgbGF5ZXJzLmlu
bmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMucGxhdGZvcm1MYXllclRyZWVBc1RleHQobW9kZWwp
OworICAgIGNvbnN0IG1vZGVsRGlkTG9hZCA9ICgpID0+IHsKKyAgICAgICAgbGF5ZXJzLmlubmVy
VGV4dCA9IHdpbmRvdy5pbnRlcm5hbHM/LnBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0KG1vZGVsKSA/
PyAiVGhpcyB0ZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXIuIjsKICAgICAgICAgbW9kZWwucmVtb3Zl
KCk7Ci0gICAgfSwgcmVhc29uID0+IHsKLSAgICAgICAgbGF5ZXJzLnRleHRDb250ZW50ID0gYEZh
aWxlZC4gTW9kZWwgZGlkIG5vdCBsb2FkOiAke3JlYXNvbn1gOwotICAgIH0pLmZpbmFsbHkoKCkg
PT4geyAKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfSk7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyPy5u
b3RpZnlEb25lKCk7CisgICAgfTsKKworICAgIGlmIChtb2RlbC5jb21wbGV0ZSkKKyAgICAgICAg
bW9kZWxEaWRMb2FkKCk7CisgICAgZWxzZSB7CisgICAgICAgIG1vZGVsLmFkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCBtb2RlbERpZExvYWQpOworICAgICAgICBtb2RlbC5hZGRFdmVudExpc3RlbmVy
KCJlcnJvciIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCA9IGBG
YWlsZWQuIE1vZGVsIGRpZCBub3QgbG9hZC5gOworICAgICAgICAgICAgd2luZG93LnRlc3RSdW5u
ZXI/Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQogPC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVs
ZW1lbnQtZ3JhcGhpY3MtbGF5ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21v
ZGVsLWVsZW1lbnQtZ3JhcGhpY3MtbGF5ZXJzLmh0bWwKaW5kZXggZjA5MzgzZWJjODI1MjIxM2Mz
Y2RjOTIzMGUwZDBmNjlhZDZkMWY4YS4uYWYxYTIxYThmMTA3ZmQ0ODAxZDhjNTIyYmRiZjQ2OTYx
NjgwODg0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVt
ZW50LWdyYXBoaWNzLWxheWVycy5odG1sCisrKyBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQv
bW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMuaHRtbApAQCAtNiwyNiArNiwyNyBAQAogPC9t
b2RlbD4KIDxwcmUgaWQ9ImxheWVycyI+PC9wcmU+CiA8c2NyaXB0PgotICAgIGxldCBsYXllcnMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGF5ZXJzIik7CisgICAgd2luZG93LnRlc3RSdW5u
ZXI/LndhaXRVbnRpbERvbmUoKTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lcj8uZHVtcEFzVGV4dCgp
OwogCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB9IGVs
c2UKLSAgICAgICAgbGF5ZXJzLnRleHRDb250ZW50ID0gIlRoaXMgdGVzdCByZXF1aXJlcyB0ZXN0
UnVubmVyLiI7CisgICAgY29uc3QgbGF5ZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxh
eWVycyIpOworICAgIGNvbnN0IG1vZGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGVs
Iik7CiAKLSAgICBsZXQgbW9kZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZWwiKTsK
LQotICAgIG1vZGVsLnJlYWR5LnRoZW4odmFsdWUgPT4gewotICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgICAgICBsYXllcnMuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFs
cy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOworICAgIGNvbnN0IG1vZGVsRGlkTG9hZCA9ICgp
ID0+IHsKKyAgICAgICAgbGF5ZXJzLmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHM/LmxheWVy
VHJlZUFzVGV4dChkb2N1bWVudCkgPz8gIlRoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyLiI7
CiAgICAgICAgIG1vZGVsLnJlbW92ZSgpOwotICAgIH0sIHJlYXNvbiA9PiB7Ci0gICAgICAgIGxh
eWVycy50ZXh0Q29udGVudCA9IGBGYWlsZWQuIE1vZGVsIGRpZCBub3QgbG9hZDogJHtyZWFzb259
YDsKLSAgICB9KS5maW5hbGx5KCgpID0+IHsgCi0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0pOworICAgICAg
ICB3aW5kb3cudGVzdFJ1bm5lcj8ubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIGlmIChtb2Rl
bC5jb21wbGV0ZSkKKyAgICAgICAgbW9kZWxEaWRMb2FkKCk7CisgICAgZWxzZSB7CisgICAgICAg
IG1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBtb2RlbERpZExvYWQpOworICAgICAgICBt
b2RlbC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGxh
eWVycy50ZXh0Q29udGVudCA9IGBGYWlsZWQuIE1vZGVsIGRpZCBub3QgbG9hZC5gOworICAgICAg
ICAgICAgd2luZG93LnRlc3RSdW5uZXI/Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAg
fQogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
b2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWV4cGVjdGVkLnR4dAppbmRleCBm
ODdiMjQ1MjRhMTg4MWRmY2E1YTYyNWNjZTQxZmMwNTU5ZTAyNDY2Li44N2YyOTc2NDljZWZiYWI1
NjNmNTMzYzJhYzM2MTU5YTFiMTdiMmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tb2RlbC1l
bGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1leHBlY3RlZC50eHQKQEAgLTEsMyAr
MSw1IEBACi1UaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgdGhlIHdvcmQgIlBhc3NlZCIgYmVs
b3c6CiAKLVBhc3NlZAorUEFTUyA8bW9kZWw+IHJlamVjdHMgdGhlIHJlYWR5IHByb21pc2Ugd2hl
biBwcm92aWRlZCB3aXRoIGFuIHVua25vd24gcmVzb3VyZS4KK1BBU1MgPG1vZGVsPiByZWplY3Rz
IHRoZSByZWFkeSBwcm9taXNlIHdoZW4gaXRzIHJlc291cmNlIGxvYWQgaXMgYWJvcnRlZC4KK1BB
U1MgPG1vZGVsPiByZXNvbHZlcyB0aGUgcmVhZHkgcHJvbWlzZSB3aGVuIHByb3ZpZGVkIHdpdGgg
YSBrbm93biByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVu
dC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtYWJvcnRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVkLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjg3YjI0NTI0YTE4ODFkZmNh
NWE2MjVjY2U0MWZjMDU1OWUwMjQ2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVh
ZHktbG9hZC1hYm9ydGVkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotVGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQiIGJlbG93Ogot
Ci1QYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxl
bWVudC1yZWFkeS1sb2FkLWFib3J0ZWQuaHRtbCBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQv
bW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWFib3J0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggY2EzY2ExMWIzZmFlNmNkMWNkMjU1MDk3ZGYzYjMyNDkyNzFhNTU2Mi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9t
b2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVkLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIE1vZGVsRWxlbWVudEVuYWJsZWQ9dHJ1ZSBdIC0tPgotPGh0bWw+Ci08Ym9keT4K
LTxtb2RlbCBpZD0ibW9kZWwiPgotICAgIDxzb3VyY2UgaWQ9Im1vZGVsLXNvdXJjZSI+Ci08L21v
ZGVsPgotPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQiIGJl
bG93OjwvcD4KLTxwIGlkPSJyZXN1bHQiPkZhaWxlZDwvcD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwot
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB9Ci0KLSAgICBsZXQgcmVzdWx0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwotICAgIGxldCBtb2RlbCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIpOwotICAgIGxldCBzb3VyY2UgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibW9kZWwtc291cmNlIik7Ci0KLSAgICBtb2RlbC5yZWFkeS50aGVu
KHZhbHVlID0+IHsKLSAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gIkZhaWxlZC4gTW9kZWwg
c2hvdWxkIG5vdCBoYXZlIGxvYWRlZCwgYnV0IGRpZC4iOwotICAgIH0sIHJlYXNvbiA9PiB7Ci0g
ICAgICAgIGlmIChyZWFzb24ubmFtZSA9PSAiQWJvcnRFcnJvciIpCi0gICAgICAgICAgICByZXN1
bHQudGV4dENvbnRlbnQgPSBgUGFzc2VkYDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVz
dWx0LnRleHRDb250ZW50ID0gYEZhaWxlZC4gV3JvbmcgZXJyb3IgdHlwZTogJHtyZWFzb259LmA7
Ci0gICAgfSkuZmluYWxseSgoKSA9PiB7IAotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9KTsKLQotICAgIHNv
dXJjZS5zcmMgPSAicmVzb3VyY2VzL2hlYXJ0LnVzZHoiOwotCi0gICAgbW9kZWwucmVtb3ZlQ2hp
bGQoc291cmNlKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFk
eS1sb2FkLWZhaWxlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGY4N2IyNDUyNGExODgxZGZjYTVhNjI1Y2NlNDFmYzA1NTllMDI0NjYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVu
dC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMgKzAsMCBAQAotVGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3Jk
ICJQYXNzZWQiIGJlbG93OgotCi1QYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVs
LWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWZhaWxlZC5odG1sIGIvTGF5b3V0VGVz
dHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzZTgzYWNiM2IwNjAyYzk1MjBhMzBlYWQwZjdl
MzNkMzJkMjRmNGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFp
bGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD48
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIE1vZGVsRWxlbWVudEVuYWJsZWQ9dHJ1ZSBdIC0tPgot
PGh0bWw+Ci08Ym9keT4KLTxtb2RlbCBpZD0ibW9kZWwiPgotICAgIDxzb3VyY2Ugc3JjPSJyZXNv
dXJjZXMvZG9lcy1ub3QtZXhpc3QudXNkeiI+Ci08L21vZGVsPgotPHA+VGhpcyB0ZXN0IHBhc3Nl
cyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQiIGJlbG93OjwvcD4KLTxwIGlkPSJyZXN1bHQi
PkZhaWxlZDwvcD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKLSAgICB9Ci0KLSAgICBsZXQgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlc3VsdCIpOwotICAgIGxldCBtb2RlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJt
b2RlbCIpOwotCi0gICAgbW9kZWwucmVhZHkudGhlbih2YWx1ZSA9PiB7Ci0gICAgICAgIHJlc3Vs
dC50ZXh0Q29udGVudCA9ICJGYWlsZWQuIE1vZGVsIHNob3VsZCBub3QgaGF2ZSBsb2FkZWQsIGJ1
dCBkaWQuIjsKLSAgICB9LCByZWFzb24gPT4gewotICAgICAgICBpZiAocmVhc29uLm5hbWUgPT0g
Ik5ldHdvcmtFcnJvciIpCi0gICAgICAgICAgICByZXN1bHQudGV4dENvbnRlbnQgPSBgUGFzc2Vk
YDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gYEZhaWxl
ZC4gV3JvbmcgZXJyb3IgdHlwZTogJHtyZWFzb259LmA7Ci0gICAgfSkuZmluYWxseSgoKSA9PiB7
IAotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKLSAgICB9KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHkuaHRtbApp
bmRleCBlODA2MjRhZTU3YTVlYzE5YjkyYzA1ZjA1MzYzNTJlMWRmYWU0Mjc0Li44MzliNjk4MWY4
M2RkYjY3ZjJiNWFhMzkyYzYyNTNhMGVhNjYzYjdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9t
b2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9t
b2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHkuaHRtbApAQCAtMSwyOCArMSwzOCBAQAot
PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBNb2RlbEVsZW1lbnRFbmFi
bGVkPXRydWUgXSAtLT4KLTxodG1sPgorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+Jmx0O21vZGVsPiByZWFkeSBwcm9taXNlPC90aXRsZT4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL21vZGVsLWVsZW1lbnQtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CiA8Ym9k
eT4KLTxtb2RlbCBpZD0ibW9kZWwiPgotICAgIDxzb3VyY2Ugc3JjPSJyZXNvdXJjZXMvaGVhcnQu
dXNkeiI+Ci08L21vZGVsPgotPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3Jk
ICJQYXNzZWQiIGJlbG93OjwvcD4KLTxwIGlkPSJyZXN1bHQiPkZhaWxlZDwvcD4KIDxzY3JpcHQ+
Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB9CisndXNl
IHN0cmljdCc7CiAKLSAgICBsZXQgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
c3VsdCIpOwotICAgIGxldCBtb2RlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIp
OworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IFttb2RlbCwgc291cmNlXSA9
IGNyZWF0ZU1vZGVsQW5kU291cmNlKHQsICJyZXNvdXJjZXMvZG9lcy1ub3QtZXhpc3QudXNkeiIp
OworICAgIHJldHVybiBtb2RlbC5yZWFkeS50aGVuKAorICAgICAgICB2YWx1ZSA9PiBhc3NlcnRf
dW5yZWFjaGVkKCJVbmV4cGVjdGVkIHJlYWR5IHByb21pc2UgcmVzb2x1dGlvbi4iKSwKKyAgICAg
ICAgcmVhc29uID0+IGFzc2VydF90cnVlKHJlYXNvbi50b1N0cmluZygpLmluY2x1ZGVzKCJOZXR3
b3JrRXJyb3IiKSwgIlRoZSByZWFkeSBwcm9taXNlIGlzIHJlamVjdGVkIHdpdGggYSBOZXR3b3Jr
RXJyb3IuIikKKyAgICApOworfSwgYDxtb2RlbD4gcmVqZWN0cyB0aGUgcmVhZHkgcHJvbWlzZSB3
aGVuIHByb3ZpZGVkIHdpdGggYW4gdW5rbm93biByZXNvdXJlLmApOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgICAgY29uc3QgW21vZGVsLCBzb3VyY2VdID0gY3JlYXRlTW9kZWxBbmRT
b3VyY2UodCwgInJlc291cmNlcy9oZWFydC51c2R6Iik7CisgICAgY29uc3QgbW9kZWxSZWFkeSA9
IG1vZGVsLnJlYWR5OworCisgICAgc291cmNlLnJlbW92ZSgpOworICAgIGFzc2VydF9ub3RfZXF1
YWxzKG1vZGVsLnJlYWR5LCBtb2RlbFJlYWR5LCAiUmVtb3ZpbmcgdGhlIDxzb3VyY2U+IGNoaWxk
IHJlc2V0cyB0aGUgcmVhZHkgcHJvbWlzZS4iKTsKKworICAgIHJldHVybiBtb2RlbFJlYWR5LnRo
ZW4oCisgICAgICAgIHZhbHVlID0+IGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgcmVhZHkg
cHJvbWlzZSByZXNvbHV0aW9uLiIpLAorICAgICAgICByZWFzb24gPT4gYXNzZXJ0X3RydWUocmVh
c29uLnRvU3RyaW5nKCkuaW5jbHVkZXMoIkFib3J0RXJyb3IiKSwgIlRoZSByZWFkeSBwcm9taXNl
IGlzIHJlamVjdGVkIHdpdGggYSBOZXR3b3JrRXJyb3IuIikKKyAgICApOworfSwgYDxtb2RlbD4g
cmVqZWN0cyB0aGUgcmVhZHkgcHJvbWlzZSB3aGVuIGl0cyByZXNvdXJjZSBsb2FkIGlzIGFib3J0
ZWQuYCk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBbbW9kZWwsIHNv
dXJjZV0gPSBjcmVhdGVNb2RlbEFuZFNvdXJjZSh0LCAicmVzb3VyY2VzL2N1YmUudXNkeiIpOwor
ICAgIGF3YWl0IG1vZGVsLnJlYWR5OworfSwgYDxtb2RlbD4gcmVzb2x2ZXMgdGhlIHJlYWR5IHBy
b21pc2Ugd2hlbiBwcm92aWRlZCB3aXRoIGEga25vd24gcmVzb3VyY2UuYCk7CiAKLSAgICBtb2Rl
bC5yZWFkeS50aGVuKHZhbHVlID0+IHsKLSAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gYFBh
c3NlZGA7Ci0gICAgfSwgcmVhc29uID0+IHsKLSAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0g
YEZhaWxlZC4gTW9kZWwgZGlkIG5vdCBsb2FkOiAke3JlYXNvbn1gOwotICAgIH0pLmZpbmFsbHko
KCkgPT4geyAKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfSk7CiA8L3NjcmlwdD4KIDwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvcmVzb3VyY2VzL21vZGVs
LWVsZW1lbnQtdGVzdC11dGlscy5qcyBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvcmVzb3Vy
Y2VzL21vZGVsLWVsZW1lbnQtdGVzdC11dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTUzNGNjYzBmYjAx
MTRlNDIzNWFhNGUxMDU1MjY4ZWRkZDdlY2MwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbW9kZWwtZWxlbWVudC9yZXNvdXJjZXMvbW9kZWwtZWxlbWVudC10ZXN0LXV0aWxzLmpzCkBA
IC0wLDAgKzEsMTQgQEAKKworY29uc3QgY3JlYXRlTW9kZWxBbmRTb3VyY2UgPSAodGVzdCwgc3Jj
KSA9PiB7CisgICAgY29uc3QgbW9kZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJtb2RlbCIp
OworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobW9kZWwpOworCisgICAgY29uc3Qgc291
cmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic291cmNlIik7CisgICAgaWYgKHNyYykKKyAg
ICAgICAgc291cmNlLnNyYyA9IHNyYzsKKyAgICBtb2RlbC5hcHBlbmRDaGlsZChzb3VyY2UpOwor
CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBtb2RlbC5yZW1vdmUoKSk7CisKKyAgICByZXR1
cm4gW21vZGVsLCBzb3VyY2VdOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjOTRiOTk1ZTcxZDM5N2ZlYWJiOGJk
ZTA0NTY1MGE1NGM1MmZhMjI2Li4wYTY1OGEzMWE1YWMzYjI2ZTliYTRkNjFiZDhmMzdkYjJkZTM3
N2NkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xNTIsMyArMTUyLDYgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS93ZWJh
dWRpby1yZW5kZXItcmVtb3RlLWF1ZGlvLWFsbG93ZWQtY3Jvc3NvcmlnaW4uaHRtbCBbIFBhc3MK
IGh0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1hbGxvd2Vk
LWNyb3Nzb3JpZ2luLXJlZGlyZWN0Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCiB3ZWJraXQub3Jn
L2IvMjIzOTQ5IGNyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy1vb20uaHRtbCBbIFBhc3MgVGlt
ZW91dCBdCisKKyMgVGhpcyB0ZXN0IHJlbGllcyBvbiBBUlFMIEFQSXMgd2hpY2ggYXJlIG5vdCBh
dmFpbGFibGUgaW4gdGhlIFNpbXVsYXRvcgorbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJl
YWR5Lmh0bWwgWyBTa2lwIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA5MTYyN2NkODNmZTNmOGQxZjZk
NTgwNTI0Yzg4MzIyZmQ3OGUyZWQuLmMyYjJjMWE4YTRlMDcxNjlkZDVmZTBlNDE1OWQ5OGNiZDI4
ZGJhY2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
MjgxLDcgKzIyODEsNyBAQCB3ZWJraXQub3JnL2IvMjI4MzExIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2Nzcy1zY29waW5nLQogIyB3ZWJraXQub3JnL2Iv
MjI4MjAwIEFkanVzdGluZyB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgTW9udGVyZXkgb24gT3BlbiBT
b3VyY2UgPHJkYXI6Ly84MDM0NDEzOD46CiBbIE1vbnRlcmV5IF0gaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvbmV0d29yay1wYXJ0aXRpb24ta2V5
Lmh0bWwgWyBGYWlsdXJlIF0KIAotIyB3ZWJraXQub3JnL2IvMjI4MjAwIFNldHRpbmcgbXVsdGlw
bGUgdGVzdCBleHBlY3RhdGlvbnMgZm9yIE1vbmV0ZXJ5IG9uIE9wZW5Tb3VyY2U6CisjIHdlYmtp
dC5vcmcvYi8yMjgyMDAgU2V0dGluZyBtdWx0aXBsZSB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgTW9u
dGVyZXkgb24gT3BlblNvdXJjZToKIFsgTW9udGVyZXkgXSBtb2RlbC1lbGVtZW50L21vZGVsLWVs
ZW1lbnQtZ3JhcGhpY3MtbGF5ZXJzLW9wYWNpdHkuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBbIE1v
bnRlcmV5IERlYnVnIGFybTY0IF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJl
IENyYXNoIF0KIApAQCAtMjQyOCw1ICsyNDI4LDggQEAgd2Via2l0Lm9yZy9iLzIyNjgyNiBbIE1v
bnRlcmV5IF0gaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXkvQXBwbGVQYXlCdXR0b24uaHRtbCBbIEYK
IAogd2Via2l0Lm9yZy9iLzIyMTIzMCBbIEJpZ1N1cisgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRzb3VyY2VidWZmZXIuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCiAKKyMgPG1vZGVsPiB0ZXN0cyBpbnZvbHZpbmcgdGhlIHJlYWR5IHBy
b21pc2UgY2FuIG9ubHkgd29yayBvbiBNb250ZXJleSBhbmQgdXAKK1sgQ2F0YWxpbmEgQmlnU3Vy
IF0gbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0bWwgWyBTa2lwIF0KKwogIyBP
VC1TVkcgaXMgbm90IGltcGxlbWVudGVkIG9uIENhdGFsaW5hLgogWyBDYXRhbGluYSBdIGZhc3Qv
dGV4dC9vdHN2Zy1jYW52YXMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449762</attachid>
            <date>2022-01-23 12:24:50 -0800</date>
            <delta_ts>2022-01-23 15:39:45 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233706-20220123212449.patch</filename>
            <type>text/plain</type>
            <size>43201</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzgzZGZjYmU0M2FiNWY2
Y2YwMjVkN2U0NjFkNDg3Njk3NjU4Y2Q3MC4uNTE3OGY2ODg4N2FjZDE0N2Y3MDZjNjFhYjVjY2Vj
OWNhMmRkZmVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIyLTAxLTIzICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQWRkIGxv
YWQgYW5kIGVycm9yIGV2ZW50cyB0byBkaXN0aW5ndWlzaCByZXNvdXJjZSBsb2FkIGZyb20gbW9k
ZWwgcmVhZGluZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzM3MDYKKyAgICAgICAgcmRhcjovLzg1OTIyNjk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQ2hyaXMgRHVtZXogYW5kIERlYW4gSmFja3Nvbi4KKworICAgICAgICBUZXN0OiBtb2RlbC1l
bGVtZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRzLmh0bWwKKworICAgICAg
ICBQcmlvciB0byB0aGlzIHBhdGNoLCA8bW9kZWw+IGVsZW1lbnRzIGhhZCBhICJyZWFkeSIgcHJv
bWlzZSB3aGljaCByZXNvbHZlZCBvbmNlIHRoZSByZXNvdXJjZSBoYWQgYmVlbiBsb2FkZWQuCisg
ICAgICAgIEhvd2V2ZXIsIHRoaXMgcHJvbWlzZSBzaG91bGQgYmUgdXNlZCB3aGVuIHRoZSA8bW9k
ZWw+IGlzIGZ1bGx5IHJlYWR5LCBhbmQgdGhpcyBpcyBkb25lIG9uIG1hY09TIGFuZCBpT1MgYXN5
bmNocm9ub3VzbHkKKyAgICAgICAgYWZ0ZXIgdGhlIHJlc291cmNlIGhhcyBiZWVuIGxvYWRlZCBi
eSB0aGUgc3VwcG9ydGluZyBBUlFMIGZyYW1ld29yay4gU28gd2UgbmVlZCBhIHdheSB0byBtb25p
dG9yIHN1Y2Nlc3Mgb3IgZmFpbHVyZSBvZgorICAgICAgICB0aGUgcmVzb3VyY2UgbG9hZCBzcGVj
aWZpY2FsbHkuCisKKyAgICAgICAgVG8gdGhhdCBlbmQsIGFuZCBtYXRjaGluZyB0aGUgPGltZz4g
ZWxlbWVudCwgd2UgZGlzcGF0Y2ggImxvYWQiIGFuZCAiZXJyb3IiIGV2ZW50cyBvbiA8bW9kZWw+
IGVsZW1lbnRzIGFuZCBhZGQgYQorICAgICAgICAiY29tcGxldGUiIHByb3BlcnR5IHRvIGluZGlj
YXRlIHdoZXRoZXIgdGhlIHJlc291cmNlIGlzIGxvYWRlZC4KKworICAgICAgICBNZWFud2hpbGUs
IHRoZSAicmVhZHkiIHByb21pc2UgaXMgbm93IHJlc29sdmVkIHdoZW4gdGhlIG1vZGVsIGlzIGZ1
bGx5IGxvYWRlZCBieSB0aGUgc3VwcG9ydGluZyBmcmFtZXdvcmssIGluZGljYXRpbmcKKyAgICAg
ICAgdGhhdCBmdXJ0aGVyIEFQSXMgYXJlIHNhZmUgdG8gdXNlLgorCisgICAgICAgIFNpbmNlIGNy
ZWF0aW5nIHRoZSBzdXBwb3J0IEFSUUwgb2JqZWN0IGZvciBtYWNPUyBhbmQgaU9TIGFsc28gcmVx
dWlyZXMgdGhlIDxtb2RlbD4gZWxlbWVudCdzIHJlbmRlcmVyIGJlaW5nIGF2YWlsYWJsZSwKKyAg
ICAgICAgd2Ugb3B0IGludG8gImN1c3RvbSBzdHlsZSByZXNvbHZlIGNhbGxiYWNrcyIgc28gdGhh
dCB3ZSBtYXkgaW1wbGVtZW50IGRpZEF0dGFjaFJlbmRlcmVycygpIG9uIEhUTUxNb2RlbEVsZW1l
bnQgYW5kIGtlZXAKKyAgICAgICAgdHJhY2sgb2YgcmVuZGVyZXIgYXZhaWxhYmlsaXR5IGJlZm9y
ZSBhdHRlbXB0aW5nIHRvIGNyZWF0ZSB0aGUgTW9kZWxQbGF5ZXIuCisKKyAgICAgICAgKiBNb2R1
bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTW9kZWxFbGVtZW50OjpIVE1MTW9kZWxFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNb2RlbEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxF
bGVtZW50OjpzZXRTb3VyY2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVu
dDo6ZGlkQXR0YWNoUmVuZGVyZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1l
bnQ6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6
Om1vZGVsRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmNy
ZWF0ZU1vZGVsUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmRp
ZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6ZGlk
RmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6YWN0aXZl
RE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50
Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21v
ZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwt
ZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbDoKKwogMjAyMi0wMS0yMyAgUGhpbGlwcGUgTm9y
bWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gQysrMjAg
d2FybmluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9IVE1MTW9kZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcAppbmRleCBhNjQxZjgxMDdiNGZkMTc5MTFmZGI5MmJi
MzBmNDVlMmU4MmI1MmZlLi45ODM1OWZmZDE5MjQ1ZDUyZTVhZjU4YTM4ZDQxYmFkZWRlZWRlM2Jh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1v
ZGVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50
L0hUTUxNb2RlbEVsZW1lbnQuY3BwCkBAIC02NSw4ICs2NSwxMCBAQCBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoSFRNTE1vZGVsRWxlbWVudCk7CiAKIEhUTUxNb2RlbEVsZW1lbnQ6OkhUTUxN
b2RlbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCisgICAgLCBBY3RpdmVE
T01PYmplY3QoZG9jdW1lbnQpCiAgICAgLCBtX3JlYWR5UHJvbWlzZSB7IG1ha2VVbmlxdWVSZWY8
UmVhZHlQcm9taXNlPigqdGhpcywgJkhUTUxNb2RlbEVsZW1lbnQ6OnJlYWR5UHJvbWlzZVJlc29s
dmUpIH0KIHsKKyAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KIAog
SFRNTE1vZGVsRWxlbWVudDo6fkhUTUxNb2RlbEVsZW1lbnQoKQpAQCAtNzksNyArODEsOSBAQCBI
VE1MTW9kZWxFbGVtZW50Ojp+SFRNTE1vZGVsRWxlbWVudCgpCiAKIFJlZjxIVE1MTW9kZWxFbGVt
ZW50PiBIVE1MTW9kZWxFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxN
b2RlbEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKKyAgICBhdXRvIG1vZGVsID0gYWRvcHRS
ZWYoKm5ldyBIVE1MTW9kZWxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CisgICAgbW9kZWwt
PnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBtb2RlbDsKIH0KIAogUmVmUHRyPE1vZGVs
PiBIVE1MTW9kZWxFbGVtZW50Ojptb2RlbCgpIGNvbnN0CkBAIC0xMzEsOSArMTM1LDEyIEBAIHZv
aWQgSFRNTE1vZGVsRWxlbWVudDo6c2V0U291cmNlVVJMKGNvbnN0IFVSTCYgdXJsKQogICAgICAg
ICBtX3JlYWR5UHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IgfSk7CiAKICAg
ICBtX3JlYWR5UHJvbWlzZSA9IG1ha2VVbmlxdWVSZWY8UmVhZHlQcm9taXNlPigqdGhpcywgJkhU
TUxNb2RlbEVsZW1lbnQ6OnJlYWR5UHJvbWlzZVJlc29sdmUpOworICAgIG1fc2hvdWxkQ3JlYXRl
TW9kZWxQbGF5ZXJVcG9uUmVuZGVyZXJBdHRhY2htZW50ID0gZmFsc2U7CiAKLSAgICBpZiAobV9z
b3VyY2VVUkwuaXNFbXB0eSgpKQorICAgIGlmIChtX3NvdXJjZVVSTC5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpET01NYW5p
cHVsYXRpb24sIEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIEV2ZW50OjpD
YW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwogICAgICAgICByZXR1cm47
CisgICAgfQogCiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOwogICAgIG9wdGlvbnMu
ZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpNb2RlbDsKQEAgLTE0NSw2
ICsxNTIsNyBAQCB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OnNldFNvdXJjZVVSTChjb25zdCBVUkwm
IHVybCkKIAogICAgIGF1dG8gcmVzb3VyY2UgPSBkb2N1bWVudCgpLmNhY2hlZFJlc291cmNlTG9h
ZGVyKCkucmVxdWVzdE1vZGVsUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgaWYgKCFy
ZXNvdXJjZS5oYXNfdmFsdWUoKSkgeworICAgICAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQo
KnRoaXMsIFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuZXJyb3JFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFi
bGU6Ok5vKSk7CiAgICAgICAgIG1fcmVhZHlQcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgTmV0
d29ya0Vycm9yIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTc1LDYgKzE4MywxNSBA
QCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTE1vZGVsRWxlbWVudDo6Y3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgcwogICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5k
ZXJNb2RlbD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAordm9pZCBIVE1MTW9kZWxFbGVt
ZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQoreworICAgIGlmICghbV9zaG91bGRDcmVhdGVNb2Rl
bFBsYXllclVwb25SZW5kZXJlckF0dGFjaG1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
c2hvdWxkQ3JlYXRlTW9kZWxQbGF5ZXJVcG9uUmVuZGVyZXJBdHRhY2htZW50ID0gZmFsc2U7Cisg
ICAgY3JlYXRlTW9kZWxQbGF5ZXIoKTsKK30KKwogLy8gTUFSSzogLSBDYWNoZWRSYXdSZXNvdXJj
ZUNsaWVudAogCiB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OmRhdGFSZWNlaXZlZChDYWNoZWRSZXNv
dXJjZSYgcmVzb3VyY2UsIGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQpAQCAtMTk2LDYgKzIx
Myw4IEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3Vy
Y2UmIHJlc291cmNlLCBjb25zdCBOZXR3b3JrTG9hCiAgICAgaWYgKHJlc291cmNlLmxvYWRGYWls
ZWRPckNhbmNlbGVkKCkpIHsKICAgICAgICAgbV9kYXRhLnJlc2V0KCk7CiAKKyAgICAgICAgcXVl
dWVUYXNrVG9EaXNwYXRjaEV2ZW50KCp0aGlzLCBUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24s
IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOworCiAgICAgICAgIGludmFsaWRhdGVSZXNv
dXJjZUhhbmRsZUFuZFVwZGF0ZVJlbmRlcmVyKCk7CiAKICAgICAgICAgbV9yZWFkeVByb21pc2Ut
PnJlamVjdChFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfSk7CkBAIC0yMDUsOSArMjI0LDkgQEAg
dm9pZCBIVE1MTW9kZWxFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYgcmVz
b3VyY2UsIGNvbnN0IE5ldHdvcmtMb2EKICAgICBtX2RhdGFDb21wbGV0ZSA9IHRydWU7CiAgICAg
bV9tb2RlbCA9IE1vZGVsOjpjcmVhdGUobV9kYXRhLnRha2VBc0NvbnRpZ3VvdXMoKS5nZXQoKSwg
cmVzb3VyY2UubWltZVR5cGUoKSwgcmVzb3VyY2UudXJsKCkpOwogCi0gICAgaW52YWxpZGF0ZVJl
c291cmNlSGFuZGxlQW5kVXBkYXRlUmVuZGVyZXIoKTsKKyAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNo
RXZlbnQoKnRoaXMsIFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkubG9hZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2Fu
Y2VsYWJsZTo6Tm8pKTsKIAotICAgIG1fcmVhZHlQcm9taXNlLT5yZXNvbHZlKCp0aGlzKTsKKyAg
ICBpbnZhbGlkYXRlUmVzb3VyY2VIYW5kbGVBbmRVcGRhdGVSZW5kZXJlcigpOwogCiAgICAgbW9k
ZWxEaWRDaGFuZ2UoKTsKIH0KQEAgLTIxNiwyNSArMjM1LDM0IEBAIHZvaWQgSFRNTE1vZGVsRWxl
bWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBOZXR3
b3JrTG9hCiAKIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6bW9kZWxEaWRDaGFuZ2UoKQogewotICAg
IC8vIEZJWE1FOiBGb3IgdGhlIGVhcmx5IHJldHVybnMgaGVyZSwgd2Ugc2hvdWxkIHByb2JhYmx5
IGluZm9ybSB0aGUgcGFnZSB0aGF0IHRoaW5ncyBoYXZlCi0gICAgLy8gZmFpbGVkIHRvIHJlbmRl
ci4gRm9yIHRoZSBjYXNlIG9mIG5vLXJlbmRlcmVyLCB3ZSBzaG91bGQgcHJvYmFibHkgYWxzbyBi
dWlsZCB0aGUgbW9kZWwKLSAgICAvLyB3aGVuL2lmIGEgcmVuZGVyZXIgaXMgY3JlYXRlZC4KLQot
ICAgIGF1dG8gcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwotICAgIGlmICghcGFnZSkKKyAgICBh
dXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCk7CisgICAgaWYgKCFwYWdlKSB7CisgICAgICAg
IG1fcmVhZHlQcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9KTsKICAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIo
KTsKLSAgICBpZiAoIXJlbmRlcmVyKQorICAgIGlmICghcmVuZGVyZXIpIHsKKyAgICAgICAgbV9z
aG91bGRDcmVhdGVNb2RlbFBsYXllclVwb25SZW5kZXJlckF0dGFjaG1lbnQgPSB0cnVlOwogICAg
ICAgICByZXR1cm47CisgICAgfQogCi0gICAgbV9tb2RlbFBsYXllciA9IHBhZ2UtPm1vZGVsUGxh
eWVyUHJvdmlkZXIoKS5jcmVhdGVNb2RlbFBsYXllcigqdGhpcyk7Ci0gICAgaWYgKCFtX21vZGVs
UGxheWVyKQorICAgIGNyZWF0ZU1vZGVsUGxheWVyKCk7Cit9CisKK3ZvaWQgSFRNTE1vZGVsRWxl
bWVudDo6Y3JlYXRlTW9kZWxQbGF5ZXIoKQoreworICAgIEFTU0VSVChkb2N1bWVudCgpLnBhZ2Uo
KSk7CisgICAgbV9tb2RlbFBsYXllciA9IGRvY3VtZW50KCkucGFnZSgpLT5tb2RlbFBsYXllclBy
b3ZpZGVyKCkuY3JlYXRlTW9kZWxQbGF5ZXIoKnRoaXMpOworICAgIGlmICghbV9tb2RlbFBsYXll
cikgeworICAgICAgICBtX3JlYWR5UHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJy
b3IgfSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICAvLyBGSVhNRTogV2UgbmVlZCB0
byB0ZWxsIHRoZSBwbGF5ZXIgaWYgdGhlIHNpemUgY2hhbmdlcyBhcyB3ZWxsLCBzbyBwYXNzaW5n
IHRoaXMKICAgICAvLyBpbiB3aXRoIGxvYWQgcHJvYmFibHkgZG9lc24ndCBtYWtlIHNlbnNlLgot
ICAgIGF1dG8gc2l6ZSA9IHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdChmYWxzZSku
c2l6ZSgpOworICAgIEFTU0VSVChyZW5kZXJlcigpKTsKKyAgICBhdXRvIHNpemUgPSByZW5kZXJl
cigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdChmYWxzZSkuc2l6ZSgpOwogICAgIG1fbW9kZWxQ
bGF5ZXItPmxvYWQoKm1fbW9kZWwsIHNpemUpOwogfQogCkBAIC0yNTQsMTEgKzI4MiwxNCBAQCB2
b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OmRpZEZpbmlzaExvYWRpbmcoTW9kZWxQbGF5ZXImIG1vZGVs
UGxheWVyKQogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKICAg
ICAgICAgcmVuZGVyZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7CisKKyAgICBtX3JlYWR5UHJvbWlz
ZS0+cmVzb2x2ZSgqdGhpcyk7CiB9CiAKIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6ZGlkRmFpbExv
YWRpbmcoTW9kZWxQbGF5ZXImIG1vZGVsUGxheWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJikKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKG1vZGVsUGxheWVyLCAmbW9kZWxQbGF5ZXIgPT0gbV9tb2RlbFBs
YXllcik7CisgICAgbV9yZWFkeVByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBBYm9ydEVycm9y
IH0pOwogfQogCiBHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgSFRNTE1vZGVsRWxlbWVu
dDo6cGxhdGZvcm1MYXllcklEKCkKQEAgLTU1MSw2ICs1ODIsMTggQEAgdm9pZCBIVE1MTW9kZWxF
bGVtZW50OjpzZXRJc011dGVkKGJvb2wgaXNNdXRlZCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWkKICAgICB9KTsKIH0KIAorY29uc3QgY2hhciogSFRNTE1vZGVsRWxlbWVudDo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJIVE1MTW9kZWxFbGVtZW50
IjsKK30KKworYm9vbCBIVE1MTW9kZWxFbGVtZW50Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5
KCkgY29uc3QKK3sKKyAgICAvLyBXZSBuZWVkIHRvIGVuc3VyZSB0aGUgSlMgd3JhcHBlciBpcyBr
ZXB0IGFsaXZlIGlmIGEgbG9hZCBpcyBpbiBwcm9ncmVzcyBhbmQgd2UgbWF5IHlldCBkaXNwYXRj
aAorICAgIC8vICJsb2FkIiBvciAiZXJyb3IiIGV2ZW50cywgaWUuIGFzIGxvbmcgYXMgd2UgaGF2
ZSBhIHJlc291cmNlLCBtZWFuaW5nIHdlIGFyZSBpbiB0aGUgcHJvY2VzcyBvZiBsb2FkaW5nLgor
ICAgIHJldHVybiBtX3Jlc291cmNlOworfQorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiBWZWN0b3I8
UmV0YWluUHRyPGlkPj4gSFRNTE1vZGVsRWxlbWVudDo6YWNjZXNzaWJpbGl0eUNoaWxkcmVuKCkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRN
TE1vZGVsRWxlbWVudC5oCmluZGV4IDBkM2JkYjc0OWQ3YTMzNjhiM2NhNjhjMjE3MzE2MDU5MTU0
OWQxYzEuLjNkY2FjMjhhYjA4ZmUyYThlOGMyYTVlMTViZjhmMTBiYzRiNDk4YTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVs
ZW1lbnQuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCiAK
KyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJj
ZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VIYW5kbGUuaCIKQEAgLTQ5LDcgKzUwLDcgQEAgY2xhc3MgTW91c2VFdmVudDsK
IHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKIHRl
bXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VQcm94eVdpdGhSZXNvbHZl
Q2FsbGJhY2s7CiAKLWNsYXNzIEhUTUxNb2RlbEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVs
ZW1lbnQsIHByaXZhdGUgQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQsIHB1YmxpYyBNb2RlbFBsYXll
ckNsaWVudCB7CitjbGFzcyBIVE1MTW9kZWxFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVt
ZW50LCBwcml2YXRlIENhY2hlZFJhd1Jlc291cmNlQ2xpZW50LCBwdWJsaWMgTW9kZWxQbGF5ZXJD
bGllbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoSFRNTE1vZGVsRWxlbWVudCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxIVE1MTW9kZWxF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkBAIC01Nyw2
ICs1OCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc291cmNlc0NoYW5nZWQoKTsKICAgICBjb25z
dCBVUkwmIGN1cnJlbnRTcmMoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfQorICAgIGJv
b2wgY29tcGxldGUoKSBjb25zdCB7IHJldHVybiBtX2RhdGFDb21wbGV0ZTsgfQogCiAgICAgLy8g
TUFSSzogRE9NIEZ1bmN0aW9ucyBhbmQgQXR0cmlidXRlcwogCkBAIC0xMDYsMTQgKzEwOCwyMCBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRTb3VyY2VVUkwoY29uc3QgVVJMJik7CiAgICAgdm9p
ZCBtb2RlbERpZENoYW5nZSgpOworICAgIHZvaWQgY3JlYXRlTW9kZWxQbGF5ZXIoKTsKIAogICAg
IEhUTUxNb2RlbEVsZW1lbnQmIHJlYWR5UHJvbWlzZVJlc29sdmUoKTsKIAorICAgIC8vIEFjdGl2
ZURPTU9iamVjdAorICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBm
aW5hbDsKKyAgICBib29sIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsK
KwogICAgIC8vIERPTSBvdmVycmlkZXMuCiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChE
b2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkgZmluYWw7CiAKICAg
ICAvLyBSZW5kZXJpbmcgb3ZlcnJpZGVzLgogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgZmluYWw7CisgICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBmaW5hbDsKIAogICAg
IC8vIENhY2hlZFJhd1Jlc291cmNlQ2xpZW50IG92ZXJyaWRlcy4KICAgICB2b2lkIGRhdGFSZWNl
aXZlZChDYWNoZWRSZXNvdXJjZSYsIGNvbnN0IFNoYXJlZEJ1ZmZlciYpIGZpbmFsOwpAQCAtMTM4
LDYgKzE0Niw3IEBAIHByaXZhdGU6CiAgICAgVW5pcXVlUmVmPFJlYWR5UHJvbWlzZT4gbV9yZWFk
eVByb21pc2U7CiAgICAgYm9vbCBtX2RhdGFDb21wbGV0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2lzRHJhZ2dpbmcgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRDcmVhdGVNb2RlbFBsYXll
clVwb25SZW5kZXJlckF0dGFjaG1lbnQgeyBmYWxzZSB9OwogCiAgICAgUmVmUHRyPE1vZGVsUGxh
eWVyPiBtX21vZGVsUGxheWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbAppbmRleCAzZmY2Y2U5NjZk
ZTNmMGI3YmRmODZiNWZmMmU1ZGEwNzU1MGQ2YTE1Li40NWI4ZmQyNmM3NGZlYzNiOTIwYzM1NDg0
MDBjZDcyZTgyYzU4ZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVs
LWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaWRsCkBAIC0zMCw2ICszMCw3IEBACiBd
IGludGVyZmFjZSBIVE1MTW9kZWxFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgIFtVUkxdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgY3VycmVudFNyYzsKIAorICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBib29sZWFuIGNvbXBsZXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNl
PEhUTUxNb2RlbEVsZW1lbnQ+IHJlYWR5OwogCiAgICAgdW5kZWZpbmVkIGVudGVyRnVsbHNjcmVl
bigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVt
ZW50Q29udHJvbGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9k
ZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDg2OGMxZTU3MzYxNWMyMDI4MmYyNzQ3
ZmU3NmIxNmM5ZTU1NzAyYTMuLjUzNDE4YjlhMDg2MzExM2U5MDcxMThmNDFlOWUyYzg4MjY3NDhl
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVu
dENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9N
b2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KQEAgLTE2NCwzMSArMTY0LDM1IEBAIHZvaWQg
TW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhVUkwg
ZmlsZVVSTCwgU3RyaW5nIHV1CiAgICAgLy8gRklYTUU6IFdoeSBpcyB0aGlzIG5vdCBqdXN0IHVz
aW5nIG5vcm1hbCBVUkwgLT4gTlNVUkwgY29udmVyc2lvbj8KICAgICBhdXRvIHVybCA9IGFkb3B0
TlMoW1tOU1VSTCBhbGxvY10gaW5pdEZpbGVVUkxXaXRoUGF0aDpmaWxlVVJMLmZpbGVTeXN0ZW1Q
YXRoKCldKTsKIAorICAgIGF1dG8gaGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyV2l0aEZpbmFs
aXplcjx2b2lkKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcj4pPihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgW3VybF0gKEZ1bmN0
aW9uPHZvaWQoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWludDMyX3Q+LCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yPik+JiBjb21wbGV0aW9uSGFuZGxlcikgeworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihtYWtlVW5leHBlY3RlZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHsgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcjo6VHlwZTo6R2VuZXJhbCB9KSk7CisgICAgfSk7CisKICAgICBSRUxFQVNF
X0FTU0VSVChpc01haW5SdW5Mb29wKCkpOwotICAgIFtwcmV2aWV3IHNldHVwUmVtb3RlQ29ubmVj
dGlvbldpdGhDb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vha1B0
ciB7ICp0aGlzIH0sIHByZXZpZXcsIHV1aWQgPSBXVEZNb3ZlKHV1aWQpLCB1cmwgPSBXVEZNb3Zl
KHVybCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChO
U0Vycm9yICpjb250ZXh0RXJyb3IpIG11dGFibGUgeworICAgIFtwcmV2aWV3IHNldHVwUmVtb3Rl
Q29ubmVjdGlvbldpdGhDb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIHByZXZpZXcsIHV1aWQgPSBXVEZNb3ZlKHV1aWQpLCB1cmwgPSBX
VEZNb3ZlKHVybCksIGhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpXSAoTlNFcnJvciAqY29udGV4
dEVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGNvbnRleHRFcnJvcikgewogICAgICAgICAg
ICAgTE9HKE1vZGVsRWxlbWVudCwgIlVuYWJsZSB0byBjcmVhdGUgcmVtb3RlIGNvbm5lY3Rpb24g
Zm9yIHV1aWQgJXM6ICVALiIsIHV1aWQudXRmOCgpLmRhdGEoKSwgY29udGV4dEVycm9yLmxvY2Fs
aXplZERlc2NyaXB0aW9uKTsKIAotICAgICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtU
aGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIGVycm9yID0gV2ViQ29yZTo6UmVzb3VyY2VFcnJvciB7IGNvbnRleHRF
cnJvciB9XSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFr
VGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgZXJy
b3IgPSBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHsgY29udGV4dEVycm9yIH1dICgpIG11dGFibGUg
ewogICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVk
KGVycm9yKSk7CisgICAgICAgICAgICAgICAgaGFuZGxlcihtYWtlVW5leHBlY3RlZChlcnJvcikp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAg
ICAgICBMT0coTW9kZWxFbGVtZW50LCAiRXN0YWJsaXNoZWQgcmVtb3RlIGNvbm5lY3Rpb24gd2l0
aCBVVUlEICVzLiIsIHV1aWQudXRmOCgpLmRhdGEoKSk7CiAKLSAgICAgICAgW3ByZXZpZXcgcHJl
cGFyZVByZXZpZXdPZkZpbGVBdFVSTDp1cmwuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJs
b2NrUHRyKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBwcmV2aWV3LCB1dWlkID0gV1RG
TW92ZSh1dWlkKSwgdXJsID0gV1RGTW92ZSh1cmwpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSAoTlNFcnJvciAqbG9hZEVycm9yKSBtdXRhYmxlIHsKKyAg
ICAgICAgW3ByZXZpZXcgcHJlcGFyZVByZXZpZXdPZkZpbGVBdFVSTDp1cmwuZ2V0KCkgY29tcGxl
dGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBw
cmV2aWV3LCB1dWlkID0gV1RGTW92ZSh1dWlkKSwgdXJsID0gV1RGTW92ZSh1cmwpLCBoYW5kbGVy
ID0gV1RGTW92ZShoYW5kbGVyKV0gKE5TRXJyb3IgKmxvYWRFcnJvcikgbXV0YWJsZSB7CiAgICAg
ICAgICAgICBpZiAobG9hZEVycm9yKSB7CiAgICAgICAgICAgICAgICAgTE9HKE1vZGVsRWxlbWVu
dCwgIlVuYWJsZSB0byBsb2FkIGZpbGUgZm9yIHV1aWQgJXM6ICVALiIsIHV1aWQudXRmOCgpLmRh
dGEoKSwgbG9hZEVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKTsKIAotICAgICAgICAgICAgICAg
IGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBlcnJvciA9IFdlYkNvcmU6
OlJlc291cmNlRXJyb3IgeyBsb2FkRXJyb3IgfV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAg
ICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGhhbmRs
ZXIgPSBXVEZNb3ZlKGhhbmRsZXIpLCBlcnJvciA9IFdlYkNvcmU6OlJlc291cmNlRXJyb3IgeyBs
b2FkRXJyb3IgfV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoZXJyb3IpKTsKKyAgICAgICAgICAg
ICAgICAgICAgaGFuZGxlcihtYWtlVW5leHBlY3RlZChlcnJvcikpOwogICAgICAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTE5NiwxMSAr
MjAwLDExIEBAIHZvaWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6bW9kZWxFbGVtZW50RGlkQ3Jl
YXRlUHJldmlldyhVUkwgZmlsZVVSTCwgU3RyaW5nIHV1CiAgICAgICAgICAgICBMT0coTW9kZWxF
bGVtZW50LCAiTG9hZGVkIGZpbGUgd2l0aCBVVUlEICVzLiIsIHV1aWQudXRmOCgpLmRhdGEoKSk7
CiAKICAgICAgICAgICAgIGF1dG8gY29udGV4dElkID0gW3ByZXZpZXcgY29udGV4dElkXTsKLSAg
ICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMp
LCB1dWlkID0gV1RGTW92ZSh1dWlkKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgY29udGV4dElkXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNhbGxP
bk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB1dWlkID0gV1RGTW92
ZSh1dWlkKSwgaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlciksIGNvbnRleHRJZF0gKCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogCi0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjptYWtlX3Bh
aXIodXVpZCwgY29udGV4dElkKSk7CisgICAgICAgICAgICAgICAgaGFuZGxlcihzdGQ6Om1ha2Vf
cGFpcih1dWlkLCBjb250ZXh0SWQpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KS5nZXQo
KV07CiAgICAgfSkuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGZlZTliYmE0ZWNmYjJmZWZjNTdmOTAyMTdiMjVlMTE5NTkwMzUzZTEu
LjQ2YmEyODBlNWE0NmRmZTI3ZGVlM2M4ODAwYWQzYjMwN2ZiZTMzYWYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAy
Mi0wMS0yMyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBb
TW9kZWxdIEFkZCBsb2FkIGFuZCBlcnJvciBldmVudHMgdG8gZGlzdGluZ3Vpc2ggcmVzb3VyY2Ug
bG9hZCBmcm9tIG1vZGVsIHJlYWRpbmVzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzA2CisgICAgICAgIHJkYXI6Ly84NTkyMjY5NworCisgICAg
ICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6IGFuZCBEZWFuIEphY2tzb24uCisKKyAgICAgICAg
VXNlIHRoZSAibG9hZCIgZXZlbnQgaW5zdGVhZCBvZiB0aGUgInJlYWR5IiBwcm9taXNlIGZvciB0
aGlzIHRlc3Qgd2hpY2ggb25seSByZXF1aXJlcyBtb25pdG9yaW5nCisgICAgICAgIHRoZSA8bW9k
ZWw+IHJlc291cmNlIGJlaW5nIGxvYWRlZC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKwogMjAyMi0wMS0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUS11bYTExeV0gU3RvcCByZWdpc3RlcmluZyB0aGUgdHJlZSB3
aGVuIGNsaWVudHMgYXJlIGNvbm5lY3RlZCB3aXRoIEFUU1BJCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EcmFnQW5kRHJvcFRlc3RzSU9TLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9pb3MvRHJhZ0FuZERyb3BUZXN0c0lPUy5tbQppbmRleCAxODk4YzNk
ZmJkY2NjOGVkMjQ5YWExM2E4MGEyMGNkMWM3M2FiMzAwLi4zOTg1MTE2Yzg3YjgwOGI2ZjFlNDc4
ODMyYjc2NjAzNjM1M2RiYWJkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9EcmFnQW5kRHJvcFRlc3RzSU9TLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW0KQEAgLTIxOTcsNyArMjE5Nyw3IEBAIFRFU1Qo
RHJhZ0FuZERyb3BUZXN0cywgQ2FuU3RhcnREcmFnT25Nb2RlbCkKICAgICBbY29uZmlndXJhdGlv
biBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAibW9kZWwi
XTsKICAgICAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhU
TUxTdHJpbmc6QCI8bW9kZWw+PHNvdXJjZSBzcmM9J21vZGVsOi8vY3ViZS51c2R6Jz48L21vZGVs
PjxzY3JpcHQ+ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ21vZGVsJylbMF0ucmVhZHku
dGhlbigoKSA9PiB7IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLm1vZGVsTG9hZGluZy5w
b3N0TWVzc2FnZSgnUkVBRFknKSB9KTs8L3NjcmlwdD4iXTsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8bW9kZWw+PHNvdXJjZSBzcmM9J21vZGVsOi8vY3ViZS51
c2R6Jz48L21vZGVsPjxzY3JpcHQ+ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbW9kZWwnKS5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgZXZlbnQgPT4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMubW9kZWxMb2FkaW5nLnBvc3RNZXNzYWdlKCdSRUFEWScpKTs8L3NjcmlwdD4iXTsKIAogICAg
IHdoaWxlICghW21lc3NhZ2VIYW5kbGVyIGRpZExvYWRNb2RlbF0pCiAgICAgICAgIFV0aWw6OnNw
aW5SdW5Mb29wKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjgyZmZjOGQ3OWQxN2E5ZTkwZGE0ZWRmYWMwZTZlZTE1Mjc5
YzdkZi4uYzJmOTZmYjljNmI2ZGNhOTgxYTNiNzg4ZTk4OWQwYjM5MzFiZTE4ZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM0IEBACisyMDIyLTAxLTIzICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFtNb2RlbF0gQWRkIGxvYWQgYW5kIGVycm9yIGV2ZW50cyB0byBkaXN0
aW5ndWlzaCByZXNvdXJjZSBsb2FkIGZyb20gbW9kZWwgcmVhZGluZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MDYKKyAgICAgICAgcmRhcjov
Lzg1OTIyNjk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXogYW5kIERlYW4gSmFj
a3Nvbi4KKworICAgICAgICBSZW1vdmUgZXhpc3RpbmcgdGVzdHMgYXJvdW5kIHJlc291cmNlIGxv
YWRpbmcgYW5kIHJlY3JlYXRlIHRoZW0gaW4gdGVybXMgb2YgImxvYWQiIGFuZCAiZXJyb3IiCisg
ICAgICAgIGV2ZW50cyBpbiBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxv
YWQtZXZlbnRzLmh0bWwgYW5kIGluIHRlcm1zIG9mIHRoZSByZWFkeQorICAgICAgICBwcm9taXNl
IGluIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS5odG1sLgorCisgICAgICAgIE90
aGVyIHRlc3RzIHVzaW5nIG1vZGVsLnJlYWR5IGZvciBvdGhlciBwdXJwb3NlcyBhcmUgYWxzbyBy
ZXdyaXR0ZW4gdXNpbmcgZXZlbnRzLiAKKworICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwt
ZWxlbWVudC1jb250ZW50cy1sYXllci11cGRhdGVzLXdpdGgtY2xpcHBpbmcuaHRtbDoKKyAgICAg
ICAgKiBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtY29udGVudHMtbGF5ZXItdXBkYXRlcy5o
dG1sOgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9h
ZC1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtb2RlbC1lbGVtZW50L21v
ZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMtb3BhY2l0eS5odG1s
OgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMu
aHRtbDoKKyAgICAgICAgKiBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2Fk
LWFib3J0ZWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQv
bW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWFib3J0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1mYWlsZWQtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFk
eS1sb2FkLWZhaWxlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQvbW9k
ZWwtZWxlbWVudC1yZWFkeS5odG1sOgorICAgICAgICAqIG1vZGVsLWVsZW1lbnQvcmVzb3VyY2Vz
L21vZGVsLWVsZW1lbnQtdGVzdC11dGlscy5qczogQWRkZWQuCisgICAgICAgIChjb25zdC5jcmVh
dGVNb2RlbEFuZFNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0
RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgor
CiAyMDIyLTAxLTIzICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBb
TEZDXVtJRkNdIEVuYWJsZSB1bmljb2RlLWJpZGk6IHBsYWludGV4dCBmb3IgSUZDCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtY29udGVudHMtbGF5
ZXItdXBkYXRlcy13aXRoLWNsaXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50
L21vZGVsLWVsZW1lbnQtY29udGVudHMtbGF5ZXItdXBkYXRlcy13aXRoLWNsaXBwaW5nLmh0bWwK
aW5kZXggZTg5ZjI2ODlmMTQ0OWFlMWY3YjllMDAxOTA1MDkzNjdlNTljOWIxOC4uNjM0MWI3YTg1
M2NjMmRmNmJiNWM3ZWYzNWY5YTI1NWQ0ZjcxNzFiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
bW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWNvbnRlbnRzLWxheWVyLXVwZGF0ZXMtd2l0aC1j
bGlwcGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVu
dC1jb250ZW50cy1sYXllci11cGRhdGVzLXdpdGgtY2xpcHBpbmcuaHRtbApAQCAtMiw0MyArMiw0
MyBAQAogPGh0bWw+CiA8Ym9keT4KIDxtb2RlbCBpZD0ibW9kZWwiIHN0eWxlPSJib3JkZXItcmFk
aXVzOiA1cHgiPgotICAgIDxzb3VyY2Ugc3JjPSJyZXNvdXJjZXMvaGVhcnQudXNkeiI+CisgICAg
PHNvdXJjZT4KIDwvbW9kZWw+CiA8cHJlIGlkPSJsYXllcnMiPjwvcHJlPgogPHNjcmlwdD4KLSAg
ICBsZXQgbGF5ZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVycyIpOwotICAgIGxl
dCBzb3VyY2UgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic291cmNlIilbMF07Cisg
ICAgd2luZG93LnRlc3RSdW5uZXI/LndhaXRVbnRpbERvbmUoKTsKKyAgICB3aW5kb3cudGVzdFJ1
bm5lcj8uZHVtcEFzVGV4dCgpOwogCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgbGF5ZXJzLnRleHRDb250ZW50ID0gIlRoaXMg
dGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyLiI7CisgICAgY29uc3QgbGF5ZXJzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImxheWVycyIpOworICAgIGNvbnN0IHNvdXJjZSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoInNvdXJjZSIpOworICAgIGNvbnN0IG1vZGVsID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm1vZGVsIik7CiAKLSAgICBsZXQgbW9kZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibW9kZWwiKTsKLQotICAgIG1vZGVsLnJlYWR5LnRoZW4odmFsdWUgPT4geworICAgIGNv
bnN0IG1vZGVsRGlkTG9hZEZpcnN0U291cmNlID0gKCkgPT4gewogICAgICAgICBsYXllcnMudGV4
dENvbnRlbnQgPSAiQmVmb3JlIENoYW5naW5nIFNvdXJjZTpcbiI7Ci0gICAgICAgIGxheWVycy50
ZXh0Q29udGVudCArPSB3aW5kb3cuaW50ZXJuYWxzLnBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0KG1v
ZGVsLCB3aW5kb3cuaW50ZXJuYWxzLlBMQVRGT1JNX0xBWUVSX1RSRUVfSU5DTFVERV9NT0RFTFMp
OworICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgKz0gd2luZG93LmludGVybmFscz8ucGxhdGZv
cm1MYXllclRyZWVBc1RleHQobW9kZWwsIHdpbmRvdy5pbnRlcm5hbHMuUExBVEZPUk1fTEFZRVJf
VFJFRV9JTkNMVURFX01PREVMUykgPz8gIlRoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyLiI7
CisKKyAgICAgICAgbW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGV2ZW50ID0+IHsKKyAg
ICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCArPSAiQWZ0ZXIgQ2hhbmdpbmcgU291cmNlOlxu
IjsKKyAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCArPSB3aW5kb3cuaW50ZXJuYWxzPy5w
bGF0Zm9ybUxheWVyVHJlZUFzVGV4dChtb2RlbCwgd2luZG93LmludGVybmFscy5QTEFURk9STV9M
QVlFUl9UUkVFX0lOQ0xVREVfTU9ERUxTKSA/PyAiVGhpcyB0ZXN0IHJlcXVpcmVzIHRlc3RSdW5u
ZXIuIjsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyPy5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICBtb2RlbC5hZGRFdmVudExpc3RlbmVy
KCJlcnJvciIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCA9IGBG
YWlsZWQuIFNlY29uZCBtb2RlbCBkaWQgbm90IGxvYWQuYDsKKyAgICAgICAgICAgIHdpbmRvdy50
ZXN0UnVubmVyPy5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKIAog
ICAgICAgICBzb3VyY2Uuc3JjID0gInJlc291cmNlcy9jdWJlLnVzZHoiOwotICAgICAgICBtb2Rl
bC5yZWFkeS50aGVuKHZhbHVlID0+IHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewotICAgICAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCArPSAiQWZ0ZXIgQ2hhbmdp
bmcgU291cmNlOlxuIjsKLSAgICAgICAgICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgKz0gd2lu
ZG93LmludGVybmFscy5wbGF0Zm9ybUxheWVyVHJlZUFzVGV4dChtb2RlbCwgd2luZG93LmludGVy
bmFscy5QTEFURk9STV9MQVlFUl9UUkVFX0lOQ0xVREVfTU9ERUxTKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfSwgcmVhc29uID0+IHsKLSAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCA9
IGBGYWlsZWQuIFNlY29uZCBtb2RlbCBkaWQgbm90IGxvYWQ6ICR7cmVhc29ufWA7Ci0gICAgICAg
IH0pLmZpbmFsbHkoKCkgPT4geyAKLSAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAgfSk7Ci0g
ICAgICAgIAotICAgIH0sIHJlYXNvbiA9PiB7Ci0gICAgICAgIGxheWVycy50ZXh0Q29udGVudCA9
IGBGYWlsZWQuIEZpcnN0IG1vZGVsIGRpZCBub3QgbG9hZDogJHtyZWFzb259YDsKLSAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7Ci0gICAgfSk7CisgICAgfTsKKworICAgIG1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCBtb2RlbERpZExvYWRGaXJzdFNvdXJjZSwgeyBvbmNlOiB0cnVlIH0pOworICAgIG1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZXZlbnQgPT4geworICAgICAgICBsYXllcnMudGV4dENv
bnRlbnQgPSBgRmFpbGVkLiBGaXJzdCBtb2RlbCBkaWQgbm90IGxvYWQuYDsKKyAgICAgICAgd2lu
ZG93LnRlc3RSdW5uZXI/Lm5vdGlmeURvbmUoKTsKKyAgICB9LCB7IG9uY2U6IHRydWUgfSk7CisK
KyAgICBzb3VyY2Uuc3JjID0gInJlc291cmNlcy9oZWFydC51c2R6IjsKKwogPC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21v
ZGVsLWVsZW1lbnQtY29udGVudHMtbGF5ZXItdXBkYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvbW9k
ZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWNvbnRlbnRzLWxheWVyLXVwZGF0ZXMuaHRtbAppbmRl
eCA5ZjEzYTY0NDI3Mzg0MDJmMWNlN2YxZTFhYzA1YmZkNzE2MWM0NmJhLi5jOTkyMTBhMzllMDcy
ZmExN2MwMDIxODM3NjJkYTdiMmI4M2E1ZWMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tb2Rl
bC1lbGVtZW50L21vZGVsLWVsZW1lbnQtY29udGVudHMtbGF5ZXItdXBkYXRlcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1jb250ZW50cy1sYXllci11
cGRhdGVzLmh0bWwKQEAgLTYsMzkgKzYsNDAgQEAKIDwvbW9kZWw+CiA8cHJlIGlkPSJsYXllcnMi
PjwvcHJlPgogPHNjcmlwdD4KLSAgICBsZXQgbGF5ZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImxheWVycyIpOwotICAgIGxldCBzb3VyY2UgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgic291cmNlIilbMF07CisgICAgd2luZG93LnRlc3RSdW5uZXI/LndhaXRVbnRpbERvbmUo
KTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lcj8uZHVtcEFzVGV4dCgpOwogCi0gICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgbGF5ZXJz
LnRleHRDb250ZW50ID0gIlRoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyLiI7CisgICAgY29u
c3QgbGF5ZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVycyIpOworICAgIGNvbnN0
IHNvdXJjZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNvdXJjZSIpOworICAgIGNvbnN0IG1v
ZGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGVsIik7CiAKLSAgICBsZXQgbW9kZWwg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZWwiKTsKLQotICAgIG1vZGVsLnJlYWR5LnRo
ZW4odmFsdWUgPT4geworICAgIGNvbnN0IG1vZGVsRGlkTG9hZEZpcnN0U291cmNlID0gKCkgPT4g
ewogICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgPSAiQmVmb3JlIENoYW5naW5nIFNvdXJjZTpc
biI7Ci0gICAgICAgIGxheWVycy50ZXh0Q29udGVudCArPSB3aW5kb3cuaW50ZXJuYWxzLnBsYXRm
b3JtTGF5ZXJUcmVlQXNUZXh0KG1vZGVsLCB3aW5kb3cuaW50ZXJuYWxzLlBMQVRGT1JNX0xBWUVS
X1RSRUVfSU5DTFVERV9NT0RFTFMpOworICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgKz0gd2lu
ZG93LmludGVybmFscz8ucGxhdGZvcm1MYXllclRyZWVBc1RleHQobW9kZWwsIHdpbmRvdy5pbnRl
cm5hbHMuUExBVEZPUk1fTEFZRVJfVFJFRV9JTkNMVURFX01PREVMUykgPz8gIlRoaXMgdGVzdCBy
ZXF1aXJlcyB0ZXN0UnVubmVyLiI7CisKKyAgICAgICAgbW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCArPSAiQWZ0
ZXIgQ2hhbmdpbmcgU291cmNlOlxuIjsKKyAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVudCAr
PSB3aW5kb3cuaW50ZXJuYWxzPy5wbGF0Zm9ybUxheWVyVHJlZUFzVGV4dChtb2RlbCwgd2luZG93
LmludGVybmFscy5QTEFURk9STV9MQVlFUl9UUkVFX0lOQ0xVREVfTU9ERUxTKSA/PyAiVGhpcyB0
ZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXIuIjsKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVy
Py5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICBt
b2RlbC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGxh
eWVycy50ZXh0Q29udGVudCA9IGBGYWlsZWQuIFNlY29uZCBtb2RlbCBkaWQgbm90IGxvYWQuYDsK
KyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyPy5ub3RpZnlEb25lKCk7CisgICAgICAgIH0s
IHsgb25jZTogdHJ1ZSB9KTsKIAogICAgICAgICBzb3VyY2Uuc3JjID0gInJlc291cmNlcy9jdWJl
LnVzZHoiOwotICAgICAgICBtb2RlbC5yZWFkeS50aGVuKHZhbHVlID0+IHsKLSAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIGxheWVycy50ZXh0Q29u
dGVudCArPSAiQWZ0ZXIgQ2hhbmdpbmcgU291cmNlOlxuIjsKLSAgICAgICAgICAgICAgICBsYXll
cnMudGV4dENvbnRlbnQgKz0gd2luZG93LmludGVybmFscy5wbGF0Zm9ybUxheWVyVHJlZUFzVGV4
dChtb2RlbCwgd2luZG93LmludGVybmFscy5QTEFURk9STV9MQVlFUl9UUkVFX0lOQ0xVREVfTU9E
RUxTKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwgcmVhc29uID0+IHsKLSAgICAgICAgICAg
IGxheWVycy50ZXh0Q29udGVudCA9IGBGYWlsZWQuIFNlY29uZCBtb2RlbCBkaWQgbm90IGxvYWQ6
ICR7cmVhc29ufWA7Ci0gICAgICAgIH0pLmZpbmFsbHkoKCkgPT4geyAKLSAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIAotICAgIH0sIHJlYXNvbiA9PiB7Ci0gICAgICAg
IGxheWVycy50ZXh0Q29udGVudCA9IGBGYWlsZWQuIEZpcnN0IG1vZGVsIGRpZCBub3QgbG9hZDog
JHtyZWFzb259YDsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfSk7CisgICAgfQorCisgICAgaWYgKG1vZGVs
LmNvbXBsZXRlKQorICAgICAgICBtb2RlbERpZExvYWRGaXJzdFNvdXJjZSgpOworICAgIGVsc2Ug
eworICAgICAgICBtb2RlbC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgbW9kZWxEaWRMb2FkRmly
c3RTb3VyY2UsIHsgb25jZTogdHJ1ZSB9KTsKKyAgICAgICAgbW9kZWwuYWRkRXZlbnRMaXN0ZW5l
cigiZXJyb3IiLCBldmVudCA9PiB7CisgICAgICAgICAgICBsYXllcnMudGV4dENvbnRlbnQgPSBg
RmFpbGVkLiBGaXJzdCBtb2RlbCBkaWQgbm90IGxvYWQuYDsKKyAgICAgICAgICAgIHdpbmRvdy50
ZXN0UnVubmVyPy5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKKyAg
ICB9CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWVycm9yLWFu
ZC1sb2FkLWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZiZjkwODMxMzY1YmIwNGMw
YmIwZGI2NWQ3N2ZjMzQ0NzlkNjU3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21v
ZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1lcnJvci1hbmQtbG9hZC1ldmVudHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIDxtb2RlbD4gZGlzcGF0Y2hlcyBhbiAiZXJyb3Ii
IGV2ZW50IHdoZW4gaXRzIHJlc291cmNlIGxvYWQgaXMgYWJvcnRlZCBiZWZvcmUgY29tcGxldGlv
bi4KK1BBU1MgPG1vZGVsPiBkaXNwYXRjaGVzIGFuICJlcnJvciIgZXZlbnQgd2hlbiBpdHMgc3Bl
Y2lmaWVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0LgorUEFTUyA8bW9kZWw+IGRpc3BhdGNoZXMg
YSAibG9hZCIgZXZlbnQgd2hlbiBpdHMgcmVzb3VyY2UgaXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZC4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LWVy
cm9yLWFuZC1sb2FkLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2Rl
bC1lbGVtZW50LWVycm9yLWFuZC1sb2FkLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5YTViZmMx
MjI4YzBkNTI3MDYwMTY2ZjAzYjQ4ZGQ4NDczZTJlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtZXJyb3ItYW5kLWxvYWQtZXZlbnRz
Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+Jmx0O21vZGVsPiBsb2FkIGFuZCBlcnJvciBldmVudHM8L3RpdGxlPgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvbW9kZWwtZWxlbWVudC10ZXN0LXV0aWxzLmpzIj48L3Njcmlw
dD4KKzxib2R5PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgbW9kZWxfbG9hZF90
ZXN0ID0gKGV4cGVjdGVkRXZlbnQsIGV4ZWN1dG9yLCBkZXNjcmlwdGlvbikgPT4geworICAgIHBy
b21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCBy
ZWplY3QpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IFttb2RlbCwgc291cmNlXSA9IGNyZWF0ZU1v
ZGVsQW5kU291cmNlKHQpOworCisgICAgICAgICAgICBjb25zdCBoYW5kbGVFdmVudCA9IGV2ZW50
ID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gImxvYWQiKQorICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShtb2RlbC5jb21wbGV0ZSwgYG1vZGVsLmNvbXBsZXRl
IGlzIHRydWUgdXBvbiByZWNlaXZpbmcgdGhlICJsb2FkIiBldmVudC5gKTsKKyAgICAgICAgICAg
ICAgICBlbHNlIGlmIChldmVudC50eXBlID09PSAiZXJyb3IiKQorICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfZmFsc2UobW9kZWwuY29tcGxldGUsIGBtb2RlbC5jb21wbGV0ZSBpcyBmYWxzZSB1
cG9uIHJlY2VpdmluZyB0aGUgImVycm9yIiBldmVudC5gKTsKKworICAgICAgICAgICAgICAgIGlm
IChldmVudC50eXBlID09PSBleHBlY3RlZEV2ZW50KQorICAgICAgICAgICAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByZWplY3Qo
YHJlY2VpdmVkIHVuZXhwZWN0ZWQgZXZlbnQ6ICR7ZXZlbnQudHlwZX1gKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKG1vZGVsLmNvbXBsZXRlLCAibW9kZWwuY29t
cGxldGUgaXMgZmFsc2UgYmVmb3JlIHRoZSBsb2FkIGlzIGluaXRpYXRlZC4iKTsKKworICAgICAg
ICAgICAgbW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGhhbmRsZUV2ZW50KTsKKyAgICAg
ICAgICAgIG1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgaGFuZGxlRXZlbnQpOworCisg
ICAgICAgICAgICBleGVjdXRvcihzb3VyY2UpOworICAgICAgICB9KTsKKyAgICB9LCBkZXNjcmlw
dGlvbik7Cit9OworCittb2RlbF9sb2FkX3Rlc3QoImVycm9yIiwgc291cmNlID0+IHsKKyAgICBz
b3VyY2Uuc3JjID0gInJlc291cmNlcy9oZWFydC51c2R6IjsKKyAgICBzb3VyY2UucmVtb3ZlKCk7
Cit9LCBgPG1vZGVsPiBkaXNwYXRjaGVzIGFuICJlcnJvciIgZXZlbnQgd2hlbiBpdHMgcmVzb3Vy
Y2UgbG9hZCBpcyBhYm9ydGVkIGJlZm9yZSBjb21wbGV0aW9uLmApOworCittb2RlbF9sb2FkX3Rl
c3QoImVycm9yIiwgc291cmNlID0+IHsKKyAgICBzb3VyY2Uuc3JjID0gInJlc291cmNlcy9kb2Vz
LW5vdC1leGlzdC51c2R6IjsKK30sIGA8bW9kZWw+IGRpc3BhdGNoZXMgYW4gImVycm9yIiBldmVu
dCB3aGVuIGl0cyBzcGVjaWZpZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QuYCk7CisKK21vZGVs
X2xvYWRfdGVzdCgibG9hZCIsIHNvdXJjZSA9PiB7CisgICAgc291cmNlLnNyYyA9ICJyZXNvdXJj
ZXMvY3ViZS51c2R6IjsKK30sIGA8bW9kZWw+IGRpc3BhdGNoZXMgYSAibG9hZCIgZXZlbnQgd2hl
biBpdHMgcmVzb3VyY2UgaXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZC5gKTsKKworPC9zY3JpcHQ+Cis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1l
bnQtZ3JhcGhpY3MtbGF5ZXJzLW9wYWNpdHkuaHRtbCBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1l
bnQvbW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMtb3BhY2l0eS5odG1sCmluZGV4IDQ5ODFl
NmRiYjNjOWM1NGU2NzFkNWEyYTZmYjVkMmZlN2IxMWUwOGIuLmE2MTMyZjkyNmQ3N2MxOGEwYjNm
Yzg4OWZmN2U2YzNlNjUwMDg4YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1l
bnQvbW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMtb3BhY2l0eS5odG1sCisrKyBiL0xheW91
dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMtb3BhY2l0
eS5odG1sCkBAIC0xMywyNiArMTMsMjcgQEAKIDwvbW9kZWw+CiA8cHJlIGlkPSJsYXllcnMiPjwv
cHJlPgogPHNjcmlwdD4KLSAgICBsZXQgbGF5ZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImxheWVycyIpOworICAgIHdpbmRvdy50ZXN0UnVubmVyPy53YWl0VW50aWxEb25lKCk7CisgICAg
d2luZG93LnRlc3RSdW5uZXI/LmR1bXBBc1RleHQoKTsKIAotICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGxheWVycy50ZXh0Q29u
dGVudCA9ICJUaGlzIHRlc3QgcmVxdWlyZXMgdGVzdFJ1bm5lci4iOworICAgIGNvbnN0IGxheWVy
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXllcnMiKTsKKyAgICBjb25zdCBtb2RlbCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIpOwogCi0gICAgbGV0IG1vZGVsID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGVsIik7Ci0KLSAgICBtb2RlbC5yZWFkeS50aGVuKHZh
bHVlID0+IHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgbGF5
ZXJzLmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMucGxhdGZvcm1MYXllclRyZWVBc1RleHQo
bW9kZWwpOworICAgIGNvbnN0IG1vZGVsRGlkTG9hZCA9ICgpID0+IHsKKyAgICAgICAgbGF5ZXJz
LmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHM/LnBsYXRmb3JtTGF5ZXJUcmVlQXNUZXh0KG1v
ZGVsKSA/PyAiVGhpcyB0ZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXIuIjsKICAgICAgICAgbW9kZWwu
cmVtb3ZlKCk7Ci0gICAgfSwgcmVhc29uID0+IHsKLSAgICAgICAgbGF5ZXJzLnRleHRDb250ZW50
ID0gYEZhaWxlZC4gTW9kZWwgZGlkIG5vdCBsb2FkOiAke3JlYXNvbn1gOwotICAgIH0pLmZpbmFs
bHkoKCkgPT4geyAKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfSk7CisgICAgICAgIHdpbmRvdy50ZXN0UnVu
bmVyPy5ub3RpZnlEb25lKCk7CisgICAgfTsKKworICAgIGlmIChtb2RlbC5jb21wbGV0ZSkKKyAg
ICAgICAgbW9kZWxEaWRMb2FkKCk7CisgICAgZWxzZSB7CisgICAgICAgIG1vZGVsLmFkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCBtb2RlbERpZExvYWQpOworICAgICAgICBtb2RlbC5hZGRFdmVudExp
c3RlbmVyKCJlcnJvciIsIGV2ZW50ID0+IHsKKyAgICAgICAgICAgIGxheWVycy50ZXh0Q29udGVu
dCA9IGBGYWlsZWQuIE1vZGVsIGRpZCBub3QgbG9hZC5gOworICAgICAgICAgICAgd2luZG93LnRl
c3RSdW5uZXI/Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQogPC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21v
ZGVsLWVsZW1lbnQtZ3JhcGhpY3MtbGF5ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVt
ZW50L21vZGVsLWVsZW1lbnQtZ3JhcGhpY3MtbGF5ZXJzLmh0bWwKaW5kZXggZjA5MzgzZWJjODI1
MjIxM2MzY2RjOTIzMGUwZDBmNjlhZDZkMWY4YS4uYWYxYTIxYThmMTA3ZmQ0ODAxZDhjNTIyYmRi
ZjQ2OTYxNjgwODg0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2Rl
bC1lbGVtZW50LWdyYXBoaWNzLWxheWVycy5odG1sCisrKyBiL0xheW91dFRlc3RzL21vZGVsLWVs
ZW1lbnQvbW9kZWwtZWxlbWVudC1ncmFwaGljcy1sYXllcnMuaHRtbApAQCAtNiwyNiArNiwyNyBA
QAogPC9tb2RlbD4KIDxwcmUgaWQ9ImxheWVycyI+PC9wcmU+CiA8c2NyaXB0PgotICAgIGxldCBs
YXllcnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGF5ZXJzIik7CisgICAgd2luZG93LnRl
c3RSdW5uZXI/LndhaXRVbnRpbERvbmUoKTsKKyAgICB3aW5kb3cudGVzdFJ1bm5lcj8uZHVtcEFz
VGV4dCgpOwogCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAg
ICB9IGVsc2UKLSAgICAgICAgbGF5ZXJzLnRleHRDb250ZW50ID0gIlRoaXMgdGVzdCByZXF1aXJl
cyB0ZXN0UnVubmVyLiI7CisgICAgY29uc3QgbGF5ZXJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImxheWVycyIpOworICAgIGNvbnN0IG1vZGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im1vZGVsIik7CiAKLSAgICBsZXQgbW9kZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9k
ZWwiKTsKLQotICAgIG1vZGVsLnJlYWR5LnRoZW4odmFsdWUgPT4gewotICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICBsYXllcnMuaW5uZXJUZXh0ID0gd2luZG93Lmlu
dGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOworICAgIGNvbnN0IG1vZGVsRGlkTG9h
ZCA9ICgpID0+IHsKKyAgICAgICAgbGF5ZXJzLmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHM/
LmxheWVyVHJlZUFzVGV4dChkb2N1bWVudCkgPz8gIlRoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVu
bmVyLiI7CiAgICAgICAgIG1vZGVsLnJlbW92ZSgpOwotICAgIH0sIHJlYXNvbiA9PiB7Ci0gICAg
ICAgIGxheWVycy50ZXh0Q29udGVudCA9IGBGYWlsZWQuIE1vZGVsIGRpZCBub3QgbG9hZDogJHty
ZWFzb259YDsKLSAgICB9KS5maW5hbGx5KCgpID0+IHsgCi0gICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0pOwor
ICAgICAgICB3aW5kb3cudGVzdFJ1bm5lcj8ubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIGlm
IChtb2RlbC5jb21wbGV0ZSkKKyAgICAgICAgbW9kZWxEaWRMb2FkKCk7CisgICAgZWxzZSB7Cisg
ICAgICAgIG1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBtb2RlbERpZExvYWQpOworICAg
ICAgICBtb2RlbC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGV2ZW50ID0+IHsKKyAgICAgICAg
ICAgIGxheWVycy50ZXh0Q29udGVudCA9IGBGYWlsZWQuIE1vZGVsIGRpZCBub3QgbG9hZC5gOwor
ICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXI/Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSk7
CisgICAgfQogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWV4cGVjdGVkLnR4dApp
bmRleCBmODdiMjQ1MjRhMTg4MWRmY2E1YTYyNWNjZTQxZmMwNTU5ZTAyNDY2Li44N2YyOTc2NDlj
ZWZiYWI1NjNmNTMzYzJhYzM2MTU5YTFiMTdiMmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9t
b2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1leHBlY3RlZC50eHQKQEAg
LTEsMyArMSw1IEBACi1UaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgdGhlIHdvcmQgIlBhc3Nl
ZCIgYmVsb3c6CiAKLVBhc3NlZAorUEFTUyA8bW9kZWw+IHJlamVjdHMgdGhlIHJlYWR5IHByb21p
c2Ugd2hlbiBwcm92aWRlZCB3aXRoIGFuIHVua25vd24gcmVzb3VyZS4KK1BBU1MgPG1vZGVsPiBy
ZWplY3RzIHRoZSByZWFkeSBwcm9taXNlIHdoZW4gaXRzIHJlc291cmNlIGxvYWQgaXMgYWJvcnRl
ZC4KK1BBU1MgPG1vZGVsPiByZXNvbHZlcyB0aGUgcmVhZHkgcHJvbWlzZSB3aGVuIHByb3ZpZGVk
IHdpdGggYSBrbm93biByZXNvdXJjZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwt
ZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtYWJvcnRlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVk
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjg3YjI0NTI0YTE4
ODFkZmNhNWE2MjVjY2U0MWZjMDU1OWUwMjQ2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1l
bnQtcmVhZHktbG9hZC1hYm9ydGVkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotVGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQiIGJl
bG93OgotCi1QYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9k
ZWwtZWxlbWVudC1yZWFkeS1sb2FkLWFib3J0ZWQuaHRtbCBiL0xheW91dFRlc3RzL21vZGVsLWVs
ZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWFib3J0ZWQuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggY2EzY2ExMWIzZmFlNmNkMWNkMjU1MDk3ZGYzYjMyNDkyNzFhNTU2
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHktbG9hZC1hYm9ydGVkLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIE1vZGVsRWxlbWVudEVuYWJsZWQ9dHJ1ZSBdIC0tPgotPGh0bWw+Ci08
Ym9keT4KLTxtb2RlbCBpZD0ibW9kZWwiPgotICAgIDxzb3VyY2UgaWQ9Im1vZGVsLXNvdXJjZSI+
Ci08L21vZGVsPgotPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNz
ZWQiIGJlbG93OjwvcD4KLTxwIGlkPSJyZXN1bHQiPkZhaWxlZDwvcD4KLTxzY3JpcHQ+Ci0gICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB9Ci0KLSAgICBsZXQg
cmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwotICAgIGxldCBtb2Rl
bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlbCIpOwotICAgIGxldCBzb3VyY2UgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZWwtc291cmNlIik7Ci0KLSAgICBtb2RlbC5yZWFk
eS50aGVuKHZhbHVlID0+IHsKLSAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gIkZhaWxlZC4g
TW9kZWwgc2hvdWxkIG5vdCBoYXZlIGxvYWRlZCwgYnV0IGRpZC4iOwotICAgIH0sIHJlYXNvbiA9
PiB7Ci0gICAgICAgIGlmIChyZWFzb24ubmFtZSA9PSAiQWJvcnRFcnJvciIpCi0gICAgICAgICAg
ICByZXN1bHQudGV4dENvbnRlbnQgPSBgUGFzc2VkYDsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgcmVzdWx0LnRleHRDb250ZW50ID0gYEZhaWxlZC4gV3JvbmcgZXJyb3IgdHlwZTogJHtyZWFz
b259LmA7Ci0gICAgfSkuZmluYWxseSgoKSA9PiB7IAotICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9KTsKLQot
ICAgIHNvdXJjZS5zcmMgPSAicmVzb3VyY2VzL2hlYXJ0LnVzZHoiOwotCi0gICAgbW9kZWwucmVt
b3ZlQ2hpbGQoc291cmNlKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFp
bGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVu
dC1yZWFkeS1sb2FkLWZhaWxlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGY4N2IyNDUyNGExODgxZGZjYTVhNjI1Y2NlNDFmYzA1NTllMDI0NjYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwt
ZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRo
ZSB3b3JkICJQYXNzZWQiIGJlbG93OgotCi1QYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21vZGVsLWVsZW1lbnQvbW9kZWwtZWxlbWVudC1yZWFkeS1sb2FkLWZhaWxlZC5odG1sIGIvTGF5
b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxvYWQtZmFpbGVkLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzZTgzYWNiM2IwNjAyYzk1MjBhMzBl
YWQwZjdlMzNkMzJkMjRmNGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5LWxv
YWQtZmFpbGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIE1vZGVsRWxlbWVudEVuYWJsZWQ9dHJ1ZSBd
IC0tPgotPGh0bWw+Ci08Ym9keT4KLTxtb2RlbCBpZD0ibW9kZWwiPgotICAgIDxzb3VyY2Ugc3Jj
PSJyZXNvdXJjZXMvZG9lcy1ub3QtZXhpc3QudXNkeiI+Ci08L21vZGVsPgotPHA+VGhpcyB0ZXN0
IHBhc3NlcyBpZiB5b3Ugc2VlIHRoZSB3b3JkICJQYXNzZWQiIGJlbG93OjwvcD4KLTxwIGlkPSJy
ZXN1bHQiPkZhaWxlZDwvcD4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLSAgICB9Ci0KLSAgICBsZXQgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlc3VsdCIpOwotICAgIGxldCBtb2RlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJtb2RlbCIpOwotCi0gICAgbW9kZWwucmVhZHkudGhlbih2YWx1ZSA9PiB7Ci0gICAgICAg
IHJlc3VsdC50ZXh0Q29udGVudCA9ICJGYWlsZWQuIE1vZGVsIHNob3VsZCBub3QgaGF2ZSBsb2Fk
ZWQsIGJ1dCBkaWQuIjsKLSAgICB9LCByZWFzb24gPT4gewotICAgICAgICBpZiAocmVhc29uLm5h
bWUgPT0gIk5ldHdvcmtFcnJvciIpCi0gICAgICAgICAgICByZXN1bHQudGV4dENvbnRlbnQgPSBg
UGFzc2VkYDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0g
YEZhaWxlZC4gV3JvbmcgZXJyb3IgdHlwZTogJHtyZWFzb259LmA7Ci0gICAgfSkuZmluYWxseSgo
KSA9PiB7IAotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICB9KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJl
YWR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHku
aHRtbAppbmRleCBlODA2MjRhZTU3YTVlYzE5YjkyYzA1ZjA1MzYzNTJlMWRmYWU0Mjc0Li44Mzli
Njk4MWY4M2RkYjY3ZjJiNWFhMzkyYzYyNTNhMGVhNjYzYjdjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHkuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9tb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtcmVhZHkuaHRtbApAQCAtMSwyOCArMSwz
OCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBNb2RlbEVsZW1l
bnRFbmFibGVkPXRydWUgXSAtLT4KLTxodG1sPgorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+Jmx0O21vZGVsPiByZWFkeSBwcm9taXNlPC90aXRsZT4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL21vZGVsLWVsZW1lbnQtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+
CiA8Ym9keT4KLTxtb2RlbCBpZD0ibW9kZWwiPgotICAgIDxzb3VyY2Ugc3JjPSJyZXNvdXJjZXMv
aGVhcnQudXNkeiI+Ci08L21vZGVsPgotPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIHRo
ZSB3b3JkICJQYXNzZWQiIGJlbG93OjwvcD4KLTxwIGlkPSJyZXN1bHQiPkZhaWxlZDwvcD4KIDxz
Y3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB9
CisndXNlIHN0cmljdCc7CiAKLSAgICBsZXQgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlc3VsdCIpOwotICAgIGxldCBtb2RlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJt
b2RlbCIpOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IFttb2RlbCwgc291
cmNlXSA9IGNyZWF0ZU1vZGVsQW5kU291cmNlKHQsICJyZXNvdXJjZXMvZG9lcy1ub3QtZXhpc3Qu
dXNkeiIpOworICAgIHJldHVybiBtb2RlbC5yZWFkeS50aGVuKAorICAgICAgICB2YWx1ZSA9PiBh
c3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIHJlYWR5IHByb21pc2UgcmVzb2x1dGlvbi4iKSwK
KyAgICAgICAgcmVhc29uID0+IGFzc2VydF90cnVlKHJlYXNvbi50b1N0cmluZygpLmluY2x1ZGVz
KCJOZXR3b3JrRXJyb3IiKSwgIlRoZSByZWFkeSBwcm9taXNlIGlzIHJlamVjdGVkIHdpdGggYSBO
ZXR3b3JrRXJyb3IuIikKKyAgICApOworfSwgYDxtb2RlbD4gcmVqZWN0cyB0aGUgcmVhZHkgcHJv
bWlzZSB3aGVuIHByb3ZpZGVkIHdpdGggYW4gdW5rbm93biByZXNvdXJlLmApOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgW21vZGVsLCBzb3VyY2VdID0gY3JlYXRlTW9k
ZWxBbmRTb3VyY2UodCwgInJlc291cmNlcy9oZWFydC51c2R6Iik7CisgICAgY29uc3QgbW9kZWxS
ZWFkeSA9IG1vZGVsLnJlYWR5OworCisgICAgc291cmNlLnJlbW92ZSgpOworICAgIGFzc2VydF9u
b3RfZXF1YWxzKG1vZGVsLnJlYWR5LCBtb2RlbFJlYWR5LCAiUmVtb3ZpbmcgdGhlIDxzb3VyY2U+
IGNoaWxkIHJlc2V0cyB0aGUgcmVhZHkgcHJvbWlzZS4iKTsKKworICAgIHJldHVybiBtb2RlbFJl
YWR5LnRoZW4oCisgICAgICAgIHZhbHVlID0+IGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQg
cmVhZHkgcHJvbWlzZSByZXNvbHV0aW9uLiIpLAorICAgICAgICByZWFzb24gPT4gYXNzZXJ0X3Ry
dWUocmVhc29uLnRvU3RyaW5nKCkuaW5jbHVkZXMoIkFib3J0RXJyb3IiKSwgIlRoZSByZWFkeSBw
cm9taXNlIGlzIHJlamVjdGVkIHdpdGggYSBOZXR3b3JrRXJyb3IuIikKKyAgICApOworfSwgYDxt
b2RlbD4gcmVqZWN0cyB0aGUgcmVhZHkgcHJvbWlzZSB3aGVuIGl0cyByZXNvdXJjZSBsb2FkIGlz
IGFib3J0ZWQuYCk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBbbW9k
ZWwsIHNvdXJjZV0gPSBjcmVhdGVNb2RlbEFuZFNvdXJjZSh0LCAicmVzb3VyY2VzL2N1YmUudXNk
eiIpOworICAgIGF3YWl0IG1vZGVsLnJlYWR5OworfSwgYDxtb2RlbD4gcmVzb2x2ZXMgdGhlIHJl
YWR5IHByb21pc2Ugd2hlbiBwcm92aWRlZCB3aXRoIGEga25vd24gcmVzb3VyY2UuYCk7CiAKLSAg
ICBtb2RlbC5yZWFkeS50aGVuKHZhbHVlID0+IHsKLSAgICAgICAgcmVzdWx0LnRleHRDb250ZW50
ID0gYFBhc3NlZGA7Ci0gICAgfSwgcmVhc29uID0+IHsKLSAgICAgICAgcmVzdWx0LnRleHRDb250
ZW50ID0gYEZhaWxlZC4gTW9kZWwgZGlkIG5vdCBsb2FkOiAke3JlYXNvbn1gOwotICAgIH0pLmZp
bmFsbHkoKCkgPT4geyAKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfSk7CiA8L3NjcmlwdD4KIDwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQvcmVzb3VyY2Vz
L21vZGVsLWVsZW1lbnQtdGVzdC11dGlscy5qcyBiL0xheW91dFRlc3RzL21vZGVsLWVsZW1lbnQv
cmVzb3VyY2VzL21vZGVsLWVsZW1lbnQtdGVzdC11dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTUzNGNj
YzBmYjAxMTRlNDIzNWFhNGUxMDU1MjY4ZWRkZDdlY2MwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbW9kZWwtZWxlbWVudC9yZXNvdXJjZXMvbW9kZWwtZWxlbWVudC10ZXN0LXV0aWxz
LmpzCkBAIC0wLDAgKzEsMTQgQEAKKworY29uc3QgY3JlYXRlTW9kZWxBbmRTb3VyY2UgPSAodGVz
dCwgc3JjKSA9PiB7CisgICAgY29uc3QgbW9kZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJt
b2RlbCIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobW9kZWwpOworCisgICAgY29u
c3Qgc291cmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic291cmNlIik7CisgICAgaWYgKHNy
YykKKyAgICAgICAgc291cmNlLnNyYyA9IHNyYzsKKyAgICBtb2RlbC5hcHBlbmRDaGlsZChzb3Vy
Y2UpOworCisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBtb2RlbC5yZW1vdmUoKSk7CisKKyAg
ICByZXR1cm4gW21vZGVsLCBzb3VyY2VdOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkNDA0NjViZGI3MzM0NTVh
MWU4NTE3ZTk0NTlkNDMwYWI5MTIzNWY1Li4wNzNjOTgwY2VlY2Y4MmY5MTAxODZjYzdmNzhhOGYy
NjAyZjg4MWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9y
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRv
ci9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzYsMyArMTM2LDYgQEAgaHR0cC90ZXN0cy9zZWN1cml0
eS93ZWJhdWRpby1yZW5kZXItcmVtb3RlLWF1ZGlvLWFsbG93ZWQtY3Jvc3NvcmlnaW4uaHRtbCBb
IFBhc3MKIGh0dHAvdGVzdHMvc2VjdXJpdHkvd2ViYXVkaW8tcmVuZGVyLXJlbW90ZS1hdWRpby1h
bGxvd2VkLWNyb3Nzb3JpZ2luLXJlZGlyZWN0Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCiB3ZWJr
aXQub3JnL2IvMjIzOTQ5IGNyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy1vb20uaHRtbCBbIFBh
c3MgVGltZW91dCBdCisKKyMgVGhpcyB0ZXN0IHJlbGllcyBvbiBBUlFMIEFQSXMgd2hpY2ggYXJl
IG5vdCBhdmFpbGFibGUgaW4gdGhlIFNpbXVsYXRvcgorbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVt
ZW50LXJlYWR5Lmh0bWwgWyBTa2lwIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGMzYmE4NTcyYThhMDI4
MzM5MTQwMGM3ZWYwNTExNDdkYzY5Y2E2ZTcuLmYxNzIwMTM4NGMwNjg1MDA1YWNmZTI2MGQzNjdk
NGYwN2NiZDk0MTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
CkBAIC0yMjc2LDcgKzIyNzYsNyBAQCB3ZWJraXQub3JnL2IvMjI4MzExIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nL2Nzcy1zY29waW5nLQogIyB3ZWJraXQu
b3JnL2IvMjI4MjAwIEFkanVzdGluZyB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgTW9udGVyZXkgb24g
T3BlbiBTb3VyY2UgPHJkYXI6Ly84MDM0NDEzOD46CiBbIE1vbnRlcmV5IF0gaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb25uZWN0aW9uLXBvb2wvbmV0d29yay1wYXJ0aXRp
b24ta2V5Lmh0bWwgWyBGYWlsdXJlIF0KIAotIyB3ZWJraXQub3JnL2IvMjI4MjAwIFNldHRpbmcg
bXVsdGlwbGUgdGVzdCBleHBlY3RhdGlvbnMgZm9yIE1vbmV0ZXJ5IG9uIE9wZW5Tb3VyY2U6Cisj
IHdlYmtpdC5vcmcvYi8yMjgyMDAgU2V0dGluZyBtdWx0aXBsZSB0ZXN0IGV4cGVjdGF0aW9ucyBm
b3IgTW9udGVyZXkgb24gT3BlblNvdXJjZToKIFsgTW9udGVyZXkgXSBtb2RlbC1lbGVtZW50L21v
ZGVsLWVsZW1lbnQtZ3JhcGhpY3MtbGF5ZXJzLW9wYWNpdHkuaHRtbCBbIFBhc3MgRmFpbHVyZSBd
CiBbIE1vbnRlcmV5IERlYnVnIGFybTY0IF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVzdGFydEljZS5odHRwcy5odG1sIFsgUGFzcyBG
YWlsdXJlIENyYXNoIF0KIApAQCAtMjQyMSw2ICsyNDIxLDkgQEAgd2Via2l0Lm9yZy9iLzIyNjgy
NiBbIE1vbnRlcmV5IF0gaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXkvQXBwbGVQYXlCdXR0b24uaHRt
bCBbIEYKIAogd2Via2l0Lm9yZy9iLzIyMTIzMCBbIEJpZ1N1cisgXSBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hZGRzb3VyY2VidWZmZXIu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKKyMgPG1vZGVsPiB0ZXN0cyBpbnZvbHZpbmcgdGhlIHJl
YWR5IHByb21pc2UgY2FuIG9ubHkgd29yayBvbiBNb250ZXJleSBhbmQgdXAKK1sgQ2F0YWxpbmEg
QmlnU3VyIF0gbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50LXJlYWR5Lmh0bWwgWyBTa2lwIF0K
KwogIyBPVC1TVkcgaXMgbm90IGltcGxlbWVudGVkIG9uIENhdGFsaW5hLgogWyBDYXRhbGluYSBd
IGZhc3QvdGV4dC9vdHN2Zy1jYW52YXMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCg==
</data>
<flag name="commit-queue"
          id="475970"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>