<?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>202877</bug_id>
          
          <creation_ts>2019-10-11 21:27:18 -0700</creation_ts>
          <short_desc>Implement TextStream-based dumping for all the RenderStyle and SVGRenderStyle enum classes</short_desc>
          <delta_ts>2019-10-15 15:06:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>lingcherd_ho</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1579377</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-10-11 21:27:18 -0700</bug_when>
    <thetext>Implement TextStream-based dumping for all the RenderStyle and SVGRenderStyle enum classes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579378</commentid>
    <comment_count>1</comment_count>
      <attachid>380817</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-10-11 21:28:26 -0700</bug_when>
    <thetext>Created attachment 380817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579433</commentid>
    <comment_count>2</comment_count>
      <attachid>380830</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-10-12 10:45:47 -0700</bug_when>
    <thetext>Created attachment 380830
Try to fix GTK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579453</commentid>
    <comment_count>3</comment_count>
      <attachid>380830</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-12 15:05:13 -0700</bug_when>
    <thetext>Comment on attachment 380830
Try to fix GTK

Clearing flags on attachment: 380830

Committed r251052: &lt;https://trac.webkit.org/changeset/251052&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579454</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-12 15:05:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580294</commentid>
    <comment_count>5</comment_count>
    <who name="Ling Ho">lingcherd_ho</who>
    <bug_when>2019-10-15 15:06:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/56223032&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380817</attachid>
            <date>2019-10-11 21:28:26 -0700</date>
            <delta_ts>2019-10-12 10:45:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202877-20191011212825.patch</filename>
            <type>text/plain</type>
            <size>67910</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk5NjQ1ZWZiNzlhN2I3
