<?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>200293</bug_id>
          
          <creation_ts>2019-07-30 22:33:48 -0700</creation_ts>
          <short_desc>REGRESSION (r240942): first visually non-empty layout milestone is not reached in media documents until after the video finishes loading</short_desc>
          <delta_ts>2019-07-31 21:25:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jer.noble</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1557194</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-07-30 22:33:48 -0700</bug_when>
    <thetext>Increment FrameView&apos;s visually non-empty pixel count by a video&apos;s natural size</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557195</commentid>
    <comment_count>1</comment_count>
      <attachid>375208</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-07-30 22:34:31 -0700</bug_when>
    <thetext>Created attachment 375208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557196</commentid>
    <comment_count>2</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-07-30 22:34:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/52937749&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557197</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-30 22:36:06 -0700</bug_when>
    <thetext>Attachment 375208 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:9:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557458</commentid>
    <comment_count>4</comment_count>
      <attachid>375271</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-07-31 17:16:22 -0700</bug_when>
    <thetext>Created attachment 375271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557460</commentid>
    <comment_count>5</comment_count>
      <attachid>375272</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-07-31 17:22:15 -0700</bug_when>
    <thetext>Created attachment 375272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557463</commentid>
    <comment_count>6</comment_count>
      <attachid>375272</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-31 17:43:23 -0700</bug_when>
    <thetext>Comment on attachment 375272
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/FirstVisuallyNonEmptyMilestone.mm:125
&gt; +    [configuration setAllowsInlineMediaPlayback:YES];

This obviously doesn&apos;t exist on Mac. Once it builds, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557469</commentid>
    <comment_count>7</comment_count>
      <attachid>375272</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-07-31 17:54:17 -0700</bug_when>
    <thetext>Comment on attachment 375272
Patch

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

&gt; Source/WebCore/ChangeLog:21
&gt; +        In order for these HTMLDocument subclasses to be considered visually non-empty before they
&gt; +        finish loading they must render something that exceeds the visual character or pixel

I don&apos; know if these media document should even do any throttling. Why don&apos;t we just not throttle them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557474</commentid>
    <comment_count>8</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-07-31 18:05:04 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #7)
&gt; Comment on attachment 375272 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=375272&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:21
&gt; &gt; +        In order for these HTMLDocument subclasses to be considered visually non-empty before they
&gt; &gt; +        finish loading they must render something that exceeds the visual character or pixel
&gt; 
&gt; I don&apos; know if these media document should even do any throttling. Why don&apos;t
&gt; we just not throttle them?

Video documents are pretty flashy otherwise. You see the video element start out at a default size then resize once the video metadata loads. You also see a lot of media control flashiness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557498</commentid>
    <comment_count>9</comment_count>
      <attachid>375280</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-07-31 19:51:47 -0700</bug_when>
    <thetext>Created attachment 375280
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557521</commentid>
    <comment_count>10</comment_count>
      <attachid>375280</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-31 21:25:08 -0700</bug_when>
    <thetext>Comment on attachment 375280
Patch

Clearing flags on attachment: 375280

Committed r248095: &lt;https://trac.webkit.org/changeset/248095&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557522</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-31 21:25:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375208</attachid>
            <date>2019-07-30 22:34:31 -0700</date>
            <delta_ts>2019-07-31 01:05:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200293-20190730223428.patch</filename>
            <type>text/plain</type>
            <size>3689</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc4MjAwZjZjNDBkZGE2
YmE4Yzk1MWJjMWIzODI5YjU3Y2RhZTdhMC4uNWNiMmU5NjIwYWVhZWZlOGM3YTRkNzkxNWU5NGNh
YWM5Mjc1OTExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA3LTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBJbmNyZW1lbnQgRnJhbWVWaWV3
J3MgdmlzdWFsbHkgbm9uLWVtcHR5IHBpeGVsIGNvdW50IGJ5IGEgdmlkZW8ncyBuYXR1cmFsIHNp
emUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDI5
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTI5Mzc3NDk+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVySW1hZ2U6OmltYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6
aW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnRJZk5lZWRlZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckltYWdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZGVv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZGVvOjp1cGRhdGVJbnRyaW5zaWNTaXpl
KToKKwogMjAxOS0wNy0yOSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQgY2xhaW1zIEZMQUMtaW4tTVA0
IHN1cHBvcnQgb24gaU9TIGFuZCBtYWNPUywgYnV0IHBsYXlzIHNpbGVuY2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IDRkNmFhNzU3ZWFhMzgxY2UwY2FjZjhm
ZTVmZDEzYjhiMDg0NGQyZjAuLmY2Y2I1NjE4MTJkMjIyNjg2Njk4M2YzYWI5Yzc0MGE1NmRiMDI2
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMjY5LDEy
ICsyNjksOSBAQCB2b2lkIFJlbmRlckltYWdlOjppbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRy
IG5ld0ltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQogCiAgICAgaWYgKG5ld0ltYWdlICE9IGlt
YWdlUmVzb3VyY2UoKS5pbWFnZVB0cigpIHx8ICFuZXdJbWFnZSkKICAgICAgICAgcmV0dXJuOwot
ICAgIAotICAgIGlmICghbV9kaWRJbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudCkg
ewotICAgICAgICAvLyBBdCBhIHpvb20gbGV2ZWwgb2YgMSB0aGUgaW1hZ2UgaXMgZ3VhcmFudGVl
ZCB0byBoYXZlIGFuIGludGVnZXIgc2l6ZS4KLSAgICAgICAgdmlldygpLmZyYW1lVmlldygpLmlu
Y3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50KGZsb29yZWRJbnRTaXplKGltYWdlUmVz
b3VyY2UoKS5pbWFnZVNpemUoMS4wZikpKTsKLSAgICAgICAgbV9kaWRJbmNyZW1lbnRWaXN1YWxs
eU5vbkVtcHR5UGl4ZWxDb3VudCA9IHRydWU7Ci0gICAgfQorCisgICAgLy8gQXQgYSB6b29tIGxl
dmVsIG9mIDEgdGhlIGltYWdlIGlzIGd1YXJhbnRlZWQgdG8gaGF2ZSBhbiBpbnRlZ2VyIHNpemUu
CisgICAgaW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnRJZk5lZWRlZChmbG9vcmVk
SW50U2l6ZShpbWFnZVJlc291cmNlKCkuaW1hZ2VTaXplKDEuMGYpKSk7CiAKICAgICBJbWFnZVNp
emVDaGFuZ2VUeXBlIGltYWdlU2l6ZUNoYW5nZSA9IEltYWdlU2l6ZUNoYW5nZU5vbmU7CiAKQEAg
LTg1MCw0ICs4NDcsMTMgQEAgUmVuZGVyQm94KiBSZW5kZXJJbWFnZTo6ZW1iZWRkZWRDb250ZW50
Qm94KCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordm9pZCBSZW5kZXJJbWFnZTo6
aW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnRJZk5lZWRlZChjb25zdCBJbnRTaXpl
JiBzaXplKQoreworICAgIGlmIChtX2RpZEluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENv
dW50KQorICAgICAgICByZXR1cm47CisKKyAgICB2aWV3KCkuZnJhbWVWaWV3KCkuaW5jcmVtZW50
VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoc2l6ZSk7CisgICAgbV9kaWRJbmNyZW1lbnRWaXN1
YWxseU5vbkVtcHR5UGl4ZWxDb3VudCA9IHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKaW5kZXggODJjYzc0MTlmZTM3
NDc1NzhmYWI2YjI1MmQ5MGFlZThiMjNkNzA1ZC4uZTJjYTkxOTJhNzAyNGI0ZjcxYjMyODBhYWVj
ZWI1MTliNWQyMzZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAg
LTEwMCw2ICsxMDAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGltYWdlQ2hhbmdlZChpbWFnZVJl
c291cmNlKCkuaW1hZ2VQdHIoKSk7CiAgICAgfQogCisgICAgdm9pZCBpbmNyZW1lbnRWaXN1YWxs
eU5vbkVtcHR5UGl4ZWxDb3VudElmTmVlZGVkKGNvbnN0IEludFNpemUmKTsKKwogcHJpdmF0ZToK
ICAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJl
bmRlckltYWdlIjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlkZW8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcApp
bmRleCAyZWVkOWM0NWIyNzgyYjU5ZDQ5ZDU5MWZkYWNmNDRmZGNlOGVmOTAwLi4zYmViYWNlMDY0
ZjFkMzUyNGQ3MGEyMDZkZWZkZGY2Njc2Y2U3NmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWRlby5jcHAKQEAgLTEwMSw2ICsxMDEsMTAgQEAgYm9vbCBSZW5kZXJWaWRlbzo6
dXBkYXRlSW50cmluc2ljU2l6ZSgpCiAgICAgaWYgKHNpemUuaXNFbXB0eSgpICYmIGRvY3VtZW50
KCkuaXNNZWRpYURvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIC8vIFRy
ZWF0IHRoZSBtZWRpYSBwbGF5ZXIncyBuYXR1cmFsIHNpemUgYXMgdmlzdWFsbHkgbm9uLWVtcHR5
LgorICAgIGlmICh2aWRlb0VsZW1lbnQoKS5yZWFkeVN0YXRlKCkgPj0gSFRNTFZpZGVvRWxlbWVu
dDo6SEFWRV9NRVRBREFUQSkKKyAgICAgICAgaW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVs
Q291bnRJZk5lZWRlZChyb3VuZGVkSW50U2l6ZShzaXplKSk7CisKICAgICBpZiAoc2l6ZSA9PSBp
bnRyaW5zaWNTaXplKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375271</attachid>
            <date>2019-07-31 17:16:22 -0700</date>
            <delta_ts>2019-07-31 17:22:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200293-20190731171621.patch</filename>
            <type>text/plain</type>
            <size>26616</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc4MjAwZjZjNDBkZGE2
