<?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>156345</bug_id>
          
          <creation_ts>2016-04-07 10:44:31 -0700</creation_ts>
          <short_desc>Write tests for WebCookieManager::addCookie()</short_desc>
          <delta_ts>2016-04-08 14:07:05 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>156091</dependson>
    
    <dependson>156319</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bburg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1181725</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-04-07 10:44:31 -0700</bug_when>
    <thetext>Need to expose to C API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181909</commentid>
    <comment_count>1</comment_count>
      <attachid>275943</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-04-07 15:01:34 -0700</bug_when>
    <thetext>Created attachment 275943
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181981</commentid>
    <comment_count>2</comment_count>
      <attachid>275960</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-04-07 16:50:52 -0700</bug_when>
    <thetext>Created attachment 275960
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182284</commentid>
    <comment_count>3</comment_count>
      <attachid>275960</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-04-08 13:26:30 -0700</bug_when>
    <thetext>Comment on attachment 275960
Proposed Fix

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

Looks good to me.  I&apos;d prefer Anders glance at this and make sure he has no opposition to adding the new WKCookieRef type.

&gt; Source/WebKit2/UIProcess/WebCookie.cpp:40
&gt; +const WebCore::Cookie&amp; WebCookie::cookie()

Add this file to CMakeLists.txt.

&gt; Tools/TestWebKitAPI/Tests/WebKit2/CookieManager.cpp:-73
&gt; -TEST(WebKit2, CookieManager)

I&apos;m not sure it&apos;s necessary to rename this file just to add another test.

&gt; Tools/TestWebKitAPI/Tests/WebKit2/WKCookieManagerSetCookie.cpp:42
&gt; +static void cookiesDidChange(WKCookieManagerRef cookieManager, const void*)

Can we get the cookie here and make sure that it has the expected name and value?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182303</commentid>
    <comment_count>4</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-04-08 14:06:48 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 275960 [details]
&gt; Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=275960&amp;action=review
&gt; 
&gt; Looks good to me.  I&apos;d prefer Anders glance at this and make sure he has no
&gt; opposition to adding the new WKCookieRef type.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebCookie.cpp:40
&gt; &gt; +const WebCore::Cookie&amp; WebCookie::cookie()
&gt; 
&gt; Add this file to CMakeLists.txt

Oops! Will do.

&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2/CookieManager.cpp:-73
&gt; &gt; -TEST(WebKit2, CookieManager)
&gt; 
&gt; I&apos;m not sure it&apos;s necessary to rename this file just to add another test.

With all the static methods needed for clients, I thought it would be better to put one test per file and try to cover as much as possible in one test. (The name CookieManager.cpp is kinda prime real estate and the existing test only covers two APIs.)

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2/WKCookieManagerSetCookie.cpp:42
&gt; &gt; +static void cookiesDidChange(WKCookieManagerRef cookieManager, const void*)
&gt; 
&gt; Can we get the cookie here and make sure that it has the expected name and
&gt; value?

Would need to add new WebCookieManagerProxy stuff, but it&apos;s doable.

I had this working before but I removed it in favor of using the Automation proxy, since for automation it needs to get the first party URL from WebProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182304</commentid>
    <comment_count>5</comment_count>
      <attachid>275960</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-04-08 14:07:05 -0700</bug_when>
    <thetext>Comment on attachment 275960
Proposed Fix

Clear review, new patch coming.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275943</attachid>
            <date>2016-04-07 15:01:34 -0700</date>
            <delta_ts>2016-04-07 16:50:49 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-156345-20160407150136.patch</filename>
            <type>text/plain</type>
            <size>43574</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmYwNDk0OTA2YTM5YmYx