MjczYTMyMGYwYTM2MGQ1YTA4N2ZlZDhlOC4uYzY4ODY5NWQ4MTAxYTk3ZTI2ZjU1ODVjZTFjODJi
Njk3ODMxZjc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTEwLTExICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBU
ZXh0U3RyZWFtLWJhc2VkIGR1bXBpbmcgZm9yIGFsbCB0aGUgUmVuZGVyU3R5bGUgYW5kIFNWR1Jl
bmRlclN0eWxlIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyODc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWFrZSBzdHlsZS1yZWxhdGVkIGVudW0gY2xhc3NlcyBkdW1wYWJsZSB3
aXRoIFRleHRTdHJlYW0sICBhbmQgbWFrZSBzb21lIFNWRyBzdHlsZS1yZWxhdGVkCisgICAgICAg
IGNsYXNzZXMgZHVtcGFibGUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpv
cGVyYXRvcjw8KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZz
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0Rh
dGEuaDoKKwogMjAxOS0xMC0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBNYWtlIFdlYkluc3BlY3RvcidzIHJlbW90ZSBkZWJ1ZyBFdmVudExvb3AgY29kZSBp
bnRvIFJ1bkxvb3AKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCmluZGV4IDExYzU2YWRhZGRjYTAwMWVkZTdlMWIyOWYx
ZjAzZDZhZmZlMTVhNTAuLjlkNGI1YTFhMjc3MmNlZGU4N2E0NjZiMjI0ZmU5MzE0ZjE2ZGQ2OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmNwcApAQCAtMjYsNDMgKzI2LDQ1MSBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAKKyNpbmNsdWRlICJUYWJTaXpl
LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFZpc2liaWxpdHkg
dmlzaWJpbGl0eSkKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEFuaW1h
dGlvbkZpbGxNb2RlIGZpbGxNb2RlKQoreworICAgIHN3aXRjaCAoZmlsbE1vZGUpIHsKKyAgICBj
YXNlIEFuaW1hdGlvbkZpbGxNb2RlOjpOb25lOiB0cyA8PCAibm9uZSI7IGJyZWFrOworICAgIGNh
c2UgQW5pbWF0aW9uRmlsbE1vZGU6OkZvcndhcmRzOiB0cyA8PCAiZm9yd2FyZHMiOyBicmVhazsK
KyAgICBjYXNlIEFuaW1hdGlvbkZpbGxNb2RlOjpCYWNrd2FyZHM6IHRzIDw8ICJiYWNrd2FyZHMi
OyBicmVhazsKKyAgICBjYXNlIEFuaW1hdGlvbkZpbGxNb2RlOjpCb3RoOiB0cyA8PCAiYm90aCI7
IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIEFuaW1hdGlvblBsYXlTdGF0ZSBwbGF5U3RhdGUpCit7CisgICAg
c3dpdGNoIChwbGF5U3RhdGUpIHsKKyAgICBjYXNlIEFuaW1hdGlvblBsYXlTdGF0ZTo6UGxheWlu
ZzogdHMgPDwgInBsYXlpbmciOyBicmVhazsKKyAgICBjYXNlIEFuaW1hdGlvblBsYXlTdGF0ZTo6
UGF1c2VkOiB0cyA8PCAicGF1c2VkIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30K
KworI2lmIEVOQUJMRShBUFBMRV9QQVkpCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBBcHBsZVBheUJ1dHRvblN0eWxlIGJ1dHRvblN0eWxlKQoreworICAgIHN3aXRjaCAo
YnV0dG9uU3R5bGUpIHsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlOiB0cyA8
PCAid2hpdGUiOyBicmVhazsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlT3V0
bGluZTogdHMgPDwgIndoaXRlLW91dGxpbmUiOyBicmVhazsKKyAgICBjYXNlIEFwcGxlUGF5QnV0
dG9uU3R5bGU6OkJsYWNrOiB0cyA8PCAiYmxhY2siOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJu
IHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBBcHBsZVBh
eUJ1dHRvblR5cGUgcGxheVN0YXRlKQoreworICAgIHN3aXRjaCAocGxheVN0YXRlKSB7CisgICAg
Y2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluOiB0cyA8PCAicGxhaW4iOyBicmVhazsKKyAg
ICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6QnV5OiB0cyA8PCAiYnV5IjsgYnJlYWs7CisgICAg
Y2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlNldFVwOiB0cyA8PCAic2V0dXAiOyBicmVhazsKKyAg
ICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6RG9uYXRlOiB0cyA8PCAiZG9uYXRlIjsgYnJlYWs7
CisjaWYgRU5BQkxFKEFQUExFX1BBWV9TRVNTSU9OX1Y0KQorICAgIGNhc2UgQXBwbGVQYXlCdXR0
b25UeXBlOjpDaGVja091dDogdHMgPDwgImNoZWNrb3V0IjsgYnJlYWs7CisgICAgY2FzZSBBcHBs
ZVBheUJ1dHRvblR5cGU6OkJvb2s6IHRzIDw8ICJib29rIjsgYnJlYWs7CisgICAgY2FzZSBBcHBs
ZVBheUJ1dHRvblR5cGU6OlN1YnNjcmliZTogdHMgPDwgInN1YnNjcmliZSI7IGJyZWFrOworI2Vu
ZGlmCisKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorI2VuZGlmCisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEFzcGVjdFJhdGlvVHlwZSBhc3BlY3RSYXRpb1R5cGUp
Cit7CisgICAgc3dpdGNoIChhc3BlY3RSYXRpb1R5cGUpIHsKKyAgICBjYXNlIEFzcGVjdFJhdGlv
VHlwZTo6QXV0bzogdHMgPDwgImF1dG8iOyBicmVhazsKKyAgICBjYXNlIEFzcGVjdFJhdGlvVHlw
ZTo6RnJvbUludHJpbnNpYzogdHMgPDwgImZyb20taW50cmluc2ljIjsgYnJlYWs7CisgICAgY2Fz
ZSBBc3BlY3RSYXRpb1R5cGU6OkZyb21EaW1lbnNpb25zOiB0cyA8PCAiZnJvbS1kaW1lbnNpb25z
IjsgYnJlYWs7CisgICAgY2FzZSBBc3BlY3RSYXRpb1R5cGU6OlNwZWNpZmllZDogdHMgPDwgInNw
ZWNpZmllZCI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEF1dG9SZXBlYXRUeXBlIHJlcGVhdFR5cGUpCit7
CisgICAgc3dpdGNoIChyZXBlYXRUeXBlKSB7CisgICAgY2FzZSBBdXRvUmVwZWF0VHlwZTo6Tm9u
ZTogdHMgPDwgIm5vbmUiOyBicmVhazsKKyAgICBjYXNlIEF1dG9SZXBlYXRUeXBlOjpGaWxsOiB0
cyA8PCAiZmlsbCI7IGJyZWFrOworICAgIGNhc2UgQXV0b1JlcGVhdFR5cGU6OkZpdDogdHMgPDwg
ImZpdCI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEJhY2tmYWNlVmlzaWJpbGl0eSB2aXNpYmlsaXR5KQog
ewogICAgIHN3aXRjaCAodmlzaWJpbGl0eSkgewotICAgIGNhc2UgVmlzaWJpbGl0eTo6VmlzaWJs
ZTogdHMgPDwgInZpc2libGUiOyBicmVhazsKLSAgICBjYXNlIFZpc2liaWxpdHk6OkhpZGRlbjog
dHMgPDwgImhpZGRlbiI7IGJyZWFrOwotICAgIGNhc2UgVmlzaWJpbGl0eTo6Q29sbGFwc2U6IHRz
IDw8ICJjb2xsYXBzZSI7IGJyZWFrOworICAgIGNhc2UgQmFja2ZhY2VWaXNpYmlsaXR5OjpWaXNp
YmxlOiB0cyA8PCAidmlzaWJsZSI7IGJyZWFrOworICAgIGNhc2UgQmFja2ZhY2VWaXNpYmlsaXR5
OjpIaWRkZW46IHRzIDw8ICJoaWRkZW4iOyBicmVhazsKICAgICB9Ci0gICAgCiAgICAgcmV0dXJu
IHRzOwogfQogCi1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJbWFnZVJl
bmRlcmluZyBpbWFnZVJlbmRlcmluZykKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIEJvcmRlckNvbGxhcHNlIGNvbGxhcHNlKQogewotICAgIHN3aXRjaCAoaW1hZ2VSZW5k
ZXJpbmcpIHsKLSAgICBjYXNlIEltYWdlUmVuZGVyaW5nOjpBdXRvOiB0cyA8PCAiYXV0byI7IGJy
ZWFrOwotICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmc6Ok9wdGltaXplU3BlZWQ6IHRzIDw8ICJvcHRp
bWl6ZVNwZWVkIjsgYnJlYWs7Ci0gICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6T3B0aW1pemVRdWFs
aXR5OiB0cyA8PCAib3B0aW1pemVRdWFsaXR5IjsgYnJlYWs7Ci0gICAgY2FzZSBJbWFnZVJlbmRl
cmluZzo6Q3Jpc3BFZGdlczogdHMgPDwgImNyaXNwRWRnZXMiOyBicmVhazsKLSAgICBjYXNlIElt
YWdlUmVuZGVyaW5nOjpQaXhlbGF0ZWQ6IHRzIDw8ICJwaXhlbGF0ZWQiOyBicmVhazsKKyAgICBz
d2l0Y2ggKGNvbGxhcHNlKSB7CisgICAgY2FzZSBCb3JkZXJDb2xsYXBzZTo6U2VwYXJhdGU6IHRz
IDw8ICJzZXBhcmF0ZSI7IGJyZWFrOworICAgIGNhc2UgQm9yZGVyQ29sbGFwc2U6OkNvbGxhcHNl
OiB0cyA8PCAiY29sbGFwc2UiOyBicmVhazsKICAgICB9Ci0gICAgCiAgICAgcmV0dXJuIHRzOwog
fQogCi1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBGaWxsU2l6ZVR5cGUg
c2l6ZVR5cGUpCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBCb3JkZXJG
aXQgYm9yZGVyRml0KQogewotICAgIHN3aXRjaCAoc2l6ZVR5cGUpIHsKLSAgICBjYXNlIEZpbGxT
aXplVHlwZTo6Q29udGFpbjogdHMgPDwgImNvbnRhaW4iOyBicmVhazsKLSAgICBjYXNlIEZpbGxT
aXplVHlwZTo6Q292ZXI6IHRzIDw8ICJjb3ZlciI7IGJyZWFrOwotICAgIGNhc2UgRmlsbFNpemVU
eXBlOjpTaXplOiB0cyA8PCAic2l6ZS1sZW5ndGgiOyBicmVhazsKLSAgICBjYXNlIEZpbGxTaXpl
VHlwZTo6Tm9uZTogdHMgPDwgInNpemUtbm9uZSI7IGJyZWFrOworICAgIHN3aXRjaCAoYm9yZGVy
Rml0KSB7CisgICAgY2FzZSBCb3JkZXJGaXQ6OkJvcmRlcjogdHMgPDwgImJvcmRlciI7IGJyZWFr
OworICAgIGNhc2UgQm9yZGVyRml0OjpMaW5lczogdHMgPDwgImxpbmVzIjsgYnJlYWs7CisgICAg
fQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgQm9yZGVyU3R5bGUgYm9yZGVyU3R5bGUpCit7CisgICAgc3dpdGNoIChib3JkZXJTdHls
ZSkgeworICAgIGNhc2UgQm9yZGVyU3R5bGU6Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7Cisg
ICAgY2FzZSBCb3JkZXJTdHlsZTo6SGlkZGVuOiB0cyA8PCAiaGlkZGVuIjsgYnJlYWs7CisgICAg
Y2FzZSBCb3JkZXJTdHlsZTo6SW5zZXQ6IHRzIDw8ICJpbnNldCI7IGJyZWFrOworICAgIGNhc2Ug
Qm9yZGVyU3R5bGU6Okdyb292ZTogdHMgPDwgImdyb292ZSI7IGJyZWFrOworICAgIGNhc2UgQm9y
ZGVyU3R5bGU6Ok91dHNldDogdHMgPDwgIm91dHNldCI7IGJyZWFrOworICAgIGNhc2UgQm9yZGVy
U3R5bGU6OlJpZGdlOiB0cyA8PCAicmlkZ2UiOyBicmVhazsKKyAgICBjYXNlIEJvcmRlclN0eWxl
OjpEb3R0ZWQ6IHRzIDw8ICJkb3R0ZWQiOyBicmVhazsKKyAgICBjYXNlIEJvcmRlclN0eWxlOjpE
YXNoZWQ6IHRzIDw8ICJkYXNoZWQiOyBicmVhazsKKyAgICBjYXNlIEJvcmRlclN0eWxlOjpTb2xp
ZDogdHMgPDwgInNvbGlkIjsgYnJlYWs7CisgICAgY2FzZSBCb3JkZXJTdHlsZTo6RG91YmxlOiB0
cyA8PCAiZG91YmxlIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQm94QWxpZ25tZW50IGJveEFsaWdubWVu
dCkKK3sKKyAgICBzd2l0Y2ggKGJveEFsaWdubWVudCkgeworICAgIGNhc2UgQm94QWxpZ25tZW50
OjpTdHJldGNoOiB0cyA8PCAic3RyZXRjaCI7IGJyZWFrOworICAgIGNhc2UgQm94QWxpZ25tZW50
OjpTdGFydDogdHMgPDwgInN0YXJ0IjsgYnJlYWs7CisgICAgY2FzZSBCb3hBbGlnbm1lbnQ6OkNl
bnRlcjogdHMgPDwgImNlbnRlciI7IGJyZWFrOworICAgIGNhc2UgQm94QWxpZ25tZW50OjpFbmQ6
IHRzIDw8ICJlbmQiOyBicmVhazsKKyAgICBjYXNlIEJveEFsaWdubWVudDo6QmFzZWxpbmU6IHRz
IDw8ICJiYXNlbGluZSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEJveERlY29yYXRpb25CcmVhayBkZWNv
cmF0aW9uQnJlYWspCit7CisgICAgc3dpdGNoIChkZWNvcmF0aW9uQnJlYWspIHsKKyAgICBjYXNl
IEJveERlY29yYXRpb25CcmVhazo6U2xpY2U6IHRzIDw8ICJzbGljZSI7IGJyZWFrOworICAgIGNh
c2UgQm94RGVjb3JhdGlvbkJyZWFrOjpDbG9uZTogdHMgPDwgImNsb25lIjsgYnJlYWs7CisgICAg
fQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgQm94RGlyZWN0aW9uIGJveERpcmVjdGlvbikKK3sKKyAgICBzd2l0Y2ggKGJveERpcmVj
dGlvbikgeworICAgIGNhc2UgQm94RGlyZWN0aW9uOjpOb3JtYWw6IHRzIDw8ICJub3JtYWwiOyBi
cmVhazsKKyAgICBjYXNlIEJveERpcmVjdGlvbjo6UmV2ZXJzZTogdHMgPDwgInJldmVyc2UiOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBCb3hMaW5lcyBib3hMaW5lcykKK3sKKyAgICBzd2l0Y2ggKGJveExp
bmVzKSB7CisgICAgY2FzZSBCb3hMaW5lczo6U2luZ2xlOiB0cyA8PCAic2luZ2xlIjsgYnJlYWs7
CisgICAgY2FzZSBCb3hMaW5lczo6TXVsdGlwbGU6IHRzIDw8ICJtdWx0aXBsZSI7IGJyZWFrOwor
ICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIEJveE9yaWVudCBib3hPcmllbnQpCit7CisgICAgc3dpdGNoIChib3hPcmllbnQp
IHsKKyAgICBjYXNlIEJveE9yaWVudDo6SG9yaXpvbnRhbDogdHMgPDwgImhvcml6b250YWwiOyBi
cmVhazsKKyAgICBjYXNlIEJveE9yaWVudDo6VmVydGljYWw6IHRzIDw8ICJ2ZXJ0aWNhbCI7IGJy
ZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIEJveFBhY2sgYm94UGFjaykKK3sKKyAgICBzd2l0Y2ggKGJveFBhY2sp
IHsKKyAgICBjYXNlIEJveFBhY2s6OlN0YXJ0OiB0cyA8PCAic3RhcnQiOyBicmVhazsKKyAgICBj
YXNlIEJveFBhY2s6OkNlbnRlcjogdHMgPDwgImNlbnRlciI7IGJyZWFrOworICAgIGNhc2UgQm94
UGFjazo6RW5kOiB0cyA8PCAiZW5kIjsgYnJlYWs7CisgICAgY2FzZSBCb3hQYWNrOjpKdXN0aWZ5
OiB0cyA8PCAianVzdGlmeSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1Rl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEJveFNpemluZyBib3hTaXppbmcp
Cit7CisgICAgc3dpdGNoIChib3hTaXppbmcpIHsKKyAgICBjYXNlIEJveFNpemluZzo6Q29udGVu
dEJveDogdHMgPDwgImNvbnRlbnQtYm94IjsgYnJlYWs7CisgICAgY2FzZSBCb3hTaXppbmc6OkJv
cmRlckJveDogdHMgPDwgImJvcmRlci1ib3giOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRz
OworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBCcmVha0JldHdl
ZW4gYnJlYWtCZXR3ZWVuKQoreworICAgIHN3aXRjaCAoYnJlYWtCZXR3ZWVuKSB7CisgICAgY2Fz
ZSBCcmVha0JldHdlZW46OkF1dG86IHRzIDw8ICJhdXRvIjsgYnJlYWs7CisgICAgY2FzZSBCcmVh
a0JldHdlZW46OkF2b2lkOiB0cyA8PCAiYXZvaWQiOyBicmVhazsKKyAgICBjYXNlIEJyZWFrQmV0
d2Vlbjo6QXZvaWRDb2x1bW46IHRzIDw8ICJhdm9pZC1jb2x1bW4iOyBicmVhazsKKyAgICBjYXNl
IEJyZWFrQmV0d2Vlbjo6QXZvaWRQYWdlOiB0cyA8PCAiYXZvaWQtcGFnZSI7IGJyZWFrOworICAg
IGNhc2UgQnJlYWtCZXR3ZWVuOjpDb2x1bW46IHRzIDw8ICJjb2x1bW4iOyBicmVhazsKKyAgICBj
YXNlIEJyZWFrQmV0d2Vlbjo6UGFnZTogdHMgPDwgInBhZ2UiOyBicmVhazsKKyAgICBjYXNlIEJy
ZWFrQmV0d2Vlbjo6TGVmdFBhZ2U6IHRzIDw8ICJsZWZ0LXBhZ2UiOyBicmVhazsKKyAgICBjYXNl
IEJyZWFrQmV0d2Vlbjo6UmlnaHRQYWdlOiB0cyA8PCAicmlnaHQtcGFnZSI7IGJyZWFrOworICAg
IGNhc2UgQnJlYWtCZXR3ZWVuOjpSZWN0b1BhZ2U6IHRzIDw8ICJyZWN0by1wYWdlIjsgYnJlYWs7
CisgICAgY2FzZSBCcmVha0JldHdlZW46OlZlcnNvUGFnZTogdHMgPDwgInZlcnNvLXBhZ2UiOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBCcmVha0luc2lkZSBicmVha0luc2lkZSkKK3sKKyAgICBzd2l0Y2gg
KGJyZWFrSW5zaWRlKSB7CisgICAgY2FzZSBCcmVha0luc2lkZTo6QXV0bzogdHMgPDwgImF1dG8i
OyBicmVhazsKKyAgICBjYXNlIEJyZWFrSW5zaWRlOjpBdm9pZDogdHMgPDwgImF2b2lkIjsgYnJl
YWs7CisgICAgY2FzZSBCcmVha0luc2lkZTo6QXZvaWRDb2x1bW46IHRzIDw8ICJhdm9pZENvbHVt
biI7IGJyZWFrOworICAgIGNhc2UgQnJlYWtJbnNpZGU6OkF2b2lkUGFnZTogdHMgPDwgImF2b2lk
UGFnZSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENTU0JveFR5cGUgYm94VHlwZSkKK3sKKyAgICBzd2l0
Y2ggKGJveFR5cGUpIHsKKyAgICBjYXNlIENTU0JveFR5cGU6OkJveE1pc3Npbmc6IHRzIDw8ICJt
aXNzaW5nIjsgYnJlYWs7CisgICAgY2FzZSBDU1NCb3hUeXBlOjpNYXJnaW5Cb3g6IHRzIDw8ICJt
YXJnaW4tYm94IjsgYnJlYWs7CisgICAgY2FzZSBDU1NCb3hUeXBlOjpCb3JkZXJCb3g6IHRzIDw8
ICJib3JkZXItYm94IjsgYnJlYWs7CisgICAgY2FzZSBDU1NCb3hUeXBlOjpQYWRkaW5nQm94OiB0
cyA8PCAicGFkZGluZy1ib3giOyBicmVhazsKKyAgICBjYXNlIENTU0JveFR5cGU6OkNvbnRlbnRC
b3g6IHRzIDw8ICJjb250ZW50LWJveCI7IGJyZWFrOworICAgIGNhc2UgQ1NTQm94VHlwZTo6Rmls
bEJveDogdHMgPDwgImZpbGwtYm94IjsgYnJlYWs7CisgICAgY2FzZSBDU1NCb3hUeXBlOjpTdHJv
a2VCb3g6IHRzIDw8ICJzdHJva2UtYm94IjsgYnJlYWs7CisgICAgY2FzZSBDU1NCb3hUeXBlOjpW
aWV3Qm94OiB0cyA8PCAidmlldy1ib3giOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOwor
fQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBDU1NSZWZsZWN0aW9u
RGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNh
c2UgUmVmbGVjdGlvbkJlbG93OiB0cyA8PCAiYmVsb3ciOyBicmVhazsKKyAgICBjYXNlIFJlZmxl
Y3Rpb25BYm92ZTogdHMgPDwgImFib3ZlIjsgYnJlYWs7CisgICAgY2FzZSBSZWZsZWN0aW9uTGVm
dDogdHMgPDwgImxlZnQiOyBicmVhazsKKyAgICBjYXNlIFJlZmxlY3Rpb25SaWdodDogdHMgPDwg
InJpZ2h0IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQ2FwdGlvblNpZGUgc2lkZSkKK3sKKyAgICBzd2l0
Y2ggKHNpZGUpIHsKKyAgICBjYXNlIENhcHRpb25TaWRlOjpUb3A6IHRzIDw8ICJ0b3AiOyBicmVh
azsKKyAgICBjYXNlIENhcHRpb25TaWRlOjpCb3R0b206IHRzIDw8ICJib3R0b20iOyBicmVhazsK
KyAgICBjYXNlIENhcHRpb25TaWRlOjpMZWZ0OiB0cyA8PCAibGVmdCI7IGJyZWFrOworICAgIGNh
c2UgQ2FwdGlvblNpZGU6OlJpZ2h0OiB0cyA8PCAicmlnaHQiOyBicmVhazsKKyAgICB9CisgICAg
cmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBD
bGVhciBjbGVhcikKK3sKKyAgICBzd2l0Y2ggKGNsZWFyKSB7CisgICAgY2FzZSBDbGVhcjo6Tm9u
ZTogdHMgPDwgIm5vbmUiOyBicmVhazsKKyAgICBjYXNlIENsZWFyOjpMZWZ0OiB0cyA8PCAibGVm
dCI7IGJyZWFrOworICAgIGNhc2UgQ2xlYXI6OlJpZ2h0OiB0cyA8PCAicmlnaHQiOyBicmVhazsK
KyAgICBjYXNlIENsZWFyOjpCb3RoOiB0cyA8PCAiYm90aCI7IGJyZWFrOworICAgIH0KKyAgICBy
ZXR1cm4gdHM7Cit9CisKKyNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbG9yU2NoZW1lIGNvbG9yU2NoZW1lKQoreworICAg
IHN3aXRjaCAoY29sb3JTY2hlbWUpIHsKKyAgICBjYXNlIENvbG9yU2NoZW1lOjpMaWdodDogdHMg
PDwgImxpZ2h0IjsgYnJlYWs7CisgICAgY2FzZSBDb2xvclNjaGVtZTo6RGFyazogdHMgPDwgImRh
cmsiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorI2VuZGlmCisKK1RleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbHVtbkF4aXMgYXhpcykKK3sKKyAgICBz
d2l0Y2ggKGF4aXMpIHsKKyAgICBjYXNlIENvbHVtbkF4aXM6Okhvcml6b250YWw6IHRzIDw8ICJo
b3Jpem9udGFsIjsgYnJlYWs7CisgICAgY2FzZSBDb2x1bW5BeGlzOjpWZXJ0aWNhbDogdHMgPDwg
InZlcnRpY2FsIjsgYnJlYWs7CisgICAgY2FzZSBDb2x1bW5BeGlzOjpBdXRvOiB0cyA8PCAiYXV0
byI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbHVtbkZpbGwgZmlsbCkKK3sKKyAgICBzd2l0Y2ggKGZp
bGwpIHsKKyAgICBjYXNlIENvbHVtbkZpbGw6OkF1dG86IHRzIDw8ICJhdXRvIjsgYnJlYWs7Cisg
ICAgY2FzZSBDb2x1bW5GaWxsOjpCYWxhbmNlOiB0cyA8PCAiYmFsYW5jZSI7IGJyZWFrOworICAg
IH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIENvbHVtblByb2dyZXNzaW9uIHByb2dyZXNzaW9uKQoreworICAgIHN3aXRjaCAocHJv
Z3Jlc3Npb24pIHsKKyAgICBjYXNlIENvbHVtblByb2dyZXNzaW9uOjpOb3JtYWw6IHRzIDw8ICJu
b3JtYWwiOyBicmVhazsKKyAgICBjYXNlIENvbHVtblByb2dyZXNzaW9uOjpSZXZlcnNlOiB0cyA8
PCAicmV2ZXJzZSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbHVtblNwYW4gc3BhbikKK3sKKyAgICBz
d2l0Y2ggKHNwYW4pIHsKKyAgICBjYXNlIENvbHVtblNwYW46Ok5vbmU6IHRzIDw8ICJub25lIjsg
YnJlYWs7CisgICAgY2FzZSBDb2x1bW5TcGFuOjpBbGw6IHRzIDw8ICJhbGwiOyBicmVhazsKKyAg
ICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBDb250ZW50RGlzdHJpYnV0aW9uIGRpc3RyaWJ1dGlvbikKK3sKKyAgICBzd2l0Y2gg
KGRpc3RyaWJ1dGlvbikgeworICAgIGNhc2UgQ29udGVudERpc3RyaWJ1dGlvbjo6RGVmYXVsdDog
dHMgPDwgImRlZmF1bHQiOyBicmVhazsKKyAgICBjYXNlIENvbnRlbnREaXN0cmlidXRpb246OlNw
YWNlQmV0d2VlbjogdHMgPDwgInNwYWNlLWJldHdlZW4iOyBicmVhazsKKyAgICBjYXNlIENvbnRl
bnREaXN0cmlidXRpb246OlNwYWNlQXJvdW5kOiB0cyA8PCAic3BhY2UtYXJvdW5kIjsgYnJlYWs7
CisgICAgY2FzZSBDb250ZW50RGlzdHJpYnV0aW9uOjpTcGFjZUV2ZW5seTogdHMgPDwgInNwYWNl
LWV2ZW5seSI7IGJyZWFrOworICAgIGNhc2UgQ29udGVudERpc3RyaWJ1dGlvbjo6U3RyZXRjaDog
dHMgPDwgInN0cmV0Y2giOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBDb250ZW50UG9zaXRpb24gcG9zaXRp
b24pCit7CisgICAgc3dpdGNoIChwb3NpdGlvbikgeworICAgIGNhc2UgQ29udGVudFBvc2l0aW9u
OjpOb3JtYWw6IHRzIDw8ICJub3JtYWwiOyBicmVhazsKKyAgICBjYXNlIENvbnRlbnRQb3NpdGlv
bjo6QmFzZWxpbmU6IHRzIDw8ICJiYXNlbGluZSI7IGJyZWFrOworICAgIGNhc2UgQ29udGVudFBv
c2l0aW9uOjpMYXN0QmFzZWxpbmU6IHRzIDw8ICJsYXN0LWJhc2VsaW5lIjsgYnJlYWs7CisgICAg
Y2FzZSBDb250ZW50UG9zaXRpb246OkNlbnRlcjogdHMgPDwgImNlbnRlciI7IGJyZWFrOworICAg
IGNhc2UgQ29udGVudFBvc2l0aW9uOjpTdGFydDogdHMgPDwgInN0YXJ0IjsgYnJlYWs7CisgICAg
Y2FzZSBDb250ZW50UG9zaXRpb246OkVuZDogdHMgPDwgImVuZCI7IGJyZWFrOworICAgIGNhc2Ug
Q29udGVudFBvc2l0aW9uOjpGbGV4U3RhcnQ6IHRzIDw8ICJmbGV4LXN0YXJ0IjsgYnJlYWs7Cisg
ICAgY2FzZSBDb250ZW50UG9zaXRpb246OkZsZXhFbmQ6IHRzIDw8ICJmbGV4LWVuZCI7IGJyZWFr
OworICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpMZWZ0OiB0cyA8PCAibGVmdCI7IGJyZWFrOwor
ICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpSaWdodDogdHMgPDwgInJpZ2h0IjsgYnJlYWs7CisK
KyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBDdXJzb3JUeXBlIGN1cnNvcikKK3sKKyAgICBzd2l0Y2ggKGN1cnNvcikgewor
ICAgIGNhc2UgQ3Vyc29yVHlwZTo6QXV0bzogdHMgPDwgImF1dG8iOyBicmVhazsKKyAgICBjYXNl
IEN1cnNvclR5cGU6OkRlZmF1bHQ6IHRzIDw8ICJkZWZhdWx0IjsgYnJlYWs7CisgICAgY2FzZSBD
dXJzb3JUeXBlOjpDb250ZXh0TWVudTogdHMgPDwgImNvbnRleHRtZW51IjsgYnJlYWs7CisgICAg
Y2FzZSBDdXJzb3JUeXBlOjpIZWxwOiB0cyA8PCAiaGVscCI7IGJyZWFrOworICAgIGNhc2UgQ3Vy
c29yVHlwZTo6UG9pbnRlcjogdHMgPDwgInBvaW50ZXIiOyBicmVhazsKKyAgICBjYXNlIEN1cnNv
clR5cGU6OlByb2dyZXNzOiB0cyA8PCAicHJvZ3Jlc3MiOyBicmVhazsKKyAgICBjYXNlIEN1cnNv
clR5cGU6OldhaXQ6IHRzIDw8ICJ3YWl0IjsgYnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpD
ZWxsOiB0cyA8PCAiY2VsbCI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6Q3Jvc3NoYWly
OiB0cyA8PCAiY3Jvc3NoYWlyIjsgYnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpUZXh0OiB0
cyA8PCAidGV4dCI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6VmVydGljYWxUZXh0OiB0
cyA8PCAidmVydGljYWwtdGV4dCI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6QWxpYXM6
IHRzIDw8ICJhbGlhcyI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6TW92ZTogdHMgPDwg
Im1vdmUiOyBicmVhazsKKyAgICBjYXNlIEN1cnNvclR5cGU6Ok5vRHJvcDogdHMgPDwgIm5vZHJv
cCI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6Tm90QWxsb3dlZDogdHMgPDwgIm5vdC1h
bGxvd2VkIjsgYnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpHcmFiOiB0cyA8PCAiZ3JhYiI7
IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6R3JhYmJpbmc6IHRzIDw8ICJncmFiYmluZyI7
IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6RVJlc2l6ZTogdHMgPDwgImUtcmVzaXplIjsg
YnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpOUmVzaXplOiB0cyA8PCAibi1yZXNpemUiOyBi
cmVhazsKKyAgICBjYXNlIEN1cnNvclR5cGU6Ok5FUmVzaXplOiB0cyA8PCAibmUtcmVzaXplIjsg
YnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpOV1Jlc2l6ZTogdHMgPDwgIm53LXJlc2l6ZSI7
IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6U1Jlc2l6ZTogdHMgPDwgInNyLWVzaXplIjsg
YnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpTRVJlc2l6ZTogdHMgPDwgInNlLXJlc2l6ZSI7
IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6U1dSZXNpemU6IHRzIDw8ICJzdy1yZXNpemUi
OyBicmVhazsKKyAgICBjYXNlIEN1cnNvclR5cGU6OldSZXNpemU6IHRzIDw8ICJ3LXJlc2l6ZSI7
IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6RVdSZXNpemU6IHRzIDw8ICJldy1yZXNpemUi
OyBicmVhazsKKyAgICBjYXNlIEN1cnNvclR5cGU6Ok5TUmVzaXplOiB0cyA8PCAibnMtcmVzaXpl
IjsgYnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpORVNXUmVzaXplOiB0cyA8PCAibmVzdy1y
ZXNpemUiOyBicmVhazsKKyAgICBjYXNlIEN1cnNvclR5cGU6Ok5XU0VSZXNpemU6IHRzIDw8ICJu
d3NlLXJlc2l6ZSI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6Q29sdW1uUmVzaXplOiB0
cyA8PCAiY29sdW1uLXJlc2l6ZSI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6Um93UmVz
aXplOiB0cyA8PCAicm93LXJlc2l6ZSI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6QWxs
U2Nyb2xsOiB0cyA8PCAiYWxsLXNjcm9sbCI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6
Wm9vbUluOiB0cyA8PCAiem9vbS1pbiI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6Wm9v
bU91dDogdHMgPDwgInpvb20tb3V0IjsgYnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpDb3B5
OiB0cyA8PCAiY29weSI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6Tm9uZTogdHMgPDwg
Im5vbmUiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCisjaWYgRU5BQkxFKENV
UlNPUl9WSVNJQklMSVRZKQorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Q3Vyc29yVmlzaWJpbGl0eSB2aXNpYmlsaXR5KQoreworICAgIHN3aXRjaCAodmlzaWJpbGl0eSkg
eworICAgIGNhc2UgQ3Vyc29yVmlzaWJpbGl0eTo6QXV0bzogdHMgPDwgImF1dG8iOyBicmVhazsK
KyAgICBjYXNlIEN1cnNvclZpc2liaWxpdHk6OkF1dG9IaWRlOiB0cyA8PCAiYXV0b2hpZGUiOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorI2VuZGlmCisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIERpc3BsYXlUeXBlIGRpc3BsYXkpCit7CisgICAgc3dp
dGNoIChkaXNwbGF5KSB7CisgICAgY2FzZSBEaXNwbGF5VHlwZTo6SW5saW5lOiB0cyA8PCAiaW5s
aW5lIjsgYnJlYWs7CisgICAgY2FzZSBEaXNwbGF5VHlwZTo6QmxvY2s6IHRzIDw8ICJibG9jayI7
IGJyZWFrOworICAgIGNhc2UgRGlzcGxheVR5cGU6Okxpc3RJdGVtOiB0cyA8PCAibGlzdC1pdGVt
IjsgYnJlYWs7CisgICAgY2FzZSBEaXNwbGF5VHlwZTo6Q29tcGFjdDogdHMgPDwgImNvbXBhY3Qi
OyBicmVhazsKKyAgICBjYXNlIERpc3BsYXlUeXBlOjpJbmxpbmVCbG9jazogdHMgPDwgImlubGlu
ZS1ibG9jayI7IGJyZWFrOworICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlOiB0cyA8PCAidGFi
bGUiOyBicmVhazsKKyAgICBjYXNlIERpc3BsYXlUeXBlOjpJbmxpbmVUYWJsZTogdHMgPDwgImlu
bGluZS10YWJsZSI7IGJyZWFrOworICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlUm93R3JvdXA6
IHRzIDw8ICJ0YWJsZS1yb3ctZ3JvdXAiOyBicmVhazsKKyAgICBjYXNlIERpc3BsYXlUeXBlOjpU
YWJsZUhlYWRlckdyb3VwOiB0cyA8PCAidGFibGUtaGVhZGVyLWdyb3VwIjsgYnJlYWs7CisgICAg
Y2FzZSBEaXNwbGF5VHlwZTo6VGFibGVGb290ZXJHcm91cDogdHMgPDwgInRhYmxlLWZvb3Rlci1n
cm91cCI7IGJyZWFrOworICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlUm93OiB0cyA8PCAidGFi
bGUtcm93IjsgYnJlYWs7CisgICAgY2FzZSBEaXNwbGF5VHlwZTo6VGFibGVDb2x1bW5Hcm91cDog
dHMgPDwgInRhYmxlLWNvbHVtbi1ncm91cCI7IGJyZWFrOworICAgIGNhc2UgRGlzcGxheVR5cGU6
OlRhYmxlQ29sdW1uOiB0cyA8PCAidGFibGUtY29sdW1uIjsgYnJlYWs7CisgICAgY2FzZSBEaXNw
bGF5VHlwZTo6VGFibGVDZWxsOiB0cyA8PCAidGFibGUtY2VsbCI7IGJyZWFrOworICAgIGNhc2Ug
RGlzcGxheVR5cGU6OlRhYmxlQ2FwdGlvbjogdHMgPDwgInRhYmxlLWNhcHRpb24iOyBicmVhazsK
KyAgICBjYXNlIERpc3BsYXlUeXBlOjpCb3g6IHRzIDw8ICJib3giOyBicmVhazsKKyAgICBjYXNl
IERpc3BsYXlUeXBlOjpJbmxpbmVCb3g6IHRzIDw8ICJpbmxpbmUtYm94IjsgYnJlYWs7CisgICAg
Y2FzZSBEaXNwbGF5VHlwZTo6RmxleDogdHMgPDwgImZsZXgiOyBicmVhazsKKyAgICBjYXNlIERp
c3BsYXlUeXBlOjpXZWJLaXRGbGV4OiB0cyA8PCAid2ViLWtpdC1mbGV4IjsgYnJlYWs7CisgICAg
Y2FzZSBEaXNwbGF5VHlwZTo6SW5saW5lRmxleDogdHMgPDwgImlubGluZS1mbGV4IjsgYnJlYWs7
CisgICAgY2FzZSBEaXNwbGF5VHlwZTo6V2ViS2l0SW5saW5lRmxleDogdHMgPDwgIndlYi1raXQt
aW5saW5lLWZsZXgiOyBicmVhazsKKyAgICBjYXNlIERpc3BsYXlUeXBlOjpDb250ZW50czogdHMg
PDwgImNvbnRlbnRzIjsgYnJlYWs7CisgICAgY2FzZSBEaXNwbGF5VHlwZTo6R3JpZDogdHMgPDwg
ImdyaWQiOyBicmVhazsKKyAgICBjYXNlIERpc3BsYXlUeXBlOjpJbmxpbmVHcmlkOiB0cyA8PCAi
aW5saW5lLWdyaWQiOyBicmVhazsKKyAgICBjYXNlIERpc3BsYXlUeXBlOjpGbG93Um9vdDogdHMg
PDwgImZsb3ctcm9vdCI7IGJyZWFrOworICAgIGNhc2UgRGlzcGxheVR5cGU6Ok5vbmU6IHRzIDw8
ICJub25lIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgRWRnZSBlZGdlKQoreworICAgIHN3aXRjaCAoZWRn
ZSkgeworICAgIGNhc2UgRWRnZTo6VG9wOiB0cyA8PCAidG9wIjsgYnJlYWs7CisgICAgY2FzZSBF
ZGdlOjpSaWdodDogdHMgPDwgInJpZ2h0IjsgYnJlYWs7CisgICAgY2FzZSBFZGdlOjpCb3R0b206
IHRzIDw8ICJib3R0b20iOyBicmVhazsKKyAgICBjYXNlIEVkZ2U6OkxlZnQ6IHRzIDw8ICJsZWZ0
IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgRW1wdHlDZWxsIGVtcHR5Q2VsbCkKK3sKKyAgICBzd2l0Y2gg
KGVtcHR5Q2VsbCkgeworICAgIGNhc2UgRW1wdHlDZWxsOjpTaG93OiB0cyA8PCAic2hvdyI7IGJy
ZWFrOworICAgIGNhc2UgRW1wdHlDZWxsOjpIaWRlOiB0cyA8PCAiaGlkZSI7IGJyZWFrOwogICAg
IH0KLSAgICAKICAgICByZXR1cm4gdHM7CiB9CiAKQEAgLTk1LDI3ICs1MDMsODE5IEBAIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEZpbGxSZXBlYXQgcmVwZWF0KQogICAg
IGNhc2UgRmlsbFJlcGVhdDo6Um91bmQ6IHRzIDw8ICJyb3VuZCI7IGJyZWFrOwogICAgIGNhc2Ug
RmlsbFJlcGVhdDo6U3BhY2U6IHRzIDw8ICJzcGFjZSI7IGJyZWFrOwogICAgIH0KKyAgICByZXR1
cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEZpbGxT
aXplVHlwZSBzaXplVHlwZSkKK3sKKyAgICBzd2l0Y2ggKHNpemVUeXBlKSB7CisgICAgY2FzZSBG
aWxsU2l6ZVR5cGU6OkNvbnRhaW46IHRzIDw8ICJjb250YWluIjsgYnJlYWs7CisgICAgY2FzZSBG
aWxsU2l6ZVR5cGU6OkNvdmVyOiB0cyA8PCAiY292ZXIiOyBicmVhazsKKyAgICBjYXNlIEZpbGxT
aXplVHlwZTo6U2l6ZTogdHMgPDwgInNpemUtbGVuZ3RoIjsgYnJlYWs7CisgICAgY2FzZSBGaWxs
U2l6ZVR5cGU6Ok5vbmU6IHRzIDw8ICJzaXplLW5vbmUiOyBicmVhazsKKyAgICB9CisgICAgCisg
ICAgcmV0dXJuIHRzOworfQogCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBGbGV4RGlyZWN0aW9uIGZsZXhEaXJlY3Rpb24pCit7CisgICAgc3dpdGNoIChmbGV4RGlyZWN0
aW9uKSB7CisgICAgY2FzZSBGbGV4RGlyZWN0aW9uOjpSb3c6IHRzIDw8ICJyb3ciOyBicmVhazsK
KyAgICBjYXNlIEZsZXhEaXJlY3Rpb246OlJvd1JldmVyc2U6IHRzIDw8ICJyb3ctcmV2ZXJzZSI7
IGJyZWFrOworICAgIGNhc2UgRmxleERpcmVjdGlvbjo6Q29sdW1uOiB0cyA8PCAiY29sdW1uIjsg
YnJlYWs7CisgICAgY2FzZSBGbGV4RGlyZWN0aW9uOjpDb2x1bW5SZXZlcnNlOiB0cyA8PCAiY29s
dW1uLXJldmVyc2UiOyBicmVhazsKKyAgICB9CiAgICAgcmV0dXJuIHRzOwogfQogCi1UZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBNYXNrU291cmNlVHlwZSBtYXNrU291cmNl
KQorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgRmxleFdyYXAgZmxleFdy
YXApCiB7Ci0gICAgc3dpdGNoIChtYXNrU291cmNlKSB7Ci0gICAgY2FzZSBNYXNrU291cmNlVHlw
ZTo6QWxwaGE6IHRzIDw8ICJhbHBoYSI7IGJyZWFrOwotICAgIGNhc2UgTWFza1NvdXJjZVR5cGU6
Okx1bWluYW5jZTogdHMgPDwgImx1bWluYW5jZSI7IGJyZWFrOworICAgIHN3aXRjaCAoZmxleFdy
YXApIHsKKyAgICBjYXNlIEZsZXhXcmFwOjpOb1dyYXA6IHRzIDw8ICJuby13cmFwIjsgYnJlYWs7
CisgICAgY2FzZSBGbGV4V3JhcDo6V3JhcDogdHMgPDwgIndyYXAiOyBicmVhazsKKyAgICBjYXNl
IEZsZXhXcmFwOjpSZXZlcnNlOiB0cyA8PCAicmV2ZXJzZSI7IGJyZWFrOwogICAgIH0KKyAgICBy
ZXR1cm4gdHM7Cit9CiAKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEZs
b2F0IGZsb2F0aW5nKQoreworICAgIHN3aXRjaCAoZmxvYXRpbmcpIHsKKyAgICBjYXNlIEZsb2F0
OjpObzogdHMgPDwgIm5vbmUiOyBicmVhazsKKyAgICBjYXNlIEZsb2F0OjpMZWZ0OiB0cyA8PCAi
bGVmdCI7IGJyZWFrOworICAgIGNhc2UgRmxvYXQ6OlJpZ2h0OiB0cyA8PCAicmlnaHQiOyBicmVh
azsKKyAgICB9CiAgICAgcmV0dXJuIHRzOwogfQogCi1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBFZGdlIGVkZ2UpCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBHcmlkQXV0b0Zsb3cgZ3JpZEF1dG9GbG93KQogewotICAgIHN3aXRjaCAoZWRnZSkg
ewotICAgIGNhc2UgRWRnZTo6VG9wOiB0cyA8PCAidG9wIjsgYnJlYWs7Ci0gICAgY2FzZSBFZGdl
OjpSaWdodDogdHMgPDwgInJpZ2h0IjsgYnJlYWs7Ci0gICAgY2FzZSBFZGdlOjpCb3R0b206IHRz
IDw8ICJib3R0b20iOyBicmVhazsKLSAgICBjYXNlIEVkZ2U6OkxlZnQ6IHRzIDw8ICJsZWZ0Ijsg
YnJlYWs7CisgICAgc3dpdGNoIChncmlkQXV0b0Zsb3cpIHsKKyAgICBjYXNlIEF1dG9GbG93Um93
OiB0cyA8PCAicm93IjsgYnJlYWs7CisgICAgY2FzZSBBdXRvRmxvd0NvbHVtbjogdHMgPDwgImNv
bHVtbiI7IGJyZWFrOworICAgIGNhc2UgQXV0b0Zsb3dSb3dEZW5zZTogdHMgPDwgInJvdy1kZW5z
ZSI7IGJyZWFrOworICAgIGNhc2UgQXV0b0Zsb3dDb2x1bW5EZW5zZTogdHMgPDwgImNvbHVtbi1k
ZW5zZSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEhhbmdpbmdQdW5jdHVhdGlvbiBwdW5jdHVhdGlvbikK
K3sKKyAgICBzd2l0Y2ggKHB1bmN0dWF0aW9uKSB7CisgICAgY2FzZSBIYW5naW5nUHVuY3R1YXRp
b246Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAgY2FzZSBIYW5naW5nUHVuY3R1YXRp
b246OkZpcnN0OiB0cyA8PCAiZmlyc3QiOyBicmVhazsKKyAgICBjYXNlIEhhbmdpbmdQdW5jdHVh
dGlvbjo6TGFzdDogdHMgPDwgImxhc3QiOyBicmVhazsKKyAgICBjYXNlIEhhbmdpbmdQdW5jdHVh
dGlvbjo6QWxsb3dFbmQ6IHRzIDw8ICJhbGxvdy1lbmQiOyBicmVhazsKKyAgICBjYXNlIEhhbmdp
bmdQdW5jdHVhdGlvbjo6Rm9yY2VFbmQ6IHRzIDw8ICJmb3JjZS1lbmQiOyBicmVhazsKKyAgICB9
CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBIeXBoZW5zIGh5cGhlbnMpCit7CisgICAgc3dpdGNoIChoeXBoZW5zKSB7CisgICAgY2Fz
ZSBIeXBoZW5zOjpOb25lOiB0cyA8PCAibm9uZSI7IGJyZWFrOworICAgIGNhc2UgSHlwaGVuczo6
TWFudWFsOiB0cyA8PCAibWFudWFsIjsgYnJlYWs7CisgICAgY2FzZSBIeXBoZW5zOjpBdXRvOiB0
cyA8PCAiYXV0byI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEltYWdlUmVuZGVyaW5nIGltYWdlUmVuZGVy
aW5nKQoreworICAgIHN3aXRjaCAoaW1hZ2VSZW5kZXJpbmcpIHsKKyAgICBjYXNlIEltYWdlUmVu
ZGVyaW5nOjpBdXRvOiB0cyA8PCAiYXV0byI7IGJyZWFrOworICAgIGNhc2UgSW1hZ2VSZW5kZXJp
bmc6Ok9wdGltaXplU3BlZWQ6IHRzIDw8ICJvcHRpbWl6ZVNwZWVkIjsgYnJlYWs7CisgICAgY2Fz
ZSBJbWFnZVJlbmRlcmluZzo6T3B0aW1pemVRdWFsaXR5OiB0cyA8PCAib3B0aW1pemVRdWFsaXR5
IjsgYnJlYWs7CisgICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6Q3Jpc3BFZGdlczogdHMgPDwgImNy
aXNwRWRnZXMiOyBicmVhazsKKyAgICBjYXNlIEltYWdlUmVuZGVyaW5nOjpQaXhlbGF0ZWQ6IHRz
IDw8ICJwaXhlbGF0ZWQiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJbnNpZGVMaW5rIGluc2lkZSkKK3sK
KyAgICBzd2l0Y2ggKGluc2lkZSkgeworICAgIGNhc2UgSW5zaWRlTGluazo6Tm90SW5zaWRlOiB0
cyA8PCAibm90LWluc2lkZSI7IGJyZWFrOworICAgIGNhc2UgSW5zaWRlTGluazo6SW5zaWRlVW52
aXNpdGVkOiB0cyA8PCAiaW5zaWRlLXVudmlzaXRlZCI7IGJyZWFrOworICAgIGNhc2UgSW5zaWRl
TGluazo6SW5zaWRlVmlzaXRlZDogdHMgPDwgImluc2lkZS12aXNpdGVkIjsgYnJlYWs7CisgICAg
fQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgSXNvbGF0aW9uIGlzb2xhdGlvbikKK3sKKyAgICBzd2l0Y2ggKGlzb2xhdGlvbikgewor
ICAgIGNhc2UgSXNvbGF0aW9uOjpBdXRvOiB0cyA8PCAiYXV0byI7IGJyZWFrOworICAgIGNhc2Ug
SXNvbGF0aW9uOjpJc29sYXRlOiB0cyA8PCAiaXNvbGF0ZSI7IGJyZWFrOworICAgIH0KKyAgICBy
ZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0
ZW1Qb3NpdGlvbiBwb3NpdGlvbikKK3sKKyAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CisgICAgY2Fz
ZSBJdGVtUG9zaXRpb246OkxlZ2FjeTogdHMgPDwgImxlZ2FjeSI7IGJyZWFrOworICAgIGNhc2Ug
SXRlbVBvc2l0aW9uOjpBdXRvOiB0cyA8PCAiYXV0byI7IGJyZWFrOworICAgIGNhc2UgSXRlbVBv
c2l0aW9uOjpOb3JtYWw6IHRzIDw8ICJub3JtYWwiOyBicmVhazsKKyAgICBjYXNlIEl0ZW1Qb3Np
dGlvbjo6U3RyZXRjaDogdHMgPDwgInN0cmV0Y2giOyBicmVhazsKKyAgICBjYXNlIEl0ZW1Qb3Np
dGlvbjo6QmFzZWxpbmU6IHRzIDw8ICJiYXNlbGluZSI7IGJyZWFrOworICAgIGNhc2UgSXRlbVBv
c2l0aW9uOjpMYXN0QmFzZWxpbmU6IHRzIDw8ICJsYXN0LWJhc2VsaW5lIjsgYnJlYWs7CisgICAg
Y2FzZSBJdGVtUG9zaXRpb246OkNlbnRlcjogdHMgPDwgImNlbnRlciI7IGJyZWFrOworICAgIGNh
c2UgSXRlbVBvc2l0aW9uOjpTdGFydDogdHMgPDwgInN0YXJ0IjsgYnJlYWs7CisgICAgY2FzZSBJ
dGVtUG9zaXRpb246OkVuZDogdHMgPDwgImVuZCI7IGJyZWFrOworICAgIGNhc2UgSXRlbVBvc2l0
aW9uOjpTZWxmU3RhcnQ6IHRzIDw8ICJzZWxmLXN0YXJ0IjsgYnJlYWs7CisgICAgY2FzZSBJdGVt
UG9zaXRpb246OlNlbGZFbmQ6IHRzIDw8ICJzZWxmLWVuZCI7IGJyZWFrOworICAgIGNhc2UgSXRl
bVBvc2l0aW9uOjpGbGV4U3RhcnQ6IHRzIDw8ICJmbGV4LXN0YXJ0IjsgYnJlYWs7CisgICAgY2Fz
ZSBJdGVtUG9zaXRpb246OkZsZXhFbmQ6IHRzIDw8ICJmbGV4LWVuZCI7IGJyZWFrOworICAgIGNh
c2UgSXRlbVBvc2l0aW9uOjpMZWZ0OiB0cyA8PCAibGVmdCI7IGJyZWFrOworICAgIGNhc2UgSXRl
bVBvc2l0aW9uOjpSaWdodDogdHMgPDwgInJpZ2h0IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVy
biB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVBv
c2l0aW9uVHlwZSBwb3NpdGlvblR5cGUpCit7CisgICAgc3dpdGNoIChwb3NpdGlvblR5cGUpIHsK
KyAgICBjYXNlIEl0ZW1Qb3NpdGlvblR5cGU6Ok5vbkxlZ2FjeTogdHMgPDwgIm5vbi1sZWdhY3ki
OyBicmVhazsKKyAgICBjYXNlIEl0ZW1Qb3NpdGlvblR5cGU6OkxlZ2FjeTogdHMgPDwgImxlZ2Fj
eSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIExpbmVBbGlnbiBhbGlnbikKK3sKKyAgICBzd2l0Y2ggKGFs
aWduKSB7CisgICAgY2FzZSBMaW5lQWxpZ246Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7Cisg
ICAgY2FzZSBMaW5lQWxpZ246OkVkZ2VzOiB0cyA8PCAiZWRnZXMiOyBicmVhazsKKyAgICB9Cisg
ICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBMaW5lQnJlYWsgbGluZUJyZWFrKQoreworICAgIHN3aXRjaCAobGluZUJyZWFrKSB7CisgICAg
Y2FzZSBMaW5lQnJlYWs6OkF1dG86IHRzIDw8ICJhdXRvIjsgYnJlYWs7CisgICAgY2FzZSBMaW5l
QnJlYWs6Okxvb3NlOiB0cyA8PCAibG9vc2UiOyBicmVhazsKKyAgICBjYXNlIExpbmVCcmVhazo6
Tm9ybWFsOiB0cyA8PCAibm9ybWFsIjsgYnJlYWs7CisgICAgY2FzZSBMaW5lQnJlYWs6OlN0cmlj
dDogdHMgPDwgInN0cmljdCI7IGJyZWFrOworICAgIGNhc2UgTGluZUJyZWFrOjpBZnRlcldoaXRl
U3BhY2U6IHRzIDw8ICJhZnRlci13aGl0ZVNwYWNlIjsgYnJlYWs7CisgICAgY2FzZSBMaW5lQnJl
YWs6OkFueXdoZXJlOiB0cyA8PCAiYW55d2hlcmUiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJu
IHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBMaW5lU25h
cCBsaW5lU25hcCkKK3sKKyAgICBzd2l0Y2ggKGxpbmVTbmFwKSB7CisgICAgY2FzZSBMaW5lU25h
cDo6Tm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsKKyAgICBjYXNlIExpbmVTbmFwOjpCYXNlbGlu
ZTogdHMgPDwgImJhc2VsaW5lIjsgYnJlYWs7CisgICAgY2FzZSBMaW5lU25hcDo6Q29udGFpbjog
dHMgPDwgImNvbnRhaW4iOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBMaXN0U3R5bGVQb3NpdGlvbiBwb3Np
dGlvbikKK3sKKyAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CisgICAgY2FzZSBMaXN0U3R5bGVQb3Np
dGlvbjo6T3V0c2lkZTogdHMgPDwgIm91dHNpZGUiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHls
ZVBvc2l0aW9uOjpJbnNpZGU6IHRzIDw8ICJpbnNpZGUiOyBicmVhazsKKyAgICB9CisgICAgcmV0
dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBMaXN0
U3R5bGVUeXBlIHN0eWxlVHlwZSkKK3sKKyAgICBzd2l0Y2ggKHN0eWxlVHlwZSkgeworICAgIGNh
c2UgTGlzdFN0eWxlVHlwZTo6RGlzYzogdHMgPDwgImRpc2MiOyBicmVhazsKKyAgICBjYXNlIExp
c3RTdHlsZVR5cGU6OkNpcmNsZTogdHMgPDwgImNpcmNsZSI7IGJyZWFrOworICAgIGNhc2UgTGlz
dFN0eWxlVHlwZTo6U3F1YXJlOiB0cyA8PCAic3F1YXJlIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0
U3R5bGVUeXBlOjpEZWNpbWFsOiB0cyA8PCAiZGVjaW1hbCI7IGJyZWFrOworICAgIGNhc2UgTGlz
dFN0eWxlVHlwZTo6RGVjaW1hbExlYWRpbmdaZXJvOiB0cyA8PCAiZGVjaW1hbC1sZWFkaW5nLXpl
cm8iOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OkFyYWJpY0luZGljOiB0cyA8PCAi
YXJhYmljLWluZGljIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpCaW5hcnk6IHRz
IDw8ICJiaW5hcnkiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OkJlbmdhbGk6IHRz
IDw8ICJiZW5nYWxpIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpDYW1ib2RpYW46
IHRzIDw8ICJjYW1ib2RpYW4iOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OktobWVy
OiB0cyA8PCAia2htZXIiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OkRldmFuYWdh
cmk6IHRzIDw8ICJkZXZhbmFnYXJpIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpH
dWphcmF0aTogdHMgPDwgImd1amFyYXRpIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBl
OjpHdXJtdWtoaTogdHMgPDwgImd1cm11a2hpIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVU
eXBlOjpLYW5uYWRhOiB0cyA8PCAia2FubmFkYSI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxl
VHlwZTo6TG93ZXJIZXhhZGVjaW1hbDogdHMgPDwgImxvd2VyLWhleGFkZWNpbWFsIjsgYnJlYWs7
CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpMYW86IHRzIDw8ICJsYW8iOyBicmVhazsKKyAgICBj
YXNlIExpc3RTdHlsZVR5cGU6Ok1hbGF5YWxhbTogdHMgPDwgIm1hbGF5YWxhbSI7IGJyZWFrOwor
ICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6TW9uZ29saWFuOiB0cyA8PCAibW9uZ29saWFuIjsgYnJl
YWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpNeWFubWFyOiB0cyA8PCAibXlhbm1hciI7IGJy
ZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6T2N0YWw6IHRzIDw8ICJvY3RhbCI7IGJyZWFr
OworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6T3JpeWE6IHRzIDw8ICJvcml5YSI7IGJyZWFrOwor
ICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6UGVyc2lhbjogdHMgPDwgInBlcnNpYW4iOyBicmVhazsK
KyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OlVyZHU6IHRzIDw8ICJ1cmR1IjsgYnJlYWs7CisgICAg
Y2FzZSBMaXN0U3R5bGVUeXBlOjpUZWx1Z3U6IHRzIDw8ICJ0ZWx1Z3UiOyBicmVhazsKKyAgICBj
YXNlIExpc3RTdHlsZVR5cGU6OlRpYmV0YW46IHRzIDw8ICJ0aWJldGFuIjsgYnJlYWs7CisgICAg
Y2FzZSBMaXN0U3R5bGVUeXBlOjpUaGFpOiB0cyA8PCAidGhhaSI7IGJyZWFrOworICAgIGNhc2Ug
TGlzdFN0eWxlVHlwZTo6VXBwZXJIZXhhZGVjaW1hbDogdHMgPDwgInVwcGVyLWhleGFkZWNpbWFs
IjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpMb3dlclJvbWFuOiB0cyA8PCAibG93
ZXItcm9tYW4iOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OlVwcGVyUm9tYW46IHRz
IDw8ICJ1cHBlci1yb21hbiI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6TG93ZXJH
cmVlazogdHMgPDwgImxvd2VyLWdyZWVrIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBl
OjpMb3dlckFscGhhOiB0cyA8PCAibG93ZXItYWxwaGEiOyBicmVhazsKKyAgICBjYXNlIExpc3RT
dHlsZVR5cGU6Okxvd2VyTGF0aW46IHRzIDw8ICJsb3dlci1sYXRpbiI7IGJyZWFrOworICAgIGNh
c2UgTGlzdFN0eWxlVHlwZTo6VXBwZXJBbHBoYTogdHMgPDwgInVwcGVyLWFscGhhIjsgYnJlYWs7
CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpVcHBlckxhdGluOiB0cyA8PCAidXBwZXItbGF0aW4i
OyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OkFmYXI6IHRzIDw8ICJhZmFyIjsgYnJl
YWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpFdGhpb3BpY0hhbGVoYW1lQWFFdDogdHMgPDwg
ImV0aGlvcGljLWhhbGVoYW1lLWFhLWV0IjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBl
OjpFdGhpb3BpY0hhbGVoYW1lQWFFcjogdHMgPDwgImV0aGlvcGljLWhhbGVoYW1lLWFhLWVyIjsg
YnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpBbWhhcmljOiB0cyA8PCAiYW1oYXJpYyI7
IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6RXRoaW9waWNIYWxlaGFtZUFtRXQ6IHRz
IDw8ICJldGhpb3BpYy1oYWxlaGFtZS1hbS1ldCI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxl
VHlwZTo6QW1oYXJpY0FiZWdlZGU6IHRzIDw8ICJhbWhhcmljLWFiZWdlZGUiOyBicmVhazsKKyAg
ICBjYXNlIExpc3RTdHlsZVR5cGU6OkV0aGlvcGljQWJlZ2VkZUFtRXQ6IHRzIDw8ICJldGhpb3Bp
Yy1hYmVnZWRlLWFtLWV0IjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpDamtFYXJ0
aGx5QnJhbmNoOiB0cyA8PCAiY2prLWVhcnRobHktYnJhbmNoIjsgYnJlYWs7CisgICAgY2FzZSBM
aXN0U3R5bGVUeXBlOjpDamtIZWF2ZW5seVN0ZW06IHRzIDw8ICJjamstaGVhdmVubHktc3RlbSI7
IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6RXRoaW9waWM6IHRzIDw8ICJldGhpb3Bp
YyI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6RXRoaW9waWNIYWxlaGFtZUdlejog
dHMgPDwgImV0aGlvcGljLWhhbGVoYW1lLWdleiI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxl
VHlwZTo6RXRoaW9waWNBYmVnZWRlOiB0cyA8PCAiZXRoaW9waWMtYWJlZ2VkZSI7IGJyZWFrOwor
ICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6RXRoaW9waWNBYmVnZWRlR2V6OiB0cyA8PCAiZXRoaW9w
aWMtYWJlZ2VkZS1nZXoiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6Okhhbmd1bENv
bnNvbmFudDogdHMgPDwgImhhbmd1bC1jb25zb25hbnQiOyBicmVhazsKKyAgICBjYXNlIExpc3RT
dHlsZVR5cGU6Okhhbmd1bDogdHMgPDwgImhhbmd1bCI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0
eWxlVHlwZTo6TG93ZXJOb3J3ZWdpYW46IHRzIDw8ICJsb3dlci1ub3J3ZWdpYW4iOyBicmVhazsK
KyAgICBjYXNlIExpc3RTdHlsZVR5cGU6Ok9yb21vOiB0cyA8PCAib3JvbW8iOyBicmVhazsKKyAg
ICBjYXNlIExpc3RTdHlsZVR5cGU6OkV0aGlvcGljSGFsZWhhbWVPbUV0OiB0cyA8PCAiZXRoaW9w
aWMtaGFsZWhhbWUtb20tZXQiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OlNpZGFt
YTogdHMgPDwgInNpZGFtYSI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6RXRoaW9w
aWNIYWxlaGFtZVNpZEV0OiB0cyA8PCAiZXRoaW9waWMtaGFsZWhhbWUtc2lkLWV0IjsgYnJlYWs7
CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpTb21hbGk6IHRzIDw8ICJzb21hbGkiOyBicmVhazsK
KyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OkV0aGlvcGljSGFsZWhhbWVTb0V0OiB0cyA8PCAiZXRo
aW9waWMtaGFsZWhhbWUtc28tZXQiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OlRp
Z3JlOiB0cyA8PCAidGlncmUiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OkV0aGlv
cGljSGFsZWhhbWVUaWc6IHRzIDw8ICJldGhpb3BpYy1oYWxlaGFtZS10aWciOyBicmVhazsKKyAg
ICBjYXNlIExpc3RTdHlsZVR5cGU6OlRpZ3JpbnlhRXI6IHRzIDw8ICJ0aWdyaW55YS1lciI7IGJy
ZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6RXRoaW9waWNIYWxlaGFtZVRpRXI6IHRzIDw8
ICJldGhpb3BpYy1oYWxlaGFtZS10aS1lciI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlw
ZTo6VGlncmlueWFFckFiZWdlZGU6IHRzIDw8ICJ0aWdyaW55YS1lci1hYmVnZWRlIjsgYnJlYWs7
CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpFdGhpb3BpY0FiZWdlZGVUaUVyOiB0cyA8PCAiZXRo
aW9waWMtYWJlZ2VkZS10aS1lciI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6VGln
cmlueWFFdDogdHMgPDwgInRpZ3JpbnlhLWV0IjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVU
eXBlOjpFdGhpb3BpY0hhbGVoYW1lVGlFdDogdHMgPDwgImV0aGlvcGljLWhhbGVoYW1lLXRpLWV0
IjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpUaWdyaW55YUV0QWJlZ2VkZTogdHMg
PDwgInRpZ3JpbnlhLWV0LWFiZWdlZGUiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6
OkV0aGlvcGljQWJlZ2VkZVRpRXQ6IHRzIDw8ICJldGhpb3BpYy1hYmVnZWRlLXRpLWV0IjsgYnJl
YWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpVcHBlckdyZWVrOiB0cyA8PCAidXBwZXItZ3Jl
ZWsiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OlVwcGVyTm9yd2VnaWFuOiB0cyA8
PCAidXBwZXItbm9yd2VnaWFuIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpBc3Rl
cmlza3M6IHRzIDw8ICJhc3Rlcmlza3MiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6
OkZvb3Rub3RlczogdHMgPDwgImZvb3Rub3RlcyI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxl
VHlwZTo6SGVicmV3OiB0cyA8PCAiaGVicmV3IjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVU
eXBlOjpBcm1lbmlhbjogdHMgPDwgImFybWVuaWFuIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5
bGVUeXBlOjpMb3dlckFybWVuaWFuOiB0cyA8PCAibG93ZXItYXJtZW5pYW4iOyBicmVhazsKKyAg
ICBjYXNlIExpc3RTdHlsZVR5cGU6OlVwcGVyQXJtZW5pYW46IHRzIDw8ICJ1cHBlci1hcm1lbmlh
biI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6R2VvcmdpYW46IHRzIDw8ICJnZW9y
Z2lhbiI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6Q0pLSWRlb2dyYXBoaWM6IHRz
IDw8ICJjamstaWRlb2dyYXBoaWMiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6Okhp
cmFnYW5hOiB0cyA8PCAiaGlyYWdhbmEiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6
OkthdGFrYW5hOiB0cyA8PCAia2F0YWthbmEiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5
cGU6OkhpcmFnYW5hSXJvaGE6IHRzIDw8ICJoaXJhZ2FuYS1pcm9oYSI7IGJyZWFrOworICAgIGNh
c2UgTGlzdFN0eWxlVHlwZTo6S2F0YWthbmFJcm9oYTogdHMgPDwgImthdGFrYW5hLWlyb2hhIjsg
YnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpOb25lOiB0cyA8PCAibm9uZSI7IGJyZWFr
OworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIE1hcmdpbkNvbGxhcHNlIGNvbGxhcHNlKQoreworICAgIHN3aXRjaCAoY29s
bGFwc2UpIHsKKyAgICBjYXNlIE1hcmdpbkNvbGxhcHNlOjpDb2xsYXBzZTogdHMgPDwgImNvbGxh
cHNlIjsgYnJlYWs7CisgICAgY2FzZSBNYXJnaW5Db2xsYXBzZTo6U2VwYXJhdGU6IHRzIDw8ICJz
ZXBhcmF0ZSI7IGJyZWFrOworICAgIGNhc2UgTWFyZ2luQ29sbGFwc2U6OkRpc2NhcmQ6IHRzIDw8
ICJkaXNjYXJkIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgTWFycXVlZUJlaGF2aW9yIG1hcnF1ZWVCZWhh
dmlvcikKK3sKKyAgICBzd2l0Y2ggKG1hcnF1ZWVCZWhhdmlvcikgeworICAgIGNhc2UgTWFycXVl
ZUJlaGF2aW9yOjpOb25lOiB0cyA8PCAibm9uZSI7IGJyZWFrOworICAgIGNhc2UgTWFycXVlZUJl
aGF2aW9yOjpTY3JvbGw6IHRzIDw8ICJzY3JvbGwiOyBicmVhazsKKyAgICBjYXNlIE1hcnF1ZWVC
ZWhhdmlvcjo6U2xpZGU6IHRzIDw8ICJzbGlkZSI7IGJyZWFrOworICAgIGNhc2UgTWFycXVlZUJl
aGF2aW9yOjpBbHRlcm5hdGU6IHRzIDw8ICJhbHRlcm5hdGUiOyBicmVhazsKKyAgICB9CisgICAg
cmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBN
YXJxdWVlRGlyZWN0aW9uIG1hcnF1ZWVEaXJlY3Rpb24pCit7CisgICAgc3dpdGNoIChtYXJxdWVl
RGlyZWN0aW9uKSB7CisgICAgY2FzZSBNYXJxdWVlRGlyZWN0aW9uOjpBdXRvOiB0cyA8PCAiYXV0
byI7IGJyZWFrOworICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6TGVmdDogdHMgPDwgImxlZnQi
OyBicmVhazsKKyAgICBjYXNlIE1hcnF1ZWVEaXJlY3Rpb246OlJpZ2h0OiB0cyA8PCAicmlnaHQi
OyBicmVhazsKKyAgICBjYXNlIE1hcnF1ZWVEaXJlY3Rpb246OlVwOiB0cyA8PCAidXAiOyBicmVh
azsKKyAgICBjYXNlIE1hcnF1ZWVEaXJlY3Rpb246OkRvd246IHRzIDw8ICJkb3duIjsgYnJlYWs7
CisgICAgY2FzZSBNYXJxdWVlRGlyZWN0aW9uOjpGb3J3YXJkOiB0cyA8PCAiZm9yd2FyZCI7IGJy
ZWFrOworICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6QmFja3dhcmQ6IHRzIDw8ICJiYWNrd2Fy
ZCI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIE1hc2tTb3VyY2VUeXBlIG1hc2tTb3VyY2UpCit7CisgICAg
c3dpdGNoIChtYXNrU291cmNlKSB7CisgICAgY2FzZSBNYXNrU291cmNlVHlwZTo6QWxwaGE6IHRz
IDw8ICJhbHBoYSI7IGJyZWFrOworICAgIGNhc2UgTWFza1NvdXJjZVR5cGU6Okx1bWluYW5jZTog
dHMgPDwgImx1bWluYW5jZSI7IGJyZWFrOworICAgIH0KKworICAgIHJldHVybiB0czsKK30KKwor
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgTkJTUE1vZGUgbW9kZSkKK3sK
KyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIE5CU1BNb2RlOjpOb3JtYWw6IHRzIDw8ICJu
b3JtYWwiOyBicmVhazsKKyAgICBjYXNlIE5CU1BNb2RlOjpTcGFjZTogdHMgPDwgInNwYWNlIjsg
YnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgT2JqZWN0Rml0IG9iamVjdEZpdCkKK3sKKyAgICBzd2l0Y2ggKG9i
amVjdEZpdCkgeworICAgIGNhc2UgT2JqZWN0Rml0OjpGaWxsOiB0cyA8PCAiZmlsbCI7IGJyZWFr
OworICAgIGNhc2UgT2JqZWN0Rml0OjpDb250YWluOiB0cyA8PCAiY29udGFpbiI7IGJyZWFrOwor
ICAgIGNhc2UgT2JqZWN0Rml0OjpDb3ZlcjogdHMgPDwgImNvdmVyIjsgYnJlYWs7CisgICAgY2Fz
ZSBPYmplY3RGaXQ6Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAgY2FzZSBPYmplY3RG
aXQ6OlNjYWxlRG93bjogdHMgPDwgInNjYWxlLWRvd24iOyBicmVhazsKKyAgICB9CisgICAgcmV0
dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBPcmRl
ciBvcmRlcikKK3sKKyAgICBzd2l0Y2ggKG9yZGVyKSB7CisgICAgY2FzZSBPcmRlcjo6TG9naWNh
bDogdHMgPDwgImxvZ2ljYWwiOyBicmVhazsKKyAgICBjYXNlIE9yZGVyOjpWaXN1YWw6IHRzIDw8
ICJ2aXN1YWwiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBPdmVyZmxvdyBvdmVyZmxvdykKK3sKKyAgICBz
d2l0Y2ggKG92ZXJmbG93KSB7CisgICAgY2FzZSBPdmVyZmxvdzo6VmlzaWJsZTogdHMgPDwgInZp
c2libGUiOyBicmVhazsKKyAgICBjYXNlIE92ZXJmbG93OjpIaWRkZW46IHRzIDw8ICJoaWRkZW4i
OyBicmVhazsKKyAgICBjYXNlIE92ZXJmbG93OjpTY3JvbGw6IHRzIDw8ICJzY3JvbGwiOyBicmVh
azsKKyAgICBjYXNlIE92ZXJmbG93OjpBdXRvOiB0cyA8PCAiYXV0byI7IGJyZWFrOworICAgIGNh
c2UgT3ZlcmZsb3c6OlBhZ2VkWDogdHMgPDwgInBhZ2VkLXgiOyBicmVhazsKKyAgICBjYXNlIE92
ZXJmbG93OjpQYWdlZFk6IHRzIDw8ICJwYWdlZC15IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVy
biB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgT3ZlcmZs
b3dBbGlnbm1lbnQgYWxpZ25tZW50KQoreworICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7CisgICAg
Y2FzZSBPdmVyZmxvd0FsaWdubWVudDo6RGVmYXVsdDogdHMgPDwgImRlZmF1bHQiOyBicmVhazsK
KyAgICBjYXNlIE92ZXJmbG93QWxpZ25tZW50OjpVbnNhZmU6IHRzIDw8ICJ1bnNhZmUiOyBicmVh
azsKKyAgICBjYXNlIE92ZXJmbG93QWxpZ25tZW50OjpTYWZlOiB0cyA8PCAic2FmZSI7IGJyZWFr
OworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIE92ZXJmbG93V3JhcCBvdmVyZmxvd1dyYXApCit7CisgICAgc3dpdGNoIChv
dmVyZmxvd1dyYXApIHsKKyAgICBjYXNlIE92ZXJmbG93V3JhcDo6Tm9ybWFsOiB0cyA8PCAibm9y
bWFsIjsgYnJlYWs7CisgICAgY2FzZSBPdmVyZmxvd1dyYXA6OkJyZWFrOiB0cyA8PCAiYnJlYWsi
OyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBQYWludE9yZGVyIHBhaW50T3JkZXIpCit7CisgICAgc3dpdGNo
IChwYWludE9yZGVyKSB7CisgICAgY2FzZSBQYWludE9yZGVyOjpOb3JtYWw6IHRzIDw8ICJub3Jt
YWwiOyBicmVhazsKKyAgICBjYXNlIFBhaW50T3JkZXI6OkZpbGw6IHRzIDw8ICJmaWxsIjsgYnJl
YWs7CisgICAgY2FzZSBQYWludE9yZGVyOjpGaWxsTWFya2VyczogdHMgPDwgImZpbGwgbWFya2Vy
cyI7IGJyZWFrOworICAgIGNhc2UgUGFpbnRPcmRlcjo6U3Ryb2tlOiB0cyA8PCAic3Ryb2tlIjsg
YnJlYWs7CisgICAgY2FzZSBQYWludE9yZGVyOjpTdHJva2VNYXJrZXJzOiB0cyA8PCAic3Ryb2tl
IG1hcmtlcnMiOyBicmVhazsKKyAgICBjYXNlIFBhaW50T3JkZXI6Ok1hcmtlcnM6IHRzIDw8ICJt
YXJrZXJzIjsgYnJlYWs7CisgICAgY2FzZSBQYWludE9yZGVyOjpNYXJrZXJzU3Ryb2tlOiB0cyA8
PCAibWFya2VycyBzdHJva2UiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBQb2ludGVyRXZlbnRzIHBvaW50
ZXJFdmVudHMpCit7CisgICAgc3dpdGNoIChwb2ludGVyRXZlbnRzKSB7CisgICAgY2FzZSBQb2lu
dGVyRXZlbnRzOjpOb25lOiB0cyA8PCAibm9uZSI7IGJyZWFrOworICAgIGNhc2UgUG9pbnRlckV2
ZW50czo6QXV0bzogdHMgPDwgImF1dG8iOyBicmVhazsKKyAgICBjYXNlIFBvaW50ZXJFdmVudHM6
OlN0cm9rZTogdHMgPDwgInN0cm9rZSI7IGJyZWFrOworICAgIGNhc2UgUG9pbnRlckV2ZW50czo6
RmlsbDogdHMgPDwgImZpbGwiOyBicmVhazsKKyAgICBjYXNlIFBvaW50ZXJFdmVudHM6OlBhaW50
ZWQ6IHRzIDw8ICJwYWludGVkIjsgYnJlYWs7CisgICAgY2FzZSBQb2ludGVyRXZlbnRzOjpWaXNp
YmxlOiB0cyA8PCAidmlzaWJsZSI7IGJyZWFrOworICAgIGNhc2UgUG9pbnRlckV2ZW50czo6Vmlz
aWJsZVN0cm9rZTogdHMgPDwgInZpc2libGUtc3Ryb2tlIjsgYnJlYWs7CisgICAgY2FzZSBQb2lu
dGVyRXZlbnRzOjpWaXNpYmxlRmlsbDogdHMgPDwgInZpc2libGUtZmlsbCI7IGJyZWFrOworICAg
IGNhc2UgUG9pbnRlckV2ZW50czo6VmlzaWJsZVBhaW50ZWQ6IHRzIDw8ICJ2aXNpYmxlLXBhaW50
ZWQiOyBicmVhazsKKyAgICBjYXNlIFBvaW50ZXJFdmVudHM6OkFsbDogdHMgPDwgImFsbCI7IGJy
ZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIFBvc2l0aW9uVHlwZSBwb3NpdGlvbikKK3sKKyAgICBzd2l0Y2ggKHBv
c2l0aW9uKSB7CisgICAgY2FzZSBQb3NpdGlvblR5cGU6OlN0YXRpYzogdHMgPDwgInN0YXRpYyI7
IGJyZWFrOworICAgIGNhc2UgUG9zaXRpb25UeXBlOjpSZWxhdGl2ZTogdHMgPDwgInJlbGF0aXZl
IjsgYnJlYWs7CisgICAgY2FzZSBQb3NpdGlvblR5cGU6OkFic29sdXRlOiB0cyA8PCAiYWJzb2x1
dGUiOyBicmVhazsKKyAgICBjYXNlIFBvc2l0aW9uVHlwZTo6U3RpY2t5OiB0cyA8PCAic3RpY2t5
IjsgYnJlYWs7CisgICAgY2FzZSBQb3NpdGlvblR5cGU6OkZpeGVkOiB0cyA8PCAiZml4ZWQiOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBQcmludENvbG9yQWRqdXN0IGNvbG9yQWRqdXN0KQoreworICAgIHN3
aXRjaCAoY29sb3JBZGp1c3QpIHsKKyAgICBjYXNlIFByaW50Q29sb3JBZGp1c3Q6OkVjb25vbXk6
IHRzIDw8ICJlY29ub215IjsgYnJlYWs7CisgICAgY2FzZSBQcmludENvbG9yQWRqdXN0OjpFeGFj
dDogdHMgPDwgImV4YWN0IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgUHNldWRvSWQgcHNldWRvSWQpCit7
CisgICAgc3dpdGNoIChwc2V1ZG9JZCkgeworICAgIGNhc2UgUHNldWRvSWQ6Ok5vbmU6IHRzIDw8
ICJub25lIjsgYnJlYWs7CisgICAgY2FzZSBQc2V1ZG9JZDo6Rmlyc3RMaW5lOiB0cyA8PCAiZmly
c3QtbGluZSI7IGJyZWFrOworICAgIGNhc2UgUHNldWRvSWQ6OkZpcnN0TGV0dGVyOiB0cyA8PCAi
Zmlyc3QtbGV0dGVyIjsgYnJlYWs7CisgICAgY2FzZSBQc2V1ZG9JZDo6TWFya2VyOiB0cyA8PCAi
bWFya2VyIjsgYnJlYWs7CisgICAgY2FzZSBQc2V1ZG9JZDo6QmVmb3JlOiB0cyA8PCAiYmVmb3Jl
IjsgYnJlYWs7CisgICAgY2FzZSBQc2V1ZG9JZDo6QWZ0ZXI6IHRzIDw8ICJhZnRlciI7IGJyZWFr
OworICAgIGNhc2UgUHNldWRvSWQ6OlNlbGVjdGlvbjogdHMgPDwgInNlbGVjdGlvbiI7IGJyZWFr
OworICAgIGNhc2UgUHNldWRvSWQ6OlNjcm9sbGJhcjogdHMgPDwgInNjcm9sbGJhciI7IGJyZWFr
OworICAgIGNhc2UgUHNldWRvSWQ6OlNjcm9sbGJhclRodW1iOiB0cyA8PCAic2Nyb2xsYmFyLXRo
dW1iIjsgYnJlYWs7CisgICAgY2FzZSBQc2V1ZG9JZDo6U2Nyb2xsYmFyQnV0dG9uOiB0cyA8PCAi
c2Nyb2xsYmFyLWJ1dHRvbiI7IGJyZWFrOworICAgIGNhc2UgUHNldWRvSWQ6OlNjcm9sbGJhclRy
YWNrOiB0cyA8PCAic2Nyb2xsYmFyLXRyYWNrIjsgYnJlYWs7CisgICAgY2FzZSBQc2V1ZG9JZDo6
U2Nyb2xsYmFyVHJhY2tQaWVjZTogdHMgPDwgInNjcm9sbGJhci10cmFja3BpZWNlIjsgYnJlYWs7
CisgICAgY2FzZSBQc2V1ZG9JZDo6U2Nyb2xsYmFyQ29ybmVyOiB0cyA8PCAic2Nyb2xsYmFyLWNv
cm5lciI7IGJyZWFrOworICAgIGNhc2UgUHNldWRvSWQ6OlJlc2l6ZXI6IHRzIDw8ICJyZXNpemVy
IjsgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgdHMgPDwgIm90aGVyIjsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgUXVvdGVUeXBlIHF1b3RlVHlwZSkKK3sKKyAgICBzd2l0Y2ggKHF1
b3RlVHlwZSkgeworICAgIGNhc2UgUXVvdGVUeXBlOjpPcGVuUXVvdGU6IHRzIDw8ICJvcGVuIjsg
YnJlYWs7CisgICAgY2FzZSBRdW90ZVR5cGU6OkNsb3NlUXVvdGU6IHRzIDw8ICJjbG9zZSI7IGJy
ZWFrOworICAgIGNhc2UgUXVvdGVUeXBlOjpOb09wZW5RdW90ZTogdHMgPDwgIm5vLW9wZW4iOyBi
cmVhazsKKyAgICBjYXNlIFF1b3RlVHlwZTo6Tm9DbG9zZVF1b3RlOiB0cyA8PCAibm8tY2xvc2Ui
OyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBSZXNpemUgcmVzaXplKQoreworICAgIHN3aXRjaCAocmVzaXpl
KSB7CisgICAgY2FzZSBSZXNpemU6Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAgY2Fz
ZSBSZXNpemU6OkJvdGg6IHRzIDw8ICJib3RoIjsgYnJlYWs7CisgICAgY2FzZSBSZXNpemU6Okhv
cml6b250YWw6IHRzIDw8ICJob3Jpem9udGFsIjsgYnJlYWs7CisgICAgY2FzZSBSZXNpemU6OlZl
cnRpY2FsOiB0cyA8PCAidmVydGljYWwiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOwor
fQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBSdWJ5UG9zaXRpb24g
cG9zaXRpb24pCit7CisgICAgc3dpdGNoIChwb3NpdGlvbikgeworICAgIGNhc2UgUnVieVBvc2l0
aW9uOjpCZWZvcmU6IHRzIDw8ICJiZWZvcmUiOyBicmVhazsKKyAgICBjYXNlIFJ1YnlQb3NpdGlv
bjo6QWZ0ZXI6IHRzIDw8ICJhZnRlciI7IGJyZWFrOworICAgIGNhc2UgUnVieVBvc2l0aW9uOjpJ
bnRlckNoYXJhY3RlcjogdHMgPDwgImludGVyLWNoYXJhY3RlciI7IGJyZWFrOworICAgIH0KKyAg
ICByZXR1cm4gdHM7Cit9CisKKyNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQorVGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgU2Nyb2xsU25hcEF4aXMgYXhpcykKK3sKKyAg
ICBzd2l0Y2ggKGF4aXMpIHsKKyAgICBjYXNlIFNjcm9sbFNuYXBBeGlzOjpYQXhpczogdHMgPDwg
IngtYXhpcyI7IGJyZWFrOworICAgIGNhc2UgU2Nyb2xsU25hcEF4aXM6OllBeGlzOiB0cyA8PCAi
eS1BeGlzIjsgYnJlYWs7CisgICAgY2FzZSBTY3JvbGxTbmFwQXhpczo6QmxvY2s6IHRzIDw8ICJi
bG9jayI7IGJyZWFrOworICAgIGNhc2UgU2Nyb2xsU25hcEF4aXM6OklubGluZTogdHMgPDwgImlu
bGluZSI7IGJyZWFrOworICAgIGNhc2UgU2Nyb2xsU25hcEF4aXM6OkJvdGg6IHRzIDw8ICJib3Ro
IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUgYWxpZ25UeXBlKQor
eworICAgIHN3aXRjaCAoYWxpZ25UeXBlKSB7CisgICAgY2FzZSBTY3JvbGxTbmFwQXhpc0FsaWdu
VHlwZTo6Tm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsKKyAgICBjYXNlIFNjcm9sbFNuYXBBeGlz
QWxpZ25UeXBlOjpTdGFydDogdHMgPDwgInN0YXJ0IjsgYnJlYWs7CisgICAgY2FzZSBTY3JvbGxT
bmFwQXhpc0FsaWduVHlwZTo6Q2VudGVyOiB0cyA8PCAiY2VudGVyIjsgYnJlYWs7CisgICAgY2Fz
ZSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6RW5kOiB0cyA8PCAiZW5kIjsgYnJlYWs7CisgICAg
fQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgU2Nyb2xsU25hcFN0cmljdG5lc3Mgc3RyaWN0bmVzcykKK3sKKyAgICBzd2l0Y2ggKHN0
cmljdG5lc3MpIHsKKyAgICBjYXNlIFNjcm9sbFNuYXBTdHJpY3RuZXNzOjpOb25lOiB0cyA8PCAi
bm9uZSI7IGJyZWFrOworICAgIGNhc2UgU2Nyb2xsU25hcFN0cmljdG5lc3M6OlByb3hpbWl0eTog
dHMgPDwgInByb3hpbWl0eSI7IGJyZWFrOworICAgIGNhc2UgU2Nyb2xsU25hcFN0cmljdG5lc3M6
Ok1hbmRhdG9yeTogdHMgPDwgIm1hbmRhdG9yeSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4g
dHM7Cit9CisjZW5kaWYKKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
U3BlYWtBcyBzcGVha0FzKQoreworICAgIHN3aXRjaCAoc3BlYWtBcykgeworICAgIGNhc2UgU3Bl
YWtBczo6Tm9ybWFsOiB0cyA8PCAibm9ybWFsIjsgYnJlYWs7CisgICAgY2FzZSBTcGVha0FzOjpT
cGVsbE91dDogdHMgPDwgInNwZWxsLW91dCI7IGJyZWFrOworICAgIGNhc2UgU3BlYWtBczo6RGln
aXRzOiB0cyA8PCAiZGlnaXRzIjsgYnJlYWs7CisgICAgY2FzZSBTcGVha0FzOjpMaXRlcmFsUHVu
Y3R1YXRpb246IHRzIDw8ICJsaXRlcmFsLXB1bmN0dWF0aW9uIjsgYnJlYWs7CisgICAgY2FzZSBT
cGVha0FzOjpOb1B1bmN0dWF0aW9uOiB0cyA8PCAibm8tcHVuY3R1YXRpb24iOyBicmVhazsKKyAg
ICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBTdHlsZURpZmZlcmVuY2UgZGlmZikKK3sKKyAgICBzd2l0Y2ggKGRpZmYpIHsKKyAg
ICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6RXF1YWw6IHRzIDw8ICJlcXVhbCI7IGJyZWFrOworICAg
IGNhc2UgU3R5bGVEaWZmZXJlbmNlOjpSZWNvbXBvc2l0ZUxheWVyOiB0cyA8PCAicmVjb21wb3Np
dGUgbGF5ZXIiOyBicmVhazsKKyAgICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6UmVwYWludDogdHMg
PDwgInJlcGFpbnQiOyBicmVhazsKKyAgICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6UmVwYWludElm
VGV4dE9yQm9yZGVyT3JPdXRsaW5lOiB0cyA8PCAicmVwYWludCBpZiB0ZXh0IG9yIGJvcmRlciBv
ciBvdXRsaW5lIjsgYnJlYWs7CisgICAgY2FzZSBTdHlsZURpZmZlcmVuY2U6OlJlcGFpbnRMYXll
cjogdHMgPDwgInJlcGFpbnQgbGF5ZXIiOyBicmVhazsKKyAgICBjYXNlIFN0eWxlRGlmZmVyZW5j
ZTo6TGF5b3V0UG9zaXRpb25lZE1vdmVtZW50T25seTogdHMgPDwgImxheW91dCBwb3NpdGlvbmVk
IG1vdmVtZW50IG9ubHkiOyBicmVhazsKKyAgICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6U2ltcGxp
ZmllZExheW91dDogdHMgPDwgInNpbXBsaWZpZWQgbGF5b3V0IjsgYnJlYWs7CisgICAgY2FzZSBT
dHlsZURpZmZlcmVuY2U6OlNpbXBsaWZpZWRMYXlvdXRBbmRQb3NpdGlvbmVkTW92ZW1lbnQ6IHRz
IDw8ICJzaW1wbGlmaWVkIGxheW91dCBhbmQgcG9zaXRpb25lZCBtb3ZlbWVudCI7IGJyZWFrOwor
ICAgIGNhc2UgU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXQ6IHRzIDw8ICJsYXlvdXQiOyBicmVhazsK
KyAgICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6TmV3U3R5bGU6IHRzIDw8ICJuZXcgc3R5bGUiOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBUYWJsZUxheW91dFR5cGUgbGF5b3V0VHlwZSkKK3sKKyAgICBzd2l0
Y2ggKGxheW91dFR5cGUpIHsKKyAgICBjYXNlIFRhYmxlTGF5b3V0VHlwZTo6QXV0bzogdHMgPDwg
IkF1dG8iOyBicmVhazsKKyAgICBjYXNlIFRhYmxlTGF5b3V0VHlwZTo6Rml4ZWQ6IHRzIDw8ICJG
aXhlZCI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFRleHRBbGlnbk1vZGUgYWxpZ25Nb2RlKQoreworICAg
IHN3aXRjaCAoYWxpZ25Nb2RlKSB7CisgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpMZWZ0OiB0cyA8
PCAibGVmdCI7IGJyZWFrOworICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6UmlnaHQ6IHRzIDw8ICJy
aWdodCI7IGJyZWFrOworICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6Q2VudGVyOiB0cyA8PCAiY2Vu
dGVyIjsgYnJlYWs7CisgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpKdXN0aWZ5OiB0cyA8PCAianVz
dGlmeSI7IGJyZWFrOworICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6V2ViS2l0TGVmdDogdHMgPDwg
IndlYmtpdC1sZWZ0IjsgYnJlYWs7CisgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpXZWJLaXRSaWdo
dDogdHMgPDwgIndlYmtpdC1yaWdodCI7IGJyZWFrOworICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6
V2ViS2l0Q2VudGVyOiB0cyA8PCAid2Via2l0LWNlbnRlciI7IGJyZWFrOworICAgIGNhc2UgVGV4
dEFsaWduTW9kZTo6U3RhcnQ6IHRzIDw8ICJzdGFydCI7IGJyZWFrOworICAgIGNhc2UgVGV4dEFs
aWduTW9kZTo6RW5kOiB0cyA8PCAiZW5kIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsK
K30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgVGV4dENvbWJpbmUg
dGV4dENvbWJpbmUpCit7CisgICAgc3dpdGNoICh0ZXh0Q29tYmluZSkgeworICAgIGNhc2UgVGV4
dENvbWJpbmU6Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAgY2FzZSBUZXh0Q29tYmlu
ZTo6SG9yaXpvbnRhbDogdHMgPDwgImhvcml6b250YWwiOyBicmVhazsKKyAgICB9CisgICAgcmV0
dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBUZXh0
RGVjb3JhdGlvbiB0ZXh0RGVjb3JhdGlvbikKK3sKKyAgICBzd2l0Y2ggKHRleHREZWNvcmF0aW9u
KSB7CisgICAgY2FzZSBUZXh0RGVjb3JhdGlvbjo6Tm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsK
KyAgICBjYXNlIFRleHREZWNvcmF0aW9uOjpVbmRlcmxpbmU6IHRzIDw8ICJ1bmRlcmxpbmUiOyBi
cmVhazsKKyAgICBjYXNlIFRleHREZWNvcmF0aW9uOjpPdmVybGluZTogdHMgPDwgIm92ZXJsaW5l
IjsgYnJlYWs7CisgICAgY2FzZSBUZXh0RGVjb3JhdGlvbjo6TGluZVRocm91Z2g6IHRzIDw8ICJs
aW5lLXRocm91Z2giOyBicmVhazsKKyAgICBjYXNlIFRleHREZWNvcmF0aW9uOjpCbGluazogdHMg
PDwgImJsaW5rIjsgYnJlYWs7CisjaWYgRU5BQkxFKExFVFRFUlBSRVNTKQorICAgIGNhc2UgVGV4
dERlY29yYXRpb246OkxldHRlcnByZXNzOiB0cyA8PCAibGV0dGVycHJlc3MiOyBicmVhazsKKyNl
bmRpZgorICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIFRleHREZWNvcmF0aW9uU2tpcCBza2lwKQoreworICAgIHN3aXRjaCAo
c2tpcCkgeworICAgIGNhc2UgVGV4dERlY29yYXRpb25Ta2lwOjpOb25lOiB0cyA8PCAibm9uZSI7
IGJyZWFrOworICAgIGNhc2UgVGV4dERlY29yYXRpb25Ta2lwOjpJbms6IHRzIDw8ICJpbmsiOyBi
cmVhazsKKyAgICBjYXNlIFRleHREZWNvcmF0aW9uU2tpcDo6T2JqZWN0czogdHMgPDwgIm9iamVj
dHMiOyBicmVhazsKKyAgICBjYXNlIFRleHREZWNvcmF0aW9uU2tpcDo6QXV0bzogdHMgPDwgImF1
dG8iOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBUZXh0RGVjb3JhdGlvblN0eWxlIGRlY29yYXRpb25TdHls
ZSkKK3sKKyAgICBzd2l0Y2ggKGRlY29yYXRpb25TdHlsZSkgeworICAgIGNhc2UgVGV4dERlY29y
YXRpb25TdHlsZTo6U29saWQ6IHRzIDw8ICJzb2xpZCI7IGJyZWFrOworICAgIGNhc2UgVGV4dERl
Y29yYXRpb25TdHlsZTo6RG91YmxlOiB0cyA8PCAiZG91YmxlIjsgYnJlYWs7CisgICAgY2FzZSBU
ZXh0RGVjb3JhdGlvblN0eWxlOjpEb3R0ZWQ6IHRzIDw8ICJkb3R0ZWQiOyBicmVhazsKKyAgICBj
YXNlIFRleHREZWNvcmF0aW9uU3R5bGU6OkRhc2hlZDogdHMgPDwgImRhc2hlZCI7IGJyZWFrOwor
ICAgIGNhc2UgVGV4dERlY29yYXRpb25TdHlsZTo6V2F2eTogdHMgPDwgIndhdnkiOyBicmVhazsK
KyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBUZXh0RW1waGFzaXNGaWxsIGZpbGwpCit7CisgICAgc3dpdGNoIChmaWxsKSB7
CisgICAgY2FzZSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQ6IHRzIDw8ICJmaWxsZWQiOyBicmVh
azsKKyAgICBjYXNlIFRleHRFbXBoYXNpc0ZpbGw6Ok9wZW46IHRzIDw8ICJvcGVuIjsgYnJlYWs7
CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgVGV4dEVtcGhhc2lzTWFyayBtYXJrKQoreworICAgIHN3aXRjaCAobWFyaykg
eworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6Tm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsK
KyAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkF1dG86IHRzIDw8ICJhdXRvIjsgYnJlYWs7Cisg
ICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpEb3Q6IHRzIDw8ICJkb3QiOyBicmVhazsKKyAgICBj
YXNlIFRleHRFbXBoYXNpc01hcms6OkNpcmNsZTogdHMgPDwgImNpcmNsZSI7IGJyZWFrOworICAg
IGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6RG91YmxlQ2lyY2xlOiB0cyA8PCAiZG91YmxlLWNpcmNs
ZSI7IGJyZWFrOworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6VHJpYW5nbGU6IHRzIDw8ICJ0
cmlhbmdsZSI7IGJyZWFrOworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6U2VzYW1lOiB0cyA8
PCAic2VzYW1lIjsgYnJlYWs7CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpDdXN0b206IHRz
IDw8ICJjdXN0b20iOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBUZXh0RW1waGFzaXNQb3NpdGlvbiBwb3Np
dGlvbikKK3sKKyAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CisgICAgY2FzZSBUZXh0RW1waGFzaXNQ
b3NpdGlvbjo6T3ZlcjogdHMgPDwgIk92ZXIiOyBicmVhazsKKyAgICBjYXNlIFRleHRFbXBoYXNp
c1Bvc2l0aW9uOjpVbmRlcjogdHMgPDwgIlVuZGVyIjsgYnJlYWs7CisgICAgY2FzZSBUZXh0RW1w
aGFzaXNQb3NpdGlvbjo6TGVmdDogdHMgPDwgIkxlZnQiOyBicmVhazsKKyAgICBjYXNlIFRleHRF
bXBoYXNpc1Bvc2l0aW9uOjpSaWdodDogdHMgPDwgIlJpZ2h0IjsgYnJlYWs7CisgICAgfQorICAg
IHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
VGV4dE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQoreworICAgIHN3aXRjaCAob3JpZW50YXRpb24p
IHsKKyAgICBjYXNlIFRleHRPcmllbnRhdGlvbjo6TWl4ZWQ6IHRzIDw8ICJtaXhlZCI7IGJyZWFr
OworICAgIGNhc2UgVGV4dE9yaWVudGF0aW9uOjpVcHJpZ2h0OiB0cyA8PCAidXByaWdodCI7IGJy
ZWFrOworICAgIGNhc2UgVGV4dE9yaWVudGF0aW9uOjpTaWRld2F5czogdHMgPDwgInNpZGV3YXlz
IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KK1RleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIFRleHRPdmVyZmxvdyBvdmVyZmxvdykKK3sKKyAgICBzd2l0Y2gg
KG92ZXJmbG93KSB7CisgICAgY2FzZSBUZXh0T3ZlcmZsb3c6OkNsaXA6IHRzIDw8ICJjbGlwIjsg
YnJlYWs7CisgICAgY2FzZSBUZXh0T3ZlcmZsb3c6OkVsbGlwc2lzOiB0cyA8PCAiZWxsaXBzaXMi
OyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBUZXh0U2VjdXJpdHkgdGV4dFNlY3VyaXR5KQoreworICAgIHN3
aXRjaCAodGV4dFNlY3VyaXR5KSB7CisgICAgY2FzZSBUZXh0U2VjdXJpdHk6Ok5vbmU6IHRzIDw8
ICJub25lIjsgYnJlYWs7CisgICAgY2FzZSBUZXh0U2VjdXJpdHk6OkRpc2M6IHRzIDw8ICJkaXNj
IjsgYnJlYWs7CisgICAgY2FzZSBUZXh0U2VjdXJpdHk6OkNpcmNsZTogdHMgPDwgImNpcmNsZSI7
IGJyZWFrOworICAgIGNhc2UgVGV4dFNlY3VyaXR5OjpTcXVhcmU6IHRzIDw8ICJzcXVhcmUiOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBUZXh0VHJhbnNmb3JtIHRleHRUcmFuc2Zvcm0pCit7CisgICAgc3dp
dGNoICh0ZXh0VHJhbnNmb3JtKSB7CisgICAgY2FzZSBUZXh0VHJhbnNmb3JtOjpDYXBpdGFsaXpl
OiB0cyA8PCAiY2FwaXRhbGl6ZSI7IGJyZWFrOworICAgIGNhc2UgVGV4dFRyYW5zZm9ybTo6VXBw
ZXJjYXNlOiB0cyA8PCAidXBwZXJjYXNlIjsgYnJlYWs7CisgICAgY2FzZSBUZXh0VHJhbnNmb3Jt
OjpMb3dlcmNhc2U6IHRzIDw8ICJsb3dlcmNhc2UiOyBicmVhazsKKyAgICBjYXNlIFRleHRUcmFu
c2Zvcm06Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsK
K30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgVGV4dFVuZGVybGlu
ZVBvc2l0aW9uIHVuZGVybGluZVBvc2l0aW9uKQoreworICAgIHN3aXRjaCAodW5kZXJsaW5lUG9z
aXRpb24pIHsKKyAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0bzogdHMgPDwgIkF1
dG8iOyBicmVhazsKKyAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6VW5kZXI6IHRzIDw8
ICJVbmRlciI7IGJyZWFrOworICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9uOjpGcm9tRm9u
dDogdHMgPDwgIkZyb21Gb250IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKwor
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgVGV4dFpvb20gem9vbSkKK3sK
KyAgICBzd2l0Y2ggKHpvb20pIHsKKyAgICBjYXNlIFRleHRab29tOjpOb3JtYWw6IHRzIDw8ICJu
b3JtYWwiOyBicmVhazsKKyAgICBjYXNlIFRleHRab29tOjpSZXNldDogdHMgPDwgInJlc2V0Ijsg
YnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgVHJhbnNmb3JtQm94IGJveCkKK3sKKyAgICBzd2l0Y2ggKGJveCkg
eworICAgIGNhc2UgVHJhbnNmb3JtQm94OjpCb3JkZXJCb3g6IHRzIDw8ICJib3JkZXItYm94Ijsg
YnJlYWs7CisgICAgY2FzZSBUcmFuc2Zvcm1Cb3g6OkZpbGxCb3g6IHRzIDw8ICJmaWxsLWJveCI7
IGJyZWFrOworICAgIGNhc2UgVHJhbnNmb3JtQm94OjpWaWV3Qm94OiB0cyA8PCAidmlldy1ib3gi
OyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBUcmFuc2Zvcm1TdHlsZTNEIHRyYW5zZm9ybVN0eWxlKQorewor
ICAgIHN3aXRjaCAodHJhbnNmb3JtU3R5bGUpIHsKKyAgICBjYXNlIFRyYW5zZm9ybVN0eWxlM0Q6
OkZsYXQ6IHRzIDw8ICJmbGF0IjsgYnJlYWs7CisgICAgY2FzZSBUcmFuc2Zvcm1TdHlsZTNEOjpQ
cmVzZXJ2ZTNEOiB0cyA8PCAicHJlc2VydmUtM2QiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJu
IHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBVc2VyRHJh
ZyB1c2VyRHJhZykKK3sKKyAgICBzd2l0Y2ggKHVzZXJEcmFnKSB7CisgICAgY2FzZSBVc2VyRHJh
Zzo6QXV0bzogdHMgPDwgImF1dG8iOyBicmVhazsKKyAgICBjYXNlIFVzZXJEcmFnOjpOb25lOiB0
cyA8PCAibm9uZSI7IGJyZWFrOworICAgIGNhc2UgVXNlckRyYWc6OkVsZW1lbnQ6IHRzIDw8ICJl
bGVtZW50IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgVXNlck1vZGlmeSB1c2VyTW9kaWZ5KQoreworICAg
IHN3aXRjaCAodXNlck1vZGlmeSkgeworICAgIGNhc2UgVXNlck1vZGlmeTo6UmVhZE9ubHk6IHRz
IDw8ICJyZWFkLW9ubHkiOyBicmVhazsKKyAgICBjYXNlIFVzZXJNb2RpZnk6OlJlYWRXcml0ZTog
dHMgPDwgInJlYWQtd3JpdGUiOyBicmVhazsKKyAgICBjYXNlIFVzZXJNb2RpZnk6OlJlYWRXcml0
ZVBsYWludGV4dE9ubHk6IHRzIDw8ICJyZWFkLXdyaXRlIHBsYWludGV4dCBvbmx5IjsgYnJlYWs7
CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgVXNlclNlbGVjdCB1c2VyU2VsZWN0KQoreworICAgIHN3aXRjaCAodXNlclNl
bGVjdCkgeworICAgIGNhc2UgVXNlclNlbGVjdDo6Tm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsK
KyAgICBjYXNlIFVzZXJTZWxlY3Q6OlRleHQ6IHRzIDw8ICJ0ZXh0IjsgYnJlYWs7CisgICAgY2Fz
ZSBVc2VyU2VsZWN0OjpBbGw6IHRzIDw8ICJhbGwiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJu
IHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBWZXJ0aWNh
bEFsaWduIHZlcnRpY2FsQWxpZ24pCit7CisgICAgc3dpdGNoICh2ZXJ0aWNhbEFsaWduKSB7Cisg
ICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpCYXNlbGluZTogdHMgPDwgImJhc2VsaW5lIjsgYnJlYWs7
CisgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpNaWRkbGU6IHRzIDw8ICJtaWRkbGUiOyBicmVhazsK
KyAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlN1YjogdHMgPDwgInN1YiI7IGJyZWFrOworICAgIGNh
c2UgVmVydGljYWxBbGlnbjo6U3VwZXI6IHRzIDw8ICJzdXBlciI7IGJyZWFrOworICAgIGNhc2Ug
VmVydGljYWxBbGlnbjo6VGV4dFRvcDogdHMgPDwgInRleHQtdG9wIjsgYnJlYWs7CisgICAgY2Fz
ZSBWZXJ0aWNhbEFsaWduOjpUZXh0Qm90dG9tOiB0cyA8PCAidGV4dC1ib3R0b20iOyBicmVhazsK
KyAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlRvcDogdHMgPDwgInRvcCI7IGJyZWFrOworICAgIGNh
c2UgVmVydGljYWxBbGlnbjo6Qm90dG9tOiB0cyA8PCAiYm90dG9tIjsgYnJlYWs7CisgICAgY2Fz
ZSBWZXJ0aWNhbEFsaWduOjpCYXNlbGluZU1pZGRsZTogdHMgPDwgImJhc2VsaW5lLW1pZGRsZSI7
IGJyZWFrOworICAgIGNhc2UgVmVydGljYWxBbGlnbjo6TGVuZ3RoOiB0cyA8PCAibGVuZ3RoIjsg
YnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgVmlzaWJpbGl0eSB2aXNpYmlsaXR5KQoreworICAgIHN3aXRjaCAo
dmlzaWJpbGl0eSkgeworICAgIGNhc2UgVmlzaWJpbGl0eTo6VmlzaWJsZTogdHMgPDwgInZpc2li
bGUiOyBicmVhazsKKyAgICBjYXNlIFZpc2liaWxpdHk6OkhpZGRlbjogdHMgPDwgImhpZGRlbiI7
IGJyZWFrOworICAgIGNhc2UgVmlzaWJpbGl0eTo6Q29sbGFwc2U6IHRzIDw8ICJjb2xsYXBzZSI7
IGJyZWFrOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFdoaXRlU3BhY2Ugd2hpdGVTcGFjZSkKK3sKKyAgICBz
d2l0Y2ggKHdoaXRlU3BhY2UpIHsKKyAgICBjYXNlIFdoaXRlU3BhY2U6Ok5vcm1hbDogdHMgPDwg
Im5vcm1hbCI7IGJyZWFrOworICAgIGNhc2UgV2hpdGVTcGFjZTo6UHJlOiB0cyA8PCAicHJlIjsg
YnJlYWs7CisgICAgY2FzZSBXaGl0ZVNwYWNlOjpQcmVXcmFwOiB0cyA8PCAicHJlLXdyYXAiOyBi
cmVhazsKKyAgICBjYXNlIFdoaXRlU3BhY2U6OlByZUxpbmU6IHRzIDw8ICJwcmUtbGluZSI7IGJy
ZWFrOworICAgIGNhc2UgV2hpdGVTcGFjZTo6Tm9XcmFwOiB0cyA8PCAibm93cmFwIjsgYnJlYWs7
CisgICAgY2FzZSBXaGl0ZVNwYWNlOjpLSFRNTE5vV3JhcDogdHMgPDwgImtodG1sLW5vd3JhcCI7
IGJyZWFrOworICAgIGNhc2UgV2hpdGVTcGFjZTo6QnJlYWtTcGFjZXM6IHRzIDw8ICJicmVhay1z
cGFjZXMiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBXb3JkQnJlYWsgd29yZEJyZWFrKQoreworICAgIHN3
aXRjaCAod29yZEJyZWFrKSB7CisgICAgY2FzZSBXb3JkQnJlYWs6Ok5vcm1hbDogdHMgPDwgIm5v
cm1hbCI7IGJyZWFrOworICAgIGNhc2UgV29yZEJyZWFrOjpCcmVha0FsbDogdHMgPDwgImJyZWFr
LWFsbCI7IGJyZWFrOworICAgIGNhc2UgV29yZEJyZWFrOjpLZWVwQWxsOiB0cyA8PCAia2VlcC1h
bGwiOyBicmVhazsKKyAgICBjYXNlIFdvcmRCcmVhazo6QnJlYWtXb3JkOiB0cyA8PCAiYnJlYWst
d29yZCI7IGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDZk
NmZmYmU1OTE3YjNmNTJiMDlkY2Y4MmRiZDRlZGU3NDFlY2Y4YmUuLmI1YzkwMTQyZGM5ZDE3OGYy
ZWI1YjIxOGEzMzhhNjVhMWVjOWRmZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC0yNSw2ICsyNSw3IEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ1NTUmVmbGVjdGlvbkRpcmVjdGlvbi5oIiAvLyBG
SVhNRTogQ1NTUmVmbGVjdGlvbkRpcmVjdGlvbiBzaG91bGQganVzdCBtb3ZlIGhlcmUuCiAjaW5j
bHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC03OTcsOCArNzk4
LDYgQEAgZW51bSBjbGFzcyBWaXNpYmlsaXR5IDogdWludDhfdCB7CiAgICAgQ29sbGFwc2UKIH07
CiAKLVdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBWaXNpYmls
aXR5KTsKLQogZW51bSBjbGFzcyBDdXJzb3JUeXBlIDogdWludDhfdCB7CiAgICAgLy8gVGhlIGZv
bGxvd2luZyBtdXN0IG1hdGNoIHRoZSBvcmRlciBpbiBDU1NWYWx1ZUtleXdvcmRzLmluLgogICAg
IEF1dG8sCkBAIC05NzYsOCArOTc1LDYgQEAgZW51bSBjbGFzcyBJbWFnZVJlbmRlcmluZyA6IHVp
bnQ4X3QgewogICAgIFBpeGVsYXRlZAogfTsKIAotV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIEltYWdlUmVuZGVyaW5nKTsKLQogZW51bSBjbGFzcyBJbWFnZVJl
c29sdXRpb25Tb3VyY2UgOiB1aW50OF90IHsKICAgICBTcGVjaWZpZWQgPSAwLAogICAgIEZyb21J
bWFnZQpAQCAtMTEzOCwxMyArMTEzNSw2IEBAIGVudW0gY2xhc3MgQXBwbGVQYXlCdXR0b25UeXBl
IDogdWludDhfdCB7CiB9OwogI2VuZGlmCiAKLVdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChX
VEY6OlRleHRTdHJlYW0mLCBGaWxsU2l6ZVR5cGUpOwotV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFdURjo6VGV4dFN0cmVhbSYsIEZpbGxBdHRhY2htZW50KTsKLVdURjo6VGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBGaWxsQm94KTsKLVdURjo6VGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBGaWxsUmVwZWF0KTsKLVdURjo6VGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBNYXNrU291cmNlVHlwZSk7Ci1XVEY6OlRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgRWRnZSk7Ci0KIC8vIFRoZXNl
IGFyZSBhbGwgbWluaW1pemVkIGNvbWJpbmF0aW9ucyBvZiBwYWludC1vcmRlci4KIGVudW0gY2xh
c3MgUGFpbnRPcmRlciA6IHVpbnQ4X3QgewogICAgIE5vcm1hbCwKQEAgLTExNzIsNCArMTE2Miwx
MjAgQEAgZW51bSBjbGFzcyBGb250TG9hZGluZ0JlaGF2aW9yIDogdWludDhfdCB7CiAKIGV4dGVy
biBjb25zdCBmbG9hdCBkZWZhdWx0TWl0ZXJMaW1pdDsKIAorZW51bSBjbGFzcyBTdHlsZUR1bXBC
ZWhhdmlvciB7CisgICAgQWxsVmFsdWVzLAorICAgIE5vbkluaXRpYWxWYWx1ZXMsCit9OworCitX
VEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQW5pbWF0aW9uRmls
bE1vZGUpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEFu
aW1hdGlvblBsYXlTdGF0ZSk7CisjaWYgRU5BQkxFKEFQUExFX1BBWSkKK1dURjo6VGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBcHBsZVBheUJ1dHRvblN0eWxlKTsKK1dU
Rjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBcHBsZVBheUJ1dHRv
blR5cGUpOworI2VuZGlmCitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgQXNwZWN0UmF0aW9UeXBlKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6
OlRleHRTdHJlYW0mLCBBdXRvUmVwZWF0VHlwZSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoV1RGOjpUZXh0U3RyZWFtJiwgQmFja2ZhY2VWaXNpYmlsaXR5KTsKK1dURjo6VGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBCb3JkZXJDb2xsYXBzZSk7CitXVEY6OlRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQm9yZGVyRml0KTsKK1dURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBCb3JkZXJTdHlsZSk7CitX
VEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQm94QWxpZ25tZW50
KTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBCb3hEZWNv
cmF0aW9uQnJlYWspOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVh
bSYsIEJveERpcmVjdGlvbik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0
U3RyZWFtJiwgQm94TGluZXMpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYsIEJveE9yaWVudCk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiwgQm94UGFjayk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiwgQm94U2l6aW5nKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6
OlRleHRTdHJlYW0mLCBCcmVha0JldHdlZW4pOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIEJyZWFrSW5zaWRlKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChXVEY6OlRleHRTdHJlYW0mLCBDU1NCb3hUeXBlKTsKK1dURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBDU1NSZWZsZWN0aW9uRGlyZWN0aW9uKTsKK1dURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBDYXB0aW9uU2lkZSk7CitX
VEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQ2xlYXIpOworI2lm
IEVOQUJMRShEQVJLX01PREVfQ1NTKQorV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6
VGV4dFN0cmVhbSYsIENvbG9yU2NoZW1lKTsKKyNlbmRpZgorV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIENvbHVtbkF4aXMpOworV1RGOjpUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIENvbHVtbkZpbGwpOworV1RGOjpUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIENvbHVtblByb2dyZXNzaW9uKTsKK1dURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBDb2x1bW5TcGFuKTsKK1dU
Rjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBDb250ZW50RGlzdHJp
YnV0aW9uKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBD
b250ZW50UG9zaXRpb24pOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIEN1cnNvclR5cGUpOworI2lmIEVOQUJMRShDVVJTT1JfVklTSUJJTElUWSkKK1dURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBDdXJzb3JWaXNpYmlsaXR5
KTsKKyNlbmRpZgorV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYs
IERpc3BsYXlUeXBlKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJl
YW0mLCBFZGdlKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBFbXB0eUNlbGwpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVh
bSYsIEZpbGxBdHRhY2htZW50KTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRl
eHRTdHJlYW0mLCBGaWxsQm94KTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRl
eHRTdHJlYW0mLCBGaWxsUmVwZWF0KTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6
OlRleHRTdHJlYW0mLCBGaWxsU2l6ZVR5cGUpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIEZsZXhEaXJlY3Rpb24pOworV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEZsZXhXcmFwKTsKK1dURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBGbG9hdCk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgR3JpZEF1dG9GbG93KTsKK1dURjo6VGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBIYW5naW5nUHVuY3R1YXRpb24pOworV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEh5cGhlbnMpOworV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEltYWdlUmVuZGVyaW5nKTsK
K1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBJbnNpZGVMaW5r
KTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBJc29sYXRp
b24pOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEl0ZW1Q
b3NpdGlvbik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwg
SXRlbVBvc2l0aW9uVHlwZSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0
U3RyZWFtJiwgTGluZUFsaWduKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRl
eHRTdHJlYW0mLCBMaW5lQnJlYWspOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6
VGV4dFN0cmVhbSYsIExpbmVTbmFwKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6
OlRleHRTdHJlYW0mLCBMaXN0U3R5bGVQb3NpdGlvbik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgTGlzdFN0eWxlVHlwZSk7CitXVEY6OlRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgTWFyZ2luQ29sbGFwc2UpOworV1RGOjpUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIE1hcnF1ZWVCZWhhdmlvcik7CitX
VEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgTWFycXVlZURpcmVj
dGlvbik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgTWFz
a1NvdXJjZVR5cGUpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVh
bSYsIE5CU1BNb2RlKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJl
YW0mLCBPYmplY3RGaXQpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIE9yZGVyKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJl
YW0mLCBPdmVyZmxvdyk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgT3ZlcmZsb3dBbGlnbm1lbnQpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdU
Rjo6VGV4dFN0cmVhbSYsIE92ZXJmbG93V3JhcCk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoV1RGOjpUZXh0U3RyZWFtJiwgUGFpbnRPcmRlcik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgUG9pbnRlckV2ZW50cyk7CitXVEY6OlRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgUG9zaXRpb25UeXBlKTsKK1dURjo6VGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBQcmludENvbG9yQWRqdXN0KTsKK1dU
Rjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBQc2V1ZG9JZCk7CitX
VEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgUXVvdGVUeXBlKTsK
K1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBSZXNpemUpOwor
V1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFJ1YnlQb3NpdGlv
bik7CisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChXVEY6OlRleHRTdHJlYW0mLCBTY3JvbGxTbmFwQXhpcyk7CitXVEY6OlRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUpOwor
V1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFNjcm9sbFNuYXBT
dHJpY3RuZXNzKTsKKyNlbmRpZgorV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYsIFNwZWFrQXMpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYsIFN0eWxlRGlmZmVyZW5jZSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
V1RGOjpUZXh0U3RyZWFtJiwgVGFibGVMYXlvdXRUeXBlKTsKK1dURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBUZXh0QWxpZ25Nb2RlKTsKK1dURjo6VGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBUZXh0Q29tYmluZSk7CitXVEY6OlRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgVGV4dERlY29yYXRpb24pOworV1RG
OjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFRleHREZWNvcmF0aW9u
U2tpcCk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgVGV4
dERlY29yYXRpb25TdHlsZSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0
U3RyZWFtJiwgVGV4dEVtcGhhc2lzRmlsbCk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
V1RGOjpUZXh0U3RyZWFtJiwgVGV4dEVtcGhhc2lzTWFyayk7CitXVEY6OlRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgVGV4dEVtcGhhc2lzUG9zaXRpb24pOworV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFRleHRPcmllbnRhdGlvbik7
CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgVGV4dE92ZXJm
bG93KTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBUZXh0
U2VjdXJpdHkpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYs
IFRleHRUcmFuc2Zvcm0pOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIFRleHRVbmRlcmxpbmVQb3NpdGlvbik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoV1RGOjpUZXh0U3RyZWFtJiwgVGV4dFpvb20pOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFdURjo6VGV4dFN0cmVhbSYsIFRyYW5zZm9ybUJveCk7CitXVEY6OlRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgVHJhbnNmb3JtU3R5bGUzRCk7CitXVEY6OlRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgVXNlckRyYWcpOworV1RGOjpUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFVzZXJNb2RpZnkpOworV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFVzZXJTZWxlY3QpOworV1RG
OjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFZlcnRpY2FsQWxpZ24p
OworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFZpc2liaWxp
dHkpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFdoaXRl
U3BhY2UpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFdv
cmRCcmVhayk7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5jcHAKaW5kZXggNTgxYjA3
YzY4OTBkMzkxMjVmMjYzZjUyMmU2N2FhNjI1YmY0MmVlZC4uZDNmYTkyNzg5YmU0OGZjYzk1ZTg3
YmU4ZDFkNWUwOTcyNWQ5NjJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVk
ZSA8d3RmL1BvaW50ZXJDb21wYXJpc29uLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVh
bS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMwNSw0ICszMDYsMjMxIEBAIGJvb2wg
U3R5bGVMYXlvdXREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlTGF5b3V0RGF0YSYgb3RoZXIp
IGNvbnN0CiAgICAgICAgICYmIHkgPT0gb3RoZXIueTsKIH0KIAorCitUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBBbGlnbm1lbnRCYXNlbGluZSB2YWx1ZSkKK3sKKyAgICBz
d2l0Y2ggKHZhbHVlKSB7CisgICAgY2FzZSBBbGlnbm1lbnRCYXNlbGluZTo6QXV0bzogdHMgPDwg
ImF1dG8iOyBicmVhazsKKyAgICBjYXNlIEFsaWdubWVudEJhc2VsaW5lOjpCYXNlbGluZTogdHMg
PDwgImJhc2VsaW5lIjsgYnJlYWs7CisgICAgY2FzZSBBbGlnbm1lbnRCYXNlbGluZTo6QmVmb3Jl
RWRnZTogdHMgPDwgImJlZm9yZS1lZGdlIjsgYnJlYWs7CisgICAgY2FzZSBBbGlnbm1lbnRCYXNl
bGluZTo6VGV4dEJlZm9yZUVkZ2U6IHRzIDw8ICJ0ZXh0LWJlZm9yZS1lZGdlIjsgYnJlYWs7Cisg
ICAgY2FzZSBBbGlnbm1lbnRCYXNlbGluZTo6TWlkZGxlOiB0cyA8PCAibWlkZGxlIjsgYnJlYWs7
CisgICAgY2FzZSBBbGlnbm1lbnRCYXNlbGluZTo6Q2VudHJhbDogdHMgPDwgImNlbnRyYWwiOyBi
cmVhazsKKyAgICBjYXNlIEFsaWdubWVudEJhc2VsaW5lOjpBZnRlckVkZ2U6IHRzIDw8ICJhZnRl
ci1lZGdlIjsgYnJlYWs7CisgICAgY2FzZSBBbGlnbm1lbnRCYXNlbGluZTo6VGV4dEFmdGVyRWRn
ZTogdHMgPDwgInRleHQtYWZ0ZXItZWRnZSI7IGJyZWFrOworICAgIGNhc2UgQWxpZ25tZW50QmFz
ZWxpbmU6OklkZW9ncmFwaGljOiB0cyA8PCAiaWRlb2dyYXBoaWMiOyBicmVhazsKKyAgICBjYXNl
IEFsaWdubWVudEJhc2VsaW5lOjpBbHBoYWJldGljOiB0cyA8PCAiYWxwaGFiZXRpYyI7IGJyZWFr
OworICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6Okhhbmdpbmc6IHRzIDw8ICJoYW5naW5nIjsg
YnJlYWs7CisgICAgY2FzZSBBbGlnbm1lbnRCYXNlbGluZTo6TWF0aGVtYXRpY2FsOiB0cyA8PCAi
bWF0aGVtYXRpY2FsIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQmFzZWxpbmVTaGlmdCB2YWx1ZSkKK3sK
KyAgICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgY2FzZSBCYXNlbGluZVNoaWZ0OjpCYXNlbGluZTog
dHMgPDwgImJhc2VsaW5lIjsgYnJlYWs7CisgICAgY2FzZSBCYXNlbGluZVNoaWZ0OjpTdWI6IHRz
IDw8ICJzdWIiOyBicmVhazsKKyAgICBjYXNlIEJhc2VsaW5lU2hpZnQ6OlN1cGVyOiB0cyA8PCAi
c3VwZXIiOyBicmVhazsKKyAgICBjYXNlIEJhc2VsaW5lU2hpZnQ6Okxlbmd0aDogdHMgPDwgImxl
bmd0aCI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEJ1ZmZlcmVkUmVuZGVyaW5nIHZhbHVlKQoreworICAg
IHN3aXRjaCAodmFsdWUpIHsKKyAgICBjYXNlIEJ1ZmZlcmVkUmVuZGVyaW5nOjpBdXRvOiB0cyA8
PCAiYXV0byI7IGJyZWFrOworICAgIGNhc2UgQnVmZmVyZWRSZW5kZXJpbmc6OkR5bmFtaWM6IHRz
IDw8ICJkeW5hbWljIjsgYnJlYWs7CisgICAgY2FzZSBCdWZmZXJlZFJlbmRlcmluZzo6U3RhdGlj
OiB0cyA8PCAic3RhdGljIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQ29sb3JJbnRlcnBvbGF0aW9uIHZh
bHVlKQoreworICAgIHN3aXRjaCAodmFsdWUpIHsKKyAgICBjYXNlIENvbG9ySW50ZXJwb2xhdGlv
bjo6QXV0bzogdHMgPDwgImF1dG8iOyBicmVhazsKKyAgICBjYXNlIENvbG9ySW50ZXJwb2xhdGlv
bjo6U1JHQjogdHMgPDwgInNSR0IiOyBicmVhazsKKyAgICBjYXNlIENvbG9ySW50ZXJwb2xhdGlv
bjo6TGluZWFyUkdCOiB0cyA8PCAibGluZWFyUkdCIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVy
biB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQ29sb3JS
ZW5kZXJpbmcgdmFsdWUpCit7CisgICAgc3dpdGNoICh2YWx1ZSkgeworICAgIGNhc2UgQ29sb3JS
ZW5kZXJpbmc6OkF1dG86IHRzIDw8ICJhdXRvIjsgYnJlYWs7CisgICAgY2FzZSBDb2xvclJlbmRl
cmluZzo6T3B0aW1pemVTcGVlZDogdHMgPDwgIm9wdGltaXplU3BlZWQiOyBicmVhazsKKyAgICBj
YXNlIENvbG9yUmVuZGVyaW5nOjpPcHRpbWl6ZVF1YWxpdHk6IHRzIDw8ICJvcHRpbWl6ZVF1YWxp
dHkiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBEb21pbmFudEJhc2VsaW5lIHZhbHVlKQoreworICAgIHN3
aXRjaCAodmFsdWUpIHsKKyAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6OkF1dG86IHRzIDw8ICJh
dXRvIjsgYnJlYWs7CisgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpVc2VTY3JpcHQ6IHRzIDw8
ICJ1c2Utc2NyaXB0IjsgYnJlYWs7CisgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpOb0NoYW5n
ZTogdHMgPDwgIm5vLWNoYW5nZSI7IGJyZWFrOworICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6
UmVzZXRTaXplOiB0cyA8PCAicmVzZXQtc2l6ZSI7IGJyZWFrOworICAgIGNhc2UgRG9taW5hbnRC
YXNlbGluZTo6SWRlb2dyYXBoaWM6IHRzIDw8ICJpZGVvZ3JhcGhpYyI7IGJyZWFrOworICAgIGNh
c2UgRG9taW5hbnRCYXNlbGluZTo6QWxwaGFiZXRpYzogdHMgPDwgImFscGhhYmV0aWMiOyBicmVh
azsKKyAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6Okhhbmdpbmc6IHRzIDw8ICJoYW5naW5nIjsg
YnJlYWs7CisgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpNYXRoZW1hdGljYWw6IHRzIDw8ICJt
YXRoZW1hdGljYWwiOyBicmVhazsKKyAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6OkNlbnRyYWw6
IHRzIDw8ICJjZW50cmFsIjsgYnJlYWs7CisgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpNaWRk
bGU6IHRzIDw8ICJtaWRkbGUiOyBicmVhazsKKyAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6OlRl
eHRBZnRlckVkZ2U6IHRzIDw8ICJ0ZXh0LWFmdGVyLWVkZ2UiOyBicmVhazsKKyAgICBjYXNlIERv
bWluYW50QmFzZWxpbmU6OlRleHRCZWZvcmVFZGdlOiB0cyA8PCAidGV4dC1iZWZvcmUtZWRnZSI7
IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIEdseXBoT3JpZW50YXRpb24gdmFsdWUpCit7CisgICAgc3dpdGNo
ICh2YWx1ZSkgeworICAgIGNhc2UgR2x5cGhPcmllbnRhdGlvbjo6RGVncmVlczA6IHRzIDw8ICIw
IjsgYnJlYWs7CisgICAgY2FzZSBHbHlwaE9yaWVudGF0aW9uOjpEZWdyZWVzOTA6IHRzIDw8ICI5
MCI7IGJyZWFrOworICAgIGNhc2UgR2x5cGhPcmllbnRhdGlvbjo6RGVncmVlczE4MDogdHMgPDwg
IjE4MCI7IGJyZWFrOworICAgIGNhc2UgR2x5cGhPcmllbnRhdGlvbjo6RGVncmVlczI3MDogdHMg
PDwgIjI3MCI7IGJyZWFrOworICAgIGNhc2UgR2x5cGhPcmllbnRhdGlvbjo6QXV0bzogdHMgPDwg
IkF1dG8iOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBNYXNrVHlwZSB2YWx1ZSkKK3sKKyAgICBzd2l0Y2gg
KHZhbHVlKSB7CisgICAgY2FzZSBNYXNrVHlwZTo6THVtaW5hbmNlOiB0cyA8PCAibHVtaW5hbmNl
IjsgYnJlYWs7CisgICAgY2FzZSBNYXNrVHlwZTo6QWxwaGE6IHRzIDw8ICJhbHBoYSI7IGJyZWFr
OworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIFNWR1BhaW50VHlwZSBwYWludFR5cGUpCit7CisgICAgc3dpdGNoIChwYWlu
dFR5cGUpIHsKKyAgICBjYXNlIFNWR1BhaW50VHlwZTo6UkdCQ29sb3I6IHRzIDw8ICJyZ2ItY29s
b3IiOyBicmVhazsKKyAgICBjYXNlIFNWR1BhaW50VHlwZTo6Tm9uZTogdHMgPDwgIm5vbmUiOyBi
cmVhazsKKyAgICBjYXNlIFNWR1BhaW50VHlwZTo6Q3VycmVudENvbG9yOiB0cyA8PCAiY3VycmVu
dC1jb2xvciI7IGJyZWFrOworICAgIGNhc2UgU1ZHUGFpbnRUeXBlOjpVUklOb25lOiB0cyA8PCAi
dXJpLW5vbmUiOyBicmVhazsKKyAgICBjYXNlIFNWR1BhaW50VHlwZTo6VVJJQ3VycmVudENvbG9y
OiB0cyA8PCAidXJpLWN1cnJlbnQtY29sb3IiOyBicmVhazsKKyAgICBjYXNlIFNWR1BhaW50VHlw
ZTo6VVJJUkdCQ29sb3I6IHRzIDw8ICJ1cmktcmdiLWNvbG9yIjsgYnJlYWs7CisgICAgY2FzZSBT
VkdQYWludFR5cGU6OlVSSTogdHMgPDwgInVyaSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4g
dHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFNoYXBlUmVu
ZGVyaW5nIHZhbHVlKQoreworICAgIHN3aXRjaCAodmFsdWUpIHsKKyAgICBjYXNlIFNoYXBlUmVu
ZGVyaW5nOjpBdXRvOiB0cyA8PCAiYXV0byI7IGJyZWFrOworICAgIGNhc2UgU2hhcGVSZW5kZXJp
bmc6Ok9wdGltaXplU3BlZWQ6IHRzIDw8ICJvcHRpbWl6ZVNwZWVkIjsgYnJlYWs7CisgICAgY2Fz
ZSBTaGFwZVJlbmRlcmluZzo6Q3Jpc3BFZGdlczogdHMgPDwgImNyaXNwRWRnZXMiOyBicmVhazsK
KyAgICBjYXNlIFNoYXBlUmVuZGVyaW5nOjpHZW9tZXRyaWNQcmVjaXNpb246IHRzIDw8ICJnZW9t
ZXRyaWNQcmVjaXNpb24iOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBUZXh0QW5jaG9yIHZhbHVlKQorewor
ICAgIHN3aXRjaCAodmFsdWUpIHsKKyAgICBjYXNlIFRleHRBbmNob3I6OlN0YXJ0OiB0cyA8PCAi
c3RhcnQiOyBicmVhazsKKyAgICBjYXNlIFRleHRBbmNob3I6Ok1pZGRsZTogdHMgPDwgIm1pZGRs
ZSI7IGJyZWFrOworICAgIGNhc2UgVGV4dEFuY2hvcjo6RW5kOiB0cyA8PCAiZW5kIjsgYnJlYWs7
CisgICAgfQorICAgIHJldHVybiB0czsKIH0KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgVmVjdG9yRWZmZWN0IHZhbHVlKQoreworICAgIHN3aXRjaCAodmFsdWUpIHsK
KyAgICBjYXNlIFZlY3RvckVmZmVjdDo6Tm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsKKyAgICBj
YXNlIFZlY3RvckVmZmVjdDo6Tm9uU2NhbGluZ1N0cm9rZTogdHMgPDwgIm5vbi1zY2FsaW5nLXN0
cm9rZSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFN0eWxlRmlsbERhdGEmIGRhdGEpCit7Cisg
ICAgdHMuZHVtcFByb3BlcnR5KCJvcGFjaXR5IiwgZGF0YS5vcGFjaXR5KTsKKyAgICB0cy5kdW1w
UHJvcGVydHkoInBhaW50LWNvbG9yIiwgZGF0YS5wYWludENvbG9yKTsKKyAgICB0cy5kdW1wUHJv
cGVydHkoInZpc2l0ZWQgbGluayBwYWludC1jb2xvciIsIGRhdGEudmlzaXRlZExpbmtQYWludENv
bG9yKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInBhaW50IHVyaSIsIGRhdGEucGFpbnRVcmkpOwor
ICAgIHRzLmR1bXBQcm9wZXJ0eSgidmlzaXRlZCBsaW5rIHBhaW50IHVyaSIsIGRhdGEudmlzaXRl
ZExpbmtQYWludFVyaSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJ2aXNpdGVkIGxpbmsgcGFpbnQg
dHlwZSIsIGRhdGEucGFpbnRUeXBlKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInZpc2l0ZWQgbGlu
ayBwYWludCB0eXBlIiwgZGF0YS52aXNpdGVkTGlua1BhaW50VHlwZSk7CisgICAgcmV0dXJuIHRz
OworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTdHls
ZVN0cm9rZURhdGEmIGRhdGEpCit7CisgICAgdHMuZHVtcFByb3BlcnR5KCJvcGFjaXR5IiwgZGF0
YS5vcGFjaXR5KTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInBhaW50LWNvbG9yIiwgZGF0YS5wYWlu
dENvbG9yKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInZpc2l0ZWQgbGluayBwYWludC1jb2xvciIs
IGRhdGEudmlzaXRlZExpbmtQYWludENvbG9yKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInBhaW50
IHVyaSIsIGRhdGEucGFpbnRVcmkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgidmlzaXRlZCBsaW5r
IHBhaW50IHVyaSIsIGRhdGEudmlzaXRlZExpbmtQYWludFVyaSk7CisgICAgdHMuZHVtcFByb3Bl
cnR5KCJkYXNoT2Zmc2V0IiwgZGF0YS5kYXNoT2Zmc2V0KTsKKyAgICB0cy5kdW1wUHJvcGVydHko
ImRhc2ggYXJyYXkiLCBkYXRhLmRhc2hBcnJheSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJ2aXNp
dGVkIGxpbmsgcGFpbnQgdHlwZSIsIGRhdGEucGFpbnRUeXBlKTsKKyAgICB0cy5kdW1wUHJvcGVy
dHkoInZpc2l0ZWQgbGluayBwYWludCB0eXBlIiwgZGF0YS52aXNpdGVkTGlua1BhaW50VHlwZSk7
CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBjb25zdCBTdHlsZVN0b3BEYXRhJiBkYXRhKQoreworICAgIHRzLmR1bXBQcm9wZXJ0eSgi
b3BhY2l0eSIsIGRhdGEub3BhY2l0eSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJjb2xvciIsIGRh
dGEuY29sb3IpOworICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgU3R5bGVUZXh0RGF0YSYgZGF0YSkKK3sKKyAgICB0cy5kdW1w
UHJvcGVydHkoImtlcm5pbmciLCBkYXRhLmtlcm5pbmcpOworICAgIHJldHVybiB0czsKK30KKwor
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU3R5bGVNaXNjRGF0
YSYgZGF0YSkKK3sKKyAgICB0cy5kdW1wUHJvcGVydHkoImZsb29kLW9wYWNpdHkiLCBkYXRhLmZs
b29kT3BhY2l0eSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJmbG9vZC1jb2xvciIsIGRhdGEuZmxv
b2RDb2xvcik7CisgICAgdHMuZHVtcFByb3BlcnR5KCJsaWdodGluZy1jb2xvciIsIGRhdGEubGln
aHRpbmdDb2xvcik7CisgICAgdHMuZHVtcFByb3BlcnR5KCJiYXNlbGluZS1zaGlmdCIsIGRhdGEu
YmFzZWxpbmVTaGlmdFZhbHVlKTsKKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFN0eWxlU2hhZG93U1ZHRGF0YSYgZGF0YSkK
K3sKKyAgICBpZiAoZGF0YS5zaGFkb3cpCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgic2hhZG93
IiwgKmRhdGEuc2hhZG93KTsKKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFN0eWxlUmVzb3VyY2VEYXRhJiBkYXRhKQorewor
ICAgIHRzLmR1bXBQcm9wZXJ0eSgiY2xpcHBlciIsIGRhdGEuY2xpcHBlcik7CisgICAgdHMuZHVt
cFByb3BlcnR5KCJtYXNrZXIiLCBkYXRhLm1hc2tlcik7CisgICAgcmV0dXJuIHRzOworfQorCitU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTdHlsZUluaGVyaXRl
ZFJlc291cmNlRGF0YSYgZGF0YSkKK3sKKyAgICB0cy5kdW1wUHJvcGVydHkoIm1hcmtlci1zdGFy
dCIsIGRhdGEubWFya2VyU3RhcnQpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgibWFya2VyLW1pZCIs
IGRhdGEubWFya2VyTWlkKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoIm1hcmtlci1lbmQiLCBkYXRh
Lm1hcmtlckVuZCk7CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTdHlsZUxheW91dERhdGEmIGRhdGEpCit7CisgICAgdHMu
ZHVtcFByb3BlcnR5KCJjeCIsIGRhdGEuY3gpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgiY3kiLCBk
YXRhLmN5KTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInIiLCBkYXRhLnIpOworICAgIHRzLmR1bXBQ
cm9wZXJ0eSgicngiLCBkYXRhLnJ4KTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInJ5IiwgZGF0YS5y
eSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJ4IiwgZGF0YS54KTsKKyAgICB0cy5kdW1wUHJvcGVy
dHkoInkiLCBkYXRhLnkpOworICAgIHJldHVybiB0czsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRl
clN0eWxlRGVmcy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0
eWxlRGVmcy5oCmluZGV4IGQ4N2E4ZDM3MzBjNjQzMWQ3MTViM2RmYTI3N2MwNDUwZTFjZTAxYzIu
LmVlMGU3MDM3YjE4ZDVmY2Q5MDE4OGExMjNhNmY0NDU2MjMzYTdiY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmgKQEAgLTM0
LDYgKzM0LDEwIEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVGV4dFN0cmVhbTsKK30KKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NWYWx1ZTsKQEAgLTMzNiw0ICszNDAsMjggQEAg
cHJpdmF0ZToKICAgICBTdHlsZUxheW91dERhdGEoY29uc3QgU3R5bGVMYXlvdXREYXRhJik7CiB9
OwogCisKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBbGln
bm1lbnRCYXNlbGluZSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgQmFzZWxpbmVTaGlmdCk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiwgQnVmZmVyZWRSZW5kZXJpbmcpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFdURjo6VGV4dFN0cmVhbSYsIENvbG9ySW50ZXJwb2xhdGlvbik7CitXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQ29sb3JSZW5kZXJpbmcpOworV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIERvbWluYW50QmFzZWxpbmUp
OworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEdseXBoT3Jp
ZW50YXRpb24pOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYs
IE1hc2tUeXBlKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBTVkdQYWludFR5cGUpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIFNoYXBlUmVuZGVyaW5nKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6
OlRleHRTdHJlYW0mLCBUZXh0QW5jaG9yKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChX
VEY6OlRleHRTdHJlYW0mLCBWZWN0b3JFZmZlY3QpOworCitXVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgU3R5bGVGaWxsRGF0YSYpOworV1RGOjpUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IFN0eWxlU3Ryb2tlRGF0
YSYpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0
IFN0eWxlU3RvcERhdGEmKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRT
dHJlYW0mLCBjb25zdCBTdHlsZVRleHREYXRhJik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgU3R5bGVNaXNjRGF0YSYpOworV1RGOjpUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IFN0eWxlU2hhZG93U1ZHRGF0
YSYpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0
IFN0eWxlUmVzb3VyY2VEYXRhJik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiwgY29uc3QgU3R5bGVJbmhlcml0ZWRSZXNvdXJjZURhdGEmKTsKK1dURjo6VGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBTdHlsZUxheW91dERh
dGEmKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1NoYWRvd0RhdGEuY3BwCmluZGV4IGMxN2VhZjg1OWIwYmZhYTdkYWJjMDA4ZDRl
NzQwZmM2MzBhNGI4MzkuLjEwNzI3NmE1YjdjYTQzN2NmY2M3MDIxZDRiNmY2YzRkMjZhOTFiNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TaGFkb3dEYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5jcHAKQEAg
LTk4LDQgKzk4LDE0IEBAIHZvaWQgU2hhZG93RGF0YTo6YWRqdXN0UmVjdEZvclNoYWRvdyhGbG9h
dFJlY3QmIHJlY3QsIGludCBhZGRpdGlvbmFsT3V0bGluZVNpemUpCiAgICAgcmVjdC5zZXRIZWln
aHQocmVjdC5oZWlnaHQoKSAtIHNoYWRvd1RvcCArIHNoYWRvd0JvdHRvbSk7CiB9CiAKK1RleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFNoYWRvd0RhdGEmIGRhdGEp
Cit7CisgICAgdHMuZHVtcFByb3BlcnR5KCJsb2NhdGlvbiIsIGRhdGEubG9jYXRpb24oKSk7Cisg
ICAgdHMuZHVtcFByb3BlcnR5KCJyYWRpdXMiLCBkYXRhLnJhZGl1cygpKTsKKyAgICB0cy5kdW1w
UHJvcGVydHkoInNwcmVhZCIsIGRhdGEuc3ByZWFkKCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgi
Y29sb3IiLCBkYXRhLmNvbG9yKCkpOworCisgICAgcmV0dXJuIHRzOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U2hhZG93RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEu
aAppbmRleCAxZDc1ZjFlOWYwNzllYzViZjljYmRkMWI5NGNmZWUzOWZiZGM3MWI5Li4wZTBjZGI3
ZGMzZmMzN2E0ZmFkYzExZDEzMTBmZjIxNTg0ODc2ZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TaGFkb3dEYXRhLmgKQEAgLTk5LDQgKzk5LDYgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U2hhZG93RGF0YT4gbV9uZXh0OwogfTsKIAorV1RGOjpUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IFNoYWRvd0RhdGEmKTsKKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380830</attachid>
            <date>2019-10-12 10:45:47 -0700</date>
            <delta_ts>2019-10-12 15:05:13 -0700</delta_ts>
            <desc>Try to fix GTK</desc>
            <filename>bug-202877-20191012104546.patch</filename>
            <type>text/plain</type>
            <size>67842</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk5NjQ1ZWZiNzlhN2I3