YmE4Yzk1MWJjMWIzODI5YjU3Y2RhZTdhMC4uZjc4NDkzMmE2YjQzMzJhY2E4MDY1YWIzZmQ1YTJm
N2M2Y2ZhODNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE5LTA3LTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjQwOTQy
KTogZmlyc3QgdmlzdWFsbHkgbm9uLWVtcHR5IGxheW91dCBtaWxlc3RvbmUgaXMgbm90IHJlYWNo
ZWQgaW4gbWVkaWEgZG9jdW1lbnRzIHVudGlsIGFmdGVyIHRoZSB2aWRlbyBmaW5pc2hlcyBsb2Fk
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAy
OTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUyOTM3NzQ5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHIyNDA5NDIgY2hhbmdlZCBGcmFtZVZpZXc6
OnF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgpIHRvIGNvbnNpZGVyIG9ubHkgZG9jdW1lbnRz
IGluIHRoZQorICAgICAgICBJbnRlcmFjdGl2ZSBvciBDb21wbGV0ZSByZWFkeSBzdGF0ZXMgYXMg
ImZpbmlzaGVkIHBhcnNpbmciLiBEb2N1bWVudHMgY29uc2lkZXJlZCBmaW5pc2hlZAorICAgICAg
ICBwYXJzaW5nIGNhbiBxdWFsaWZ5IGFzIHZpc3VhbGx5IG5vbi1lbXB0eSBldmVuIHdpdGhvdXQg
ZXhjZWVkaW5nIHRoZSB2aXN1YWwgY2hhcmFjdGVyIG9yCisgICAgICAgIHBpeGVsIHRocmVzaG9s
ZHMsIGJ1dCBkb2N1bWVudHMgY29uc2lkZXJlZCBub3QgZmluaXNoZWQgbXVzdCBmaXJzdCBleGNl
ZWQgb25lIG9mIHRoZXNlCisgICAgICAgIHRocmVzaG9sZHMgaW4gb3JkZXIgdG8gcXVhbGlmeSBh
cyB2aXN1YWxseSBub24tZW1wdHkuCisKKyAgICAgICAgSFRNTERvY3VtZW50cyBhcmUgcGxhY2Vk
IGluIHRoZSBJbnRlcmFjdGl2ZSByZWFkeSBzdGF0ZSBieSB0aGVpciBIVE1MRG9jdW1lbnRQYXJz
ZXJzLgorICAgICAgICBIb3dldmVyLCBIVE1MRG9jdW1lbnQgc3ViY2xhc3NlcyBsaWtlIEltYWdl
RG9jdW1lbnQgYW5kIE1lZGlhRG9jdW1lbnQgdXNlIHRoZWlyIG93biBjdXN0b20KKyAgICAgICAg
cGFyc2VycyB0aGF0IG5ldmVyIHNldCB0aGUgSW50ZXJhY3RpdmUgcmVhZHkgc3RhdGUgb24gdGhl
aXIgZG9jdW1lbnRzOyB0aGVzZSBkb2N1bWVudHMgZ28KKyAgICAgICAgZnJvbSBMb2FkaW5nIGRp
cmVjdGx5IHRvIENvbXBsZXRlLgorCisgICAgICAgIEluIG9yZGVyIGZvciB0aGVzZSBIVE1MRG9j
dW1lbnQgc3ViY2xhc3NlcyB0byBiZSBjb25zaWRlcmVkIHZpc3VhbGx5IG5vbi1lbXB0eSBiZWZv
cmUgdGhleQorICAgICAgICBmaW5pc2ggbG9hZGluZyB0aGV5IG11c3QgcmVuZGVyIHNvbWV0aGlu
ZyB0aGF0IGV4Y2VlZHMgdGhlIHZpc3VhbCBjaGFyYWN0ZXIgb3IgcGl4ZWwKKyAgICAgICAgdGhy
ZXNob2xkcy4gRm9yIGltYWdlIGRvY3VtZW50cywgcmVuZGVyaW5nIHRoZSBpbWFnZSBpcyB1c3Vh
bGx5IGVub3VnaCB0byBjcm9zcyB0aGUKKyAgICAgICAgdGhyZXNob2xkLCBidXQgZm9yIG1lZGlh
IGRvY3VtZW50cyB0aGUgdmlzdWFsIHBpeGVsIHRocmVzaG9sZCB3YXMgbmV2ZXIgY3Jvc3NlZCBi
ZWNhdXNlCisgICAgICAgIHZpZGVvcyBkaWQgbm90IGNvbnRyaWJ1dGUgdG8gdGhlIHZpc3VhbGx5
IG5vbi1lbXB0eSBwaXhlbCBjb3VudC4KKworICAgICAgICBBcyBhIHJlc3VsdCwgbWVkaWEgZG9j
dW1lbnRzIGFyZSBub3QgY29uc2lkZXJlZCB2aXN1YWxseSBub24tZW1wdHkgdW50aWwgdGhlIG1h
aW4gcmVzb3VyY2UKKyAgICAgICAgZmluaXNoZXMgbG9hZGluZy4gT24gaU9TIHRoaXMgbWVhbnMg
dGhhdCB0aGUgbGF5ZXIgdHJlZSByZW1haW5zIGZyb3plbiB1bnRpbCB0aGlzIHBvaW50LAorICAg
ICAgICBldmVuIHRob3VnaCB0aGUgbWVkaWEgbWlnaHQgaGF2ZSBzdGFydGVkIGF1dG9wbGF5aW5n
IHdpdGggYXVkaW8gbG9uZyBiZWZvcmUgaXQgZmluaXNoZWQKKyAgICAgICAgbG9hZGluZy4KKwor
ICAgICAgICBGaXggdGhpcyBieSB0ZWFjaGluZyBSZW5kZXJWaWRlbyB0byBjb250cmlidXRlIHRo
ZSB2aWRlbyBwbGF5ZXIncyBzaXplIHRvIEZyYW1lVmlldydzCisgICAgICAgIHZpc3VhbGx5IG5v
bi1lbXB0eSBwaXhlbCBjb3VudCBvbmNlIHRoZSB2aWRlbyBwbGF5ZXIgaGFzIGxvYWRlZCBlbm91
Z2ggZGF0YSB0byBkZXRlcm1pbmUgaXRzCisgICAgICAgIGludHJpbnNpYyBzaXplLiBWaWRlb3Mg
dGhhdCByZW5kZXIgbW9yZSB0aGFuIDEwMjQgcGl4ZWxzIHdpbGwgcXVhbGlmeSBhIG1lZGlhIGRv
Y3VtZW50IGFzCisgICAgICAgIHZpc3VhbGx5IG5vbi1lbXB0eSBldmVuIHdoZW4gaXQgaXMgc3Rp
bGwgbG9hZGluZyBpdHMgbWFpbiByZXNvdXJjZS4KKworICAgICAgICBBZGRlZCBhIG5ldyBBUEkg
dGVzdC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJJbWFnZTo6aW1hZ2VDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckltYWdlOjppbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudElmTmVlZGVkKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVmlkZW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlkZW86OnVwZGF0ZUlu
dHJpbnNpY1NpemUpOgorCiAyMDE5LTA3LTI5ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCBjbGFpbXMg
RkxBQy1pbi1NUDQgc3VwcG9ydCBvbiBpT1MgYW5kIG1hY09TLCBidXQgcGxheXMgc2lsZW5jZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggNGQ2YWE3NTdlYWEz
ODFjZTBjYWNmOGZlNWZkMTNiOGIwODQ0ZDJmMC4uZjZjYjU2MTgxMmQyMjI2ODY2OTgzZjNhYjlj
NzQwYTU2ZGIwMjZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
CkBAIC0yNjksMTIgKzI2OSw5IEBAIHZvaWQgUmVuZGVySW1hZ2U6OmltYWdlQ2hhbmdlZChXcmFw
cGVkSW1hZ2VQdHIgbmV3SW1hZ2UsIGNvbnN0IEludFJlY3QqIHJlY3QpCiAKICAgICBpZiAobmV3
SW1hZ2UgIT0gaW1hZ2VSZXNvdXJjZSgpLmltYWdlUHRyKCkgfHwgIW5ld0ltYWdlKQogICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgaWYgKCFtX2RpZEluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQ
aXhlbENvdW50KSB7Ci0gICAgICAgIC8vIEF0IGEgem9vbSBsZXZlbCBvZiAxIHRoZSBpbWFnZSBp
cyBndWFyYW50ZWVkIHRvIGhhdmUgYW4gaW50ZWdlciBzaXplLgotICAgICAgICB2aWV3KCkuZnJh
bWVWaWV3KCkuaW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoZmxvb3JlZEludFNp
emUoaW1hZ2VSZXNvdXJjZSgpLmltYWdlU2l6ZSgxLjBmKSkpOwotICAgICAgICBtX2RpZEluY3Jl
bWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50ID0gdHJ1ZTsKLSAgICB9CisKKyAgICAvLyBB
dCBhIHpvb20gbGV2ZWwgb2YgMSB0aGUgaW1hZ2UgaXMgZ3VhcmFudGVlZCB0byBoYXZlIGFuIGlu
dGVnZXIgc2l6ZS4KKyAgICBpbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudElmTmVl
ZGVkKGZsb29yZWRJbnRTaXplKGltYWdlUmVzb3VyY2UoKS5pbWFnZVNpemUoMS4wZikpKTsKIAog
ICAgIEltYWdlU2l6ZUNoYW5nZVR5cGUgaW1hZ2VTaXplQ2hhbmdlID0gSW1hZ2VTaXplQ2hhbmdl
Tm9uZTsKIApAQCAtODUwLDQgKzg0NywxMyBAQCBSZW5kZXJCb3gqIFJlbmRlckltYWdlOjplbWJl
ZGRlZENvbnRlbnRCb3goKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCit2b2lkIFJl
bmRlckltYWdlOjppbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudElmTmVlZGVkKGNv
bnN0IEludFNpemUmIHNpemUpCit7CisgICAgaWYgKG1fZGlkSW5jcmVtZW50VmlzdWFsbHlOb25F
bXB0eVBpeGVsQ291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIHZpZXcoKS5mcmFtZVZpZXco
KS5pbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudChzaXplKTsKKyAgICBtX2RpZElu
Y3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50ID0gdHJ1ZTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCA4
MmNjNzQxOWZlMzc0NzU3OGZhYjZiMjUyZDkwYWVlOGIyM2Q3MDVkLi5lMmNhOTE5MmE3MDI0YjRm
NzFiMzI4MGFhZWNlYjUxOWI1ZDIzNmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuaApAQCAtMTAwLDYgKzEwMCw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgaW1hZ2VDaGFu
Z2VkKGltYWdlUmVzb3VyY2UoKS5pbWFnZVB0cigpKTsKICAgICB9CiAKKyAgICB2b2lkIGluY3Jl
bWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50SWZOZWVkZWQoY29uc3QgSW50U2l6ZSYpOwor
CiBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAiUmVuZGVySW1hZ2UiOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWRlby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VmlkZW8uY3BwCmluZGV4IDJlZWQ5YzQ1YjI3ODJiNTlkNDlkNTkxZmRhY2Y0NGZkY2U4ZWY5MDAu
LmY4MGMyMDMzZGM2NzVmMzJkY2MyMmE1MTZhMDcxMmYyM2E0NTUyODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcApAQCAtMTAxLDYgKzEwMSwxMCBAQCBib29sIFJl
bmRlclZpZGVvOjp1cGRhdGVJbnRyaW5zaWNTaXplKCkKICAgICBpZiAoc2l6ZS5pc0VtcHR5KCkg
JiYgZG9jdW1lbnQoKS5pc01lZGlhRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgLy8gVHJlYXQgdGhlIG1lZGlhIHBsYXllcidzIG5hdHVyYWwgc2l6ZSBhcyB2aXN1YWxs
eSBub24tZW1wdHkuCisgICAgaWYgKHZpZGVvRWxlbWVudCgpLnJlYWR5U3RhdGUoKSA+PSBIVE1M
TWVkaWFFbGVtZW50RW51bXM6OkhBVkVfTUVUQURBVEEpCisgICAgICAgIGluY3JlbWVudFZpc3Vh
bGx5Tm9uRW1wdHlQaXhlbENvdW50SWZOZWVkZWQocm91bmRlZEludFNpemUoc2l6ZSkpOworCiAg
ICAgaWYgKHNpemUgPT0gaW50cmluc2ljU2l6ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
QEAgLTEwOSw3ICsxMTMsNyBAQCBib29sIFJlbmRlclZpZGVvOjp1cGRhdGVJbnRyaW5zaWNTaXpl
KCkKICAgICBzZXROZWVkc0xheW91dCgpOwogICAgIHJldHVybiB0cnVlOwogfQotICAgIAorCiBM
YXlvdXRTaXplIFJlbmRlclZpZGVvOjpjYWxjdWxhdGVJbnRyaW5zaWNTaXplKCkKIHsKICAgICAv
LyBTcGVjIHRleHQgZnJvbSA0LjguNgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGYwZjc1ZjNhYmI3MTBhOGZlMTg2ZjUxNmZkY2M5OTc2NTM1MTEz
MzEuLjY1MDg4YzY1OWRiNGNhZTI0ZThjM2RjNmQwNDY2NGQ1M2EwZGQyMjMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxOS0wNy0zMCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTiAocjI0MDk0Mik6IGZpcnN0IHZpc3VhbGx5IG5vbi1lbXB0eSBsYXlvdXQgbWlsZXN0
b25lIGlzIG5vdCByZWFjaGVkIGluIG1lZGlhIGRvY3VtZW50cyB1bnRpbCBhZnRlciB0aGUgdmlk
ZW8gZmluaXNoZXMgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAwMjkzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MjkzNzc0OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlyc3RWaXN1YWxseU5vbkVtcHR5TWls
ZXN0b25lLm1tOiBSZW5hbWVkIGZyb20gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0aERlZmVycmVkU2NyaXB0Lm1tLgorICAg
ICAgICAoLVtGaXJzdFBhaW50TWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRp
ZFJlY2VpdmVTY3JpcHRNZXNzYWdlOl0pOgorICAgICAgICAoLVtSZW5kZXJpbmdQcm9ncmVzc05h
dmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzpyZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZTpdKToK
KyAgICAgICAgKC1bUmVuZGVyaW5nUHJvZ3Jlc3NOYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpk
aWRGaW5pc2hOYXZpZ2F0aW9uOl0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMTktMDctMjkgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGxheW91
dCB0ZXN0IGNvdmVyYWdlIGZvciA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjAwMjE1PgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyNTZiNGI2OTg0OTE4NDRkNjRjN2E3NDc1OTYzMTQ0MDRjNmMw
YWFmLi4zZmExNTc5YjM1ZTA0YjgzZGY2Y2IwNWNmYjcyMjg4NjEzYjE4YjIyIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNjUsNyArNjUsNyBAQAogCQkxMTcxQjI0RjIxOUY0OUNEMDBDQjg5
N0QgLyogRmlyc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmVfQnVuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExQjdGRDIxMjE5RjQ2REQwMDY5
QjI3RiAvKiBGaXJzdE1lYW5pbmdmdWxQYWludE1pbGVzdG9uZV9CdW5kbGUuY3BwICovOyB9Owog
CQkxMTgxNTM0NDIyMDhCN0FDMDBCMkNDRDIgLyogZGVmZXJyZWQtc2NyaXB0LWxvYWQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTgx
NTM0MzIyMDhCN0FDMDBCMkNDRDIgLyogZGVmZXJyZWQtc2NyaXB0LWxvYWQuaHRtbCAqLzsgfTsK
IAkJMTE4MTUzNDYyMjA4QjdFNTAwQjJDQ0QyIC8qIGRlZmVycmVkLXNjcmlwdC5qcyBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTgxNTM0NTIy
MDhCN0U1MDBCMkNDRDIgLyogZGVmZXJyZWQtc2NyaXB0LmpzICovOyB9OwotCQkxMTgxNTM0ODIy
MDhCQURGMDBCMkNDRDIgLyogRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0aERlZmVy
cmVkU2NyaXB0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTE4MTUzNDcyMjA4QkFERjAwQjJDQ0QyIC8qIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVz
dG9uZVdpdGhEZWZlcnJlZFNjcmlwdC5tbSAqLzsgfTsKKwkJMTE4MTUzNDgyMjA4QkFERjAwQjJD
Q0QyIC8qIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExODE1MzQ3MjIwOEJBREYwMEIyQ0NEMiAv
KiBGaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmUubW0gKi87IH07CiAJCTExQjdGRDI4MjE5
RjQ3MTEwMDY5QjI3RiAvKiBGaXJzdE1lYW5pbmdmdWxQYWludE1pbGVzdG9uZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMUI3RkQyMjIxOUY0NkRE
MDA2OUIyN0YgLyogRmlyc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmUuY3BwICovOyB9OwogCQkx
MUMyNTk4RDIxRkE2MzI0MDA0QzlFMjMgLyogYXN5bmMtc2NyaXB0LWxvYWQuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMUMyNTk4QzIx
RkE2MThEMDA0QzlFMjMgLyogYXN5bmMtc2NyaXB0LWxvYWQuaHRtbCAqLzsgfTsKIAkJMTQzRERF
OTgyMEM5MDE4QjAwN0Y3NkZBIC8qIFNlY3VyaXR5LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NEY1NUQwMjA0RDQ3MUMwMDI5NDhD
NiAvKiBTZWN1cml0eS5mcmFtZXdvcmsgKi87IH07CkBAIC0xMDc2LDcgKzEwNzYsNiBAQAogCQkJ
ZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9
IDc7CiAJCQlmaWxlcyA9ICgKLQkJCQk5QkFFMTc3QjIyRTJCQkZCMDBERjMwOTggLyogY29jb2Et
d3JpdGVyLW1hcmt1cC13aXRoLXN5c3RlbS1mb250cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCTU1QTgxN0ZGMjE4MTAyMUEwMDA0QTM5QSAvKiAxMDB4MTAwLXJlZC50Z2EgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJMUE5RTUyQzkxM0U2NUVGNDAwNjkxN0Y1IC8qIDE4LWNoYXJh
Y3RlcnMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NUE4MTgwMDIxODEwMjIxMDAw
NEEzOUEgLyogNDAweDQwMC1ncmVlbi5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xMTMx
LDYgKzExMzAsNyBAQAogCQkJCTgzOUFBMzVGMjFBMjZCMDMwMDk4MERENiAvKiBjbGllbnQtc2lk
ZS1yZWRpcmVjdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFBNTBBQTIwMUEyQTUx
RkMwMEY0QzM0NSAvKiBjbG9zZS1mcm9tLXdpdGhpbi1jcmVhdGUtcGFnZS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTlCMjcwRkVFMUREQzJDMEIwMDJENTNGMyAvKiBjbG9zZWQtc2hh
ZG93LXRyZWUtdGVzdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTlCQUUxNzdCMjJF
MkJCRkIwMERGMzA5OCAvKiBjb2NvYS13cml0ZXItbWFya3VwLXdpdGgtc3lzdGVtLWZvbnRzLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRTUwMzZGNzgyMTFCQzI1NDAwQkZEQkUyIC8q
IGNvbG9yLWRyb3AuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNEI4MjVEODFFRjRE
QkZCMDA2RTQxN0YgLyogY29tcHJlc3NlZC1maWxlcy56aXAgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJNUM5RTU2ODcxREY5MTRBRTAwQzlFRTMzIC8qIGNvbnRlbnRCbG9ja2VyQ2hlY2suaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE0NDIsNyArMTQ0Miw3IEBACiAJCTExNUVCMzQy
MUVFMEI3MjAwMDNDMkMwQSAvKiBWaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlld3BvcnRTaXplRm9yVmlld3Bv
cnRVbml0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE4MTUzNDMyMjA4QjdB
QzAwQjJDQ0QyIC8qIGRlZmVycmVkLXNjcmlwdC1sb2FkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAiZGVmZXJyZWQtc2NyaXB0LWxvYWQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTExODE1MzQ1MjIwOEI3RTUwMEIyQ0NEMiAvKiBkZWZlcnJlZC1zY3JpcHQu
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSAiZGVmZXJyZWQtc2Ny
aXB0LmpzIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTE4MTUzNDcyMjA4QkFERjAw
QjJDQ0QyIC8qIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZVdpdGhEZWZlcnJlZFNjcmlw
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpcnN0VmlzdWFs
bHlOb25FbXB0eU1pbGVzdG9uZVdpdGhEZWZlcnJlZFNjcmlwdC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMTE4MTUzNDcyMjA4QkFERjAwQjJDQ0QyIC8qIEZpcnN0VmlzdWFsbHlO
b25FbXB0eU1pbGVzdG9uZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMTFCN0ZEMjEyMTlGNDZERDAwNjlCMjdGIC8qIEZpcnN0TWVhbmluZ2Z1bFBh
aW50TWlsZXN0b25lX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGaXJzdE1lYW5pbmdmdWxQYWludE1pbGVzdG9uZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxMUI3RkQyMjIxOUY0NkREMDA2OUIyN0YgLyogRmlyc3RNZWFu
aW5nZnVsUGFpbnRNaWxlc3RvbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRmlyc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxMUMyNTk4QzIxRkE2MThEMDA0QzlFMjMgLyogYXN5bmMtc2NyaXB0LWxv
YWQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJhc3luYy1zY3JpcHQtbG9hZC5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNjksNyArMjM2OSw3IEBACiAJ
CUY0MUFCOTlFMUVGNDY5MkMwMDgzRkEwOCAvKiBkaXYtYW5kLWxhcmdlLWltYWdlLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAiZGl2LWFuZC1sYXJnZS1pbWFnZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQyRDYzNDMyMkExNzI5RjAwRDJGQjNBIC8qIEF1dG9jb3JyZWN0aW9uVGVzdHNJ
T1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRvY29ycmVjdGlvblRlc3RzSU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyog
bGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IG5hbWUgPSAibGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwiOyBwYXRoID0gIlRl
c3RzL1dlYktpdENvY29hL2xhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIjsgc291
cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwotCQlGNDM0Q0ExOTIyRTY1QkNBMDA1RERCMjYgLyog
U2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBTY3JvbGxU
b1JldmVhbFNlbGVjdGlvbi5tbTsgcGF0aCA9IFNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDM0Q0ExOTIyRTY1QkNBMDA1RERCMjYgLyog
U2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxU
b1JldmVhbFNlbGVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQzRTNC
QkUyMERBREExRTAwQTRFN0VEIC8qIFdLU2Nyb2xsVmlld1Rlc3RzLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV0tTY3JvbGxWaWV3VGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0M0UzQkMwMjBEQURCODAwMEE0RTdFRCAvKiBmaXhlZC1uYXYtYmFyLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAiZml4ZWQtbmF2LWJhci5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjQ0Mjg1MUIyMTQwREYyOTAwQ0NEQTIyIC8qIE5TRm9udFBhbmVsVGVzdGluZy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOU0ZvbnRQYW5lbFRlc3RpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTI3MDMsNiArMjcwMyw3IEBACiAJCQkJRjQ0RDA2NDYxRjM5NUM0RDAwMUEwRTI5IC8qIEVk
aXRvclN0YXRlVGVzdHMubW0gKi8sCiAJCQkJQ0RBMjlCMjgyMEZEMkE5OTAwRjE1Q0VEIC8qIEV4
aXRGdWxsc2NyZWVuT25FbnRlclBpUC5tbSAqLywKIAkJCQkyRDgxMDRDQjFCRUMxM0U3MDAyMERB
NDYgLyogRmluZEluUGFnZS5tbSAqLywKKwkJCQkxMTgxNTM0NzIyMDhCQURGMDBCMkNDRDIgLyog
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lLm1tICovLAogCQkJCTJEMUZFMEFGMUFENDY1
QzEwMDZDRDlFNiAvKiBGaXhlZExheW91dFNpemUubW0gKi8sCiAJCQkJMkU5MkI4RjgyMTY0OTBF
QTAwNUI2NEYwIC8qIEZvbnRBdHRyaWJ1dGVzLm1tICovLAogCQkJCTVDQjVCM0JEMUZGQzUxN0Uw
MEMyN0JCMCAvKiBGcmFtZUhhbmRsZVNlcmlhbGl6YXRpb24ubW0gKi8sCkBAIC0zMTAxLDYgKzMx
MDIsNyBAQAogCQkJCTJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291
cmNlLW9uLWNsaWNrLmh0bWwgKi8sCiAJCQkJMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNo
YW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgKi8sCiAJCQkJODM5QUEzNUUyMUEyNkFDRDAw
OTgwREQ2IC8qIGNsaWVudC1zaWRlLXJlZGlyZWN0Lmh0bWwgKi8sCisJCQkJOUJBRTE3N0EyMkUy
QkI2QjAwREYzMDk4IC8qIGNvY29hLXdyaXRlci1tYXJrdXAtd2l0aC1zeXN0ZW0tZm9udHMuaHRt
bCAqLywKIAkJCQlFNTAzNkY3NzIxMUJDMjI4MDBCRkRCRTIgLyogY29sb3ItZHJvcC5odG1sICov
LAogCQkJCUY0QjgyNUQ2MUVGNERCRDQwMDZFNDE3RiAvKiBjb21wcmVzc2VkLWZpbGVzLnppcCAq
LywKIAkJCQlGNDY5RkIyMzFGMDE4MDM1MDA0MDE1MzkgLyogY29udGVudGVkaXRhYmxlLWFuZC10
YXJnZXQuaHRtbCAqLywKQEAgLTMyNjIsNyArMzI2NCw2IEBACiAJCQkJNTE3MTRFQjMxQ0Y4Qzc2
MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0bWwgKi8sCiAJCQkJNTEy
MEM4M0IxRTY3NEUzNTAwMjVCMjUwIC8qIFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5odG1s
ICovLAogCQkJCTJFMTMxQzE3MUQ4M0E5N0UwMDFCQTM2QyAvKiB3aWRlLWF1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbCAqLywKLQkJCQk5QkFFMTc3QTIyRTJCQjZCMDBERjMwOTggLyog
Y29jb2Etd3JpdGVyLW1hcmt1cC13aXRoLXN5c3RlbS1mb250cy5odG1sICovLAogCQkJKTsKIAkJ
CW5hbWUgPSBSZXNvdXJjZXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzM5NCw3
ICszMzk1LDYgQEAKIAkJCQlDNTFBRkI5ODE2OUY0OUZGMDA5Q0NGNjYgLyogRmluZE1hdGNoZXMu
bW0gKi8sCiAJCQkJMTFCN0ZEMjIyMTlGNDZERDAwNjlCMjdGIC8qIEZpcnN0TWVhbmluZ2Z1bFBh
aW50TWlsZXN0b25lLmNwcCAqLywKIAkJCQkxMUI3RkQyMTIxOUY0NkREMDA2OUIyN0YgLyogRmly
c3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmVfQnVuZGxlLmNwcCAqLywKLQkJCQkxMTgxNTM0NzIy
MDhCQURGMDBCMkNDRDIgLyogRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0aERlZmVy
cmVkU2NyaXB0Lm1tICovLAogCQkJCTFBREJFRkFEMTMwQzY4OUMwMEQ2MUQxOSAvKiBGb3JjZVJl
cGFpbnQuY3BwICovLAogCQkJCTM3NkM4QzA0MUQ2RTE5N0MwMDdEMkJCOSAvKiBGcmFtZUhhbmRs
ZS5jcHAgKi8sCiAJCQkJQkNCRDM3MEYxMjVBQTJFQjAwRDJDMjlGIC8qIEZyYW1lTUlNRVR5cGVI
VE1MLmNwcCAqLywKQEAgLTQzNzAsNyArNDM3MCw3IEBACiAJCQkJMTFCN0ZEMjgyMTlGNDcxMTAw
NjlCMjdGIC8qIEZpcnN0TWVhbmluZ2Z1bFBhaW50TWlsZXN0b25lLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdDODNFMDQwMUQwQTYzRTMwMEZFQkNGMyAvKiBGaXJzdFJlc3BvbmRlclNjcm9sbGlu
Z1Bvc2l0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzlFNkREMzUxRUE5N0QwODAwREQ3OEFB
IC8qIEZpcnN0UmVzcG9uZGVyU3VwcHJlc3Npb24ubW0gaW4gU291cmNlcyAqLywKLQkJCQkxMTgx
NTM0ODIyMDhCQURGMDBCMkNDRDIgLyogRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0
aERlZmVycmVkU2NyaXB0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMTE4MTUzNDgyMjA4QkFERjAw
QjJDQ0QyIC8qIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDODNFMEJDMUQwQTY1MDcwMEZFQkNGMyAvKiBGaXhlZExheW91dFNpemUubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3QTkwOUE3RTFEODc3NDgwMDA3RTEwRjggLyogRmxvYXRQb2ludC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTkwOUE3RjFEODc3NDgwMDA3RTEwRjggLyogRmxvYXRS
ZWN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNDczMSw5ICs0NzMxLDkgQEAKIAkJCQk5QkQ0MjM5
QTFFMDRCRDk4MDAyMDAzOTUgLyogQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VX
aXRoSW1hZ2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzlEOTIzMTIyRDdFMEVCMDA4RTkyNjYg
LyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJFNzc2NUNEMTZD
NEQ4MEEwMEJBMkJCMSAvKiBtYWluSU9TLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RDRkZFQzEy
MkUyNkExNTAwREY0MjIzIC8qIE5vUGF1c2VXaGVuU3dpdGNoaW5nVGFicy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTJFNzc2NUNGMTZDNEQ4MTEwMEJBMkJCMSAvKiBtYWluTWFjLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTc5N0ZFMzExRUIxNUE2ODAwQjJGNEEwIC8qIE5hdmlnYXRpb25DbGllbnRE
ZWZhdWx0Q3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQ0ZGRUMxMjJFMjZBMTUwMERG
NDIyMyAvKiBOb1BhdXNlV2hlblN3aXRjaGluZ1RhYnMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
QUQzRkU4RTFENzYxMzEyMDBCMTY5QTQgLyogVHJhbnNmb3JtYXRpb25NYXRyaXguY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9GaXJzdFZp
c3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmVXaXRoRGVmZXJyZWRTY3JpcHQubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9GaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmVXaXRo
RGVmZXJyZWRTY3JpcHQubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2YjZjYWFl
MjU0YmE5ZjUyNGEzM2FmMWY4OTgxMTBlM2EzZjU5MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0aERlZmVycmVkU2NyaXB0Lm1tCisrKyAv
ZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0jaW1wb3J0ICJjb25maWcuaCIK
LQotI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9u
RGVsZWdhdGUuaCIKLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLQotc3RhdGljIGJvb2wgZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Owotc3RhdGljIGJvb2wgcmVjZWl2ZWRNZXNzYWdl
OwotCi1AaW50ZXJmYWNlIEZpcnN0UGFpbnRNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1Nj
cmlwdE1lc3NhZ2VIYW5kbGVyPgotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gRmlyc3RQYWludE1l
c3NhZ2VIYW5kbGVyCi0tICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29udGVu
dENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3Nh
Z2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKLXsKLSAgICByZWNlaXZlZE1lc3NhZ2UgPSB0
cnVlOwotfQotQGVuZAotCi1AaW50ZXJmYWNlIFJlbmRlcmluZ1Byb2dyZXNzTmF2aWdhdGlvbkRl
bGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgotQGVuZAotCi1AaW1wbGVt
ZW50YXRpb24gUmVuZGVyaW5nUHJvZ3Jlc3NOYXZpZ2F0aW9uRGVsZWdhdGUKLS0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2U6KF9X
S1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKXByb2dyZXNzRXZlbnRzCi17Ci0gICAgaWYgKHByb2dy
ZXNzRXZlbnRzICYgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dCkKLSAgICAgICAgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0ID0gdHJ1ZTsK
LX0KLUBlbmQKLQotVEVTVChXZWJLaXQsIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZVdp
dGhEZWZlcnJlZFNjcmlwdCkKLXsKLSAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIG1l
c3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0ZpcnN0UGFpbnRNZXNzYWdlSGFuZGxlciBhbGxvY10g
aW5pdF0pOwotICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVy
XSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZmly
c3RwYWludCJdOwotCi0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
OndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0KLSAgICBSZXRhaW5QdHI8UmVuZGVyaW5n
UHJvZ3Jlc3NOYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlID0gYWRvcHROUyhbW1JlbmRlcmlu
Z1Byb2dyZXNzTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7Ci0gICAgW3dlYlZpZXcg
c2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKLQotICAgIHJlY2VpdmVkTWVz
c2FnZSA9IGZhbHNlOwotICAgIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCA9IGZhbHNl
OwotCi0gICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiZGVmZXJyZWQtc2NyaXB0
LWxvYWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdXV07Ci0KLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVk
TWVzc2FnZSk7Ci0gICAgRVhQRUNUX1RSVUUoZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
KTsKLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9GaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmUubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWY2NGQ3NjExOTFlMGE2N2I5MGUwMThjOTgwZjVlMzlkNmFlYTU1YQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlyc3RWaXN1
YWxseU5vbkVtcHR5TWlsZXN0b25lLm1tCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1w
b3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3Lmgi
CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KKyNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVk
ZSA8TW9iaWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5oPgorI2VuZGlmCisKK3N0
YXRpYyBib29sIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dDsKK3N0YXRpYyBib29sIHJl
Y2VpdmVkTWVzc2FnZTsKKworQGludGVyZmFjZSBGaXJzdFBhaW50TWVzc2FnZUhhbmRsZXIgOiBO
U09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IEZpcnN0UGFpbnRNZXNzYWdlSGFuZGxlcgorLSAodm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6
KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVyIGRpZFJlY2Vp
dmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlCit7CisgICAgcmVjZWl2
ZWRNZXNzYWdlID0gdHJ1ZTsKK30KK0BlbmQKKworQGludGVyZmFjZSBSZW5kZXJpbmdQcm9ncmVz
c05hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFJlbmRlcmluZ1Byb2dyZXNzTmF2aWdhdGlvbkRlbGVnYXRl
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlbmRlcmluZ1Byb2dyZXNz
RGlkQ2hhbmdlOihfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cylwcm9ncmVzc0V2ZW50cworewor
ICAgIGlmIChwcm9ncmVzc0V2ZW50cyAmIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXQpCisgICAgICAgIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dCA9IHRydWU7Cit9CitAZW5kCisKK1RFU1QoV2ViS2l0LCBGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlNaWxlc3RvbmVXaXRoRGVmZXJyZWRTY3JpcHQpCit7CisgICAgYXV0byB3ZWJWaWV3Q29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tGaXJzdFBhaW50TWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHVzZXJDb250
ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0
KCkgbmFtZTpAImZpcnN0cGFpbnQiXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkg
Y29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgUmV0YWlu
UHRyPFJlbmRlcmluZ1Byb2dyZXNzTmF2aWdhdGlvbkRlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tSZW5kZXJpbmdQcm9ncmVzc05hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwor
ICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAg
ICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXQgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImRl
ZmVycmVkLXNjcmlwdC1sb2FkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIEVYUEVDVF9UUlVFKGRpZEZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dCk7Cit9CisKK0BpbnRlcmZhY2UgTmV2ZXJGaW5pc2hMb2FkaW5nU2NoZW1l
SGFuZGxlciA6IE5TT2JqZWN0IDxXS1VSTFNjaGVtZUhhbmRsZXI+CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIGNsYXNzKSBOU1N0cmluZyAqVVJMU2NoZW1lOworQGVuZAorCitAaW1w
bGVtZW50YXRpb24gTmV2ZXJGaW5pc2hMb2FkaW5nU2NoZW1lSGFuZGxlcgorCisrIChOU1N0cmlu
ZyAqKVVSTFNjaGVtZQoreworICAgIHJldHVybiBAIm5ldmVyLWZpbmlzaC1sb2FkaW5nIjsKK30K
Kworc3RhdGljIE5TU3RyaW5nICpjb250ZW50VHlwZUZvckZpbGVFeHRlbnNpb24oTlNTdHJpbmcg
KmZpbGVFeHRlbnNpb24pCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gYWRvcHRDRihVVFR5cGVD
cmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKGtVVFRhZ0NsYXNzRmlsZW5hbWVFeHRlbnNp
b24sIChfX2JyaWRnZSBDRlN0cmluZ1JlZilmaWxlRXh0ZW5zaW9uLCBudWxscHRyKSk7CisgICAg
YXV0byBtaW1lVHlwZSA9IGFkb3B0Q0YoVVRUeXBlQ29weVByZWZlcnJlZFRhZ1dpdGhDbGFzcyhp
ZGVudGlmaWVyLmdldCgpLCBrVVRUYWdDbGFzc01JTUVUeXBlKSk7CisgICAgcmV0dXJuIChfX2Jy
aWRnZSBOU1N0cmluZyAqKW1pbWVUeXBlLmF1dG9yZWxlYXNlKCk7Cit9CisKKy0gKHZvaWQpd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNj
aGVtZVRhc2s+KXRhc2sKK3sKKyAgICBOU1VSTCAqcmVxdWVzdFVSTCA9IHRhc2sucmVxdWVzdC5V
Ukw7CisgICAgTlNTdHJpbmcgKmZpbGVOYW1lID0gcmVxdWVzdFVSTC5sYXN0UGF0aENvbXBvbmVu
dDsKKyAgICBOU1N0cmluZyAqZmlsZUV4dGVuc2lvbiA9IGZpbGVOYW1lLnBhdGhFeHRlbnNpb247
CisgICAgTlNVUkwgKmJ1bmRsZVVSTCA9IFtOU0J1bmRsZS5tYWluQnVuZGxlIFVSTEZvclJlc291
cmNlOmZpbGVOYW1lLnN0cmluZ0J5RGVsZXRpbmdQYXRoRXh0ZW5zaW9uIHdpdGhFeHRlbnNpb246
ZmlsZUV4dGVuc2lvbiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwor
CisgICAgTlNEYXRhICpyZXNwb25zZURhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZlVS
TDpidW5kbGVVUkxdOworICAgIE5TVUludGVnZXIgcmVzcG9uc2VMZW5ndGggPSByZXNwb25zZURh
dGEubGVuZ3RoOworCisgICAgYXV0byByZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJlc3BvbnNl
IGFsbG9jXSBpbml0V2l0aFVSTDpyZXF1ZXN0VVJMIE1JTUVUeXBlOmNvbnRlbnRUeXBlRm9yRmls
ZUV4dGVuc2lvbihmaWxlRXh0ZW5zaW9uKSBleHBlY3RlZENvbnRlbnRMZW5ndGg6cmVzcG9uc2VM
ZW5ndGggdGV4dEVuY29kaW5nTmFtZTpuaWxdKTsKKyAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9u
c2U6cmVzcG9uc2UuZ2V0KCldOworCisgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6W3Jlc3BvbnNl
RGF0YSBzdWJkYXRhV2l0aFJhbmdlOk5TTWFrZVJhbmdlKDAsIHJlc3BvbnNlTGVuZ3RoIC0gMTAy
NCldXTsKK30KKworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0b3BVUkxT
Y2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YXNrCit7Cit9CisKK0BlbmQKKworVEVT
VChXZWJLaXQsIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZVdpdGhNZWRpYURvY3VtZW50
KQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0QWxsb3dzSW5saW5l
TWVkaWFQbGF5YmFjazpZRVNdOworICAgIFtjb25maWd1cmF0aW9uIF9zZXRJbmxpbmVNZWRpYVBs
YXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZTpOT107CisKKyAgICBhdXRvIHNjaGVt
ZUhhbmRsZXIgPSBhZG9wdE5TKFtbTmV2ZXJGaW5pc2hMb2FkaW5nU2NoZW1lSGFuZGxlciBhbGxv
Y10gaW5pdF0pOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2NoZW1l
SGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6TmV2ZXJGaW5pc2hMb2FkaW5nU2NoZW1lSGFuZGxl
ci5VUkxTY2hlbWVdOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtb
UmVuZGVyaW5nUHJvZ3Jlc3NOYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24u
Z2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVn
YXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgX3NldEFsbG93c01l
ZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjazpZRVNdOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAIm5l
dmVyLWZpbmlzaC1sb2FkaW5nOi8vL2xhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Il1dXTsKKwor
ICAgIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCA9IGZhbHNlOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375272</attachid>
            <date>2019-07-31 17:22:15 -0700</date>
            <delta_ts>2019-07-31 19:51:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200293-20190731172214.patch</filename>
            <type>text/plain</type>
            <size>22439</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE5NWYyYzMzYzg1YTNm