MDc0NjhkYmQzYzY1OGVmNjhlNGQ2ZWIwMC4uZTcwOGQ5MWUwMWUyZmE3ZDQ2OTJlNTZhY2NiNGVj
ZGE2NjQ5ZTRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE2LTA0LTA3ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdyaXRlIHRlc3RzIGZvciBXZWJD
b29raWVNYW5hZ2VyOjphZGRDb29raWUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNo
YXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llLmNwcDogQWRkZWQuCisgICAg
ICAgIChXS0Nvb2tpZUdldFR5cGVJRCk6CisgICAgICAgIChXS0Nvb2tpZUNyZWF0ZSk6CisgICAg
ICAgIChXS0Nvb2tpZUNvcHlOYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb29r
aWUuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb29raWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ29va2llOjpXZWJDb29raWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWU6
On5XZWJDb29raWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWU6OmNvb2tpZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29va2llOjpjcmVhdGUpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAxNi0wNC0wNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIENvbXBpbGUgV2ViS2l0VGVzdFJ1bm5lciB3aXRoIENNYWtlIG9u
IE1hYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKaW5kZXggN2Y5Zjc2MDc2OTMx
NDFmODIzYTI1N2Q3ODNkOTI5MjdiZWZmMmQ1YS4uMmRkMjg4YjQzNmJlYjgxOTQ0NDc3ZGU5OWY1
YmZlNDFhODhjZTNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0x
MDUsNiArMTA1LDcgQEAgcHVibGljOgogICAgICAgICBCYXR0ZXJ5U3RhdHVzLAogICAgICAgICBD
YWNoZU1hbmFnZXIsCiAgICAgICAgIENvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIsCisgICAgICAg
IENvb2tpZSwKICAgICAgICAgQ29va2llTWFuYWdlciwKICAgICAgICAgRG93bmxvYWQsCiAgICAg
ICAgIEZvcm1TdWJtaXNzaW9uTGlzdGVuZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKaW5kZXggNzI5NTc3ZGQ0ZDFkZDFmYjBmYWY5NTczMzljODMzNTI2OTA1MjQzMi4uYjExMzYw
NjdiMGJkMWQ1NDljNWU3NzljOTlmNTFlNTIyZmNjNDg2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaApAQCAtOTUsNiArOTUsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyKiBXS0Nv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S0NvbnRleHQqIFdLQ29udGV4dFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ29u
dGV4dENvbmZpZ3VyYXRpb24qIFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWY7Cit0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS0Nvb2tpZSogV0tDb29raWVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS0Nvb2tpZU1hbmFnZXIqIFdLQ29va2llTWFuYWdlclJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLQ3JlZGVudGlhbCogV0tDcmVkZW50aWFsUmVmOwogdHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tEb3dubG9hZCogV0tEb3dubG9hZFJlZjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCBhZDU4ZDY5MzA1YWE5YWIz
YmM4YjdmMmI2YWZiYTIxOWJmOGE5ZjM2Li4wZTQ1OWU0ZjMwOTc0OTdhNTBmYjg1ZjgyM2IyZGQy
MzYxNzQxYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5o
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmgiCiAj
aW5jbHVkZSAiV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0Lmgi
CisjaW5jbHVkZSAiV0tDb29raWUuaCIKICNpbmNsdWRlICJXS0Nvb2tpZU1hbmFnZXIuaCIKICNp
bmNsdWRlICJXS0NyZWRlbnRpYWxUeXBlcy5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgpAQCAtODIs
NiArODMsNyBAQCBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQmF0dGVy
eU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhdHRlcnlTdGF0dXM7CiBjbGFzcyBXZWJDb2xvclBp
Y2tlclJlc3VsdExpc3RlbmVyUHJveHk7CitjbGFzcyBXZWJDb29raWU7CiBjbGFzcyBXZWJDb29r
aWVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJDcmVkZW50aWFsOwogY2xhc3MgV2ViRm9ybVN1Ym1p
c3Npb25MaXN0ZW5lclByb3h5OwpAQCAtMTIxLDYgKzEyMyw3IEBAIFdLX0FERF9BUElfTUFQUElO
RyhXS0J1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUsIEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRp
YVR5cGUpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVm
LCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkco
V0tDb250ZXh0UmVmLCBXZWJQcm9jZXNzUG9vbCkKIFdLX0FERF9BUElfTUFQUElORyhXS0NvbnRl
eHRDb25maWd1cmF0aW9uUmVmLCBBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbikKK1dLX0FE
RF9BUElfTUFQUElORyhXS0Nvb2tpZVJlZiwgV2ViQ29va2llKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLQ29va2llTWFuYWdlclJlZiwgV2ViQ29va2llTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLQ3JlZGVudGlhbFJlZiwgV2ViQ3JlZGVudGlhbCkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0Rvd25sb2FkUmVmLCBEb3dubG9hZFByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0Nvb2tpZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBlZmQ4NDkwZTExYTRhZWIzODRlZjZm
NmQyMzI4Yjc3OTgxNmViYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0Nvb2tpZS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0Nvb2tpZS5oIgorCisjaW5jbHVkZSAiQVBJ
U3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViQ29va2llLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLQ29va2llR2V0VHlwZUlE
KCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViQ29va2llOjpBUElUeXBlKTsKK30KKworV0tDb29r
aWVSZWYgV0tDb29raWVDcmVhdGUoV0tTdHJpbmdSZWYgbmFtZSwgV0tTdHJpbmdSZWYgdmFsdWUs
IFdLU3RyaW5nUmVmIGRvbWFpbiwgV0tTdHJpbmdSZWYgcGF0aCwgZG91YmxlIGV4cGlyZXMsIGJv
b2wgaHR0cE9ubHksIGJvb2wgc2VjdXJlLCBib29sIHNlc3Npb24pCit7CisgICAgV2ViQ29yZTo6
Q29va2llIGNvcmVDb29raWU7CisgICAgY29yZUNvb2tpZS5uYW1lID0gdG9JbXBsKG5hbWUpLT5z
dHJpbmcoKTsKKyAgICBjb3JlQ29va2llLnZhbHVlID0gdG9JbXBsKHZhbHVlKS0+c3RyaW5nKCk7
CisgICAgY29yZUNvb2tpZS5kb21haW4gPSB0b0ltcGwoZG9tYWluKS0+c3RyaW5nKCk7CisgICAg
Y29yZUNvb2tpZS5wYXRoID0gdG9JbXBsKHBhdGgpLT5zdHJpbmcoKTsKKyAgICBjb3JlQ29va2ll
LmV4cGlyZXMgPSBleHBpcmVzOworICAgIGNvcmVDb29raWUuaHR0cE9ubHkgPSBodHRwT25seTsK
KyAgICBjb3JlQ29va2llLnNlY3VyZSA9IHNlY3VyZTsKKyAgICBjb3JlQ29va2llLnNlc3Npb24g
PSBzZXNzaW9uOworCisgICAgcmV0dXJuIHRvQVBJKCZXZWJDb29raWU6OmNyZWF0ZShjb3JlQ29v
a2llKS5sZWFrUmVmKCkpOworfQorCitXS1N0cmluZ1JlZiBXS0Nvb2tpZUNvcHlOYW1lKFdLQ29v
a2llUmVmIGNvb2tpZVJlZikKK3sKKyAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKGNvb2tp
ZVJlZiktPmNvb2tpZSgpLm5hbWUpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29va2llLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb29raWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWFiZTMxMmQzZjY5MWJmMjRmYmUzM2FmYTU2Zjc0YTJj
MmY1ODEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ29va2llLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tDb29r
aWVfaAorI2RlZmluZSBXS0Nvb2tpZV9oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdL
VHlwZUlEIFdLQ29va2llR2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCBXS0Nvb2tpZVJlZiBXS0Nv
b2tpZUNyZWF0ZShXS1N0cmluZ1JlZiBuYW1lLCBXS1N0cmluZ1JlZiB2YWx1ZSwgV0tTdHJpbmdS
ZWYgZG9tYWluLCBXS1N0cmluZ1JlZiBwYXRoLCBkb3VibGUgZXhwaXJlcywgYm9vbCBodHRwT25s
eSwgYm9vbCBzZWN1cmUsIGJvb2wgc2Vzc2lvbik7CisKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBX
S0Nvb2tpZUNvcHlOYW1lKFdLQ29va2llUmVmKTsKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS0Nv
b2tpZUNvcHlWYWx1ZShXS0Nvb2tpZVJlZik7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tDb29r
aWVDb3B5RG9tYWluKFdLQ29va2llUmVmKTsKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS0Nvb2tp
ZUNvcHlQYXRoKFdLQ29va2llUmVmKTsKK1dLX0VYUE9SVCBkb3VibGUgV0tDb29raWVHZXRFeHBp
cmVzKFdLQ29va2llUmVmKTsKK1dLX0VYUE9SVCBib29sIFdLQ29va2llSXNIVFRQT25seShXS0Nv
b2tpZVJlZik7CitXS19FWFBPUlQgYm9vbCBXS0Nvb2tpZUlzU2VjdXJlKFdLQ29va2llUmVmKTsK
K1dLX0VYUE9SVCBib29sIFdLQ29va2llSXNTZXNzaW9uKFdLQ29va2llUmVmKTsKKworI2lmZGVm
IF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdLQ29va2llX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAppbmRleCA4ZjQx
MTFjM2YzOTE4ZTc4YTQ0NWEzY2Y0ODNmMWZiMmZjNTI2YmNkLi40ODBlZWY1NmFjMGZlNWFhN2M2
OTE4MGFkYzViMzFmYmFjZTE5MzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29va2llTWFuYWdlci5oCkBAIC02Miw5ICs2MiwxMCBAQCBXS19FWFBPUlQgdm9p
ZCBXS0Nvb2tpZU1hbmFnZXJTZXRDbGllbnQoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFn
ZXIsIGNvbnN0CiB0eXBlZGVmIHZvaWQgKCpXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0bmFt
ZXNGdW5jdGlvbikoV0tBcnJheVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOwogV0tfRVhQT1JUIHZv
aWQgV0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2Vy
UmVmIGNvb2tpZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQ29va2llTWFuYWdlckdldENvb2tp
ZUhvc3RuYW1lc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKIAorV0tfRVhQT1JUIHZvaWQgV0tDb29raWVN
YW5hZ2VyU2V0Q29va2llRm9ySG9zdG5hbWUoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFn
ZXIsIFdLQ29va2llUmVmIGNvb2tpZSwgV0tTdHJpbmdSZWYgaG9zdG5hbWUpOworCiBXS19FWFBP
UlQgdm9pZCBXS0Nvb2tpZU1hbmFnZXJEZWxldGVDb29raWVzRm9ySG9zdG5hbWUoV0tDb29raWVN
YW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIFdLU3RyaW5nUmVmIGhvc3RuYW1lKTsKIFdLX0VYUE9S
VCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXMoV0tDb29raWVNYW5hZ2VyUmVm
IGNvb2tpZU1hbmFnZXIpOwotCiAvLyBUaGUgdGltZSBoZXJlIGlzIHJlbGF0aXZlIHRvIHRoZSBV
bml4IGVwb2NoLgogV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQWxsQ29va2ll
c01vZGlmaWVkQWZ0ZXJEYXRlKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBkb3Vi
bGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhi
MWU3MzEzMjU1OGIwMGI2MjNiOWQ1ZjdiNGRiM2I5MmQ0ZWRmYmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llLmNwcApAQCAtMCwwICsxLDQ1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvb2tpZS5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQ29va2llOjpXZWJDb29raWUoY29uc3QgV2Vi
Q29yZTo6Q29va2llJiBjb29raWUpCisgICAgOiBtX2NvcmVDb29raWUoY29va2llKQoreworfQor
CitXZWJDb29raWU6On5XZWJDb29raWUoKQoreworfQorCitjb25zdCBXZWJDb3JlOjpDb29raWUm
IFdlYkNvb2tpZTo6Y29va2llKCkKK3sKKyAgICByZXR1cm4gbV9jb3JlQ29va2llOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb29raWUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYzUyYWM5ZGFjYjhhZGE2MGFjZmNlOTJhM2VjNjE3ZWFhNTk0MDY5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZS5oCkBAIC0wLDAg
KzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgorI2luY2x1ZGUgIkFQSVN0cmluZy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb29raWUgOiBwdWJsaWMgQVBJOjpP
YmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpDb29raWU+IHsKK3B1YmxpYzoKKyAgICB+V2Vi
Q29va2llKCk7CisKKyAgICBzdGF0aWMgUmVmPFdlYkNvb2tpZT4gY3JlYXRlKGNvbnN0IFdlYkNv
cmU6OkNvb2tpZSYgY29va2llKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViQ29va2llKGNvb2tpZSkpOworICAgIH0KKworICAgIGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYg
Y29va2llKCk7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViQ29va2llKGNvbnN0IFdlYkNv
cmU6OkNvb2tpZSYpOworCisgICAgV2ViQ29yZTo6Q29va2llIG1fY29yZUNvb2tpZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRkYTU3MWVhMDY0YzQ0OTI5OTJkZDM4Zjg4N2Zl
NTUyNDBhOWZhYjIuLjE4YTMyYWNjMzQwOTA0ZWY2MTI1MjM5MTZjMDEwNTE2NTYxOWYzNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEyMzEsNiArMTIzMSw5IEBACiAJCTk5MEQyOEJCMUM2NTM5RDMwMDk4Njk3NyAvKiBBdXRv
bWF0aW9uU2Vzc2lvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTkwRDI4QjcxQzY1MzlBMDAwOTg2OTc3IC8qIEF1dG9tYXRpb25TZXNzaW9u
Q2xpZW50LmggKi87IH07CiAJCTk5MEQyOEJDMUM2NTM5REEwMDk4Njk3NyAvKiBBdXRvbWF0aW9u
U2Vzc2lvbkNsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk5MEQyOEI4MUM2NTM5QTAwMDk4Njk3NyAvKiBBdXRvbWF0aW9uU2Vzc2lvbkNsaWVu
dC5tbSAqLzsgfTsKIAkJOTkwRDI4QzAxQzY1NTNGMTAwOTg2OTc3IC8qIEFQSUF1dG9tYXRpb25T
ZXNzaW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTBEMjhCMzFDNjUyNkQ0MDA5ODY5NzcgLyogQVBJQXV0b21hdGlvblNlc3Npb25DbGll
bnQuaCAqLzsgfTsKKwkJOTk0MENGMTAxQ0I2RTg2MDAwNDU1MEExIC8qIFdLQ29va2llLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTQwQ0YwQTFDQjZE
N0FGMDA0NTUwQTEgLyogV0tDb29raWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk5OTQwQ0YxMTFDQjZFODZGMDA0NTUwQTEgLyogV0tDb29raWUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk0MENG
MEIxQ0I2RDgwRDAwNDU1MEExIC8qIFdLQ29va2llLmNwcCAqLzsgfTsKKwkJOTk0MENGMTIxQ0I2
RTg3NTAwNDU1MEExIC8qIFdlYkNvb2tpZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OTQwQ0YwQzFDQjZEQUMwMDA0NTUwQTEgLyogV2ViQ29va2ll
LmNwcCAqLzsgfTsKIAkJOTk1NUE2RUMxQzc5ODBDMjAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25T
ZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OTU1QTZFQjFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uaCAqLzsgfTsK
IAkJOTk1NUE2RUQxQzc5ODBDQTAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkVBMUM3
OTgwQkIwMEVCNkE5MyAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgKi87IH07CiAJCTk5NTVB
NkVGMUM3OTgxMDgwMEVCNkE5MyAvKiBBdXRvbWF0aW9uLmpzb24gaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZFOTFDNzk4MEJCMDBFQjZBOTMgLyog
QXV0b21hdGlvbi5qc29uICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0zMjY1LDYgKzMyNjgsMTAgQEAKIAkJOTkwRDI4QjMxQzY1MjZENDAwOTg2OTc3
IC8qIEFQSUF1dG9tYXRpb25TZXNzaW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFQSUF1dG9tYXRpb25TZXNzaW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk5MEQyOEI3MUM2NTM5QTAwMDk4Njk3NyAvKiBBdXRvbWF0aW9uU2Vzc2lv
bkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRvbWF0aW9uU2Vz
c2lvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTBEMjhCODFDNjUz
OUEwMDA5ODY5NzcgLyogQXV0b21hdGlvblNlc3Npb25DbGllbnQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk0MENGMEExQ0I2RDdBRjAwNDU1MEExIC8qIFdL
Q29va2llLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29va2llLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NDBDRjBCMUNCNkQ4MEQwMDQ1NTBBMSAvKiBX
S0Nvb2tpZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0Nvb2tp
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NDBDRjBDMUNCNkRBQzAwMDQ1
NTBBMSAvKiBXZWJDb29raWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViQ29va2llLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk0MENGMEQx
Q0I2REFDMDAwNDU1MEExIC8qIFdlYkNvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJDb29raWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk1NUE2
RTkxQzc5ODBCQjAwRUI2QTkzIC8qIEF1dG9tYXRpb24uanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuanNv
bjsgcGF0aCA9IEF1dG9tYXRpb24uanNvbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTk1NUE2RUExQzc5ODBCQjAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk1NUE2RUIxQzc5ODBCQjAwRUI2QTkz
IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01ODkyLDYgKzU4OTksOCBAQAogCQkJCTUxQTg0Q0UyMTI3RjM4NkIwMENBNkVBNCAvKiBXZWJD
b250ZXh0TWVudVByb3h5LmNwcCAqLywKIAkJCQk1MUFDQkI4MTEyN0E4QkFEMDBEMjAzQjkgLyog
V2ViQ29udGV4dE1lbnVQcm94eS5oICovLAogCQkJCUJDRjRERTI0MTY4RkE0NDgwMEM5NEFGQyAv
KiBXZWJDb250ZXh0U3VwcGxlbWVudC5oICovLAorCQkJCTk5NDBDRjBDMUNCNkRBQzAwMDQ1NTBB
MSAvKiBXZWJDb29raWUuY3BwICovLAorCQkJCTk5NDBDRjBEMUNCNkRBQzAwMDQ1NTBBMSAvKiBX
ZWJDb29raWUuaCAqLywKIAkJCQkzMzA5MzQ1MjEzMTVCOTc1MDA5N0E3QkMgLyogV2ViQ29va2ll
TWFuYWdlclByb3h5LmNwcCAqLywKIAkJCQkzMzA5MzQ1MzEzMTVCOTc1MDA5N0E3QkMgLyogV2Vi
Q29va2llTWFuYWdlclByb3h5LmggKi8sCiAJCQkJMzMwOTM0NTQxMzE1Qjk3NTAwOTdBN0JDIC8q
IFdlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKQEAgLTYwNDMsNiArNjA1Miw4
IEBACiAJCQkJQkM2NDZDMTkxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0ZvcndhcmRMaXN0SXRl
bVJlZi5oICovLAogCQkJCUJDNjQ2QzE2MTFERDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tGb3J3YXJk
TGlzdFJlZi5jcHAgKi8sCiAJCQkJQkM2NDZDMTcxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0Zv
cndhcmRMaXN0UmVmLmggKi8sCisJCQkJOTk0MENGMEIxQ0I2RDgwRDAwNDU1MEExIC8qIFdLQ29v
a2llLmNwcCAqLywKKwkJCQk5OTQwQ0YwQTFDQjZEN0FGMDA0NTUwQTEgLyogV0tDb29raWUuaCAq
LywKIAkJCQlCQ0I5RTI0QTExMjBFMTVDMDBBMTM3RTAgLyogV0tDb250ZXh0LmNwcCAqLywKIAkJ
CQlCQ0I5RTI0OTExMjBFMTVDMDBBMTM3RTAgLyogV0tDb250ZXh0LmggKi8sCiAJCQkJMUFFNTJG
OTMxOTIwMUY2QjAwQTFGQTM3IC8qIFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuY3BwICovLApA
QCAtNzg4Myw2ICs3ODk0LDcgQEAKIAkJCQlDNTQyNTZCNTE4QkVDMThDMDBERTQxNzkgLyogV0tG
b3JtSW5wdXRDb250cm9sLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTQyNTZCNzE4QkVDMThDMDBE
RTQxNzkgLyogV0tGb3JtUGVyaXBoZXJhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU0MjU2Qjgx
OEJFQzE4QzAwREU0MTc5IC8qIFdLRm9ybVBvcG92ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5
NDBDRjEwMUNCNkU4NjAwMDQ1NTBBMSAvKiBXS0Nvb2tpZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzU0MjU2QkExOEJFQzE4QzAwREU0MTc5IC8qIFdLRm9ybVNlbGVjdENvbnRyb2wuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDMTQyNkVFMUMyM0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc1N1
cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTVBMTIxNEVERjQwMDBCOThFQiAv
KiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLApAQCAtOTM3NCw2ICs5
Mzg2LDcgQEAKIAkJCQk1MUE5RTEwQTEzMTVDRDE4MDA5RTcwMzEgLyogV0tLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3Mjk3RjlFMUMxN0JCRUEwMDNGMDcz
NSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDOThDNDhBOTFCNkZENUI1MDAxNDUxMDMgLyogV0tNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTk0MENGMTIxQ0I2RTg3NTAwNDU1MEExIC8qIFdlYkNv
b2tpZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDOUNENDM5RTFCNEIwMjUzMDAyMzlFMzMgLyog
V0tNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzVGRDEy
NEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM0MDc1RkYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZURpY3Rpb25hcnkuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC05Mzk5LDYgKzk0MTIsNyBAQAogCQkJCTM3QkYyRjA3MTk0N0RFQjQwMDcy
M0M0OCAvKiBXS05TVVJMUmVxdWVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjAxMTI0
RkYwMjcwMDY4RjIwQSAvKiBXS051bWJlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0Q1RUJC
ODE3NDZBMTVCMDAwQzFDNDUgLyogV0tPYmpDVHlwZVdyYXBwZXJSZWYubW0gaW4gU291cmNlcyAq
LywKKwkJCQk5OTQwQ0YxMTFDQjZFODZGMDA0NTUwQTEgLyogV0tDb29raWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzc0NDM2ODgxODIwRTcyNDAwNDk1NzlGIC8qIFdLT2JqZWN0Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM4NTgwNjMxMkI4NTA1NzAwRURFQjJFIC8qIFdLT3BlblBhbmVsUGFy
YW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzg1ODA2MjEyQjg1MDU3MDBFREVCMkUg
LyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1NjY3ODU0OWVlZDcx
ZjEyYzE1NDY0ZmY0ODk0Mzc1MzdmODJmNGM1Li5mZjY2MzdkYjhmZmJjYjM0NjkzYWFmMWRkYTUx
OTllODVlZjU4ZWNhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTYtMDQtMDcgIEJyaWFuIEJ1cmcgIDxiYnVyZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgV3JpdGUgdGVzdHMgZm9yIFdlYkNvb2tpZU1hbmFnZXI6OmFk
ZENvb2tpZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTYzNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Db29raWVNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZEdldFRlc3RIVFRQQ29va2llQWNjZXB0UG9s
aWN5KTogRGVsZXRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZEdldFVzZXJIVFRQQ29v
a2llQWNjZXB0UG9saWN5KTogRGVsZXRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZEZp
bmlzaExvYWRGb3JGcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tDb29r
aWVNYW5hZ2VyQ2hhbmdlQ29va2llQWNjZXB0UG9saWN5LmNwcDogQ29waWVkIGZyb20gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0Nvb2tpZU1hbmFnZXIuY3BwLgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6ZGlkR2V0VGVzdEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6ZGlkR2V0VXNlckhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9XS0Nvb2tpZU1hbmFnZXJTZXRDb29raWUuY3BwOiBSZW5hbWVkIGZyb20gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL0Nvb2tpZU1hbmFnZXIuY3BwLgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6Y29va2llc0RpZENoYW5nZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRG
aW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIw
MTYtMDQtMDYgIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIFVwZGF0ZSBteSBwcmltYXJ5IGVtYWlsIGFkZHJlc3MgYW5kIGV4cGVydGlz
ZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmI1ODQ4NTI2ZGM2Y2Y4YzgyZTk5MWEzMmU4
NTg2ODZjYTM2YmY0NS4uZTcyMzk1ZWZmMjZmMzRjYzUyNmQ4ZWMzODgwMzQ1OTA5ZWZiZTRkNSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4MSw3ICsxODEsNyBAQAogCQk3Q0NFN0VFNTFB
NDExQUU2MDA0NDdDNEMgLyogQ2xvc2VUaGVuVGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOEREQUE5MTczNURFMUQwMEVBNUFDMCAv
KiBDbG9zZVRoZW5UZXJtaW5hdGUuY3BwICovOyB9OwogCQk3Q0NFN0VFNjFBNDExQUU2MDA0NDdD
NEMgLyogQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTUwQUExQzFBMkE0RTcwMDBGNEMzNDUgLyogQ2xv
c2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAgKi87IH07CiAJCTdDQ0U3RUU3MUE0MTFBRTYwMDQ0
N0M0QyAvKiBDYW5IYW5kbGVSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjQ2RDk4MTMyRjFGRTEwMEI1NkQ3QyAvKiBDYW5IYW5kbGVS
ZXF1ZXN0LmNwcCAqLzsgfTsKLQkJN0NDRTdFRTgxQTQxMUFFNjAwNDQ3QzRDIC8qIENvb2tpZU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjZGM0YyOTAxMzM0MkZFQjAwQTZCRjE5IC8qIENvb2tpZU1hbmFnZXIuY3BwICovOyB9OworCQk3
Q0NFN0VFODFBNDExQUU2MDA0NDdDNEMgLyogV0tDb29raWVNYW5hZ2VyQ2hhbmdlQ29va2llQWNj
ZXB0UG9saWN5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY2RjNGMjkwMTMzNDJGRUIwMEE2QkYxOSAvKiBXS0Nvb2tpZU1hbmFnZXJDaGFuZ2VDb29r
aWVBY2NlcHRQb2xpY3kuY3BwICovOyB9OwogCQk3Q0NFN0VFOTFBNDExQUU2MDA0NDdDNEMgLyog
RGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY2QjdCRTkzMTc0NjkxRUYwMDhBMzQ0NSAvKiBEaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHMuY3BwICovOyB9OwogCQk3Q0NFN0VFQTFBNDExQUU2MDA0NDdDNEMgLyog
RGlkTm90SGFuZGxlS2V5RG93bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzMxNDA3QjE3QjQ0MTkwMDBGMDgzQjEgLyogRGlkTm90SGFuZGxlS2V5
RG93bi5jcHAgKi87IH07CiAJCTdDQ0U3RUVCMUE0MTFBRTYwMDQ0N0M0QyAvKiBEb2N1bWVudFN0
YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNCNjgwM0YxMjZGQkZFMTAwNjQyQTYxIC8qIERvY3VtZW50U3Rh
cnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAgKi87IH07CkBAIC0yOTUsNiArMjk1LDcgQEAKIAkJ
OTNGMURCMzQxNERBMjA4NzAwMjRDMzYyIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGMURCMzMxNERBMjA4NzAwMjRDMzYyIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dF9CdW5kbGUuY3BwICovOyB9OwogCQk5M0YxREI1NzE0REIxQjg0MDAyNEMzNjIgLyogTmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFEQjU2MTREQjFCODQwMDI0QzM2
MiAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlsc19CdW5kbGUuY3BwICovOyB9
OwogCQk5M0Y3RTg2RjE0REM4RTVDMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi87IH07CisJCTk5NDBDRjBGMUNCNkU3
NTcwMDQ1NTBBMSAvKiBXS0Nvb2tpZU1hbmFnZXJTZXRDb29raWUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk0MENGMEUxQ0I2RTc1NzAwNDU1MEEx
IC8qIFdLQ29va2llTWFuYWdlclNldENvb2tpZS5jcHAgKi87IH07CiAJCTlCMDc4NkEzMUM1ODgz
MEYwMEQxNTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwNzg2QTIxQzU4
ODMwRjAwRDE1OUUzIC8qIEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAg
Ki87IH07CiAJCTlCMDc4NkE1MUM1ODg1QzMwMEQxNTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VB
bGxTaGFkb3dSb290T3Blbl9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUIwNzg2QTQxQzU4ODVDMzAwRDE1OUUzIC8qIEluamVjdGVkQnVu
ZGxlTWFrZUFsbFNoYWRvd1Jvb3RPcGVuX0J1bmRsZS5jcHAgKi87IH07CiAJCTlCMjZGQ0NBMTU5
RDE2REUwMENDMzc2NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI2RkNCNDE1
OUQxNUU3MDBDQzM3NjUgLyogSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgKi87IH07
CkBAIC03MzIsNiArNzMzLDcgQEAKIAkJOTNGMURCNTYxNERCMUI4NDAwMjRDMzYyIC8qIE5ld0Zp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZhaWxzX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWls
c19CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y3RTg2QjE0REM4
RTREMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ld0ZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dEZyYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjdF
ODZFMTREQzhFNUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFt
ZXNfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ld0Zp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5OTQwQ0YwRTFDQjZFNzU3MDA0NTUwQTEgLyogV0tDb29raWVNYW5h
Z2VyU2V0Q29va2llLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdL
Q29va2llTWFuYWdlclNldENvb2tpZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCMDc4NkEyMUM1ODgzMEYwMEQxNTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dS
b290c09wZW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0
ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOUIwNzg2QTQxQzU4ODVDMzAwRDE1OUUzIC8qIEluamVjdGVkQnVuZGxlTWFrZUFs
bFNoYWRvd1Jvb3RPcGVuX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290T3Blbl9CdW5kbGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjI2RkM2QjE1OUQwNjEwMDBDQzM3NjUgLyog
SFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtOTAwLDcgKzkwMiw3IEBACiAJCUY2QjdCRTkyMTc0NjkxRUYw
MDhBMzQ0NSAvKiBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNfQnVuZGxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpZEFzc29jaWF0ZUZvcm1Db250cm9sc19CdW5kbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNkI3QkU5MzE3NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpZEFzc29jaWF0ZUZvcm1D
b250cm9scy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2QjdCRTk2MTc0NjlC
N0UwMDhBMzQ0NSAvKiBhc3NvY2lhdGUtZm9ybS1jb250cm9scy5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImFz
c29jaWF0ZS1mb3JtLWNvbnRyb2xzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlGNkYzRjI5MDEzMzQyRkVCMDBBNkJGMTkgLyogQ29va2llTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb29raWVNYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjZGM0YyOTAxMzM0MkZFQjAwQTZCRjE5IC8qIFdLQ29va2ll
TWFuYWdlckNoYW5nZUNvb2tpZUFjY2VwdFBvbGljeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXS0Nvb2tpZU1hbmFnZXJDaGFuZ2VDb29raWVBY2NlcHRQb2xpY3ku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkY0OUM2NjE1NTQ1QzhEMDAwN0Yz
OUQgLyogRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkY0OUM2NzE1NTQ1QzhEMDAwN0Yz
OUQgLyogRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZGRERERDIxNDI0MUFENDAwNEYxNzI5IC8qIFByaXZhdGVC
cm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxi
YWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMDcsNyArMTIwOSw2IEBA
CiAJCQkJQkMyNDZEOTcxMzJGMUZFMTAwQjU2RDdDIC8qIENhbkhhbmRsZVJlcXVlc3RfQnVuZGxl
LmNwcCAqLywKIAkJCQkxQTUwQUExQzFBMkE0RTcwMDBGNEMzNDUgLyogQ2xvc2VGcm9tV2l0aGlu
Q3JlYXRlUGFnZS5jcHAgKi8sCiAJCQkJN0M4RERBQTkxNzM1REUxRDAwRUE1QUMwIC8qIENsb3Nl
VGhlblRlcm1pbmF0ZS5jcHAgKi8sCi0JCQkJRjZGM0YyOTAxMzM0MkZFQjAwQTZCRjE5IC8qIENv
b2tpZU1hbmFnZXIuY3BwICovLAogCQkJCUY2QjdCRTkzMTc0NjkxRUYwMDhBMzQ0NSAvKiBEaWRB
c3NvY2lhdGVGb3JtQ29udHJvbHMuY3BwICovLAogCQkJCUY2QjdCRTkyMTc0NjkxRUYwMDhBMzQ0
NSAvKiBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNfQnVuZGxlLmNwcCAqLywKIAkJCQk5MzMxNDA3
QjE3QjQ0MTkwMDBGMDgzQjEgLyogRGlkTm90SGFuZGxlS2V5RG93bi5jcHAgKi8sCkBAIC0xMjQ0
LDYgKzEyNDUsNyBAQAogCQkJCTMzREM4OTEwMTQxOTUzQTMwMDc0N0VGNyAvKiBMb2FkQ2FuY2Vs
ZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3BwICovLAogCQkJCTMzREM4OTEzMTQxOTU3OUYw
MDc0N0VGNyAvKiBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNw
cCAqLywKIAkJCQk4QUEyOEMxOTE2RDJGQTdCMDAyRkY0REIgLyogTG9hZFBhZ2VPbkNyYXNoLmNw
cCAqLywKKwkJCQk3QTU2MjMxMDFBRDVBRjNFMDA5NkI5MjAgLyogTWVudVR5cGVzRm9yTW91c2VF
dmVudHMuY3BwICovLAogCQkJCTUxQ0I0QUQ3MUIzQTA3OUMwMEMxQjFDNiAvKiBNb2RhbEFsZXJ0
c1NQSS5jcHAgKi8sCiAJCQkJMzNCRTVBRjQxMzdCNUE2QzAwNzA1ODEzIC8qIE1vdXNlTW92ZUFm
dGVyQ3Jhc2guY3BwICovLAogCQkJCTMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1v
dmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgKi8sCkBAIC0xMjkzLDcgKzEyOTUsOCBAQAogCQkJCTdD
NTRBNEJDMUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwICovLAogCQkJ
CTdDNTRBNEJGMUFBMTFDRTQwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGVfQnVuZGxlLmNw
cCAqLywKIAkJCQlBMUZERkQyRTE5QzI4OEJCMDA1MTQ4QTQgLyogV0tJbWFnZUNyZWF0ZUNHSW1h
Z2VDcmFzaC5jcHAgKi8sCi0JCQkJN0E1NjIzMTAxQUQ1QUYzRTAwOTZCOTIwIC8qIE1lbnVUeXBl
c0Zvck1vdXNlRXZlbnRzLmNwcCAqLywKKwkJCQlGNkYzRjI5MDEzMzQyRkVCMDBBNkJGMTkgLyog
V0tDb29raWVNYW5hZ2VyQ2hhbmdlQ29va2llQWNjZXB0UG9saWN5LmNwcCAqLywKKwkJCQk5OTQw
Q0YwRTFDQjZFNzU3MDA0NTUwQTEgLyogV0tDb29raWVNYW5hZ2VyU2V0Q29va2llLmNwcCAqLywK
IAkJCQk3Qzg5RDJBQTFBNjlCODBEMDAzQTVGREUgLyogV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAg
Ki8sCiAJCQkJNTJENjczRUMxQUZCMTI2ODAwRkExOUZFIC8qIFdLUGFnZUNvcHlTZXNzaW9uU3Rh
dGVXaXRoRmlsdGVyaW5nLmNwcCAqLywKIAkJCQk1MUU5MzAxNjE1NkIxM0UxMDA0Qzk5REYgLyog
V0tQYWdlR2V0U2NhbGVGYWN0b3JOb3RaZXJvLmNwcCAqLywKQEAgLTE3NTgsNyArMTc2MSw3IEBA
CiAJCQkJN0NDRTdFQjcxQTQxMUE3RTAwNDQ3QzRDIC8qIENsb3NlTmV3V2luZG93SW5OYXZpZ2F0
aW9uUG9saWN5RGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFNTFBNDExQUU2
MDA0NDdDNEMgLyogQ2xvc2VUaGVuVGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
Q0U3RUI4MUE0MTFBN0UwMDQ0N0M0QyAvKiBDb250ZXh0TWVudUNhbkNvcHlVUkwubW0gaW4gU291
cmNlcyAqLywKLQkJCQk3Q0NFN0VFODFBNDExQUU2MDA0NDdDNEMgLyogQ29va2llTWFuYWdlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk3Q0NFN0VFODFBNDExQUU2MDA0NDdDNEMgLyogV0tDb29r
aWVNYW5hZ2VyQ2hhbmdlQ29va2llQWNjZXB0UG9saWN5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0U3RUFDMUE0MTFBMzQwMDQ0N0M0QyAvKiBDb3VudGVycy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3Q0NFN0VEQjFBNDExQTkyMDA0NDdDNEMgLyogQ1NTUGFyc2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGM0I5NEE3MUE3NzI2NzQwMERFMzI3MiAvKiBXS1dlYlZpZXdFdmFsdWF0ZUph
dmFTY3JpcHQubW0gaW4gU291cmNlcyAqLywKQEAgLTE5NzYsNiArMTk3OSw3IEBACiAJCQkJQTFD
NEZCNkUxQkFDQ0U1MDAwMzc0MkQwIC8qIFF1aWNrTG9vay5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUxQjFFRThFMUM4MEY1ODgwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTdBNTYyMzExMUFENUFGM0UwMDk2QjkyMCAvKiBNZW51VHlwZXNGb3JN
b3VzZUV2ZW50cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OTQwQ0YwRjFDQjZFNzU3MDA0NTUw
QTEgLyogV0tDb29raWVNYW5hZ2VyU2V0Q29va2llLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
QUQxOUY3MUM3Q0UyMDMwMDgzMUU0NyAvKiBDb2RpbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QTlGQjZDRTFDQTM0QkU1MDA5NjYxMjQgLyogRWFybHlLVk9DcmFzaC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTlCMDc4NkEzMUM1ODgzMEYwMEQxNTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxT
aGFkb3dSb290c09wZW4uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29va2llTWFuYWdlci5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29va2llTWFuYWdlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQyMzFlMGU3NTE5MzZmMmVjZTY0M2IyMDE5M2FkYTJkYmRlM2I1Y2EuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL0Nvb2tpZU1hbmFnZXIuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsOTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFdL
X0hBVkVfQ19TUEkKLQotI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAi
UGxhdGZvcm1XZWJWaWV3LmgiCi0jaW5jbHVkZSA8V2ViS2l0L1dLQ29va2llTWFuYWdlci5oPgot
I2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgotCi1uYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7Ci0KLXN0YXRpYyBib29sIHRlc3REb25lOwotLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHBvbGlj
eSBvbiB0aGUgbWFjaGluZSBydW5uaW5nIHRoZSB0ZXN0IGlzIG5vdCBjaGFuZ2VkIGFmdGVyIHJ1
bm5pbmcgdGhlIHRlc3QuCi1zdGF0aWMgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHVzZXJQb2xp
Y3k7Ci1zdGF0aWMgV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHRlc3RQb2xpY3k7Ci1zdGF0aWMg
V0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiB3a0NvbnRleHQ7Ci0KLXN0YXRpYyB2b2lkIGRpZEdl
dFRlc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xp
Y3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCi17Ci0gICAgRVhQRUNUX0VRKHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGNvbnRleHQpOwotICAgIEVYUEVDVF9FUSh0ZXN0
UG9saWN5LCBwb2xpY3kpOwotCi0gICAgV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIg
PSBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHdrQ29udGV4dC5nZXQoKSk7Ci0gICAgV0tDb29r
aWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29raWVNYW5hZ2VyLCB1c2VyUG9s
aWN5KTsKLQotICAgIHRlc3REb25lID0gdHJ1ZTsKLX0KLQotc3RhdGljIHZvaWQgZGlkR2V0VXNl
ckhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbGljeSwg
V0tFcnJvclJlZiwgdm9pZCogY29udGV4dCkKLXsKLSAgICBFWFBFQ1RfRVEocmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4oMHgxMjM0NTc4KSwgY29udGV4dCk7Ci0KLSAgICB1c2VyUG9saWN5ID0gcG9s
aWN5OwotCi0gICAgLy8gTWFrZSBzdXJlIHRvIGNob29zZSBhIHBvbGljeSBkaWZmZXJlbnQgZnJv
bSB0aGUgcG9saWN5IHRoZSB1c2VyIGN1cnJlbnRseSBoYXMgc2V0LgotICAgIHRlc3RQb2xpY3kg
PSAodXNlclBvbGljeSArIDEpICUgMzsKLSAgICBXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFu
YWdlciA9IFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIod2tDb250ZXh0LmdldCgpKTsKLSAgICBX
S0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIsIHRl
c3RQb2xpY3kpOwotICAgIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
Y29va2llTWFuYWdlciwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMHgxMjM0NTc4KSwgZGlkR2V0
VGVzdEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwotfQotCi1zdGF0aWMgdm9pZCBkaWRGaW5pc2hM
b2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQq
KQotewotICAgIFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyID0gV0tDb250ZXh0R2V0
Q29va2llTWFuYWdlcih3a0NvbnRleHQuZ2V0KCkpOwotICAgIFdLQ29va2llTWFuYWdlckdldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koY29va2llTWFuYWdlciwgcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4oMHgxMjM0NTc4KSwgZGlkR2V0VXNlckhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwotfQotCi1U
RVNUKFdlYktpdDIsIENvb2tpZU1hbmFnZXIpCi17Ci0gICAgd2tDb250ZXh0LmFkb3B0KFdLQ29u
dGV4dENyZWF0ZSgpKTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyh3a0NvbnRleHQuZ2V0
KCkpOwotCi0gICAgV0tQYWdlTG9hZGVyQ2xpZW50VjAgbG9hZGVyQ2xpZW50OwotICAgIG1lbXNl
dCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7Ci0KLSAgICBsb2FkZXJD
bGllbnQuYmFzZS52ZXJzaW9uID0gMDsKLSAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZv
ckZyYW1lID0gZGlkRmluaXNoTG9hZEZvckZyYW1lOwotCi0gICAgV0tQYWdlU2V0UGFnZUxvYWRl
ckNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJmxvYWRlckNsaWVudC5iYXNlKTsKLQotICAgIFdLUGFn
ZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJp
bmcoImFib3V0OmJsYW5rIikpLmdldCgpKTsKLQotICAgIFV0aWw6OnJ1bigmdGVzdERvbmUpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLQ29va2llTWFuYWdlckNoYW5nZUNv
b2tpZUFjY2VwdFBvbGljeS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
V0tDb29raWVNYW5hZ2VyQ2hhbmdlQ29va2llQWNjZXB0UG9saWN5LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
ODI1Y2U1ZWIwNDczODE3NWFmZGU1NTU5YWU0OWVmN2E2N2QzZWI3Ci0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLQ29va2llTWFuYWdlckNoYW5n
ZUNvb2tpZUFjY2VwdFBvbGljeS5jcHAKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hBVkVfQ19TUEkKKworI2luY2x1ZGUgIlBsYXRm
b3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSA8
V2ViS2l0L1dLQ29va2llTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5o
PgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIHRlc3REb25lOwor
Ly8gTWFrZSBzdXJlIHRoYXQgdGhlIHBvbGljeSBvbiB0aGUgbWFjaGluZSBydW5uaW5nIHRoZSB0
ZXN0IGlzIG5vdCBjaGFuZ2VkIGFmdGVyIHJ1bm5pbmcgdGhlIHRlc3QuCitzdGF0aWMgV0tIVFRQ
Q29va2llQWNjZXB0UG9saWN5IHVzZXJQb2xpY3k7CitzdGF0aWMgV0tIVFRQQ29va2llQWNjZXB0
UG9saWN5IHRlc3RQb2xpY3k7CitzdGF0aWMgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiB3a0Nv
bnRleHQ7CisKK3N0YXRpYyB2b2lkIGRpZEdldFRlc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KFdL
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQp
Cit7CisgICAgRVhQRUNUX0VRKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGNv
bnRleHQpOworICAgIEVYUEVDVF9FUSh0ZXN0UG9saWN5LCBwb2xpY3kpOworCisgICAgV0tDb29r
aWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIgPSBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHdr
Q29udGV4dC5nZXQoKSk7CisgICAgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBv
bGljeShjb29raWVNYW5hZ2VyLCB1c2VyUG9saWN5KTsKKworICAgIHRlc3REb25lID0gdHJ1ZTsK
K30KKworc3RhdGljIHZvaWQgZGlkR2V0VXNlckhUVFBDb29raWVBY2NlcHRQb2xpY3koV0tIVFRQ
Q29va2llQWNjZXB0UG9saWN5IHBvbGljeSwgV0tFcnJvclJlZiwgdm9pZCogY29udGV4dCkKK3sK
KyAgICBFWFBFQ1RfRVEocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMHgxMjM0NTc4KSwgY29udGV4
dCk7CisKKyAgICB1c2VyUG9saWN5ID0gcG9saWN5OworCisgICAgLy8gTWFrZSBzdXJlIHRvIGNo
b29zZSBhIHBvbGljeSBkaWZmZXJlbnQgZnJvbSB0aGUgcG9saWN5IHRoZSB1c2VyIGN1cnJlbnRs
eSBoYXMgc2V0LgorICAgIHRlc3RQb2xpY3kgPSAodXNlclBvbGljeSArIDEpICUgMzsKKyAgICBX
S0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciA9IFdLQ29udGV4dEdldENvb2tpZU1hbmFn
ZXIod2tDb250ZXh0LmdldCgpKTsKKyAgICBXS0Nvb2tpZU1hbmFnZXJTZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIsIHRlc3RQb2xpY3kpOworICAgIFdLQ29va2llTWFuYWdl
ckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koY29va2llTWFuYWdlciwgcmVpbnRlcnByZXRfY2Fz
dDx2b2lkKj4oMHgxMjM0NTc4KSwgZGlkR2V0VGVzdEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwor
fQorCitzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1l
UmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKQoreworICAgIFdLQ29va2llTWFuYWdlclJlZiBj
b29raWVNYW5hZ2VyID0gV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcih3a0NvbnRleHQuZ2V0KCkp
OworICAgIFdLQ29va2llTWFuYWdlckdldEhUVFBDb29raWVBY2NlcHRQb2xpY3koY29va2llTWFu
YWdlciwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMHgxMjM0NTc4KSwgZGlkR2V0VXNlckhUVFBD
b29raWVBY2NlcHRQb2xpY3kpOworfQorCitURVNUKFdLQ29va2llTWFuYWdlciwgQ2hhbmdlVXNl
ckhUVFBDb29raWVBY2NlcHRQb2xpY3kpCit7CisgICAgd2tDb250ZXh0LmFkb3B0KFdLQ29udGV4
dENyZWF0ZSgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyh3a0NvbnRleHQuZ2V0KCkp
OworCisgICAgV0tQYWdlTG9hZGVyQ2xpZW50VjAgbG9hZGVyQ2xpZW50OworICAgIG1lbXNldCgm
bG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CisKKyAgICBsb2FkZXJDbGll
bnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZy
YW1lID0gZGlkRmluaXNoTG9hZEZvckZyYW1lOworCisgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNs
aWVudCh3ZWJWaWV3LnBhZ2UoKSwgJmxvYWRlckNsaWVudC5iYXNlKTsKKworICAgIFdLUGFnZUxv
YWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmco
ImFib3V0OmJsYW5rIikpLmdldCgpKTsKKworICAgIFV0aWw6OnJ1bigmdGVzdERvbmUpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLQ29va2llTWFuYWdlclNldENvb2tpZS5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tDb29raWVNYW5hZ2VyU2V0
Q29va2llLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzNjMTk5MTg5MTM0OTczYjAwOTc5NzZmODY0NTQ1OWNl
MzNmMmI1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL1dLQ29va2llTWFuYWdlclNldENvb2tpZS5jcHAKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hBVkVfQ19TUEkKKworI2luY2x1
ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisj
aW5jbHVkZSA8V2ViS2l0L1dLQ29va2llLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ29va2llTWFu
YWdlci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIHRlc3REb25lOworc3RhdGljIFdLUmV0YWluUHRy
PFdLQ29udGV4dFJlZj4gd2tDb250ZXh0OworCitzdGF0aWMgdm9pZCBjb29raWVzRGlkQ2hhbmdl
KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBjb25zdCB2b2lkKikKK3sKKyAgICBX
S0Nvb2tpZU1hbmFnZXJTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyhjb29raWVNYW5hZ2VyKTsK
KworICAgIHRlc3REb25lID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZv
ckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKikKK3sK
KyAgICBXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciA9IFdLQ29udGV4dEdldENvb2tp
ZU1hbmFnZXIod2tDb250ZXh0LmdldCgpKTsKKworICAgIFdLQ29va2llTWFuYWdlckNsaWVudFYw
IGNvb2tpZU1hbmFnZXJDbGllbnQ7CisgICAgbWVtc2V0KCZjb29raWVNYW5hZ2VyQ2xpZW50LCAw
LCBzaXplb2YoY29va2llTWFuYWdlckNsaWVudCkpOworCisgICAgY29va2llTWFuYWdlckNsaWVu
dC5iYXNlLnZlcnNpb24gPSAwOworICAgIGNvb2tpZU1hbmFnZXJDbGllbnQuY29va2llc0RpZENo
YW5nZSA9IGNvb2tpZXNEaWRDaGFuZ2U7CisKKyAgICBXS0Nvb2tpZU1hbmFnZXJTZXRDbGllbnQo
Y29va2llTWFuYWdlciwgJmNvb2tpZU1hbmFnZXJDbGllbnQuYmFzZSk7CisgICAgV0tDb29raWVN
YW5hZ2VyU3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKGNvb2tpZU1hbmFnZXIpOworCisgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGNvb2tpZU5hbWUgPSBVdGlsOjp0b1dLKCJ0ZXN0LW5h
bWUiKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gY29va2llVmFsdWUgPSBVdGlsOjp0
b1dLKCJ0ZXN0LXZhbHVlIik7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGNvb2tpZURv
bWFpbiA9IFV0aWw6OnRvV0soIm1hZGUtdXAtZG9tYWluLndlYmtpdC5vcmciKTsKKyAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gY29va2llUGF0aCA9IFV0aWw6OnRvV0soIm1hZGUtdXAtZG9t
YWluLndlYmtpdC5vcmciKTsKKworICAgIFdLQ29va2llUmVmIGNvb2tpZSA9IFdLQ29va2llQ3Jl
YXRlKGNvb2tpZU5hbWUuZ2V0KCksIGNvb2tpZVZhbHVlLmdldCgpLCBjb29raWVEb21haW4uZ2V0
KCksIGNvb2tpZVBhdGguZ2V0KCksIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworICAgIFdLQ29v
a2llTWFuYWdlclNldENvb2tpZShjb29raWVNYW5hZ2VyLCBjb29raWUpOworfQorCitURVNUKFdL
Q29va2llTWFuYWdlciwgU2V0Q29va2llKQoreworICAgIHdrQ29udGV4dC5hZG9wdChXS0NvbnRl
eHRDcmVhdGUoKSk7CisKKyAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBj
b25maWd1cmF0aW9uID0gYWRvcHRXSyhXS1BhZ2VDb25maWd1cmF0aW9uQ3JlYXRlKCkpOworICAg
IFdLUGFnZUNvbmZpZ3VyYXRpb25TZXRDb250ZXh0KGNvbmZpZ3VyYXRpb24uZ2V0KCksIGNvbnRl
eHQuZ2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLV2Vic2l0ZURhdGFTdG9yZVJlZj4gd2Vic2l0
ZURhdGFTdG9yZSA9IGFkb3B0V0soV0tXZWJzaXRlRGF0YVN0b3JlQ3JlYXRlTm9uUGVyc2lzdGVu
dERhdGFTdG9yZSgpKTsKKyAgICBXS1BhZ2VDb25maWd1cmF0aW9uU2V0V2Vic2l0ZURhdGFTdG9y
ZShjb25maWd1cmF0aW9uLmdldCgpLCB3ZWJzaXRlRGF0YVN0b3JlLmdldCgpKTsKKworICAgIFBs
YXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworCisgICAgV0tQYWdl
TG9hZGVyQ2xpZW50VjAgbG9hZGVyQ2xpZW50OworICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAw
LCBzaXplb2YobG9hZGVyQ2xpZW50KSk7CisKKyAgICBsb2FkZXJDbGllbnQuYmFzZS52ZXJzaW9u
ID0gMDsKKyAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lID0gZGlkRmluaXNo
TG9hZEZvckZyYW1lOworCisgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudCh3ZWJWaWV3LnBh
Z2UoKSwgJmxvYWRlckNsaWVudC5iYXNlKTsKKworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5w
YWdlKCksIGFkb3B0V0soV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFib3V0OmJsYW5rIikp
LmdldCgpKTsKKworICAgIFV0aWw6OnJ1bigmdGVzdERvbmUpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275960</attachid>
            <date>2016-04-07 16:50:52 -0700</date>
            <delta_ts>2016-04-08 14:07:05 -0700</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-156345-20160407165055.patch</filename>
            <type>text/plain</type>
            <size>44655</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODdiNjg2YzljMTM2NGQ4