MjczYTMyMGYwYTM2MGQ1YTA4N2ZlZDhlOC4uYzY4ODY5NWQ4MTAxYTk3ZTI2ZjU1ODVjZTFjODJi
Njk3ODMxZjc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTEwLTExICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBU
ZXh0U3RyZWFtLWJhc2VkIGR1bXBpbmcgZm9yIGFsbCB0aGUgUmVuZGVyU3R5bGUgYW5kIFNWR1Jl
bmRlclN0eWxlIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyODc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWFrZSBzdHlsZS1yZWxhdGVkIGVudW0gY2xhc3NlcyBkdW1wYWJsZSB3
aXRoIFRleHRTdHJlYW0sICBhbmQgbWFrZSBzb21lIFNWRyBzdHlsZS1yZWxhdGVkCisgICAgICAg
IGNsYXNzZXMgZHVtcGFibGUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpv
cGVyYXRvcjw8KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZz
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0Rh
dGEuaDoKKwogMjAxOS0xMC0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBNYWtlIFdlYkluc3BlY3RvcidzIHJlbW90ZSBkZWJ1ZyBFdmVudExvb3AgY29kZSBp
bnRvIFJ1bkxvb3AKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCmluZGV4IDExYzU2YWRhZGRjYTAwMWVkZTdlMWIyOWYx
ZjAzZDZhZmZlMTVhNTAuLjlkNGI1YTFhMjc3MmNlZGU4N2E0NjZiMjI0ZmU5MzE0ZjE2ZGQ2OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmNwcApAQCAtMjYsNDMgKzI2LDQ1MSBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAKKyNpbmNsdWRlICJUYWJTaXpl
LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFZpc2liaWxpdHkg
dmlzaWJpbGl0eSkKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEFuaW1h
dGlvbkZpbGxNb2RlIGZpbGxNb2RlKQoreworICAgIHN3aXRjaCAoZmlsbE1vZGUpIHsKKyAgICBj
YXNlIEFuaW1hdGlvbkZpbGxNb2RlOjpOb25lOiB0cyA8PCAibm9uZSI7IGJyZWFrOworICAgIGNh
c2UgQW5pbWF0aW9uRmlsbE1vZGU6OkZvcndhcmRzOiB0cyA8PCAiZm9yd2FyZHMiOyBicmVhazsK
KyAgICBjYXNlIEFuaW1hdGlvbkZpbGxNb2RlOjpCYWNrd2FyZHM6IHRzIDw8ICJiYWNrd2FyZHMi
OyBicmVhazsKKyAgICBjYXNlIEFuaW1hdGlvbkZpbGxNb2RlOjpCb3RoOiB0cyA8PCAiYm90aCI7
IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIEFuaW1hdGlvblBsYXlTdGF0ZSBwbGF5U3RhdGUpCit7CisgICAg
c3dpdGNoIChwbGF5U3RhdGUpIHsKKyAgICBjYXNlIEFuaW1hdGlvblBsYXlTdGF0ZTo6UGxheWlu
ZzogdHMgPDwgInBsYXlpbmciOyBicmVhazsKKyAgICBjYXNlIEFuaW1hdGlvblBsYXlTdGF0ZTo6
UGF1c2VkOiB0cyA8PCAicGF1c2VkIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30K
KworI2lmIEVOQUJMRShBUFBMRV9QQVkpCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBBcHBsZVBheUJ1dHRvblN0eWxlIGJ1dHRvblN0eWxlKQoreworICAgIHN3aXRjaCAo
YnV0dG9uU3R5bGUpIHsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlOiB0cyA8
PCAid2hpdGUiOyBicmVhazsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlT3V0
bGluZTogdHMgPDwgIndoaXRlLW91dGxpbmUiOyBicmVhazsKKyAgICBjYXNlIEFwcGxlUGF5QnV0
dG9uU3R5bGU6OkJsYWNrOiB0cyA8PCAiYmxhY2siOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJu
IHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBBcHBsZVBh
eUJ1dHRvblR5cGUgcGxheVN0YXRlKQoreworICAgIHN3aXRjaCAocGxheVN0YXRlKSB7CisgICAg
Y2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluOiB0cyA8PCAicGxhaW4iOyBicmVhazsKKyAg
ICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6QnV5OiB0cyA8PCAiYnV5IjsgYnJlYWs7CisgICAg
Y2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlNldFVwOiB0cyA8PCAic2V0dXAiOyBicmVhazsKKyAg
ICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6RG9uYXRlOiB0cyA8PCAiZG9uYXRlIjsgYnJlYWs7
CisjaWYgRU5BQkxFKEFQUExFX1BBWV9TRVNTSU9OX1Y0KQorICAgIGNhc2UgQXBwbGVQYXlCdXR0
b25UeXBlOjpDaGVja091dDogdHMgPDwgImNoZWNrb3V0IjsgYnJlYWs7CisgICAgY2FzZSBBcHBs
ZVBheUJ1dHRvblR5cGU6OkJvb2s6IHRzIDw8ICJib29rIjsgYnJlYWs7CisgICAgY2FzZSBBcHBs
ZVBheUJ1dHRvblR5cGU6OlN1YnNjcmliZTogdHMgPDwgInN1YnNjcmliZSI7IGJyZWFrOworI2Vu
ZGlmCisKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorI2VuZGlmCisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEFzcGVjdFJhdGlvVHlwZSBhc3BlY3RSYXRpb1R5cGUp
Cit7CisgICAgc3dpdGNoIChhc3BlY3RSYXRpb1R5cGUpIHsKKyAgICBjYXNlIEFzcGVjdFJhdGlv
VHlwZTo6QXV0bzogdHMgPDwgImF1dG8iOyBicmVhazsKKyAgICBjYXNlIEFzcGVjdFJhdGlvVHlw
ZTo6RnJvbUludHJpbnNpYzogdHMgPDwgImZyb20taW50cmluc2ljIjsgYnJlYWs7CisgICAgY2Fz
ZSBBc3BlY3RSYXRpb1R5cGU6OkZyb21EaW1lbnNpb25zOiB0cyA8PCAiZnJvbS1kaW1lbnNpb25z
IjsgYnJlYWs7CisgICAgY2FzZSBBc3BlY3RSYXRpb1R5cGU6OlNwZWNpZmllZDogdHMgPDwgInNw
ZWNpZmllZCI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEF1dG9SZXBlYXRUeXBlIHJlcGVhdFR5cGUpCit7
CisgICAgc3dpdGNoIChyZXBlYXRUeXBlKSB7CisgICAgY2FzZSBBdXRvUmVwZWF0VHlwZTo6Tm9u
ZTogdHMgPDwgIm5vbmUiOyBicmVhazsKKyAgICBjYXNlIEF1dG9SZXBlYXRUeXBlOjpGaWxsOiB0
cyA8PCAiZmlsbCI7IGJyZWFrOworICAgIGNhc2UgQXV0b1JlcGVhdFR5cGU6OkZpdDogdHMgPDwg
ImZpdCI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEJhY2tmYWNlVmlzaWJpbGl0eSB2aXNpYmlsaXR5KQog
ewogICAgIHN3aXRjaCAodmlzaWJpbGl0eSkgewotICAgIGNhc2UgVmlzaWJpbGl0eTo6VmlzaWJs
ZTogdHMgPDwgInZpc2libGUiOyBicmVhazsKLSAgICBjYXNlIFZpc2liaWxpdHk6OkhpZGRlbjog
dHMgPDwgImhpZGRlbiI7IGJyZWFrOwotICAgIGNhc2UgVmlzaWJpbGl0eTo6Q29sbGFwc2U6IHRz
IDw8ICJjb2xsYXBzZSI7IGJyZWFrOworICAgIGNhc2UgQmFja2ZhY2VWaXNpYmlsaXR5OjpWaXNp
YmxlOiB0cyA8PCAidmlzaWJsZSI7IGJyZWFrOworICAgIGNhc2UgQmFja2ZhY2VWaXNpYmlsaXR5
OjpIaWRkZW46IHRzIDw8ICJoaWRkZW4iOyBicmVhazsKICAgICB9Ci0gICAgCiAgICAgcmV0dXJu
IHRzOwogfQogCi1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJbWFnZVJl
bmRlcmluZyBpbWFnZVJlbmRlcmluZykKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIEJvcmRlckNvbGxhcHNlIGNvbGxhcHNlKQogewotICAgIHN3aXRjaCAoaW1hZ2VSZW5k
ZXJpbmcpIHsKLSAgICBjYXNlIEltYWdlUmVuZGVyaW5nOjpBdXRvOiB0cyA8PCAiYXV0byI7IGJy
ZWFrOwotICAgIGNhc2UgSW1hZ2VSZW5kZXJpbmc6Ok9wdGltaXplU3BlZWQ6IHRzIDw8ICJvcHRp
bWl6ZVNwZWVkIjsgYnJlYWs7Ci0gICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6T3B0aW1pemVRdWFs
aXR5OiB0cyA8PCAib3B0aW1pemVRdWFsaXR5IjsgYnJlYWs7Ci0gICAgY2FzZSBJbWFnZVJlbmRl
cmluZzo6Q3Jpc3BFZGdlczogdHMgPDwgImNyaXNwRWRnZXMiOyBicmVhazsKLSAgICBjYXNlIElt
YWdlUmVuZGVyaW5nOjpQaXhlbGF0ZWQ6IHRzIDw8ICJwaXhlbGF0ZWQiOyBicmVhazsKKyAgICBz
d2l0Y2ggKGNvbGxhcHNlKSB7CisgICAgY2FzZSBCb3JkZXJDb2xsYXBzZTo6U2VwYXJhdGU6IHRz
IDw8ICJzZXBhcmF0ZSI7IGJyZWFrOworICAgIGNhc2UgQm9yZGVyQ29sbGFwc2U6OkNvbGxhcHNl
OiB0cyA8PCAiY29sbGFwc2UiOyBicmVhazsKICAgICB9Ci0gICAgCiAgICAgcmV0dXJuIHRzOwog
fQogCi1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBGaWxsU2l6ZVR5cGUg
c2l6ZVR5cGUpCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBCb3JkZXJG
aXQgYm9yZGVyRml0KQogewotICAgIHN3aXRjaCAoc2l6ZVR5cGUpIHsKLSAgICBjYXNlIEZpbGxT
aXplVHlwZTo6Q29udGFpbjogdHMgPDwgImNvbnRhaW4iOyBicmVhazsKLSAgICBjYXNlIEZpbGxT
aXplVHlwZTo6Q292ZXI6IHRzIDw8ICJjb3ZlciI7IGJyZWFrOwotICAgIGNhc2UgRmlsbFNpemVU
eXBlOjpTaXplOiB0cyA8PCAic2l6ZS1sZW5ndGgiOyBicmVhazsKLSAgICBjYXNlIEZpbGxTaXpl
VHlwZTo6Tm9uZTogdHMgPDwgInNpemUtbm9uZSI7IGJyZWFrOworICAgIHN3aXRjaCAoYm9yZGVy
Rml0KSB7CisgICAgY2FzZSBCb3JkZXJGaXQ6OkJvcmRlcjogdHMgPDwgImJvcmRlciI7IGJyZWFr
OworICAgIGNhc2UgQm9yZGVyRml0OjpMaW5lczogdHMgPDwgImxpbmVzIjsgYnJlYWs7CisgICAg
fQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgQm9yZGVyU3R5bGUgYm9yZGVyU3R5bGUpCit7CisgICAgc3dpdGNoIChib3JkZXJTdHls
ZSkgeworICAgIGNhc2UgQm9yZGVyU3R5bGU6Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7Cisg
ICAgY2FzZSBCb3JkZXJTdHlsZTo6SGlkZGVuOiB0cyA8PCAiaGlkZGVuIjsgYnJlYWs7CisgICAg
Y2FzZSBCb3JkZXJTdHlsZTo6SW5zZXQ6IHRzIDw8ICJpbnNldCI7IGJyZWFrOworICAgIGNhc2Ug
Qm9yZGVyU3R5bGU6Okdyb292ZTogdHMgPDwgImdyb292ZSI7IGJyZWFrOworICAgIGNhc2UgQm9y
ZGVyU3R5bGU6Ok91dHNldDogdHMgPDwgIm91dHNldCI7IGJyZWFrOworICAgIGNhc2UgQm9yZGVy
U3R5bGU6OlJpZGdlOiB0cyA8PCAicmlkZ2UiOyBicmVhazsKKyAgICBjYXNlIEJvcmRlclN0eWxl
OjpEb3R0ZWQ6IHRzIDw8ICJkb3R0ZWQiOyBicmVhazsKKyAgICBjYXNlIEJvcmRlclN0eWxlOjpE
YXNoZWQ6IHRzIDw8ICJkYXNoZWQiOyBicmVhazsKKyAgICBjYXNlIEJvcmRlclN0eWxlOjpTb2xp
ZDogdHMgPDwgInNvbGlkIjsgYnJlYWs7CisgICAgY2FzZSBCb3JkZXJTdHlsZTo6RG91YmxlOiB0
cyA8PCAiZG91YmxlIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQm94QWxpZ25tZW50IGJveEFsaWdubWVu
dCkKK3sKKyAgICBzd2l0Y2ggKGJveEFsaWdubWVudCkgeworICAgIGNhc2UgQm94QWxpZ25tZW50
OjpTdHJldGNoOiB0cyA8PCAic3RyZXRjaCI7IGJyZWFrOworICAgIGNhc2UgQm94QWxpZ25tZW50
OjpTdGFydDogdHMgPDwgInN0YXJ0IjsgYnJlYWs7CisgICAgY2FzZSBCb3hBbGlnbm1lbnQ6OkNl
bnRlcjogdHMgPDwgImNlbnRlciI7IGJyZWFrOworICAgIGNhc2UgQm94QWxpZ25tZW50OjpFbmQ6
IHRzIDw8ICJlbmQiOyBicmVhazsKKyAgICBjYXNlIEJveEFsaWdubWVudDo6QmFzZWxpbmU6IHRz
IDw8ICJiYXNlbGluZSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEJveERlY29yYXRpb25CcmVhayBkZWNv
cmF0aW9uQnJlYWspCit7CisgICAgc3dpdGNoIChkZWNvcmF0aW9uQnJlYWspIHsKKyAgICBjYXNl
IEJveERlY29yYXRpb25CcmVhazo6U2xpY2U6IHRzIDw8ICJzbGljZSI7IGJyZWFrOworICAgIGNh
c2UgQm94RGVjb3JhdGlvbkJyZWFrOjpDbG9uZTogdHMgPDwgImNsb25lIjsgYnJlYWs7CisgICAg
fQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgQm94RGlyZWN0aW9uIGJveERpcmVjdGlvbikKK3sKKyAgICBzd2l0Y2ggKGJveERpcmVj
dGlvbikgeworICAgIGNhc2UgQm94RGlyZWN0aW9uOjpOb3JtYWw6IHRzIDw8ICJub3JtYWwiOyBi
cmVhazsKKyAgICBjYXNlIEJveERpcmVjdGlvbjo6UmV2ZXJzZTogdHMgPDwgInJldmVyc2UiOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBCb3hMaW5lcyBib3hMaW5lcykKK3sKKyAgICBzd2l0Y2ggKGJveExp
bmVzKSB7CisgICAgY2FzZSBCb3hMaW5lczo6U2luZ2xlOiB0cyA8PCAic2luZ2xlIjsgYnJlYWs7
CisgICAgY2FzZSBCb3hMaW5lczo6TXVsdGlwbGU6IHRzIDw8ICJtdWx0aXBsZSI7IGJyZWFrOwor
ICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIEJveE9yaWVudCBib3hPcmllbnQpCit7CisgICAgc3dpdGNoIChib3hPcmllbnQp
IHsKKyAgICBjYXNlIEJveE9yaWVudDo6SG9yaXpvbnRhbDogdHMgPDwgImhvcml6b250YWwiOyBi
cmVhazsKKyAgICBjYXNlIEJveE9yaWVudDo6VmVydGljYWw6IHRzIDw8ICJ2ZXJ0aWNhbCI7IGJy
ZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIEJveFBhY2sgYm94UGFjaykKK3sKKyAgICBzd2l0Y2ggKGJveFBhY2sp
IHsKKyAgICBjYXNlIEJveFBhY2s6OlN0YXJ0OiB0cyA8PCAic3RhcnQiOyBicmVhazsKKyAgICBj
YXNlIEJveFBhY2s6OkNlbnRlcjogdHMgPDwgImNlbnRlciI7IGJyZWFrOworICAgIGNhc2UgQm94
UGFjazo6RW5kOiB0cyA8PCAiZW5kIjsgYnJlYWs7CisgICAgY2FzZSBCb3hQYWNrOjpKdXN0aWZ5
OiB0cyA8PCAianVzdGlmeSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1Rl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEJveFNpemluZyBib3hTaXppbmcp
Cit7CisgICAgc3dpdGNoIChib3hTaXppbmcpIHsKKyAgICBjYXNlIEJveFNpemluZzo6Q29udGVu
dEJveDogdHMgPDwgImNvbnRlbnQtYm94IjsgYnJlYWs7CisgICAgY2FzZSBCb3hTaXppbmc6OkJv
cmRlckJveDogdHMgPDwgImJvcmRlci1ib3giOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRz
OworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBCcmVha0JldHdl
ZW4gYnJlYWtCZXR3ZWVuKQoreworICAgIHN3aXRjaCAoYnJlYWtCZXR3ZWVuKSB7CisgICAgY2Fz
ZSBCcmVha0JldHdlZW46OkF1dG86IHRzIDw8ICJhdXRvIjsgYnJlYWs7CisgICAgY2FzZSBCcmVh
a0JldHdlZW46OkF2b2lkOiB0cyA8PCAiYXZvaWQiOyBicmVhazsKKyAgICBjYXNlIEJyZWFrQmV0
d2Vlbjo6QXZvaWRDb2x1bW46IHRzIDw8ICJhdm9pZC1jb2x1bW4iOyBicmVhazsKKyAgICBjYXNl
IEJyZWFrQmV0d2Vlbjo6QXZvaWRQYWdlOiB0cyA8PCAiYXZvaWQtcGFnZSI7IGJyZWFrOworICAg
IGNhc2UgQnJlYWtCZXR3ZWVuOjpDb2x1bW46IHRzIDw8ICJjb2x1bW4iOyBicmVhazsKKyAgICBj
YXNlIEJyZWFrQmV0d2Vlbjo6UGFnZTogdHMgPDwgInBhZ2UiOyBicmVhazsKKyAgICBjYXNlIEJy
ZWFrQmV0d2Vlbjo6TGVmdFBhZ2U6IHRzIDw8ICJsZWZ0LXBhZ2UiOyBicmVhazsKKyAgICBjYXNl
IEJyZWFrQmV0d2Vlbjo6UmlnaHRQYWdlOiB0cyA8PCAicmlnaHQtcGFnZSI7IGJyZWFrOworICAg
IGNhc2UgQnJlYWtCZXR3ZWVuOjpSZWN0b1BhZ2U6IHRzIDw8ICJyZWN0by1wYWdlIjsgYnJlYWs7
CisgICAgY2FzZSBCcmVha0JldHdlZW46OlZlcnNvUGFnZTogdHMgPDwgInZlcnNvLXBhZ2UiOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBCcmVha0luc2lkZSBicmVha0luc2lkZSkKK3sKKyAgICBzd2l0Y2gg
KGJyZWFrSW5zaWRlKSB7CisgICAgY2FzZSBCcmVha0luc2lkZTo6QXV0bzogdHMgPDwgImF1dG8i
OyBicmVhazsKKyAgICBjYXNlIEJyZWFrSW5zaWRlOjpBdm9pZDogdHMgPDwgImF2b2lkIjsgYnJl
YWs7CisgICAgY2FzZSBCcmVha0luc2lkZTo6QXZvaWRDb2x1bW46IHRzIDw8ICJhdm9pZENvbHVt
biI7IGJyZWFrOworICAgIGNhc2UgQnJlYWtJbnNpZGU6OkF2b2lkUGFnZTogdHMgPDwgImF2b2lk
UGFnZSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENTU0JveFR5cGUgYm94VHlwZSkKK3sKKyAgICBzd2l0
Y2ggKGJveFR5cGUpIHsKKyAgICBjYXNlIENTU0JveFR5cGU6OkJveE1pc3Npbmc6IHRzIDw8ICJt
aXNzaW5nIjsgYnJlYWs7CisgICAgY2FzZSBDU1NCb3hUeXBlOjpNYXJnaW5Cb3g6IHRzIDw8ICJt
YXJnaW4tYm94IjsgYnJlYWs7CisgICAgY2FzZSBDU1NCb3hUeXBlOjpCb3JkZXJCb3g6IHRzIDw8
ICJib3JkZXItYm94IjsgYnJlYWs7CisgICAgY2FzZSBDU1NCb3hUeXBlOjpQYWRkaW5nQm94OiB0
cyA8PCAicGFkZGluZy1ib3giOyBicmVhazsKKyAgICBjYXNlIENTU0JveFR5cGU6OkNvbnRlbnRC
b3g6IHRzIDw8ICJjb250ZW50LWJveCI7IGJyZWFrOworICAgIGNhc2UgQ1NTQm94VHlwZTo6Rmls
bEJveDogdHMgPDwgImZpbGwtYm94IjsgYnJlYWs7CisgICAgY2FzZSBDU1NCb3hUeXBlOjpTdHJv
a2VCb3g6IHRzIDw8ICJzdHJva2UtYm94IjsgYnJlYWs7CisgICAgY2FzZSBDU1NCb3hUeXBlOjpW
aWV3Qm94OiB0cyA8PCAidmlldy1ib3giOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOwor
fQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBDU1NSZWZsZWN0aW9u
RGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNh
c2UgUmVmbGVjdGlvbkJlbG93OiB0cyA8PCAiYmVsb3ciOyBicmVhazsKKyAgICBjYXNlIFJlZmxl
Y3Rpb25BYm92ZTogdHMgPDwgImFib3ZlIjsgYnJlYWs7CisgICAgY2FzZSBSZWZsZWN0aW9uTGVm
dDogdHMgPDwgImxlZnQiOyBicmVhazsKKyAgICBjYXNlIFJlZmxlY3Rpb25SaWdodDogdHMgPDwg
InJpZ2h0IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQ2FwdGlvblNpZGUgc2lkZSkKK3sKKyAgICBzd2l0
Y2ggKHNpZGUpIHsKKyAgICBjYXNlIENhcHRpb25TaWRlOjpUb3A6IHRzIDw8ICJ0b3AiOyBicmVh
azsKKyAgICBjYXNlIENhcHRpb25TaWRlOjpCb3R0b206IHRzIDw8ICJib3R0b20iOyBicmVhazsK
KyAgICBjYXNlIENhcHRpb25TaWRlOjpMZWZ0OiB0cyA8PCAibGVmdCI7IGJyZWFrOworICAgIGNh
c2UgQ2FwdGlvblNpZGU6OlJpZ2h0OiB0cyA8PCAicmlnaHQiOyBicmVhazsKKyAgICB9CisgICAg
cmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBD
bGVhciBjbGVhcikKK3sKKyAgICBzd2l0Y2ggKGNsZWFyKSB7CisgICAgY2FzZSBDbGVhcjo6Tm9u
ZTogdHMgPDwgIm5vbmUiOyBicmVhazsKKyAgICBjYXNlIENsZWFyOjpMZWZ0OiB0cyA8PCAibGVm
dCI7IGJyZWFrOworICAgIGNhc2UgQ2xlYXI6OlJpZ2h0OiB0cyA8PCAicmlnaHQiOyBicmVhazsK
KyAgICBjYXNlIENsZWFyOjpCb3RoOiB0cyA8PCAiYm90aCI7IGJyZWFrOworICAgIH0KKyAgICBy
ZXR1cm4gdHM7Cit9CisKKyNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbG9yU2NoZW1lIGNvbG9yU2NoZW1lKQoreworICAg
IHN3aXRjaCAoY29sb3JTY2hlbWUpIHsKKyAgICBjYXNlIENvbG9yU2NoZW1lOjpMaWdodDogdHMg
PDwgImxpZ2h0IjsgYnJlYWs7CisgICAgY2FzZSBDb2xvclNjaGVtZTo6RGFyazogdHMgPDwgImRh
cmsiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorI2VuZGlmCisKK1RleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbHVtbkF4aXMgYXhpcykKK3sKKyAgICBz
d2l0Y2ggKGF4aXMpIHsKKyAgICBjYXNlIENvbHVtbkF4aXM6Okhvcml6b250YWw6IHRzIDw8ICJo
b3Jpem9udGFsIjsgYnJlYWs7CisgICAgY2FzZSBDb2x1bW5BeGlzOjpWZXJ0aWNhbDogdHMgPDwg
InZlcnRpY2FsIjsgYnJlYWs7CisgICAgY2FzZSBDb2x1bW5BeGlzOjpBdXRvOiB0cyA8PCAiYXV0
byI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbHVtbkZpbGwgZmlsbCkKK3sKKyAgICBzd2l0Y2ggKGZp
bGwpIHsKKyAgICBjYXNlIENvbHVtbkZpbGw6OkF1dG86IHRzIDw8ICJhdXRvIjsgYnJlYWs7Cisg
ICAgY2FzZSBDb2x1bW5GaWxsOjpCYWxhbmNlOiB0cyA8PCAiYmFsYW5jZSI7IGJyZWFrOworICAg
IH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIENvbHVtblByb2dyZXNzaW9uIHByb2dyZXNzaW9uKQoreworICAgIHN3aXRjaCAocHJv
Z3Jlc3Npb24pIHsKKyAgICBjYXNlIENvbHVtblByb2dyZXNzaW9uOjpOb3JtYWw6IHRzIDw8ICJu
b3JtYWwiOyBicmVhazsKKyAgICBjYXNlIENvbHVtblByb2dyZXNzaW9uOjpSZXZlcnNlOiB0cyA8
PCAicmV2ZXJzZSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbHVtblNwYW4gc3BhbikKK3sKKyAgICBz
d2l0Y2ggKHNwYW4pIHsKKyAgICBjYXNlIENvbHVtblNwYW46Ok5vbmU6IHRzIDw8ICJub25lIjsg
YnJlYWs7CisgICAgY2FzZSBDb2x1bW5TcGFuOjpBbGw6IHRzIDw8ICJhbGwiOyBicmVhazsKKyAg
ICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBDb250ZW50RGlzdHJpYnV0aW9uIGRpc3RyaWJ1dGlvbikKK3sKKyAgICBzd2l0Y2gg
KGRpc3RyaWJ1dGlvbikgeworICAgIGNhc2UgQ29udGVudERpc3RyaWJ1dGlvbjo6RGVmYXVsdDog
dHMgPDwgImRlZmF1bHQiOyBicmVhazsKKyAgICBjYXNlIENvbnRlbnREaXN0cmlidXRpb246OlNw
YWNlQmV0d2VlbjogdHMgPDwgInNwYWNlLWJldHdlZW4iOyBicmVhazsKKyAgICBjYXNlIENvbnRl
bnREaXN0cmlidXRpb246OlNwYWNlQXJvdW5kOiB0cyA8PCAic3BhY2UtYXJvdW5kIjsgYnJlYWs7
CisgICAgY2FzZSBDb250ZW50RGlzdHJpYnV0aW9uOjpTcGFjZUV2ZW5seTogdHMgPDwgInNwYWNl
LWV2ZW5seSI7IGJyZWFrOworICAgIGNhc2UgQ29udGVudERpc3RyaWJ1dGlvbjo6U3RyZXRjaDog
dHMgPDwgInN0cmV0Y2giOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBDb250ZW50UG9zaXRpb24gcG9zaXRp
b24pCit7CisgICAgc3dpdGNoIChwb3NpdGlvbikgeworICAgIGNhc2UgQ29udGVudFBvc2l0aW9u
OjpOb3JtYWw6IHRzIDw8ICJub3JtYWwiOyBicmVhazsKKyAgICBjYXNlIENvbnRlbnRQb3NpdGlv
bjo6QmFzZWxpbmU6IHRzIDw8ICJiYXNlbGluZSI7IGJyZWFrOworICAgIGNhc2UgQ29udGVudFBv
c2l0aW9uOjpMYXN0QmFzZWxpbmU6IHRzIDw8ICJsYXN0LWJhc2VsaW5lIjsgYnJlYWs7CisgICAg
Y2FzZSBDb250ZW50UG9zaXRpb246OkNlbnRlcjogdHMgPDwgImNlbnRlciI7IGJyZWFrOworICAg
IGNhc2UgQ29udGVudFBvc2l0aW9uOjpTdGFydDogdHMgPDwgInN0YXJ0IjsgYnJlYWs7CisgICAg
Y2FzZSBDb250ZW50UG9zaXRpb246OkVuZDogdHMgPDwgImVuZCI7IGJyZWFrOworICAgIGNhc2Ug
Q29udGVudFBvc2l0aW9uOjpGbGV4U3RhcnQ6IHRzIDw8ICJmbGV4LXN0YXJ0IjsgYnJlYWs7Cisg
ICAgY2FzZSBDb250ZW50UG9zaXRpb246OkZsZXhFbmQ6IHRzIDw8ICJmbGV4LWVuZCI7IGJyZWFr
OworICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpMZWZ0OiB0cyA8PCAibGVmdCI7IGJyZWFrOwor
ICAgIGNhc2UgQ29udGVudFBvc2l0aW9uOjpSaWdodDogdHMgPDwgInJpZ2h0IjsgYnJlYWs7CisK
KyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBDdXJzb3JUeXBlIGN1cnNvcikKK3sKKyAgICBzd2l0Y2ggKGN1cnNvcikgewor
ICAgIGNhc2UgQ3Vyc29yVHlwZTo6QXV0bzogdHMgPDwgImF1dG8iOyBicmVhazsKKyAgICBjYXNl
IEN1cnNvclR5cGU6OkRlZmF1bHQ6IHRzIDw8ICJkZWZhdWx0IjsgYnJlYWs7CisgICAgY2FzZSBD
dXJzb3JUeXBlOjpDb250ZXh0TWVudTogdHMgPDwgImNvbnRleHRtZW51IjsgYnJlYWs7CisgICAg
Y2FzZSBDdXJzb3JUeXBlOjpIZWxwOiB0cyA8PCAiaGVscCI7IGJyZWFrOworICAgIGNhc2UgQ3Vy
c29yVHlwZTo6UG9pbnRlcjogdHMgPDwgInBvaW50ZXIiOyBicmVhazsKKyAgICBjYXNlIEN1cnNv
clR5cGU6OlByb2dyZXNzOiB0cyA8PCAicHJvZ3Jlc3MiOyBicmVhazsKKyAgICBjYXNlIEN1cnNv
clR5cGU6OldhaXQ6IHRzIDw8ICJ3YWl0IjsgYnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpD
ZWxsOiB0cyA8PCAiY2VsbCI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6Q3Jvc3NoYWly
OiB0cyA8PCAiY3Jvc3NoYWlyIjsgYnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpUZXh0OiB0
cyA8PCAidGV4dCI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6VmVydGljYWxUZXh0OiB0
cyA8PCAidmVydGljYWwtdGV4dCI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6QWxpYXM6
IHRzIDw8ICJhbGlhcyI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6TW92ZTogdHMgPDwg
Im1vdmUiOyBicmVhazsKKyAgICBjYXNlIEN1cnNvclR5cGU6Ok5vRHJvcDogdHMgPDwgIm5vZHJv
cCI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6Tm90QWxsb3dlZDogdHMgPDwgIm5vdC1h
bGxvd2VkIjsgYnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpHcmFiOiB0cyA8PCAiZ3JhYiI7
IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6R3JhYmJpbmc6IHRzIDw8ICJncmFiYmluZyI7
IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6RVJlc2l6ZTogdHMgPDwgImUtcmVzaXplIjsg
YnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpOUmVzaXplOiB0cyA8PCAibi1yZXNpemUiOyBi
cmVhazsKKyAgICBjYXNlIEN1cnNvclR5cGU6Ok5FUmVzaXplOiB0cyA8PCAibmUtcmVzaXplIjsg
YnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpOV1Jlc2l6ZTogdHMgPDwgIm53LXJlc2l6ZSI7
IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6U1Jlc2l6ZTogdHMgPDwgInNyLWVzaXplIjsg
YnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpTRVJlc2l6ZTogdHMgPDwgInNlLXJlc2l6ZSI7
IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6U1dSZXNpemU6IHRzIDw8ICJzdy1yZXNpemUi
OyBicmVhazsKKyAgICBjYXNlIEN1cnNvclR5cGU6OldSZXNpemU6IHRzIDw8ICJ3LXJlc2l6ZSI7
IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6RVdSZXNpemU6IHRzIDw8ICJldy1yZXNpemUi
OyBicmVhazsKKyAgICBjYXNlIEN1cnNvclR5cGU6Ok5TUmVzaXplOiB0cyA8PCAibnMtcmVzaXpl
IjsgYnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpORVNXUmVzaXplOiB0cyA8PCAibmVzdy1y
ZXNpemUiOyBicmVhazsKKyAgICBjYXNlIEN1cnNvclR5cGU6Ok5XU0VSZXNpemU6IHRzIDw8ICJu
d3NlLXJlc2l6ZSI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6Q29sdW1uUmVzaXplOiB0
cyA8PCAiY29sdW1uLXJlc2l6ZSI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6Um93UmVz
aXplOiB0cyA8PCAicm93LXJlc2l6ZSI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6QWxs
U2Nyb2xsOiB0cyA8PCAiYWxsLXNjcm9sbCI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6
Wm9vbUluOiB0cyA8PCAiem9vbS1pbiI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6Wm9v
bU91dDogdHMgPDwgInpvb20tb3V0IjsgYnJlYWs7CisgICAgY2FzZSBDdXJzb3JUeXBlOjpDb3B5
OiB0cyA8PCAiY29weSI7IGJyZWFrOworICAgIGNhc2UgQ3Vyc29yVHlwZTo6Tm9uZTogdHMgPDwg
Im5vbmUiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCisjaWYgRU5BQkxFKENV
UlNPUl9WSVNJQklMSVRZKQorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Q3Vyc29yVmlzaWJpbGl0eSB2aXNpYmlsaXR5KQoreworICAgIHN3aXRjaCAodmlzaWJpbGl0eSkg
eworICAgIGNhc2UgQ3Vyc29yVmlzaWJpbGl0eTo6QXV0bzogdHMgPDwgImF1dG8iOyBicmVhazsK
KyAgICBjYXNlIEN1cnNvclZpc2liaWxpdHk6OkF1dG9IaWRlOiB0cyA8PCAiYXV0b2hpZGUiOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorI2VuZGlmCisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIERpc3BsYXlUeXBlIGRpc3BsYXkpCit7CisgICAgc3dp
dGNoIChkaXNwbGF5KSB7CisgICAgY2FzZSBEaXNwbGF5VHlwZTo6SW5saW5lOiB0cyA8PCAiaW5s
aW5lIjsgYnJlYWs7CisgICAgY2FzZSBEaXNwbGF5VHlwZTo6QmxvY2s6IHRzIDw8ICJibG9jayI7
IGJyZWFrOworICAgIGNhc2UgRGlzcGxheVR5cGU6Okxpc3RJdGVtOiB0cyA8PCAibGlzdC1pdGVt
IjsgYnJlYWs7CisgICAgY2FzZSBEaXNwbGF5VHlwZTo6Q29tcGFjdDogdHMgPDwgImNvbXBhY3Qi
OyBicmVhazsKKyAgICBjYXNlIERpc3BsYXlUeXBlOjpJbmxpbmVCbG9jazogdHMgPDwgImlubGlu
ZS1ibG9jayI7IGJyZWFrOworICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlOiB0cyA8PCAidGFi
bGUiOyBicmVhazsKKyAgICBjYXNlIERpc3BsYXlUeXBlOjpJbmxpbmVUYWJsZTogdHMgPDwgImlu
bGluZS10YWJsZSI7IGJyZWFrOworICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlUm93R3JvdXA6
IHRzIDw8ICJ0YWJsZS1yb3ctZ3JvdXAiOyBicmVhazsKKyAgICBjYXNlIERpc3BsYXlUeXBlOjpU
YWJsZUhlYWRlckdyb3VwOiB0cyA8PCAidGFibGUtaGVhZGVyLWdyb3VwIjsgYnJlYWs7CisgICAg
Y2FzZSBEaXNwbGF5VHlwZTo6VGFibGVGb290ZXJHcm91cDogdHMgPDwgInRhYmxlLWZvb3Rlci1n
cm91cCI7IGJyZWFrOworICAgIGNhc2UgRGlzcGxheVR5cGU6OlRhYmxlUm93OiB0cyA8PCAidGFi
bGUtcm93IjsgYnJlYWs7CisgICAgY2FzZSBEaXNwbGF5VHlwZTo6VGFibGVDb2x1bW5Hcm91cDog
dHMgPDwgInRhYmxlLWNvbHVtbi1ncm91cCI7IGJyZWFrOworICAgIGNhc2UgRGlzcGxheVR5cGU6
OlRhYmxlQ29sdW1uOiB0cyA8PCAidGFibGUtY29sdW1uIjsgYnJlYWs7CisgICAgY2FzZSBEaXNw
bGF5VHlwZTo6VGFibGVDZWxsOiB0cyA8PCAidGFibGUtY2VsbCI7IGJyZWFrOworICAgIGNhc2Ug
RGlzcGxheVR5cGU6OlRhYmxlQ2FwdGlvbjogdHMgPDwgInRhYmxlLWNhcHRpb24iOyBicmVhazsK
KyAgICBjYXNlIERpc3BsYXlUeXBlOjpCb3g6IHRzIDw8ICJib3giOyBicmVhazsKKyAgICBjYXNl
IERpc3BsYXlUeXBlOjpJbmxpbmVCb3g6IHRzIDw8ICJpbmxpbmUtYm94IjsgYnJlYWs7CisgICAg
Y2FzZSBEaXNwbGF5VHlwZTo6RmxleDogdHMgPDwgImZsZXgiOyBicmVhazsKKyAgICBjYXNlIERp
c3BsYXlUeXBlOjpXZWJLaXRGbGV4OiB0cyA8PCAid2ViLWtpdC1mbGV4IjsgYnJlYWs7CisgICAg
Y2FzZSBEaXNwbGF5VHlwZTo6SW5saW5lRmxleDogdHMgPDwgImlubGluZS1mbGV4IjsgYnJlYWs7
CisgICAgY2FzZSBEaXNwbGF5VHlwZTo6V2ViS2l0SW5saW5lRmxleDogdHMgPDwgIndlYi1raXQt
aW5saW5lLWZsZXgiOyBicmVhazsKKyAgICBjYXNlIERpc3BsYXlUeXBlOjpDb250ZW50czogdHMg
PDwgImNvbnRlbnRzIjsgYnJlYWs7CisgICAgY2FzZSBEaXNwbGF5VHlwZTo6R3JpZDogdHMgPDwg
ImdyaWQiOyBicmVhazsKKyAgICBjYXNlIERpc3BsYXlUeXBlOjpJbmxpbmVHcmlkOiB0cyA8PCAi
aW5saW5lLWdyaWQiOyBicmVhazsKKyAgICBjYXNlIERpc3BsYXlUeXBlOjpGbG93Um9vdDogdHMg
PDwgImZsb3ctcm9vdCI7IGJyZWFrOworICAgIGNhc2UgRGlzcGxheVR5cGU6Ok5vbmU6IHRzIDw8
ICJub25lIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgRWRnZSBlZGdlKQoreworICAgIHN3aXRjaCAoZWRn
ZSkgeworICAgIGNhc2UgRWRnZTo6VG9wOiB0cyA8PCAidG9wIjsgYnJlYWs7CisgICAgY2FzZSBF
ZGdlOjpSaWdodDogdHMgPDwgInJpZ2h0IjsgYnJlYWs7CisgICAgY2FzZSBFZGdlOjpCb3R0b206
IHRzIDw8ICJib3R0b20iOyBicmVhazsKKyAgICBjYXNlIEVkZ2U6OkxlZnQ6IHRzIDw8ICJsZWZ0
IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgRW1wdHlDZWxsIGVtcHR5Q2VsbCkKK3sKKyAgICBzd2l0Y2gg
KGVtcHR5Q2VsbCkgeworICAgIGNhc2UgRW1wdHlDZWxsOjpTaG93OiB0cyA8PCAic2hvdyI7IGJy
ZWFrOworICAgIGNhc2UgRW1wdHlDZWxsOjpIaWRlOiB0cyA8PCAiaGlkZSI7IGJyZWFrOwogICAg
IH0KLSAgICAKICAgICByZXR1cm4gdHM7CiB9CiAKQEAgLTk1LDI3ICs1MDMsODE5IEBAIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEZpbGxSZXBlYXQgcmVwZWF0KQogICAg
IGNhc2UgRmlsbFJlcGVhdDo6Um91bmQ6IHRzIDw8ICJyb3VuZCI7IGJyZWFrOwogICAgIGNhc2Ug
RmlsbFJlcGVhdDo6U3BhY2U6IHRzIDw8ICJzcGFjZSI7IGJyZWFrOwogICAgIH0KKyAgICByZXR1
cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEZpbGxT
aXplVHlwZSBzaXplVHlwZSkKK3sKKyAgICBzd2l0Y2ggKHNpemVUeXBlKSB7CisgICAgY2FzZSBG
aWxsU2l6ZVR5cGU6OkNvbnRhaW46IHRzIDw8ICJjb250YWluIjsgYnJlYWs7CisgICAgY2FzZSBG
aWxsU2l6ZVR5cGU6OkNvdmVyOiB0cyA8PCAiY292ZXIiOyBicmVhazsKKyAgICBjYXNlIEZpbGxT
aXplVHlwZTo6U2l6ZTogdHMgPDwgInNpemUtbGVuZ3RoIjsgYnJlYWs7CisgICAgY2FzZSBGaWxs
U2l6ZVR5cGU6Ok5vbmU6IHRzIDw8ICJzaXplLW5vbmUiOyBicmVhazsKKyAgICB9CisgICAgCisg
ICAgcmV0dXJuIHRzOworfQogCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBGbGV4RGlyZWN0aW9uIGZsZXhEaXJlY3Rpb24pCit7CisgICAgc3dpdGNoIChmbGV4RGlyZWN0
aW9uKSB7CisgICAgY2FzZSBGbGV4RGlyZWN0aW9uOjpSb3c6IHRzIDw8ICJyb3ciOyBicmVhazsK
KyAgICBjYXNlIEZsZXhEaXJlY3Rpb246OlJvd1JldmVyc2U6IHRzIDw8ICJyb3ctcmV2ZXJzZSI7
IGJyZWFrOworICAgIGNhc2UgRmxleERpcmVjdGlvbjo6Q29sdW1uOiB0cyA8PCAiY29sdW1uIjsg
YnJlYWs7CisgICAgY2FzZSBGbGV4RGlyZWN0aW9uOjpDb2x1bW5SZXZlcnNlOiB0cyA8PCAiY29s
dW1uLXJldmVyc2UiOyBicmVhazsKKyAgICB9CiAgICAgcmV0dXJuIHRzOwogfQogCi1UZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBNYXNrU291cmNlVHlwZSBtYXNrU291cmNl
KQorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgRmxleFdyYXAgZmxleFdy
YXApCiB7Ci0gICAgc3dpdGNoIChtYXNrU291cmNlKSB7Ci0gICAgY2FzZSBNYXNrU291cmNlVHlw
ZTo6QWxwaGE6IHRzIDw8ICJhbHBoYSI7IGJyZWFrOwotICAgIGNhc2UgTWFza1NvdXJjZVR5cGU6
Okx1bWluYW5jZTogdHMgPDwgImx1bWluYW5jZSI7IGJyZWFrOworICAgIHN3aXRjaCAoZmxleFdy
YXApIHsKKyAgICBjYXNlIEZsZXhXcmFwOjpOb1dyYXA6IHRzIDw8ICJuby13cmFwIjsgYnJlYWs7
CisgICAgY2FzZSBGbGV4V3JhcDo6V3JhcDogdHMgPDwgIndyYXAiOyBicmVhazsKKyAgICBjYXNl
IEZsZXhXcmFwOjpSZXZlcnNlOiB0cyA8PCAicmV2ZXJzZSI7IGJyZWFrOwogICAgIH0KKyAgICBy
ZXR1cm4gdHM7Cit9CiAKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEZs
b2F0IGZsb2F0aW5nKQoreworICAgIHN3aXRjaCAoZmxvYXRpbmcpIHsKKyAgICBjYXNlIEZsb2F0
OjpObzogdHMgPDwgIm5vbmUiOyBicmVhazsKKyAgICBjYXNlIEZsb2F0OjpMZWZ0OiB0cyA8PCAi
bGVmdCI7IGJyZWFrOworICAgIGNhc2UgRmxvYXQ6OlJpZ2h0OiB0cyA8PCAicmlnaHQiOyBicmVh
azsKKyAgICB9CiAgICAgcmV0dXJuIHRzOwogfQogCi1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBFZGdlIGVkZ2UpCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBHcmlkQXV0b0Zsb3cgZ3JpZEF1dG9GbG93KQogewotICAgIHN3aXRjaCAoZWRnZSkg
ewotICAgIGNhc2UgRWRnZTo6VG9wOiB0cyA8PCAidG9wIjsgYnJlYWs7Ci0gICAgY2FzZSBFZGdl
OjpSaWdodDogdHMgPDwgInJpZ2h0IjsgYnJlYWs7Ci0gICAgY2FzZSBFZGdlOjpCb3R0b206IHRz
IDw8ICJib3R0b20iOyBicmVhazsKLSAgICBjYXNlIEVkZ2U6OkxlZnQ6IHRzIDw8ICJsZWZ0Ijsg
YnJlYWs7CisgICAgc3dpdGNoIChncmlkQXV0b0Zsb3cpIHsKKyAgICBjYXNlIEF1dG9GbG93Um93
OiB0cyA8PCAicm93IjsgYnJlYWs7CisgICAgY2FzZSBBdXRvRmxvd0NvbHVtbjogdHMgPDwgImNv
bHVtbiI7IGJyZWFrOworICAgIGNhc2UgQXV0b0Zsb3dSb3dEZW5zZTogdHMgPDwgInJvdy1kZW5z
ZSI7IGJyZWFrOworICAgIGNhc2UgQXV0b0Zsb3dDb2x1bW5EZW5zZTogdHMgPDwgImNvbHVtbi1k
ZW5zZSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEhhbmdpbmdQdW5jdHVhdGlvbiBwdW5jdHVhdGlvbikK
K3sKKyAgICBzd2l0Y2ggKHB1bmN0dWF0aW9uKSB7CisgICAgY2FzZSBIYW5naW5nUHVuY3R1YXRp
b246Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAgY2FzZSBIYW5naW5nUHVuY3R1YXRp
b246OkZpcnN0OiB0cyA8PCAiZmlyc3QiOyBicmVhazsKKyAgICBjYXNlIEhhbmdpbmdQdW5jdHVh
dGlvbjo6TGFzdDogdHMgPDwgImxhc3QiOyBicmVhazsKKyAgICBjYXNlIEhhbmdpbmdQdW5jdHVh
dGlvbjo6QWxsb3dFbmQ6IHRzIDw8ICJhbGxvdy1lbmQiOyBicmVhazsKKyAgICBjYXNlIEhhbmdp
bmdQdW5jdHVhdGlvbjo6Rm9yY2VFbmQ6IHRzIDw8ICJmb3JjZS1lbmQiOyBicmVhazsKKyAgICB9
CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBIeXBoZW5zIGh5cGhlbnMpCit7CisgICAgc3dpdGNoIChoeXBoZW5zKSB7CisgICAgY2Fz
ZSBIeXBoZW5zOjpOb25lOiB0cyA8PCAibm9uZSI7IGJyZWFrOworICAgIGNhc2UgSHlwaGVuczo6
TWFudWFsOiB0cyA8PCAibWFudWFsIjsgYnJlYWs7CisgICAgY2FzZSBIeXBoZW5zOjpBdXRvOiB0
cyA8PCAiYXV0byI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEltYWdlUmVuZGVyaW5nIGltYWdlUmVuZGVy
aW5nKQoreworICAgIHN3aXRjaCAoaW1hZ2VSZW5kZXJpbmcpIHsKKyAgICBjYXNlIEltYWdlUmVu
ZGVyaW5nOjpBdXRvOiB0cyA8PCAiYXV0byI7IGJyZWFrOworICAgIGNhc2UgSW1hZ2VSZW5kZXJp
bmc6Ok9wdGltaXplU3BlZWQ6IHRzIDw8ICJvcHRpbWl6ZVNwZWVkIjsgYnJlYWs7CisgICAgY2Fz
ZSBJbWFnZVJlbmRlcmluZzo6T3B0aW1pemVRdWFsaXR5OiB0cyA8PCAib3B0aW1pemVRdWFsaXR5
IjsgYnJlYWs7CisgICAgY2FzZSBJbWFnZVJlbmRlcmluZzo6Q3Jpc3BFZGdlczogdHMgPDwgImNy
aXNwRWRnZXMiOyBicmVhazsKKyAgICBjYXNlIEltYWdlUmVuZGVyaW5nOjpQaXhlbGF0ZWQ6IHRz
IDw8ICJwaXhlbGF0ZWQiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJbnNpZGVMaW5rIGluc2lkZSkKK3sK
KyAgICBzd2l0Y2ggKGluc2lkZSkgeworICAgIGNhc2UgSW5zaWRlTGluazo6Tm90SW5zaWRlOiB0
cyA8PCAibm90LWluc2lkZSI7IGJyZWFrOworICAgIGNhc2UgSW5zaWRlTGluazo6SW5zaWRlVW52
aXNpdGVkOiB0cyA8PCAiaW5zaWRlLXVudmlzaXRlZCI7IGJyZWFrOworICAgIGNhc2UgSW5zaWRl
TGluazo6SW5zaWRlVmlzaXRlZDogdHMgPDwgImluc2lkZS12aXNpdGVkIjsgYnJlYWs7CisgICAg
fQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgSXNvbGF0aW9uIGlzb2xhdGlvbikKK3sKKyAgICBzd2l0Y2ggKGlzb2xhdGlvbikgewor
ICAgIGNhc2UgSXNvbGF0aW9uOjpBdXRvOiB0cyA8PCAiYXV0byI7IGJyZWFrOworICAgIGNhc2Ug
SXNvbGF0aW9uOjpJc29sYXRlOiB0cyA8PCAiaXNvbGF0ZSI7IGJyZWFrOworICAgIH0KKyAgICBy
ZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0
ZW1Qb3NpdGlvbiBwb3NpdGlvbikKK3sKKyAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CisgICAgY2Fz
ZSBJdGVtUG9zaXRpb246OkxlZ2FjeTogdHMgPDwgImxlZ2FjeSI7IGJyZWFrOworICAgIGNhc2Ug
SXRlbVBvc2l0aW9uOjpBdXRvOiB0cyA8PCAiYXV0byI7IGJyZWFrOworICAgIGNhc2UgSXRlbVBv
c2l0aW9uOjpOb3JtYWw6IHRzIDw8ICJub3JtYWwiOyBicmVhazsKKyAgICBjYXNlIEl0ZW1Qb3Np
dGlvbjo6U3RyZXRjaDogdHMgPDwgInN0cmV0Y2giOyBicmVhazsKKyAgICBjYXNlIEl0ZW1Qb3Np
dGlvbjo6QmFzZWxpbmU6IHRzIDw8ICJiYXNlbGluZSI7IGJyZWFrOworICAgIGNhc2UgSXRlbVBv
c2l0aW9uOjpMYXN0QmFzZWxpbmU6IHRzIDw8ICJsYXN0LWJhc2VsaW5lIjsgYnJlYWs7CisgICAg
Y2FzZSBJdGVtUG9zaXRpb246OkNlbnRlcjogdHMgPDwgImNlbnRlciI7IGJyZWFrOworICAgIGNh
c2UgSXRlbVBvc2l0aW9uOjpTdGFydDogdHMgPDwgInN0YXJ0IjsgYnJlYWs7CisgICAgY2FzZSBJ
dGVtUG9zaXRpb246OkVuZDogdHMgPDwgImVuZCI7IGJyZWFrOworICAgIGNhc2UgSXRlbVBvc2l0
aW9uOjpTZWxmU3RhcnQ6IHRzIDw8ICJzZWxmLXN0YXJ0IjsgYnJlYWs7CisgICAgY2FzZSBJdGVt
UG9zaXRpb246OlNlbGZFbmQ6IHRzIDw8ICJzZWxmLWVuZCI7IGJyZWFrOworICAgIGNhc2UgSXRl
bVBvc2l0aW9uOjpGbGV4U3RhcnQ6IHRzIDw8ICJmbGV4LXN0YXJ0IjsgYnJlYWs7CisgICAgY2Fz
ZSBJdGVtUG9zaXRpb246OkZsZXhFbmQ6IHRzIDw8ICJmbGV4LWVuZCI7IGJyZWFrOworICAgIGNh
c2UgSXRlbVBvc2l0aW9uOjpMZWZ0OiB0cyA8PCAibGVmdCI7IGJyZWFrOworICAgIGNhc2UgSXRl
bVBvc2l0aW9uOjpSaWdodDogdHMgPDwgInJpZ2h0IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVy
biB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVBv
c2l0aW9uVHlwZSBwb3NpdGlvblR5cGUpCit7CisgICAgc3dpdGNoIChwb3NpdGlvblR5cGUpIHsK
KyAgICBjYXNlIEl0ZW1Qb3NpdGlvblR5cGU6Ok5vbkxlZ2FjeTogdHMgPDwgIm5vbi1sZWdhY3ki
OyBicmVhazsKKyAgICBjYXNlIEl0ZW1Qb3NpdGlvblR5cGU6OkxlZ2FjeTogdHMgPDwgImxlZ2Fj
eSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIExpbmVBbGlnbiBhbGlnbikKK3sKKyAgICBzd2l0Y2ggKGFs
aWduKSB7CisgICAgY2FzZSBMaW5lQWxpZ246Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7Cisg
ICAgY2FzZSBMaW5lQWxpZ246OkVkZ2VzOiB0cyA8PCAiZWRnZXMiOyBicmVhazsKKyAgICB9Cisg
ICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBMaW5lQnJlYWsgbGluZUJyZWFrKQoreworICAgIHN3aXRjaCAobGluZUJyZWFrKSB7CisgICAg
Y2FzZSBMaW5lQnJlYWs6OkF1dG86IHRzIDw8ICJhdXRvIjsgYnJlYWs7CisgICAgY2FzZSBMaW5l
QnJlYWs6Okxvb3NlOiB0cyA8PCAibG9vc2UiOyBicmVhazsKKyAgICBjYXNlIExpbmVCcmVhazo6
Tm9ybWFsOiB0cyA8PCAibm9ybWFsIjsgYnJlYWs7CisgICAgY2FzZSBMaW5lQnJlYWs6OlN0cmlj
dDogdHMgPDwgInN0cmljdCI7IGJyZWFrOworICAgIGNhc2UgTGluZUJyZWFrOjpBZnRlcldoaXRl
U3BhY2U6IHRzIDw8ICJhZnRlci13aGl0ZVNwYWNlIjsgYnJlYWs7CisgICAgY2FzZSBMaW5lQnJl
YWs6OkFueXdoZXJlOiB0cyA8PCAiYW55d2hlcmUiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJu
IHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBMaW5lU25h
cCBsaW5lU25hcCkKK3sKKyAgICBzd2l0Y2ggKGxpbmVTbmFwKSB7CisgICAgY2FzZSBMaW5lU25h
cDo6Tm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsKKyAgICBjYXNlIExpbmVTbmFwOjpCYXNlbGlu
ZTogdHMgPDwgImJhc2VsaW5lIjsgYnJlYWs7CisgICAgY2FzZSBMaW5lU25hcDo6Q29udGFpbjog
dHMgPDwgImNvbnRhaW4iOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBMaXN0U3R5bGVQb3NpdGlvbiBwb3Np
dGlvbikKK3sKKyAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CisgICAgY2FzZSBMaXN0U3R5bGVQb3Np
dGlvbjo6T3V0c2lkZTogdHMgPDwgIm91dHNpZGUiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHls
ZVBvc2l0aW9uOjpJbnNpZGU6IHRzIDw8ICJpbnNpZGUiOyBicmVhazsKKyAgICB9CisgICAgcmV0
dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBMaXN0
U3R5bGVUeXBlIHN0eWxlVHlwZSkKK3sKKyAgICBzd2l0Y2ggKHN0eWxlVHlwZSkgeworICAgIGNh
c2UgTGlzdFN0eWxlVHlwZTo6RGlzYzogdHMgPDwgImRpc2MiOyBicmVhazsKKyAgICBjYXNlIExp
c3RTdHlsZVR5cGU6OkNpcmNsZTogdHMgPDwgImNpcmNsZSI7IGJyZWFrOworICAgIGNhc2UgTGlz
dFN0eWxlVHlwZTo6U3F1YXJlOiB0cyA8PCAic3F1YXJlIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0
U3R5bGVUeXBlOjpEZWNpbWFsOiB0cyA8PCAiZGVjaW1hbCI7IGJyZWFrOworICAgIGNhc2UgTGlz
dFN0eWxlVHlwZTo6RGVjaW1hbExlYWRpbmdaZXJvOiB0cyA8PCAiZGVjaW1hbC1sZWFkaW5nLXpl
cm8iOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OkFyYWJpY0luZGljOiB0cyA8PCAi
YXJhYmljLWluZGljIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpCaW5hcnk6IHRz
IDw8ICJiaW5hcnkiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OkJlbmdhbGk6IHRz
IDw8ICJiZW5nYWxpIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpDYW1ib2RpYW46
IHRzIDw8ICJjYW1ib2RpYW4iOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OktobWVy
OiB0cyA8PCAia2htZXIiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OkRldmFuYWdh
cmk6IHRzIDw8ICJkZXZhbmFnYXJpIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpH
dWphcmF0aTogdHMgPDwgImd1amFyYXRpIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBl
OjpHdXJtdWtoaTogdHMgPDwgImd1cm11a2hpIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVU
eXBlOjpLYW5uYWRhOiB0cyA8PCAia2FubmFkYSI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxl
VHlwZTo6TG93ZXJIZXhhZGVjaW1hbDogdHMgPDwgImxvd2VyLWhleGFkZWNpbWFsIjsgYnJlYWs7
CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpMYW86IHRzIDw8ICJsYW8iOyBicmVhazsKKyAgICBj
YXNlIExpc3RTdHlsZVR5cGU6Ok1hbGF5YWxhbTogdHMgPDwgIm1hbGF5YWxhbSI7IGJyZWFrOwor
ICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6TW9uZ29saWFuOiB0cyA8PCAibW9uZ29saWFuIjsgYnJl
YWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpNeWFubWFyOiB0cyA8PCAibXlhbm1hciI7IGJy
ZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6T2N0YWw6IHRzIDw8ICJvY3RhbCI7IGJyZWFr
OworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6T3JpeWE6IHRzIDw8ICJvcml5YSI7IGJyZWFrOwor
ICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6UGVyc2lhbjogdHMgPDwgInBlcnNpYW4iOyBicmVhazsK
KyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OlVyZHU6IHRzIDw8ICJ1cmR1IjsgYnJlYWs7CisgICAg
Y2FzZSBMaXN0U3R5bGVUeXBlOjpUZWx1Z3U6IHRzIDw8ICJ0ZWx1Z3UiOyBicmVhazsKKyAgICBj
YXNlIExpc3RTdHlsZVR5cGU6OlRpYmV0YW46IHRzIDw8ICJ0aWJldGFuIjsgYnJlYWs7CisgICAg
Y2FzZSBMaXN0U3R5bGVUeXBlOjpUaGFpOiB0cyA8PCAidGhhaSI7IGJyZWFrOworICAgIGNhc2Ug
TGlzdFN0eWxlVHlwZTo6VXBwZXJIZXhhZGVjaW1hbDogdHMgPDwgInVwcGVyLWhleGFkZWNpbWFs
IjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpMb3dlclJvbWFuOiB0cyA8PCAibG93
ZXItcm9tYW4iOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OlVwcGVyUm9tYW46IHRz
IDw8ICJ1cHBlci1yb21hbiI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6TG93ZXJH
cmVlazogdHMgPDwgImxvd2VyLWdyZWVrIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBl
OjpMb3dlckFscGhhOiB0cyA8PCAibG93ZXItYWxwaGEiOyBicmVhazsKKyAgICBjYXNlIExpc3RT
dHlsZVR5cGU6Okxvd2VyTGF0aW46IHRzIDw8ICJsb3dlci1sYXRpbiI7IGJyZWFrOworICAgIGNh
c2UgTGlzdFN0eWxlVHlwZTo6VXBwZXJBbHBoYTogdHMgPDwgInVwcGVyLWFscGhhIjsgYnJlYWs7
CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpVcHBlckxhdGluOiB0cyA8PCAidXBwZXItbGF0aW4i
OyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OkFmYXI6IHRzIDw8ICJhZmFyIjsgYnJl
YWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpFdGhpb3BpY0hhbGVoYW1lQWFFdDogdHMgPDwg
ImV0aGlvcGljLWhhbGVoYW1lLWFhLWV0IjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBl
OjpFdGhpb3BpY0hhbGVoYW1lQWFFcjogdHMgPDwgImV0aGlvcGljLWhhbGVoYW1lLWFhLWVyIjsg
YnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpBbWhhcmljOiB0cyA8PCAiYW1oYXJpYyI7
IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6RXRoaW9waWNIYWxlaGFtZUFtRXQ6IHRz
IDw8ICJldGhpb3BpYy1oYWxlaGFtZS1hbS1ldCI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxl
VHlwZTo6QW1oYXJpY0FiZWdlZGU6IHRzIDw8ICJhbWhhcmljLWFiZWdlZGUiOyBicmVhazsKKyAg
ICBjYXNlIExpc3RTdHlsZVR5cGU6OkV0aGlvcGljQWJlZ2VkZUFtRXQ6IHRzIDw8ICJldGhpb3Bp
Yy1hYmVnZWRlLWFtLWV0IjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpDamtFYXJ0
aGx5QnJhbmNoOiB0cyA8PCAiY2prLWVhcnRobHktYnJhbmNoIjsgYnJlYWs7CisgICAgY2FzZSBM
aXN0U3R5bGVUeXBlOjpDamtIZWF2ZW5seVN0ZW06IHRzIDw8ICJjamstaGVhdmVubHktc3RlbSI7
IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6RXRoaW9waWM6IHRzIDw8ICJldGhpb3Bp
YyI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6RXRoaW9waWNIYWxlaGFtZUdlejog
dHMgPDwgImV0aGlvcGljLWhhbGVoYW1lLWdleiI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxl
VHlwZTo6RXRoaW9waWNBYmVnZWRlOiB0cyA8PCAiZXRoaW9waWMtYWJlZ2VkZSI7IGJyZWFrOwor
ICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6RXRoaW9waWNBYmVnZWRlR2V6OiB0cyA8PCAiZXRoaW9w
aWMtYWJlZ2VkZS1nZXoiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6Okhhbmd1bENv
bnNvbmFudDogdHMgPDwgImhhbmd1bC1jb25zb25hbnQiOyBicmVhazsKKyAgICBjYXNlIExpc3RT
dHlsZVR5cGU6Okhhbmd1bDogdHMgPDwgImhhbmd1bCI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0
eWxlVHlwZTo6TG93ZXJOb3J3ZWdpYW46IHRzIDw8ICJsb3dlci1ub3J3ZWdpYW4iOyBicmVhazsK
KyAgICBjYXNlIExpc3RTdHlsZVR5cGU6Ok9yb21vOiB0cyA8PCAib3JvbW8iOyBicmVhazsKKyAg
ICBjYXNlIExpc3RTdHlsZVR5cGU6OkV0aGlvcGljSGFsZWhhbWVPbUV0OiB0cyA8PCAiZXRoaW9w
aWMtaGFsZWhhbWUtb20tZXQiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OlNpZGFt
YTogdHMgPDwgInNpZGFtYSI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6RXRoaW9w
aWNIYWxlaGFtZVNpZEV0OiB0cyA8PCAiZXRoaW9waWMtaGFsZWhhbWUtc2lkLWV0IjsgYnJlYWs7
CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpTb21hbGk6IHRzIDw8ICJzb21hbGkiOyBicmVhazsK
KyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OkV0aGlvcGljSGFsZWhhbWVTb0V0OiB0cyA8PCAiZXRo
aW9waWMtaGFsZWhhbWUtc28tZXQiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OlRp
Z3JlOiB0cyA8PCAidGlncmUiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OkV0aGlv
cGljSGFsZWhhbWVUaWc6IHRzIDw8ICJldGhpb3BpYy1oYWxlaGFtZS10aWciOyBicmVhazsKKyAg
ICBjYXNlIExpc3RTdHlsZVR5cGU6OlRpZ3JpbnlhRXI6IHRzIDw8ICJ0aWdyaW55YS1lciI7IGJy
ZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6RXRoaW9waWNIYWxlaGFtZVRpRXI6IHRzIDw8
ICJldGhpb3BpYy1oYWxlaGFtZS10aS1lciI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlw
ZTo6VGlncmlueWFFckFiZWdlZGU6IHRzIDw8ICJ0aWdyaW55YS1lci1hYmVnZWRlIjsgYnJlYWs7
CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpFdGhpb3BpY0FiZWdlZGVUaUVyOiB0cyA8PCAiZXRo
aW9waWMtYWJlZ2VkZS10aS1lciI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6VGln
cmlueWFFdDogdHMgPDwgInRpZ3JpbnlhLWV0IjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVU
eXBlOjpFdGhpb3BpY0hhbGVoYW1lVGlFdDogdHMgPDwgImV0aGlvcGljLWhhbGVoYW1lLXRpLWV0
IjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpUaWdyaW55YUV0QWJlZ2VkZTogdHMg
PDwgInRpZ3JpbnlhLWV0LWFiZWdlZGUiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6
OkV0aGlvcGljQWJlZ2VkZVRpRXQ6IHRzIDw8ICJldGhpb3BpYy1hYmVnZWRlLXRpLWV0IjsgYnJl
YWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpVcHBlckdyZWVrOiB0cyA8PCAidXBwZXItZ3Jl
ZWsiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6OlVwcGVyTm9yd2VnaWFuOiB0cyA8
PCAidXBwZXItbm9yd2VnaWFuIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpBc3Rl
cmlza3M6IHRzIDw8ICJhc3Rlcmlza3MiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6
OkZvb3Rub3RlczogdHMgPDwgImZvb3Rub3RlcyI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxl
VHlwZTo6SGVicmV3OiB0cyA8PCAiaGVicmV3IjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVU
eXBlOjpBcm1lbmlhbjogdHMgPDwgImFybWVuaWFuIjsgYnJlYWs7CisgICAgY2FzZSBMaXN0U3R5
bGVUeXBlOjpMb3dlckFybWVuaWFuOiB0cyA8PCAibG93ZXItYXJtZW5pYW4iOyBicmVhazsKKyAg
ICBjYXNlIExpc3RTdHlsZVR5cGU6OlVwcGVyQXJtZW5pYW46IHRzIDw8ICJ1cHBlci1hcm1lbmlh
biI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6R2VvcmdpYW46IHRzIDw8ICJnZW9y
Z2lhbiI7IGJyZWFrOworICAgIGNhc2UgTGlzdFN0eWxlVHlwZTo6Q0pLSWRlb2dyYXBoaWM6IHRz
IDw8ICJjamstaWRlb2dyYXBoaWMiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6Okhp
cmFnYW5hOiB0cyA8PCAiaGlyYWdhbmEiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5cGU6
OkthdGFrYW5hOiB0cyA8PCAia2F0YWthbmEiOyBicmVhazsKKyAgICBjYXNlIExpc3RTdHlsZVR5
cGU6OkhpcmFnYW5hSXJvaGE6IHRzIDw8ICJoaXJhZ2FuYS1pcm9oYSI7IGJyZWFrOworICAgIGNh
c2UgTGlzdFN0eWxlVHlwZTo6S2F0YWthbmFJcm9oYTogdHMgPDwgImthdGFrYW5hLWlyb2hhIjsg
YnJlYWs7CisgICAgY2FzZSBMaXN0U3R5bGVUeXBlOjpOb25lOiB0cyA8PCAibm9uZSI7IGJyZWFr
OworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIE1hcmdpbkNvbGxhcHNlIGNvbGxhcHNlKQoreworICAgIHN3aXRjaCAoY29s
bGFwc2UpIHsKKyAgICBjYXNlIE1hcmdpbkNvbGxhcHNlOjpDb2xsYXBzZTogdHMgPDwgImNvbGxh
cHNlIjsgYnJlYWs7CisgICAgY2FzZSBNYXJnaW5Db2xsYXBzZTo6U2VwYXJhdGU6IHRzIDw8ICJz
ZXBhcmF0ZSI7IGJyZWFrOworICAgIGNhc2UgTWFyZ2luQ29sbGFwc2U6OkRpc2NhcmQ6IHRzIDw8
ICJkaXNjYXJkIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgTWFycXVlZUJlaGF2aW9yIG1hcnF1ZWVCZWhh
dmlvcikKK3sKKyAgICBzd2l0Y2ggKG1hcnF1ZWVCZWhhdmlvcikgeworICAgIGNhc2UgTWFycXVl
ZUJlaGF2aW9yOjpOb25lOiB0cyA8PCAibm9uZSI7IGJyZWFrOworICAgIGNhc2UgTWFycXVlZUJl
aGF2aW9yOjpTY3JvbGw6IHRzIDw8ICJzY3JvbGwiOyBicmVhazsKKyAgICBjYXNlIE1hcnF1ZWVC
ZWhhdmlvcjo6U2xpZGU6IHRzIDw8ICJzbGlkZSI7IGJyZWFrOworICAgIGNhc2UgTWFycXVlZUJl
aGF2aW9yOjpBbHRlcm5hdGU6IHRzIDw8ICJhbHRlcm5hdGUiOyBicmVhazsKKyAgICB9CisgICAg
cmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBN
YXJxdWVlRGlyZWN0aW9uIG1hcnF1ZWVEaXJlY3Rpb24pCit7CisgICAgc3dpdGNoIChtYXJxdWVl
RGlyZWN0aW9uKSB7CisgICAgY2FzZSBNYXJxdWVlRGlyZWN0aW9uOjpBdXRvOiB0cyA8PCAiYXV0
byI7IGJyZWFrOworICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6TGVmdDogdHMgPDwgImxlZnQi
OyBicmVhazsKKyAgICBjYXNlIE1hcnF1ZWVEaXJlY3Rpb246OlJpZ2h0OiB0cyA8PCAicmlnaHQi
OyBicmVhazsKKyAgICBjYXNlIE1hcnF1ZWVEaXJlY3Rpb246OlVwOiB0cyA8PCAidXAiOyBicmVh
azsKKyAgICBjYXNlIE1hcnF1ZWVEaXJlY3Rpb246OkRvd246IHRzIDw8ICJkb3duIjsgYnJlYWs7
CisgICAgY2FzZSBNYXJxdWVlRGlyZWN0aW9uOjpGb3J3YXJkOiB0cyA8PCAiZm9yd2FyZCI7IGJy
ZWFrOworICAgIGNhc2UgTWFycXVlZURpcmVjdGlvbjo6QmFja3dhcmQ6IHRzIDw8ICJiYWNrd2Fy
ZCI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIE1hc2tTb3VyY2VUeXBlIG1hc2tTb3VyY2UpCit7CisgICAg
c3dpdGNoIChtYXNrU291cmNlKSB7CisgICAgY2FzZSBNYXNrU291cmNlVHlwZTo6QWxwaGE6IHRz
IDw8ICJhbHBoYSI7IGJyZWFrOworICAgIGNhc2UgTWFza1NvdXJjZVR5cGU6Okx1bWluYW5jZTog
dHMgPDwgImx1bWluYW5jZSI7IGJyZWFrOworICAgIH0KKworICAgIHJldHVybiB0czsKK30KKwor
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgTkJTUE1vZGUgbW9kZSkKK3sK
KyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIE5CU1BNb2RlOjpOb3JtYWw6IHRzIDw8ICJu
b3JtYWwiOyBicmVhazsKKyAgICBjYXNlIE5CU1BNb2RlOjpTcGFjZTogdHMgPDwgInNwYWNlIjsg
YnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgT2JqZWN0Rml0IG9iamVjdEZpdCkKK3sKKyAgICBzd2l0Y2ggKG9i
amVjdEZpdCkgeworICAgIGNhc2UgT2JqZWN0Rml0OjpGaWxsOiB0cyA8PCAiZmlsbCI7IGJyZWFr
OworICAgIGNhc2UgT2JqZWN0Rml0OjpDb250YWluOiB0cyA8PCAiY29udGFpbiI7IGJyZWFrOwor
ICAgIGNhc2UgT2JqZWN0Rml0OjpDb3ZlcjogdHMgPDwgImNvdmVyIjsgYnJlYWs7CisgICAgY2Fz
ZSBPYmplY3RGaXQ6Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAgY2FzZSBPYmplY3RG
aXQ6OlNjYWxlRG93bjogdHMgPDwgInNjYWxlLWRvd24iOyBicmVhazsKKyAgICB9CisgICAgcmV0
dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBPcmRl
ciBvcmRlcikKK3sKKyAgICBzd2l0Y2ggKG9yZGVyKSB7CisgICAgY2FzZSBPcmRlcjo6TG9naWNh
bDogdHMgPDwgImxvZ2ljYWwiOyBicmVhazsKKyAgICBjYXNlIE9yZGVyOjpWaXN1YWw6IHRzIDw8
ICJ2aXN1YWwiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBPdmVyZmxvdyBvdmVyZmxvdykKK3sKKyAgICBz
d2l0Y2ggKG92ZXJmbG93KSB7CisgICAgY2FzZSBPdmVyZmxvdzo6VmlzaWJsZTogdHMgPDwgInZp
c2libGUiOyBicmVhazsKKyAgICBjYXNlIE92ZXJmbG93OjpIaWRkZW46IHRzIDw8ICJoaWRkZW4i
OyBicmVhazsKKyAgICBjYXNlIE92ZXJmbG93OjpTY3JvbGw6IHRzIDw8ICJzY3JvbGwiOyBicmVh
azsKKyAgICBjYXNlIE92ZXJmbG93OjpBdXRvOiB0cyA8PCAiYXV0byI7IGJyZWFrOworICAgIGNh
c2UgT3ZlcmZsb3c6OlBhZ2VkWDogdHMgPDwgInBhZ2VkLXgiOyBicmVhazsKKyAgICBjYXNlIE92
ZXJmbG93OjpQYWdlZFk6IHRzIDw8ICJwYWdlZC15IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVy
biB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgT3ZlcmZs
b3dBbGlnbm1lbnQgYWxpZ25tZW50KQoreworICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7CisgICAg
Y2FzZSBPdmVyZmxvd0FsaWdubWVudDo6RGVmYXVsdDogdHMgPDwgImRlZmF1bHQiOyBicmVhazsK
KyAgICBjYXNlIE92ZXJmbG93QWxpZ25tZW50OjpVbnNhZmU6IHRzIDw8ICJ1bnNhZmUiOyBicmVh
azsKKyAgICBjYXNlIE92ZXJmbG93QWxpZ25tZW50OjpTYWZlOiB0cyA8PCAic2FmZSI7IGJyZWFr
OworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIE92ZXJmbG93V3JhcCBvdmVyZmxvd1dyYXApCit7CisgICAgc3dpdGNoIChv
dmVyZmxvd1dyYXApIHsKKyAgICBjYXNlIE92ZXJmbG93V3JhcDo6Tm9ybWFsOiB0cyA8PCAibm9y
bWFsIjsgYnJlYWs7CisgICAgY2FzZSBPdmVyZmxvd1dyYXA6OkJyZWFrOiB0cyA8PCAiYnJlYWsi
OyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBQYWludE9yZGVyIHBhaW50T3JkZXIpCit7CisgICAgc3dpdGNo
IChwYWludE9yZGVyKSB7CisgICAgY2FzZSBQYWludE9yZGVyOjpOb3JtYWw6IHRzIDw8ICJub3Jt
YWwiOyBicmVhazsKKyAgICBjYXNlIFBhaW50T3JkZXI6OkZpbGw6IHRzIDw8ICJmaWxsIjsgYnJl
YWs7CisgICAgY2FzZSBQYWludE9yZGVyOjpGaWxsTWFya2VyczogdHMgPDwgImZpbGwgbWFya2Vy
cyI7IGJyZWFrOworICAgIGNhc2UgUGFpbnRPcmRlcjo6U3Ryb2tlOiB0cyA8PCAic3Ryb2tlIjsg
YnJlYWs7CisgICAgY2FzZSBQYWludE9yZGVyOjpTdHJva2VNYXJrZXJzOiB0cyA8PCAic3Ryb2tl
IG1hcmtlcnMiOyBicmVhazsKKyAgICBjYXNlIFBhaW50T3JkZXI6Ok1hcmtlcnM6IHRzIDw8ICJt
YXJrZXJzIjsgYnJlYWs7CisgICAgY2FzZSBQYWludE9yZGVyOjpNYXJrZXJzU3Ryb2tlOiB0cyA8
PCAibWFya2VycyBzdHJva2UiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBQb2ludGVyRXZlbnRzIHBvaW50
ZXJFdmVudHMpCit7CisgICAgc3dpdGNoIChwb2ludGVyRXZlbnRzKSB7CisgICAgY2FzZSBQb2lu
dGVyRXZlbnRzOjpOb25lOiB0cyA8PCAibm9uZSI7IGJyZWFrOworICAgIGNhc2UgUG9pbnRlckV2
ZW50czo6QXV0bzogdHMgPDwgImF1dG8iOyBicmVhazsKKyAgICBjYXNlIFBvaW50ZXJFdmVudHM6
OlN0cm9rZTogdHMgPDwgInN0cm9rZSI7IGJyZWFrOworICAgIGNhc2UgUG9pbnRlckV2ZW50czo6
RmlsbDogdHMgPDwgImZpbGwiOyBicmVhazsKKyAgICBjYXNlIFBvaW50ZXJFdmVudHM6OlBhaW50
ZWQ6IHRzIDw8ICJwYWludGVkIjsgYnJlYWs7CisgICAgY2FzZSBQb2ludGVyRXZlbnRzOjpWaXNp
YmxlOiB0cyA8PCAidmlzaWJsZSI7IGJyZWFrOworICAgIGNhc2UgUG9pbnRlckV2ZW50czo6Vmlz
aWJsZVN0cm9rZTogdHMgPDwgInZpc2libGUtc3Ryb2tlIjsgYnJlYWs7CisgICAgY2FzZSBQb2lu
dGVyRXZlbnRzOjpWaXNpYmxlRmlsbDogdHMgPDwgInZpc2libGUtZmlsbCI7IGJyZWFrOworICAg
IGNhc2UgUG9pbnRlckV2ZW50czo6VmlzaWJsZVBhaW50ZWQ6IHRzIDw8ICJ2aXNpYmxlLXBhaW50
ZWQiOyBicmVhazsKKyAgICBjYXNlIFBvaW50ZXJFdmVudHM6OkFsbDogdHMgPDwgImFsbCI7IGJy
ZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIFBvc2l0aW9uVHlwZSBwb3NpdGlvbikKK3sKKyAgICBzd2l0Y2ggKHBv
c2l0aW9uKSB7CisgICAgY2FzZSBQb3NpdGlvblR5cGU6OlN0YXRpYzogdHMgPDwgInN0YXRpYyI7
IGJyZWFrOworICAgIGNhc2UgUG9zaXRpb25UeXBlOjpSZWxhdGl2ZTogdHMgPDwgInJlbGF0aXZl
IjsgYnJlYWs7CisgICAgY2FzZSBQb3NpdGlvblR5cGU6OkFic29sdXRlOiB0cyA8PCAiYWJzb2x1
dGUiOyBicmVhazsKKyAgICBjYXNlIFBvc2l0aW9uVHlwZTo6U3RpY2t5OiB0cyA8PCAic3RpY2t5
IjsgYnJlYWs7CisgICAgY2FzZSBQb3NpdGlvblR5cGU6OkZpeGVkOiB0cyA8PCAiZml4ZWQiOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBQcmludENvbG9yQWRqdXN0IGNvbG9yQWRqdXN0KQoreworICAgIHN3
aXRjaCAoY29sb3JBZGp1c3QpIHsKKyAgICBjYXNlIFByaW50Q29sb3JBZGp1c3Q6OkVjb25vbXk6
IHRzIDw8ICJlY29ub215IjsgYnJlYWs7CisgICAgY2FzZSBQcmludENvbG9yQWRqdXN0OjpFeGFj
dDogdHMgPDwgImV4YWN0IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgUHNldWRvSWQgcHNldWRvSWQpCit7
CisgICAgc3dpdGNoIChwc2V1ZG9JZCkgeworICAgIGNhc2UgUHNldWRvSWQ6Ok5vbmU6IHRzIDw8
ICJub25lIjsgYnJlYWs7CisgICAgY2FzZSBQc2V1ZG9JZDo6Rmlyc3RMaW5lOiB0cyA8PCAiZmly
c3QtbGluZSI7IGJyZWFrOworICAgIGNhc2UgUHNldWRvSWQ6OkZpcnN0TGV0dGVyOiB0cyA8PCAi
Zmlyc3QtbGV0dGVyIjsgYnJlYWs7CisgICAgY2FzZSBQc2V1ZG9JZDo6TWFya2VyOiB0cyA8PCAi
bWFya2VyIjsgYnJlYWs7CisgICAgY2FzZSBQc2V1ZG9JZDo6QmVmb3JlOiB0cyA8PCAiYmVmb3Jl
IjsgYnJlYWs7CisgICAgY2FzZSBQc2V1ZG9JZDo6QWZ0ZXI6IHRzIDw8ICJhZnRlciI7IGJyZWFr
OworICAgIGNhc2UgUHNldWRvSWQ6OlNlbGVjdGlvbjogdHMgPDwgInNlbGVjdGlvbiI7IGJyZWFr
OworICAgIGNhc2UgUHNldWRvSWQ6OlNjcm9sbGJhcjogdHMgPDwgInNjcm9sbGJhciI7IGJyZWFr
OworICAgIGNhc2UgUHNldWRvSWQ6OlNjcm9sbGJhclRodW1iOiB0cyA8PCAic2Nyb2xsYmFyLXRo
dW1iIjsgYnJlYWs7CisgICAgY2FzZSBQc2V1ZG9JZDo6U2Nyb2xsYmFyQnV0dG9uOiB0cyA8PCAi
c2Nyb2xsYmFyLWJ1dHRvbiI7IGJyZWFrOworICAgIGNhc2UgUHNldWRvSWQ6OlNjcm9sbGJhclRy
YWNrOiB0cyA8PCAic2Nyb2xsYmFyLXRyYWNrIjsgYnJlYWs7CisgICAgY2FzZSBQc2V1ZG9JZDo6
U2Nyb2xsYmFyVHJhY2tQaWVjZTogdHMgPDwgInNjcm9sbGJhci10cmFja3BpZWNlIjsgYnJlYWs7
CisgICAgY2FzZSBQc2V1ZG9JZDo6U2Nyb2xsYmFyQ29ybmVyOiB0cyA8PCAic2Nyb2xsYmFyLWNv
cm5lciI7IGJyZWFrOworICAgIGNhc2UgUHNldWRvSWQ6OlJlc2l6ZXI6IHRzIDw8ICJyZXNpemVy
IjsgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgdHMgPDwgIm90aGVyIjsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgUXVvdGVUeXBlIHF1b3RlVHlwZSkKK3sKKyAgICBzd2l0Y2ggKHF1
b3RlVHlwZSkgeworICAgIGNhc2UgUXVvdGVUeXBlOjpPcGVuUXVvdGU6IHRzIDw8ICJvcGVuIjsg
YnJlYWs7CisgICAgY2FzZSBRdW90ZVR5cGU6OkNsb3NlUXVvdGU6IHRzIDw8ICJjbG9zZSI7IGJy
ZWFrOworICAgIGNhc2UgUXVvdGVUeXBlOjpOb09wZW5RdW90ZTogdHMgPDwgIm5vLW9wZW4iOyBi
cmVhazsKKyAgICBjYXNlIFF1b3RlVHlwZTo6Tm9DbG9zZVF1b3RlOiB0cyA8PCAibm8tY2xvc2Ui
OyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBSZXNpemUgcmVzaXplKQoreworICAgIHN3aXRjaCAocmVzaXpl
KSB7CisgICAgY2FzZSBSZXNpemU6Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAgY2Fz
ZSBSZXNpemU6OkJvdGg6IHRzIDw8ICJib3RoIjsgYnJlYWs7CisgICAgY2FzZSBSZXNpemU6Okhv
cml6b250YWw6IHRzIDw8ICJob3Jpem9udGFsIjsgYnJlYWs7CisgICAgY2FzZSBSZXNpemU6OlZl
cnRpY2FsOiB0cyA8PCAidmVydGljYWwiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOwor
fQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBSdWJ5UG9zaXRpb24g
cG9zaXRpb24pCit7CisgICAgc3dpdGNoIChwb3NpdGlvbikgeworICAgIGNhc2UgUnVieVBvc2l0
aW9uOjpCZWZvcmU6IHRzIDw8ICJiZWZvcmUiOyBicmVhazsKKyAgICBjYXNlIFJ1YnlQb3NpdGlv
bjo6QWZ0ZXI6IHRzIDw8ICJhZnRlciI7IGJyZWFrOworICAgIGNhc2UgUnVieVBvc2l0aW9uOjpJ
bnRlckNoYXJhY3RlcjogdHMgPDwgImludGVyLWNoYXJhY3RlciI7IGJyZWFrOworICAgIH0KKyAg
ICByZXR1cm4gdHM7Cit9CisKKyNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQorVGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgU2Nyb2xsU25hcEF4aXMgYXhpcykKK3sKKyAg
ICBzd2l0Y2ggKGF4aXMpIHsKKyAgICBjYXNlIFNjcm9sbFNuYXBBeGlzOjpYQXhpczogdHMgPDwg
IngtYXhpcyI7IGJyZWFrOworICAgIGNhc2UgU2Nyb2xsU25hcEF4aXM6OllBeGlzOiB0cyA8PCAi
eS1BeGlzIjsgYnJlYWs7CisgICAgY2FzZSBTY3JvbGxTbmFwQXhpczo6QmxvY2s6IHRzIDw8ICJi
bG9jayI7IGJyZWFrOworICAgIGNhc2UgU2Nyb2xsU25hcEF4aXM6OklubGluZTogdHMgPDwgImlu
bGluZSI7IGJyZWFrOworICAgIGNhc2UgU2Nyb2xsU25hcEF4aXM6OkJvdGg6IHRzIDw8ICJib3Ro
IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUgYWxpZ25UeXBlKQor
eworICAgIHN3aXRjaCAoYWxpZ25UeXBlKSB7CisgICAgY2FzZSBTY3JvbGxTbmFwQXhpc0FsaWdu
VHlwZTo6Tm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsKKyAgICBjYXNlIFNjcm9sbFNuYXBBeGlz
QWxpZ25UeXBlOjpTdGFydDogdHMgPDwgInN0YXJ0IjsgYnJlYWs7CisgICAgY2FzZSBTY3JvbGxT
bmFwQXhpc0FsaWduVHlwZTo6Q2VudGVyOiB0cyA8PCAiY2VudGVyIjsgYnJlYWs7CisgICAgY2Fz
ZSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6RW5kOiB0cyA8PCAiZW5kIjsgYnJlYWs7CisgICAg
fQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgU2Nyb2xsU25hcFN0cmljdG5lc3Mgc3RyaWN0bmVzcykKK3sKKyAgICBzd2l0Y2ggKHN0
cmljdG5lc3MpIHsKKyAgICBjYXNlIFNjcm9sbFNuYXBTdHJpY3RuZXNzOjpOb25lOiB0cyA8PCAi
bm9uZSI7IGJyZWFrOworICAgIGNhc2UgU2Nyb2xsU25hcFN0cmljdG5lc3M6OlByb3hpbWl0eTog
dHMgPDwgInByb3hpbWl0eSI7IGJyZWFrOworICAgIGNhc2UgU2Nyb2xsU25hcFN0cmljdG5lc3M6
Ok1hbmRhdG9yeTogdHMgPDwgIm1hbmRhdG9yeSI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4g
dHM7Cit9CisjZW5kaWYKKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
U3BlYWtBcyBzcGVha0FzKQoreworICAgIHN3aXRjaCAoc3BlYWtBcykgeworICAgIGNhc2UgU3Bl
YWtBczo6Tm9ybWFsOiB0cyA8PCAibm9ybWFsIjsgYnJlYWs7CisgICAgY2FzZSBTcGVha0FzOjpT
cGVsbE91dDogdHMgPDwgInNwZWxsLW91dCI7IGJyZWFrOworICAgIGNhc2UgU3BlYWtBczo6RGln
aXRzOiB0cyA8PCAiZGlnaXRzIjsgYnJlYWs7CisgICAgY2FzZSBTcGVha0FzOjpMaXRlcmFsUHVu
Y3R1YXRpb246IHRzIDw8ICJsaXRlcmFsLXB1bmN0dWF0aW9uIjsgYnJlYWs7CisgICAgY2FzZSBT
cGVha0FzOjpOb1B1bmN0dWF0aW9uOiB0cyA8PCAibm8tcHVuY3R1YXRpb24iOyBicmVhazsKKyAg
ICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBTdHlsZURpZmZlcmVuY2UgZGlmZikKK3sKKyAgICBzd2l0Y2ggKGRpZmYpIHsKKyAg
ICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6RXF1YWw6IHRzIDw8ICJlcXVhbCI7IGJyZWFrOworICAg
IGNhc2UgU3R5bGVEaWZmZXJlbmNlOjpSZWNvbXBvc2l0ZUxheWVyOiB0cyA8PCAicmVjb21wb3Np
dGUgbGF5ZXIiOyBicmVhazsKKyAgICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6UmVwYWludDogdHMg
PDwgInJlcGFpbnQiOyBicmVhazsKKyAgICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6UmVwYWludElm
VGV4dE9yQm9yZGVyT3JPdXRsaW5lOiB0cyA8PCAicmVwYWludCBpZiB0ZXh0IG9yIGJvcmRlciBv
ciBvdXRsaW5lIjsgYnJlYWs7CisgICAgY2FzZSBTdHlsZURpZmZlcmVuY2U6OlJlcGFpbnRMYXll
cjogdHMgPDwgInJlcGFpbnQgbGF5ZXIiOyBicmVhazsKKyAgICBjYXNlIFN0eWxlRGlmZmVyZW5j
ZTo6TGF5b3V0UG9zaXRpb25lZE1vdmVtZW50T25seTogdHMgPDwgImxheW91dCBwb3NpdGlvbmVk
IG1vdmVtZW50IG9ubHkiOyBicmVhazsKKyAgICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6U2ltcGxp
ZmllZExheW91dDogdHMgPDwgInNpbXBsaWZpZWQgbGF5b3V0IjsgYnJlYWs7CisgICAgY2FzZSBT
dHlsZURpZmZlcmVuY2U6OlNpbXBsaWZpZWRMYXlvdXRBbmRQb3NpdGlvbmVkTW92ZW1lbnQ6IHRz
IDw8ICJzaW1wbGlmaWVkIGxheW91dCBhbmQgcG9zaXRpb25lZCBtb3ZlbWVudCI7IGJyZWFrOwor
ICAgIGNhc2UgU3R5bGVEaWZmZXJlbmNlOjpMYXlvdXQ6IHRzIDw8ICJsYXlvdXQiOyBicmVhazsK
KyAgICBjYXNlIFN0eWxlRGlmZmVyZW5jZTo6TmV3U3R5bGU6IHRzIDw8ICJuZXcgc3R5bGUiOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBUYWJsZUxheW91dFR5cGUgbGF5b3V0VHlwZSkKK3sKKyAgICBzd2l0
Y2ggKGxheW91dFR5cGUpIHsKKyAgICBjYXNlIFRhYmxlTGF5b3V0VHlwZTo6QXV0bzogdHMgPDwg
IkF1dG8iOyBicmVhazsKKyAgICBjYXNlIFRhYmxlTGF5b3V0VHlwZTo6Rml4ZWQ6IHRzIDw8ICJG
aXhlZCI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFRleHRBbGlnbk1vZGUgYWxpZ25Nb2RlKQoreworICAg
IHN3aXRjaCAoYWxpZ25Nb2RlKSB7CisgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpMZWZ0OiB0cyA8
PCAibGVmdCI7IGJyZWFrOworICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6UmlnaHQ6IHRzIDw8ICJy
aWdodCI7IGJyZWFrOworICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6Q2VudGVyOiB0cyA8PCAiY2Vu
dGVyIjsgYnJlYWs7CisgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpKdXN0aWZ5OiB0cyA8PCAianVz
dGlmeSI7IGJyZWFrOworICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6V2ViS2l0TGVmdDogdHMgPDwg
IndlYmtpdC1sZWZ0IjsgYnJlYWs7CisgICAgY2FzZSBUZXh0QWxpZ25Nb2RlOjpXZWJLaXRSaWdo
dDogdHMgPDwgIndlYmtpdC1yaWdodCI7IGJyZWFrOworICAgIGNhc2UgVGV4dEFsaWduTW9kZTo6
V2ViS2l0Q2VudGVyOiB0cyA8PCAid2Via2l0LWNlbnRlciI7IGJyZWFrOworICAgIGNhc2UgVGV4
dEFsaWduTW9kZTo6U3RhcnQ6IHRzIDw8ICJzdGFydCI7IGJyZWFrOworICAgIGNhc2UgVGV4dEFs
aWduTW9kZTo6RW5kOiB0cyA8PCAiZW5kIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsK
K30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgVGV4dENvbWJpbmUg
dGV4dENvbWJpbmUpCit7CisgICAgc3dpdGNoICh0ZXh0Q29tYmluZSkgeworICAgIGNhc2UgVGV4
dENvbWJpbmU6Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAgY2FzZSBUZXh0Q29tYmlu
ZTo6SG9yaXpvbnRhbDogdHMgPDwgImhvcml6b250YWwiOyBicmVhazsKKyAgICB9CisgICAgcmV0
dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBUZXh0
RGVjb3JhdGlvbiB0ZXh0RGVjb3JhdGlvbikKK3sKKyAgICBzd2l0Y2ggKHRleHREZWNvcmF0aW9u
KSB7CisgICAgY2FzZSBUZXh0RGVjb3JhdGlvbjo6Tm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsK
KyAgICBjYXNlIFRleHREZWNvcmF0aW9uOjpVbmRlcmxpbmU6IHRzIDw8ICJ1bmRlcmxpbmUiOyBi
cmVhazsKKyAgICBjYXNlIFRleHREZWNvcmF0aW9uOjpPdmVybGluZTogdHMgPDwgIm92ZXJsaW5l
IjsgYnJlYWs7CisgICAgY2FzZSBUZXh0RGVjb3JhdGlvbjo6TGluZVRocm91Z2g6IHRzIDw8ICJs
aW5lLXRocm91Z2giOyBicmVhazsKKyAgICBjYXNlIFRleHREZWNvcmF0aW9uOjpCbGluazogdHMg
PDwgImJsaW5rIjsgYnJlYWs7CisjaWYgRU5BQkxFKExFVFRFUlBSRVNTKQorICAgIGNhc2UgVGV4
dERlY29yYXRpb246OkxldHRlcnByZXNzOiB0cyA8PCAibGV0dGVycHJlc3MiOyBicmVhazsKKyNl
bmRpZgorICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIFRleHREZWNvcmF0aW9uU2tpcCBza2lwKQoreworICAgIHN3aXRjaCAo
c2tpcCkgeworICAgIGNhc2UgVGV4dERlY29yYXRpb25Ta2lwOjpOb25lOiB0cyA8PCAibm9uZSI7
IGJyZWFrOworICAgIGNhc2UgVGV4dERlY29yYXRpb25Ta2lwOjpJbms6IHRzIDw8ICJpbmsiOyBi
cmVhazsKKyAgICBjYXNlIFRleHREZWNvcmF0aW9uU2tpcDo6T2JqZWN0czogdHMgPDwgIm9iamVj
dHMiOyBicmVhazsKKyAgICBjYXNlIFRleHREZWNvcmF0aW9uU2tpcDo6QXV0bzogdHMgPDwgImF1
dG8iOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBUZXh0RGVjb3JhdGlvblN0eWxlIGRlY29yYXRpb25TdHls
ZSkKK3sKKyAgICBzd2l0Y2ggKGRlY29yYXRpb25TdHlsZSkgeworICAgIGNhc2UgVGV4dERlY29y
YXRpb25TdHlsZTo6U29saWQ6IHRzIDw8ICJzb2xpZCI7IGJyZWFrOworICAgIGNhc2UgVGV4dERl
Y29yYXRpb25TdHlsZTo6RG91YmxlOiB0cyA8PCAiZG91YmxlIjsgYnJlYWs7CisgICAgY2FzZSBU
ZXh0RGVjb3JhdGlvblN0eWxlOjpEb3R0ZWQ6IHRzIDw8ICJkb3R0ZWQiOyBicmVhazsKKyAgICBj
YXNlIFRleHREZWNvcmF0aW9uU3R5bGU6OkRhc2hlZDogdHMgPDwgImRhc2hlZCI7IGJyZWFrOwor
ICAgIGNhc2UgVGV4dERlY29yYXRpb25TdHlsZTo6V2F2eTogdHMgPDwgIndhdnkiOyBicmVhazsK
KyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBUZXh0RW1waGFzaXNGaWxsIGZpbGwpCit7CisgICAgc3dpdGNoIChmaWxsKSB7
CisgICAgY2FzZSBUZXh0RW1waGFzaXNGaWxsOjpGaWxsZWQ6IHRzIDw8ICJmaWxsZWQiOyBicmVh
azsKKyAgICBjYXNlIFRleHRFbXBoYXNpc0ZpbGw6Ok9wZW46IHRzIDw8ICJvcGVuIjsgYnJlYWs7
CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgVGV4dEVtcGhhc2lzTWFyayBtYXJrKQoreworICAgIHN3aXRjaCAobWFyaykg
eworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6Tm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsK
KyAgICBjYXNlIFRleHRFbXBoYXNpc01hcms6OkF1dG86IHRzIDw8ICJhdXRvIjsgYnJlYWs7Cisg
ICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpEb3Q6IHRzIDw8ICJkb3QiOyBicmVhazsKKyAgICBj
YXNlIFRleHRFbXBoYXNpc01hcms6OkNpcmNsZTogdHMgPDwgImNpcmNsZSI7IGJyZWFrOworICAg
IGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6RG91YmxlQ2lyY2xlOiB0cyA8PCAiZG91YmxlLWNpcmNs
ZSI7IGJyZWFrOworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6VHJpYW5nbGU6IHRzIDw8ICJ0
cmlhbmdsZSI7IGJyZWFrOworICAgIGNhc2UgVGV4dEVtcGhhc2lzTWFyazo6U2VzYW1lOiB0cyA8
PCAic2VzYW1lIjsgYnJlYWs7CisgICAgY2FzZSBUZXh0RW1waGFzaXNNYXJrOjpDdXN0b206IHRz
IDw8ICJjdXN0b20iOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBUZXh0RW1waGFzaXNQb3NpdGlvbiBwb3Np
dGlvbikKK3sKKyAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7CisgICAgY2FzZSBUZXh0RW1waGFzaXNQ
b3NpdGlvbjo6T3ZlcjogdHMgPDwgIk92ZXIiOyBicmVhazsKKyAgICBjYXNlIFRleHRFbXBoYXNp
c1Bvc2l0aW9uOjpVbmRlcjogdHMgPDwgIlVuZGVyIjsgYnJlYWs7CisgICAgY2FzZSBUZXh0RW1w
aGFzaXNQb3NpdGlvbjo6TGVmdDogdHMgPDwgIkxlZnQiOyBicmVhazsKKyAgICBjYXNlIFRleHRF
bXBoYXNpc1Bvc2l0aW9uOjpSaWdodDogdHMgPDwgIlJpZ2h0IjsgYnJlYWs7CisgICAgfQorICAg
IHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
VGV4dE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQoreworICAgIHN3aXRjaCAob3JpZW50YXRpb24p
IHsKKyAgICBjYXNlIFRleHRPcmllbnRhdGlvbjo6TWl4ZWQ6IHRzIDw8ICJtaXhlZCI7IGJyZWFr
OworICAgIGNhc2UgVGV4dE9yaWVudGF0aW9uOjpVcHJpZ2h0OiB0cyA8PCAidXByaWdodCI7IGJy
ZWFrOworICAgIGNhc2UgVGV4dE9yaWVudGF0aW9uOjpTaWRld2F5czogdHMgPDwgInNpZGV3YXlz
IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KK1RleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIFRleHRPdmVyZmxvdyBvdmVyZmxvdykKK3sKKyAgICBzd2l0Y2gg
KG92ZXJmbG93KSB7CisgICAgY2FzZSBUZXh0T3ZlcmZsb3c6OkNsaXA6IHRzIDw8ICJjbGlwIjsg
YnJlYWs7CisgICAgY2FzZSBUZXh0T3ZlcmZsb3c6OkVsbGlwc2lzOiB0cyA8PCAiZWxsaXBzaXMi
OyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBUZXh0U2VjdXJpdHkgdGV4dFNlY3VyaXR5KQoreworICAgIHN3
aXRjaCAodGV4dFNlY3VyaXR5KSB7CisgICAgY2FzZSBUZXh0U2VjdXJpdHk6Ok5vbmU6IHRzIDw8
ICJub25lIjsgYnJlYWs7CisgICAgY2FzZSBUZXh0U2VjdXJpdHk6OkRpc2M6IHRzIDw8ICJkaXNj
IjsgYnJlYWs7CisgICAgY2FzZSBUZXh0U2VjdXJpdHk6OkNpcmNsZTogdHMgPDwgImNpcmNsZSI7
IGJyZWFrOworICAgIGNhc2UgVGV4dFNlY3VyaXR5OjpTcXVhcmU6IHRzIDw8ICJzcXVhcmUiOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBUZXh0VHJhbnNmb3JtIHRleHRUcmFuc2Zvcm0pCit7CisgICAgc3dp
dGNoICh0ZXh0VHJhbnNmb3JtKSB7CisgICAgY2FzZSBUZXh0VHJhbnNmb3JtOjpDYXBpdGFsaXpl
OiB0cyA8PCAiY2FwaXRhbGl6ZSI7IGJyZWFrOworICAgIGNhc2UgVGV4dFRyYW5zZm9ybTo6VXBw
ZXJjYXNlOiB0cyA8PCAidXBwZXJjYXNlIjsgYnJlYWs7CisgICAgY2FzZSBUZXh0VHJhbnNmb3Jt
OjpMb3dlcmNhc2U6IHRzIDw8ICJsb3dlcmNhc2UiOyBicmVhazsKKyAgICBjYXNlIFRleHRUcmFu
c2Zvcm06Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsK
K30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgVGV4dFVuZGVybGlu
ZVBvc2l0aW9uIHVuZGVybGluZVBvc2l0aW9uKQoreworICAgIHN3aXRjaCAodW5kZXJsaW5lUG9z
aXRpb24pIHsKKyAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0bzogdHMgPDwgIkF1
dG8iOyBicmVhazsKKyAgICBjYXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6VW5kZXI6IHRzIDw8
ICJVbmRlciI7IGJyZWFrOworICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9uOjpGcm9tRm9u
dDogdHMgPDwgIkZyb21Gb250IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKwor
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgVGV4dFpvb20gem9vbSkKK3sK
KyAgICBzd2l0Y2ggKHpvb20pIHsKKyAgICBjYXNlIFRleHRab29tOjpOb3JtYWw6IHRzIDw8ICJu
b3JtYWwiOyBicmVhazsKKyAgICBjYXNlIFRleHRab29tOjpSZXNldDogdHMgPDwgInJlc2V0Ijsg
YnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgVHJhbnNmb3JtQm94IGJveCkKK3sKKyAgICBzd2l0Y2ggKGJveCkg
eworICAgIGNhc2UgVHJhbnNmb3JtQm94OjpCb3JkZXJCb3g6IHRzIDw8ICJib3JkZXItYm94Ijsg
YnJlYWs7CisgICAgY2FzZSBUcmFuc2Zvcm1Cb3g6OkZpbGxCb3g6IHRzIDw8ICJmaWxsLWJveCI7
IGJyZWFrOworICAgIGNhc2UgVHJhbnNmb3JtQm94OjpWaWV3Qm94OiB0cyA8PCAidmlldy1ib3gi
OyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBUcmFuc2Zvcm1TdHlsZTNEIHRyYW5zZm9ybVN0eWxlKQorewor
ICAgIHN3aXRjaCAodHJhbnNmb3JtU3R5bGUpIHsKKyAgICBjYXNlIFRyYW5zZm9ybVN0eWxlM0Q6
OkZsYXQ6IHRzIDw8ICJmbGF0IjsgYnJlYWs7CisgICAgY2FzZSBUcmFuc2Zvcm1TdHlsZTNEOjpQ
cmVzZXJ2ZTNEOiB0cyA8PCAicHJlc2VydmUtM2QiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJu
IHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBVc2VyRHJh
ZyB1c2VyRHJhZykKK3sKKyAgICBzd2l0Y2ggKHVzZXJEcmFnKSB7CisgICAgY2FzZSBVc2VyRHJh
Zzo6QXV0bzogdHMgPDwgImF1dG8iOyBicmVhazsKKyAgICBjYXNlIFVzZXJEcmFnOjpOb25lOiB0
cyA8PCAibm9uZSI7IGJyZWFrOworICAgIGNhc2UgVXNlckRyYWc6OkVsZW1lbnQ6IHRzIDw8ICJl
bGVtZW50IjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgVXNlck1vZGlmeSB1c2VyTW9kaWZ5KQoreworICAg
IHN3aXRjaCAodXNlck1vZGlmeSkgeworICAgIGNhc2UgVXNlck1vZGlmeTo6UmVhZE9ubHk6IHRz
IDw8ICJyZWFkLW9ubHkiOyBicmVhazsKKyAgICBjYXNlIFVzZXJNb2RpZnk6OlJlYWRXcml0ZTog
dHMgPDwgInJlYWQtd3JpdGUiOyBicmVhazsKKyAgICBjYXNlIFVzZXJNb2RpZnk6OlJlYWRXcml0
ZVBsYWludGV4dE9ubHk6IHRzIDw8ICJyZWFkLXdyaXRlIHBsYWludGV4dCBvbmx5IjsgYnJlYWs7
CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgVXNlclNlbGVjdCB1c2VyU2VsZWN0KQoreworICAgIHN3aXRjaCAodXNlclNl
bGVjdCkgeworICAgIGNhc2UgVXNlclNlbGVjdDo6Tm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsK
KyAgICBjYXNlIFVzZXJTZWxlY3Q6OlRleHQ6IHRzIDw8ICJ0ZXh0IjsgYnJlYWs7CisgICAgY2Fz
ZSBVc2VyU2VsZWN0OjpBbGw6IHRzIDw8ICJhbGwiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJu
IHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBWZXJ0aWNh
bEFsaWduIHZlcnRpY2FsQWxpZ24pCit7CisgICAgc3dpdGNoICh2ZXJ0aWNhbEFsaWduKSB7Cisg
ICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpCYXNlbGluZTogdHMgPDwgImJhc2VsaW5lIjsgYnJlYWs7
CisgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpNaWRkbGU6IHRzIDw8ICJtaWRkbGUiOyBicmVhazsK
KyAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlN1YjogdHMgPDwgInN1YiI7IGJyZWFrOworICAgIGNh
c2UgVmVydGljYWxBbGlnbjo6U3VwZXI6IHRzIDw8ICJzdXBlciI7IGJyZWFrOworICAgIGNhc2Ug
VmVydGljYWxBbGlnbjo6VGV4dFRvcDogdHMgPDwgInRleHQtdG9wIjsgYnJlYWs7CisgICAgY2Fz
ZSBWZXJ0aWNhbEFsaWduOjpUZXh0Qm90dG9tOiB0cyA8PCAidGV4dC1ib3R0b20iOyBicmVhazsK
KyAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlRvcDogdHMgPDwgInRvcCI7IGJyZWFrOworICAgIGNh
c2UgVmVydGljYWxBbGlnbjo6Qm90dG9tOiB0cyA8PCAiYm90dG9tIjsgYnJlYWs7CisgICAgY2Fz
ZSBWZXJ0aWNhbEFsaWduOjpCYXNlbGluZU1pZGRsZTogdHMgPDwgImJhc2VsaW5lLW1pZGRsZSI7
IGJyZWFrOworICAgIGNhc2UgVmVydGljYWxBbGlnbjo6TGVuZ3RoOiB0cyA8PCAibGVuZ3RoIjsg
YnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgVmlzaWJpbGl0eSB2aXNpYmlsaXR5KQoreworICAgIHN3aXRjaCAo
dmlzaWJpbGl0eSkgeworICAgIGNhc2UgVmlzaWJpbGl0eTo6VmlzaWJsZTogdHMgPDwgInZpc2li
bGUiOyBicmVhazsKKyAgICBjYXNlIFZpc2liaWxpdHk6OkhpZGRlbjogdHMgPDwgImhpZGRlbiI7
IGJyZWFrOworICAgIGNhc2UgVmlzaWJpbGl0eTo6Q29sbGFwc2U6IHRzIDw8ICJjb2xsYXBzZSI7
IGJyZWFrOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFdoaXRlU3BhY2Ugd2hpdGVTcGFjZSkKK3sKKyAgICBz
d2l0Y2ggKHdoaXRlU3BhY2UpIHsKKyAgICBjYXNlIFdoaXRlU3BhY2U6Ok5vcm1hbDogdHMgPDwg
Im5vcm1hbCI7IGJyZWFrOworICAgIGNhc2UgV2hpdGVTcGFjZTo6UHJlOiB0cyA8PCAicHJlIjsg
YnJlYWs7CisgICAgY2FzZSBXaGl0ZVNwYWNlOjpQcmVXcmFwOiB0cyA8PCAicHJlLXdyYXAiOyBi
cmVhazsKKyAgICBjYXNlIFdoaXRlU3BhY2U6OlByZUxpbmU6IHRzIDw8ICJwcmUtbGluZSI7IGJy
ZWFrOworICAgIGNhc2UgV2hpdGVTcGFjZTo6Tm9XcmFwOiB0cyA8PCAibm93cmFwIjsgYnJlYWs7
CisgICAgY2FzZSBXaGl0ZVNwYWNlOjpLSFRNTE5vV3JhcDogdHMgPDwgImtodG1sLW5vd3JhcCI7
IGJyZWFrOworICAgIGNhc2UgV2hpdGVTcGFjZTo6QnJlYWtTcGFjZXM6IHRzIDw8ICJicmVhay1z
cGFjZXMiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBXb3JkQnJlYWsgd29yZEJyZWFrKQoreworICAgIHN3
aXRjaCAod29yZEJyZWFrKSB7CisgICAgY2FzZSBXb3JkQnJlYWs6Ok5vcm1hbDogdHMgPDwgIm5v
cm1hbCI7IGJyZWFrOworICAgIGNhc2UgV29yZEJyZWFrOjpCcmVha0FsbDogdHMgPDwgImJyZWFr
LWFsbCI7IGJyZWFrOworICAgIGNhc2UgV29yZEJyZWFrOjpLZWVwQWxsOiB0cyA8PCAia2VlcC1h
bGwiOyBicmVhazsKKyAgICBjYXNlIFdvcmRCcmVhazo6QnJlYWtXb3JkOiB0cyA8PCAiYnJlYWst
d29yZCI7IGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDZk
NmZmYmU1OTE3YjNmNTJiMDlkY2Y4MmRiZDRlZGU3NDFlY2Y4YmUuLjNkNTVlYWIzYTllN2YyZDYx
ODM4ZjgxZGZjYmRhMjcxMjdmYzAxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC0yNSw2ICsyNSw3IEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ1NTUmVmbGVjdGlvbkRpcmVjdGlvbi5oIiAvLyBG
SVhNRTogQ1NTUmVmbGVjdGlvbkRpcmVjdGlvbiBzaG91bGQganVzdCBtb3ZlIGhlcmUuCiAjaW5j
bHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC03OTcsOCArNzk4
LDYgQEAgZW51bSBjbGFzcyBWaXNpYmlsaXR5IDogdWludDhfdCB7CiAgICAgQ29sbGFwc2UKIH07
CiAKLVdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBWaXNpYmls
aXR5KTsKLQogZW51bSBjbGFzcyBDdXJzb3JUeXBlIDogdWludDhfdCB7CiAgICAgLy8gVGhlIGZv
bGxvd2luZyBtdXN0IG1hdGNoIHRoZSBvcmRlciBpbiBDU1NWYWx1ZUtleXdvcmRzLmluLgogICAg
IEF1dG8sCkBAIC05NzYsOCArOTc1LDYgQEAgZW51bSBjbGFzcyBJbWFnZVJlbmRlcmluZyA6IHVp
bnQ4X3QgewogICAgIFBpeGVsYXRlZAogfTsKIAotV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIEltYWdlUmVuZGVyaW5nKTsKLQogZW51bSBjbGFzcyBJbWFnZVJl
c29sdXRpb25Tb3VyY2UgOiB1aW50OF90IHsKICAgICBTcGVjaWZpZWQgPSAwLAogICAgIEZyb21J
bWFnZQpAQCAtMTEzOCwxMyArMTEzNSw2IEBAIGVudW0gY2xhc3MgQXBwbGVQYXlCdXR0b25UeXBl
IDogdWludDhfdCB7CiB9OwogI2VuZGlmCiAKLVdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChX
VEY6OlRleHRTdHJlYW0mLCBGaWxsU2l6ZVR5cGUpOwotV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFdURjo6VGV4dFN0cmVhbSYsIEZpbGxBdHRhY2htZW50KTsKLVdURjo6VGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBGaWxsQm94KTsKLVdURjo6VGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBGaWxsUmVwZWF0KTsKLVdURjo6VGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBNYXNrU291cmNlVHlwZSk7Ci1XVEY6OlRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgRWRnZSk7Ci0KIC8vIFRoZXNl
IGFyZSBhbGwgbWluaW1pemVkIGNvbWJpbmF0aW9ucyBvZiBwYWludC1vcmRlci4KIGVudW0gY2xh
c3MgUGFpbnRPcmRlciA6IHVpbnQ4X3QgewogICAgIE5vcm1hbCwKQEAgLTExNzIsNCArMTE2Miwx
MTUgQEAgZW51bSBjbGFzcyBGb250TG9hZGluZ0JlaGF2aW9yIDogdWludDhfdCB7CiAKIGV4dGVy
biBjb25zdCBmbG9hdCBkZWZhdWx0TWl0ZXJMaW1pdDsKIAorV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEFuaW1hdGlvbkZpbGxNb2RlKTsKK1dURjo6VGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBbmltYXRpb25QbGF5U3RhdGUpOwor
I2lmIEVOQUJMRShBUFBMRV9QQVkpCitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiwgQXBwbGVQYXlCdXR0b25TdHlsZSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQXBwbGVQYXlCdXR0b25UeXBlKTsKKyNlbmRpZgorV1RG
OjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEFzcGVjdFJhdGlvVHlw
ZSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQXV0b1Jl
cGVhdFR5cGUpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYs
IEJhY2tmYWNlVmlzaWJpbGl0eSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiwgQm9yZGVyQ29sbGFwc2UpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIEJvcmRlckZpdCk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoV1RGOjpUZXh0U3RyZWFtJiwgQm9yZGVyU3R5bGUpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEJveEFsaWdubWVudCk7CitXVEY6OlRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQm94RGVjb3JhdGlvbkJyZWFrKTsKK1dURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBCb3hEaXJlY3Rpb24pOwor
V1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEJveExpbmVzKTsK
K1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBCb3hPcmllbnQp
OworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEJveFBhY2sp
OworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEJveFNpemlu
Zyk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQnJlYWtC
ZXR3ZWVuKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBC
cmVha0luc2lkZSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFt
JiwgQ1NTQm94VHlwZSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgQ1NTUmVmbGVjdGlvbkRpcmVjdGlvbik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoV1RGOjpUZXh0U3RyZWFtJiwgQ2FwdGlvblNpZGUpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIENsZWFyKTsKKyNpZiBFTkFCTEUoREFSS19NT0RFX0NT
UykKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBDb2xvclNj
aGVtZSk7CisjZW5kaWYKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJl
YW0mLCBDb2x1bW5BeGlzKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRT
dHJlYW0mLCBDb2x1bW5GaWxsKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRl
eHRTdHJlYW0mLCBDb2x1bW5Qcm9ncmVzc2lvbik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoV1RGOjpUZXh0U3RyZWFtJiwgQ29sdW1uU3Bhbik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQ29udGVudERpc3RyaWJ1dGlvbik7CitXVEY6OlRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQ29udGVudFBvc2l0aW9uKTsKK1dU
Rjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBDdXJzb3JUeXBlKTsK
KyNpZiBFTkFCTEUoQ1VSU09SX1ZJU0lCSUxJVFkpCitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoV1RGOjpUZXh0U3RyZWFtJiwgQ3Vyc29yVmlzaWJpbGl0eSk7CisjZW5kaWYKK1dURjo6VGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBEaXNwbGF5VHlwZSk7CitXVEY6
OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgRWRnZSk7CitXVEY6OlRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgRW1wdHlDZWxsKTsKK1dURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBGaWxsQXR0YWNobWVudCk7
CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgRmlsbEJveCk7
CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgRmlsbFJlcGVh
dCk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgRmlsbFNp
emVUeXBlKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBG
bGV4RGlyZWN0aW9uKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJl
YW0mLCBGbGV4V3JhcCk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgRmxvYXQpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVh
bSYsIEdyaWRBdXRvRmxvdyk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0
U3RyZWFtJiwgSGFuZ2luZ1B1bmN0dWF0aW9uKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChXVEY6OlRleHRTdHJlYW0mLCBIeXBoZW5zKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChXVEY6OlRleHRTdHJlYW0mLCBJbWFnZVJlbmRlcmluZyk7CitXVEY6OlRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgSW5zaWRlTGluayk7CitXVEY6OlRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgSXNvbGF0aW9uKTsKK1dURjo6VGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBJdGVtUG9zaXRpb24pOworV1RGOjpUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEl0ZW1Qb3NpdGlvblR5cGUpOwor
V1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIExpbmVBbGlnbik7
CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgTGluZUJyZWFr
KTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBMaW5lU25h
cCk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgTGlzdFN0
eWxlUG9zaXRpb24pOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVh
bSYsIExpc3RTdHlsZVR5cGUpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYsIE1hcmdpbkNvbGxhcHNlKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChX
VEY6OlRleHRTdHJlYW0mLCBNYXJxdWVlQmVoYXZpb3IpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIE1hcnF1ZWVEaXJlY3Rpb24pOworV1RGOjpUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIE1hc2tTb3VyY2VUeXBlKTsKK1dURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBOQlNQTW9kZSk7CitXVEY6
OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgT2JqZWN0Rml0KTsKK1dU
Rjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBPcmRlcik7CitXVEY6
OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2ViQ29yZTo6T3ZlcmZs
b3cpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIE92ZXJm
bG93QWxpZ25tZW50KTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJl
YW0mLCBPdmVyZmxvd1dyYXApOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYsIFBhaW50T3JkZXIpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6
VGV4dFN0cmVhbSYsIFBvaW50ZXJFdmVudHMpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIFBvc2l0aW9uVHlwZSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgUHJpbnRDb2xvckFkanVzdCk7CitXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgUHNldWRvSWQpOworV1RGOjpUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFF1b3RlVHlwZSk7CitXVEY6OlRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgUmVzaXplKTsKK1dURjo6VGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBSdWJ5UG9zaXRpb24pOworI2lmIEVO
QUJMRShDU1NfU0NST0xMX1NOQVApCitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiwgU2Nyb2xsU25hcEF4aXMpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlKTsKK1dURjo6VGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBTY3JvbGxTbmFwU3RyaWN0bmVzcyk7
CisjZW5kaWYKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBT
cGVha0FzKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBT
dHlsZURpZmZlcmVuY2UpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIFRhYmxlTGF5b3V0VHlwZSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RG
OjpUZXh0U3RyZWFtJiwgVGV4dEFsaWduTW9kZSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoV1RGOjpUZXh0U3RyZWFtJiwgVGV4dENvbWJpbmUpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFRleHREZWNvcmF0aW9uKTsKK1dURjo6VGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBUZXh0RGVjb3JhdGlvblNraXApOworV1RG
OjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFRleHREZWNvcmF0aW9u
U3R5bGUpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFRl
eHRFbXBoYXNpc0ZpbGwpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIFRleHRFbXBoYXNpc01hcmspOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdU
Rjo6VGV4dFN0cmVhbSYsIFRleHRFbXBoYXNpc1Bvc2l0aW9uKTsKK1dURjo6VGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBUZXh0T3JpZW50YXRpb24pOworV1RGOjpUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFRleHRPdmVyZmxvdyk7CitXVEY6
OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgVGV4dFNlY3VyaXR5KTsK
K1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBUZXh0VHJhbnNm
b3JtKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBUZXh0
VW5kZXJsaW5lUG9zaXRpb24pOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYsIFRleHRab29tKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRl
eHRTdHJlYW0mLCBUcmFuc2Zvcm1Cb3gpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdU
Rjo6VGV4dFN0cmVhbSYsIFRyYW5zZm9ybVN0eWxlM0QpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFVzZXJEcmFnKTsKK1dURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBVc2VyTW9kaWZ5KTsKK1dURjo6VGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBVc2VyU2VsZWN0KTsKK1dURjo6VGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBWZXJ0aWNhbEFsaWduKTsKK1dURjo6VGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBWaXNpYmlsaXR5KTsKK1dURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBXaGl0ZVNwYWNlKTsKK1dU
Rjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBXb3JkQnJlYWspOwor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuY3BwCmluZGV4IDU4MWIwN2M2ODkwZDM5MTI1
ZjI2M2Y1MjJlNjdhYTYyNWJmNDJlZWQuLmQzZmE5Mjc4OWJlNDhmY2M5NWU4N2JlOGQxZDVlMDk3
MjVkOTYyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdS
ZW5kZXJTdHlsZURlZnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
VkdSZW5kZXJTdHlsZURlZnMuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
U3R5bGUuaCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgPHd0Zi9Qb2lu
dGVyQ29tcGFyaXNvbi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMDUsNCArMzA2LDIzMSBAQCBib29sIFN0eWxlTGF5b3V0
RGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZUxheW91dERhdGEmIG90aGVyKSBjb25zdAogICAg
ICAgICAmJiB5ID09IG90aGVyLnk7CiB9CiAKKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgQWxpZ25tZW50QmFzZWxpbmUgdmFsdWUpCit7CisgICAgc3dpdGNoICh2YWx1
ZSkgeworICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OkF1dG86IHRzIDw8ICJhdXRvIjsgYnJl
YWs7CisgICAgY2FzZSBBbGlnbm1lbnRCYXNlbGluZTo6QmFzZWxpbmU6IHRzIDw8ICJiYXNlbGlu
ZSI7IGJyZWFrOworICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OkJlZm9yZUVkZ2U6IHRzIDw8
ICJiZWZvcmUtZWRnZSI7IGJyZWFrOworICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OlRleHRC
ZWZvcmVFZGdlOiB0cyA8PCAidGV4dC1iZWZvcmUtZWRnZSI7IGJyZWFrOworICAgIGNhc2UgQWxp
Z25tZW50QmFzZWxpbmU6Ok1pZGRsZTogdHMgPDwgIm1pZGRsZSI7IGJyZWFrOworICAgIGNhc2Ug
QWxpZ25tZW50QmFzZWxpbmU6OkNlbnRyYWw6IHRzIDw8ICJjZW50cmFsIjsgYnJlYWs7CisgICAg
Y2FzZSBBbGlnbm1lbnRCYXNlbGluZTo6QWZ0ZXJFZGdlOiB0cyA8PCAiYWZ0ZXItZWRnZSI7IGJy
ZWFrOworICAgIGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6OlRleHRBZnRlckVkZ2U6IHRzIDw8ICJ0
ZXh0LWFmdGVyLWVkZ2UiOyBicmVhazsKKyAgICBjYXNlIEFsaWdubWVudEJhc2VsaW5lOjpJZGVv
Z3JhcGhpYzogdHMgPDwgImlkZW9ncmFwaGljIjsgYnJlYWs7CisgICAgY2FzZSBBbGlnbm1lbnRC
YXNlbGluZTo6QWxwaGFiZXRpYzogdHMgPDwgImFscGhhYmV0aWMiOyBicmVhazsKKyAgICBjYXNl
IEFsaWdubWVudEJhc2VsaW5lOjpIYW5naW5nOiB0cyA8PCAiaGFuZ2luZyI7IGJyZWFrOworICAg
IGNhc2UgQWxpZ25tZW50QmFzZWxpbmU6Ok1hdGhlbWF0aWNhbDogdHMgPDwgIm1hdGhlbWF0aWNh
bCI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIEJhc2VsaW5lU2hpZnQgdmFsdWUpCit7CisgICAgc3dpdGNo
ICh2YWx1ZSkgeworICAgIGNhc2UgQmFzZWxpbmVTaGlmdDo6QmFzZWxpbmU6IHRzIDw8ICJiYXNl
bGluZSI7IGJyZWFrOworICAgIGNhc2UgQmFzZWxpbmVTaGlmdDo6U3ViOiB0cyA8PCAic3ViIjsg
YnJlYWs7CisgICAgY2FzZSBCYXNlbGluZVNoaWZ0OjpTdXBlcjogdHMgPDwgInN1cGVyIjsgYnJl
YWs7CisgICAgY2FzZSBCYXNlbGluZVNoaWZ0OjpMZW5ndGg6IHRzIDw8ICJsZW5ndGgiOyBicmVh
azsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBCdWZmZXJlZFJlbmRlcmluZyB2YWx1ZSkKK3sKKyAgICBzd2l0Y2ggKHZh
bHVlKSB7CisgICAgY2FzZSBCdWZmZXJlZFJlbmRlcmluZzo6QXV0bzogdHMgPDwgImF1dG8iOyBi
cmVhazsKKyAgICBjYXNlIEJ1ZmZlcmVkUmVuZGVyaW5nOjpEeW5hbWljOiB0cyA8PCAiZHluYW1p
YyI7IGJyZWFrOworICAgIGNhc2UgQnVmZmVyZWRSZW5kZXJpbmc6OlN0YXRpYzogdHMgPDwgInN0
YXRpYyI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbG9ySW50ZXJwb2xhdGlvbiB2YWx1ZSkKK3sKKyAg
ICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgY2FzZSBDb2xvckludGVycG9sYXRpb246OkF1dG86IHRz
IDw8ICJhdXRvIjsgYnJlYWs7CisgICAgY2FzZSBDb2xvckludGVycG9sYXRpb246OlNSR0I6IHRz
IDw8ICJzUkdCIjsgYnJlYWs7CisgICAgY2FzZSBDb2xvckludGVycG9sYXRpb246OkxpbmVhclJH
QjogdHMgPDwgImxpbmVhclJHQiI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisK
K1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbG9yUmVuZGVyaW5nIHZh
bHVlKQoreworICAgIHN3aXRjaCAodmFsdWUpIHsKKyAgICBjYXNlIENvbG9yUmVuZGVyaW5nOjpB
dXRvOiB0cyA8PCAiYXV0byI7IGJyZWFrOworICAgIGNhc2UgQ29sb3JSZW5kZXJpbmc6Ok9wdGlt
aXplU3BlZWQ6IHRzIDw8ICJvcHRpbWl6ZVNwZWVkIjsgYnJlYWs7CisgICAgY2FzZSBDb2xvclJl
bmRlcmluZzo6T3B0aW1pemVRdWFsaXR5OiB0cyA8PCAib3B0aW1pemVRdWFsaXR5IjsgYnJlYWs7
CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgRG9taW5hbnRCYXNlbGluZSB2YWx1ZSkKK3sKKyAgICBzd2l0Y2ggKHZhbHVl
KSB7CisgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpBdXRvOiB0cyA8PCAiYXV0byI7IGJyZWFr
OworICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6VXNlU2NyaXB0OiB0cyA8PCAidXNlLXNjcmlw
dCI7IGJyZWFrOworICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6Tm9DaGFuZ2U6IHRzIDw8ICJu
by1jaGFuZ2UiOyBicmVhazsKKyAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6OlJlc2V0U2l6ZTog
dHMgPDwgInJlc2V0LXNpemUiOyBicmVhazsKKyAgICBjYXNlIERvbWluYW50QmFzZWxpbmU6Oklk
ZW9ncmFwaGljOiB0cyA8PCAiaWRlb2dyYXBoaWMiOyBicmVhazsKKyAgICBjYXNlIERvbWluYW50
QmFzZWxpbmU6OkFscGhhYmV0aWM6IHRzIDw8ICJhbHBoYWJldGljIjsgYnJlYWs7CisgICAgY2Fz
ZSBEb21pbmFudEJhc2VsaW5lOjpIYW5naW5nOiB0cyA8PCAiaGFuZ2luZyI7IGJyZWFrOworICAg
IGNhc2UgRG9taW5hbnRCYXNlbGluZTo6TWF0aGVtYXRpY2FsOiB0cyA8PCAibWF0aGVtYXRpY2Fs
IjsgYnJlYWs7CisgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpDZW50cmFsOiB0cyA8PCAiY2Vu
dHJhbCI7IGJyZWFrOworICAgIGNhc2UgRG9taW5hbnRCYXNlbGluZTo6TWlkZGxlOiB0cyA8PCAi
bWlkZGxlIjsgYnJlYWs7CisgICAgY2FzZSBEb21pbmFudEJhc2VsaW5lOjpUZXh0QWZ0ZXJFZGdl
OiB0cyA8PCAidGV4dC1hZnRlci1lZGdlIjsgYnJlYWs7CisgICAgY2FzZSBEb21pbmFudEJhc2Vs
aW5lOjpUZXh0QmVmb3JlRWRnZTogdHMgPDwgInRleHQtYmVmb3JlLWVkZ2UiOyBicmVhazsKKyAg
ICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBHbHlwaE9yaWVudGF0aW9uIHZhbHVlKQoreworICAgIHN3aXRjaCAodmFsdWUpIHsK
KyAgICBjYXNlIEdseXBoT3JpZW50YXRpb246OkRlZ3JlZXMwOiB0cyA8PCAiMCI7IGJyZWFrOwor
ICAgIGNhc2UgR2x5cGhPcmllbnRhdGlvbjo6RGVncmVlczkwOiB0cyA8PCAiOTAiOyBicmVhazsK
KyAgICBjYXNlIEdseXBoT3JpZW50YXRpb246OkRlZ3JlZXMxODA6IHRzIDw8ICIxODAiOyBicmVh
azsKKyAgICBjYXNlIEdseXBoT3JpZW50YXRpb246OkRlZ3JlZXMyNzA6IHRzIDw8ICIyNzAiOyBi
cmVhazsKKyAgICBjYXNlIEdseXBoT3JpZW50YXRpb246OkF1dG86IHRzIDw8ICJBdXRvIjsgYnJl
YWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgTWFza1R5cGUgdmFsdWUpCit7CisgICAgc3dpdGNoICh2YWx1ZSkgewor
ICAgIGNhc2UgTWFza1R5cGU6Okx1bWluYW5jZTogdHMgPDwgImx1bWluYW5jZSI7IGJyZWFrOwor
ICAgIGNhc2UgTWFza1R5cGU6OkFscGhhOiB0cyA8PCAiYWxwaGEiOyBicmVhazsKKyAgICB9Cisg
ICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBTVkdQYWludFR5cGUgcGFpbnRUeXBlKQoreworICAgIHN3aXRjaCAocGFpbnRUeXBlKSB7Cisg
ICAgY2FzZSBTVkdQYWludFR5cGU6OlJHQkNvbG9yOiB0cyA8PCAicmdiLWNvbG9yIjsgYnJlYWs7
CisgICAgY2FzZSBTVkdQYWludFR5cGU6Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAg
Y2FzZSBTVkdQYWludFR5cGU6OkN1cnJlbnRDb2xvcjogdHMgPDwgImN1cnJlbnQtY29sb3IiOyBi
cmVhazsKKyAgICBjYXNlIFNWR1BhaW50VHlwZTo6VVJJTm9uZTogdHMgPDwgInVyaS1ub25lIjsg
YnJlYWs7CisgICAgY2FzZSBTVkdQYWludFR5cGU6OlVSSUN1cnJlbnRDb2xvcjogdHMgPDwgInVy
aS1jdXJyZW50LWNvbG9yIjsgYnJlYWs7CisgICAgY2FzZSBTVkdQYWludFR5cGU6OlVSSVJHQkNv
bG9yOiB0cyA8PCAidXJpLXJnYi1jb2xvciI7IGJyZWFrOworICAgIGNhc2UgU1ZHUGFpbnRUeXBl
OjpVUkk6IHRzIDw8ICJ1cmkiOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBTaGFwZVJlbmRlcmluZyB2YWx1
ZSkKK3sKKyAgICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgY2FzZSBTaGFwZVJlbmRlcmluZzo6QXV0
bzogdHMgPDwgImF1dG8iOyBicmVhazsKKyAgICBjYXNlIFNoYXBlUmVuZGVyaW5nOjpPcHRpbWl6
ZVNwZWVkOiB0cyA8PCAib3B0aW1pemVTcGVlZCI7IGJyZWFrOworICAgIGNhc2UgU2hhcGVSZW5k
ZXJpbmc6OkNyaXNwRWRnZXM6IHRzIDw8ICJjcmlzcEVkZ2VzIjsgYnJlYWs7CisgICAgY2FzZSBT
aGFwZVJlbmRlcmluZzo6R2VvbWV0cmljUHJlY2lzaW9uOiB0cyA8PCAiZ2VvbWV0cmljUHJlY2lz
aW9uIjsgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgVGV4dEFuY2hvciB2YWx1ZSkKK3sKKyAgICBzd2l0Y2gg
KHZhbHVlKSB7CisgICAgY2FzZSBUZXh0QW5jaG9yOjpTdGFydDogdHMgPDwgInN0YXJ0IjsgYnJl
YWs7CisgICAgY2FzZSBUZXh0QW5jaG9yOjpNaWRkbGU6IHRzIDw8ICJtaWRkbGUiOyBicmVhazsK
KyAgICBjYXNlIFRleHRBbmNob3I6OkVuZDogdHMgPDwgImVuZCI7IGJyZWFrOworICAgIH0KKyAg
ICByZXR1cm4gdHM7CiB9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IFZlY3RvckVmZmVjdCB2YWx1ZSkKK3sKKyAgICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgY2FzZSBW
ZWN0b3JFZmZlY3Q6Ok5vbmU6IHRzIDw8ICJub25lIjsgYnJlYWs7CisgICAgY2FzZSBWZWN0b3JF
ZmZlY3Q6Ok5vblNjYWxpbmdTdHJva2U6IHRzIDw8ICJub24tc2NhbGluZy1zdHJva2UiOyBicmVh
azsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBjb25zdCBTdHlsZUZpbGxEYXRhJiBkYXRhKQoreworICAgIHRzLmR1bXBQ
cm9wZXJ0eSgib3BhY2l0eSIsIGRhdGEub3BhY2l0eSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJw
YWludC1jb2xvciIsIGRhdGEucGFpbnRDb2xvcik7CisgICAgdHMuZHVtcFByb3BlcnR5KCJ2aXNp
dGVkIGxpbmsgcGFpbnQtY29sb3IiLCBkYXRhLnZpc2l0ZWRMaW5rUGFpbnRDb2xvcik7CisgICAg
dHMuZHVtcFByb3BlcnR5KCJwYWludCB1cmkiLCBkYXRhLnBhaW50VXJpKTsKKyAgICB0cy5kdW1w
UHJvcGVydHkoInZpc2l0ZWQgbGluayBwYWludCB1cmkiLCBkYXRhLnZpc2l0ZWRMaW5rUGFpbnRV
cmkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgidmlzaXRlZCBsaW5rIHBhaW50IHR5cGUiLCBkYXRh
LnBhaW50VHlwZSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJ2aXNpdGVkIGxpbmsgcGFpbnQgdHlw
ZSIsIGRhdGEudmlzaXRlZExpbmtQYWludFR5cGUpOworICAgIHJldHVybiB0czsKK30KKworVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU3R5bGVTdHJva2VEYXRh
JiBkYXRhKQoreworICAgIHRzLmR1bXBQcm9wZXJ0eSgib3BhY2l0eSIsIGRhdGEub3BhY2l0eSk7
CisgICAgdHMuZHVtcFByb3BlcnR5KCJwYWludC1jb2xvciIsIGRhdGEucGFpbnRDb2xvcik7Cisg
ICAgdHMuZHVtcFByb3BlcnR5KCJ2aXNpdGVkIGxpbmsgcGFpbnQtY29sb3IiLCBkYXRhLnZpc2l0
ZWRMaW5rUGFpbnRDb2xvcik7CisgICAgdHMuZHVtcFByb3BlcnR5KCJwYWludCB1cmkiLCBkYXRh
LnBhaW50VXJpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInZpc2l0ZWQgbGluayBwYWludCB1cmki
LCBkYXRhLnZpc2l0ZWRMaW5rUGFpbnRVcmkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgiZGFzaE9m
ZnNldCIsIGRhdGEuZGFzaE9mZnNldCk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJkYXNoIGFycmF5
IiwgZGF0YS5kYXNoQXJyYXkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgidmlzaXRlZCBsaW5rIHBh
aW50IHR5cGUiLCBkYXRhLnBhaW50VHlwZSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJ2aXNpdGVk
IGxpbmsgcGFpbnQgdHlwZSIsIGRhdGEudmlzaXRlZExpbmtQYWludFR5cGUpOworICAgIHJldHVy
biB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3Qg
U3R5bGVTdG9wRGF0YSYgZGF0YSkKK3sKKyAgICB0cy5kdW1wUHJvcGVydHkoIm9wYWNpdHkiLCBk
YXRhLm9wYWNpdHkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgiY29sb3IiLCBkYXRhLmNvbG9yKTsK
KyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IFN0eWxlVGV4dERhdGEmIGRhdGEpCit7CisgICAgdHMuZHVtcFByb3BlcnR5KCJr
ZXJuaW5nIiwgZGF0YS5rZXJuaW5nKTsKKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFN0eWxlTWlzY0RhdGEmIGRhdGEpCit7
CisgICAgdHMuZHVtcFByb3BlcnR5KCJmbG9vZC1vcGFjaXR5IiwgZGF0YS5mbG9vZE9wYWNpdHkp
OworICAgIHRzLmR1bXBQcm9wZXJ0eSgiZmxvb2QtY29sb3IiLCBkYXRhLmZsb29kQ29sb3IpOwor
ICAgIHRzLmR1bXBQcm9wZXJ0eSgibGlnaHRpbmctY29sb3IiLCBkYXRhLmxpZ2h0aW5nQ29sb3Ip
OworICAgIHRzLmR1bXBQcm9wZXJ0eSgiYmFzZWxpbmUtc2hpZnQiLCBkYXRhLmJhc2VsaW5lU2hp
ZnRWYWx1ZSk7CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBjb25zdCBTdHlsZVNoYWRvd1NWR0RhdGEmIGRhdGEpCit7CisgICAgaWYg
KGRhdGEuc2hhZG93KQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInNoYWRvdyIsICpkYXRhLnNo
YWRvdyk7CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBjb25zdCBTdHlsZVJlc291cmNlRGF0YSYgZGF0YSkKK3sKKyAgICB0cy5kdW1w
UHJvcGVydHkoImNsaXBwZXIiLCBkYXRhLmNsaXBwZXIpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgi
bWFza2VyIiwgZGF0YS5tYXNrZXIpOworICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU3R5bGVJbmhlcml0ZWRSZXNvdXJjZURh
dGEmIGRhdGEpCit7CisgICAgdHMuZHVtcFByb3BlcnR5KCJtYXJrZXItc3RhcnQiLCBkYXRhLm1h
cmtlclN0YXJ0KTsKKyAgICB0cy5kdW1wUHJvcGVydHkoIm1hcmtlci1taWQiLCBkYXRhLm1hcmtl
ck1pZCk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJtYXJrZXItZW5kIiwgZGF0YS5tYXJrZXJFbmQp
OworICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgY29uc3QgU3R5bGVMYXlvdXREYXRhJiBkYXRhKQoreworICAgIHRzLmR1bXBQcm9wZXJ0
eSgiY3giLCBkYXRhLmN4KTsKKyAgICB0cy5kdW1wUHJvcGVydHkoImN5IiwgZGF0YS5jeSk7Cisg
ICAgdHMuZHVtcFByb3BlcnR5KCJyIiwgZGF0YS5yKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoInJ4
IiwgZGF0YS5yeCk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJyeSIsIGRhdGEucnkpOworICAgIHRz
LmR1bXBQcm9wZXJ0eSgieCIsIGRhdGEueCk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJ5IiwgZGF0
YS55KTsKKyAgICByZXR1cm4gdHM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdSZW5kZXJTdHlsZURlZnMuaApp
bmRleCBkODdhOGQzNzMwYzY0MzFkNzE1YjNkZmEyNzdjMDQ1MGUxY2UwMWMyLi5lZTBlNzAzN2Ix
OGQ1ZmNkOTAxODhhMTIzYTZmNDQ1NjIzM2E3YmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU1ZHUmVuZGVyU3R5bGVEZWZzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5oCkBAIC0zNCw2ICszNCwxMCBA
QAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
CituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFRleHRTdHJlYW07Cit9CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQ1NTVmFsdWU7CkBAIC0zMzYsNCArMzQwLDI4IEBAIHByaXZhdGU6CiAg
ICAgU3R5bGVMYXlvdXREYXRhKGNvbnN0IFN0eWxlTGF5b3V0RGF0YSYpOwogfTsKIAorCitXVEY6
OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQWxpZ25tZW50QmFzZWxp
bmUpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEJhc2Vs
aW5lU2hpZnQpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYs
IEJ1ZmZlcmVkUmVuZGVyaW5nKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRl
eHRTdHJlYW0mLCBDb2xvckludGVycG9sYXRpb24pOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFdURjo6VGV4dFN0cmVhbSYsIENvbG9yUmVuZGVyaW5nKTsKK1dURjo6VGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBEb21pbmFudEJhc2VsaW5lKTsKK1dURjo6VGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBHbHlwaE9yaWVudGF0aW9uKTsK
K1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBNYXNrVHlwZSk7
CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgU1ZHUGFpbnRU
eXBlKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBTaGFw
ZVJlbmRlcmluZyk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFt
JiwgVGV4dEFuY2hvcik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgVmVjdG9yRWZmZWN0KTsKKworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6
VGV4dFN0cmVhbSYsIGNvbnN0IFN0eWxlRmlsbERhdGEmKTsKK1dURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBTdHlsZVN0cm9rZURhdGEmKTsKK1dURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBTdHlsZVN0b3BE
YXRhJik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29u
c3QgU3R5bGVUZXh0RGF0YSYpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4
dFN0cmVhbSYsIGNvbnN0IFN0eWxlTWlzY0RhdGEmKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBTdHlsZVNoYWRvd1NWR0RhdGEmKTsKK1dURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBTdHlsZVJlc291
cmNlRGF0YSYpOworV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYs
IGNvbnN0IFN0eWxlSW5oZXJpdGVkUmVzb3VyY2VEYXRhJik7CitXVEY6OlRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgU3R5bGVMYXlvdXREYXRhJik7CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TaGFkb3dEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
aGFkb3dEYXRhLmNwcAppbmRleCBjMTdlYWY4NTliMGJmYWE3ZGFiYzAwOGQ0ZTc0MGZjNjMwYTRi
ODM5Li4xMDcyNzZhNWI3Y2E0MzdjZmNjNzAyMWQ0YjZmNmM0ZDI2YTkxYjZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEuY3BwCkBAIC05OCw0ICs5OCwx
NCBAQCB2b2lkIFNoYWRvd0RhdGE6OmFkanVzdFJlY3RGb3JTaGFkb3coRmxvYXRSZWN0JiByZWN0
LCBpbnQgYWRkaXRpb25hbE91dGxpbmVTaXplKQogICAgIHJlY3Quc2V0SGVpZ2h0KHJlY3QuaGVp
Z2h0KCkgLSBzaGFkb3dUb3AgKyBzaGFkb3dCb3R0b20pOwogfQogCitUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTaGFkb3dEYXRhJiBkYXRhKQoreworICAgIHRz
LmR1bXBQcm9wZXJ0eSgibG9jYXRpb24iLCBkYXRhLmxvY2F0aW9uKCkpOworICAgIHRzLmR1bXBQ
cm9wZXJ0eSgicmFkaXVzIiwgZGF0YS5yYWRpdXMoKSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJz
cHJlYWQiLCBkYXRhLnNwcmVhZCgpKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoImNvbG9yIiwgZGF0
YS5jb2xvcigpKTsKKworICAgIHJldHVybiB0czsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TaGFkb3dEYXRhLmgKaW5kZXggMWQ3
NWYxZTlmMDc5ZWM1YmY5Y2JkZDFiOTRjZmVlMzlmYmRjNzFiOS4uMGUwY2RiN2RjM2ZjMzdhNGZh
ZGMxMWQxMzEwZmYyMTU4NDg3NmQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1NoYWRvd0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU2hhZG93RGF0YS5oCkBAIC05OSw0ICs5OSw2IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFNoYWRvd0RhdGE+IG1fbmV4dDsKIH07CiAKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBTaGFkb3dEYXRhJik7CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>