NmRlNjJlNjQyNjA0OTZlMjUwZDkwN2E1Ny4uZjU1NGQwNGE4ZTBkMjFmOGU1ODYwYWEzOTg0MDFk
ZGFiYjUwZmRkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE5LTA3LTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjQwOTQy
KTogZmlyc3QgdmlzdWFsbHkgbm9uLWVtcHR5IGxheW91dCBtaWxlc3RvbmUgaXMgbm90IHJlYWNo
ZWQgaW4gbWVkaWEgZG9jdW1lbnRzIHVudGlsIGFmdGVyIHRoZSB2aWRlbyBmaW5pc2hlcyBsb2Fk
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAy
OTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUyOTM3NzQ5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHIyNDA5NDIgY2hhbmdlZCBGcmFtZVZpZXc6
OnF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgpIHRvIGNvbnNpZGVyIG9ubHkgZG9jdW1lbnRz
IGluIHRoZQorICAgICAgICBJbnRlcmFjdGl2ZSBvciBDb21wbGV0ZSByZWFkeSBzdGF0ZXMgYXMg
ImZpbmlzaGVkIHBhcnNpbmciLiBEb2N1bWVudHMgY29uc2lkZXJlZCBmaW5pc2hlZAorICAgICAg
ICBwYXJzaW5nIGNhbiBxdWFsaWZ5IGFzIHZpc3VhbGx5IG5vbi1lbXB0eSBldmVuIHdpdGhvdXQg
ZXhjZWVkaW5nIHRoZSB2aXN1YWwgY2hhcmFjdGVyIG9yCisgICAgICAgIHBpeGVsIHRocmVzaG9s
ZHMsIGJ1dCBkb2N1bWVudHMgY29uc2lkZXJlZCBub3QgZmluaXNoZWQgbXVzdCBmaXJzdCBleGNl
ZWQgb25lIG9mIHRoZXNlCisgICAgICAgIHRocmVzaG9sZHMgaW4gb3JkZXIgdG8gcXVhbGlmeSBh
cyB2aXN1YWxseSBub24tZW1wdHkuCisKKyAgICAgICAgSFRNTERvY3VtZW50cyBhcmUgcGxhY2Vk
IGluIHRoZSBJbnRlcmFjdGl2ZSByZWFkeSBzdGF0ZSBieSB0aGVpciBIVE1MRG9jdW1lbnRQYXJz
ZXJzLgorICAgICAgICBIb3dldmVyLCBIVE1MRG9jdW1lbnQgc3ViY2xhc3NlcyBsaWtlIEltYWdl
RG9jdW1lbnQgYW5kIE1lZGlhRG9jdW1lbnQgdXNlIHRoZWlyIG93biBjdXN0b20KKyAgICAgICAg
cGFyc2VycyB0aGF0IG5ldmVyIHNldCB0aGUgSW50ZXJhY3RpdmUgcmVhZHkgc3RhdGUgb24gdGhl
aXIgZG9jdW1lbnRzOyB0aGVzZSBkb2N1bWVudHMgZ28KKyAgICAgICAgZnJvbSBMb2FkaW5nIGRp
cmVjdGx5IHRvIENvbXBsZXRlLgorCisgICAgICAgIEluIG9yZGVyIGZvciB0aGVzZSBIVE1MRG9j
dW1lbnQgc3ViY2xhc3NlcyB0byBiZSBjb25zaWRlcmVkIHZpc3VhbGx5IG5vbi1lbXB0eSBiZWZv
cmUgdGhleQorICAgICAgICBmaW5pc2ggbG9hZGluZyB0aGV5IG11c3QgcmVuZGVyIHNvbWV0aGlu
ZyB0aGF0IGV4Y2VlZHMgdGhlIHZpc3VhbCBjaGFyYWN0ZXIgb3IgcGl4ZWwKKyAgICAgICAgdGhy
ZXNob2xkcy4gRm9yIGltYWdlIGRvY3VtZW50cywgcmVuZGVyaW5nIHRoZSBpbWFnZSBpcyB1c3Vh
bGx5IGVub3VnaCB0byBjcm9zcyB0aGUKKyAgICAgICAgdGhyZXNob2xkLCBidXQgZm9yIG1lZGlh
IGRvY3VtZW50cyB0aGUgdmlzdWFsIHBpeGVsIHRocmVzaG9sZCB3YXMgbmV2ZXIgY3Jvc3NlZCBi
ZWNhdXNlCisgICAgICAgIHZpZGVvcyBkaWQgbm90IGNvbnRyaWJ1dGUgdG8gdGhlIHZpc3VhbGx5
IG5vbi1lbXB0eSBwaXhlbCBjb3VudC4KKworICAgICAgICBBcyBhIHJlc3VsdCwgbWVkaWEgZG9j
dW1lbnRzIGFyZSBub3QgY29uc2lkZXJlZCB2aXN1YWxseSBub24tZW1wdHkgdW50aWwgdGhlIG1h
aW4gcmVzb3VyY2UKKyAgICAgICAgZmluaXNoZXMgbG9hZGluZy4gT24gaU9TIHRoaXMgbWVhbnMg
dGhhdCB0aGUgbGF5ZXIgdHJlZSByZW1haW5zIGZyb3plbiB1bnRpbCB0aGlzIHBvaW50LAorICAg
ICAgICBldmVuIHRob3VnaCB0aGUgbWVkaWEgbWlnaHQgaGF2ZSBzdGFydGVkIGF1dG9wbGF5aW5n
IHdpdGggYXVkaW8gbG9uZyBiZWZvcmUgaXQgZmluaXNoZWQKKyAgICAgICAgbG9hZGluZy4KKwor
ICAgICAgICBGaXggdGhpcyBieSB0ZWFjaGluZyBSZW5kZXJWaWRlbyB0byBjb250cmlidXRlIHRo
ZSB2aWRlbyBwbGF5ZXIncyBzaXplIHRvIEZyYW1lVmlldydzCisgICAgICAgIHZpc3VhbGx5IG5v
bi1lbXB0eSBwaXhlbCBjb3VudCBvbmNlIHRoZSB2aWRlbyBwbGF5ZXIgaGFzIGxvYWRlZCBlbm91
Z2ggZGF0YSB0byBkZXRlcm1pbmUgaXRzCisgICAgICAgIGludHJpbnNpYyBzaXplLiBWaWRlb3Mg
dGhhdCByZW5kZXIgbW9yZSB0aGFuIDEwMjQgcGl4ZWxzIHdpbGwgcXVhbGlmeSBhIG1lZGlhIGRv
Y3VtZW50IGFzCisgICAgICAgIHZpc3VhbGx5IG5vbi1lbXB0eSBldmVuIHdoZW4gaXQgaXMgc3Rp
bGwgbG9hZGluZyBpdHMgbWFpbiByZXNvdXJjZS4KKworICAgICAgICBBZGRlZCBhIG5ldyBBUEkg
dGVzdC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJJbWFnZTo6aW1hZ2VDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckltYWdlOjppbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudElmTmVlZGVkKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVmlkZW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlkZW86OnVwZGF0ZUlu
dHJpbnNpY1NpemUpOgorCiAyMDE5LTA3LTMxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtXSExTTF0gUmVtb3ZlIFVubmFtZWRUeXBlIGNvcHkvbW92ZSBjb25z
dHJ1Y3RvcnMgYW5kIG1hcmsgY2xhc3NlcyBhcyBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggNGQ2YWE3NTdlYWEzODFjZTBjYWNmOGZlNWZkMTNiOGIw
ODQ0ZDJmMC4uZjZjYjU2MTgxMmQyMjI2ODY2OTgzZjNhYjljNzQwYTU2ZGIwMjZlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC0yNjksMTIgKzI2OSw5IEBA
IHZvaWQgUmVuZGVySW1hZ2U6OmltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIgbmV3SW1hZ2Us
IGNvbnN0IEludFJlY3QqIHJlY3QpCiAKICAgICBpZiAobmV3SW1hZ2UgIT0gaW1hZ2VSZXNvdXJj
ZSgpLmltYWdlUHRyKCkgfHwgIW5ld0ltYWdlKQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAg
aWYgKCFtX2RpZEluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50KSB7Ci0gICAgICAg
IC8vIEF0IGEgem9vbSBsZXZlbCBvZiAxIHRoZSBpbWFnZSBpcyBndWFyYW50ZWVkIHRvIGhhdmUg
YW4gaW50ZWdlciBzaXplLgotICAgICAgICB2aWV3KCkuZnJhbWVWaWV3KCkuaW5jcmVtZW50Vmlz
dWFsbHlOb25FbXB0eVBpeGVsQ291bnQoZmxvb3JlZEludFNpemUoaW1hZ2VSZXNvdXJjZSgpLmlt
YWdlU2l6ZSgxLjBmKSkpOwotICAgICAgICBtX2RpZEluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQ
aXhlbENvdW50ID0gdHJ1ZTsKLSAgICB9CisKKyAgICAvLyBBdCBhIHpvb20gbGV2ZWwgb2YgMSB0
aGUgaW1hZ2UgaXMgZ3VhcmFudGVlZCB0byBoYXZlIGFuIGludGVnZXIgc2l6ZS4KKyAgICBpbmNy
ZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudElmTmVlZGVkKGZsb29yZWRJbnRTaXplKGlt
YWdlUmVzb3VyY2UoKS5pbWFnZVNpemUoMS4wZikpKTsKIAogICAgIEltYWdlU2l6ZUNoYW5nZVR5
cGUgaW1hZ2VTaXplQ2hhbmdlID0gSW1hZ2VTaXplQ2hhbmdlTm9uZTsKIApAQCAtODUwLDQgKzg0
NywxMyBAQCBSZW5kZXJCb3gqIFJlbmRlckltYWdlOjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25z
dAogICAgIHJldHVybiBudWxscHRyOwogfQogCit2b2lkIFJlbmRlckltYWdlOjppbmNyZW1lbnRW
aXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudElmTmVlZGVkKGNvbnN0IEludFNpemUmIHNpemUpCit7
CisgICAgaWYgKG1fZGlkSW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIHZpZXcoKS5mcmFtZVZpZXcoKS5pbmNyZW1lbnRWaXN1YWxseU5v
bkVtcHR5UGl4ZWxDb3VudChzaXplKTsKKyAgICBtX2RpZEluY3JlbWVudFZpc3VhbGx5Tm9uRW1w
dHlQaXhlbENvdW50ID0gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCA4MmNjNzQxOWZlMzc0NzU3OGZhYjZi
MjUyZDkwYWVlOGIyM2Q3MDVkLi5lMmNhOTE5MmE3MDI0YjRmNzFiMzI4MGFhZWNlYjUxOWI1ZDIz
NmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaApAQCAtMTAwLDYgKzEw
MCw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgaW1hZ2VDaGFuZ2VkKGltYWdlUmVzb3VyY2UoKS5p
bWFnZVB0cigpKTsKICAgICB9CiAKKyAgICB2b2lkIGluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQ
aXhlbENvdW50SWZOZWVkZWQoY29uc3QgSW50U2l6ZSYpOworCiBwcml2YXRlOgogICAgIGNvbnN0
IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVySW1hZ2Ui
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCmluZGV4IDJlZWQ5
YzQ1YjI3ODJiNTlkNDlkNTkxZmRhY2Y0NGZkY2U4ZWY5MDAuLmY4MGMyMDMzZGM2NzVmMzJkY2My
MmE1MTZhMDcxMmYyM2E0NTUyODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWRlby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZGVvLmNwcApAQCAtMTAxLDYgKzEwMSwxMCBAQCBib29sIFJlbmRlclZpZGVvOjp1cGRhdGVJbnRy
aW5zaWNTaXplKCkKICAgICBpZiAoc2l6ZS5pc0VtcHR5KCkgJiYgZG9jdW1lbnQoKS5pc01lZGlh
RG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgLy8gVHJlYXQgdGhlIG1l
ZGlhIHBsYXllcidzIG5hdHVyYWwgc2l6ZSBhcyB2aXN1YWxseSBub24tZW1wdHkuCisgICAgaWYg
KHZpZGVvRWxlbWVudCgpLnJlYWR5U3RhdGUoKSA+PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkhB
VkVfTUVUQURBVEEpCisgICAgICAgIGluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50
SWZOZWVkZWQocm91bmRlZEludFNpemUoc2l6ZSkpOworCiAgICAgaWYgKHNpemUgPT0gaW50cmlu
c2ljU2l6ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTEwOSw3ICsxMTMsNyBAQCBi
b29sIFJlbmRlclZpZGVvOjp1cGRhdGVJbnRyaW5zaWNTaXplKCkKICAgICBzZXROZWVkc0xheW91
dCgpOwogICAgIHJldHVybiB0cnVlOwogfQotICAgIAorCiBMYXlvdXRTaXplIFJlbmRlclZpZGVv
OjpjYWxjdWxhdGVJbnRyaW5zaWNTaXplKCkKIHsKICAgICAvLyBTcGVjIHRleHQgZnJvbSA0Ljgu
NgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM1
MzZmYWJiZTcxYTg3Y2Q4NjU5NWVmMzgwN2JjMWNmMGM3YzA4MjguLjFkMTYyY2NmNmQ4ZjQ4ZWNj
YmRkNWVjMzFkOGRjOTliZTUxYWRkZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOS0wNy0zMCAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI0MDk0Mik6IGZp
cnN0IHZpc3VhbGx5IG5vbi1lbXB0eSBsYXlvdXQgbWlsZXN0b25lIGlzIG5vdCByZWFjaGVkIGlu
IG1lZGlhIGRvY3VtZW50cyB1bnRpbCBhZnRlciB0aGUgdmlkZW8gZmluaXNoZXMgbG9hZGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMjkzCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MjkzNzc0OT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lLm1tOiBSZW5hbWVkIGZy
b20gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmlyc3RWaXN1YWxseU5vbkVtcHR5
TWlsZXN0b25lV2l0aERlZmVycmVkU2NyaXB0Lm1tLgorICAgICAgICAoLVtGaXJzdFBhaW50TWVz
c2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNzYWdl
Ol0pOgorICAgICAgICAoLVtSZW5kZXJpbmdQcm9ncmVzc05hdmlnYXRpb25EZWxlZ2F0ZSBfd2Vi
VmlldzpyZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZTpdKToKKyAgICAgICAgKC1bUmVuZGVyaW5n
UHJvZ3Jlc3NOYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0p
OgorICAgICAgICAoVEVTVCk6CisKIDIwMTktMDctMzEgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRh
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZywgZGlzYWJs
ZSBmYWlsaW5nIHRlc3QgZm9yIHJkYXI6Ly81MTc1MjU5My4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNWQ2MTdmZDRjNmJmMWZiNmY3ZmQ4ODcyZDFhZmYyMDQ5NjVkNWVkMi4uMWU3Njg1ZGFl
MDFiODRjMzMzMTA1NWE4YzJiYTIyZGMyYjMzMTMzMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTY1LDcgKzY1LDcgQEAKIAkJMTE3MUIyNEYyMTlGNDlDRDAwQ0I4OTdEIC8qIEZpcnN0TWVh
bmluZ2Z1bFBhaW50TWlsZXN0b25lX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMUI3RkQyMTIxOUY0NkREMDA2OUIyN0YgLyogRmlyc3RN
ZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJMTE4MTUzNDQyMjA4
QjdBQzAwQjJDQ0QyIC8qIGRlZmVycmVkLXNjcmlwdC1sb2FkLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE4MTUzNDMyMjA4QjdBQzAw
QjJDQ0QyIC8qIGRlZmVycmVkLXNjcmlwdC1sb2FkLmh0bWwgKi87IH07CiAJCTExODE1MzQ2MjIw
OEI3RTUwMEIyQ0NEMiAvKiBkZWZlcnJlZC1zY3JpcHQuanMgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE4MTUzNDUyMjA4QjdFNTAwQjJDQ0Qy
IC8qIGRlZmVycmVkLXNjcmlwdC5qcyAqLzsgfTsKLQkJMTE4MTUzNDgyMjA4QkFERjAwQjJDQ0Qy
IC8qIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZVdpdGhEZWZlcnJlZFNjcmlwdC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExODE1MzQ3MjIw
OEJBREYwMEIyQ0NEMiAvKiBGaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmVXaXRoRGVmZXJy
ZWRTY3JpcHQubW0gKi87IH07CisJCTExODE1MzQ4MjIwOEJBREYwMEIyQ0NEMiAvKiBGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxMTgxNTM0NzIyMDhCQURGMDBCMkNDRDIgLyogRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TWlsZXN0b25lLm1tICovOyB9OwogCQkxMUI3RkQyODIxOUY0NzExMDA2OUIyN0Yg
LyogRmlyc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTFCN0ZEMjIyMTlGNDZERDAwNjlCMjdGIC8qIEZp
cnN0TWVhbmluZ2Z1bFBhaW50TWlsZXN0b25lLmNwcCAqLzsgfTsKIAkJMTFDMjU5OEQyMUZBNjMy
NDAwNEM5RTIzIC8qIGFzeW5jLXNjcmlwdC1sb2FkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTFDMjU5OEMyMUZBNjE4RDAwNEM5RTIz
IC8qIGFzeW5jLXNjcmlwdC1sb2FkLmh0bWwgKi87IH07CiAJCTE0M0RERTk4MjBDOTAxOEIwMDdG
NzZGQSAvKiBTZWN1cml0eS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzRGNTVEMDIwNEQ0NzFDMDAyOTQ4QzYgLyogU2VjdXJpdHku
ZnJhbWV3b3JrICovOyB9OwpAQCAtMTQ0Myw3ICsxNDQzLDcgQEAKIAkJMTE1RUIzNDIxRUUwQjcy
MDAwM0MyQzBBIC8qIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTgxNTM0MzIyMDhCN0FDMDBCMkND
RDIgLyogZGVmZXJyZWQtc2NyaXB0LWxvYWQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJkZWZlcnJlZC1zY3JpcHQtbG9hZC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMTE4MTUzNDUyMjA4QjdFNTAwQjJDQ0QyIC8qIGRlZmVycmVkLXNjcmlwdC5qcyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJkZWZlcnJlZC1zY3JpcHQuanMi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxMTgxNTM0NzIyMDhCQURGMDBCMkNDRDIg
LyogRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0aERlZmVycmVkU2NyaXB0Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmlyc3RWaXN1YWxseU5vbkVt
cHR5TWlsZXN0b25lV2l0aERlZmVycmVkU2NyaXB0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxMTgxNTM0NzIyMDhCQURGMDBCMkNDRDIgLyogRmlyc3RWaXN1YWxseU5vbkVtcHR5
TWlsZXN0b25lLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmly
c3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxMUI3RkQyMTIxOUY0NkREMDA2OUIyN0YgLyogRmlyc3RNZWFuaW5nZnVsUGFpbnRNaWxl
c3RvbmVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZp
cnN0TWVhbmluZ2Z1bFBhaW50TWlsZXN0b25lX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTExQjdGRDIyMjE5RjQ2REQwMDY5QjI3RiAvKiBGaXJzdE1lYW5pbmdmdWxQ
YWludE1pbGVzdG9uZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
aXJzdE1lYW5pbmdmdWxQYWludE1pbGVzdG9uZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTExQzI1OThDMjFGQTYxOEQwMDRDOUUyMyAvKiBhc3luYy1zY3JpcHQtbG9hZC5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImFzeW5jLXNjcmlwdC1sb2FkLmh0bWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjcwNSw2ICsyNzA1LDcgQEAKIAkJCQlGNDRE
MDY0NjFGMzk1QzREMDAxQTBFMjkgLyogRWRpdG9yU3RhdGVUZXN0cy5tbSAqLywKIAkJCQlDREEy
OUIyODIwRkQyQTk5MDBGMTVDRUQgLyogRXhpdEZ1bGxzY3JlZW5PbkVudGVyUGlQLm1tICovLAog
CQkJCTJEODEwNENCMUJFQzEzRTcwMDIwREE0NiAvKiBGaW5kSW5QYWdlLm1tICovLAorCQkJCTEx
ODE1MzQ3MjIwOEJBREYwMEIyQ0NEMiAvKiBGaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmUu
bW0gKi8sCiAJCQkJMkQxRkUwQUYxQUQ0NjVDMTAwNkNEOUU2IC8qIEZpeGVkTGF5b3V0U2l6ZS5t
bSAqLywKIAkJCQkyRTkyQjhGODIxNjQ5MEVBMDA1QjY0RjAgLyogRm9udEF0dHJpYnV0ZXMubW0g
Ki8sCiAJCQkJNUNCNUIzQkQxRkZDNTE3RTAwQzI3QkIwIC8qIEZyYW1lSGFuZGxlU2VyaWFsaXph
dGlvbi5tbSAqLywKQEAgLTMzOTYsNyArMzM5Nyw2IEBACiAJCQkJQzUxQUZCOTgxNjlGNDlGRjAw
OUNDRjY2IC8qIEZpbmRNYXRjaGVzLm1tICovLAogCQkJCTExQjdGRDIyMjE5RjQ2REQwMDY5QjI3
RiAvKiBGaXJzdE1lYW5pbmdmdWxQYWludE1pbGVzdG9uZS5jcHAgKi8sCiAJCQkJMTFCN0ZEMjEy
MTlGNDZERDAwNjlCMjdGIC8qIEZpcnN0TWVhbmluZ2Z1bFBhaW50TWlsZXN0b25lX0J1bmRsZS5j
cHAgKi8sCi0JCQkJMTE4MTUzNDcyMjA4QkFERjAwQjJDQ0QyIC8qIEZpcnN0VmlzdWFsbHlOb25F
bXB0eU1pbGVzdG9uZVdpdGhEZWZlcnJlZFNjcmlwdC5tbSAqLywKIAkJCQkxQURCRUZBRDEzMEM2
ODlDMDBENjFEMTkgLyogRm9yY2VSZXBhaW50LmNwcCAqLywKIAkJCQkzNzZDOEMwNDFENkUxOTdD
MDA3RDJCQjkgLyogRnJhbWVIYW5kbGUuY3BwICovLAogCQkJCUJDQkQzNzBGMTI1QUEyRUIwMEQy
QzI5RiAvKiBGcmFtZU1JTUVUeXBlSFRNTC5jcHAgKi8sCkBAIC00MzczLDcgKzQzNzMsNyBAQAog
CQkJCTExQjdGRDI4MjE5RjQ3MTEwMDY5QjI3RiAvKiBGaXJzdE1lYW5pbmdmdWxQYWludE1pbGVz
dG9uZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTA0MDFEMEE2M0UzMDBGRUJDRjMgLyog
Rmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUM5
RTZERDM1MUVBOTdEMDgwMERENzhBQSAvKiBGaXJzdFJlc3BvbmRlclN1cHByZXNzaW9uLm1tIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMTE4MTUzNDgyMjA4QkFERjAwQjJDQ0QyIC8qIEZpcnN0VmlzdWFs
bHlOb25FbXB0eU1pbGVzdG9uZVdpdGhEZWZlcnJlZFNjcmlwdC5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTExODE1MzQ4MjIwOEJBREYwMEIyQ0NEMiAvKiBGaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxl
c3RvbmUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCQzFEMEE2NTA3MDBGRUJDRjMgLyog
Rml4ZWRMYXlvdXRTaXplLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E5MDlBN0UxRDg3NzQ4MDAw
N0UxMEY4IC8qIEZsb2F0UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E5MDlBN0YxRDg3
NzQ4MDAwN0UxMEY4IC8qIEZsb2F0UmVjdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZpcnN0VmlzdWFsbHlOb25FbXB0eU1p
bGVzdG9uZVdpdGhEZWZlcnJlZFNjcmlwdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0ZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZVdpdGhEZWZlcnJlZFNjcmlwdC5t
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzZiNmNhYWUyNTRiYTlmNTI0YTMzYWYx
Zjg5ODExMGUzYTNmNTkwNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9GaXJzdFZpc3VhbGx5Tm9u
RW1wdHlNaWxlc3RvbmVXaXRoRGVmZXJyZWRTY3JpcHQubW0KKysrIC9kZXYvbnVsbApAQCAtMSw3
MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaW1wb3J0ICJQbGF0
Zm9ybVV0aWxpdGllcy5oIgotI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgotI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgotCi1zdGF0aWMgYm9vbCBkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXQ7Ci1zdGF0aWMgYm9vbCByZWNlaXZlZE1lc3NhZ2U7Ci0KLUBpbnRlcmZhY2Ug
Rmlyc3RQYWludE1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRs
ZXI+Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBGaXJzdFBhaW50TWVzc2FnZUhhbmRsZXIKLS0g
KHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVz
ZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNz
YWdlICopbWVzc2FnZQotewotICAgIHJlY2VpdmVkTWVzc2FnZSA9IHRydWU7Ci19Ci1AZW5kCi0K
LUBpbnRlcmZhY2UgUmVuZGVyaW5nUHJvZ3Jlc3NOYXZpZ2F0aW9uRGVsZWdhdGUgOiBOU09iamVj
dCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBSZW5kZXJp
bmdQcm9ncmVzc05hdmlnYXRpb25EZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyByZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZTooX1dLUmVuZGVyaW5nUHJvZ3Jl
c3NFdmVudHMpcHJvZ3Jlc3NFdmVudHMKLXsKLSAgICBpZiAocHJvZ3Jlc3NFdmVudHMgJiBfV0tS
ZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KQotICAgICAg
ICBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgPSB0cnVlOwotfQotQGVuZAotCi1URVNU
KFdlYktpdCwgRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0aERlZmVycmVkU2NyaXB0
KQotewotICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBh
ZG9wdE5TKFtbRmlyc3RQYWludE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7Ci0gICAgW1t3
ZWJWaWV3Q29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3Nh
Z2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJmaXJzdHBhaW50Il07Ci0KLSAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKLQotICAgIFJldGFpblB0cjxSZW5kZXJpbmdQcm9ncmVzc05hdmlnYXRp
b25EZWxlZ2F0ZT4gZGVsZWdhdGUgPSBhZG9wdE5TKFtbUmVuZGVyaW5nUHJvZ3Jlc3NOYXZpZ2F0
aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKLSAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwotCi0gICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0g
ICAgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0ID0gZmFsc2U7Ci0KLSAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJkZWZlcnJlZC1zY3JpcHQtbG9hZCIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsK
LQotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKLSAgICBF
WFBFQ1RfVFJVRShkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOwotfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaXJzdFZpc3VhbGx5Tm9u
RW1wdHlNaWxlc3RvbmUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0ZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjY0ZDc2MTE5
MWUwYTY3YjkwZTAxOGM5ODBmNWUzOWQ2YWVhNTVhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxl
c3RvbmUubW0KQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0
aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0
ci5oPgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlIDxNb2JpbGVDb3JlU2Vy
dmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisjZW5kaWYKKworc3RhdGljIGJvb2wgZGlkRmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Oworc3RhdGljIGJvb2wgcmVjZWl2ZWRNZXNzYWdlOwor
CitAaW50ZXJmYWNlIEZpcnN0UGFpbnRNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1Njcmlw
dE1lc3NhZ2VIYW5kbGVyPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gRmlyc3RQYWludE1lc3Nh
Z2VIYW5kbGVyCistICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENv
bnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6
KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAgICByZWNlaXZlZE1lc3NhZ2UgPSB0cnVl
OworfQorQGVuZAorCitAaW50ZXJmYWNlIFJlbmRlcmluZ1Byb2dyZXNzTmF2aWdhdGlvbkRlbGVn
YXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50
YXRpb24gUmVuZGVyaW5nUHJvZ3Jlc3NOYXZpZ2F0aW9uRGVsZWdhdGUKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2U6KF9XS1Jl
bmRlcmluZ1Byb2dyZXNzRXZlbnRzKXByb2dyZXNzRXZlbnRzCit7CisgICAgaWYgKHByb2dyZXNz
RXZlbnRzICYgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dCkKKyAgICAgICAgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0ID0gdHJ1ZTsKK30K
K0BlbmQKKworVEVTVChXZWJLaXQsIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZVdpdGhE
ZWZlcnJlZFNjcmlwdCkKK3sKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIG1lc3Nh
Z2VIYW5kbGVyID0gYWRvcHROUyhbW0ZpcnN0UGFpbnRNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5p
dF0pOworICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBh
ZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZmlyc3Rw
YWludCJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndl
YlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBSZXRhaW5QdHI8UmVuZGVyaW5nUHJv
Z3Jlc3NOYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlID0gYWRvcHROUyhbW1JlbmRlcmluZ1By
b2dyZXNzTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0
TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIHJlY2VpdmVkTWVzc2Fn
ZSA9IGZhbHNlOworICAgIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCA9IGZhbHNlOwor
CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiZGVmZXJyZWQtc2NyaXB0LWxv
YWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdXV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVz
c2FnZSk7CisgICAgRVhQRUNUX1RSVUUoZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsK
K30KKworQGludGVyZmFjZSBOZXZlckZpbmlzaExvYWRpbmdTY2hlbWVIYW5kbGVyIDogTlNPYmpl
Y3QgPFdLVVJMU2NoZW1lSGFuZGxlcj4KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwg
Y2xhc3MpIE5TU3RyaW5nICpVUkxTY2hlbWU7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBOZXZl
ckZpbmlzaExvYWRpbmdTY2hlbWVIYW5kbGVyCisKKysgKE5TU3RyaW5nICopVVJMU2NoZW1lCit7
CisgICAgcmV0dXJuIEAibmV2ZXItZmluaXNoLWxvYWRpbmciOworfQorCitzdGF0aWMgTlNTdHJp
bmcgKmNvbnRlbnRUeXBlRm9yRmlsZUV4dGVuc2lvbihOU1N0cmluZyAqZmlsZUV4dGVuc2lvbikK
K3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBhZG9wdENGKFVUVHlwZUNyZWF0ZVByZWZlcnJlZElk
ZW50aWZpZXJGb3JUYWcoa1VUVGFnQ2xhc3NGaWxlbmFtZUV4dGVuc2lvbiwgKF9fYnJpZGdlIENG
U3RyaW5nUmVmKWZpbGVFeHRlbnNpb24sIG51bGxwdHIpKTsKKyAgICBhdXRvIG1pbWVUeXBlID0g
YWRvcHRDRihVVFR5cGVDb3B5UHJlZmVycmVkVGFnV2l0aENsYXNzKGlkZW50aWZpZXIuZ2V0KCks
IGtVVFRhZ0NsYXNzTUlNRVR5cGUpKTsKKyAgICByZXR1cm4gKF9fYnJpZGdlIE5TU3RyaW5nICop
bWltZVR5cGUuYXV0b3JlbGVhc2UoKTsKK30KKworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IHN0YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdGFzawor
eworICAgIE5TVVJMICpyZXF1ZXN0VVJMID0gdGFzay5yZXF1ZXN0LlVSTDsKKyAgICBOU1N0cmlu
ZyAqZmlsZU5hbWUgPSByZXF1ZXN0VVJMLmxhc3RQYXRoQ29tcG9uZW50OworICAgIE5TU3RyaW5n
ICpmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWUucGF0aEV4dGVuc2lvbjsKKyAgICBOU1VSTCAqYnVu
ZGxlVVJMID0gW05TQnVuZGxlLm1haW5CdW5kbGUgVVJMRm9yUmVzb3VyY2U6ZmlsZU5hbWUuc3Ry
aW5nQnlEZWxldGluZ1BhdGhFeHRlbnNpb24gd2l0aEV4dGVuc2lvbjpmaWxlRXh0ZW5zaW9uIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBOU0RhdGEgKnJl
c3BvbnNlRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhDb250ZW50c09mVVJMOmJ1bmRsZVVSTF07Cisg
ICAgTlNVSW50ZWdlciByZXNwb25zZUxlbmd0aCA9IHJlc3BvbnNlRGF0YS5sZW5ndGg7CisKKyAg
ICBhdXRvIHJlc3BvbnNlID0gYWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRo
VVJMOnJlcXVlc3RVUkwgTUlNRVR5cGU6Y29udGVudFR5cGVGb3JGaWxlRXh0ZW5zaW9uKGZpbGVF
eHRlbnNpb24pIGV4cGVjdGVkQ29udGVudExlbmd0aDpyZXNwb25zZUxlbmd0aCB0ZXh0RW5jb2Rp
bmdOYW1lOm5pbF0pOworICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQo
KV07CisKKyAgICBbdGFzayBkaWRSZWNlaXZlRGF0YTpbcmVzcG9uc2VEYXRhIHN1YmRhdGFXaXRo
UmFuZ2U6TlNNYWtlUmFuZ2UoMCwgcmVzcG9uc2VMZW5ndGggLSAxMDI0KV1dOworfQorCistICh2
b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RvcFVSTFNjaGVtZVRhc2s6KGlkIDxX
S1VSTFNjaGVtZVRhc2s+KXRhc2sKK3sKK30KKworQGVuZAorCitURVNUKFdlYktpdCwgRmlyc3RW
aXN1YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0aE1lZGlhRG9jdW1lbnQpCit7CisgICAgYXV0byBj
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrOllF
U107CisgICAgW2NvbmZpZ3VyYXRpb24gX3NldElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1Bs
YXlzSW5saW5lQXR0cmlidXRlOk5PXTsKKworICAgIGF1dG8gc2NoZW1lSGFuZGxlciA9IGFkb3B0
TlMoW1tOZXZlckZpbmlzaExvYWRpbmdTY2hlbWVIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAg
W2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hlbWVIYW5kbGVyLmdldCgpIGZv
clVSTFNjaGVtZTpOZXZlckZpbmlzaExvYWRpbmdTY2hlbWVIYW5kbGVyLlVSTFNjaGVtZV07CisK
KyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tSZW5kZXJpbmdQcm9ncmVz
c05hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRv
dzpZRVNdKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRl
bGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBfc2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGlu
ZVBsYXliYWNrOllFU107CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAibmV2ZXItZmluaXNoLWxvYWRp
bmc6Ly8vbGFyZ2UtdmlkZW8td2l0aC1hdWRpby5tcDQiXV1dOworCisgICAgZGlkRmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0ID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375280</attachid>
            <date>2019-07-31 19:51:47 -0700</date>
            <delta_ts>2019-07-31 21:25:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200293-20190731195147.patch</filename>
            <type>text/plain</type>
            <size>22456</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE5NWYyYzMzYzg1YTNm