ZjY4MTRiYjQ5MWJmMTI4NzU5MDQ1NjRhOS4uMTkzNzgyYzA4Y2JjNmMzZTg5ZjkyZjcyNGZmOGE3
ZTk2Mjk3ODQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDE2LTA0LTA3ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCisgICAgICAgIFdyaXRlIHRlc3RzIGZvciBXZWJD
b29raWVNYW5hZ2VyOjphZGRDb29raWUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRXhwb3NlIGEgY29va2llIG9iamVjdCB0byBDIFNQSSBzbyB0aGlz
IGNhbiBiZSB0ZXN0ZWQgdmlhIFRlc3RXZWJLaXRBUEkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSU9iamVjdC5oOiBBZGQgQ29va2llIHR5cGUuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dL
QmFzZS5oOiBBZGQgV0tDb29raWVSZWYuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oOiBBZGQgbWFwcGluZyBiZXR3ZWVuIFdLQ29va2llIGFuZCBXZWJDb29raWUuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb29raWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdL
Q29va2llR2V0VHlwZUlEKToKKyAgICAgICAgKFdLQ29va2llQ3JlYXRlKTogSnVzdCBhZGQgYSBj
cmVhdGUgbWV0aG9kLiBXZSBjYW4gYWRkIHByb3BlcnR5CisgICAgICAgIGdldCBhbmQgY29weSBt
ZXRob2RzIHdoZW4gdGhleSBhcmUgbmVlZGVkIGJ5IGxhdGVyIHRlc3RzLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZS5oOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwOgorICAgICAgICAoV0tDb29raWVNYW5hZ2VyU2V0Q29v
a2llRm9ySG9zdG5hbWUpOiBBZGRlZC4gRm9yd2FyZCB0byBXZWJDb29raWVNYW5hZ2VyUHJveHku
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5oOgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkNvb2tpZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJD
b29raWU6OldlYkNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZTo6fldlYkNvb2tp
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZTo6Y29va2llKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQ29va2llLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWU6OmNy
ZWF0ZSk6CisgICAgICAgIFRoaXMgaXMgYSB0aGluIHdyYXBwZXIgYXJvdW5kIFdlYkNvcmU6OkNv
b2tpZSB0aGF0J3Mgc3VpdGFibGUgZm9yCisgICAgICAgIGJhY2tpbmcgdGhlIFdLQ29va2llIEFQ
SSBvYmplY3QuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
IEFkZCBmaWxlcy4KKworMjAxNi0wNC0wNyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4K
KwogICAgICAgICBXZWIgQXV0b21hdGlvbjogaW1wbGVtZW50IEF1dG9tYXRpb24uYWRkU2luZ2xl
Q29va2llCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTYzMTkKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1NTg5NjA1PgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQVBJT2JqZWN0LmgKaW5kZXggN2Y5Zjc2MDc2OTMxNDFmODIzYTI1N2Q3ODNkOTI5Mjdi
ZWZmMmQ1YS4uMmRkMjg4YjQzNmJlYjgxOTQ0NDc3ZGU5OWY1YmZlNDFhODhjZTNhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xMDUsNiArMTA1LDcgQEAgcHVibGlj
OgogICAgICAgICBCYXR0ZXJ5U3RhdHVzLAogICAgICAgICBDYWNoZU1hbmFnZXIsCiAgICAgICAg
IENvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXIsCisgICAgICAgIENvb2tpZSwKICAgICAgICAgQ29v
a2llTWFuYWdlciwKICAgICAgICAgRG93bmxvYWQsCiAgICAgICAgIEZvcm1TdWJtaXNzaW9uTGlz
dGVuZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggNzI5NTc3ZGQ0ZDFk
ZDFmYjBmYWY5NTczMzljODMzNTI2OTA1MjQzMi4uYjExMzYwNjdiMGJkMWQ1NDljNWU3NzljOTlm
NTFlNTIyZmNjNDg2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtOTUs
NiArOTUsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Jlc291cmNlQ2FjaGVNYW5h
Z2VyKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyKiBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVu
ZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0NvbnRleHQqIFdLQ29udGV4dFJl
ZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ29udGV4dENvbmZpZ3VyYXRpb24qIFdL
Q29udGV4dENvbmZpZ3VyYXRpb25SZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0Nv
b2tpZSogV0tDb29raWVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0Nvb2tpZU1h
bmFnZXIqIFdLQ29va2llTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
Q3JlZGVudGlhbCogV0tDcmVkZW50aWFsUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tEb3dubG9hZCogV0tEb3dubG9hZFJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaAppbmRleCBhZDU4ZDY5MzA1YWE5YWIzYmM4YjdmMmI2YWZiYTIxOWJmOGE5
ZjM2Li4wZTQ1OWU0ZjMwOTc0OTdhNTBmYjg1ZjgyM2IyZGQyMzYxNzQxYWMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSAiUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVIaXRU
ZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0LmgiCisjaW5jbHVkZSAiV0tDb29raWUu
aCIKICNpbmNsdWRlICJXS0Nvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXS0NyZWRlbnRpYWxU
eXBlcy5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgpAQCAtODIsNiArODMsNyBAQCBjbGFzcyBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQmF0dGVyeU1hbmFnZXJQcm94eTsKIGNsYXNz
IFdlYkJhdHRlcnlTdGF0dXM7CiBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJv
eHk7CitjbGFzcyBXZWJDb29raWU7CiBjbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJveHk7CiBjbGFz
cyBXZWJDcmVkZW50aWFsOwogY2xhc3MgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5OwpA
QCAtMTIxLDYgKzEyMyw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0J1bmRsZUhpdFRlc3RSZXN1
bHRNZWRpYVR5cGUsIEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUmVmLCBXZWJDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDb250ZXh0UmVmLCBXZWJQcm9j
ZXNzUG9vbCkKIFdLX0FERF9BUElfTUFQUElORyhXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLCBB
UEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbikKK1dLX0FERF9BUElfTUFQUElORyhXS0Nvb2tp
ZVJlZiwgV2ViQ29va2llKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ29va2llTWFuYWdlclJlZiwg
V2ViQ29va2llTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ3JlZGVudGlhbFJl
ZiwgV2ViQ3JlZGVudGlhbCkKIFdLX0FERF9BUElfTUFQUElORyhXS0Rvd25sb2FkUmVmLCBEb3du
bG9hZFByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29va2llLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTc4OWQ0ZDFjODdjZjlmNjAwMTljYTNiNWViOGQzY2JmNzdiMTZjNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZS5j
cHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXS0Nvb2tpZS5oIgorCisjaW5jbHVkZSAiQVBJU3RyaW5nLmgiCisjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViQ29va2llLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CisKK1dLVHlwZUlEIFdLQ29va2llR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9B
UEkoV2ViQ29va2llOjpBUElUeXBlKTsKK30KKworV0tDb29raWVSZWYgV0tDb29raWVDcmVhdGUo
V0tTdHJpbmdSZWYgbmFtZSwgV0tTdHJpbmdSZWYgdmFsdWUsIFdLU3RyaW5nUmVmIGRvbWFpbiwg
V0tTdHJpbmdSZWYgcGF0aCwgZG91YmxlIGV4cGlyZXMsIGJvb2wgaHR0cE9ubHksIGJvb2wgc2Vj
dXJlLCBib29sIHNlc3Npb24pCit7CisgICAgV2ViQ29yZTo6Q29va2llIGNvcmVDb29raWU7Cisg
ICAgY29yZUNvb2tpZS5uYW1lID0gdG9JbXBsKG5hbWUpLT5zdHJpbmcoKTsKKyAgICBjb3JlQ29v
a2llLnZhbHVlID0gdG9JbXBsKHZhbHVlKS0+c3RyaW5nKCk7CisgICAgY29yZUNvb2tpZS5kb21h
aW4gPSB0b0ltcGwoZG9tYWluKS0+c3RyaW5nKCk7CisgICAgY29yZUNvb2tpZS5wYXRoID0gdG9J
bXBsKHBhdGgpLT5zdHJpbmcoKTsKKyAgICBjb3JlQ29va2llLmV4cGlyZXMgPSBleHBpcmVzOwor
ICAgIGNvcmVDb29raWUuaHR0cE9ubHkgPSBodHRwT25seTsKKyAgICBjb3JlQ29va2llLnNlY3Vy
ZSA9IHNlY3VyZTsKKyAgICBjb3JlQ29va2llLnNlc3Npb24gPSBzZXNzaW9uOworCisgICAgcmV0
dXJuIHRvQVBJKCZXZWJDb29raWU6OmNyZWF0ZShjb3JlQ29va2llKS5sZWFrUmVmKCkpOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGYw
Mzk2NjJjOGQxMzJiNGM4MjdmZTY1OTFlMDJkODk1YzU3MjkzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llLmgKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV0tDb29raWVfaAorI2RlZmluZSBXS0Nvb2tpZV9oCisK
KyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJu
ICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ29va2llR2V0VHlwZUlEKCk7
CisKK1dLX0VYUE9SVCBXS0Nvb2tpZVJlZiBXS0Nvb2tpZUNyZWF0ZShXS1N0cmluZ1JlZiBuYW1l
LCBXS1N0cmluZ1JlZiB2YWx1ZSwgV0tTdHJpbmdSZWYgZG9tYWluLCBXS1N0cmluZ1JlZiBwYXRo
LCBkb3VibGUgZXhwaXJlcywgYm9vbCBodHRwT25seSwgYm9vbCBzZWN1cmUsIGJvb2wgc2Vzc2lv
bik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS0Nvb2tp
ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFn
ZXIuY3BwCmluZGV4IGU0YTMwNjExYTA5ZGFmYjU2NzE1NzNlNzQ5YWM3ZDIwZWJkYWRlMzAuLjVj
NGJmMWRmYjBkOWNlNDgyODg5YTI3YzViZmIzM2NkY2I0MjMzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuY3BwCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW5jbHVkZSAiV0tDb29raWVNYW5hZ2VyLmgiCiAKICNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKKyNpbmNsdWRlICJXZWJDb29raWUuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2Vy
UHJveHkuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTQ2LDYgKzQ3LDExIEBAIHZv
aWQgV0tDb29raWVNYW5hZ2VyR2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoV0tDb29raWVNYW5hZ2Vy
UmVmIGNvb2tpZU1hbmFnZXJSZWYsCiAgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXJSZWYpLT5nZXRI
b3N0bmFtZXNXaXRoQ29va2llcyh0b0dlbmVyaWNDYWxsYmFja0Z1bmN0aW9uKGNvbnRleHQsIGNh
bGxiYWNrKSk7CiB9CiAKK3ZvaWQgV0tDb29raWVNYW5hZ2VyU2V0Q29va2llRm9ySG9zdG5hbWUo
V0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIsIFdLQ29va2llUmVmIGNvb2tpZSwgV0tT
dHJpbmdSZWYgaG9zdG5hbWUpCit7CisgICAgdG9JbXBsKGNvb2tpZU1hbmFnZXIpLT5hZGRDb29r
aWUodG9JbXBsKGNvb2tpZSktPmNvb2tpZSgpLCB0b0ltcGwoaG9zdG5hbWUpLT5zdHJpbmcoKSk7
Cit9CisKIHZvaWQgV0tDb29raWVNYW5hZ2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29v
a2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmLCBXS1N0cmluZ1JlZiBob3N0bmFtZSkKIHsK
ICAgICB0b0ltcGwoY29va2llTWFuYWdlclJlZiktPmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZSh0
b0ltcGwoaG9zdG5hbWUpLT5zdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgKaW5kZXggOGY0MTExYzNmMzkxOGU3OGE0NDVhM2Nm
NDgzZjFmYjJmYzUyNmJjZC4uNDgwZWVmNTZhYzBmZTVhYTdjNjkxODBhZGM1YjMxZmJhY2UxOTMy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFn
ZXIuaApAQCAtNjIsOSArNjIsMTAgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5hZ2VyU2V0
Q2xpZW50KFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBjb25zdAogdHlwZWRlZiB2
b2lkICgqV0tDb29raWVNYW5hZ2VyR2V0Q29va2llSG9zdG5hbWVzRnVuY3Rpb24pKFdLQXJyYXlS
ZWYsIFdLRXJyb3JSZWYsIHZvaWQqKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlckdl
dEhvc3RuYW1lc1dpdGhDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCB2
b2lkKiBjb250ZXh0LCBXS0Nvb2tpZU1hbmFnZXJHZXRDb29raWVIb3N0bmFtZXNGdW5jdGlvbiBm
dW5jdGlvbik7CiAKK1dLX0VYUE9SVCB2b2lkIFdLQ29va2llTWFuYWdlclNldENvb2tpZUZvckhv
c3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyLCBXS0Nvb2tpZVJlZiBjb29r
aWUsIFdLU3RyaW5nUmVmIGhvc3RuYW1lKTsKKwogV0tfRVhQT1JUIHZvaWQgV0tDb29raWVNYW5h
Z2VyRGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5h
Z2VyLCBXS1N0cmluZ1JlZiBob3N0bmFtZSk7CiBXS19FWFBPUlQgdm9pZCBXS0Nvb2tpZU1hbmFn
ZXJEZWxldGVBbGxDb29raWVzKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyKTsKLQog
Ly8gVGhlIHRpbWUgaGVyZSBpcyByZWxhdGl2ZSB0byB0aGUgVW5peCBlcG9jaC4KIFdLX0VYUE9S
VCB2b2lkIFdLQ29va2llTWFuYWdlckRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZEFmdGVyRGF0ZShX
S0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciwgZG91YmxlKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29va2llLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjFlNzMxMzI1NThiMDBiNjIzYjlk
NWY3YjRkYjNiOTJkNGVkZmJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvb2tpZS5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb29raWUuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1dlYkNvb2tpZTo6V2ViQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYgY29va2ll
KQorICAgIDogbV9jb3JlQ29va2llKGNvb2tpZSkKK3sKK30KKworV2ViQ29va2llOjp+V2ViQ29v
a2llKCkKK3sKK30KKworY29uc3QgV2ViQ29yZTo6Q29va2llJiBXZWJDb29raWU6OmNvb2tpZSgp
Cit7CisgICAgcmV0dXJuIG1fY29yZUNvb2tpZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM1MmFjOWRhY2I4
YWRhNjBhY2ZjZTkyYTNlYzYxN2VhYTU5NDA2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWUuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJBUElT
dHJpbmcuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViQ29va2llIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVj
dDo6VHlwZTo6Q29va2llPiB7CitwdWJsaWM6CisgICAgfldlYkNvb2tpZSgpOworCisgICAgc3Rh
dGljIFJlZjxXZWJDb29raWU+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDb29raWUmIGNvb2tpZSkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkNvb2tpZShjb29raWUpKTsK
KyAgICB9CisKKyAgICBjb25zdCBXZWJDb3JlOjpDb29raWUmIGNvb2tpZSgpOworCitwcml2YXRl
OgorICAgIGV4cGxpY2l0IFdlYkNvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmKTsKKworICAg
IFdlYkNvcmU6OkNvb2tpZSBtX2NvcmVDb29raWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA0ZGE1NzFlYTA2NGM0NDkyOTkyZGQzOGY4ODdmZTU1MjQwYTlmYWIyLi4xOGEzMmFj
YzM0MDkwNGVmNjEyNTIzOTE2YzAxMDUxNjU2MTlmMzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjMxLDYgKzEyMzEsOSBA
QAogCQk5OTBEMjhCQjFDNjUzOUQzMDA5ODY5NzcgLyogQXV0b21hdGlvblNlc3Npb25DbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MEQyOEI3
MUM2NTM5QTAwMDk4Njk3NyAvKiBBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5oICovOyB9OwogCQk5
OTBEMjhCQzFDNjUzOURBMDA5ODY5NzcgLyogQXV0b21hdGlvblNlc3Npb25DbGllbnQubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTBEMjhCODFDNjUz
OUEwMDA5ODY5NzcgLyogQXV0b21hdGlvblNlc3Npb25DbGllbnQubW0gKi87IH07CiAJCTk5MEQy
OEMwMUM2NTUzRjEwMDk4Njk3NyAvKiBBUElBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwRDI4QjMxQzY1MjZE
NDAwOTg2OTc3IC8qIEFQSUF1dG9tYXRpb25TZXNzaW9uQ2xpZW50LmggKi87IH07CisJCTk5NDBD
RjEwMUNCNkU4NjAwMDQ1NTBBMSAvKiBXS0Nvb2tpZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk0MENGMEExQ0I2RDdBRjAwNDU1MEExIC8qIFdLQ29v
a2llLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
OTk0MENGMTExQ0I2RTg2RjAwNDU1MEExIC8qIFdLQ29va2llLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NDBDRjBCMUNCNkQ4MEQwMDQ1NTBBMSAv
KiBXS0Nvb2tpZS5jcHAgKi87IH07CisJCTk5NDBDRjEyMUNCNkU4NzUwMDQ1NTBBMSAvKiBXZWJD
b29raWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTk0MENGMEMxQ0I2REFDMDAwNDU1MEExIC8qIFdlYkNvb2tpZS5jcHAgKi87IH07CiAJCTk5NTVB
NkVDMUM3OTgwQzIwMEVCNkE5MyAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk1NUE2RUIxQzc5ODBCQjAwRUI2
QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmggKi87IH07CiAJCTk5NTVBNkVEMUM3OTgwQ0Ew
MEVCNkE5MyAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZFQTFDNzk4MEJCMDBFQjZBOTMgLyogV2Vi
QXV0b21hdGlvblNlc3Npb24uY3BwICovOyB9OwogCQk5OTU1QTZFRjFDNzk4MTA4MDBFQjZBOTMg
LyogQXV0b21hdGlvbi5qc29uIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTk1NUE2RTkxQzc5ODBCQjAwRUI2QTkzIC8qIEF1dG9tYXRpb24uanNvbiAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzI2NSw2ICsz
MjY4LDEwIEBACiAJCTk5MEQyOEIzMUM2NTI2RDQwMDk4Njk3NyAvKiBBUElBdXRvbWF0aW9uU2Vz
c2lvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElBdXRvbWF0
aW9uU2Vzc2lvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTBEMjhC
NzFDNjUzOUEwMDA5ODY5NzcgLyogQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0b21hdGlvblNlc3Npb25DbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwRDI4QjgxQzY1MzlBMDAwOTg2OTc3IC8qIEF1dG9t
YXRpb25TZXNzaW9uQ2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQXV0b21hdGlvblNlc3Npb25DbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTk5NDBDRjBBMUNCNkQ3QUYwMDQ1NTBBMSAvKiBXS0Nvb2tpZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Nvb2tpZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5OTQwQ0YwQjFDQjZEODBEMDA0NTUwQTEgLyogV0tDb29raWUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tDb29raWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5OTQwQ0YwQzFDQjZEQUMwMDA0NTUwQTEgLyogV2ViQ29va2llLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvb2tpZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NDBDRjBEMUNCNkRBQzAwMDQ1NTBBMSAvKiBX
ZWJDb29raWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29va2llLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NTVBNkU5MUM3OTgwQkIwMEVCNkE5MyAv
KiBBdXRvbWF0aW9uLmpzb24gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmpzb247IHBhdGggPSBBdXRvbWF0aW9u
Lmpzb247IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NTVBNkVBMUM3OTgwQkIwMEVC
NkE5MyAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk5NTVBNkVCMUM3OTgwQkIwMEVCNkE5MyAvKiBXZWJBdXRvbWF0aW9uU2Vz
c2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vz
c2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTg5Miw2ICs1ODk5LDggQEAK
IAkJCQk1MUE4NENFMjEyN0YzODZCMDBDQTZFQTQgLyogV2ViQ29udGV4dE1lbnVQcm94eS5jcHAg
Ki8sCiAJCQkJNTFBQ0JCODExMjdBOEJBRDAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHku
aCAqLywKIAkJCQlCQ0Y0REUyNDE2OEZBNDQ4MDBDOTRBRkMgLyogV2ViQ29udGV4dFN1cHBsZW1l
bnQuaCAqLywKKwkJCQk5OTQwQ0YwQzFDQjZEQUMwMDA0NTUwQTEgLyogV2ViQ29va2llLmNwcCAq
LywKKwkJCQk5OTQwQ0YwRDFDQjZEQUMwMDA0NTUwQTEgLyogV2ViQ29va2llLmggKi8sCiAJCQkJ
MzMwOTM0NTIxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgKi8s
CiAJCQkJMzMwOTM0NTMxMzE1Qjk3NTAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eS5o
ICovLAogCQkJCTMzMDkzNDU0MTMxNUI5NzUwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gKi8sCkBAIC02MDQzLDYgKzYwNTIsOCBAQAogCQkJCUJDNjQ2QzE5MTFE
RDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYuaCAqLywKIAkJCQlCQzY0
NkMxNjExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNrRm9yd2FyZExpc3RSZWYuY3BwICovLAogCQkJ
CUJDNjQ2QzE3MTFERDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tGb3J3YXJkTGlzdFJlZi5oICovLAor
CQkJCTk5NDBDRjBCMUNCNkQ4MEQwMDQ1NTBBMSAvKiBXS0Nvb2tpZS5jcHAgKi8sCisJCQkJOTk0
MENGMEExQ0I2RDdBRjAwNDU1MEExIC8qIFdLQ29va2llLmggKi8sCiAJCQkJQkNCOUUyNEExMTIw
RTE1QzAwQTEzN0UwIC8qIFdLQ29udGV4dC5jcHAgKi8sCiAJCQkJQkNCOUUyNDkxMTIwRTE1QzAw
QTEzN0UwIC8qIFdLQ29udGV4dC5oICovLAogCQkJCTFBRTUyRjkzMTkyMDFGNkIwMEExRkEzNyAv
KiBXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNwcCAqLywKQEAgLTc4ODMsNiArNzg5NCw3IEBA
CiAJCQkJQzU0MjU2QjUxOEJFQzE4QzAwREU0MTc5IC8qIFdLRm9ybUlucHV0Q29udHJvbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzU0MjU2QjcxOEJFQzE4QzAwREU0MTc5IC8qIFdLRm9ybVBlcmlw
aGVyYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NDI1NkI4MThCRUMxOEMwMERFNDE3OSAvKiBX
S0Zvcm1Qb3BvdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5OTQwQ0YxMDFDQjZFODYwMDA0NTUw
QTEgLyogV0tDb29raWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NDI1NkJBMThCRUMxOEMwMERF
NDE3OSAvKiBXS0Zvcm1TZWxlY3RDb250cm9sLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzE0MjZF
RTFDMjNGODA5MDBENDExODMgLyogTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0U0Njk1QTEyMTRFREY0MDAwQjk4RUIgLyogV0tGb3JtU3VibWlzc2lvbkxp
c3RlbmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTkzNzQsNiArOTM4Niw3IEBACiAJCQkJNTFBOUUx
MEExMzE1Q0QxODAwOUU3MDMxIC8qIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwNzI5N0Y5RTFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzk4QzQ4QTkxQjZGRDVCNTAw
MTQ1MTAzIC8qIFdLTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTk5NDBDRjEyMUNCNkU4NzUwMDQ1NTBBMSAvKiBXZWJDb29raWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzlDRDQzOUUxQjRCMDI1MzAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc1RkQxMjRGRjAyNzAwNjhGMjBBIC8qIFdL
TXV0YWJsZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NUZGMTI0RkYwMjcwMDY4
RjIwQSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTM5OSw2
ICs5NDEyLDcgQEAKIAkJCQkzN0JGMkYwNzE5NDdERUI0MDA3MjNDNDggLyogV0tOU1VSTFJlcXVl
c3QubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzYwMTEyNEZGMDI3MDA2OEYyMEEgLyogV0tO
dW1iZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NENUVCQjgxNzQ2QTE1QjAwMEMxQzQ1IC8q
IFdLT2JqQ1R5cGVXcmFwcGVyUmVmLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTk0MENGMTExQ0I2
RTg2RjAwNDU1MEExIC8qIFdLQ29va2llLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3NDQzNjg4
MTgyMEU3MjQwMDQ5NTc5RiAvKiBXS09iamVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDODU4
MDYzMTJCODUwNTcwMEVERUIyRSAvKiBXS09wZW5QYW5lbFBhcmFtZXRlcnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM4NTgwNjIxMkI4NTA1NzAwRURFQjJFIC8qIFdLT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGQ5ZGQxNWYyMGM2YTQxOGNmMDIwY2Y0OTI3MWYxZDY1
MDI0MjFkYi4uOTc4ODRjM2RjNzhkMjUyZDNlYjk4ZGZmNDQ3ZDQ0MTViN2ZjNjBhNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDE2LTA0LTA3ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAg
IFdyaXRlIHRlc3RzIGZvciBXZWJDb29raWVNYW5hZ2VyOjphZGRDb29raWUoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MzQ1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHRlc3QgdGhh
dCBlbnN1cmVzIGEgY29va2llIGlzIGFkZGVkIHRvIGNvb2tpZSBzdG9yYWdlCisgICAgICAgIGlu
IHJlc3BvbnNlIHRvIFdLQ29va2llTWFuYWdlclNldENvb2tpZUZvckhvc3RuYW1lKCkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogQWRkIG5ldyBmaWxlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL1dLQ29va2llTWFuYWdlckNoYW5nZUNvb2tpZUFjY2VwdFBvbGljeS5jcHA6IENvcGllZCBm
cm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Db29raWVNYW5hZ2VyLmNwcC4K
KyAgICAgICAgVXNlIHRoZSBuYW1pbmcgc2NoZW1lIFdLQ29va2llTWFuYWdlci5UZXN0Q2FzZU5h
bWUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tDb29raWVNYW5h
Z2VyU2V0Q29va2llLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjb29raWVz
RGlkQ2hhbmdlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRpZEZpbmlzaExvYWRGb3JGcmFt
ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgVGhpcyB0ZXN0IGFk
ZHMgYSBjb29raWUgYW5kIGxpc3RlbnMgZm9yIHRoZSBjb29raWVzRGlkQ2hhbmdlIG5vdGlmaWNh
dGlvbi4KKyAgICAgICAgSXQgZG9lc24ndCB2ZXJpZnkgdGhlIGNvbnRlbnRzIG9mIHRoZSBjb29r
aWUsIHRoYXQgaXMgb3ZlcmtpbGwgZm9yIG5vdy4KKwogMjAxNi0wNC0wNyAgSmFzb24gTWFyY2Vs
bCAgPGptYXJjZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRpbmcgbGF5b3V0IHRlc3RzIGZv
ciB0aGUgYm90IHdhdGNoZXIncyBkYXNoYm9hcmQgUVVuaXQgdGVzdHMuCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDJiNTg0ODUyNmRjNmNmOGM4MmU5OTFhMzJlODU4Njg2Y2EzNmJmNDUuLmU3
MjM5NWVmZjI2ZjM0Y2M1MjZkOGVjMzg4MDM0NTkwOWVmYmU0ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xODEsNyArMTgxLDcgQEAKIAkJN0NDRTdFRTUxQTQxMUFFNjAwNDQ3QzRDIC8q
IENsb3NlVGhlblRlcm1pbmF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QzhEREFBOTE3MzVERTFEMDBFQTVBQzAgLyogQ2xvc2VUaGVuVGVybWlu
YXRlLmNwcCAqLzsgfTsKIAkJN0NDRTdFRTYxQTQxMUFFNjAwNDQ3QzRDIC8qIENsb3NlRnJvbVdp
dGhpbkNyZWF0ZVBhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUE1MEFBMUMxQTJBNEU3MDAwRjRDMzQ1IC8qIENsb3NlRnJvbVdpdGhpbkNyZWF0
ZVBhZ2UuY3BwICovOyB9OwogCQk3Q0NFN0VFNzFBNDExQUU2MDA0NDdDNEMgLyogQ2FuSGFuZGxl
UmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzI0NkQ5ODEzMkYxRkUxMDBCNTZEN0MgLyogQ2FuSGFuZGxlUmVxdWVzdC5jcHAgKi87IH07
Ci0JCTdDQ0U3RUU4MUE0MTFBRTYwMDQ0N0M0QyAvKiBDb29raWVNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2RjNGMjkwMTMzNDJGRUIw
MEE2QkYxOSAvKiBDb29raWVNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJN0NDRTdFRTgxQTQxMUFFNjAw
NDQ3QzRDIC8qIFdLQ29va2llTWFuYWdlckNoYW5nZUNvb2tpZUFjY2VwdFBvbGljeS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNkYzRjI5MDEzMzQy
RkVCMDBBNkJGMTkgLyogV0tDb29raWVNYW5hZ2VyQ2hhbmdlQ29va2llQWNjZXB0UG9saWN5LmNw
cCAqLzsgfTsKIAkJN0NDRTdFRTkxQTQxMUFFNjAwNDQ3QzRDIC8qIERpZEFzc29jaWF0ZUZvcm1D
b250cm9scy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNkI3QkU5MzE3NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzLmNw
cCAqLzsgfTsKIAkJN0NDRTdFRUExQTQxMUFFNjAwNDQ3QzRDIC8qIERpZE5vdEhhbmRsZUtleURv
d24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMz
MTQwN0IxN0I0NDE5MDAwRjA4M0IxIC8qIERpZE5vdEhhbmRsZUtleURvd24uY3BwICovOyB9Owog
CQk3Q0NFN0VFQjFBNDExQUU2MDA0NDdDNEMgLyogRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVy
dENyYXNoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQjY4MDNGMTI2RkJGRTEwMDY0MkE2MSAvKiBEb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0
Q3Jhc2guY3BwICovOyB9OwpAQCAtMjk1LDYgKzI5NSw3IEBACiAJCTkzRjFEQjM0MTREQTIwODcw
MDI0QzM2MiAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRfQnVuZGxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFEQjMzMTREQTIw
ODcwMDI0QzM2MiAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRfQnVuZGxlLmNwcCAq
LzsgfTsKIAkJOTNGMURCNTcxNERCMUI4NDAwMjRDMzYyIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dEZhaWxzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0YxREI1NjE0REIxQjg0MDAyNEMzNjIgLyogTmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNfQnVuZGxlLmNwcCAqLzsgfTsKIAkJOTNGN0U4NkYxNERD
OEU1QzAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5k
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNG
N0U4NkUxNERDOEU1QjAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZy
YW1lc19CdW5kbGUuY3BwICovOyB9OworCQk5OTQwQ0YwRjFDQjZFNzU3MDA0NTUwQTEgLyogV0tD
b29raWVNYW5hZ2VyU2V0Q29va2llLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5NDBDRjBFMUNCNkU3NTcwMDQ1NTBBMSAvKiBXS0Nvb2tpZU1hbmFn
ZXJTZXRDb29raWUuY3BwICovOyB9OwogCQk5QjA3ODZBMzFDNTg4MzBGMDBEMTU5RTMgLyogSW5q
ZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDc4NkEyMUM1ODgzMEYwMEQxNTlFMyAvKiBJ
bmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwICovOyB9OwogCQk5QjA3ODZB
NTFDNTg4NUMzMDBEMTU5RTMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdE9wZW5f
QnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlCMDc4NkE0MUM1ODg1QzMwMEQxNTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dS
b290T3Blbl9CdW5kbGUuY3BwICovOyB9OwogCQk5QjI2RkNDQTE1OUQxNkRFMDBDQzM3NjUgLyog
SFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNkZDQjQxNTlEMTVFNzAwQ0MzNzY1IC8q
IEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sICovOyB9OwpAQCAtNzMyLDYgKzczMyw3
IEBACiAJCTkzRjFEQjU2MTREQjFCODQwMDI0QzM2MiAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGYWlsc19CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNfQnVuZGxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGN0U4NkIxNERDOEU0RDAwQzg0QTk5IC8qIE5l
d0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y3RTg2RTE0REM4RTVCMDBDODRB
OTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTk0MENGMEUxQ0I2RTc1NzAwNDU1MEExIC8qIFdLQ29va2llTWFuYWdlclNldENvb2tpZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0Nvb2tpZU1hbmFnZXJTZXRD
b29raWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjA3ODZBMjFDNTg4MzBG
MDBEMTU5RTMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlTWFrZUFsbFNo
YWRvd1Jvb3RzT3Blbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDc4NkE0
MUM1ODg1QzMwMEQxNTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290T3Blbl9C
dW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRC
dW5kbGVNYWtlQWxsU2hhZG93Um9vdE9wZW5fQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUIyNkZDNkIxNTlEMDYxMDAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlv
bk5hbWVkSXRlbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEhU
TUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTkwMCw3ICs5MDIsNyBAQAogCQlGNkI3QkU5MjE3NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNz
b2NpYXRlRm9ybUNvbnRyb2xzX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWRBc3Nv
Y2lhdGVGb3JtQ29udHJvbHNfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjZCN0JFOTMxNzQ2OTFFRjAwOEEzNDQ1IC8qIERpZEFzc29jaWF0ZUZvcm1Db250cm9scy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkI3QkU5NjE3NDY5QjdFMDA4QTM0NDUgLyogYXNz
b2NpYXRlLWZvcm0tY29udHJvbHMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJhc3NvY2lhdGUtZm9ybS1jb250
cm9scy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjZGM0YyOTAxMzM0MkZF
QjAwQTZCRjE5IC8qIENvb2tpZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ29va2llTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY2RjNGMjkwMTMzNDJGRUIwMEE2QkYxOSAvKiBXS0Nvb2tpZU1hbmFnZXJDaGFuZ2VDb29r
aWVBY2NlcHRQb2xpY3kuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0tDb29raWVNYW5hZ2VyQ2hhbmdlQ29va2llQWNjZXB0UG9saWN5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjZGNDlDNjYxNTU0NUM4RDAwMDdGMzlEIC8qIERPTVdpbmRvd0V4
dGVuc2lvbk5vQ2FjaGVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjZGNDlDNjcxNTU0NUM4RDAwMDdGMzlEIC8qIERPTVdpbmRvd0V4
dGVuc2lvbk5vQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY2RkREREQyMTQyNDFBRDQwMDRGMTcyOSAvKiBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVO
b0hpc3RvcnlDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjA3LDcgKzEyMDksNiBAQAogCQkJCUJDMjQ2RDk3MTMy
RjFGRTEwMEI1NkQ3QyAvKiBDYW5IYW5kbGVSZXF1ZXN0X0J1bmRsZS5jcHAgKi8sCiAJCQkJMUE1
MEFBMUMxQTJBNEU3MDAwRjRDMzQ1IC8qIENsb3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UuY3BwICov
LAogCQkJCTdDOEREQUE5MTczNURFMUQwMEVBNUFDMCAvKiBDbG9zZVRoZW5UZXJtaW5hdGUuY3Bw
ICovLAotCQkJCUY2RjNGMjkwMTMzNDJGRUIwMEE2QkYxOSAvKiBDb29raWVNYW5hZ2VyLmNwcCAq
LywKIAkJCQlGNkI3QkU5MzE3NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9ybUNvbnRy
b2xzLmNwcCAqLywKIAkJCQlGNkI3QkU5MjE3NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNzb2NpYXRl
Rm9ybUNvbnRyb2xzX0J1bmRsZS5jcHAgKi8sCiAJCQkJOTMzMTQwN0IxN0I0NDE5MDAwRjA4M0Ix
IC8qIERpZE5vdEhhbmRsZUtleURvd24uY3BwICovLApAQCAtMTI0NCw2ICsxMjQ1LDcgQEAKIAkJ
CQkzM0RDODkxMDE0MTk1M0EzMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVj
dENhbGxiYWNrLmNwcCAqLywKIAkJCQkzM0RDODkxMzE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENh
bmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgKi8sCiAJCQkJOEFBMjhD
MTkxNkQyRkE3QjAwMkZGNERCIC8qIExvYWRQYWdlT25DcmFzaC5jcHAgKi8sCisJCQkJN0E1NjIz
MTAxQUQ1QUYzRTAwOTZCOTIwIC8qIE1lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLmNwcCAqLywKIAkJ
CQk1MUNCNEFENzFCM0EwNzlDMDBDMUIxQzYgLyogTW9kYWxBbGVydHNTUEkuY3BwICovLAogCQkJ
CTMzQkU1QUY0MTM3QjVBNkMwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoLmNwcCAqLywK
IAkJCQkzM0JFNUFGODEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5k
bGUuY3BwICovLApAQCAtMTI5Myw3ICsxMjk1LDggQEAKIAkJCQk3QzU0QTRCQzFBQTExQ0NBMDAz
ODBGNzggLyogV0tCdW5kbGVGaWxlSGFuZGxlLmNwcCAqLywKIAkJCQk3QzU0QTRCRjFBQTExQ0U0
MDAzODBGNzggLyogV0tCdW5kbGVGaWxlSGFuZGxlX0J1bmRsZS5jcHAgKi8sCiAJCQkJQTFGREZE
MkUxOUMyODhCQjAwNTE0OEE0IC8qIFdLSW1hZ2VDcmVhdGVDR0ltYWdlQ3Jhc2guY3BwICovLAot
CQkJCTdBNTYyMzEwMUFENUFGM0UwMDk2QjkyMCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5j
cHAgKi8sCisJCQkJRjZGM0YyOTAxMzM0MkZFQjAwQTZCRjE5IC8qIFdLQ29va2llTWFuYWdlckNo
YW5nZUNvb2tpZUFjY2VwdFBvbGljeS5jcHAgKi8sCisJCQkJOTk0MENGMEUxQ0I2RTc1NzAwNDU1
MEExIC8qIFdLQ29va2llTWFuYWdlclNldENvb2tpZS5jcHAgKi8sCiAJCQkJN0M4OUQyQUExQTY5
QjgwRDAwM0E1RkRFIC8qIFdLUGFnZUNvbmZpZ3VyYXRpb24uY3BwICovLAogCQkJCTUyRDY3M0VD
MUFGQjEyNjgwMEZBMTlGRSAvKiBXS1BhZ2VDb3B5U2Vzc2lvblN0YXRlV2l0aEZpbHRlcmluZy5j
cHAgKi8sCiAJCQkJNTFFOTMwMTYxNTZCMTNFMTAwNEM5OURGIC8qIFdLUGFnZUdldFNjYWxlRmFj
dG9yTm90WmVyby5jcHAgKi8sCkBAIC0xNzU4LDcgKzE3NjEsNyBAQAogCQkJCTdDQ0U3RUI3MUE0
MTFBN0UwMDQ0N0M0QyAvKiBDbG9zZU5ld1dpbmRvd0luTmF2aWdhdGlvblBvbGljeURlbGVnYXRl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTUxQTQxMUFFNjAwNDQ3QzRDIC8qIENsb3Nl
VGhlblRlcm1pbmF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VCODFBNDExQTdFMDA0
NDdDNEMgLyogQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJN0ND
RTdFRTgxQTQxMUFFNjAwNDQ3QzRDIC8qIENvb2tpZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJN0NDRTdFRTgxQTQxMUFFNjAwNDQ3QzRDIC8qIFdLQ29va2llTWFuYWdlckNoYW5nZUNv
b2tpZUFjY2VwdFBvbGljeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VBQzFBNDExQTM0
MDA0NDdDNEMgLyogQ291bnRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFREIxQTQx
MUE5MjAwNDQ3QzRDIC8qIENTU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjNCOTRB
NzFBNzcyNjc0MDBERTMyNzIgLyogV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tIGluIFNv
dXJjZXMgKi8sCkBAIC0xOTc2LDYgKzE5NzksNyBAQAogCQkJCUExQzRGQjZFMUJBQ0NFNTAwMDM3
NDJEMCAvKiBRdWlja0xvb2subW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUIxRUU4RTFDODBGNTg4
MDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
QTU2MjMxMTFBRDVBRjNFMDA5NkI5MjAgLyogTWVudVR5cGVzRm9yTW91c2VFdmVudHMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJOTk0MENGMEYxQ0I2RTc1NzAwNDU1MEExIC8qIFdLQ29va2llTWFu
YWdlclNldENvb2tpZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUFEMTlGNzFDN0NFMjAzMDA4
MzFFNDcgLyogQ29kaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE5RkI2Q0UxQ0EzNEJFNTAw
OTY2MTI0IC8qIEVhcmx5S1ZPQ3Jhc2gubW0gaW4gU291cmNlcyAqLywKIAkJCQk5QjA3ODZBMzFD
NTg4MzBGMDBEMTU5RTMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL0Nvb2tpZU1hbmFnZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL0Nvb2tpZU1hbmFnZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjMx
ZTBlNzUxOTM2ZjJlY2U2NDNiMjAxOTNhZGEyZGJkZTNiNWNhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9Db29raWVNYW5hZ2VyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBXS19IQVZFX0NfU1BJCi0KLSNp
bmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5o
IgotI2luY2x1ZGUgPFdlYktpdC9XS0Nvb2tpZU1hbmFnZXIuaD4KLSNpbmNsdWRlIDxXZWJLaXQv
V0tSZXRhaW5QdHIuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1zdGF0aWMgYm9v
bCB0ZXN0RG9uZTsKLS8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBwb2xpY3kgb24gdGhlIG1hY2hpbmUg
cnVubmluZyB0aGUgdGVzdCBpcyBub3QgY2hhbmdlZCBhZnRlciBydW5uaW5nIHRoZSB0ZXN0Lgot
c3RhdGljIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSB1c2VyUG9saWN5Owotc3RhdGljIFdLSFRU
UENvb2tpZUFjY2VwdFBvbGljeSB0ZXN0UG9saWN5Owotc3RhdGljIFdLUmV0YWluUHRyPFdLQ29u
dGV4dFJlZj4gd2tDb250ZXh0OwotCi1zdGF0aWMgdm9pZCBkaWRHZXRUZXN0SFRUUENvb2tpZUFj
Y2VwdFBvbGljeShXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBXS0Vycm9yUmVmLCB2
b2lkKiBjb250ZXh0KQotewotICAgIEVYUEVDVF9FUShyZWludGVycHJldF9jYXN0PHZvaWQqPigw
eDEyMzQ1NzgpLCBjb250ZXh0KTsKLSAgICBFWFBFQ1RfRVEodGVzdFBvbGljeSwgcG9saWN5KTsK
LQotICAgIFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyID0gV0tDb250ZXh0R2V0Q29v
a2llTWFuYWdlcih3a0NvbnRleHQuZ2V0KCkpOwotICAgIFdLQ29va2llTWFuYWdlclNldEhUVFBD
b29raWVBY2NlcHRQb2xpY3koY29va2llTWFuYWdlciwgdXNlclBvbGljeSk7Ci0KLSAgICB0ZXN0
RG9uZSA9IHRydWU7Ci19Ci0KLXN0YXRpYyB2b2lkIGRpZEdldFVzZXJIVFRQQ29va2llQWNjZXB0
UG9saWN5KFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQq
IGNvbnRleHQpCi17Ci0gICAgRVhQRUNUX0VRKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIz
NDU3OCksIGNvbnRleHQpOwotCi0gICAgdXNlclBvbGljeSA9IHBvbGljeTsKLQotICAgIC8vIE1h
a2Ugc3VyZSB0byBjaG9vc2UgYSBwb2xpY3kgZGlmZmVyZW50IGZyb20gdGhlIHBvbGljeSB0aGUg
dXNlciBjdXJyZW50bHkgaGFzIHNldC4KLSAgICB0ZXN0UG9saWN5ID0gKHVzZXJQb2xpY3kgKyAx
KSAlIDM7Ci0gICAgV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXIgPSBXS0NvbnRleHRH
ZXRDb29raWVNYW5hZ2VyKHdrQ29udGV4dC5nZXQoKSk7Ci0gICAgV0tDb29raWVNYW5hZ2VyU2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29raWVNYW5hZ2VyLCB0ZXN0UG9saWN5KTsKLSAgICBX
S0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIsIHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGRpZEdldFRlc3RIVFRQQ29va2llQWNj
ZXB0UG9saWN5KTsKLX0KLQotc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFn
ZVJlZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKikKLXsKLSAgICBXS0Nvb2tp
ZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciA9IFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIod2tD
b250ZXh0LmdldCgpKTsKLSAgICBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9s
aWN5KGNvb2tpZU1hbmFnZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGRp
ZEdldFVzZXJIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKLX0KLQotVEVTVChXZWJLaXQyLCBDb29r
aWVNYW5hZ2VyKQotewotICAgIHdrQ29udGV4dC5hZG9wdChXS0NvbnRleHRDcmVhdGUoKSk7Ci0g
ICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcod2tDb250ZXh0LmdldCgpKTsKLQotICAgIFdLUGFn
ZUxvYWRlckNsaWVudFYwIGxvYWRlckNsaWVudDsKLSAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwg
MCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwotCi0gICAgbG9hZGVyQ2xpZW50LmJhc2UudmVyc2lv
biA9IDA7Ci0gICAgbG9hZGVyQ2xpZW50LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IGRpZEZpbmlz
aExvYWRGb3JGcmFtZTsKLQotICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQod2ViVmlldy5w
YWdlKCksICZsb2FkZXJDbGllbnQuYmFzZSk7Ci0KLSAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcu
cGFnZSgpLCBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJhYm91dDpibGFuayIp
KS5nZXQoKSk7Ci0KLSAgICBVdGlsOjpydW4oJnRlc3REb25lKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9XS0Nvb2tpZU1hbmFnZXJDaGFuZ2VDb29raWVBY2NlcHRQb2xpY3ku
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLQ29va2llTWFuYWdlckNo
YW5nZUNvb2tpZUFjY2VwdFBvbGljeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzgyNWNlNWViMDQ3MzgxNzVh
ZmRlNTU1OWFlNDllZjdhNjdkM2ViNwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9XS0Nvb2tpZU1hbmFnZXJDaGFuZ2VDb29raWVBY2NlcHRQb2xp
Y3kuY3BwCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0Nvb2tpZU1h
bmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCB0ZXN0RG9uZTsKKy8vIE1ha2Ugc3VyZSB0aGF0
IHRoZSBwb2xpY3kgb24gdGhlIG1hY2hpbmUgcnVubmluZyB0aGUgdGVzdCBpcyBub3QgY2hhbmdl
ZCBhZnRlciBydW5uaW5nIHRoZSB0ZXN0Lgorc3RhdGljIFdLSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSB1c2VyUG9saWN5Oworc3RhdGljIFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSB0ZXN0UG9saWN5
Oworc3RhdGljIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gd2tDb250ZXh0OworCitzdGF0aWMg
dm9pZCBkaWRHZXRUZXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXS0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kgcG9saWN5LCBXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0KQoreworICAgIEVYUEVDVF9F
UShyZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpLCBjb250ZXh0KTsKKyAgICBFWFBF
Q1RfRVEodGVzdFBvbGljeSwgcG9saWN5KTsKKworICAgIFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyID0gV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcih3a0NvbnRleHQuZ2V0KCkpOwor
ICAgIFdLQ29va2llTWFuYWdlclNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koY29va2llTWFuYWdl
ciwgdXNlclBvbGljeSk7CisKKyAgICB0ZXN0RG9uZSA9IHRydWU7Cit9CisKK3N0YXRpYyB2b2lk
IGRpZEdldFVzZXJIVFRQQ29va2llQWNjZXB0UG9saWN5KFdLSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSBwb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCit7CisgICAgRVhQRUNUX0VRKHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGNvbnRleHQpOworCisgICAgdXNlclBv
bGljeSA9IHBvbGljeTsKKworICAgIC8vIE1ha2Ugc3VyZSB0byBjaG9vc2UgYSBwb2xpY3kgZGlm
ZmVyZW50IGZyb20gdGhlIHBvbGljeSB0aGUgdXNlciBjdXJyZW50bHkgaGFzIHNldC4KKyAgICB0
ZXN0UG9saWN5ID0gKHVzZXJQb2xpY3kgKyAxKSAlIDM7CisgICAgV0tDb29raWVNYW5hZ2VyUmVm
IGNvb2tpZU1hbmFnZXIgPSBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKHdrQ29udGV4dC5nZXQo
KSk7CisgICAgV0tDb29raWVNYW5hZ2VyU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShjb29raWVN
YW5hZ2VyLCB0ZXN0UG9saWN5KTsKKyAgICBXS0Nvb2tpZU1hbmFnZXJHZXRIVFRQQ29va2llQWNj
ZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3
OCksIGRpZEdldFRlc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KTsKK30KKworc3RhdGljIHZvaWQg
ZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tUeXBlUmVmLCBj
b25zdCB2b2lkKikKK3sKKyAgICBXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlciA9IFdL
Q29udGV4dEdldENvb2tpZU1hbmFnZXIod2tDb250ZXh0LmdldCgpKTsKKyAgICBXS0Nvb2tpZU1h
bmFnZXJHZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIsIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KDB4MTIzNDU3OCksIGRpZEdldFVzZXJIVFRQQ29va2llQWNjZXB0UG9saWN5
KTsKK30KKworVEVTVChXS0Nvb2tpZU1hbmFnZXIsIENoYW5nZVVzZXJIVFRQQ29va2llQWNjZXB0
UG9saWN5KQoreworICAgIHdrQ29udGV4dC5hZG9wdChXS0NvbnRleHRDcmVhdGUoKSk7CisgICAg
UGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcod2tDb250ZXh0LmdldCgpKTsKKworICAgIFdLUGFnZUxv
YWRlckNsaWVudFYwIGxvYWRlckNsaWVudDsKKyAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwg
c2l6ZW9mKGxvYWRlckNsaWVudCkpOworCisgICAgbG9hZGVyQ2xpZW50LmJhc2UudmVyc2lvbiA9
IDA7CisgICAgbG9hZGVyQ2xpZW50LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IGRpZEZpbmlzaExv
YWRGb3JGcmFtZTsKKworICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQod2ViVmlldy5wYWdl
KCksICZsb2FkZXJDbGllbnQuYmFzZSk7CisKKyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFn
ZSgpLCBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJhYm91dDpibGFuayIpKS5n
ZXQoKSk7CisKKyAgICBVdGlsOjpydW4oJnRlc3REb25lKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9XS0Nvb2tpZU1hbmFnZXJTZXRDb29raWUuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLQ29va2llTWFuYWdlclNldENvb2tpZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTRiMzJjOTViMDE0ODgwNDg0NmI3M2Q2YTBiMWNhOGZmYzFjYTU3NwotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS0Nvb2tpZU1hbmFn
ZXJTZXRDb29raWUuY3BwCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxp
dGllcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgPFdlYktpdC9X
S0Nvb2tpZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Nvb2tpZU1hbmFnZXIuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0
b3JlUmVmLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIGJvb2wgdGVz
dERvbmU7CitzdGF0aWMgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiB3a0NvbnRleHQ7CisKK3N0
YXRpYyB2b2lkIGNvb2tpZXNEaWRDaGFuZ2UoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFn
ZXIsIGNvbnN0IHZvaWQqKQoreworICAgIFdLQ29va2llTWFuYWdlclN0b3BPYnNlcnZpbmdDb29r
aWVDaGFuZ2VzKGNvb2tpZU1hbmFnZXIpOworCisgICAgdGVzdERvbmUgPSB0cnVlOworfQorCitz
dGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBX
S1R5cGVSZWYsIGNvbnN0IHZvaWQqKQoreworICAgIFdLQ29va2llTWFuYWdlclJlZiBjb29raWVN
YW5hZ2VyID0gV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcih3a0NvbnRleHQuZ2V0KCkpOworCisg
ICAgV0tDb29raWVNYW5hZ2VyQ2xpZW50VjAgY29va2llTWFuYWdlckNsaWVudDsKKyAgICBtZW1z
ZXQoJmNvb2tpZU1hbmFnZXJDbGllbnQsIDAsIHNpemVvZihjb29raWVNYW5hZ2VyQ2xpZW50KSk7
CisKKyAgICBjb29raWVNYW5hZ2VyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7CisgICAgY29va2ll
TWFuYWdlckNsaWVudC5jb29raWVzRGlkQ2hhbmdlID0gY29va2llc0RpZENoYW5nZTsKKworICAg
IFdLQ29va2llTWFuYWdlclNldENsaWVudChjb29raWVNYW5hZ2VyLCAmY29va2llTWFuYWdlckNs
aWVudC5iYXNlKTsKKyAgICBXS0Nvb2tpZU1hbmFnZXJTdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5n
ZXMoY29va2llTWFuYWdlcik7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gY29va2ll
TmFtZSA9IFV0aWw6OnRvV0soInRlc3QtbmFtZSIpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBjb29raWVWYWx1ZSA9IFV0aWw6OnRvV0soInRlc3QtdmFsdWUiKTsKKyAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gY29va2llRG9tYWluID0gVXRpbDo6dG9XSygibWFkZS11cC1kb21h
aW4ud2Via2l0Lm9yZyIpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBjb29raWVQYXRo
ID0gVXRpbDo6dG9XSygiLyIpOworCisgICAgV0tDb29raWVSZWYgY29va2llID0gV0tDb29raWVD
cmVhdGUoY29va2llTmFtZS5nZXQoKSwgY29va2llVmFsdWUuZ2V0KCksIGNvb2tpZURvbWFpbi5n
ZXQoKSwgY29va2llUGF0aC5nZXQoKSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CisgICAgV0tD
b29raWVNYW5hZ2VyU2V0Q29va2llRm9ySG9zdG5hbWUoY29va2llTWFuYWdlciwgY29va2llLCBj
b29raWVEb21haW4uZ2V0KCkpOworfQorCitURVNUKFdLQ29va2llTWFuYWdlciwgU2V0Q29va2ll
Q2F1c2VzQ2hhbmdlZENvb2tpZXMpCit7CisgICAgd2tDb250ZXh0LmFkb3B0KFdLQ29udGV4dENy
ZWF0ZSgpKTsKKworICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGNvbmZp
Z3VyYXRpb24gPSBhZG9wdFdLKFdLUGFnZUNvbmZpZ3VyYXRpb25DcmVhdGUoKSk7CisgICAgV0tQ
YWdlQ29uZmlndXJhdGlvblNldENvbnRleHQoY29uZmlndXJhdGlvbi5nZXQoKSwgd2tDb250ZXh0
LmdldCgpKTsKKyAgICBXS1JldGFpblB0cjxXS1dlYnNpdGVEYXRhU3RvcmVSZWY+IHdlYnNpdGVE
YXRhU3RvcmUgPSBhZG9wdFdLKFdLV2Vic2l0ZURhdGFTdG9yZUNyZWF0ZU5vblBlcnNpc3RlbnRE
YXRhU3RvcmUoKSk7CisgICAgV0tQYWdlQ29uZmlndXJhdGlvblNldFdlYnNpdGVEYXRhU3RvcmUo
Y29uZmlndXJhdGlvbi5nZXQoKSwgd2Vic2l0ZURhdGFTdG9yZS5nZXQoKSk7CisKKyAgICBQbGF0
Zm9ybVdlYlZpZXcgd2ViVmlldyhjb25maWd1cmF0aW9uLmdldCgpKTsKKworICAgIFdLUGFnZUxv
YWRlckNsaWVudFYwIGxvYWRlckNsaWVudDsKKyAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwg
c2l6ZW9mKGxvYWRlckNsaWVudCkpOworCisgICAgbG9hZGVyQ2xpZW50LmJhc2UudmVyc2lvbiA9
IDA7CisgICAgbG9hZGVyQ2xpZW50LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IGRpZEZpbmlzaExv
YWRGb3JGcmFtZTsKKworICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQod2ViVmlldy5wYWdl
KCksICZsb2FkZXJDbGllbnQuYmFzZSk7CisKKyAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFn
ZSgpLCBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJhYm91dDpibGFuayIpKS5n
ZXQoKSk7CisKKyAgICBVdGlsOjpydW4oJnRlc3REb25lKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQorCisjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>