<?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>43431</bug_id>
          
          <creation_ts>2010-08-03 09:52:50 -0700</creation_ts>
          <short_desc>Turn on PLATFORM_STRATEGIES on Windows</short_desc>
          <delta_ts>2010-08-04 06:01:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>43433</dependson>
    
    <dependson>43441</dependson>
          <blocked>43189</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>259514</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-03 09:52:50 -0700</bug_when>
    <thetext>In order to support plug-ins and other features in WebKit2, we&apos;ll need to turn on PLATFORM_STRATEGIES on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259515</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-03 09:53:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/8267038&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259676</commentid>
    <comment_count>2</comment_count>
      <attachid>63375</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-03 14:01:30 -0700</bug_when>
    <thetext>Created attachment 63375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259985</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-04 06:01:36 -0700</bug_when>
    <thetext>Committed r64645: &lt;http://trac.webkit.org/changeset/64645&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63375</attachid>
            <date>2010-08-03 14:01:30 -0700</date>
            <delta_ts>2010-08-03 14:04:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43431-20100803170135.patch</filename>
            <type>text/plain</type>
            <size>87096</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAxODZiZjg2ZTQxOGM4M2M3MjBiMjJiNDFjZTMwZGM3NzMwMzMyYjFkLi40
NzQzNWU4ZjJkMDdjNTI1Nzc4ODFjZTI4NmM5MmU4ZjRmMThkYTQxIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTAtMDgtMDMgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgor
CisgICAgICAgIFR1cm4gb24gUExBVEZPUk1fU1RSQVRFR0lFUyBvbiBXaW5kb3dzCisKKyAgICAg
ICAgRml4ZXMgPGh0dHA6Ly93ZWJraXQub3JnL2IvNDM0MzE+LgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTAt
MDgtMDIgIEtldmluIE9sbGl2aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAg
ICAgW3d4XSBCdWlsZCBmaXggYWZ0ZXIgcmVtb3ZhbCBvZiBuZWVkIHRvIGNvbXBpbGUgRXhlY3V0
YWJsZUFsbG9jYXRvclBvc2l4LmNwcApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCA1MWJmOTJkNDVl
ODgwZjQwZmZmOTc1MDE0NjU0YWM2MGVkNjNiMzg4Li42NzVjYTc0YWFkZmZkNjllNmM4MWVlNjkw
YzFkMDZiY2UzMDBkODhmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0u
aAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaApAQCAtMTA2Miw3ICsxMDYyLDcg
QEAgb24gTWluR1cuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjkyNjggKi8KICNkZWZpbmUgRU5BQkxFX0pTQ19aT01CSUVTIDAKIAogLyogRklYTUU6IEV2ZW50
dWFsbHkgd2Ugc2hvdWxkIGVuYWJsZSB0aGlzIGZvciBhbGwgcGxhdGZvcm1zIGFuZCBnZXQgcmlk
IG9mIHRoZSBkZWZpbmUuICovCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykg
fHwgUExBVEZPUk0oV0lOKQogI2RlZmluZSBXVEZfVVNFX1BMQVRGT1JNX1NUUkFURUdJRVMgMQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggYzRhOTU0OGIyZTBmNTgyY2Y0Y2NjNTY2ZmY0MzBmYTkyNmVlNDcyZC4uZjk3MDcz
ZTVlZDg2NmU2M2E4MzU2Y2M1MzU3MDU0NDgxZTVlNTM0NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOCBAQAogMjAxMC0w
OC0wMyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKKyAgICAgICAgVHVybiBvbiBQ
TEFURk9STV9TVFJBVEVHSUVTIG9uIFdpbmRvd3MKKworICAgICAgICBGaXhlcyA8aHR0cDovL3dl
YmtpdC5vcmcvYi80MzQzMT4uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgICAt
IEFkZGVkIExvY2FsaXplZFN0cmluZ3MuY3BwLCBQbGF0Zm9ybVN0cmF0ZWdpZXMuaCwKKyAgICAg
ICAgICAgIExvY2FsaXphdGlvblN0cmF0ZWd5LmgsIFBsdWdpblN0cmF0ZWd5LmgsIFZpc2l0ZWRM
aW5rU3RyYXRlZ3kuaAorICAgICAgICAgIC0gUmVtb3ZlZCBQbHVnaW5EYXRhV2luLmNwcAorICAg
ICAgICAgIC0gTGV0IFZTIHJlb3JkZXIgdGhlIGZpbGUgYXMgaXQgc2F3IGZpdAorCisgICAgICAg
ICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6IFdyYXBwZWQgTWFjLW9ubHkgZnVuY3Rp
b25zIGluCisgICAgICAgIFBMQVRGT1JNKE1BQykgZ3VhcmRzLgorCisgICAgICAgIChXZWJDb3Jl
Ojp1cGxvYWRGaWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjphbGxGaWxlc1RleHQpOgorICAg
ICAgICBBZGRlZCB0aGVzZSBXaW5kb3dzLW9ubHkgZnVuY3Rpb25zLgorCisgICAgICAgICogcGx1
Z2lucy93aW4vUGx1Z2luRGF0YVdpbi5jcHA6IFJlbW92ZWQuCisKKzIwMTAtMDgtMDMgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCiAgICAgICAgIFJlbmFtZSBMb2NhbGl6ZWRTdHJp
bmdzTWFjLm1tIHRvIExvY2FsaXplZFN0cmluZ3MuY3BwCiAKICAgICAgICAgTG9jYWxpemVkU3Ry
aW5nc01hYy5tbSBzaG91bGQgYmUgdXNhYmxlIGJ5IG90aGVyIHBvcnRzCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlNzIzNTcyMzNiYjM4OWM4Y2Q2NDJjZWEyNDI0ZmYx
M2ViMjdjYmFhLi5hNDUzMDk0ZmM3NTM5YjU2NGMwOTdlY2NjYTgxNWE2Y2RkMjRhZmJhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTU0NSw2ICs1NDUsMTQgQEAKIAkJ
CQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRP
dXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmgiDQorCQkJCT4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2Jq
XFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNBYnN0cmFjdFdvcmtlci5jcHAiDQogCQkJCT4NCiAJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMjA2ODUsMTQgKzIwNjkzLDYgQEAKIAkJCQk+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlci5jcHAiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRp
dmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQot
CQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFJlbW90ZUluc3BlY3RvckZyb250ZW5kLmNwcCINCiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCkBAIC0yMjcwNSwxNSArMjI3MDUsMTUgQEAKIAkJCQk+DQogCQkJ
PC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXERvY3VtZW50
TG9hZFRpbWluZy5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxEb2N1bWVudExvYWRl
ci5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRo
PSIuLlxsb2FkZXJcRG9jdW1lbnRMb2FkZXIuY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxv
YWRlclxEb2N1bWVudExvYWRlci5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXERvY3VtZW50TG9hZGVyLmgiDQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cbG9hZGVyXERvY3VtZW50TG9hZFRpbWluZy5oIg0KIAkJCQk+DQogCQkJPC9G
aWxlPg0KIAkJCTxGaWxlDQpAQCAtMjMzNDEsNiArMjMzNDEsMTQgQEAKIAkJCQk+DQogCQkJPC9G
aWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTG9jYWxpemF0
aW9uU3RyYXRlZ3kuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXExvY2FsaXplZFN0cmluZ3MuY3BwIg0KKwkJCQk+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cTG9jYWxp
emVkU3RyaW5ncy5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KQEAgLTIzMzg5LDYgKzIzMzk3LDE0
IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHBsYXRmb3JtXFBsYXRmb3JtU3RyYXRlZ2llcy5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQor
CQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBsYXRmb3JtXFBsYXRmb3JtV2hlZWxFdmVudC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0K
QEAgLTIzNTM3LDYgKzIzNTUzLDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXFZpc2l0ZWRMaW5rU3RyYXRlZ3kuaCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXFdpZGdldC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpAQCAtMjQzNjAsMTUgKzI0Mzgw
LDE1IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xXT0ZGRmlsZUZvcm1hdC5jcHAiDQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXFVuaXRCZXppZXIuaCINCiAJCQkJCT4NCiAJ
CQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxn
cmFwaGljc1xXT0ZGRmlsZUZvcm1hdC5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xXT0ZGRmlsZUZvcm1hdC5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJ
CQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcVW5pdEJl
emllci5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xXT0ZGRmls
ZUZvcm1hdC5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWx0ZXINCkBAIC00MDg0
NCwxNSArNDA4NjQsMTUgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXFNjcmlwdENv
bnRyb2xsZXJCYXNlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQotIAkJCTxGaWx0ZXINCisJCQk8
RmlsdGVyDQogCQkJCU5hbWU9ImdlbmVyaWMiDQogCQkJCT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xBY3RpdmVET01DYWxsYmFjay5oIg0KKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEFjdGl2ZURPTUNhbGxiYWNrLmNw
cCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xnZW5lcmljXEFjdGl2ZURPTUNhbGxiYWNrLmNwcCINCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xBY3RpdmVET01DYWxsYmFjay5oIg0KIAkJCQkJ
Pg0KIAkJCQk8L0ZpbGU+DQogCQkJPC9GaWx0ZXI+DQpAQCAtNDQ1NjAsMTEgKzQ0NTgwLDcgQEAK
IAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJ
CQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2UuaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJ
CQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2VFcnJvci5jcHAiDQorCQkJCQlS
ZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNJREJEYXRhYmFzZS5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCkBAIC00NDYxNiwxMSArNDQ2MzIsMTUg
QEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0K
LQkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2VFcnJvci5oIg0KKwkJCQkJUmVsYXRpdmVQYXRo
PSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
SURCRGF0YWJhc2UuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJ
UmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwIg0KKwkJCQkJUmVsYXRpdmVQYXRo
PSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
SURCRGF0YWJhc2UuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJ
UmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2VFcnJvci5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCkBAIC00NDY3MiwxMSArNDQ2
OTIsMTEgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8
RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2VFeGNlcHRpb24uaCINCisJCQkJCVJl
bGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0lEQkRhdGFiYXNlRXJyb3IuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJ
CQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2UuY3BwIg0KKwkJCQkJUmVsYXRp
dmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTSURCRGF0YWJhc2VFeGNlcHRpb24uY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDQ3MjgsNyArNDQ3NDgs
NyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxl
DQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJEYXRhYmFzZS5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURC
RGF0YWJhc2VFeGNlcHRpb24uaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0K
QEAgLTQ0NzkyLDcgKzQ0ODEyLDcgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxl
DQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJJbmRleC5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJG
YWN0b3J5LmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIg0KQEAgLTQ0ODQ0LDExICs0NDg2NCwxMSBAQAogCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBh
dGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNJREJJbmRleC5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCRmFjdG9yeS5oIg0KIAkJCQkJPg0K
IAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0
cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJLZXkuY3BwIg0K
KwkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTSURCSW5kZXguY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDQ5MDAsMTEgKzQ0OTIw
LDExIEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZp
bGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQktleS5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIkKFdl
YktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCSW5k
ZXguaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU0lEQktleUN1c3RvbS5jcHAiDQorCQkJCQlSZWxhdGl2ZVBh
dGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNJREJLZXkuY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDQ5NTYsNyArNDQ5NzYsMTEgQEAKIAkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQ
YXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTSURCS2V5UmFuZ2UuY3BwIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCS2V5LmgiDQorCQkJCQk+
DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNJREJLZXlDdXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDUxMjAsNiArNDUxNDQsMTAgQEAK
IAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJP
YmplY3RTdG9yZVJlcXVlc3QuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0K
IAkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTSURCUmVxdWVzdC5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCkBAIC00NTE3MiwxMSArNDUyMDAsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJS
ZXF1ZXN0LmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0
aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0lEQlN1Y2Nlc3NFdmVudC5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0
T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJSZXF1ZXN0
LmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIg0KQEAgLTQ1MjI4LDExICs0NTI1MiwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJT
dWNjZXNzRXZlbnQuaCINCisJCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQlJlcXVlc3QuaCINCiAJCQkJCT4N
CiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU0ltYWdlQ29uc3RydWN0b3IuY3BwIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktp
dE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCU3VjY2Vz
c0V2ZW50LmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIg0KQEAgLTQ1Mjg0LDExICs0NTMwOCwxMSBAQAogCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTSW1hZ2VDb25zdHJ1Y3Rvci5oIg0KKwkJCQkJUmVsYXRpdmVQ
YXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTSURCU3VjY2Vzc0V2ZW50LmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUN
Ci0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNJbWFnZURhdGFDdXN0b20uY3Bw
Ig0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0ltYWdlQ29uc3RydWN0b3Iu
Y3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiDQpAQCAtNDUzNDAsNyArNDUzNjQsMTEgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIkKFdl
YktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCRmFj
dG9yeS5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTSW1hZ2VDb25z
dHJ1Y3Rvci5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTSW1hZ2VEYXRhQ3VzdG9tLmNwcCINCiAJCQkJCT4N
CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAg
LTQ1MzkyLDEwICs0NTQyMCw2IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwv
RmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkZhY3RvcnkuaCINCi0JCQkJ
CT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAiDQogCQkJCQk+DQogCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00ODUzNyw2ICs0ODU2MSwxMCBAQAogCQkJCT4NCiAJCQk8
L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbHVnaW5zXFBsdWdpblN0
cmF0ZWd5LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbHVnaW5zXFBsdWdpblN0cmVhbS5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpA
QCAtNDg1NjAsMTAgKzQ4NTg4LDYgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxl
DQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsdWdpbnNcd2luXFBsdWdpbkRhdGFXaW4uY3BwIg0K
LQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHBsdWdpbnNcd2luXFBsdWdpbk1lc3NhZ2VUaHJvdHRsZXJXaW4uY3BwIg0KIAkJCQkJPg0KIAkJ
CQk8L0ZpbGU+DQpAQCAtNTAxMzcsMTkgKzUwMTYxLDE5IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4N
CiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRGF0YWJhc2UuaCIN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkRhdGFiYXNlLmNwcCINCiAJCQkJPg0K
IAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURC
RGF0YWJhc2UuY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRGF0YWJhc2Uu
aCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHN0b3JhZ2VcSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHN0b3JhZ2VcSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+
DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkRhdGFiYXNlQmFj
a2VuZEltcGwuY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRGF0YWJhc2VC
YWNrZW5kSW1wbC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQpAQCAtNTAxODEs
OTkgKzUwMjA1LDEyMyBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVs
YXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkluZGV4LmNwcCINCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxzdG9yYWdlXElEQkZhY3RvcnkuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxl
DQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJJbmRleC5oIg0KKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRmFjdG9yeS5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQog
CQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkluZGV4QmFja2VuZElu
dGVyZmFjZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRmFjdG9yeS5oIg0K
IAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3Rv
cmFnZVxJREJJbmRleEJhY2tlbmRJbXBsLmNwcCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9y
YWdlXElEQkZhY3RvcnkuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCSW5kZXhCYWNrZW5kSW1wbC5oIg0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcCINCiAJCQkJPg0K
IAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURC
S2V5LmNwcCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkZhY3RvcnlCYWNrZW5k
SW1wbC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQ
YXRoPSIuLlxzdG9yYWdlXElEQktleS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2Vc
SURCRmFjdG9yeUJhY2tlbmRJbXBsLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUN
Ci0JCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQktleVJhbmdlLmNwcCINCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkZhY3RvcnlCYWNrZW5kSW1wbC5oIg0KIAkJCQk+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJL
ZXlSYW5nZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCRmFjdG9yeUJhY2tl
bmRJbnRlcmZhY2UuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJPYmplY3RTdG9yZS5jcHAiDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cc3RvcmFnZVxJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5jcHAiDQogCQkJCT4N
CiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElE
Qk9iamVjdFN0b3JlLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJGYWN0b3J5
QmFja2VuZEludGVyZmFjZS5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCIN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNl
LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIu
LlxzdG9yYWdlXElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCINCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxzdG9yYWdlXElEQkluZGV4LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8Rmls
ZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50
ZXJmYWNlLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJJbmRleC5oIg0KIAkJ
CQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFn
ZVxJREJSZXF1ZXN0LmNwcCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkluZGV4
QmFja2VuZEltcGwuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJSZXF1ZXN0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cc3RvcmFnZVxJREJJbmRleEJhY2tlbmRJbXBsLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQog
CQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQlN1Y2Nlc3NFdmVudC5j
cHAiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJJbmRleEJhY2tlbmRJbnRlcmZh
Y2UuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHN0b3JhZ2VcSURCU3VjY2Vzc0V2ZW50LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3Rv
cmFnZVxJREJLZXkuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJGYWN0b3J5LmNwcCINCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxzdG9yYWdlXElEQktleS5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJGYWN0b3J5LmgiDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cc3RvcmFnZVxJREJLZXlSYW5nZS5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQog
CQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlLmNwcCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQktleVJhbmdl
LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIu
LlxzdG9yYWdlXElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cc3RvcmFnZVxJREJPYmplY3RTdG9yZS5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQog
CQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkZhY3RvcnlCYWNrZW5k
SW1wbC5jcHAiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJPYmplY3RTdG9yZS5o
Ig0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
c3RvcmFnZVxJREJGYWN0b3J5QmFja2VuZEltcGwuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxz
dG9yYWdlXElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxl
Pg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3Rv
cmFnZVxJREJSZXF1ZXN0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHN0b3JhZ2VcSURCUmVxdWVzdC5oIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJTdWNjZXNz
RXZlbnQuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cc3RvcmFnZVxJREJTdWNjZXNzRXZlbnQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4N
CiAJCQk8RmlsZQ0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IGMyM2I3
NDIwZDM3ZTVjNjU1YmUxY2U2MmMxMGM4MjIyOGI2MTU4NDUuLjYxMTAwZTBkZmYzNjlmYjE0MTg5
YTgwYzdmZTU4ZDMzNzdmOWE5YWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNw
cApAQCAtNjMsMTAgKzYzLDEyIEBAIFN0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJl
bCgpCiAgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVn
eSgpLT5maWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpOwogfQogCisjaWYgUExBVEZPUk0o
TUFDKQogU3RyaW5nIGNvcHlJbWFnZVVua25vd25GaWxlTGFiZWwoKQogewogICAgIHJldHVybiBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29weUltYWdlVW5r
bm93bkZpbGVMYWJlbCgpOwogfQorI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCkKQEAgLTE1NCwx
MCArMTU2LDEyIEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKICAg
ICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNv
bnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpCiB7CiAgICAgcmV0
dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0
TWVudUl0ZW1UYWdTZWFyY2hJblNwb3RsaWdodCgpOwogfQorI2VuZGlmCiAKIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQogewpAQCAtMjA5LDEwICsyMTMsMTIgQEAgU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKICAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVn
aWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51
KCk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hv
d0ZvbnRzKCkKIHsKICAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1Nob3dGb250cygpOwogfQorI2VuZGlmCiAK
IFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKIHsKQEAgLTIzNCw2ICsyNDAsNyBAQCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3V0bGluZSgpCiAgICAgcmV0dXJuIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPdXRs
aW5lKCk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
U3R5bGVzKCkKIHsKICAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlv
blN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ1N0eWxlcygpOwpAQCAtMjU4LDYgKzI2NSw3
IEBAIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wU3BlYWtpbmcoKQogewogICAgIHJldHVy
biBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1l
bnVJdGVtVGFnU3RvcFNwZWFraW5nKCk7CiB9CisjZW5kaWYKIAogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKIHsKQEAgLTI4NCw2ICsyOTIsOCBAQCBTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKQogICAgIHJldHVybiBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnUmln
aHRUb0xlZnQoKTsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKKwogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHkoKQogewogICAgIHJldHVybiBwbGF0
Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVt
VGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSgpOwpAQCAtMzQ4LDYgKzM1OCw4IEBAIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKGNvbnN0IFN0cmluZyYgcmVwbGFjZWRT
dHJpbmcpCiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25T
dHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdDaGFuZ2VCYWNrKHJlcGxhY2VkU3RyaW5nKTsK
IH0KKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKICAgICAKIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdJbnNwZWN0RWxlbWVudCgpCiB7CkBAIC00MDYsMTAgKzQxOCwxMiBAQCBTdHJpbmcgQVhE
ZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCkKICAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVn
aWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9u
VGV4dCgpOwogfQogCisjaWYgUExBVEZPUk0oTUFDKQogU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91
cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlwZSkKIHsKICAgICByZXR1cm4gcGxhdGZvcm1TdHJh
dGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPkFYQVJJQUNvbnRlbnRHcm91cFRleHQo
YXJpYVR5cGUpOwogfQorI2VuZGlmCiAgICAgCiBTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCkK
IHsKQEAgLTQ3MSw2ICs0ODUsMTggQEAgU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQogICAg
IHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+dW5r
bm93bkZpbGVTaXplVGV4dCgpOwogfQogCisjaWYgUExBVEZPUk0oV0lOKQorU3RyaW5nIHVwbG9h
ZEZpbGVUZXh0KCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXph
dGlvblN0cmF0ZWd5KCktPnVwbG9hZEZpbGVUZXh0KCk7Cit9CisKK1N0cmluZyBhbGxGaWxlc1Rl
eHQoKQoreworICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9jYWxpemF0aW9uU3Ry
YXRlZ3koKS0+YWxsRmlsZXNUZXh0KCk7Cit9CisjZW5kaWYKKwogU3RyaW5nIGltYWdlVGl0bGUo
Y29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICByZXR1
cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmltYWdlVGl0
bGUoZmlsZW5hbWUsIHNpemUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVn
aW5EYXRhV2luLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luRGF0YVdpbi5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxZmUwNzNmOGFmYjQzYWVjNTdhZjQ0MzZlNWRi
YWUxMjhiZWZlZmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5EYXRhV2luLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDY0ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICAgIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCi0KLSNpbmNsdWRlICJQbHVnaW5EYXRhYmFz
ZS5oIgotI2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci12b2lkIFBsdWdpbkRhdGE6OmluaXRQbHVnaW5zKCkKLXsKLSAgICBQbHVnaW5EYXRhYmFzZSAq
ZGIgPSBQbHVnaW5EYXRhYmFzZTo6aW5zdGFsbGVkUGx1Z2lucygpOwotICAgIGNvbnN0IFZlY3Rv
cjxQbHVnaW5QYWNrYWdlKj4gJnBsdWdpbnMgPSBkYi0+cGx1Z2lucygpOwotCi0gICAgZm9yICh1
bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwbHVnaW5zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIFBs
dWdpblBhY2thZ2UqIHBhY2thZ2UgPSBwbHVnaW5zW2ldOwotCi0gICAgICAgIFBsdWdpbkluZm8g
aW5mbzsKLSAgICAgICAgaW5mby5uYW1lID0gcGFja2FnZS0+bmFtZSgpOwotICAgICAgICBpbmZv
LmZpbGUgPSBwYWNrYWdlLT5maWxlTmFtZSgpOwotICAgICAgICBpbmZvLmRlc2MgPSBwYWNrYWdl
LT5kZXNjcmlwdGlvbigpOwotCi0gICAgICAgIGNvbnN0IE1JTUVUb0Rlc2NyaXB0aW9uc01hcCYg
bWltZVRvRGVzY3JpcHRpb25zID0gcGFja2FnZS0+bWltZVRvRGVzY3JpcHRpb25zKCk7Ci0gICAg
ICAgIE1JTUVUb0Rlc2NyaXB0aW9uc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWltZVRvRGVz
Y3JpcHRpb25zLmVuZCgpOwotICAgICAgICBmb3IgKE1JTUVUb0Rlc2NyaXB0aW9uc01hcDo6Y29u
c3RfaXRlcmF0b3IgaXQgPSBtaW1lVG9EZXNjcmlwdGlvbnMuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7Ci0gICAgICAgICAgICBNaW1lQ2xhc3NJbmZvIG1pbWU7Ci0KLSAgICAgICAgICAgIG1p
bWUudHlwZSA9IGl0LT5maXJzdDsKLSAgICAgICAgICAgIG1pbWUuZGVzYyA9IGl0LT5zZWNvbmQ7
Ci0gICAgICAgICAgICBtaW1lLmV4dGVuc2lvbnMgPSBwYWNrYWdlLT5taW1lVG9FeHRlbnNpb25z
KCkuZ2V0KG1pbWUudHlwZSk7Ci0KLSAgICAgICAgICAgIGluZm8ubWltZXMuYXBwZW5kKG1pbWUp
OwotICAgICAgICB9Ci0KLSAgICAgICAgbV9wbHVnaW5zLmFwcGVuZChpbmZvKTsKLSAgICB9Ci19
Ci0KLXZvaWQgUGx1Z2luRGF0YTo6cmVmcmVzaCgpCi17Ci0gICAgUGx1Z2luRGF0YWJhc2UgKmRi
ID0gUGx1Z2luRGF0YWJhc2U6Omluc3RhbGxlZFBsdWdpbnMoKTsKLSAgICBkYi0+cmVmcmVzaCgp
OwotfQotCi19OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2lu
L0NoYW5nZUxvZwppbmRleCBkNGE4NTBlZjNlNzRlMmYwOGU1MzhmZjMwNTYzZjBlZjBjOWM2YTQ1
Li4xZTZkZmMwMjA2OTljMjgxZGNiYmM5MTY3OTMwNzI1MTgzMzY3YTA2IDEwMDY0NAotLS0gYS9X
ZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyMiBAQAorMjAxMC0wOC0wMyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgVHVybiBvbiBQTEFURk9STV9TVFJBVEVHSUVTIG9uIFdpbmRvd3MKKworICAgICAgICBG
aXhlcyA8aHR0cDovL3dlYmtpdC5vcmcvYi80MzQzMT4uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlTG9jYWxpemVkU3RyaW5ncy5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcDogQWRkZWQuIEJhc2VkIG9uIHRoZSBNYWMKKyAgICAgICAgZXF1aXZhbGVudC4KKyAgICAg
ICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSk6IENyZWF0ZXMgdGhlIHNpbmds
ZXRvbiBpbnN0YW5jZS4KKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6V2ViUGxhdGZv
cm1TdHJhdGVnaWVzKTogUmVnaXN0ZXJzIHRoZQorICAgICAgICBzaW5nbGV0b24gaW5zdGFuY2Ug
YXMgdGhlIFBsYXRmb3JtU3RyYXRlZ2llcyBpbnN0YW5jZSBmb3IgV2ViQ29yZS4KKworICAgICAg
ICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQbHVnaW5TdHJhdGVneSk6CisgICAgICAg
IChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5KToKKyAg
ICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSk6
CisgICAgICAgIFJldHVybiBvdXJzZWx2ZXMgYXMgdGhlIHN0cmF0ZWd5LgorCisgICAgICAgIChX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlZnJlc2hQbHVnaW5zKToKKyAgICAgICAgKFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Z2V0UGx1Z2luSW5mbyk6CisgICAgICAgIE1vdmVkIGNvZGUgaGVyZSBm
cm9tIFdlYkNvcmUncyBQbHVnaW5EYXRhV2luLmNwcCBmaWxlLgorCisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OnNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbik6CisgICAgICAgIChX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCk6CisgICAgICAg
IChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmlucHV0RWxlbWVudEFsdFRleHQpOgorICAgICAgICAo
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCk6CisgICAgICAg
IChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwpOgorICAg
ICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJl
bCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09w
ZW5MaW5rSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2spOgorICAgICAgICAoV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKToKKyAgICAg
ICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5O
ZXdXaW5kb3cpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0
ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRv
dyk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0Nv
cHkpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdH
b0JhY2spOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1U
YWdHb0ZvcndhcmQpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdTdG9wKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1l
bnVJdGVtVGFnUmVsb2FkKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnQ3V0KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnUGFzdGUpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKToKKyAgICAgICAgKFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZyk6CisgICAg
ICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYik6
CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0xvb2tV
cEluRGljdGlvbmFyeSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRN
ZW51SXRlbVRhZ09wZW5MaW5rKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcik6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSk6CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcpOgorICAgICAg
ICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5n
V2hpbGVUeXBpbmcpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcpOgorICAgICAgICAoV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSk6CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQpOgorICAgICAgICAoV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMpOgorICAgICAgICAoV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUpOgorICAgICAg
ICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKToKKyAg
ICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0Rp
cmVjdGlvbk1lbnUpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24pOgorICAgICAgICAoV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCk6CisgICAgICAg
IChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KToK
KyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnU2hvd1Nw
ZWxsaW5nUGFuZWwpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdJbnNwZWN0RWxlbWVudCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OnNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQpOgorICAg
ICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWFdlYkFyZWFUZXh0KToKKyAgICAgICAgKFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6QVhMaW5rVGV4dCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OkFYTGlzdE1hcmtlclRleHQpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpBWEltYWdlTWFwVGV4dCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OkFY
SGVhZGluZ1RleHQpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWERlZmluaXRp
b25MaXN0VGVybVRleHQpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWERlZmlu
aXRpb25MaXN0RGVmaW5pdGlvblRleHQpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVz
OjpBWEJ1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpB
WFJhZGlvQnV0dG9uQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OkFYVGV4dEZpZWxkQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OkFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYik6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6QVhMaW5rQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OkFYTWVudUxpc3RBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6QVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OnVua25vd25GaWxlU2l6ZVRleHQpOgorICAgICAgICAoV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjp1cGxvYWRGaWxlVGV4dCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmFsbEZpbGVzVGV4dCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Om1pc3Np
bmdQbHVnaW5UZXh0KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3Jhc2hlZFBs
dWdpblRleHQpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbWFnZVRpdGxlKToK
KyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bXVsdGlwbGVGaWxlVXBsb2FkVGV4dCk6
CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Om1lZGlhRWxlbWVudExvYWRpbmdTdGF0
ZVRleHQpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjptZWRpYUVsZW1lbnRMaXZl
QnJvYWRjYXN0U3RhdGVUZXh0KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9j
YWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dCk6CisgICAgICAg
IChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKToK
KyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1p
c3NpbmdUZXh0KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6dmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KToKKyAgICAgICAgKFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6dmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCk6CisgICAgICAgIChX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KToKKyAgICAgICAgKFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZU92ZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnZhbGlkYXRp
b25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCk6CisgICAgICAgIE1vdmVkIGNvZGUgaGVyZSBmcm9t
IFdlYkNvcmVMb2NhbGl6ZWRTdHJpbmdzLmNwcCAoYW5kIHNsaWdodGx5IGNsZWFuZWQKKyAgICAg
ICAgaXQgdXApLgorCisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmlzTGlua1Zpc2l0
ZWQpOgorICAgICAgICAoV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjphZGRWaXNpdGVkTGluayk6Cisg
ICAgICAgIENvcGllZCBjb2RlIGZyb20gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMubW0uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaDogQWRkZWQuCisKKyAgICAgICAgKiBXZWJLaXQudmNwcm9qL1dlYktpdC52
Y3Byb2o6IFJlbW92ZWQgV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MsIGFkZGVkCisgICAgICAgIFdl
YlBsYXRmb3JtU3RyYXRlZ2llcy4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAo
V2ViVmlldzo6aW5pdFdpdGhGcmFtZSk6IEluaXRpYWxpemUgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LgorCiAyMDEwLTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dl
YktpdC93aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwIGIvV2ViS2l0L3dpbi9XZWJDb3Jl
TG9jYWxpemVkU3RyaW5ncy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkMmYx
N2ZkMzUyNDk2NGU3ZmIzMmE0NDM1OGEzMjliZGE2MzBkY2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlTG9jYWxpemVkU3Ry
aW5ncy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViTG9jYWxpemFibGVTdHJpbmdzLmgiCi0jaW5j
bHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJp
bmdzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5oPgotI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi11c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKLQotU3RyaW5nIFdlYkNvcmU6OnNlYXJjaGFibGVJbmRleEludHJvZHVj
dGlvbigpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiVGhpcyBpcyBhIHNlYXJj
aGFibGUgaW5kZXguIEVudGVyIHNlYXJjaCBrZXl3b3JkczogIiwgInRleHQgdGhhdCBhcHBlYXJz
IGF0IHRoZSBzdGFydCBvZiBuZWFybHktb2Jzb2xldGUgd2ViIHBhZ2VzIGluIHRoZSBmb3JtIG9m
IGEgJ3NlYXJjaGFibGUgaW5kZXgnIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6c3VibWl0QnV0dG9u
RGVmYXVsdExhYmVsKCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJTdWJtaXQi
LCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2Vz
IikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6aW5wdXRFbGVtZW50QWx0VGV4dCgpIHsgcmV0dXJuIFN0
cmluZyhMUENUU1RSX1VJX1NUUklOR19LRVkoIlN1Ym1pdCIsICJTdWJtaXQgKGlucHV0IGVsZW1l
bnQpIiwgImFsdCB0ZXh0IGZvciA8aW5wdXQ+IGVsZW1lbnRzIHdpdGggbm8gYWx0LCB0aXRsZSwg
b3IgdmFsdWUiKSk7IH0KLVN0cmluZyBXZWJDb3JlOjpyZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgp
IHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiUmVzZXQiLCAiZGVmYXVsdCBsYWJl
bCBmb3IgUmVzZXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFnZXMiKSk7IH0KLVN0cmluZyBX
ZWJDb3JlOjpmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkgeyByZXR1cm4gU3RyaW5nKExQQ1RT
VFJfVUlfU1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgZmlsZSBidXR0b24gdXNlZCBp
biBIVE1MIGZvcm1zIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6ZmlsZUJ1dHRvbk5vRmlsZVNlbGVj
dGVkTGFiZWwoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIm5vIGZpbGUgc2Vs
ZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGluIGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3Jt
cyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0ZWQiKSk7IH0KLVN0cmluZyBXZWJDb3JlOjpjb250ZXh0
TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJf
VUlfU1RSSU5HKCJPcGVuIExpbmsgaW4gTmV3IFdpbmRvdyIsICJPcGVuIGluIE5ldyBXaW5kb3cg
Y29udGV4dCBtZW51IGl0ZW0iKSk7IH0KLVN0cmluZyBXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdEb3dubG9hZExpbmtUb0Rpc2soKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkco
IkRvd25sb2FkIExpbmtlZCBGaWxlIiwgIkRvd25sb2FkIExpbmtlZCBGaWxlIGNvbnRleHQgbWVu
dSBpdGVtIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtU
b0NsaXBib2FyZCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiQ29weSBMaW5r
IiwgIkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpKTsgfQotU3RyaW5nIFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCkgeyByZXR1cm4gU3RyaW5nKExQ
Q1RTVFJfVUlfU1RSSU5HKCJPcGVuIEltYWdlIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBJbWFnZSBp
biBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpIHsgcmV0dXJuIFN0cmluZyhMUENU
U1RSX1VJX1NUUklORygiRG93bmxvYWQgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29udGV4dCBt
ZW51IGl0ZW0iKSk7IH0KLVN0cmluZyBXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1h
Z2VUb0NsaXBib2FyZCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiQ29weSBJ
bWFnZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIikpOyB9Ci1TdHJpbmcgV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKSB7IHJldHVybiBTdHJp
bmcoTFBDVFNUUl9VSV9TVFJJTkcoIk9wZW4gRnJhbWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZy
YW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKSk7IH0KLVN0cmluZyBXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RS
SU5HKCJDb3B5IiwgIkNvcHkgY29udGV4dCBtZW51IGl0ZW0iKSk7IH0KLVN0cmluZyBXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9T
VFJJTkcoIkJhY2siLCAiQmFjayBjb250ZXh0IG1lbnUgaXRlbSIpKTsgfQotU3RyaW5nIFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RS
X1VJX1NUUklORygiRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQgbWVudSBpdGVtIikpOyB9Ci1T
dHJpbmcgV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU3RvcCgpIHsgcmV0dXJuIFN0cmluZyhM
UENUU1RSX1VJX1NUUklORygiU3RvcCIsICJTdG9wIGNvbnRleHQgbWVudSBpdGVtIikpOyB9Ci1T
dHJpbmcgV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkgeyByZXR1cm4gU3RyaW5n
KExQQ1RTVFJfVUlfU1RSSU5HKCJSZWxvYWQiLCAiUmVsb2FkIGNvbnRleHQgbWVudSBpdGVtIikp
OyB9Ci1TdHJpbmcgV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ3V0KCkgeyByZXR1cm4gU3Ry
aW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJDdXQiLCAiQ3V0IGNvbnRleHQgbWVudSBpdGVtIikpOyB9
Ci1TdHJpbmcgV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKSB7IHJldHVybiBTdHJp
bmcoTFBDVFNUUl9VSV9TVFJJTkcoIlBhc3RlIiwgIlBhc3RlIGNvbnRleHQgbWVudSBpdGVtIikp
OyB9Ci1TdHJpbmcgV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKSB7
IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIk5vIEd1ZXNzZXMgRm91bmQiLCAiTm8g
R3Vlc3NlcyBGb3VuZCBjb250ZXh0IG1lbnUgaXRlbSIpKTsgfQotU3RyaW5nIFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nKCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJf
VUlfU1RSSU5HKCJJZ25vcmUgU3BlbGxpbmciLCAiSWdub3JlIFNwZWxsaW5nIGNvbnRleHQgbWVu
dSBpdGVtIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTGVhcm5TcGVs
bGluZygpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiTGVhcm4gU3BlbGxpbmci
LCAiTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKSk7IH0KLVN0cmluZyBXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9V
SV9TVFJJTkcoIlNlYXJjaCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggaW4gR29vZ2xlIGNvbnRleHQg
bWVudSBpdGVtIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTG9va1Vw
SW5EaWN0aW9uYXJ5KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJMb29rIFVw
IGluIERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVt
IikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKSB7IHJl
dHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIk9wZW4gTGluayIsICJPcGVuIExpbmsgY29u
dGV4dCBtZW51IGl0ZW0iKSk7IH0KLVN0cmluZyBXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJ
Z25vcmVHcmFtbWFyKCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJJZ25vcmUg
R3JhbW1hciIsICJJZ25vcmUgR3JhbW1hciBjb250ZXh0IG1lbnUgaXRlbSIpKTsgfQotU3RyaW5n
IFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpIHsgcmV0dXJuIFN0cmlu
ZyhMUENUU1RSX1VJX1NUUklORygiU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAiU3BlbGxpbmcgYW5k
IEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJ
X1NUUklORygiQ2hlY2sgRG9jdW1lbnQgTm93IiwgIkNoZWNrIHNwZWxsaW5nIGNvbnRleHQgbWVu
dSBpdGVtIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVs
bGluZ1doaWxlVHlwaW5nKCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJDaGVj
ayBTcGVsbGluZyBXaGlsZSBUeXBpbmciLCAiQ2hlY2sgc3BlbGxpbmcgd2hpbGUgdHlwaW5nIGNv
bnRleHQgbWVudSBpdGVtIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
Q2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RS
SU5HKCJDaGVjayBHcmFtbWFyIFdpdGggU3BlbGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNw
ZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnRm9udE1lbnUoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIkZv
bnQiLCAiRm9udCBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKSk7IH0KLVN0cmluZyBXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdCb2xkKCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5H
KCJCb2xkIiwgIkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKSk7IH0KLVN0cmluZyBXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJ
TkcoIkl0YWxpYyIsICJJdGFsaWMgY29udGV4dCBtZW51IGl0ZW0iKSk7IH0KLVN0cmluZyBXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNU
Ul9VSV9TVFJJTkcoIlVuZGVybGluZSIsICJVbmRlcmxpbmUgY29udGV4dCBtZW51IGl0ZW0iKSk7
IH0KLVN0cmluZyBXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkgeyByZXR1cm4g
U3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJPdXRsaW5lIiwgIk91dGxpbmUgY29udGV4dCBtZW51
IGl0ZW0iKSk7IH0KLVN0cmluZyBXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGly
ZWN0aW9uTWVudSgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiUGFyYWdyYXBo
IERpcmVjdGlvbiIsICJQYXJhZ3JhcGggZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIp
KTsgfQotU3RyaW5nIFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51
KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJTZWxlY3Rpb24gRGlyZWN0aW9u
IiwgIlNlbGVjdGlvbiBkaXJlY3Rpb24gY29udGV4dCBzdWItbWVudSBpdGVtIikpOyB9Ci1TdHJp
bmcgV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpIHsgcmV0dXJu
IFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiRGVmYXVsdCIsICJEZWZhdWx0IHdyaXRpbmcgZGly
ZWN0aW9uIGNvbnRleHQgbWVudSBpdGVtIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnTGVmdFRvUmlnaHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkco
IkxlZnQgdG8gUmlnaHQiLCAiTGVmdCB0byBSaWdodCBjb250ZXh0IG1lbnUgaXRlbSIpKTsgfQot
U3RyaW5nIFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkgeyByZXR1cm4g
U3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJSaWdodCB0byBMZWZ0IiwgIlJpZ2h0IHRvIExlZnQg
Y29udGV4dCBtZW51IGl0ZW0iKSk7IH0KLVN0cmluZyBXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1U
YWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNob3cpIHsgcmV0dXJuIFN0cmluZyhzaG93ID8gTFBD
VFNUUl9VSV9TVFJJTkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVudSBpdGVtIHRp
dGxlIikgOiBMUENUU1RSX1VJX1NUUklORygiSGlkZSBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJt
ZW51IGl0ZW0gdGl0bGUiKSk7IH0KLVN0cmluZyBXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJ
bnNwZWN0RWxlbWVudCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiSW5zcGVj
dCBFbGVtZW50IiwgIkluc3BlY3QgRWxlbWVudCBjb250ZXh0IG1lbnUgaXRlbSIpKTsgfQotU3Ry
aW5nIFdlYkNvcmU6OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpIHsgcmV0dXJuIFN0
cmluZyhMUENUU1RSX1VJX1NUUklORygiTm8gcmVjZW50IHNlYXJjaGVzIiwgIkxhYmVsIGZvciBv
bmx5IGl0ZW0gaW4gbWVudSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNo
IGZpZWxkIGltYWdlLCB3aGVuIG5vIHNlYXJjaGVzIGhhdmUgYmVlbiBwZXJmb3JtZWQiKSk7IH0K
LVN0cmluZyBXZWJDb3JlOjpzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkgeyByZXR1cm4g
U3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJSZWNlbnQgU2VhcmNoZXMiLCAibGFiZWwgZm9yIGZp
cnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhhdCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNl
YXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBhcyBlbWJlZGRlZCBtZW51IHRpdGxlIikpOyB9Ci1TdHJp
bmcgV2ViQ29yZTo6c2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkgeyByZXR1cm4g
U3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJDbGVhciBSZWNlbnQgU2VhcmNoZXMiLCAibWVudSBp
dGVtIGluIFJlY2VudCBTZWFyY2hlcyBtZW51IHRoYXQgZW1wdGllcyBtZW51J3MgY29udGVudHMi
KSk7IH0KLVN0cmluZyBXZWJDb3JlOjpBWFdlYkFyZWFUZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQ
Q1RTVFJfVUlfU1RSSU5HKCJ3ZWIgYXJlYSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIHdlYiBhcmVhIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6QVhMaW5rVGV4dCgpIHsgcmV0
dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygibGluayIsICJhY2Nlc3NpYmlsaXR5IHJvbGUg
ZGVzY3JpcHRpb24gZm9yIGxpbmsiKSk7IH0KLVN0cmluZyBXZWJDb3JlOjpBWExpc3RNYXJrZXJU
ZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJsaXN0IG1hcmtlciIsICJh
Y2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGxpc3QgbWFya2VyIikpOyB9Ci1TdHJp
bmcgV2ViQ29yZTo6QVhJbWFnZU1hcFRleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9T
VFJJTkcoImltYWdlIG1hcCIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGlt
YWdlIG1hcCIpKTsgfQotU3RyaW5nIFdlYkNvcmU6OkFYSGVhZGluZ1RleHQoKSB7IHJldHVybiBT
dHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoImhlYWRpbmciLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRl
c2NyaXB0aW9uIGZvciBoZWFkaW5ncyIpKTsgfQotU3RyaW5nIFdlYkNvcmU6OkFYRGVmaW5pdGlv
bkxpc3RUZXJtVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygidGVybSIs
ICJ0ZXJtIHdvcmQgb2YgYSBkZWZpbml0aW9uIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6QVhEZWZp
bml0aW9uTGlzdERlZmluaXRpb25UZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RS
SU5HKCJkZWZpbml0aW9uIiwgImRlZmluaXRpb24gcGhyYXNlIikpOyB9Ci1TdHJpbmcgV2ViQ29y
ZTo6QVhCdXR0b25BY3Rpb25WZXJiKCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5H
KCJwcmVzcyIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBh
IGJ1dHRvbiBpcyBwcmVzc2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKSk7IH0KLVN0cmlu
ZyBXZWJDb3JlOjpBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpIHsgcmV0dXJuIFN0cmluZyhMUENU
U1RSX1VJX1NUUklORygic2VsZWN0IiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2ls
bCBvY2N1ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNz
aWJpbGl0eSIpKTsgfQotU3RyaW5nIFdlYkNvcmU6OkFYVGV4dEZpZWxkQWN0aW9uVmVyYigpIHsg
cmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiYWN0aXZhdGUiLCAiVmVyYiBzdGF0aW5n
IHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSB0ZXh0IGZpZWxkIGlzIHNlbGVjdGVk
LCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKSk7IH0KLVN0cmluZyBXZWJDb3JlOjpBWENoZWNr
ZWRDaGVja0JveEFjdGlvblZlcmIoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkco
InVuY2hlY2siLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4g
YSBjaGVja2VkIGNoZWNrYm94IGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIp
KTsgfQotU3RyaW5nIFdlYkNvcmU6OkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkgeyBy
ZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJjaGVjayIsICJWZXJiIHN0YXRpbmcgdGhl
IGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhbiB1bmNoZWNrZWQgY2hlY2tib3ggaXMgY2xp
Y2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5IikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6QVhM
aW5rQWN0aW9uVmVyYigpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygianVtcCIs
ICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGxpbmsgaXMg
Y2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5IikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6
QVhNZW51TGlzdEFjdGlvblZlcmIoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkco
Im9wZW4iLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBz
ZWxlY3QgZWxlbWVudCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKSk7IH0K
LVN0cmluZyBXZWJDb3JlOjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkgeyByZXR1cm4gU3Ry
aW5nKExQQ1RTVFJfVUlfU1RSSU5HX0tFWSgicHJlc3MiLCAicHJlc3MgKHNlbGVjdCBlbGVtZW50
KSIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHNlbGVj
dCBlbGVtZW50J3MgcG9wdXAgbGlzdCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxp
dHkiKSk7IH0KLVN0cmluZyBXZWJDb3JlOjp1bmtub3duRmlsZVNpemVUZXh0KCkgeyByZXR1cm4g
U3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJVbmtub3duIiwgIlVua25vd24gZmlsZXNpemUgRlRQ
IGRpcmVjdG9yeSBsaXN0aW5nIGl0ZW0iKSk7IH0KLVN0cmluZyBXZWJDb3JlOjp1cGxvYWRGaWxl
VGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiVXBsb2FkIGZpbGUiLCAi
KFdpbmRvd3MpIEZvcm0gc3VibWl0IGZpbGUgdXBsb2FkIGRpYWxvZyB0aXRsZSIpKTsgfQotU3Ry
aW5nIFdlYkNvcmU6OmFsbEZpbGVzVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NU
UklORygiQWxsIEZpbGVzIiwgIihXaW5kb3dzKSBGb3JtIHN1Ym1pdCBmaWxlIHVwbG9hZCBhbGwg
ZmlsZXMgcG9wLXVwIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6bWlzc2luZ1BsdWdpblRleHQoKSB7
IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJl
bCB0ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWdpbiBpcyBtaXNzaW5nIikpOyB9Ci1TdHJpbmcg
V2ViQ29yZTo6Y3Jhc2hlZFBsdWdpblRleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9T
VFJJTkcoIlBsdWctaW4gRmFpbHVyZSIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgaWYgcGx1Z2lu
IGhvc3QgcHJvY2VzcyBoYXMgY3Jhc2hlZCIpKTsgfQotU3RyaW5nIFdlYkNvcmU6OmltYWdlVGl0
bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgCi17IAotICAg
IHN0YXRpYyBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZvcm1hdChBZG9wdENGLCBVSV9TVFJJTkco
IiVAICVkXHhDM1x4OTclZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUg
aW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSk7Ci0KLSAgICBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IGZpbGVuYW1lQ0YoQWRvcHRDRiwgZmlsZW5hbWUuY3JlYXRlQ0ZT
dHJpbmcoKSk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXN1bHQoQWRvcHRDRiwgQ0ZT
dHJpbmdDcmVhdGVXaXRoRm9ybWF0KDAsIDAsIGZvcm1hdC5nZXQoKSwgZmlsZW5hbWVDRi5nZXQo
KSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7Ci0KLSAgICByZXR1cm4gcmVzdWx0Lmdl
dCgpOwotfQotCi1TdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25lZCBudW1iZXJP
ZkZpbGVzKQotewotICAgIHN0YXRpYyBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZvcm1hdChBZG9w
dENGLCBVSV9TVFJJTkcoIiVkIGZpbGVzIiwgIkxhYmVsIHRvIGRlc2NyaWJlIHRoZSBudW1iZXIg
b2YgZmlsZXMgc2VsZWN0ZWQgaW4gYSBmaWxlIHVwbG9hZCBjb250cm9sIHRoYXQgYWxsb3dzIG11
bHRpcGxlIGZpbGVzIikpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVzdWx0KEFkb3B0
Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdCgwLCAwLCBmb3JtYXQuZ2V0KCksIG51bWJlck9m
RmlsZXMpKTsKLQotICAgIHJldHVybiByZXN1bHQuZ2V0KCk7Ci19Ci0KLSNpZiBFTkFCTEUoVklE
RU8pCi1TdHJpbmcgV2ViQ29yZTo6bWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpIHsgcmV0
dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiTG9hZGluZy4uLiIsICJNZWRpYSBjb250cm9s
bGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4gdGhlIG1lZGlhIGlzIGxvYWRpbmciKSk7IH0KLVN0cmlu
ZyBXZWJDb3JlOjptZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkgeyByZXR1cm4g
U3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJMaXZlIEJyb2FkY2FzdCIsICJNZWRpYSBjb250cm9s
bGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4gd2F0Y2hpbmcgYSBsaXZlIGJyb2FkY2FzdCIpKTsgfQot
Ci1TdHJpbmcgV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZyhjb25z
dCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIpCi0gICAg
ICAgIHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoImF1ZGlvIGVsZW1lbnQgY29udHJv
bGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGF1ZGlvIGVsZW1lbnQg
Y29udHJvbGxlciIpKTsKLSAgICBpZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKLSAgICAgICAg
cmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygidmlkZW8gZWxlbWVudCBjb250cm9sbGVy
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdmlkZW8gZWxlbWVudCBjb250
cm9sbGVyIikpOwotICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikKLSAgICAgICAgcmV0dXJu
IFN0cmluZyhMUENUU1RSX1VJX1NUUklORygibXV0ZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVz
Y3JpcHRpb24gZm9yIG11dGUgYnV0dG9uIikpOwotICAgIGlmIChuYW1lID09ICJVbk11dGVCdXR0
b24iKQotICAgICAgICByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJ1bm11dGUiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB0dXJuIG11dGUgb2ZmIGJ1dHRvbiIp
KTsKLSAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBTdHJpbmco
TFBDVFNUUl9VSV9TVFJJTkcoInBsYXkiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciBwbGF5IGJ1dHRvbiIpKTsKLSAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQotICAg
ICAgICByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJwYXVzZSIsICJhY2Nlc3NpYmls
aXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHBhdXNlIGJ1dHRvbiIpKTsKLSAgICBpZiAobmFtZSA9
PSAiU2xpZGVyIikKLSAgICAgICAgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygibW92
aWUgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHRpbWVsaW5lIHNs
aWRlciIpKTsKLSAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQotICAgICAgICByZXR1cm4g
U3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJ0aW1lbGluZSBzbGlkZXIgdGh1bWIiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB0aW1lbGluZSB0aHVtYiIpKTsKLSAgICBpZiAo
bmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJ
X1NUUklORygiYmFjayAzMCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlv
biBmb3Igc2VlayBiYWNrIDMwIHNlY29uZHMgYnV0dG9uIikpOwotICAgIGlmIChuYW1lID09ICJS
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJ
X1NUUklORygicmV0dXJuIHRvIHJlYWx0aW1lIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlw
dGlvbiBmb3IgcmV0dXJuIHRvIHJlYWwgdGltZSBidXR0b24iKSk7Ci0gICAgaWYgKG5hbWUgPT0g
IkN1cnJlbnRUaW1lRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9T
VFJJTkcoImVsYXBzZWQgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IGVsYXBzZWQgdGltZSBkaXNwbGF5IikpOwotICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5n
RGlzcGxheSIpCi0gICAgICAgIHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoInJlbWFp
bmluZyB0aW1lIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZSByZW1h
aW5pbmcgZGlzcGxheSIpKTsKLSAgICBpZiAobmFtZSA9PSAiU3RhdHVzRGlzcGxheSIpCi0gICAg
ICAgIHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoInN0YXR1cyIsICJhY2Nlc3NpYmls
aXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIG1vdmllIHN0YXR1cyIpKTsKLSAgICBpZiAobmFtZSA9
PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9T
VFJJTkcoImZ1bGxzY3JlZW4iLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBl
bnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpKTsKLSAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRC
dXR0b24iKQotICAgICAgICByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJmYXN0IGZv
cndhcmQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBmYXN0IGZvcndhcmQg
YnV0dG9uIikpOwotICAgIGlmIChuYW1lID09ICJTZWVrQmFja0J1dHRvbiIpCi0gICAgICAgIHJl
dHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoImZhc3QgcmV2ZXJzZSIsICJhY2Nlc3NpYmls
aXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGZhc3QgcmV2ZXJzZSBidXR0b24iKSk7Ci0gICAgaWYg
KG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbiIpCi0gICAgICAgIHJldHVybiBTdHJp
bmcoTFBDVFNUUl9VSV9TVFJJTkcoInNob3cgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxp
dHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Igc2hvdyBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIikpOwot
ICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKQotICAgICAgICByZXR1
cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJoaWRlIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nl
c3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGhpZGUgY2xvc2VkIGNhcHRpb25zIGJ1dHRv
biIpKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsK
LX0KLQotU3RyaW5nIFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4
dChjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxlbWVudCIp
Ci0gICAgICAgIHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoImF1ZGlvIGVsZW1lbnQg
cGxheWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9s
ZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVudCBjb250cm9sbGVyIikpOwotICAgIGlmIChu
YW1lID09ICJWaWRlb0VsZW1lbnQiKQotICAgICAgICByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlf
U1RSSU5HKCJ2aWRlbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxh
eSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29u
dHJvbGxlciIpKTsKLSAgICBpZiAobmFtZSA9PSAiTXV0ZUJ1dHRvbiIpCi0gICAgICAgIHJldHVy
biBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIm11dGUgYXVkaW8gdHJhY2tzIiwgImFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGZvciBtdXRlIGJ1dHRvbiIpKTsKLSAgICBpZiAobmFtZSA9PSAiVW5N
dXRlQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygidW5t
dXRlIGF1ZGlvIHRyYWNrcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdW4gbXV0ZSBi
dXR0b24iKSk7Ci0gICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQotICAgICAgICByZXR1cm4g
U3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJiZWdpbiBwbGF5YmFjayIsICJhY2Nlc3NpYmlsaXR5
IGhlbHAgdGV4dCBmb3IgcGxheSBidXR0b24iKSk7Ci0gICAgaWYgKG5hbWUgPT0gIlBhdXNlQnV0
dG9uIikKLSAgICAgICAgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygicGF1c2UgcGxh
eWJhY2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHBhdXNlIGJ1dHRvbiIpKTsKLSAg
ICBpZiAobmFtZSA9PSAiU2xpZGVyIikKLSAgICAgICAgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJ
X1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBm
b3IgdGltZWxpbmUgc2xpZGVyIikpOwotICAgIGlmIChuYW1lID09ICJTbGlkZXJUaHVtYiIpCi0g
ICAgICAgIHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIm1vdmllIHRpbWUgc2NydWJi
ZXIgdGh1bWIiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHRpbWVsaW5lIHNsaWRlciB0
aHVtYiIpKTsKLSAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikKLSAgICAgICAgcmV0dXJu
IFN0cmluZyhMUENUU1RSX1VJX1NUUklORygic2VlayBtb3ZpZSBiYWNrIDMwIHNlY29uZHMiLCAi
YWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGp1bXAgYmFjayAzMCBzZWNvbmRzIGJ1dHRvbiIp
KTsKLSAgICBpZiAobmFtZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCi0gICAgICAgIHJl
dHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoInJldHVybiBzdHJlYW1pbmcgbW92aWUgdG8g
cmVhbCB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciByZXR1cm4gc3RyZWFtaW5n
IG1vdmllIHRvIHJlYWwgdGltZSBidXR0b24iKSk7Ci0gICAgaWYgKG5hbWUgPT0gIkN1cnJlbnRU
aW1lRGlzcGxheSIpCi0gICAgICAgIHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoImN1
cnJlbnQgbW92aWUgdGltZSBpbiBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciBlbGFwc2VkIHRpbWUgZGlzcGxheSIpKTsKLSAgICBpZiAobmFtZSA9PSAiVGltZVJlbWFpbmlu
Z0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJudW1i
ZXIgb2Ygc2Vjb25kcyBvZiBtb3ZpZSByZW1haW5pbmciLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRl
eHQgZm9yIHJlbWFpbmluZyB0aW1lIGRpc3BsYXkiKSk7Ci0gICAgaWYgKG5hbWUgPT0gIlN0YXR1
c0Rpc3BsYXkiKQotICAgICAgICByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJjdXJy
ZW50IG1vdmllIHN0YXR1cyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbW92aWUgc3Rh
dHVzIGRpc3BsYXkiKSk7Ci0gICAgaWYgKG5hbWUgPT0gIlNlZWtCYWNrQnV0dG9uIikKLSAgICAg
ICAgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygic2VlayBxdWlja2x5IGJhY2siLCAi
YWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGZhc3QgcmV3aW5kIGJ1dHRvbiIpKTsKLSAgICBp
ZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24iKQotICAgICAgICByZXR1cm4gU3RyaW5nKExQ
Q1RTVFJfVUlfU1RSSU5HKCJzZWVrIHF1aWNrbHkgZm9yd2FyZCIsICJhY2Nlc3NpYmlsaXR5IGhl
bHAgdGV4dCBmb3IgZmFzdCBmb3J3YXJkIGJ1dHRvbiIpKTsKLSAgICBpZiAobmFtZSA9PSAiRnVs
bHNjcmVlbkJ1dHRvbiIpCi0gICAgICAgIHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkco
IlBsYXkgbW92aWUgaW4gZnVsbHNjcmVlbiBtb2RlIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0
IGZvciBlbnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpKTsKLSAgICBpZiAobmFtZSA9PSAiU2hvd0Ns
b3NlZENhcHRpb25zQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NU
UklORygic3RhcnQgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAiYWNjZXNzaWJpbGl0eSBo
ZWxwIHRleHQgZm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpKTsKLSAgICBpZiAobmFt
ZSA9PSAiSGlkZUNsb3NlZENhcHRpb25zQnV0dG9uIikKLSAgICAgICAgcmV0dXJuIFN0cmluZyhM
UENUU1RSX1VJX1NUUklORygic3RvcCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nl
c3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgaGlkZSBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIikpOwot
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1T
dHJpbmcgV2ViQ29yZTo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkK
LXsKLSAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQotICAgICAgICByZXR1cm4gU3RyaW5nKExQQ1RT
VFJfVUlfU1RSSU5HKCJpbmRlZmluaXRlIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQg
Zm9yIGFuIGluZGVmaW5pdGUgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlIikpOwotCi0gICAg
aW50IHNlY29uZHMgPSAoaW50KWZhYnNmKHRpbWUpOwotICAgIGludCBkYXlzID0gc2Vjb25kcyAv
ICg2MCAqIDYwICogMjQpOwotICAgIGludCBob3VycyA9IHNlY29uZHMgLyAoNjAgKiA2MCk7Ci0g
ICAgaW50IG1pbnV0ZXMgPSAoc2Vjb25kcyAvIDYwKSAlIDYwOwotICAgIHNlY29uZHMgJT0gNjA7
Ci0KLSAgICBpZiAoZGF5cykgewotICAgICAgICBzdGF0aWMgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBmb3JtYXQoQWRvcHRDRiwgVUlfU1RSSU5HKCIlMSRkIGRheXMgJTIkZCBob3VycyAlMyRkIG1p
bnV0ZXMgJTQkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBj
b250cm9sbGVyIHRpbWUgdmFsdWUgPj0gMSBkYXkiKSk7Ci0gICAgICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gcmVzdWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdCgwLCAwLCBm
b3JtYXQuZ2V0KCksIGRheXMsIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSk7Ci0gICAgICAgIHJl
dHVybiByZXN1bHQuZ2V0KCk7Ci0gICAgfQotCi0gICAgaWYgKGhvdXJzKSB7Ci0gICAgICAgIHN0
YXRpYyBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGZvcm1hdChBZG9wdENGLCBVSV9TVFJJTkcoIiUx
JGQgaG91cnMgJTIkZCBtaW51dGVzICUzJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAg
dGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYwIG1pbnV0ZXMiKSk7Ci0g
ICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVzdWx0KEFkb3B0Q0YsIENGU3RyaW5nQ3Jl
YXRlV2l0aEZvcm1hdCgwLCAwLCBmb3JtYXQuZ2V0KCksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRz
KSk7Ci0gICAgICAgIHJldHVybiByZXN1bHQuZ2V0KCk7Ci0gICAgfQotCi0gICAgaWYgKG1pbnV0
ZXMpIHsKLSAgICAgICAgc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZm9ybWF0KEFkb3B0
Q0YsIFVJX1NUUklORygiJTEkZCBtaW51dGVzICUyJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5
IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYwIHNlY29uZHMi
KSk7Ci0gICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVzdWx0KEFkb3B0Q0YsIENGU3Ry
aW5nQ3JlYXRlV2l0aEZvcm1hdCgwLCAwLCBmb3JtYXQuZ2V0KCksIG1pbnV0ZXMsIHNlY29uZHMp
KTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdC5nZXQoKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiBmb3JtYXQoQWRvcHRDRiwgVUlfU1RSSU5HKCIlMSRkIHNlY29u
ZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2
YWx1ZSA8IDYwIHNlY29uZHMiKSk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXN1bHQo
QWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0KDAsIDAsIGZvcm1hdC5nZXQoKSwgc2Vj
b25kcykpOwotICAgIHJldHVybiByZXN1bHQuZ2V0KCk7Ci19Ci0KLSNlbmRpZiAgLy8gRU5BQkxF
KFZJREVPKQotCi1TdHJpbmcgV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdU
ZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJ2YWx1ZSBtaXNzaW5nIiwg
IlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgcmVxdWlyZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIHRo
YXQgaGF2ZSBubyB2YWx1ZSIpKTsgfQotU3RyaW5nIFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdl
VHlwZU1pc21hdGNoVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygidHlw
ZSBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMg
d2l0aCBhIHZhbHVlIG5vdCBtYXRjaGluZyB0eXBlIikpOyB9Ci1TdHJpbmcgV2ViQ29yZTo6dmFs
aWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RT
VFJfVUlfU1RSSU5HKCJwYXR0ZXJuIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3Ig
aW5wdXQgZm9ybSBjb250cm9scyByZXF1aXJpbmcgYSBjb25zdHJhaW5lZCB2YWx1ZSBhY2NvcmRp
bmcgdG8gcGF0dGVybiIpKTsgfQotU3RyaW5nIFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9v
TG9uZ1RleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoInRvbyBsb25nIiwg
IlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBjb250cm9sIGVsZW1lbnRzIHdpdGggYSB2YWx1
ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIikpOyB9Ci1TdHJpbmcgV2ViQ29y
ZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKSB7IHJldHVybiBTdHJpbmco
TFBDVFNUUl9VSV9TVFJJTkcoInJhbmdlIHVuZGVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2Ug
Zm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBsb3dlciB0aGFuIGFsbG93ZWQgbWlu
aW11bSIpKTsgfQotU3RyaW5nIFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxv
d1RleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoInJhbmdlIG92ZXJmbG93
IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVl
IGhpZ2hlciB0aGFuIGFsbG93ZWQgbWF4aW11bSIpKTsgfQotU3RyaW5nIFdlYkNvcmU6OnZhbGlk
YXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJ
X1NUUklORygic3RlcCBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZv
cm0gY29udHJvbHMgd2l0aCB2YWx1ZSBub3QgcmVzcGVjdGluZyB0aGUgc3RlcCBhdHRyaWJ1dGUi
KSk7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMGEyZWFiYjQwNDcwNzI4MjExZTA3NDNlMGIwMTBhMzQ0
MjM5NWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0wLDAgKzEsNjExIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorCisj
aW5jbHVkZSAiV2ViTG9jYWxpemFibGVTdHJpbmdzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbnRT
aXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
R3JvdXAuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGFiYXNlLmg+CisjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6
ZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMsIHBs
YXRmb3JtU3RyYXRlZ2llcywgKCkpOworfQorCitXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OldlYlBs
YXRmb3JtU3RyYXRlZ2llcygpCit7CisgICAgc2V0UGxhdGZvcm1TdHJhdGVnaWVzKHRoaXMpOwor
fQorCisvLyBQbHVnaW5TdHJhdGVneQorCitQbHVnaW5TdHJhdGVneSogV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjcmVhdGVQbHVnaW5TdHJhdGVneSgpCit7CisgICAgcmV0dXJuIHRoaXM7Cit9CisK
K0xvY2FsaXphdGlvblN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUxvY2Fs
aXphdGlvblN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gdGhpczsKK30KKworVmlzaXRlZExpbmtT
dHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVWaXNpdGVkTGlua1N0cmF0ZWd5
KCkKK3sKKyAgICByZXR1cm4gdGhpczsKK30KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OnJlZnJlc2hQbHVnaW5zKCkKK3sKKyAgICBQbHVnaW5EYXRhYmFzZTo6aW5zdGFsbGVkUGx1Z2lu
cygpLT5yZWZyZXNoKCk7Cit9CisKK3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRQbHVn
aW5JbmZvKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYgb3V0UGx1Z2lucykKK3sKKyAgICBj
b25zdCBWZWN0b3I8UGx1Z2luUGFja2FnZSo+JiBwbHVnaW5zID0gUGx1Z2luRGF0YWJhc2U6Omlu
c3RhbGxlZFBsdWdpbnMoKS0+cGx1Z2lucygpOworCisgICAgb3V0UGx1Z2lucy5yZXNpemUocGx1
Z2lucy5zaXplKCkpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwbHVnaW5zLnNpemUo
KTsgKytpKSB7CisgICAgICAgIFBsdWdpblBhY2thZ2UqIHBhY2thZ2UgPSBwbHVnaW5zW2ldOwor
CisgICAgICAgIFBsdWdpbkluZm8gaW5mbzsKKyAgICAgICAgaW5mby5uYW1lID0gcGFja2FnZS0+
bmFtZSgpOworICAgICAgICBpbmZvLmZpbGUgPSBwYWNrYWdlLT5maWxlTmFtZSgpOworICAgICAg
ICBpbmZvLmRlc2MgPSBwYWNrYWdlLT5kZXNjcmlwdGlvbigpOworCisgICAgICAgIGNvbnN0IE1J
TUVUb0Rlc2NyaXB0aW9uc01hcCYgbWltZVRvRGVzY3JpcHRpb25zID0gcGFja2FnZS0+bWltZVRv
RGVzY3JpcHRpb25zKCk7CisKKyAgICAgICAgaW5mby5taW1lcy5yZXNlcnZlQ2FwYWNpdHkobWlt
ZVRvRGVzY3JpcHRpb25zLnNpemUoKSk7CisKKyAgICAgICAgTUlNRVRvRGVzY3JpcHRpb25zTWFw
Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtaW1lVG9EZXNjcmlwdGlvbnMuZW5kKCk7CisgICAgICAg
IGZvciAoTUlNRVRvRGVzY3JpcHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1pbWVUb0Rl
c2NyaXB0aW9ucy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgICAgIE1pbWVD
bGFzc0luZm8gbWltZTsKKworICAgICAgICAgICAgbWltZS50eXBlID0gaXQtPmZpcnN0OworICAg
ICAgICAgICAgbWltZS5kZXNjID0gaXQtPnNlY29uZDsKKyAgICAgICAgICAgIG1pbWUuZXh0ZW5z
aW9ucyA9IHBhY2thZ2UtPm1pbWVUb0V4dGVuc2lvbnMoKS5nZXQobWltZS50eXBlKTsKKworICAg
ICAgICAgICAgaW5mby5taW1lcy5hcHBlbmQobWltZSk7CisgICAgICAgIH0KKworICAgICAgICBv
dXRQbHVnaW5zW2ldID0gaW5mbzsKKyAgICB9Cit9CisKKy8vIExvY2FsaXphdGlvblN0cmF0ZWd5
ICAgIAorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZWFyY2hhYmxlSW5kZXhJbnRy
b2R1Y3Rpb24oKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlRoaXMgaXMgYSBzZWFyY2hhYmxl
IGluZGV4LiBFbnRlciBzZWFyY2gga2V5d29yZHM6ICIsICJ0ZXh0IHRoYXQgYXBwZWFycyBhdCB0
aGUgc3RhcnQgb2YgbmVhcmx5LW9ic29sZXRlIHdlYiBwYWdlcyBpbiB0aGUgZm9ybSBvZiBhICdz
ZWFyY2hhYmxlIGluZGV4JyIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpz
dWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlN1Ym1p
dCIsICJkZWZhdWx0IGxhYmVsIGZvciBTdWJtaXQgYnV0dG9ucyBpbiBmb3JtcyBvbiB3ZWIgcGFn
ZXMiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6aW5wdXRFbGVtZW50QWx0
VGV4dCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklOR19LRVkoIlN1Ym1pdCIsICJTdWJtaXQgKGlu
cHV0IGVsZW1lbnQpIiwgImFsdCB0ZXh0IGZvciA8aW5wdXQ+IGVsZW1lbnRzIHdpdGggbm8gYWx0
LCB0aXRsZSwgb3IgdmFsdWUiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlJlc2V0
IiwgImRlZmF1bHQgbGFiZWwgZm9yIFJlc2V0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2Vz
Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmZpbGVCdXR0b25DaG9vc2VG
aWxlTGFiZWwoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNob29zZSBGaWxlIiwgInRpdGxl
IGZvciBmaWxlIGJ1dHRvbiB1c2VkIGluIEhUTUwgZm9ybXMiKTsKK30KKworU3RyaW5nIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKQoreworICAg
IHJldHVybiBVSV9TVFJJTkcoIm5vIGZpbGUgc2VsZWN0ZWQiLCAidGV4dCB0byBkaXNwbGF5IGlu
IGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRNTCBmb3JtcyB3aGVuIG5vIGZpbGUgaXMgc2VsZWN0ZWQi
KTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
T3BlbkxpbmtJbk5ld1dpbmRvdygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiT3BlbiBMaW5r
IGluIE5ldyBXaW5kb3ciLCAiT3BlbiBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVtIik7
Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0Rv
d25sb2FkTGlua1RvRGlzaygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiRG93bmxvYWQgTGlu
a2VkIEZpbGUiLCAiRG93bmxvYWQgTGlua2VkIEZpbGUgY29udGV4dCBtZW51IGl0ZW0iKTsKK30K
KworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUxp
bmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ29weSBMaW5rIiwgIkNv
cHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdygpCit7CisgICAg
cmV0dXJuIFVJX1NUUklORygiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gSW1hZ2Ug
aW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCkKK3sK
KyAgICByZXR1cm4gVUlfU1RSSU5HKCJEb3dubG9hZCBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBj
b250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIFVJ
X1NUUklORygiQ29weSBJbWFnZSIsICJDb3B5IEltYWdlIGNvbnRleHQgbWVudSBpdGVtIik7Cit9
CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5G
cmFtZUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVuIEZyYW1lIGlu
IE5ldyBXaW5kb3ciLCAiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z0NvcHkoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkiLCAiQ29weSBjb250ZXh0IG1l
bnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdHb0JhY2soKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkJhY2siLCAiQmFjayBj
b250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkZv
cndhcmQiLCAiRm9yd2FyZCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkKK3sKKyAgICByZXR1cm4g
VUlfU1RSSU5HKCJTdG9wIiwgIlN0b3AgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKK3sKKyAg
ICByZXR1cm4gVUlfU1RSSU5HKCJSZWxvYWQiLCAiUmVsb2FkIGNvbnRleHQgbWVudSBpdGVtIik7
Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0N1
dCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ3V0IiwgIkN1dCBjb250ZXh0IG1lbnUgaXRl
bSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1U
YWdQYXN0ZSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiUGFzdGUiLCAiUGFzdGUgY29udGV4
dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIk5v
IEd1ZXNzZXMgRm91bmQiLCAiTm8gR3Vlc3NlcyBGb3VuZCBjb250ZXh0IG1lbnUgaXRlbSIpOwor
fQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdJZ25v
cmVTcGVsbGluZygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiSWdub3JlIFNwZWxsaW5nIiwg
Iklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkKK3sKKyAg
ICByZXR1cm4gVUlfU1RSSU5HKCJMZWFybiBTcGVsbGluZyIsICJMZWFybiBTcGVsbGluZyBjb250
ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlNlYXJj
aCB3aXRoIEdvb2dsZSIsICJTZWFyY2ggaW4gR29vZ2xlIGNvbnRleHQgbWVudSBpdGVtIik7Cit9
CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0xvb2tV
cEluRGljdGlvbmFyeSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiTG9vayBVcCBpbiBEaWN0
aW9uYXJ5IiwgIkxvb2sgVXAgaW4gRGljdGlvbmFyeSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQor
CitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlu
aygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiT3BlbiBMaW5rIiwgIk9wZW4gTGluayBjb250
ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250
ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJJ
Z25vcmUgR3JhbW1hciIsICJJZ25vcmUgR3JhbW1hciBjb250ZXh0IG1lbnUgaXRlbSIpOworfQor
CitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGlu
Z01lbnUoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlNwZWxsaW5nIGFuZCBHcmFtbWFyIiwg
IlNwZWxsaW5nIGFuZCBHcmFtbWFyIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOworfQorCitTdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5n
KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJDaGVjayBEb2N1bWVudCBOb3ciLCAiQ2hlY2sg
c3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkKK3sK
KyAgICByZXR1cm4gVUlfU1RSSU5HKCJDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmciLCAiQ2hl
Y2sgc3BlbGxpbmcgd2hpbGUgdHlwaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmlu
ZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldp
dGhTcGVsbGluZygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ2hlY2sgR3JhbW1hciBXaXRo
IFNwZWxsaW5nIiwgIkNoZWNrIGdyYW1tYXIgd2l0aCBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRl
bSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1U
YWdGb250TWVudSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiRm9udCIsICJGb250IGNvbnRl
eHQgc3ViLW1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJCb2xkIiwg
IkJvbGQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5H
KCJJdGFsaWMiLCAiSXRhbGljIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSgpCit7CisgICAg
cmV0dXJuIFVJX1NUUklORygiVW5kZXJsaW5lIiwgIlVuZGVybGluZSBjb250ZXh0IG1lbnUgaXRl
bSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1U
YWdPdXRsaW5lKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJPdXRsaW5lIiwgIk91dGxpbmUg
Y29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1lbnUoKQoreworICAgIHJldHVybiBV
SV9TVFJJTkcoIlBhcmFncmFwaCBEaXJlY3Rpb24iLCAiUGFyYWdyYXBoIGRpcmVjdGlvbiBjb250
ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKQoreworICAgIHJldHVybiBVSV9T
VFJJTkcoIlNlbGVjdGlvbiBEaXJlY3Rpb24iLCAiU2VsZWN0aW9uIGRpcmVjdGlvbiBjb250ZXh0
IHN1Yi1tZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnRGVmYXVsdERpcmVjdGlvbigpCit7CisgICAgcmV0dXJuIFVJX1NUUklO
RygiRGVmYXVsdCIsICJEZWZhdWx0IHdyaXRpbmcgZGlyZWN0aW9uIGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z0xlZnRUb1JpZ2h0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJMZWZ0IHRvIFJpZ2h0Iiwg
IkxlZnQgdG8gUmlnaHQgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKQoreworICAgIHJl
dHVybiBVSV9TVFJJTkcoIlJpZ2h0IHRvIExlZnQiLCAiUmlnaHQgdG8gTGVmdCBjb250ZXh0IG1l
bnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
dUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNob3cpCit7CisgICAgaWYgKHNob3cpCisg
ICAgICAgIHJldHVybiBVSV9TVFJJTkcoIlNob3cgU3BlbGxpbmcgYW5kIEdyYW1tYXIiLCAibWVu
dSBpdGVtIHRpdGxlIik7CisgICAgcmV0dXJuIFVJX1NUUklORygiSGlkZSBTcGVsbGluZyBhbmQg
R3JhbW1hciIsICJtZW51IGl0ZW0gdGl0bGUiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKQoreworICAgIHJldHVy
biBVSV9TVFJJTkcoIkluc3BlY3QgRWxlbWVudCIsICJJbnNwZWN0IEVsZW1lbnQgY29udGV4dCBt
ZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2VhcmNoTWVu
dU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJObyByZWNl
bnQgc2VhcmNoZXMiLCAiTGFiZWwgZm9yIG9ubHkgaXRlbSBpbiBtZW51IHRoYXQgYXBwZWFycyB3
aGVuIGNsaWNraW5nIG9uIHRoZSBzZWFyY2ggZmllbGQgaW1hZ2UsIHdoZW4gbm8gc2VhcmNoZXMg
aGF2ZSBiZWVuIHBlcmZvcm1lZCIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
OjpzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5H
KCJSZWNlbnQgU2VhcmNoZXMiLCAibGFiZWwgZm9yIGZpcnN0IGl0ZW0gaW4gdGhlIG1lbnUgdGhh
dCBhcHBlYXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgdXNlZCBh
cyBlbWJlZGRlZCBtZW51IHRpdGxlIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OnNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpCit7CisgICAgcmV0dXJuIFVJ
X1NUUklORygiQ2xlYXIgUmVjZW50IFNlYXJjaGVzIiwgIm1lbnUgaXRlbSBpbiBSZWNlbnQgU2Vh
cmNoZXMgbWVudSB0aGF0IGVtcHRpZXMgbWVudSdzIGNvbnRlbnRzIik7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OkFYV2ViQXJlYVRleHQoKQoreworICAgIHJldHVybiBVSV9T
VFJJTkcoIndlYiBhcmVhIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Igd2Vi
IGFyZWEiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6QVhMaW5rVGV4dCgp
Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygibGluayIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVz
Y3JpcHRpb24gZm9yIGxpbmsiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
QVhMaXN0TWFya2VyVGV4dCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygibGlzdCBtYXJrZXIi
LCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBsaXN0IG1hcmtlciIpOworfQor
CitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWEltYWdlTWFwVGV4dCgpCit7CisgICAg
cmV0dXJuIFVJX1NUUklORygiaW1hZ2UgbWFwIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlw
dGlvbiBmb3IgaW1hZ2UgbWFwIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OkFYSGVhZGluZ1RleHQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoImhlYWRpbmciLCAiYWNj
ZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBoZWFkaW5ncyIpOworfQorCitTdHJpbmcg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWERlZmluaXRpb25MaXN0VGVybVRleHQoKQoreworICAg
IHJldHVybiBVSV9TVFJJTkcoInRlcm0iLCAidGVybSB3b3JkIG9mIGEgZGVmaW5pdGlvbiIpOwor
fQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWERlZmluaXRpb25MaXN0RGVmaW5p
dGlvblRleHQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoImRlZmluaXRpb24iLCAiZGVmaW5p
dGlvbiBwaHJhc2UiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6QVhCdXR0
b25BY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJwcmVzcyIsICJWZXJiIHN0
YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIGJ1dHRvbiBpcyBwcmVzc2Vk
LCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBVSV9TVFJJ
TkcoInNlbGVjdCIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hl
biBhIHJhZGlvIGJ1dHRvbiBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsK
K30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6QVhUZXh0RmllbGRBY3Rpb25WZXJi
KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJhY3RpdmF0ZSIsICJWZXJiIHN0YXRpbmcgdGhl
IGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHRleHQgZmllbGQgaXMgc2VsZWN0ZWQsIGFz
IHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBVSV9TVFJJ
TkcoInVuY2hlY2siLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdo
ZW4gYSBjaGVja2VkIGNoZWNrYm94IGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0
eSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWFVuY2hlY2tlZENoZWNr
Qm94QWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiY2hlY2siLCAiVmVyYiBz
dGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYW4gdW5jaGVja2VkIGNoZWNr
Ym94IGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOworfQorCitTdHJpbmcg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWExpbmtBY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4g
VUlfU1RSSU5HKCJqdW1wIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1
ciB3aGVuIGEgbGluayBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKK30K
KworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6QVhNZW51TGlzdEFjdGlvblZlcmIoKQor
eworICAgIHJldHVybiBVSV9TVFJJTkcoIm9wZW4iLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24g
dGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBzZWxlY3QgZWxlbWVudCBpcyBjbGlja2VkLCBhcyB1c2Vk
IGJ5IGFjY2Vzc2liaWxpdHkiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
QVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFVJX1NUUklOR19LRVko
InByZXNzIiwgInByZXNzIChzZWxlY3QgZWxlbWVudCkiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rp
b24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBzZWxlY3QgZWxlbWVudCdzIHBvcHVwIGxpc3QgaXMg
Y2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OnVua25vd25GaWxlU2l6ZVRleHQoKQoreworICAgIHJldHVybiBVSV9T
VFJJTkcoIlVua25vd24iLCAiVW5rbm93biBmaWxlc2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3Rpbmcg
aXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp1cGxvYWRGaWxlVGV4
dCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiVXBsb2FkIGZpbGUiLCAiKFdpbmRvd3MpIEZv
cm0gc3VibWl0IGZpbGUgdXBsb2FkIGRpYWxvZyB0aXRsZSIpOworfQorCitTdHJpbmcgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjphbGxGaWxlc1RleHQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkco
IkFsbCBGaWxlcyIsICIoV2luZG93cykgRm9ybSBzdWJtaXQgZmlsZSB1cGxvYWQgYWxsIGZpbGVz
IHBvcC11cCIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjptaXNzaW5nUGx1
Z2luVGV4dCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiTWlzc2luZyBQbHVnLWluIiwgIkxh
YmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Z2luIGlzIG1pc3NpbmciKTsKK30KKworU3Ry
aW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3Jhc2hlZFBsdWdpblRleHQoKQoreworICAgIHJl
dHVybiBVSV9TVFJJTkcoIlBsdWctaW4gRmFpbHVyZSIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQg
aWYgcGx1Z2luIGhvc3QgcHJvY2VzcyBoYXMgY3Jhc2hlZCIpOworfQorCitTdHJpbmcgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjppbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0
IEludFNpemUmIHNpemUpIAoreworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZmlsZW5hbWVD
RihBZG9wdENGLCBmaWxlbmFtZS5jcmVhdGVDRlN0cmluZygpKTsKKyAgICByZXR1cm4gUmV0YWlu
UHRyPENGU3RyaW5nUmVmPihBZG9wdENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhGb3JtYXQoMCwgMCwg
VUlfU1RSSU5HKCIlQCAlZFx4QzNceDk3JWQgcGl4ZWxzIiwgIndpbmRvdyB0aXRsZSBmb3IgYSBz
dGFuZGFsb25lIGltYWdlICh1c2VzIG11bHRpcGxpY2F0aW9uIHN5bWJvbCwgbm90IHgpIiksIGZp
bGVuYW1lQ0YuZ2V0KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpLmdldCgpOworfQor
CitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjptdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVu
c2lnbmVkIG51bWJlck9mRmlsZXMpCit7CisgICAgcmV0dXJuIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4oQWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0KDAsIDAsIFVJX1NUUklORygiJWQg
ZmlsZXMiLCAiTGFiZWwgdG8gZGVzY3JpYmUgdGhlIG51bWJlciBvZiBmaWxlcyBzZWxlY3RlZCBp
biBhIGZpbGUgdXBsb2FkIGNvbnRyb2wgdGhhdCBhbGxvd3MgbXVsdGlwbGUgZmlsZXMiKSwgbnVt
YmVyT2ZGaWxlcykpLmdldCgpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpt
ZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJM
b2FkaW5nLi4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUgbWVk
aWEgaXMgbG9hZGluZyIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjptZWRp
YUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5H
KCJMaXZlIEJyb2FkY2FzdCIsICJNZWRpYSBjb250cm9sbGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4g
d2F0Y2hpbmcgYSBsaXZlIGJyb2FkY2FzdCIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYg
bmFtZSkKK3sKKyAgICBpZiAobmFtZSA9PSAiQXVkaW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJu
IFVJX1NUUklORygiYXVkaW8gZWxlbWVudCBjb250cm9sbGVyIiwgImFjY2Vzc2liaWxpdHkgcm9s
ZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVudCBjb250cm9sbGVyIik7CisgICAgaWYgKG5h
bWUgPT0gIlZpZGVvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoInZpZGVvIGVs
ZW1lbnQgY29udHJvbGxlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHZp
ZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJNdXRlQnV0dG9uIikK
KyAgICAgICAgcmV0dXJuIFVJX1NUUklORygibXV0ZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVz
Y3JpcHRpb24gZm9yIG11dGUgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlVuTXV0ZUJ1dHRv
biIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoInVubXV0ZSIsICJhY2Nlc3NpYmlsaXR5IHJv
bGUgZGVzY3JpcHRpb24gZm9yIHR1cm4gbXV0ZSBvZmYgYnV0dG9uIik7CisgICAgaWYgKG5hbWUg
PT0gIlBsYXlCdXR0b24iKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJwbGF5IiwgImFjY2Vz
c2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcGxheSBidXR0b24iKTsKKyAgICBpZiAobmFt
ZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJwYXVzZSIsICJh
Y2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHBhdXNlIGJ1dHRvbiIpOworICAgIGlm
IChuYW1lID09ICJTbGlkZXIiKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJtb3ZpZSB0aW1l
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdGltZWxpbmUgc2xpZGVyIik7
CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlclRodW1iIikKKyAgICAgICAgcmV0dXJuIFVJX1NUUklO
RygidGltZWxpbmUgc2xpZGVyIHRodW1iIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlv
biBmb3IgdGltZWxpbmUgdGh1bWIiKTsKKyAgICBpZiAobmFtZSA9PSAiUmV3aW5kQnV0dG9uIikK
KyAgICAgICAgcmV0dXJuIFVJX1NUUklORygiYmFjayAzMCBzZWNvbmRzIiwgImFjY2Vzc2liaWxp
dHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Igc2VlayBiYWNrIDMwIHNlY29uZHMgYnV0dG9uIik7Cisg
ICAgaWYgKG5hbWUgPT0gIlJldHVyblRvUmVhbHRpbWVCdXR0b24iKQorICAgICAgICByZXR1cm4g
VUlfU1RSSU5HKCJyZXR1cm4gdG8gcmVhbHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2Ny
aXB0aW9uIGZvciByZXR1cm4gdG8gcmVhbCB0aW1lIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09
ICJDdXJyZW50VGltZURpc3BsYXkiKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJlbGFwc2Vk
IHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBlbGFwc2VkIHRpbWUg
ZGlzcGxheSIpOworICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlzcGxheSIpCisgICAg
ICAgIHJldHVybiBVSV9TVFJJTkcoInJlbWFpbmluZyB0aW1lIiwgImFjY2Vzc2liaWxpdHkgcm9s
ZSBkZXNjcmlwdGlvbiBmb3IgdGltZSByZW1haW5pbmcgZGlzcGxheSIpOworICAgIGlmIChuYW1l
ID09ICJTdGF0dXNEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygic3RhdHVzIiwg
ImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgbW92aWUgc3RhdHVzIik7CisgICAg
aWYgKG5hbWUgPT0gIkZ1bGxzY3JlZW5CdXR0b24iKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5H
KCJmdWxsc2NyZWVuIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZW50ZXIg
ZnVsbHNjcmVlbiBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2Vla0ZvcndhcmRCdXR0b24i
KQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJmYXN0IGZvcndhcmQiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBmYXN0IGZvcndhcmQgYnV0dG9uIik7CisgICAgaWYgKG5h
bWUgPT0gIlNlZWtCYWNrQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygiZmFzdCBy
ZXZlcnNlIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgZmFzdCByZXZlcnNl
IGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTaG93Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQor
ICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJzaG93IGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3Np
YmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIp
OworICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJoaWRlIGNsb3NlZCBjYXB0aW9ucyIsICJhY2Nlc3NpYmlsaXR5IHJv
bGUgZGVzY3JpcHRpb24gZm9yIGhpZGUgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIpOworCisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRl
eHQoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQi
KQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IHBsYXliYWNrIGNvbnRy
b2xzIGFuZCBzdGF0dXMgZGlzcGxheSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIGF1ZGlvIGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJWaWRlb0Vs
ZW1lbnQiKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJ2aWRlbyBlbGVtZW50IHBsYXliYWNr
IGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxheSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3Jp
cHRpb24gZm9yIHZpZGVvIGVsZW1lbnQgY29udHJvbGxlciIpOworICAgIGlmIChuYW1lID09ICJN
dXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygibXV0ZSBhdWRpbyB0cmFja3Mi
LCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG11dGUgYnV0dG9uIik7CisgICAgaWYgKG5h
bWUgPT0gIlVuTXV0ZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoInVubXV0ZSBh
dWRpbyB0cmFja3MiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHVuIG11dGUgYnV0dG9u
Iik7CisgICAgaWYgKG5hbWUgPT0gIlBsYXlCdXR0b24iKQorICAgICAgICByZXR1cm4gVUlfU1RS
SU5HKCJiZWdpbiBwbGF5YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcGxheSBi
dXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiUGF1c2VCdXR0b24iKQorICAgICAgICByZXR1cm4g
VUlfU1RSSU5HKCJwYXVzZSBwbGF5YmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Ig
cGF1c2UgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCisgICAgICAgIHJldHVy
biBVSV9TVFJJTkcoIm1vdmllIHRpbWUgc2NydWJiZXIiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRl
eHQgZm9yIHRpbWVsaW5lIHNsaWRlciIpOworICAgIGlmIChuYW1lID09ICJTbGlkZXJUaHVtYiIp
CisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoIm1vdmllIHRpbWUgc2NydWJiZXIgdGh1bWIiLCAi
YWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHRpbWVsaW5lIHNsaWRlciB0aHVtYiIpOworICAg
IGlmIChuYW1lID09ICJSZXdpbmRCdXR0b24iKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJz
ZWVrIG1vdmllIGJhY2sgMzAgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Ig
anVtcCBiYWNrIDMwIHNlY29uZHMgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlJldHVyblRv
UmVhbHRpbWVCdXR0b24iKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJyZXR1cm4gc3RyZWFt
aW5nIG1vdmllIHRvIHJlYWwgdGltZSIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcmV0
dXJuIHN0cmVhbWluZyBtb3ZpZSB0byByZWFsIHRpbWUgYnV0dG9uIik7CisgICAgaWYgKG5hbWUg
PT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoImN1cnJl
bnQgbW92aWUgdGltZSBpbiBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBl
bGFwc2VkIHRpbWUgZGlzcGxheSIpOworICAgIGlmIChuYW1lID09ICJUaW1lUmVtYWluaW5nRGlz
cGxheSIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoIm51bWJlciBvZiBzZWNvbmRzIG9mIG1v
dmllIHJlbWFpbmluZyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgcmVtYWluaW5nIHRp
bWUgZGlzcGxheSIpOworICAgIGlmIChuYW1lID09ICJTdGF0dXNEaXNwbGF5IikKKyAgICAgICAg
cmV0dXJuIFVJX1NUUklORygiY3VycmVudCBtb3ZpZSBzdGF0dXMiLCAiYWNjZXNzaWJpbGl0eSBo
ZWxwIHRleHQgZm9yIG1vdmllIHN0YXR1cyBkaXNwbGF5Iik7CisgICAgaWYgKG5hbWUgPT0gIlNl
ZWtCYWNrQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygic2VlayBxdWlja2x5IGJh
Y2siLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGZhc3QgcmV3aW5kIGJ1dHRvbiIpOwor
ICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBVSV9T
VFJJTkcoInNlZWsgcXVpY2tseSBmb3J3YXJkIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciBmYXN0IGZvcndhcmQgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkZ1bGxzY3JlZW5CdXR0
b24iKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJQbGF5IG1vdmllIGluIGZ1bGxzY3JlZW4g
bW9kZSIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZW50ZXIgZnVsbHNjcmVlbiBidXR0
b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uIikKKyAgICAg
ICAgcmV0dXJuIFVJX1NUUklORygic3RhcnQgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAi
YWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIHNob3cgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIp
OworICAgIGlmIChuYW1lID09ICJIaWRlQ2xvc2VkQ2FwdGlvbnNCdXR0b24iKQorICAgICAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJzdG9wIGRpc3BsYXlpbmcgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vz
c2liaWxpdHkgaGVscCB0ZXh0IGZvciBoaWRlIGNsb3NlZCBjYXB0aW9ucyBidXR0b24iKTsKKwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24o
ZmxvYXQgdGltZSkKK3sKKyAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQorICAgICAgICByZXR1cm4g
VUlfU1RSSU5HKCJpbmRlZmluaXRlIHRpbWUiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9y
IGFuIGluZGVmaW5pdGUgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlIik7CisKKyAgICBpbnQg
c2Vjb25kcyA9IChpbnQpZmFic2YodGltZSk7CisgICAgaW50IGRheXMgPSBzZWNvbmRzIC8gKDYw
ICogNjAgKiAyNCk7CisgICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAqIDYwKTsKKyAgICBp
bnQgbWludXRlcyA9IChzZWNvbmRzIC8gNjApICUgNjA7CisgICAgc2Vjb25kcyAlPSA2MDsKKwor
ICAgIGlmIChkYXlzKQorICAgICAgICByZXR1cm4gUmV0YWluUHRyPENGU3RyaW5nUmVmPihBZG9w
dENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhGb3JtYXQoMCwgMCwgVUlfU1RSSU5HKCIlMSRkIGRheXMg
JTIkZCBob3VycyAlMyRkIG1pbnV0ZXMgJTQkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVs
cCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gMSBkYXkiKSwgZGF5cywg
aG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKS5nZXQoKTsKKworICAgIGlmIChob3VycykKKyAgICAg
ICAgcmV0dXJuIFJldGFpblB0cjxDRlN0cmluZ1JlZj4oQWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVX
aXRoRm9ybWF0KDAsIDAsIFVJX1NUUklORygiJTEkZCBob3VycyAlMiRkIG1pbnV0ZXMgJTMkZCBz
ZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRp
bWUgdmFsdWUgPj0gNjAgbWludXRlcyIpLCBob3VycywgbWludXRlcywgc2Vjb25kcykpLmdldCgp
OworCisgICAgaWYgKG1pbnV0ZXMpCisgICAgICAgIHJldHVybiBSZXRhaW5QdHI8Q0ZTdHJpbmdS
ZWY+KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdCgwLCAwLCBVSV9TVFJJTkcoIiUx
JGQgbWludXRlcyAlMiRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1l
ZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA+PSA2MCBzZWNvbmRzIiksIG1pbnV0ZXMsIHNlY29u
ZHMpKS5nZXQoKTsKKworICAgIHJldHVybiBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+KEFkb3B0Q0Ys
IENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdCgwLCAwLCBVSV9TVFJJTkcoIiUxJGQgc2Vjb25kcyIs
ICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVl
IDwgNjAgc2Vjb25kcyIpLCBzZWNvbmRzKSkuZ2V0KCk7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpCit7CisgICAg
cmV0dXJuIFVJX1NUUklORygidmFsdWUgbWlzc2luZyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9y
IHJlcXVpcmVkIGZvcm0gY29udHJvbCBlbGVtZW50cyB0aGF0IGhhdmUgbm8gdmFsdWUiKTsKK30K
KworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6dmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlz
bWF0Y2hUZXh0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJ0eXBlIG1pc21hdGNoIiwgIlZh
bGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUgbm90
IG1hdGNoaW5nIHR5cGUiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6dmFs
aWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RS
SU5HKCJwYXR0ZXJuIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9y
bSBjb250cm9scyByZXF1aXJpbmcgYSBjb25zdHJhaW5lZCB2YWx1ZSBhY2NvcmRpbmcgdG8gcGF0
dGVybiIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp2YWxpZGF0aW9uTWVz
c2FnZVRvb0xvbmdUZXh0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJ0b28gbG9uZyIsICJW
YWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGZvcm0gY29udHJvbCBlbGVtZW50cyB3aXRoIGEgdmFsdWUg
bG9uZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2VkIGxlbmd0aCIpOworfQorCitTdHJpbmcgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCit7
CisgICAgcmV0dXJuIFVJX1NUUklORygicmFuZ2UgdW5kZXJmbG93IiwgIlZhbGlkYXRpb24gbWVz
c2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIGxvd2VyIHRoYW4gYWxsb3dl
ZCBtaW5pbXVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnZhbGlkYXRp
b25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoInJh
bmdlIG92ZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9s
cyB3aXRoIHZhbHVlIGhpZ2hlciB0aGFuIGFsbG93ZWQgbWF4aW11bSIpOworfQorCitTdHJpbmcg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQo
KQoreworICAgIHJldHVybiBVSV9TVFJJTkcoInN0ZXAgbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBt
ZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgbm90IHJlc3BlY3Rpbmcg
dGhlIHN0ZXAgYXR0cmlidXRlIik7Cit9CisKK2Jvb2wgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpp
c0xpbmtWaXNpdGVkKFBhZ2UqIHBhZ2UsIExpbmtIYXNoIGhhc2gpCit7CisgICAgcmV0dXJuIHBh
Z2UtPmdyb3VwKCkuaXNMaW5rVmlzaXRlZChoYXNoKTsKK30KKwordm9pZCBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmFkZFZpc2l0ZWRMaW5rKFBhZ2UqIHBhZ2UsIExpbmtIYXNoIGhhc2gpCit7Cisg
ICAgcGFnZS0+Z3JvdXAoKS5hZGRWaXNpdGVkTGlua0hhc2goaGFzaCk7Cit9CmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kZjE5YzkxMzFhZmZiNDkwZWI3Mjk4ZWY1M2ViYmM5NzFhYTcwMGI1Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApA
QCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUGxhdGZvcm1TdHJhdGVn
aWVzX2gKKyNkZWZpbmUgV2ViUGxhdGZvcm1TdHJhdGVnaWVzX2gKKworI2luY2x1ZGUgPFdlYkNv
cmUvTG9jYWxpemF0aW9uU3RyYXRlZ3kuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3Ry
YXRlZ2llcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luU3RyYXRlZ3kuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1Zpc2l0ZWRMaW5rU3RyYXRlZ3kuaD4KKworY2xhc3MgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcywgcHJpdmF0ZSBXZWJD
b3JlOjpQbHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVn
eSwgcHJpdmF0ZSBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CisgICAgCitwcml2YXRlOgorICAgIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llcygpOworICAgIAorICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwor
ICAgIHZpcnR1YWwgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3kqIGNyZWF0ZVBsdWdpblN0cmF0ZWd5
KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVneSogY3JlYXRlTG9j
YWxpemF0aW9uU3RyYXRlZ3koKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3Ry
YXRlZ3kqIGNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKTsKKworICAgIC8vIFdlYkNvcmU6OlBs
dWdpblN0cmF0ZWd5CisgICAgdmlydHVhbCB2b2lkIHJlZnJlc2hQbHVnaW5zKCk7CisgICAgdmly
dHVhbCB2b2lkIGdldFBsdWdpbkluZm8oVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jik7CisK
KyAgICAvLyBXZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVneSAgICAKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OlN0cmluZyBpbnB1dEVsZW1lbnRBbHRUZXh0KCk7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpTdHJpbmcgcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
OlN0cmluZyBzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKTsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OlN0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OlN0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCk7CisgICAgdmlydHVhbCBXZWJD
b3JlOjpTdHJpbmcgZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKKyNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCk7CisgICAgdmlydHVhbCBXZWJD
b3JlOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpOworICAg
IHZpcnR1YWwgV2ViQ29yZTo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3
V2luZG93KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
RG93bmxvYWRJbWFnZVRvRGlzaygpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCk7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKTsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCk7CisgICAgdmly
dHVhbCBXZWJDb3JlOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCk7CisgICAgdmly
dHVhbCBXZWJDb3JlOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCk7CisgICAg
dmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU3RvcCgpOworICAgIHZp
cnR1YWwgV2ViQ29yZTo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpOworICAgIHZp
cnR1YWwgV2ViQ29yZTo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0N1dCgpOworICAgIHZpcnR1
YWwgV2ViQ29yZTo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCk7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKTsKKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGlu
ZygpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xlYXJu
U3BlbGxpbmcoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTZWFyY2hXZWIoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNo
b3cpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
U3BlbGxpbmcoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcoKTsKKyAgICB2aXJ0
dWFsIFdlYkNvcmU6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpOworICAgIHZp
cnR1YWwgV2ViQ29yZTo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0JvbGQoKTsKKyAgICB2aXJ0
dWFsIFdlYkNvcmU6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKTsKKyAgICB2aXJ0
dWFsIFdlYkNvcmU6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKTsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCk7CisgICAg
dmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlv
bk1lbnUoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdU
ZXh0RGlyZWN0aW9uTWVudSgpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCk7CisgICAgdmlydHVhbCBXZWJD
b3JlOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKTsKKyNlbmRpZiAv
LyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBzZWFy
Y2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmlu
ZyBzZWFyY2hNZW51UmVjZW50U2VhcmNoZXNUZXh0KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpT
dHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCk7CisgICAgdmlydHVhbCBX
ZWJDb3JlOjpTdHJpbmcgQVhXZWJBcmVhVGV4dCgpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3Ry
aW5nIEFYTGlua1RleHQoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBBWExpc3RNYXJr
ZXJUZXh0KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgQVhJbWFnZU1hcFRleHQoKTsK
KyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBBWEhlYWRpbmdUZXh0KCk7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCk7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCk7CisgICAg
dmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgQVhCdXR0b25BY3Rpb25WZXJiKCk7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpTdHJpbmcgQVhSYWRpb0J1dHRvbkFjdGlvblZlcmIoKTsKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6OlN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OlN0cmluZyBBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6OlN0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpOworICAgIHZp
cnR1YWwgV2ViQ29yZTo6U3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCk7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpTdHJpbmcgQVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpOworICAgIHZpcnR1
YWwgV2ViQ29yZTo6U3RyaW5nIEFYTGlua0FjdGlvblZlcmIoKTsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OlN0cmluZyBtaXNzaW5nUGx1Z2luVGV4dCgpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3Ry
aW5nIGNyYXNoZWRQbHVnaW5UZXh0KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgbXVs
dGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25lZCBudW1iZXJPZkZpbGVzKTsKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6OlN0cmluZyB1bmtub3duRmlsZVNpemVUZXh0KCk7CisgICAgdmlydHVhbCBXZWJD
b3JlOjpTdHJpbmcgdXBsb2FkRmlsZVRleHQoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmlu
ZyBhbGxGaWxlc1RleHQoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBpbWFnZVRpdGxl
KGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
KTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVU
ZXh0KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2Fk
Y2FzdFN0YXRlVGV4dCgpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RyaW5nIGxvY2FsaXplZE1l
ZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CisgICAgdmly
dHVhbCBXZWJDb3JlOjpTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0
KGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RyaW5nIGxv
Y2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKTsKKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRj
aFRleHQoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRv
b0xvbmdUZXh0KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VSYW5nZVVuZGVyZmxvd1RleHQoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7CisKKyAgICAvLyBXZWJD
b3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5CisgICAgdmlydHVhbCBib29sIGlzTGlua1Zpc2l0ZWQo
V2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkxpbmtIYXNoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRk
VmlzaXRlZExpbmsoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkxpbmtIYXNoKTsKK307CisKKyNl
bmRpZiAvLyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXNfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9X
ZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2ogYi9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2Vi
S2l0LnZjcHJvagppbmRleCA1MGY1OTIxMzBkODk1ZTM3MTdjYjJkZDM5MDU5MzZjYTYxYzVlY2Q4
Li44NWU4ZWUxODIyOGJjM2M3ZDFkYThkZmY5YjhiYjUyMTNiNzY3MzljIDEwMDY0NAotLS0gYS9X
ZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagorKysgYi9XZWJLaXQvd2luL1dl
YktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagpAQCAtNDE4LDEwICs0MTgsNiBAQAogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlTG9jYWxp
emVkU3RyaW5ncy5jcHAiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxXZWJLaXRDbGFzc0ZhY3RvcnkuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxl
Pg0KQEAgLTEzMjgsNiArMTMyNCwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9ydFxXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cV2ViQ29yZVN1cHBvcnRcV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJDb3JlU3VwcG9y
dFxXZWJQbHVnaW5IYWx0ZXJDbGllbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmlu
ZGV4IDhkZmI3ZTc2YWZiOGRhYzIwNjY0Y2ZjZTljOTBiMmMwMjBkNWI0NzYuLjY3MzUxZjVmYzQ0
MWEwYTdiMDA2YzRmZmI4MDU1ODE4MzdkYzg4NmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNTQsNiArNTQsNyBAQAog
I2luY2x1ZGUgIldlYktpdFN5c3RlbUJpdHMuaCIKICNpbmNsdWRlICJXZWJNdXRhYmxlVVJMUmVx
dWVzdC5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNlbnRlci5oIgorI2luY2x1ZGUgIldl
YlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIldlYlBsdWdpbkhhbHRlckNsaWVudC5o
IgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiV2ViU2NyaXB0V29ybGQu
aCIKQEAgLTI1NTcsNiArMjU1OCw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmll
dzo6aW5pdFdpdGhGcmFtZSgKICAgICBXZWJLaXRJbml0aWFsaXplV2ViRGF0YWJhc2VzSWZOZWNl
c3NhcnkoKTsKICNlbmRpZgogICAgIFdlYktpdFNldEFwcGxpY2F0aW9uQ2FjaGVQYXRoSWZOZWNl
c3NhcnkoKTsKKyAgICBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxpemUoKTsKICAgICAK
ICNpZiBVU0UoU0FGQVJJX1RIRU1FKQogICAgIEJPT0wgc2hvdWxkUGFpbnROYXRpdmVDb250cm9s
czsKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggMWY5ZWQ1YTljMDRmNjVjODc5M2Q5YmU2OTlmYWViOWQ3MmRmYjUxMS4uOWRjYzQ4MWJjNjAy
ODY0MTJlOTc5ZGQyMjFmZTJlZWQzNDNkY2Y5NyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wOC0wMyAg
QWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKKyAgICAgICAgVHVybiBvbiBQTEFURk9S
TV9TVFJBVEVHSUVTIG9uIFdpbmRvd3MKKworICAgICAgICBGaXhlcyA8aHR0cDovL3dlYmtpdC5v
cmcvYi80MzQzMT4uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6IEFkZGVkIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy4g
QWxzbyBsZXQgVlMgcmVvcmRlcgorICAgICAgICB0aGlzIGZpbGUgYXMgaXQgc2F3IGZpdC4KKwog
MjAxMC0wOC0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi52Y3Byb2ogYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagppbmRleCA5YzUwY2EyZjk5
OWY4ZTVjODk4ODUxODc3NTE4OWNkNjY3ZmY3MDljLi5mYzgwZjY4NmFlOTRlOTk0N2FjZWJmZWZi
MDE2ZWNkZGI1ZGM0YmM5IDEwMDc1NQotLS0gYS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagor
KysgYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtNTg0LDYgKzU4NCwxNCBAQAogCQkJ
CQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2Vi
UHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIg0KKwkJCQkJ
Pg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlBy
b2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgiDQorCQkJCQk+DQor
CQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vz
c1xXZWJDb3JlU3VwcG9ydFxXZWJQb3B1cE1lbnUuY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+
DQpAQCAtNzIyLDEwICs3MzAsNiBAQAogCQkJCQkJCT4NCiAJCQkJCQk8L0ZpbGU+DQogCQkJCQkJ
PEZpbGUNCi0JCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxl
XEFQSVxjXFdLQnVuZGxlUHJpdmF0ZS5oIg0KLQkJCQkJCQk+DQotCQkJCQkJPC9GaWxlPg0KLQkJ
CQkJCTxGaWxlDQogCQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1
bmRsZVxBUElcY1xXS0J1bmRsZUFQSUNhc3QuaCINCiAJCQkJCQkJPg0KIAkJCQkJCTwvRmlsZT4N
CkBAIC03NzAsNiArNzc0LDEwIEBACiAJCQkJCQkJPg0KIAkJCQkJCTwvRmlsZT4NCiAJCQkJCQk8
RmlsZQ0KKwkJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVc
QVBJXGNcV0tCdW5kbGVQcml2YXRlLmgiDQorCQkJCQkJCT4NCisJCQkJCQk8L0ZpbGU+DQorCQkJ
CQkJPEZpbGUNCiAJCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVu
ZGxlXEFQSVxjXFdLQnVuZGxlUmFuZ2UuY3BwIg0KIAkJCQkJCQk+DQogCQkJCQkJPC9GaWxlPg0K
</data>
<flag name="review"
          id="51719"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>