NmRlNjJlNjQyNjA0OTZlMjUwZDkwN2E1Ny4uOWZmZmU0MTkyMjQ4M2M1M2I1NDVkNjk5ODExYTcz
MWE2NDBkODlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE5LTA3LTMxICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjQwOTQy
KTogZmlyc3QgdmlzdWFsbHkgbm9uLWVtcHR5IGxheW91dCBtaWxlc3RvbmUgaXMgbm90IHJlYWNo
ZWQgaW4gbWVkaWEgZG9jdW1lbnRzIHVudGlsIGFmdGVyIHRoZSB2aWRlbyBmaW5pc2hlcyBsb2Fk
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAy
OTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUyOTM3NzQ5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgcjI0MDk0MiBjaGFuZ2VkIEZyYW1lVmll
dzo6cXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5KCkgdG8gY29uc2lkZXIgb25seSBkb2N1bWVu
dHMgaW4gdGhlCisgICAgICAgIEludGVyYWN0aXZlIG9yIENvbXBsZXRlIHJlYWR5IHN0YXRlcyBh
cyAiZmluaXNoZWQgcGFyc2luZyIuIERvY3VtZW50cyBjb25zaWRlcmVkIGZpbmlzaGVkCisgICAg
ICAgIHBhcnNpbmcgY2FuIHF1YWxpZnkgYXMgdmlzdWFsbHkgbm9uLWVtcHR5IGV2ZW4gd2l0aG91
dCBleGNlZWRpbmcgdGhlIHZpc3VhbCBjaGFyYWN0ZXIgb3IKKyAgICAgICAgcGl4ZWwgdGhyZXNo
b2xkcywgYnV0IGRvY3VtZW50cyBjb25zaWRlcmVkIG5vdCBmaW5pc2hlZCBtdXN0IGZpcnN0IGV4
Y2VlZCBvbmUgb2YgdGhlc2UKKyAgICAgICAgdGhyZXNob2xkcyBpbiBvcmRlciB0byBxdWFsaWZ5
IGFzIHZpc3VhbGx5IG5vbi1lbXB0eS4KKworICAgICAgICBIVE1MRG9jdW1lbnRzIGFyZSBwbGFj
ZWQgaW4gdGhlIEludGVyYWN0aXZlIHJlYWR5IHN0YXRlIGJ5IHRoZWlyIEhUTUxEb2N1bWVudFBh
cnNlcnMuCisgICAgICAgIEhvd2V2ZXIsIEhUTUxEb2N1bWVudCBzdWJjbGFzc2VzIGxpa2UgSW1h
Z2VEb2N1bWVudCBhbmQgTWVkaWFEb2N1bWVudCB1c2UgdGhlaXIgb3duIGN1c3RvbQorICAgICAg
ICBwYXJzZXJzIHRoYXQgbmV2ZXIgc2V0IHRoZSBJbnRlcmFjdGl2ZSByZWFkeSBzdGF0ZSBvbiB0
aGVpciBkb2N1bWVudHM7IHRoZXNlIGRvY3VtZW50cyBnbworICAgICAgICBmcm9tIExvYWRpbmcg
ZGlyZWN0bHkgdG8gQ29tcGxldGUuCisKKyAgICAgICAgSW4gb3JkZXIgZm9yIHRoZXNlIEhUTUxE
b2N1bWVudCBzdWJjbGFzc2VzIHRvIGJlIGNvbnNpZGVyZWQgdmlzdWFsbHkgbm9uLWVtcHR5IGJl
Zm9yZSB0aGV5CisgICAgICAgIGZpbmlzaCBsb2FkaW5nIHRoZXkgbXVzdCByZW5kZXIgc29tZXRo
aW5nIHRoYXQgZXhjZWVkcyB0aGUgdmlzdWFsIGNoYXJhY3RlciBvciBwaXhlbAorICAgICAgICB0
aHJlc2hvbGRzLiBGb3IgaW1hZ2UgZG9jdW1lbnRzLCByZW5kZXJpbmcgdGhlIGltYWdlIGlzIHVz
dWFsbHkgZW5vdWdoIHRvIGNyb3NzIHRoZQorICAgICAgICB0aHJlc2hvbGQsIGJ1dCBmb3IgbWVk
aWEgZG9jdW1lbnRzIHRoZSB2aXN1YWwgcGl4ZWwgdGhyZXNob2xkIHdhcyBuZXZlciBjcm9zc2Vk
IGJlY2F1c2UKKyAgICAgICAgdmlkZW9zIGRpZCBub3QgY29udHJpYnV0ZSB0byB0aGUgdmlzdWFs
bHkgbm9uLWVtcHR5IHBpeGVsIGNvdW50LgorCisgICAgICAgIEFzIGEgcmVzdWx0LCBtZWRpYSBk
b2N1bWVudHMgYXJlIG5vdCBjb25zaWRlcmVkIHZpc3VhbGx5IG5vbi1lbXB0eSB1bnRpbCB0aGUg
bWFpbiByZXNvdXJjZQorICAgICAgICBmaW5pc2hlcyBsb2FkaW5nLiBPbiBpT1MgdGhpcyBtZWFu
cyB0aGF0IHRoZSBsYXllciB0cmVlIHJlbWFpbnMgZnJvemVuIHVudGlsIHRoaXMgcG9pbnQsCisg
ICAgICAgIGV2ZW4gdGhvdWdoIHRoZSBtZWRpYSBtaWdodCBoYXZlIHN0YXJ0ZWQgYXV0b3BsYXlp
bmcgd2l0aCBhdWRpbyBsb25nIGJlZm9yZSBpdCBmaW5pc2hlZAorICAgICAgICBsb2FkaW5nLgor
CisgICAgICAgIEZpeCB0aGlzIGJ5IHRlYWNoaW5nIFJlbmRlclZpZGVvIHRvIGNvbnRyaWJ1dGUg
dGhlIHZpZGVvIHBsYXllcidzIHNpemUgdG8gRnJhbWVWaWV3J3MKKyAgICAgICAgdmlzdWFsbHkg
bm9uLWVtcHR5IHBpeGVsIGNvdW50IG9uY2UgdGhlIHZpZGVvIHBsYXllciBoYXMgbG9hZGVkIGVu
b3VnaCBkYXRhIHRvIGRldGVybWluZSBpdHMKKyAgICAgICAgaW50cmluc2ljIHNpemUuIFZpZGVv
cyB0aGF0IHJlbmRlciBtb3JlIHRoYW4gMTAyNCBwaXhlbHMgd2lsbCBxdWFsaWZ5IGEgbWVkaWEg
ZG9jdW1lbnQgYXMKKyAgICAgICAgdmlzdWFsbHkgbm9uLWVtcHR5IGV2ZW4gd2hlbiBpdCBpcyBz
dGlsbCBsb2FkaW5nIGl0cyBtYWluIHJlc291cmNlLgorCisgICAgICAgIEFkZGVkIGEgbmV3IEFQ
SSB0ZXN0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckltYWdlOjppbWFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW1hZ2U6OmluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50SWZOZWVkZWQp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJWaWRlby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWRlbzo6dXBkYXRl
SW50cmluc2ljU2l6ZSk6CisKIDIwMTktMDctMzEgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW1dITFNMXSBSZW1vdmUgVW5uYW1lZFR5cGUgY29weS9tb3ZlIGNv
bnN0cnVjdG9ycyBhbmQgbWFyayBjbGFzc2VzIGFzIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmNwcAppbmRleCA0ZDZhYTc1N2VhYTM4MWNlMGNhY2Y4ZmU1ZmQxM2I4
YjA4NDRkMmYwLi5mNmNiNTYxODEyZDIyMjY4NjY5ODNmM2FiOWM3NDBhNTZkYjAyNmU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTI2OSwxMiArMjY5LDkg
QEAgdm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciBuZXdJbWFn
ZSwgY29uc3QgSW50UmVjdCogcmVjdCkKIAogICAgIGlmIChuZXdJbWFnZSAhPSBpbWFnZVJlc291
cmNlKCkuaW1hZ2VQdHIoKSB8fCAhbmV3SW1hZ2UpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAg
ICBpZiAoIW1fZGlkSW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQpIHsKLSAgICAg
ICAgLy8gQXQgYSB6b29tIGxldmVsIG9mIDEgdGhlIGltYWdlIGlzIGd1YXJhbnRlZWQgdG8gaGF2
ZSBhbiBpbnRlZ2VyIHNpemUuCi0gICAgICAgIHZpZXcoKS5mcmFtZVZpZXcoKS5pbmNyZW1lbnRW
aXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudChmbG9vcmVkSW50U2l6ZShpbWFnZVJlc291cmNlKCku
aW1hZ2VTaXplKDEuMGYpKSk7Ci0gICAgICAgIG1fZGlkSW5jcmVtZW50VmlzdWFsbHlOb25FbXB0
eVBpeGVsQ291bnQgPSB0cnVlOwotICAgIH0KKworICAgIC8vIEF0IGEgem9vbSBsZXZlbCBvZiAx
IHRoZSBpbWFnZSBpcyBndWFyYW50ZWVkIHRvIGhhdmUgYW4gaW50ZWdlciBzaXplLgorICAgIGlu
Y3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50SWZOZWVkZWQoZmxvb3JlZEludFNpemUo
aW1hZ2VSZXNvdXJjZSgpLmltYWdlU2l6ZSgxLjBmKSkpOwogCiAgICAgSW1hZ2VTaXplQ2hhbmdl
VHlwZSBpbWFnZVNpemVDaGFuZ2UgPSBJbWFnZVNpemVDaGFuZ2VOb25lOwogCkBAIC04NTAsNCAr
ODQ3LDEzIEBAIFJlbmRlckJveCogUmVuZGVySW1hZ2U6OmVtYmVkZGVkQ29udGVudEJveCgpIGNv
bnN0CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK3ZvaWQgUmVuZGVySW1hZ2U6OmluY3JlbWVu
dFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50SWZOZWVkZWQoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
K3sKKyAgICBpZiAobV9kaWRJbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgdmlldygpLmZyYW1lVmlldygpLmluY3JlbWVudFZpc3VhbGx5
Tm9uRW1wdHlQaXhlbENvdW50KHNpemUpOworICAgIG1fZGlkSW5jcmVtZW50VmlzdWFsbHlOb25F
bXB0eVBpeGVsQ291bnQgPSB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCmluZGV4IDgyY2M3NDE5ZmUzNzQ3NTc4ZmFi
NmIyNTJkOTBhZWU4YjIzZDcwNWQuLmUyY2E5MTkyYTcwMjRiNGY3MWIzMjgwYWFlY2ViNTE5YjVk
MjM2YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCkBAIC0xMDAsNiAr
MTAwLDggQEAgcHJvdGVjdGVkOgogICAgICAgICBpbWFnZUNoYW5nZWQoaW1hZ2VSZXNvdXJjZSgp
LmltYWdlUHRyKCkpOwogICAgIH0KIAorICAgIHZvaWQgaW5jcmVtZW50VmlzdWFsbHlOb25FbXB0
eVBpeGVsQ291bnRJZk5lZWRlZChjb25zdCBJbnRTaXplJik7CisKIHByaXZhdGU6CiAgICAgY29u
c3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJJbWFn
ZSI7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKaW5kZXggMmVl
ZDljNDViMjc4MmI1OWQ0OWQ1OTFmZGFjZjQ0ZmRjZThlZjkwMC4uZjgwYzIwMzNkYzY3NWYzMmRj
YzIyYTUxNmEwNzEyZjIzYTQ1NTI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclZpZGVvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VmlkZW8uY3BwCkBAIC0xMDEsNiArMTAxLDEwIEBAIGJvb2wgUmVuZGVyVmlkZW86OnVwZGF0ZUlu
dHJpbnNpY1NpemUoKQogICAgIGlmIChzaXplLmlzRW1wdHkoKSAmJiBkb2N1bWVudCgpLmlzTWVk
aWFEb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAvLyBUcmVhdCB0aGUg
bWVkaWEgcGxheWVyJ3MgbmF0dXJhbCBzaXplIGFzIHZpc3VhbGx5IG5vbi1lbXB0eS4KKyAgICBp
ZiAodmlkZW9FbGVtZW50KCkucmVhZHlTdGF0ZSgpID49IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
SEFWRV9NRVRBREFUQSkKKyAgICAgICAgaW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291
bnRJZk5lZWRlZChyb3VuZGVkSW50U2l6ZShzaXplKSk7CisKICAgICBpZiAoc2l6ZSA9PSBpbnRy
aW5zaWNTaXplKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTA5LDcgKzExMyw3IEBA
IGJvb2wgUmVuZGVyVmlkZW86OnVwZGF0ZUludHJpbnNpY1NpemUoKQogICAgIHNldE5lZWRzTGF5
b3V0KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0gICAgCisKIExheW91dFNpemUgUmVuZGVyVmlk
ZW86OmNhbGN1bGF0ZUludHJpbnNpY1NpemUoKQogewogICAgIC8vIFNwZWMgdGV4dCBmcm9tIDQu
OC42CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
NTlmZTg4MmVjZWFhM2NhOWM0ZmQyMzQzZDRlYzg4YjRmMDk2YzhkMy4uZDE1N2I4NGM2NTJiNDQy
YTk4YjMxNDc3OTZlZTMyYzM5MmE3MTcyYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTA3LTMxICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjQwOTQyKTog
Zmlyc3QgdmlzdWFsbHkgbm9uLWVtcHR5IGxheW91dCBtaWxlc3RvbmUgaXMgbm90IHJlYWNoZWQg
aW4gbWVkaWEgZG9jdW1lbnRzIHVudGlsIGFmdGVyIHRoZSB2aWRlbyBmaW5pc2hlcyBsb2FkaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAyOTMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUyOTM3NzQ5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0ZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZS5tbTogUmVuYW1l
ZCBmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZpcnN0VmlzdWFsbHlOb25F
bXB0eU1pbGVzdG9uZVdpdGhEZWZlcnJlZFNjcmlwdC5tbS4KKyAgICAgICAgKC1bRmlyc3RQYWlu
dE1lc3NhZ2VIYW5kbGVyIHVzZXJDb250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVz
c2FnZTpdKToKKyAgICAgICAgKC1bUmVuZGVyaW5nUHJvZ3Jlc3NOYXZpZ2F0aW9uRGVsZWdhdGUg
X3dlYlZpZXc6cmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2U6XSk6CisgICAgICAgICgtW1JlbmRl
cmluZ1Byb2dyZXNzTmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGlkRmluaXNoTmF2aWdhdGlv
bjpdKToKKyAgICAgICAgKFRFU1QpOgorCiAyMDE5LTA3LTMxICBBYWthc2ggSmFpbiAgPGFha2Fz
aF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzLWJ1aWxkXSBFbmFibGUgYWxsIG1hY09T
IHF1ZXVlcyBvbiBuZXcgRVdTCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDVkNjE3ZmQ0YzZi
ZjFmYjZmN2ZkODg3MmQxYWZmMjA0OTY1ZDVlZDIuLjFlNzY4NWRhZTAxYjg0YzMzMzEwNTVhOGMy
YmEyMmRjMmIzMzEzMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NSw3ICs2NSw3IEBA
CiAJCTExNzFCMjRGMjE5RjQ5Q0QwMENCODk3RCAvKiBGaXJzdE1lYW5pbmdmdWxQYWludE1pbGVz
dG9uZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTFCN0ZEMjEyMTlGNDZERDAwNjlCMjdGIC8qIEZpcnN0TWVhbmluZ2Z1bFBhaW50TWls
ZXN0b25lX0J1bmRsZS5jcHAgKi87IH07CiAJCTExODE1MzQ0MjIwOEI3QUMwMEIyQ0NEMiAvKiBk
ZWZlcnJlZC1zY3JpcHQtbG9hZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExODE1MzQzMjIwOEI3QUMwMEIyQ0NEMiAvKiBkZWZlcnJl
ZC1zY3JpcHQtbG9hZC5odG1sICovOyB9OwogCQkxMTgxNTM0NjIyMDhCN0U1MDBCMkNDRDIgLyog
ZGVmZXJyZWQtc2NyaXB0LmpzIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDExODE1MzQ1MjIwOEI3RTUwMEIyQ0NEMiAvKiBkZWZlcnJlZC1zY3Jp
cHQuanMgKi87IH07Ci0JCTExODE1MzQ4MjIwOEJBREYwMEIyQ0NEMiAvKiBGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlNaWxlc3RvbmVXaXRoRGVmZXJyZWRTY3JpcHQubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTgxNTM0NzIyMDhCQURGMDBCMkNDRDIgLyog
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0aERlZmVycmVkU2NyaXB0Lm1tICovOyB9
OworCQkxMTgxNTM0ODIyMDhCQURGMDBCMkNDRDIgLyogRmlyc3RWaXN1YWxseU5vbkVtcHR5TWls
ZXN0b25lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTE4MTUzNDcyMjA4QkFERjAwQjJDQ0QyIC8qIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9u
ZS5tbSAqLzsgfTsKIAkJMTFCN0ZEMjgyMTlGNDcxMTAwNjlCMjdGIC8qIEZpcnN0TWVhbmluZ2Z1
bFBhaW50TWlsZXN0b25lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDExQjdGRDIyMjE5RjQ2REQwMDY5QjI3RiAvKiBGaXJzdE1lYW5pbmdmdWxQYWlu
dE1pbGVzdG9uZS5jcHAgKi87IH07CiAJCTExQzI1OThEMjFGQTYzMjQwMDRDOUUyMyAvKiBhc3lu
Yy1zY3JpcHQtbG9hZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDExQzI1OThDMjFGQTYxOEQwMDRDOUUyMyAvKiBhc3luYy1zY3JpcHQt
bG9hZC5odG1sICovOyB9OwogCQkxNDNEREU5ODIwQzkwMThCMDA3Rjc2RkEgLyogU2VjdXJpdHku
ZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTc0RjU1RDAyMDRENDcxQzAwMjk0OEM2IC8qIFNlY3VyaXR5LmZyYW1ld29yayAqLzsgfTsK
QEAgLTE0NDMsNyArMTQ0Myw3IEBACiAJCTExNUVCMzQyMUVFMEI3MjAwMDNDMkMwQSAvKiBWaWV3
cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTE4MTUzNDMyMjA4QjdBQzAwQjJDQ0QyIC8qIGRlZmVycmVkLXNj
cmlwdC1sb2FkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZGVmZXJyZWQtc2Ny
aXB0LWxvYWQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExODE1MzQ1MjIw
OEI3RTUwMEIyQ0NEMiAvKiBkZWZlcnJlZC1zY3JpcHQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmphdmFzY3JpcHQ7IHBhdGggPSAiZGVmZXJyZWQtc2NyaXB0LmpzIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMTE4MTUzNDcyMjA4QkFERjAwQjJDQ0QyIC8qIEZpcnN0VmlzdWFsbHlO
b25FbXB0eU1pbGVzdG9uZVdpdGhEZWZlcnJlZFNjcmlwdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZVdpdGhE
ZWZlcnJlZFNjcmlwdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTE4MTUzNDcy
MjA4QkFERjAwQjJDQ0QyIC8qIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpcnN0VmlzdWFsbHlOb25FbXB0
eU1pbGVzdG9uZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTFCN0ZEMjEyMTlG
NDZERDAwNjlCMjdGIC8qIEZpcnN0TWVhbmluZ2Z1bFBhaW50TWlsZXN0b25lX0J1bmRsZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaXJzdE1lYW5pbmdmdWxQYWlu
dE1pbGVzdG9uZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMUI3
RkQyMjIxOUY0NkREMDA2OUIyN0YgLyogRmlyc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlyc3RNZWFuaW5nZnVsUGFp
bnRNaWxlc3RvbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMUMyNTk4QzIx
RkE2MThEMDA0QzlFMjMgLyogYXN5bmMtc2NyaXB0LWxvYWQuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJhc3luYy1zY3JpcHQtbG9hZC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI3MDUsNiArMjcwNSw3IEBACiAJCQkJRjQ0RDA2NDYxRjM5NUM0RDAwMUEw
RTI5IC8qIEVkaXRvclN0YXRlVGVzdHMubW0gKi8sCiAJCQkJQ0RBMjlCMjgyMEZEMkE5OTAwRjE1
Q0VEIC8qIEV4aXRGdWxsc2NyZWVuT25FbnRlclBpUC5tbSAqLywKIAkJCQkyRDgxMDRDQjFCRUMx
M0U3MDAyMERBNDYgLyogRmluZEluUGFnZS5tbSAqLywKKwkJCQkxMTgxNTM0NzIyMDhCQURGMDBC
MkNDRDIgLyogRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lLm1tICovLAogCQkJCTJEMUZF
MEFGMUFENDY1QzEwMDZDRDlFNiAvKiBGaXhlZExheW91dFNpemUubW0gKi8sCiAJCQkJMkU5MkI4
RjgyMTY0OTBFQTAwNUI2NEYwIC8qIEZvbnRBdHRyaWJ1dGVzLm1tICovLAogCQkJCTVDQjVCM0JE
MUZGQzUxN0UwMEMyN0JCMCAvKiBGcmFtZUhhbmRsZVNlcmlhbGl6YXRpb24ubW0gKi8sCkBAIC0z
Mzk2LDcgKzMzOTcsNiBAQAogCQkJCUM1MUFGQjk4MTY5RjQ5RkYwMDlDQ0Y2NiAvKiBGaW5kTWF0
Y2hlcy5tbSAqLywKIAkJCQkxMUI3RkQyMjIxOUY0NkREMDA2OUIyN0YgLyogRmlyc3RNZWFuaW5n
ZnVsUGFpbnRNaWxlc3RvbmUuY3BwICovLAogCQkJCTExQjdGRDIxMjE5RjQ2REQwMDY5QjI3RiAv
KiBGaXJzdE1lYW5pbmdmdWxQYWludE1pbGVzdG9uZV9CdW5kbGUuY3BwICovLAotCQkJCTExODE1
MzQ3MjIwOEJBREYwMEIyQ0NEMiAvKiBGaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmVXaXRo
RGVmZXJyZWRTY3JpcHQubW0gKi8sCiAJCQkJMUFEQkVGQUQxMzBDNjg5QzAwRDYxRDE5IC8qIEZv
cmNlUmVwYWludC5jcHAgKi8sCiAJCQkJMzc2QzhDMDQxRDZFMTk3QzAwN0QyQkI5IC8qIEZyYW1l
SGFuZGxlLmNwcCAqLywKIAkJCQlCQ0JEMzcwRjEyNUFBMkVCMDBEMkMyOUYgLyogRnJhbWVNSU1F
VHlwZUhUTUwuY3BwICovLApAQCAtNDM3Myw3ICs0MzczLDcgQEAKIAkJCQkxMUI3RkQyODIxOUY0
NzExMDA2OUIyN0YgLyogRmlyc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0M4M0UwNDAxRDBBNjNFMzAwRkVCQ0YzIC8qIEZpcnN0UmVzcG9uZGVyU2Ny
b2xsaW5nUG9zaXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQlDOUU2REQzNTFFQTk3RDA4MDBE
RDc4QUEgLyogRmlyc3RSZXNwb25kZXJTdXBwcmVzc2lvbi5tbSBpbiBTb3VyY2VzICovLAotCQkJ
CTExODE1MzQ4MjIwOEJBREYwMEIyQ0NEMiAvKiBGaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3Rv
bmVXaXRoRGVmZXJyZWRTY3JpcHQubW0gaW4gU291cmNlcyAqLywKKwkJCQkxMTgxNTM0ODIyMDhC
QURGMDBCMkNDRDIgLyogRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0M4M0UwQkMxRDBBNjUwNzAwRkVCQ0YzIC8qIEZpeGVkTGF5b3V0U2l6ZS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTdBOTA5QTdFMUQ4Nzc0ODAwMDdFMTBGOCAvKiBGbG9hdFBv
aW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBOTA5QTdGMUQ4Nzc0ODAwMDdFMTBGOCAvKiBG
bG9hdFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9GaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmVXaXRoRGVmZXJy
ZWRTY3JpcHQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9GaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlNaWxlc3RvbmVXaXRoRGVmZXJyZWRTY3JpcHQubW0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGM2YjZjYWFlMjU0YmE5ZjUyNGEzM2FmMWY4OTgxMTBlM2EzZjU5MDUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0
aERlZmVycmVkU2NyaXB0Lm1tCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0jaW1wb3J0ICJjb25maWcuaCIKLQotI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIK
LSNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKLSNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KLQotc3RhdGljIGJvb2wgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Owotc3Rh
dGljIGJvb2wgcmVjZWl2ZWRNZXNzYWdlOwotCi1AaW50ZXJmYWNlIEZpcnN0UGFpbnRNZXNzYWdl
SGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgotQGVuZAotCi1AaW1w
bGVtZW50YXRpb24gRmlyc3RQYWludE1lc3NhZ2VIYW5kbGVyCi0tICh2b2lkKXVzZXJDb250ZW50
Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xs
ZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKLXsK
LSAgICByZWNlaXZlZE1lc3NhZ2UgPSB0cnVlOwotfQotQGVuZAotCi1AaW50ZXJmYWNlIFJlbmRl
cmluZ1Byb2dyZXNzTmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRl
bGVnYXRlPgotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gUmVuZGVyaW5nUHJvZ3Jlc3NOYXZpZ2F0
aW9uRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVuZGVy
aW5nUHJvZ3Jlc3NEaWRDaGFuZ2U6KF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKXByb2dyZXNz
RXZlbnRzCi17Ci0gICAgaWYgKHByb2dyZXNzRXZlbnRzICYgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NF
dmVudEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCkKLSAgICAgICAgZGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0ID0gdHJ1ZTsKLX0KLUBlbmQKLQotVEVTVChXZWJLaXQsIEZpcnN0Vmlz
dWFsbHlOb25FbXB0eU1pbGVzdG9uZVdpdGhEZWZlcnJlZFNjcmlwdCkKLXsKLSAgICBhdXRvIHdl
YlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKLSAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0ZpcnN0UGFp
bnRNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwotICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRp
b24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdl
SGFuZGxlci5nZXQoKSBuYW1lOkAiZmlyc3RwYWludCJdOwotCi0gICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7Ci0K
LSAgICBSZXRhaW5QdHI8UmVuZGVyaW5nUHJvZ3Jlc3NOYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVn
YXRlID0gYWRvcHROUyhbW1JlbmRlcmluZ1Byb2dyZXNzTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9j
XSBpbml0XSk7Ci0gICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKLQotICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIGRpZEZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dCA9IGZhbHNlOwotCi0gICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAiZGVmZXJyZWQtc2NyaXB0LWxvYWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07Ci0KLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7Ci0gICAgRVhQRUNUX1RSVUUoZGlkRmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaXJzdFZpc3VhbGx5Tm9u
RW1wdHlNaWxlc3RvbmUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzgzMTIyZDg3NDkyZDQ5ZGFlMTlkNjdhZmRh
ZDQ3MTAxMGFjYjI4YQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lLm1tCkBAIC0wLDAg
KzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBs
YXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisj
aW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmln
dXJhdGlvblByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSA8TW9iaWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVT
ZXJ2aWNlcy5oPgorI2VuZGlmCisKK3N0YXRpYyBib29sIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dDsKK3N0YXRpYyBib29sIHJlY2VpdmVkTWVzc2FnZTsKKworQGludGVyZmFjZSBGaXJz
dFBhaW50TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4K
K0BlbmQKKworQGltcGxlbWVudGF0aW9uIEZpcnN0UGFpbnRNZXNzYWdlSGFuZGxlcgorLSAodm9p
ZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNv
bnRlbnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2Ug
KiltZXNzYWdlCit7CisgICAgcmVjZWl2ZWRNZXNzYWdlID0gdHJ1ZTsKK30KK0BlbmQKKworQGlu
dGVyZmFjZSBSZW5kZXJpbmdQcm9ncmVzc05hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxX
S05hdmlnYXRpb25EZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFJlbmRlcmluZ1By
b2dyZXNzTmF2aWdhdGlvbkRlbGVnYXRlCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlOihfV0tSZW5kZXJpbmdQcm9ncmVzc0V2
ZW50cylwcm9ncmVzc0V2ZW50cworeworICAgIGlmIChwcm9ncmVzc0V2ZW50cyAmIF9XS1JlbmRl
cmluZ1Byb2dyZXNzRXZlbnRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpCisgICAgICAgIGRp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCA9IHRydWU7Cit9CitAZW5kCisKK1RFU1QoV2Vi
S2l0LCBGaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmVXaXRoRGVmZXJyZWRTY3JpcHQpCit7
CisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0
TlMoW1tGaXJzdFBhaW50TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbW3dlYlZp
ZXdDb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhh
bmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImZpcnN0cGFpbnQiXTsKKworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNN
YWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlv
bi5nZXQoKV0pOworCisgICAgUmV0YWluUHRyPFJlbmRlcmluZ1Byb2dyZXNzTmF2aWdhdGlvbkRl
bGVnYXRlPiBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tSZW5kZXJpbmdQcm9ncmVzc05hdmlnYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBk
aWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAImRlZmVycmVkLXNjcmlwdC1sb2FkIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOworCisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIEVYUEVD
VF9UUlVFKGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCk7Cit9CisKK0BpbnRlcmZhY2Ug
TmV2ZXJGaW5pc2hMb2FkaW5nU2NoZW1lSGFuZGxlciA6IE5TT2JqZWN0IDxXS1VSTFNjaGVtZUhh
bmRsZXI+CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNsYXNzKSBOU1N0cmluZyAq
VVJMU2NoZW1lOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gTmV2ZXJGaW5pc2hMb2FkaW5nU2No
ZW1lSGFuZGxlcgorCisrIChOU1N0cmluZyAqKVVSTFNjaGVtZQoreworICAgIHJldHVybiBAIm5l
dmVyLWZpbmlzaC1sb2FkaW5nIjsKK30KKworc3RhdGljIE5TU3RyaW5nICpjb250ZW50VHlwZUZv
ckZpbGVFeHRlbnNpb24oTlNTdHJpbmcgKmZpbGVFeHRlbnNpb24pCit7CisgICAgYXV0byBpZGVu
dGlmaWVyID0gYWRvcHRDRihVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKGtV
VFRhZ0NsYXNzRmlsZW5hbWVFeHRlbnNpb24sIChfX2JyaWRnZSBDRlN0cmluZ1JlZilmaWxlRXh0
ZW5zaW9uLCBudWxscHRyKSk7CisgICAgYXV0byBtaW1lVHlwZSA9IGFkb3B0Q0YoVVRUeXBlQ29w
eVByZWZlcnJlZFRhZ1dpdGhDbGFzcyhpZGVudGlmaWVyLmdldCgpLCBrVVRUYWdDbGFzc01JTUVU
eXBlKSk7CisgICAgcmV0dXJuIChfX2JyaWRnZSBOU1N0cmluZyAqKW1pbWVUeXBlLmF1dG9yZWxl
YXNlKCk7Cit9CisKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVS
TFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhc2sKK3sKKyAgICBOU1VSTCAqcmVx
dWVzdFVSTCA9IHRhc2sucmVxdWVzdC5VUkw7CisgICAgTlNTdHJpbmcgKmZpbGVOYW1lID0gcmVx
dWVzdFVSTC5sYXN0UGF0aENvbXBvbmVudDsKKyAgICBOU1N0cmluZyAqZmlsZUV4dGVuc2lvbiA9
IGZpbGVOYW1lLnBhdGhFeHRlbnNpb247CisgICAgTlNVUkwgKmJ1bmRsZVVSTCA9IFtOU0J1bmRs
ZS5tYWluQnVuZGxlIFVSTEZvclJlc291cmNlOmZpbGVOYW1lLnN0cmluZ0J5RGVsZXRpbmdQYXRo
RXh0ZW5zaW9uIHdpdGhFeHRlbnNpb246ZmlsZUV4dGVuc2lvbiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisgICAgTlNEYXRhICpyZXNwb25zZURhdGEgPSBbTlNE
YXRhIGRhdGFXaXRoQ29udGVudHNPZlVSTDpidW5kbGVVUkxdOworICAgIE5TVUludGVnZXIgcmVz
cG9uc2VMZW5ndGggPSByZXNwb25zZURhdGEubGVuZ3RoOworCisgICAgYXV0byByZXNwb25zZSA9
IGFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpyZXF1ZXN0VVJMIE1J
TUVUeXBlOmNvbnRlbnRUeXBlRm9yRmlsZUV4dGVuc2lvbihmaWxlRXh0ZW5zaW9uKSBleHBlY3Rl
ZENvbnRlbnRMZW5ndGg6cmVzcG9uc2VMZW5ndGggdGV4dEVuY29kaW5nTmFtZTpuaWxdKTsKKyAg
ICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2UuZ2V0KCldOworCisgICAgW3Rhc2sg
ZGlkUmVjZWl2ZURhdGE6W3Jlc3BvbnNlRGF0YSBzdWJkYXRhV2l0aFJhbmdlOk5TTWFrZVJhbmdl
KDAsIHJlc3BvbnNlTGVuZ3RoIC0gMTAyNCldXTsKK30KKworLSAodm9pZCl3ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHN0b3BVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0
YXNrCit7Cit9CisKK0BlbmQKKworVEVTVChXZWJLaXQsIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1p
bGVzdG9uZVdpdGhNZWRpYURvY3VtZW50KQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICBbY29uZmlndXJhdGlvbiBzZXRBbGxvd3NJbmxpbmVNZWRpYVBs
YXliYWNrOllFU107CisgICAgW2NvbmZpZ3VyYXRpb24gX3NldElubGluZU1lZGlhUGxheWJhY2tS
ZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlOk5PXTsKKyNlbmRpZgorCisgICAgYXV0byBzY2hl
bWVIYW5kbGVyID0gYWRvcHROUyhbW05ldmVyRmluaXNoTG9hZGluZ1NjaGVtZUhhbmRsZXIgYWxs
b2NdIGluaXRdKTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOnNjaGVt
ZUhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOk5ldmVyRmluaXNoTG9hZGluZ1NjaGVtZUhhbmRs
ZXIuVVJMU2NoZW1lXTsKKworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhb
W1JlbmRlcmluZ1Byb2dyZXNzTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
LmdldCgpIGFkZFRvV2luZG93OllFU10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxl
Z2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IF9zZXRBbGxvd3NN
ZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2s6WUVTXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJu
ZXZlci1maW5pc2gtbG9hZGluZzovLy9sYXJnZS12aWRlby13aXRoLWF1ZGlvLm1wNCJdXV07CisK
KyAgICBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgPSBmYWxzZTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCk7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>