<?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>116954</bug_id>
          
          <creation_ts>2013-05-29 04:15:05 -0700</creation_ts>
          <short_desc>[BlackBerry] Use StringBuilder instead of + operator to build strings in AboutData</short_desc>
          <delta_ts>2013-05-29 11:37:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>96420</blocked>
    
    <blocked>111729</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>rwlbuis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>894829</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-05-29 04:15:05 -0700</bug_when>
    <thetext>It&apos;s more efficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894832</commentid>
    <comment_count>1</comment_count>
      <attachid>203152</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-05-29 04:17:57 -0700</bug_when>
    <thetext>Created attachment 203152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895004</commentid>
    <comment_count>2</comment_count>
      <attachid>203152</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2013-05-29 10:18:41 -0700</bug_when>
    <thetext>Comment on attachment 203152
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895014</commentid>
    <comment_count>3</comment_count>
      <attachid>203152</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-29 10:36:21 -0700</bug_when>
    <thetext>Comment on attachment 203152
Patch

Rejecting attachment 203152 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 203152, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
Kit/blackberry/WebKitSupport/AboutData.cpp
Hunk #1 FAILED at 67.
Hunk #2 succeeded at 194 (offset -1 lines).
Hunk #3 succeeded at 226 (offset -1 lines).
Hunk #4 succeeded at 248 (offset -1 lines).
Hunk #5 succeeded at 418 (offset -1 lines).
1 out of 5 hunks FAILED -- saving rejects to file Source/WebKit/blackberry/WebKitSupport/AboutData.cpp.rej

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Rob Buis&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/683433</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895023</commentid>
    <comment_count>4</comment_count>
      <attachid>203217</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-05-29 10:49:05 -0700</bug_when>
    <thetext>Created attachment 203217
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895095</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-29 11:36:40 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 203217:

platform/mac/editing/deleting/deletionUI-single-instance.html bug 114181 (author: rniwa@webkit.org)
transitions/color-transition-rounding.html bug 114182 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-svg-length.html bug 114183 (author: peter@chromium.org)
transitions/interrupt-zero-duration.html bug 114184 (authors: cmarrin@apple.com, rniwa@webkit.org, and simon.fraser@apple.com)
transitions/multiple-background-transitions.html bug 114185 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-color.html bug 114186 (author: peter@chromium.org)
transitions/multiple-shadow-transitions.html bug 114187 (author: simon.fraser@apple.com)
transitions/mismatched-shadow-transitions.html bug 114188 (author: simon.fraser@apple.com)
transitions/color-transition-all.html bug 114189 (authors: ossy@webkit.org and simon.fraser@apple.com)
transitions/negative-delay.html bug 114190 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-shadow.html bug 114191 (author: peter@chromium.org)
transitions/min-max-width-height-transitions.html bug 114192 (author: simon.fraser@apple.com)
transitions/cancel-transition.html bug 114193 (authors: ojan@chromium.org, rniwa@webkit.org, and simon.fraser@apple.com)
transitions/border-radius-transition.html bug 114194 (author: simon.fraser@apple.com)
transitions/flex-transitions.html bug 114195 (author: tony@chromium.org)
transitions/mixed-type.html bug 114196 (author: mikelawther@chromium.org)
transitions/multiple-mask-transitions.html bug 114197 (author: simon.fraser@apple.com)
transitions/color-transition-premultiplied.html bug 114198 (author: simon.fraser@apple.com)
transitions/mismatched-shadow-styles.html bug 114199 (author: simon.fraser@apple.com)
transitions/mask-transitions.html bug 114200 (authors: ojan@chromium.org, oliver@apple.com, and simon.fraser@apple.com)
transitions/cubic-bezier-overflow-length.html bug 114201 (author: peter@chromium.org)
transitions/multiple-background-size-transitions.html bug 114202 (authors: mitz@webkit.org and simon.fraser@apple.com)
transitions/clip-transition.html bug 114203 (authors: dglazkov@chromium.org, krit@webkit.org, and simon.fraser@apple.com)
transitions/cubic-bezier-overflow-transform.html bug 114204 (author: peter@chromium.org)
transitions/interrupted-accelerated-transition.html bug 56242 (authors: rniwa@webkit.org, simon.fraser@apple.com, and tonyg@chromium.org)
transitions/background-transitions.html bug 114206 (author: simon.fraser@apple.com)
http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html bug 114208 (authors: abarth@webkit.org and rniwa@webkit.org)
http/tests/inspector/inspect-element.html bug 78869 (author: pfeldman@chromium.org)
fast/dom/Window/window-postmessage-clone.html bug 40123 (authors: mrobinson@webkit.org, oliver@apple.com, and vitalyr@chromium.org)
fast/loader/javascript-url-in-object.html bug 114210 (authors: rniwa@webkit.org and sam@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895098</commentid>
    <comment_count>6</comment_count>
      <attachid>203217</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-29 11:37:33 -0700</bug_when>
    <thetext>Comment on attachment 203217
Rebased patch

Clearing flags on attachment: 203217

Committed r150913: &lt;http://trac.webkit.org/changeset/150913&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895099</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-29 11:37:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203152</attachid>
            <date>2013-05-29 04:17:57 -0700</date>
            <delta_ts>2013-05-29 10:49:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bb-string-builder.diff</filename>
            <type>text/plain</type>
            <size>30274</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGE2ZGRhMDIuLjViY2UyMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTA1LTI5ICBS
b2IgQnVpcyAgPHJidWlzQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIFVzZSBTdHJp
bmdCdWlsZGVyIGluc3RlYWQgb2YgKyBvcGVyYXRvciB0byBidWlsZCBzdHJpbmdzIGluIEFib3V0
RGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2
OTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUFIg
MjA2MTUyCisgICAgICAgIEludGVybmFsbHkgcmV2aWV3ZWQgYnkgS29ucmFkIFBpYXNjaWsKKwor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvQWJvdXREYXRhLmNwcDoKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6Y29uZmlnUGFnZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmR1
bXBKU0NUeXBlQ291bnRTZXRUb1RhYmxlSFRNTCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6Om1hbGxvY1N0YXRzKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6bWVtb3J5UGFn
ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Om1lbW9yeVBlYWtzVG9IdG1sVGFibGUp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjptZW1vcnlMaXZlUGFnZSk6CisKIDIwMTMt
MDUtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtCbGFja0JlcnJ5XSBSRUdSRVNTSU9OKHIxNTAwNzEpOiBBbmltYXRpb24gcGVyZm9ybWFu
Y2UgaXNzdWVzIGluIHNvbWUgd2Vic2l0ZXMgd2l0aCBDU1MgdHJhbnNmb3JtcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvQWJvdXREYXRhLmNwcCBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0Fib3V0RGF0YS5jcHAKaW5k
ZXggNmQ1Mzc4NC4uZjVmNDVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvQWJvdXREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9BYm91dERhdGEuY3BwCkBAIC02NywxMjQgKzY3LDEyMSBAQCB0ZW1w
bGF0ZTw+IFN0cmluZyBudW1iZXJUb0hUTUxUcjxib29sPihjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCBib29sIHRydXRoKQogCiBzdGF0aWMgU3RyaW5nIGNvbmZpZ1BhZ2UoKQogewotICAgIFN0
cmluZyBwYWdlOworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICNpZiAhZGVmaW5lZChQVUJM
SUNfQlVJTEQpIHx8ICFQVUJMSUNfQlVJTEQKLSAgICBwYWdlID0gd3JpdGVIZWFkZXIoIkNvbmZp
Z3VyYXRpb24iKQotICAgICsgIjxkaXYgY2xhc3M9XCJib3hcIj48ZGl2IGNsYXNzPVwiYm94LXRp
dGxlXCI+Q29tcGlsZXIgSW5mb3JtYXRpb248L2Rpdj48dGFibGUgY2xhc3M9J2ZpeGVkLXRhYmxl
Jz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1JT4iCisgICAgYnVpbGRlci5hcHBlbmQod3Jp
dGVIZWFkZXIoIkNvbmZpZ3VyYXRpb24iKSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8
ZGl2IGNsYXNzPVwiYm94XCI+PGRpdiBjbGFzcz1cImJveC10aXRsZVwiPkNvbXBpbGVyIEluZm9y
bWF0aW9uPC9kaXY+PHRhYmxlIGNsYXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03NSU+PGNv
bCB3aWR0aD0yNSU+Iik7CiAjaWYgQ09NUElMRVIoTVNWQykKLSAgICArICI8dHI+PHRkPk1pY3Jv
c29mdCBWaXN1YWwgQysrPC90ZD48dGQ+TVNWQzwvdGQ+PC90cj4iCi0gICAgKyAiPHRyPjx0ZD5f
TVNDX1ZFUjwvdGQ+PHRkPiIgKyBTdHJpbmc6Om51bWJlcihfTVNDX1ZFUikgKyAiPC90ZD48L3Ry
PiIKLSAgICArICI8dHI+PHRkPl9NU0NfRlVMTF9WRVI8L3RkPjx0ZD4iICsgU3RyaW5nOjpudW1i
ZXIoX01TQ19GVUxMX1ZFUikgKyAiPC90ZD48L3RyPiIKLSAgICArICI8dHI+PHRkPl9NU0NfQlVJ
TEQ8L3RkPjx0ZD4iICsgU3RyaW5nOjpudW1iZXIoX01TQ19CVUlMRCkgKyAiPC90ZD48L3RyPiIK
KyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjx0cj48dGQ+TWljcm9zb2Z0IFZpc3VhbCBDKys8
L3RkPjx0ZD5NU1ZDPC90ZD48L3RyPiIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCI8dHI+PHRkPl9N
U0NfVkVSPC90ZD48dGQ+IiArIFN0cmluZzo6bnVtYmVyKF9NU0NfVkVSKSArICI8L3RkPjwvdHI+
Iik7CisgICAgYnVpbGRlci5hcHBlbmQoIjx0cj48dGQ+X01TQ19GVUxMX1ZFUjwvdGQ+PHRkPiIg
KyBTdHJpbmc6Om51bWJlcihfTVNDX0ZVTExfVkVSKSArICI8L3RkPjwvdHI+Iik7CisgICAgYnVp
bGRlci5hcHBlbmQoIjx0cj48dGQ+X01TQ19CVUlMRDwvdGQ+PHRkPiIgKyBTdHJpbmc6Om51bWJl
cihfTVNDX0JVSUxEKSArICI8L3RkPjwvdHI+Iik7CiAjZWxpZiBDT01QSUxFUihSVkNUKQotICAg
ICsgIjx0cj48dGQ+QVJNIFJlYWxWaWV3IENvbXBpbGVyIFRvb2xraXQ8L3RkPjx0ZD5SVkNUPC90
ZD48L3RyPiIKLSAgICArICI8dHI+PHRkPl9fQVJNQ0NfVkVSU0lPTjwvdGQ+PHRkPiIgKyBTdHJp
bmc6Om51bWJlcihfX0FSTUNDX1ZFUlNJT04pICsgIjwvdGQ+PC90cj4iCisgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCI8dHI+PHRkPkFSTSBSZWFsVmlldyBDb21waWxlciBUb29sa2l0PC90ZD48
dGQ+UlZDVDwvdGQ+PC90cj4iKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiPHRyPjx0ZD5fX0FSTUND
X1ZFUlNJT048L3RkPjx0ZD4iICsgU3RyaW5nOjpudW1iZXIoX19BUk1DQ19WRVJTSU9OKSArICI8
L3RkPjwvdHI+Iik7CiAjaWYgQ09NUElMRVIoUlZDVDRHTlUpCi0gICAgKyAiPHRyPjx0ZD5SVkNU
IDQrIGluIC0tZ251IG1vZGU8L3RkPjx0ZD4xPC90ZD48L3RyPiIKKyAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIjx0cj48dGQ+UlZDVCA0KyBpbiAtLWdudSBtb2RlPC90ZD48dGQ+MTwvdGQ+PC90
cj4iKTsKICNlbmRpZgogI2VsaWYgQ09NUElMRVIoR0NDKQotICAgICsgIjx0cj48dGQ+R0NDPC90
ZD48dGQ+IiArIFN0cmluZzo6bnVtYmVyKF9fR05VQ19fKSArICIuIiArIFN0cmluZzo6bnVtYmVy
KF9fR05VQ19NSU5PUl9fKSArICIuIiArIFN0cmluZzo6bnVtYmVyKF9fR05VQ19QQVRDSExFVkVM
X18pICsgIjwvdGQ+PC90cj4iCisgICAgYnVpbGRlci5hcHBlbmQoIjx0cj48dGQ+R0NDPC90ZD48
dGQ+IiArIFN0cmluZzo6bnVtYmVyKF9fR05VQ19fKSArICIuIiArIFN0cmluZzo6bnVtYmVyKF9f
R05VQ19NSU5PUl9fKSArICIuIiArIFN0cmluZzo6bnVtYmVyKF9fR05VQ19QQVRDSExFVkVMX18p
ICsgIjwvdGQ+PC90cj4iKTsKICNlbmRpZgogCiAgICAgLy8gQWRkICIiIHRvIHNhdGlzZnkgY2hl
Y2std2Via2l0LXN0eWxlLgotICAgICsgIiI7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIi
KTsKIAotICAgIHBhZ2UgKz0gU3RyaW5nKCI8L3RhYmxlPjwvZGl2Pjxicj48ZGl2IGNsYXNzPSdi
b3gnPjxkaXYgY2xhc3M9J2JveC10aXRsZSc+Q1BVIEluZm9ybWF0aW9uPC9kaXY+PHRhYmxlIGNs
YXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03NSU+PGNvbCB3aWR0aD0yNSU+IikKKyAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIjwvdGFibGU+PC9kaXY+PGJyPjxkaXYgY2xhc3M9J2JveCc+
PGRpdiBjbGFzcz0nYm94LXRpdGxlJz5DUFUgSW5mb3JtYXRpb248L2Rpdj48dGFibGUgY2xhc3M9
J2ZpeGVkLXRhYmxlJz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1JT4iKSk7CiAjaWYgQ1BV
KFg4NikKLSAgICArICI8dHI+PHRkPlg4NjwvdGQ+PHRkPjwvdGQ+PC90cj4iCisgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI8dHI+PHRkPlg4NjwvdGQ+PHRkPjwvdGQ+PC90cj4iKTsKICNlbGlm
IENQVShBUk0pCi0gICAgKyAiPHRyPjx0ZD5BUk08L3RkPjx0ZD48L3RkPjwvdHI+IgotICAgICsg
Ijx0cj48dGQ+QVJNX0FSQ0hfVkVSU0lPTjwvdGQ+PHRkPiIgKyBTdHJpbmc6Om51bWJlcihXVEZf
QVJNX0FSQ0hfVkVSU0lPTikgKyAiPC90ZD48L3RyPiIKLSAgICArICI8dHI+PHRkPlRIVU1CX0FS
Q0hfVkVSU0lPTjwvdGQ+PHRkPiIgKyBTdHJpbmc6Om51bWJlcihXVEZfVEhVTUJfQVJDSF9WRVJT
SU9OKSArICI8L3RkPjwvdHI+IgotICAgICsgIjx0cj48dGQ+VEhVTUIyPC90ZD48dGQ+IiArIFN0
cmluZzo6bnVtYmVyKFdURl9DUFVfQVJNX1RIVU1CMikgKyAiPC90ZD48L3RyPiIKKyAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIjx0cj48dGQ+QVJNPC90ZD48dGQ+PC90ZD48L3RyPiIpOworICAg
IGJ1aWxkZXIuYXBwZW5kKCI8dHI+PHRkPkFSTV9BUkNIX1ZFUlNJT048L3RkPjx0ZD4iICsgU3Ry
aW5nOjpudW1iZXIoV1RGX0FSTV9BUkNIX1ZFUlNJT04pICsgIjwvdGQ+PC90cj4iKTsKKyAgICBi
dWlsZGVyLmFwcGVuZCgiPHRyPjx0ZD5USFVNQl9BUkNIX1ZFUlNJT048L3RkPjx0ZD4iICsgU3Ry
aW5nOjpudW1iZXIoV1RGX1RIVU1CX0FSQ0hfVkVSU0lPTikgKyAiPC90ZD48L3RyPiIpOworICAg
IGJ1aWxkZXIuYXBwZW5kKCI8dHI+PHRkPlRIVU1CMjwvdGQ+PHRkPiIgKyBTdHJpbmc6Om51bWJl
cihXVEZfQ1BVX0FSTV9USFVNQjIpICsgIjwvdGQ+PC90cj4iKTsKICNlbmRpZgotICAgICsgIjx0
cj48dGQ+RW5kaWFubmVzczwvdGQ+PHRkPiIKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjx0
cj48dGQ+RW5kaWFubmVzczwvdGQ+PHRkPiIpOwogI2lmIENQVShCSUdfRU5ESUFOKQotICAgICsg
ImJpZyIKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImJpZyIpOwogI2VsaWYgQ1BVKE1JRERM
RV9FTkRJQU4pCi0gICAgKyAibWlkZGxlIgorICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgibWlk
ZGxlIik7CiAjZWxzZQotICAgICsgImxpdHRsZSIKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
ImxpdHRsZSIpOwogI2VuZGlmCi0gICAgKyAiPC90ZD48L3RyPiI7CisgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCI8L3RkPjwvdHI+Iik7CiAKLSAgICBwYWdlICs9IFN0cmluZygiPC90YWJsZT48
L2Rpdj48YnI+PGRpdiBjbGFzcz0nYm94Jz48ZGl2IGNsYXNzPSdib3gtdGl0bGUnPlBsYXRmb3Jt
IEluZm9ybWF0aW9uPC9kaXY+PHRhYmxlIGNsYXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03
NSU+PGNvbCB3aWR0aD0yNSU+IikKLSAgICArICI8dHI+PHRkPldlYktpdCBWZXJzaW9uPC90ZD48
dGQ+IiArIFN0cmluZzo6bnVtYmVyKFdFQktJVF9NQUpPUl9WRVJTSU9OKSArICIuIiArIFN0cmlu
Zzo6bnVtYmVyKFdFQktJVF9NSU5PUl9WRVJTSU9OKSArICI8L3RkPjwvdHI+IgotICAgICsgIjx0
cj48dGQ+QmxhY2tCZXJyeTwvdGQ+PHRkPiIKKyAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjwv
dGFibGU+PC9kaXY+PGJyPjxkaXYgY2xhc3M9J2JveCc+PGRpdiBjbGFzcz0nYm94LXRpdGxlJz5Q
bGF0Zm9ybSBJbmZvcm1hdGlvbjwvZGl2Pjx0YWJsZSBjbGFzcz0nZml4ZWQtdGFibGUnPjxjb2wg
d2lkdGg9NzUlPjxjb2wgd2lkdGg9MjUlPiIpKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiPHRyPjx0
ZD5XZWJLaXQgVmVyc2lvbjwvdGQ+PHRkPiIgKyBTdHJpbmc6Om51bWJlcihXRUJLSVRfTUFKT1Jf
VkVSU0lPTikgKyAiLiIgKyBTdHJpbmc6Om51bWJlcihXRUJLSVRfTUlOT1JfVkVSU0lPTikgKyAi
PC90ZD48L3RyPiIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPHRyPjx0ZD5CbGFja0Jl
cnJ5PC90ZD48dGQ+Iik7CiAjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKLSAgICArICIxIgorICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiMSIpOwogI2Vsc2UKLSAgICArICIwIgorICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiMCIpOwogI2VuZGlmCi0gICAgKyAiPC90ZD48L3RyPiIKLSAgICAr
ICI8dHI+PHRkPl9fU1REQ19JU09fMTA2NDZfXzwvdGQ+PHRkPiIKKyAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIjwvdGQ+PC90cj4iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjx0cj48
dGQ+X19TVERDX0lTT18xMDY0Nl9fPC90ZD48dGQ+Iik7CiAjaWZkZWYgX19TVERDX0lTT18xMDY0
Nl9fCi0gICAgKyAiMSIKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjEiKTsKICNlbHNlCi0g
ICAgKyAiMCIKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjAiKTsKICNlbmRpZgotICAgICsg
IjwvdGQ+PC90cj4iOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC90ZD48L3RyPiIpOwog
CiAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlNldHRpbmdzKiBzZXR0aW5ncyA9IEJsYWNrQmVy
cnk6OlBsYXRmb3JtOjpTZXR0aW5nczo6aW5zdGFuY2UoKTsKLSAgICBwYWdlICs9IFN0cmluZygi
PC90YWJsZT48L2Rpdj48YnI+PGRpdiBjbGFzcz0nYm94Jz48ZGl2IGNsYXNzPSdib3gtdGl0bGUn
PlBsYXRmb3JtIFNldHRpbmdzPC9kaXY+PHRhYmxlIHN0eWxlPSdmb250LXNpemU6MTFweDsnIGNs
YXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03NSU+PGNvbCB3aWR0aD0yNSU+Iik7Ci0gICAg
cGFnZSArPSBudW1iZXJUb0hUTUxUcigiaXNSU1NGaWx0ZXJpbmdFbmFibGVkIiwgc2V0dGluZ3Mt
PmlzUlNTRmlsdGVyaW5nRW5hYmxlZCgpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJz
ZWNvbmRhcnlUaHJlYWRTdGFja1NpemUiLCBzZXR0aW5ncy0+c2Vjb25kYXJ5VGhyZWFkU3RhY2tT
aXplKCkpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoIm1heFBpeGVsc1BlckRlY29kZWRJ
bWFnZSIsIHNldHRpbmdzLT5tYXhQaXhlbHNQZXJEZWNvZGVkSW1hZ2UoKSk7Ci0gICAgcGFnZSAr
PSBudW1iZXJUb0hUTUxUcigic2hvdWxkUmVwb3J0TG93TWVtb3J5VG9Vc2VyIiwgc2V0dGluZ3Mt
PnNob3VsZFJlcG9ydExvd01lbW9yeVRvVXNlcigpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRN
TFRyKCJudW1iZXJPZkJhY2tpbmdTdG9yZUZyb250QnVmZmVycyIsIHNldHRpbmdzLT5udW1iZXJP
ZkJhY2tpbmdTdG9yZUZyb250QnVmZmVycygpKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxU
cigibnVtYmVyT2ZCYWNraW5nU3RvcmVCYWNrQnVmZmVycyIsIHNldHRpbmdzLT5udW1iZXJPZkJh
Y2tpbmdTdG9yZUJhY2tCdWZmZXJzKCkpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJt
YXhpbXVtTnVtYmVyT2ZCYWNraW5nLi4uQWNyb3NzUHJvY2Vzc2VzIiwgc2V0dGluZ3MtPm1heGlt
dW1OdW1iZXJPZkJhY2tpbmdTdG9yZVRpbGVzQWNyb3NzUHJvY2Vzc2VzKCkpOwotICAgIHBhZ2Ug
Kz0gbnVtYmVyVG9IVE1MVHIoInRhYnNTdXBwb3J0ZWRCeUNsaWVudCIsIHNldHRpbmdzLT50YWJz
U3VwcG9ydGVkQnlDbGllbnQoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiY29udGV4
dE1lbnVFbmFibGVkIiwgc2V0dGluZ3MtPmNvbnRleHRNZW51RW5hYmxlZCgpKTsKLSAgICBwYWdl
ICs9IG51bWJlclRvSFRNTFRyKCJzZWxlY3Rpb25FbmFibGVkIiwgc2V0dGluZ3MtPnNlbGVjdGlv
bkVuYWJsZWQoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiZmluZUN1cnNvckNvbnRy
b2xFbmFibGVkIiwgc2V0dGluZ3MtPmZpbmVDdXJzb3JDb250cm9sRW5hYmxlZCgpKTsKLSAgICBw
YWdlICs9IG51bWJlclRvSFRNTFRyKCJhbHdheXNTaG93S2V5Ym9hcmRPbkZvY3VzIiwgc2V0dGlu
Z3MtPmFsd2F5c1Nob3dLZXlib2FyZE9uRm9jdXMoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hU
TUxUcigiYWxsb3dlZFNjcm9sbEFkanVzdG1lbnRGb3JJbnB1dEZpZWxkcyIsIHNldHRpbmdzLT5h
bGxvd2VkU2Nyb2xsQWRqdXN0bWVudEZvcklucHV0RmllbGRzKCkpOwotICAgIHBhZ2UgKz0gbnVt
YmVyVG9IVE1MVHIoInVucmVzdHJpY3RlZFJlc2l6ZUV2ZW50cyIsIHNldHRpbmdzLT51bnJlc3Ry
aWN0ZWRSZXNpemVFdmVudHMoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiaXNCcmlk
Z2VCcm93c2VyIiwgc2V0dGluZ3MtPmlzQnJpZGdlQnJvd3NlcigpKTsKLSAgICBwYWdlICs9IG51
bWJlclRvSFRNTFRyKCJzaG93SW1hZ2VMb2NhdGlvbk9wdGlvbnNJbkdDTSIsIHNldHRpbmdzLT5z
aG93SW1hZ2VMb2NhdGlvbk9wdGlvbnNJbkdDTSgpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRN
TFRyKCJmb3JjZUdMRVMyV2luZG93VXNhZ2UiLCBzZXR0aW5ncy0+Zm9yY2VHTEVTMldpbmRvd1Vz
YWdlKCkpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoIm1heENsaWNrYWJsZVNwZWVkIiwg
c2V0dGluZ3MtPm1heENsaWNrYWJsZVNwZWVkKCkpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1M
VHIoIm1heEppdHRlclJhZGl1c0NsaWNrIiwgc2V0dGluZ3MtPm1heEppdHRlclJhZGl1c0NsaWNr
KCkpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoIm1heEppdHRlclJhZGl1c1RhcCIsIHNl
dHRpbmdzLT5tYXhKaXR0ZXJSYWRpdXNUYXAoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxU
cigibWF4Sml0dGVyUmFkaXVzU2luZ2xlVG91Y2hNb3ZlIiwgc2V0dGluZ3MtPm1heEppdHRlclJh
ZGl1c1NpbmdsZVRvdWNoTW92ZSgpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJtYXhK
aXR0ZXJSYWRpdXNUb3VjaEhvbGQiLCBzZXR0aW5ncy0+bWF4Sml0dGVyUmFkaXVzVG91Y2hIb2xk
KCkpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoIm1heEppdHRlclJhZGl1c0hhbmRsZURy
YWciLCBzZXR0aW5ncy0+bWF4Sml0dGVyUmFkaXVzSGFuZGxlRHJhZygpKTsKLSAgICBwYWdlICs9
IG51bWJlclRvSFRNTFRyKCJtYXhKaXR0ZXJSYWRpdXNUYXBIaWdobGlnaHQiLCBzZXR0aW5ncy0+
bWF4Sml0dGVyUmFkaXVzVGFwSGlnaGxpZ2h0KCkpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1M
VHIoIm1heEppdHRlckRpc3RhbmNlQ2xpY2siLCBzZXR0aW5ncy0+bWF4Sml0dGVyRGlzdGFuY2VD
bGljaygpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJtYXhKaXR0ZXJEaXN0YW5jZVRh
cCIsIHNldHRpbmdzLT5tYXhKaXR0ZXJEaXN0YW5jZVRhcCgpKTsKLSAgICBwYWdlICs9IG51bWJl
clRvSFRNTFRyKCJtYXhKaXR0ZXJEaXN0YW5jZVNpbmdsZVRvdWNoTW92ZSIsIHNldHRpbmdzLT5t
YXhKaXR0ZXJEaXN0YW5jZVNpbmdsZVRvdWNoTW92ZSgpKTsKLSAgICBwYWdlICs9IG51bWJlclRv
SFRNTFRyKCJtYXhKaXR0ZXJEaXN0YW5jZVRvdWNoSG9sZCIsIHNldHRpbmdzLT5tYXhKaXR0ZXJE
aXN0YW5jZVRvdWNoSG9sZCgpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJtYXhKaXR0
ZXJEaXN0YW5jZVRhcEhpZ2hsaWdodCIsIHNldHRpbmdzLT5tYXhKaXR0ZXJEaXN0YW5jZVRhcEhp
Z2hsaWdodCgpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJtYXhKaXR0ZXJEaXN0YW5j
ZUhhbmRsZURyYWciLCBzZXR0aW5ncy0+bWF4Sml0dGVyRGlzdGFuY2VIYW5kbGVEcmFnKCkpOwot
ICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoInRvcEZhdEZpbmdlclBhZGRpbmciLCBzZXR0aW5n
cy0+dG9wRmF0RmluZ2VyUGFkZGluZygpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJy
aWdodEZhdEZpbmdlclBhZGRpbmciLCBzZXR0aW5ncy0+cmlnaHRGYXRGaW5nZXJQYWRkaW5nKCkp
OwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoImJvdHRvbUZhdEZpbmdlclBhZGRpbmciLCBz
ZXR0aW5ncy0+Ym90dG9tRmF0RmluZ2VyUGFkZGluZygpKTsKLSAgICBwYWdlICs9IG51bWJlclRv
SFRNTFRyKCJtYXhTZWxlY3Rpb25OZWNrSGVpZ2h0Iiwgc2V0dGluZ3MtPm1heFNlbGVjdGlvbk5l
Y2tIZWlnaHQoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigibGVmdEZhdEZpbmdlclBh
ZGRpbmciLCBzZXR0aW5ncy0+bGVmdEZhdEZpbmdlclBhZGRpbmcoKSk7CisgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nKCI8L3RhYmxlPjwvZGl2Pjxicj48ZGl2IGNsYXNzPSdib3gnPjxkaXYgY2xh
c3M9J2JveC10aXRsZSc+UGxhdGZvcm0gU2V0dGluZ3M8L2Rpdj48dGFibGUgc3R5bGU9J2ZvbnQt
c2l6ZToxMXB4OycgY2xhc3M9J2ZpeGVkLXRhYmxlJz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRo
PTI1JT4iKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoImlzUlNTRmlsdGVy
aW5nRW5hYmxlZCIsIHNldHRpbmdzLT5pc1JTU0ZpbHRlcmluZ0VuYWJsZWQoKSkpOworICAgIGJ1
aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJtYXhQaXhlbHNQZXJEZWNvZGVkSW1hZ2UiLCBz
ZXR0aW5ncy0+bWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlKCkpKTsKKyAgICBidWlsZGVyLmFwcGVu
ZChudW1iZXJUb0hUTUxUcigic2hvdWxkUmVwb3J0TG93TWVtb3J5VG9Vc2VyIiwgc2V0dGluZ3Mt
PnNob3VsZFJlcG9ydExvd01lbW9yeVRvVXNlcigpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVt
YmVyVG9IVE1MVHIoIm51bWJlck9mQmFja2luZ1N0b3JlRnJvbnRCdWZmZXJzIiwgc2V0dGluZ3Mt
Pm51bWJlck9mQmFja2luZ1N0b3JlRnJvbnRCdWZmZXJzKCkpKTsKKyAgICBidWlsZGVyLmFwcGVu
ZChudW1iZXJUb0hUTUxUcigibnVtYmVyT2ZCYWNraW5nU3RvcmVCYWNrQnVmZmVycyIsIHNldHRp
bmdzLT5udW1iZXJPZkJhY2tpbmdTdG9yZUJhY2tCdWZmZXJzKCkpKTsKKyAgICBidWlsZGVyLmFw
cGVuZChudW1iZXJUb0hUTUxUcigibWF4aW11bU51bWJlck9mQmFja2luZy4uLkFjcm9zc1Byb2Nl
c3NlcyIsIHNldHRpbmdzLT5tYXhpbXVtTnVtYmVyT2ZCYWNraW5nU3RvcmVUaWxlc0Fjcm9zc1By
b2Nlc3NlcygpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoInRhYnNTdXBw
b3J0ZWRCeUNsaWVudCIsIHNldHRpbmdzLT50YWJzU3VwcG9ydGVkQnlDbGllbnQoKSkpOworICAg
IGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJjb250ZXh0TWVudUVuYWJsZWQiLCBzZXR0
aW5ncy0+Y29udGV4dE1lbnVFbmFibGVkKCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJU
b0hUTUxUcigic2VsZWN0aW9uRW5hYmxlZCIsIHNldHRpbmdzLT5zZWxlY3Rpb25FbmFibGVkKCkp
KTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigiZmluZUN1cnNvckNvbnRyb2xF
bmFibGVkIiwgc2V0dGluZ3MtPmZpbmVDdXJzb3JDb250cm9sRW5hYmxlZCgpKSk7CisgICAgYnVp
bGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoImFsd2F5c1Nob3dLZXlib2FyZE9uRm9jdXMiLCBz
ZXR0aW5ncy0+YWx3YXlzU2hvd0tleWJvYXJkT25Gb2N1cygpKSk7CisgICAgYnVpbGRlci5hcHBl
bmQobnVtYmVyVG9IVE1MVHIoImFsbG93ZWRTY3JvbGxBZGp1c3RtZW50Rm9ySW5wdXRGaWVsZHMi
LCBzZXR0aW5ncy0+YWxsb3dlZFNjcm9sbEFkanVzdG1lbnRGb3JJbnB1dEZpZWxkcygpKSk7Cisg
ICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoInVucmVzdHJpY3RlZFJlc2l6ZUV2ZW50
cyIsIHNldHRpbmdzLT51bnJlc3RyaWN0ZWRSZXNpemVFdmVudHMoKSkpOworICAgIGJ1aWxkZXIu
YXBwZW5kKG51bWJlclRvSFRNTFRyKCJpc0JyaWRnZUJyb3dzZXIiLCBzZXR0aW5ncy0+aXNCcmlk
Z2VCcm93c2VyKCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigic2hvd0lt
YWdlTG9jYXRpb25PcHRpb25zSW5HQ00iLCBzZXR0aW5ncy0+c2hvd0ltYWdlTG9jYXRpb25PcHRp
b25zSW5HQ00oKSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJmb3JjZUdM
RVMyV2luZG93VXNhZ2UiLCBzZXR0aW5ncy0+Zm9yY2VHTEVTMldpbmRvd1VzYWdlKCkpKTsKKyAg
ICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigibWF4Q2xpY2thYmxlU3BlZWQiLCBzZXR0
aW5ncy0+bWF4Q2xpY2thYmxlU3BlZWQoKSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRv
SFRNTFRyKCJtYXhKaXR0ZXJSYWRpdXNDbGljayIsIHNldHRpbmdzLT5tYXhKaXR0ZXJSYWRpdXND
bGljaygpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIm1heEppdHRlclJh
ZGl1c1RhcCIsIHNldHRpbmdzLT5tYXhKaXR0ZXJSYWRpdXNUYXAoKSkpOworICAgIGJ1aWxkZXIu
YXBwZW5kKG51bWJlclRvSFRNTFRyKCJtYXhKaXR0ZXJSYWRpdXNTaW5nbGVUb3VjaE1vdmUiLCBz
ZXR0aW5ncy0+bWF4Sml0dGVyUmFkaXVzU2luZ2xlVG91Y2hNb3ZlKCkpKTsKKyAgICBidWlsZGVy
LmFwcGVuZChudW1iZXJUb0hUTUxUcigibWF4Sml0dGVyUmFkaXVzVG91Y2hIb2xkIiwgc2V0dGlu
Z3MtPm1heEppdHRlclJhZGl1c1RvdWNoSG9sZCgpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVt
YmVyVG9IVE1MVHIoIm1heEppdHRlclJhZGl1c0hhbmRsZURyYWciLCBzZXR0aW5ncy0+bWF4Sml0
dGVyUmFkaXVzSGFuZGxlRHJhZygpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1M
VHIoIm1heEppdHRlckRpc3RhbmNlQ2xpY2siLCBzZXR0aW5ncy0+bWF4Sml0dGVyRGlzdGFuY2VD
bGljaygpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIm1heEppdHRlckRp
c3RhbmNlVGFwIiwgc2V0dGluZ3MtPm1heEppdHRlckRpc3RhbmNlVGFwKCkpKTsKKyAgICBidWls
ZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigibWF4Sml0dGVyRGlzdGFuY2VTaW5nbGVUb3VjaE1v
dmUiLCBzZXR0aW5ncy0+bWF4Sml0dGVyRGlzdGFuY2VTaW5nbGVUb3VjaE1vdmUoKSkpOworICAg
IGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJtYXhKaXR0ZXJEaXN0YW5jZVRvdWNoSG9s
ZCIsIHNldHRpbmdzLT5tYXhKaXR0ZXJEaXN0YW5jZVRvdWNoSG9sZCgpKSk7CisgICAgYnVpbGRl
ci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIm1heEppdHRlckRpc3RhbmNlSGFuZGxlRHJhZyIsIHNl
dHRpbmdzLT5tYXhKaXR0ZXJEaXN0YW5jZUhhbmRsZURyYWcoKSkpOworICAgIGJ1aWxkZXIuYXBw
ZW5kKG51bWJlclRvSFRNTFRyKCJ0b3BGYXRGaW5nZXJQYWRkaW5nIiwgc2V0dGluZ3MtPnRvcEZh
dEZpbmdlclBhZGRpbmcoKSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJy
aWdodEZhdEZpbmdlclBhZGRpbmciLCBzZXR0aW5ncy0+cmlnaHRGYXRGaW5nZXJQYWRkaW5nKCkp
KTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigiYm90dG9tRmF0RmluZ2VyUGFk
ZGluZyIsIHNldHRpbmdzLT5ib3R0b21GYXRGaW5nZXJQYWRkaW5nKCkpKTsKKyAgICBidWlsZGVy
LmFwcGVuZChudW1iZXJUb0hUTUxUcigibWF4U2VsZWN0aW9uTmVja0hlaWdodCIsIHNldHRpbmdz
LT5tYXhTZWxlY3Rpb25OZWNrSGVpZ2h0KCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJU
b0hUTUxUcigibGVmdEZhdEZpbmdlclBhZGRpbmciLCBzZXR0aW5ncy0+bGVmdEZhdEZpbmdlclBh
ZGRpbmcoKSkpOwogCiAgICAgVmVjdG9yPFN0cmluZz4gdHJ1ZUxpc3QsIGZhbHNlTGlzdDsKLSAg
ICAjaW5jbHVkZSAiQWJvdXREYXRhRW5hYmxlRmVhdHVyZXMuY3BwIgotICAgIHBhZ2UgKz0gU3Ry
aW5nKCI8L3RhYmxlPjwvZGl2Pjxicj48ZGl2IGNsYXNzPSdib3gnPjxkaXYgY2xhc3M9J2JveC10
aXRsZSc+V2ViS2l0IEZlYXR1cmVzIChFTkFCTEVfKTwvZGl2Pjx0YWJsZSBjbGFzcz0nZml4ZWQt
dGFibGUnPiIpOworI2luY2x1ZGUgIkFib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmNwcCIKKyAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIjwvdGFibGU+PC9kaXY+PGJyPjxkaXYgY2xhc3M9J2JveCc+
PGRpdiBjbGFzcz0nYm94LXRpdGxlJz5XZWJLaXQgRmVhdHVyZXMgKEVOQUJMRV8pPC9kaXY+PHRh
YmxlIGNsYXNzPSdmaXhlZC10YWJsZSc+IikpOwogCi0gICAgcGFnZSArPSB3cml0ZUZlYXR1cmVz
KHRydWVMaXN0LCBmYWxzZUxpc3QpOworICAgIGJ1aWxkZXIuYXBwZW5kKHdyaXRlRmVhdHVyZXMo
dHJ1ZUxpc3QsIGZhbHNlTGlzdCkpOwogCiAgICAgdHJ1ZUxpc3QuY2xlYXIoKTsKICAgICBmYWxz
ZUxpc3QuY2xlYXIoKTsKLSAgICAjaW5jbHVkZSAiQWJvdXREYXRhSGF2ZUZlYXR1cmVzLmNwcCIK
LSAgICBwYWdlICs9IFN0cmluZygiPC90YWJsZT48L2Rpdj48YnI+PGRpdiBjbGFzcz0nYm94Jz48
ZGl2IGNsYXNzPSdib3gtdGl0bGUnPldlYktpdCBGZWF0dXJlcyAoSEFWRV8pPC9kaXY+PHRhYmxl
IGNsYXNzPSdmaXhlZC10YWJsZSc+Iik7CisjaW5jbHVkZSAiQWJvdXREYXRhSGF2ZUZlYXR1cmVz
LmNwcCIKKyAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjwvdGFibGU+PC9kaXY+PGJyPjxkaXYg
Y2xhc3M9J2JveCc+PGRpdiBjbGFzcz0nYm94LXRpdGxlJz5XZWJLaXQgRmVhdHVyZXMgKEhBVkVf
KTwvZGl2Pjx0YWJsZSBjbGFzcz0nZml4ZWQtdGFibGUnPiIpKTsKIAotICAgIHBhZ2UgKz0gd3Jp
dGVGZWF0dXJlcyh0cnVlTGlzdCwgZmFsc2VMaXN0KTsKKyAgICBidWlsZGVyLmFwcGVuZCh3cml0
ZUZlYXR1cmVzKHRydWVMaXN0LCBmYWxzZUxpc3QpKTsKIAogICAgIHRydWVMaXN0LmNsZWFyKCk7
CiAgICAgZmFsc2VMaXN0LmNsZWFyKCk7Ci0gICAgI2luY2x1ZGUgIkFib3V0RGF0YVVzZUZlYXR1
cmVzLmNwcCIKLSAgICBwYWdlICs9IFN0cmluZygiPC90YWJsZT48L2Rpdj48YnI+PGRpdiBjbGFz
cz0nYm94Jz48ZGl2IGNsYXNzPSdib3gtdGl0bGUnPldlYktpdCBGZWF0dXJlcyAoVVNFXyk8L2Rp
dj48dGFibGUgY2xhc3M9J2ZpeGVkLXRhYmxlJz4iKTsKLSAgICBwYWdlICs9IHdyaXRlRmVhdHVy
ZXModHJ1ZUxpc3QsIGZhbHNlTGlzdCk7Ci0gICAgcGFnZSArPSBTdHJpbmcoIjwvdGFibGU+PC9k
aXY+PC9ib2R5PjwvaHRtbD4iKTsKKyNpbmNsdWRlICJBYm91dERhdGFVc2VGZWF0dXJlcy5jcHAi
CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCI8L3RhYmxlPjwvZGl2Pjxicj48ZGl2IGNsYXNz
PSdib3gnPjxkaXYgY2xhc3M9J2JveC10aXRsZSc+V2ViS2l0IEZlYXR1cmVzIChVU0VfKTwvZGl2
Pjx0YWJsZSBjbGFzcz0nZml4ZWQtdGFibGUnPiIpKTsKKyAgICBidWlsZGVyLmFwcGVuZCh3cml0
ZUZlYXR1cmVzKHRydWVMaXN0LCBmYWxzZUxpc3QpKTsKKyAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmcoIjwvdGFibGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4iKSk7CiAjZW5kaWYKIAotICAgIHJldHVy
biBwYWdlOworICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAKIHN0YXRpYyBTdHJp
bmcgY2FjaGVUeXBlU3RhdGlzdGljVG9IVE1MVHIoY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwg
Y29uc3QgTWVtb3J5Q2FjaGU6OlR5cGVTdGF0aXN0aWMmIHN0YXRpc3RpYykKQEAgLTE5OCwyNyAr
MTk1LDI3IEBAIHN0YXRpYyBTdHJpbmcgY2FjaGVUeXBlU3RhdGlzdGljVG9IVE1MVHIoY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgTWVtb3J5CiAgICAgICAgICsgIjwvdHI+IjsKIH0K
IAotc3RhdGljIHZvaWQgZHVtcEpTQ1R5cGVDb3VudFNldFRvVGFibGVIVE1MKFN0cmluZyYgdGFi
bGVIVE1MLCBKU0M6OlR5cGVDb3VudFNldCogdHlwZUNvdW50U2V0KQorc3RhdGljIHZvaWQgZHVt
cEpTQ1R5cGVDb3VudFNldFRvVGFibGVIVE1MKFN0cmluZ0J1aWxkZXImIHRhYmxlSFRNTCwgSlND
OjpUeXBlQ291bnRTZXQqIHR5cGVDb3VudFNldCkKIHsKICAgICBpZiAoIXR5cGVDb3VudFNldCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChKU0M6OlR5cGVDb3VudFNldDo6Y29uc3RfaXRl
cmF0b3IgaXRlciA9IHR5cGVDb3VudFNldC0+YmVnaW4oKTsgaXRlciAhPSB0eXBlQ291bnRTZXQt
PmVuZCgpOyArK2l0ZXIpCi0gICAgICAgIHRhYmxlSFRNTCArPSBudW1iZXJUb0hUTUxUcihpdGVy
LT5rZXksIGl0ZXItPnZhbHVlKTsKKyAgICAgICAgdGFibGVIVE1MLmFwcGVuZChudW1iZXJUb0hU
TUxUcihpdGVyLT5rZXksIGl0ZXItPnZhbHVlKSk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgbWVtb3J5
UGFnZSgpCiB7Ci0gICAgU3RyaW5nIHBhZ2U7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwog
Ci0gICAgcGFnZSA9IHdyaXRlSGVhZGVyKCJNZW1vcnkiKQotICAgICsgIjxkaXYgY2xhc3M9XCJi
b3hcIj48ZGl2IGNsYXNzPVwiYm94LXRpdGxlXCI+Q2FjaGUgSW5mb3JtYXRpb248YnI+PGRpdiBz
dHlsZT0nZm9udC1zaXplOjExcHg7Y29sb3I6I0E4QThBOCc+U2l6ZSwgTGl2aW5nLCBhbmQgRGVj
b2RlZCBhcmUgZXhwcmVzc2VkIGluIEtCLjwvZGl2Pjxicj48L2Rpdj48dGFibGUgY2xhc3M9J2Zp
eGVkLXRhYmxlJz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1JT4iOworICAgIGJ1aWxkZXIu
YXBwZW5kKHdyaXRlSGVhZGVyKCJNZW1vcnkiKSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCI8ZGl2IGNsYXNzPVwiYm94XCI+PGRpdiBjbGFzcz1cImJveC10aXRsZVwiPkNhY2hlIEluZm9y
bWF0aW9uPGJyPjxkaXYgc3R5bGU9J2ZvbnQtc2l6ZToxMXB4O2NvbG9yOiNBOEE4QTgnPlNpemUs
IExpdmluZywgYW5kIERlY29kZWQgYXJlIGV4cHJlc3NlZCBpbiBLQi48L2Rpdj48YnI+PC9kaXY+
PHRhYmxlIGNsYXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03NSU+PGNvbCB3aWR0aD0yNSU+
Iik7CiAKICAgICAvLyBnZW5lcmF0ZSBjYWNoZSBpbmZvcm1hdGlvbgogICAgIE1lbW9yeUNhY2hl
KiBjYWNoZUluYyA9IG1lbW9yeUNhY2hlKCk7CiAgICAgTWVtb3J5Q2FjaGU6OlN0YXRpc3RpY3Mg
Y2FjaGVTdGF0ID0gY2FjaGVJbmMtPmdldFN0YXRpc3RpY3MoKTsKIAotICAgIHBhZ2UgKz0gIjx0
cj4gPHRoIGFsaWduPWxlZnQ+SXRlbTwvdGg+IDx0aCBhbGlnbj1sZWZ0PkNvdW50PC90aD4gPHRo
IGFsaWduPWxlZnQ+U2l6ZTwvdGg+IDx0aCBhbGlnbj1sZWZ0PkxpdmluZzwvdGg+IDx0aCBhbGln
bj1sZWZ0PkRlY29kZWQ8L3RoPjwvdHI+IjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjx0
cj4gPHRoIGFsaWduPWxlZnQ+SXRlbTwvdGg+IDx0aCBhbGlnbj1sZWZ0PkNvdW50PC90aD4gPHRo
IGFsaWduPWxlZnQ+U2l6ZTwvdGg+IDx0aCBhbGlnbj1sZWZ0PkxpdmluZzwvdGg+IDx0aCBhbGln
bj1sZWZ0PkRlY29kZWQ8L3RoPjwvdHI+Iik7CiAKICAgICBNZW1vcnlDYWNoZTo6VHlwZVN0YXRp
c3RpYyB0b3RhbDsKICAgICB0b3RhbC5jb3VudCA9IGNhY2hlU3RhdC5pbWFnZXMuY291bnQgKyBj
YWNoZVN0YXQuY3NzU3R5bGVTaGVldHMuY291bnQKQEAgLTIzMCwxNiArMjI3LDE2IEBAIHN0YXRp
YyBTdHJpbmcgbWVtb3J5UGFnZSgpCiAgICAgICAgICAgICArIGNhY2hlU3RhdC5jc3NTdHlsZVNo
ZWV0cy5kZWNvZGVkU2l6ZSArIGNhY2hlU3RhdC5zY3JpcHRzLmRlY29kZWRTaXplCiAgICAgICAg
ICAgICArIGNhY2hlU3RhdC54c2xTdHlsZVNoZWV0cy5kZWNvZGVkU2l6ZSArIGNhY2hlU3RhdC5m
b250cy5kZWNvZGVkU2l6ZTsKIAotICAgIHBhZ2UgKz0gY2FjaGVUeXBlU3RhdGlzdGljVG9IVE1M
VHIoIlRvdGFsIiwgdG90YWwpOwotICAgIHBhZ2UgKz0gY2FjaGVUeXBlU3RhdGlzdGljVG9IVE1M
VHIoIkltYWdlcyIsIGNhY2hlU3RhdC5pbWFnZXMpOwotICAgIHBhZ2UgKz0gY2FjaGVUeXBlU3Rh
dGlzdGljVG9IVE1MVHIoIkNTUyBTdHlsZSBTaGVldHMiLCBjYWNoZVN0YXQuY3NzU3R5bGVTaGVl
dHMpOwotICAgIHBhZ2UgKz0gY2FjaGVUeXBlU3RhdGlzdGljVG9IVE1MVHIoIlNjcmlwdHMiLCBj
YWNoZVN0YXQuc2NyaXB0cyk7CisgICAgYnVpbGRlci5hcHBlbmQoY2FjaGVUeXBlU3RhdGlzdGlj
VG9IVE1MVHIoIlRvdGFsIiwgdG90YWwpKTsKKyAgICBidWlsZGVyLmFwcGVuZChjYWNoZVR5cGVT
dGF0aXN0aWNUb0hUTUxUcigiSW1hZ2VzIiwgY2FjaGVTdGF0LmltYWdlcykpOworICAgIGJ1aWxk
ZXIuYXBwZW5kKGNhY2hlVHlwZVN0YXRpc3RpY1RvSFRNTFRyKCJDU1MgU3R5bGUgU2hlZXRzIiwg
Y2FjaGVTdGF0LmNzc1N0eWxlU2hlZXRzKSk7CisgICAgYnVpbGRlci5hcHBlbmQoY2FjaGVUeXBl
U3RhdGlzdGljVG9IVE1MVHIoIlNjcmlwdHMiLCBjYWNoZVN0YXQuc2NyaXB0cykpOwogI2lmIEVO
QUJMRShYU0xUKQotICAgIHBhZ2UgKz0gY2FjaGVUeXBlU3RhdGlzdGljVG9IVE1MVHIoIlhTTCBT
dHlsZSBTaGVldHMiLCBjYWNoZVN0YXQueHNsU3R5bGVTaGVldHMpOworICAgIGJ1aWxkZXIuYXBw
ZW5kKGNhY2hlVHlwZVN0YXRpc3RpY1RvSFRNTFRyKCJYU0wgU3R5bGUgU2hlZXRzIiwgY2FjaGVT
dGF0LnhzbFN0eWxlU2hlZXRzKSk7CiAjZW5kaWYKLSAgICBwYWdlICs9IGNhY2hlVHlwZVN0YXRp
c3RpY1RvSFRNTFRyKCJGb250cyIsIGNhY2hlU3RhdC5mb250cyk7CisgICAgYnVpbGRlci5hcHBl
bmQoY2FjaGVUeXBlU3RhdGlzdGljVG9IVE1MVHIoIkZvbnRzIiwgY2FjaGVTdGF0LmZvbnRzKSk7
CiAKLSAgICBwYWdlICs9ICI8L3RhYmxlPjwvZGl2Pjxicj4iOworICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiPC90YWJsZT48L2Rpdj48YnI+Iik7CiAKICNpZiAhZGVmaW5lZChQVUJMSUNfQlVJ
TEQpIHx8ICFQVUJMSUNfQlVJTEQKIApAQCAtMjUyLDY0ICsyNDksNzAgQEAgc3RhdGljIFN0cmlu
ZyBtZW1vcnlQYWdlKCkKICAgICAvLyBNYWxsb2MgaW5mby4KICAgICBzdHJ1Y3QgbWFsbGluZm8g
bWFsbG9jSW5mbyA9IG1hbGxpbmZvKCk7CiAKLSAgICBwYWdlICs9ICI8ZGl2IGNsYXNzPSdib3gn
PjxkaXYgY2xhc3M9J2JveC10aXRsZSc+UHJvY2VzcyBtZW1vcnkgdXNhZ2Ugc3VtbWFyeTwvZGl2
Pjx0YWJsZSBjbGFzcz0nZml4ZWQtdGFibGUnPjxjb2wgd2lkdGg9NzUlPjxjb2wgd2lkdGg9MjUl
PiI7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8ZGl2IGNsYXNzPSdib3gnPjxkaXYgY2xh
c3M9J2JveC10aXRsZSc+UHJvY2VzcyBtZW1vcnkgdXNhZ2Ugc3VtbWFyeTwvZGl2Pjx0YWJsZSBj
bGFzcz0nZml4ZWQtdGFibGUnPjxjb2wgd2lkdGg9NzUlPjxjb2wgd2lkdGg9MjUlPiIpOwogCi0g
ICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiVG90YWwgdXNlZCBtZW1vcnkgKG1hbGxvYyArIEpT
QykiLCBtYWxsb2NJbmZvLnVzbWJsa3MgKyBtYWxsb2NJbmZvLnVvcmRibGtzICsganNjTWVtb3J5
U3RhdC5zdGFja0J5dGVzICsganNjTWVtb3J5U3RhdC5KSVRCeXRlcyArIG1haW5IZWFwLmNhcGFj
aXR5KCkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJUb3RhbCB1c2VkIG1l
bW9yeSAobWFsbG9jICsgSlNDKSIsIG1hbGxvY0luZm8ubV9zbWFsbF9hbGxvY21lbSArIG1hbGxv
Y0luZm8ubV9hbGxvY21lbSArIGpzY01lbW9yeVN0YXQuc3RhY2tCeXRlcyArIGpzY01lbW9yeVN0
YXQuSklUQnl0ZXMgKyBtYWluSGVhcC5jYXBhY2l0eSgpKSk7CiAKICAgICBpZiAodW5zaWduZWQg
dG90YWxDb21taXR0ZWRNZW1vcnlPZkNocm9tZVByb2Nlc3MgPSBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6dG90YWxDb21taXR0ZWRNZW1vcnlPZkNocm9tZVByb2Nlc3MoKSkgewotICAgICAgICBwYWdl
ICs9IG51bWJlclRvSFRNTFRyKCJUb3RhbCBjb21taXR0ZWQgbWVtb3J5IG9mIHRhYiBwcm9jZXNz
IiwgQmxhY2tCZXJyeTo6UGxhdGZvcm06OnRvdGFsQ29tbWl0dGVkTWVtb3J5T2ZDdXJyZW50UHJv
Y2VzcygpKTsKLSAgICAgICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiVG90YWwgY29tbWl0dGVk
IG1lbW9yeSBvZiBjaHJvbWUgcHJvY2VzcyIsIHRvdGFsQ29tbWl0dGVkTWVtb3J5T2ZDaHJvbWVQ
cm9jZXNzKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlRvdGFsIGNv
bW1pdHRlZCBtZW1vcnkgb2YgdGFiIHByb2Nlc3MiLCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6dG90
YWxDb21taXR0ZWRNZW1vcnlPZkN1cnJlbnRQcm9jZXNzKCkpKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQobnVtYmVyVG9IVE1MVHIoIlRvdGFsIGNvbW1pdHRlZCBtZW1vcnkgb2YgY2hyb21lIHBy
b2Nlc3MiLCB0b3RhbENvbW1pdHRlZE1lbW9yeU9mQ2hyb21lUHJvY2VzcykpOwogICAgIH0gZWxz
ZQotICAgICAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJUb3RhbCBjb21taXR0ZWQgbWVtb3J5
IiwgQmxhY2tCZXJyeTo6UGxhdGZvcm06OnRvdGFsQ29tbWl0dGVkTWVtb3J5T2ZDdXJyZW50UHJv
Y2VzcygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlRvdGFsIGNv
bW1pdHRlZCBtZW1vcnkiLCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6dG90YWxDb21taXR0ZWRNZW1v
cnlPZkN1cnJlbnRQcm9jZXNzKCkpKTsKIAogICAgIHN0cnVjdCBzdGF0IHByb2Nlc3NJbmZvOwog
ICAgIGlmICghc3RhdChTdHJpbmc6OmZvcm1hdCgiL3Byb2MvJXUvYXMiLCBnZXRwaWQoKSkubGF0
aW4xKCkuZGF0YSgpLCAmcHJvY2Vzc0luZm8pKQotICAgICAgICBwYWdlICs9IG51bWJlclRvSFRN
TFRyKCJUb3RhbCBtYXBwZWQgbWVtb3J5IiwgcHJvY2Vzc0luZm8uc3Rfc2l6ZSk7Ci0KLSAgICBw
YWdlICs9IG51bWJlclRvSFRNTFRyKCJTeXN0ZW0gZnJlZSBtZW1vcnkiLCBCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6c3lzdGVtRnJlZU1lbW9yeSgpKTsKLQotICAgIHBhZ2UgKz0gIjwvdGFibGU+PC9k
aXY+PGJyPiI7Ci0KLSAgICBwYWdlICs9ICI8ZGl2IGNsYXNzPSdib3gnPjxkaXYgY2xhc3M9J2Jv
eC10aXRsZSc+SlMgZW5naW5lIG1lbW9yeSB1c2FnZTwvZGl2Pjx0YWJsZSBjbGFzcz0nZml4ZWQt
dGFibGUnPjxjb2wgd2lkdGg9NzUlPjxjb2wgd2lkdGg9MjUlPiI7Ci0KLSAgICBwYWdlICs9IG51
bWJlclRvSFRNTFRyKCJTdGFjayBzaXplIiwganNjTWVtb3J5U3RhdC5zdGFja0J5dGVzKTsKLSAg
ICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJKSVQgbWVtb3J5IHVzYWdlIiwganNjTWVtb3J5U3Rh
dC5KSVRCeXRlcyk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiTWFpbiBoZWFwIGNhcGFj
aXR5IiwgbWFpbkhlYXAuY2FwYWNpdHkoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigi
TWFpbiBoZWFwIHNpemUiLCBtYWluSGVhcC5zaXplKCkpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9I
VE1MVHIoIk9iamVjdCBjb3VudCIsIG1haW5IZWFwLm9iamVjdENvdW50KCkpOwotICAgIHBhZ2Ug
Kz0gbnVtYmVyVG9IVE1MVHIoIkdsb2JhbCBvYmplY3QgY291bnQiLCBtYWluSGVhcC5nbG9iYWxP
YmplY3RDb3VudCgpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJQcm90ZWN0ZWQgb2Jq
ZWN0IGNvdW50IiwgbWFpbkhlYXAucHJvdGVjdGVkT2JqZWN0Q291bnQoKSk7Ci0gICAgcGFnZSAr
PSBudW1iZXJUb0hUTUxUcigiUHJvdGVjdGVkIGdsb2JhbCBvYmplY3QgY291bnQiLCBtYWluSGVh
cC5wcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudCgpKTsKLQotICAgIHBhZ2UgKz0gIjwvdGFibGU+
PC9kaXY+PGJyPiI7Ci0KLSAgICBwYWdlICs9ICI8ZGl2IGNsYXNzPSdib3gnPjxkaXYgY2xhc3M9
J2JveC10aXRsZSc+SlMgb2JqZWN0IHR5cGUgY291bnRzPC9kaXY+PHRhYmxlIGNsYXNzPSdmaXhl
ZC10YWJsZSc+PGNvbCB3aWR0aD03NSU+PGNvbCB3aWR0aD0yNSU+IjsKLSAgICBkdW1wSlNDVHlw
ZUNvdW50U2V0VG9UYWJsZUhUTUwocGFnZSwgb2JqZWN0VHlwZUNvdW50cy5nZXQoKSk7Ci0gICAg
cGFnZSArPSAiPC90YWJsZT48L2Rpdj48YnI+IjsKLQotICAgIHBhZ2UgKz0gIjxkaXYgY2xhc3M9
J2JveCc+PGRpdiBjbGFzcz0nYm94LXRpdGxlJz5KUyBwcm90ZWN0ZWQgb2JqZWN0IHR5cGUgY291
bnRzPC9kaXY+PHRhYmxlIGNsYXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03NSU+PGNvbCB3
aWR0aD0yNSU+IjsKLSAgICBkdW1wSlNDVHlwZUNvdW50U2V0VG9UYWJsZUhUTUwocGFnZSwgcHJv
dGVjdGVkT2JqZWN0VHlwZUNvdW50cy5nZXQoKSk7Ci0gICAgcGFnZSArPSAiPC90YWJsZT48L2Rp
dj48YnI+IjsKLQotICAgIHBhZ2UgKz0gIjxkaXYgY2xhc3M9J2JveCc+PGRpdiBjbGFzcz0nYm94
LXRpdGxlJz5NYWxsb2MgSW5mb3JtYXRpb248L2Rpdj48dGFibGUgY2xhc3M9J2ZpeGVkLXRhYmxl
Jz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1JT4iOwotCi0gICAgcGFnZSArPSBudW1iZXJU
b0hUTUxUcigiVG90YWwgc3BhY2UgaW4gdXNlIiwgbWFsbG9jSW5mby51c21ibGtzICsgbWFsbG9j
SW5mby51b3JkYmxrcyk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiVG90YWwgc3BhY2Ug
aW4gZnJlZSBibG9ja3MiLCBtYWxsb2NJbmZvLmZzbWJsa3MgKyBtYWxsb2NJbmZvLmZvcmRibGtz
KTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJTaXplIG9mIHRoZSBhcmVuYSIsIG1hbGxv
Y0luZm8uYXJlbmEpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoIk51bWJlciBvZiBiaWcg
YmxvY2tzIGluIHVzZSIsIG1hbGxvY0luZm8ub3JkYmxrcyk7Ci0gICAgcGFnZSArPSBudW1iZXJU
b0hUTUxUcigiTnVtYmVyIG9mIHNtYWxsIGJsb2NrcyBpbiB1c2UiLCBtYWxsb2NJbmZvLnNtYmxr
cyk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiTnVtYmVyIG9mIGhlYWRlciBibG9ja3Mg
aW4gdXNlIiwgbWFsbG9jSW5mby5oYmxrcyk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigi
U3BhY2UgaW4gaGVhZGVyIGJsb2NrIGhlYWRlcnMiLCBtYWxsb2NJbmZvLmhibGtoZCk7Ci0gICAg
cGFnZSArPSBudW1iZXJUb0hUTUxUcigiU3BhY2UgaW4gc21hbGwgYmxvY2tzIGluIHVzZSIsIG1h
bGxvY0luZm8udXNtYmxrcyk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiTWVtb3J5IGlu
IGZyZWUgc21hbGwgYmxvY2tzIiwgbWFsbG9jSW5mby5mc21ibGtzKTsKLSAgICBwYWdlICs9IG51
bWJlclRvSFRNTFRyKCJTcGFjZSBpbiBiaWcgYmxvY2tzIGluIHVzZSIsIG1hbGxvY0luZm8udW9y
ZGJsa3MpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoIk1lbW9yeSBpbiBmcmVlIGJpZyBi
bG9ja3MiLCBtYWxsb2NJbmZvLmZvcmRibGtzKTsKLQotICAgIHBhZ2UgKz0gIjwvdGFibGU+PC9k
aXY+IjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlRvdGFsIG1hcHBl
ZCBtZW1vcnkiLCBwcm9jZXNzSW5mby5zdF9zaXplKSk7CisKKyAgICBidWlsZGVyLmFwcGVuZChu
dW1iZXJUb0hUTUxUcigiU3lzdGVtIGZyZWUgbWVtb3J5IiwgQmxhY2tCZXJyeTo6UGxhdGZvcm06
OnN5c3RlbUZyZWVNZW1vcnkoKSkpOworCisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8L3Rh
YmxlPjwvZGl2Pjxicj4iKTsKKworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPGRpdiBjbGFz
cz0nYm94Jz48ZGl2IGNsYXNzPSdib3gtdGl0bGUnPkpTIGVuZ2luZSBtZW1vcnkgdXNhZ2U8L2Rp
dj48dGFibGUgY2xhc3M9J2ZpeGVkLXRhYmxlJz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1
JT4iKTsKKworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJTdGFjayBzaXplIiwg
anNjTWVtb3J5U3RhdC5zdGFja0J5dGVzKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9I
VE1MVHIoIkpJVCBtZW1vcnkgdXNhZ2UiLCBqc2NNZW1vcnlTdGF0LkpJVEJ5dGVzKSk7CisgICAg
YnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIk1haW4gaGVhcCBjYXBhY2l0eSIsIG1haW5I
ZWFwLmNhcGFjaXR5KCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigiTWFp
biBoZWFwIHNpemUiLCBtYWluSGVhcC5zaXplKCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1i
ZXJUb0hUTUxUcigiT2JqZWN0IGNvdW50IiwgbWFpbkhlYXAub2JqZWN0Q291bnQoKSkpOworICAg
IGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJHbG9iYWwgb2JqZWN0IGNvdW50IiwgbWFp
bkhlYXAuZ2xvYmFsT2JqZWN0Q291bnQoKSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRv
SFRNTFRyKCJQcm90ZWN0ZWQgb2JqZWN0IGNvdW50IiwgbWFpbkhlYXAucHJvdGVjdGVkT2JqZWN0
Q291bnQoKSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJQcm90ZWN0ZWQg
Z2xvYmFsIG9iamVjdCBjb3VudCIsIG1haW5IZWFwLnByb3RlY3RlZEdsb2JhbE9iamVjdENvdW50
KCkpKTsKKworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC90YWJsZT48L2Rpdj48YnI+Iik7
CisKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjxkaXYgY2xhc3M9J2JveCc+PGRpdiBjbGFz
cz0nYm94LXRpdGxlJz5KUyBvYmplY3QgdHlwZSBjb3VudHM8L2Rpdj48dGFibGUgY2xhc3M9J2Zp
eGVkLXRhYmxlJz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1JT4iKTsKKyAgICBkdW1wSlND
VHlwZUNvdW50U2V0VG9UYWJsZUhUTUwoYnVpbGRlciwgb2JqZWN0VHlwZUNvdW50cy5nZXQoKSk7
CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8L3RhYmxlPjwvZGl2Pjxicj4iKTsKKworICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPGRpdiBjbGFzcz0nYm94Jz48ZGl2IGNsYXNzPSdib3gt
dGl0bGUnPkpTIHByb3RlY3RlZCBvYmplY3QgdHlwZSBjb3VudHM8L2Rpdj48dGFibGUgY2xhc3M9
J2ZpeGVkLXRhYmxlJz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1JT4iKTsKKyAgICBkdW1w
SlNDVHlwZUNvdW50U2V0VG9UYWJsZUhUTUwoYnVpbGRlciwgcHJvdGVjdGVkT2JqZWN0VHlwZUNv
dW50cy5nZXQoKSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8L3RhYmxlPjwvZGl2Pjxi
cj4iKTsKKworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPGRpdiBjbGFzcz0nYm94Jz48ZGl2
IGNsYXNzPSdib3gtdGl0bGUnPk1hbGxvYyBJbmZvcm1hdGlvbjwvZGl2Pjx0YWJsZSBjbGFzcz0n
Zml4ZWQtdGFibGUnPjxjb2wgd2lkdGg9NzUlPjxjb2wgd2lkdGg9MjUlPiIpOworCisgICAgYnVp
bGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlRvdGFsIHNwYWNlIGluIHVzZSIsIG1hbGxvY0lu
Zm8ubV9zbWFsbF9hbGxvY21lbSArIG1hbGxvY0luZm8ubV9hbGxvY21lbSkpOworICAgIGJ1aWxk
ZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJUb3RhbCBzcGFjZSBpbiBmcmVlIGJsb2NrcyIsIG1h
bGxvY0luZm8ubV9zbWFsbF9mcmVlbWVtICsgbWFsbG9jSW5mby5tX2ZyZWVtZW0pKTsKKyAgICBi
dWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigiTWVtb3J5IGluIGZyZWUgc21hbGwgYmxvY2tz
IiwgbWFsbG9jSW5mby5tX3NtYWxsX2ZyZWVtZW0pKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1i
ZXJUb0hUTUxUcigiTWVtb3J5IGluIGZyZWUgYmlnIGJsb2NrcyIsIG1hbGxvY0luZm8ubV9mcmVl
bWVtKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlNwYWNlIGluIGhlYWRl
ciBibG9jayBoZWFkZXJzIiwgbWFsbG9jSW5mby5tX3NtYWxsX292ZXJoZWFkKSk7CisgICAgYnVp
bGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlNwYWNlIHVzZWQgYnkgYmxvY2sgaGVhZGVycyIs
IG1hbGxvY0luZm8ubV9vdmVyaGVhZCkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRN
TFRyKCJTcGFjZSBpbiBzbWFsbCBibG9ja3MgaW4gdXNlIiwgbWFsbG9jSW5mby5tX3NtYWxsX2Fs
bG9jbWVtKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlNwYWNlIGluIGJp
ZyBibG9ja3MgaW4gdXNlIiwgbWFsbG9jSW5mby5tX2FsbG9jbWVtKSk7CisgICAgYnVpbGRlci5h
cHBlbmQobnVtYmVyVG9IVE1MVHIoIk51bWJlciBvZiBjb3JlIGFsbG9jYXRpb25zIiwgbWFsbG9j
SW5mby5tX2NvcmVhbGxvY3MpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigi
TnVtYmVyIG9mIGNvcmUgZGUtYWxsb2NhdGlvbnMgcGVyZm9ybWVkIiwgbWFsbG9jSW5mby5tX2Nv
cmVmcmVlcykpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJTaXplIG9mIHRo
ZSBhcmVuYSIsIG1hbGxvY0luZm8ubV9oZWFwc2l6ZSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51
bWJlclRvSFRNTFRyKCJOdW1iZXIgb2YgZnJlZXMgcGVyZm9ybWVkIiwgbWFsbG9jSW5mby5tX2Zy
ZWVzKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIk51bWJlciBvZiBhbGxv
Y2F0aW9ucyBwZXJmb3JtZWQiLCBtYWxsb2NJbmZvLm1fYWxsb2NzKSk7CisgICAgYnVpbGRlci5h
cHBlbmQobnVtYmVyVG9IVE1MVHIoIk51bWJlciBvZiByZWFsbG9jIGZ1bmN0aW9ucyBwZXJmb3Jt
ZWQiLCBtYWxsb2NJbmZvLm1fcmVhbGxvY3MpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJU
b0hUTUxUcigiTnVtYmVyIG9mIHNtYWxsIGJsb2NrcyIsIG1hbGxvY0luZm8ubV9zbWFsbF9ibG9j
a3MpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigiTnVtYmVyIG9mIGJpZyBi
bG9ja3MiLCBtYWxsb2NJbmZvLm1fYmxvY2tzKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVy
VG9IVE1MVHIoIk51bWJlciBvZiBoZWFkZXIgYmxvY2tzIiwgbWFsbG9jSW5mby5tX2hibG9ja3Mp
KTsKKworICAgIGJ1aWxkZXIuYXBwZW5kKCI8L3RhYmxlPjwvZGl2PiIpOwogI2VuZGlmCiAKLSAg
ICBwYWdlICs9ICI8L2JvZHk+PC9odG1sPiI7Ci0gICAgcmV0dXJuIHBhZ2U7CisgICAgYnVpbGRl
ci5hcHBlbmQoIjwvYm9keT48L2h0bWw+Iik7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKIH0KIAogI2lmICFkZWZpbmVkKFBVQkxJQ19CVUlMRCkgfHwgIVBVQkxJQ19CVUlMRApAQCAt
NDE2LDM4ICs0MTksMzggQEAgc3RhdGljIFN0cmluZyBtZW1vcnlQZWFrc1RvSHRtbFRhYmxlKE1l
bW9yeVRyYWNrZXImIG1lbW9yeVRyYWNrZXIpCiAKIHN0YXRpYyBTdHJpbmcgbWVtb3J5TGl2ZVBh
Z2UoU3RyaW5nIG1lbW9yeUxpdmVDb21tYW5kKQogewotICAgIFN0cmluZyBwYWdlOworICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKIAotICAgIHBhZ2UgPSB3cml0ZUhlYWRlcigiTWVtb3J5IExp
dmUgUGFnZSIpCi0gICAgICAgICsgIjxkaXYgY2xhc3M9J2JveCc+PGRpdiBjbGFzcz0nYm94LXRp
dGxlJz5NZW1vcnkgUGVha3M8L2Rpdj4iCi0gICAgICAgICsgIjxkaXYgc3R5bGU9J2ZvbnQtc2l6
ZToxMnB4O2NvbG9yOiMxQkUwQzknPlwiYWJvdXQ6bWVtb3J5LWxpdmUvc3RhcnRcIjogc3RhcnQg
dHJhY2tpbmcgbWVtb3J5IHBlYWtzLjwvZGl2PiIKLSAgICAgICAgKyAiPGRpdiBzdHlsZT0nZm9u
dC1zaXplOjEycHg7Y29sb3I6IzFCRTBDOSc+XCJhYm91dDptZW1vcnktbGl2ZVwiOiBzaG93IG1l
bW9yeSBwZWFrcyBldmVyeSAzMG1zLjwvZGl2PiIKLSAgICAgICAgKyAiPGRpdiBzdHlsZT0nZm9u
dC1zaXplOjEycHg7Y29sb3I6IzFCRTBDOSc+XCJhYm91dDptZW1vcnktbGl2ZS9zdG9wXCI6IHN0
b3AgdHJhY2tpbmcgYW5kIHNob3cgbWVtb3J5IHBlYWtzLjwvZGl2Pjxicj4iOworICAgIGJ1aWxk
ZXIuYXBwZW5kKHdyaXRlSGVhZGVyKCJNZW1vcnkgTGl2ZSBQYWdlIikpOworICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiPGRpdiBjbGFzcz0nYm94Jz48ZGl2IGNsYXNzPSdib3gtdGl0bGUnPk1l
bW9yeSBQZWFrczwvZGl2PiIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPGRpdiBzdHls
ZT0nZm9udC1zaXplOjEycHg7Y29sb3I6IzFCRTBDOSc+XCJhYm91dDptZW1vcnktbGl2ZS9zdGFy
dFwiOiBzdGFydCB0cmFja2luZyBtZW1vcnkgcGVha3MuPC9kaXY+Iik7CisgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCI8ZGl2IHN0eWxlPSdmb250LXNpemU6MTJweDtjb2xvcjojMUJFMEM5Jz5c
ImFib3V0Om1lbW9yeS1saXZlXCI6IHNob3cgbWVtb3J5IHBlYWtzIGV2ZXJ5IDMwbXMuPC9kaXY+
Iik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8ZGl2IHN0eWxlPSdmb250LXNpemU6MTJw
eDtjb2xvcjojMUJFMEM5Jz5cImFib3V0Om1lbW9yeS1saXZlL3N0b3BcIjogc3RvcCB0cmFja2lu
ZyBhbmQgc2hvdyBtZW1vcnkgcGVha3MuPC9kaXY+PGJyPiIpOwogCiAgICAgTWVtb3J5VHJhY2tl
ciYgbWVtb3J5VHJhY2tlciA9IE1lbW9yeVRyYWNrZXI6Omluc3RhbmNlKCk7CiAgICAgaWYgKG1l
bW9yeUxpdmVDb21tYW5kLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoIW1lbW9yeVRyYWNrZXIu
aXNBY3RpdmUoKSkKLSAgICAgICAgICAgIHBhZ2UgKz0gIjxkaXYgc3R5bGU9J2ZvbnQtc2l6ZTox
NXB4O2NvbG9yOiNFNkYwMzInPk1lbW9yeSB0cmFja2VyIGlzbid0IHJ1bm5pbmcsIHBsZWFzZSB1
c2UgXCJhYm91dDptZW1vcnktbGl2ZS9zdGFydFwiIHRvIHN0YXJ0IHRoZSB0cmFja2VyLjwvZGl2
PiI7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjxkaXYgc3R5bGU9J2ZvbnQt
c2l6ZToxNXB4O2NvbG9yOiNFNkYwMzInPk1lbW9yeSB0cmFja2VyIGlzbid0IHJ1bm5pbmcsIHBs
ZWFzZSB1c2UgXCJhYm91dDptZW1vcnktbGl2ZS9zdGFydFwiIHRvIHN0YXJ0IHRoZSB0cmFja2Vy
LjwvZGl2PiIpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHBhZ2UgKz0gbWVtb3J5UGVh
a3NUb0h0bWxUYWJsZShtZW1vcnlUcmFja2VyKTsKLSAgICAgICAgICAgIHBhZ2UgKz0gIjxzY3Jp
cHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPnNldEludGVydmFsKGZ1bmN0aW9uKCl7d2luZG93
LmxvY2F0aW9uLnJlbG9hZCgpfSwzMCk7PC9zY3JpcHQ+IjsKKyAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKG1lbW9yeVBlYWtzVG9IdG1sVGFibGUobWVtb3J5VHJhY2tlcikpOworICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRc
Ij5zZXRJbnRlcnZhbChmdW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0sMzApOzwv
c2NyaXB0PiIpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZSht
ZW1vcnlMaXZlQ29tbWFuZCwgIi9zdGFydCIpKSB7CiAgICAgICAgIG1lbW9yeVRyYWNrZXIuc3Rh
cnQoKTsKLSAgICAgICAgcGFnZSArPSAiPGRpdiBzdHlsZT0nZm9udC1zaXplOjE1cHg7Y29sb3I6
I0U2RjAzMic+TWVtb3J5IHRyYWNrZXIgaXMgcnVubmluZy48L2Rpdj4iOworICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIjxkaXYgc3R5bGU9J2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiNFNkYw
MzInPk1lbW9yeSB0cmFja2VyIGlzIHJ1bm5pbmcuPC9kaXY+Iik7CiAgICAgfSBlbHNlIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShtZW1vcnlMaXZlQ29tbWFuZCwgIi9zdG9wIikpIHsKICAgICAgICAg
aWYgKCFtZW1vcnlUcmFja2VyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBwYWdlICs9ICI8ZGl2
IHN0eWxlPSdmb250LXNpemU6MTVweDtjb2xvcjojRTZGMDMyJz5NZW1vcnkgdHJhY2tlciBpc24n
dCBydW5uaW5nLjwvZGl2PiI7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjxk
aXYgc3R5bGU9J2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiNFNkYwMzInPk1lbW9yeSB0cmFja2VyIGlz
bid0IHJ1bm5pbmcuPC9kaXY+Iik7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgbWVtb3J5
VHJhY2tlci5zdG9wKCk7Ci0gICAgICAgICAgICBwYWdlICs9IG1lbW9yeVBlYWtzVG9IdG1sVGFi
bGUobWVtb3J5VHJhY2tlcik7Ci0gICAgICAgICAgICBwYWdlICs9ICI8ZGl2IHN0eWxlPSdmb250
LXNpemU6MTVweDtjb2xvcjojRTZGMDMyJz5NZW1vcnkgdHJhY2tlciBpcyBzdG9wcGVkLjwvZGl2
PiI7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChtZW1vcnlQZWFrc1RvSHRtbFRhYmxlKG1l
bW9yeVRyYWNrZXIpKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPGRpdiBz
dHlsZT0nZm9udC1zaXplOjE1cHg7Y29sb3I6I0U2RjAzMic+TWVtb3J5IHRyYWNrZXIgaXMgc3Rv
cHBlZC48L2Rpdj4iKTsKICAgICAgICAgfQogICAgIH0gZWxzZQotICAgICAgICBwYWdlICs9ICI8
ZGl2IHN0eWxlPSdmb250LXNpemU6MTVzcHg7Y29sb3I6I0U2RjAzMic+VW5rbm93biBjb21tYW5k
ISBQbGVhc2UgaW5wdXQgYSBjb3JyZWN0IGNvbW1hbmQhPC9kaXY+IjsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI8ZGl2IHN0eWxlPSdmb250LXNpemU6MTVzcHg7Y29sb3I6I0U2RjAz
Mic+VW5rbm93biBjb21tYW5kISBQbGVhc2UgaW5wdXQgYSBjb3JyZWN0IGNvbW1hbmQhPC9kaXY+
Iik7CiAKLSAgICBwYWdlICs9ICI8L2Rpdj48YnI+PC9kaXY+PC9ib2R5PjwvaHRtbD4iOwotICAg
IHJldHVybiBwYWdlOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC9kaXY+PGJyPjwvZGl2
PjwvYm9keT48L2h0bWw+Iik7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KICNl
bmRpZgogCg==
</data>
<flag name="review"
          id="224620"
          type_id="1"
          status="+"
          setter="rwlbuis"
    />
    <flag name="commit-queue"
          id="224656"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203217</attachid>
            <date>2013-05-29 10:49:05 -0700</date>
            <delta_ts>2013-05-29 11:37:33 -0700</delta_ts>
            <desc>Rebased patch</desc>
            <filename>bb-string-builder2.diff</filename>
            <type>text/plain</type>
            <size>29998</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGE2YmZjMjMuLjVlY2ZiMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTA1LTI5ICBS
b2IgQnVpcyAgPHJidWlzQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIFVzZSBTdHJp
bmdCdWlsZGVyIGluc3RlYWQgb2YgKyBvcGVyYXRvciB0byBidWlsZCBzdHJpbmdzIGluIEFib3V0
RGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2
OTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUFIg
MjA2MTUyCisgICAgICAgIEludGVybmFsbHkgcmV2aWV3ZWQgYnkgS29ucmFkIFBpYXNjaWsKKwor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvQWJvdXREYXRhLmNwcDoKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6Y29uZmlnUGFnZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmR1
bXBKU0NUeXBlQ291bnRTZXRUb1RhYmxlSFRNTCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6Om1hbGxvY1N0YXRzKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6bWVtb3J5UGFn
ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Om1lbW9yeVBlYWtzVG9IdG1sVGFibGUp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjptZW1vcnlMaXZlUGFnZSk6CisKIDIwMTMt
MDUtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtCbGFja0JlcnJ5XSBSRUdSRVNTSU9OKHIxNTAwNzEpOiBBbmltYXRpb24gcGVyZm9ybWFu
Y2UgaXNzdWVzIGluIHNvbWUgd2Vic2l0ZXMgd2l0aCBDU1MgdHJhbnNmb3JtcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvQWJvdXREYXRhLmNwcCBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0Fib3V0RGF0YS5jcHAKaW5k
ZXggZWI3MTU5YS4uMDNhZjBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvQWJvdXREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViS2l0U3VwcG9ydC9BYm91dERhdGEuY3BwCkBAIC02NywxMjMgKzY3LDEyMCBAQCB0ZW1w
bGF0ZTw+IFN0cmluZyBudW1iZXJUb0hUTUxUcjxib29sPihjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCBib29sIHRydXRoKQogCiBzdGF0aWMgU3RyaW5nIGNvbmZpZ1BhZ2UoKQogewotICAgIFN0
cmluZyBwYWdlOworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICNpZiAhZGVmaW5lZChQVUJM
SUNfQlVJTEQpIHx8ICFQVUJMSUNfQlVJTEQKLSAgICBwYWdlID0gd3JpdGVIZWFkZXIoIkNvbmZp
Z3VyYXRpb24iKQotICAgICsgIjxkaXYgY2xhc3M9XCJib3hcIj48ZGl2IGNsYXNzPVwiYm94LXRp
dGxlXCI+Q29tcGlsZXIgSW5mb3JtYXRpb248L2Rpdj48dGFibGUgY2xhc3M9J2ZpeGVkLXRhYmxl
Jz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1JT4iCisgICAgYnVpbGRlci5hcHBlbmQod3Jp
dGVIZWFkZXIoIkNvbmZpZ3VyYXRpb24iKSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8
ZGl2IGNsYXNzPVwiYm94XCI+PGRpdiBjbGFzcz1cImJveC10aXRsZVwiPkNvbXBpbGVyIEluZm9y
bWF0aW9uPC9kaXY+PHRhYmxlIGNsYXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03NSU+PGNv
bCB3aWR0aD0yNSU+Iik7CiAjaWYgQ09NUElMRVIoTVNWQykKLSAgICArICI8dHI+PHRkPk1pY3Jv
c29mdCBWaXN1YWwgQysrPC90ZD48dGQ+TVNWQzwvdGQ+PC90cj4iCi0gICAgKyAiPHRyPjx0ZD5f
TVNDX1ZFUjwvdGQ+PHRkPiIgKyBTdHJpbmc6Om51bWJlcihfTVNDX1ZFUikgKyAiPC90ZD48L3Ry
PiIKLSAgICArICI8dHI+PHRkPl9NU0NfRlVMTF9WRVI8L3RkPjx0ZD4iICsgU3RyaW5nOjpudW1i
ZXIoX01TQ19GVUxMX1ZFUikgKyAiPC90ZD48L3RyPiIKLSAgICArICI8dHI+PHRkPl9NU0NfQlVJ
TEQ8L3RkPjx0ZD4iICsgU3RyaW5nOjpudW1iZXIoX01TQ19CVUlMRCkgKyAiPC90ZD48L3RyPiIK
KyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjx0cj48dGQ+TWljcm9zb2Z0IFZpc3VhbCBDKys8
L3RkPjx0ZD5NU1ZDPC90ZD48L3RyPiIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCI8dHI+PHRkPl9N
U0NfVkVSPC90ZD48dGQ+IiArIFN0cmluZzo6bnVtYmVyKF9NU0NfVkVSKSArICI8L3RkPjwvdHI+
Iik7CisgICAgYnVpbGRlci5hcHBlbmQoIjx0cj48dGQ+X01TQ19GVUxMX1ZFUjwvdGQ+PHRkPiIg
KyBTdHJpbmc6Om51bWJlcihfTVNDX0ZVTExfVkVSKSArICI8L3RkPjwvdHI+Iik7CisgICAgYnVp
bGRlci5hcHBlbmQoIjx0cj48dGQ+X01TQ19CVUlMRDwvdGQ+PHRkPiIgKyBTdHJpbmc6Om51bWJl
cihfTVNDX0JVSUxEKSArICI8L3RkPjwvdHI+Iik7CiAjZWxpZiBDT01QSUxFUihSVkNUKQotICAg
ICsgIjx0cj48dGQ+QVJNIFJlYWxWaWV3IENvbXBpbGVyIFRvb2xraXQ8L3RkPjx0ZD5SVkNUPC90
ZD48L3RyPiIKLSAgICArICI8dHI+PHRkPl9fQVJNQ0NfVkVSU0lPTjwvdGQ+PHRkPiIgKyBTdHJp
bmc6Om51bWJlcihfX0FSTUNDX1ZFUlNJT04pICsgIjwvdGQ+PC90cj4iCisgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCI8dHI+PHRkPkFSTSBSZWFsVmlldyBDb21waWxlciBUb29sa2l0PC90ZD48
dGQ+UlZDVDwvdGQ+PC90cj4iKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiPHRyPjx0ZD5fX0FSTUND
X1ZFUlNJT048L3RkPjx0ZD4iICsgU3RyaW5nOjpudW1iZXIoX19BUk1DQ19WRVJTSU9OKSArICI8
L3RkPjwvdHI+Iik7CiAjaWYgQ09NUElMRVIoUlZDVDRHTlUpCi0gICAgKyAiPHRyPjx0ZD5SVkNU
IDQrIGluIC0tZ251IG1vZGU8L3RkPjx0ZD4xPC90ZD48L3RyPiIKKyAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIjx0cj48dGQ+UlZDVCA0KyBpbiAtLWdudSBtb2RlPC90ZD48dGQ+MTwvdGQ+PC90
cj4iKTsKICNlbmRpZgogI2VsaWYgQ09NUElMRVIoR0NDKQotICAgICsgIjx0cj48dGQ+R0NDPC90
ZD48dGQ+IiArIFN0cmluZzo6bnVtYmVyKF9fR05VQ19fKSArICIuIiArIFN0cmluZzo6bnVtYmVy
KF9fR05VQ19NSU5PUl9fKSArICIuIiArIFN0cmluZzo6bnVtYmVyKF9fR05VQ19QQVRDSExFVkVM
X18pICsgIjwvdGQ+PC90cj4iCisgICAgYnVpbGRlci5hcHBlbmQoIjx0cj48dGQ+R0NDPC90ZD48
dGQ+IiArIFN0cmluZzo6bnVtYmVyKF9fR05VQ19fKSArICIuIiArIFN0cmluZzo6bnVtYmVyKF9f
R05VQ19NSU5PUl9fKSArICIuIiArIFN0cmluZzo6bnVtYmVyKF9fR05VQ19QQVRDSExFVkVMX18p
ICsgIjwvdGQ+PC90cj4iKTsKICNlbmRpZgogCiAgICAgLy8gQWRkICIiIHRvIHNhdGlzZnkgY2hl
Y2std2Via2l0LXN0eWxlLgotICAgICsgIiI7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIi
KTsKIAotICAgIHBhZ2UgKz0gU3RyaW5nKCI8L3RhYmxlPjwvZGl2Pjxicj48ZGl2IGNsYXNzPSdi
b3gnPjxkaXYgY2xhc3M9J2JveC10aXRsZSc+Q1BVIEluZm9ybWF0aW9uPC9kaXY+PHRhYmxlIGNs
YXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03NSU+PGNvbCB3aWR0aD0yNSU+IikKKyAgICBi
dWlsZGVyLmFwcGVuZChTdHJpbmcoIjwvdGFibGU+PC9kaXY+PGJyPjxkaXYgY2xhc3M9J2JveCc+
PGRpdiBjbGFzcz0nYm94LXRpdGxlJz5DUFUgSW5mb3JtYXRpb248L2Rpdj48dGFibGUgY2xhc3M9
J2ZpeGVkLXRhYmxlJz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1JT4iKSk7CiAjaWYgQ1BV
KFg4NikKLSAgICArICI8dHI+PHRkPlg4NjwvdGQ+PHRkPjwvdGQ+PC90cj4iCisgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI8dHI+PHRkPlg4NjwvdGQ+PHRkPjwvdGQ+PC90cj4iKTsKICNlbGlm
IENQVShBUk0pCi0gICAgKyAiPHRyPjx0ZD5BUk08L3RkPjx0ZD48L3RkPjwvdHI+IgotICAgICsg
Ijx0cj48dGQ+QVJNX0FSQ0hfVkVSU0lPTjwvdGQ+PHRkPiIgKyBTdHJpbmc6Om51bWJlcihXVEZf
QVJNX0FSQ0hfVkVSU0lPTikgKyAiPC90ZD48L3RyPiIKLSAgICArICI8dHI+PHRkPlRIVU1CX0FS
Q0hfVkVSU0lPTjwvdGQ+PHRkPiIgKyBTdHJpbmc6Om51bWJlcihXVEZfVEhVTUJfQVJDSF9WRVJT
SU9OKSArICI8L3RkPjwvdHI+IgotICAgICsgIjx0cj48dGQ+VEhVTUIyPC90ZD48dGQ+IiArIFN0
cmluZzo6bnVtYmVyKFdURl9DUFVfQVJNX1RIVU1CMikgKyAiPC90ZD48L3RyPiIKKyAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIjx0cj48dGQ+QVJNPC90ZD48dGQ+PC90ZD48L3RyPiIpOworICAg
IGJ1aWxkZXIuYXBwZW5kKCI8dHI+PHRkPkFSTV9BUkNIX1ZFUlNJT048L3RkPjx0ZD4iICsgU3Ry
aW5nOjpudW1iZXIoV1RGX0FSTV9BUkNIX1ZFUlNJT04pICsgIjwvdGQ+PC90cj4iKTsKKyAgICBi
dWlsZGVyLmFwcGVuZCgiPHRyPjx0ZD5USFVNQl9BUkNIX1ZFUlNJT048L3RkPjx0ZD4iICsgU3Ry
aW5nOjpudW1iZXIoV1RGX1RIVU1CX0FSQ0hfVkVSU0lPTikgKyAiPC90ZD48L3RyPiIpOworICAg
IGJ1aWxkZXIuYXBwZW5kKCI8dHI+PHRkPlRIVU1CMjwvdGQ+PHRkPiIgKyBTdHJpbmc6Om51bWJl
cihXVEZfQ1BVX0FSTV9USFVNQjIpICsgIjwvdGQ+PC90cj4iKTsKICNlbmRpZgotICAgICsgIjx0
cj48dGQ+RW5kaWFubmVzczwvdGQ+PHRkPiIKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjx0
cj48dGQ+RW5kaWFubmVzczwvdGQ+PHRkPiIpOwogI2lmIENQVShCSUdfRU5ESUFOKQotICAgICsg
ImJpZyIKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImJpZyIpOwogI2VsaWYgQ1BVKE1JRERM
RV9FTkRJQU4pCi0gICAgKyAibWlkZGxlIgorICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgibWlk
ZGxlIik7CiAjZWxzZQotICAgICsgImxpdHRsZSIKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
ImxpdHRsZSIpOwogI2VuZGlmCi0gICAgKyAiPC90ZD48L3RyPiI7CisgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCI8L3RkPjwvdHI+Iik7CiAKLSAgICBwYWdlICs9IFN0cmluZygiPC90YWJsZT48
L2Rpdj48YnI+PGRpdiBjbGFzcz0nYm94Jz48ZGl2IGNsYXNzPSdib3gtdGl0bGUnPlBsYXRmb3Jt
IEluZm9ybWF0aW9uPC9kaXY+PHRhYmxlIGNsYXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03
NSU+PGNvbCB3aWR0aD0yNSU+IikKLSAgICArICI8dHI+PHRkPldlYktpdCBWZXJzaW9uPC90ZD48
dGQ+IiArIFN0cmluZzo6bnVtYmVyKFdFQktJVF9NQUpPUl9WRVJTSU9OKSArICIuIiArIFN0cmlu
Zzo6bnVtYmVyKFdFQktJVF9NSU5PUl9WRVJTSU9OKSArICI8L3RkPjwvdHI+IgotICAgICsgIjx0
cj48dGQ+QmxhY2tCZXJyeTwvdGQ+PHRkPiIKKyAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjwv
dGFibGU+PC9kaXY+PGJyPjxkaXYgY2xhc3M9J2JveCc+PGRpdiBjbGFzcz0nYm94LXRpdGxlJz5Q
bGF0Zm9ybSBJbmZvcm1hdGlvbjwvZGl2Pjx0YWJsZSBjbGFzcz0nZml4ZWQtdGFibGUnPjxjb2wg
d2lkdGg9NzUlPjxjb2wgd2lkdGg9MjUlPiIpKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiPHRyPjx0
ZD5XZWJLaXQgVmVyc2lvbjwvdGQ+PHRkPiIgKyBTdHJpbmc6Om51bWJlcihXRUJLSVRfTUFKT1Jf
VkVSU0lPTikgKyAiLiIgKyBTdHJpbmc6Om51bWJlcihXRUJLSVRfTUlOT1JfVkVSU0lPTikgKyAi
PC90ZD48L3RyPiIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPHRyPjx0ZD5CbGFja0Jl
cnJ5PC90ZD48dGQ+Iik7CiAjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKLSAgICArICIxIgorICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiMSIpOwogI2Vsc2UKLSAgICArICIwIgorICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiMCIpOwogI2VuZGlmCi0gICAgKyAiPC90ZD48L3RyPiIKLSAgICAr
ICI8dHI+PHRkPl9fU1REQ19JU09fMTA2NDZfXzwvdGQ+PHRkPiIKKyAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIjwvdGQ+PC90cj4iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjx0cj48
dGQ+X19TVERDX0lTT18xMDY0Nl9fPC90ZD48dGQ+Iik7CiAjaWZkZWYgX19TVERDX0lTT18xMDY0
Nl9fCi0gICAgKyAiMSIKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjEiKTsKICNlbHNlCi0g
ICAgKyAiMCIKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjAiKTsKICNlbmRpZgotICAgICsg
IjwvdGQ+PC90cj4iOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC90ZD48L3RyPiIpOwog
CiAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OlNldHRpbmdzKiBzZXR0aW5ncyA9IEJsYWNrQmVy
cnk6OlBsYXRmb3JtOjpTZXR0aW5nczo6aW5zdGFuY2UoKTsKLSAgICBwYWdlICs9IFN0cmluZygi
PC90YWJsZT48L2Rpdj48YnI+PGRpdiBjbGFzcz0nYm94Jz48ZGl2IGNsYXNzPSdib3gtdGl0bGUn
PlBsYXRmb3JtIFNldHRpbmdzPC9kaXY+PHRhYmxlIHN0eWxlPSdmb250LXNpemU6MTFweDsnIGNs
YXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03NSU+PGNvbCB3aWR0aD0yNSU+Iik7Ci0gICAg
cGFnZSArPSBudW1iZXJUb0hUTUxUcigiaXNSU1NGaWx0ZXJpbmdFbmFibGVkIiwgc2V0dGluZ3Mt
PmlzUlNTRmlsdGVyaW5nRW5hYmxlZCgpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJz
ZWNvbmRhcnlUaHJlYWRTdGFja1NpemUiLCBzZXR0aW5ncy0+c2Vjb25kYXJ5VGhyZWFkU3RhY2tT
aXplKCkpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoIm1heFBpeGVsc1BlckRlY29kZWRJ
bWFnZSIsIHNldHRpbmdzLT5tYXhQaXhlbHNQZXJEZWNvZGVkSW1hZ2UoKSk7Ci0gICAgcGFnZSAr
PSBudW1iZXJUb0hUTUxUcigic2hvdWxkUmVwb3J0TG93TWVtb3J5VG9Vc2VyIiwgc2V0dGluZ3Mt
PnNob3VsZFJlcG9ydExvd01lbW9yeVRvVXNlcigpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRN
TFRyKCJudW1iZXJPZkJhY2tpbmdTdG9yZUZyb250QnVmZmVycyIsIHNldHRpbmdzLT5udW1iZXJP
ZkJhY2tpbmdTdG9yZUZyb250QnVmZmVycygpKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxU
cigibnVtYmVyT2ZCYWNraW5nU3RvcmVCYWNrQnVmZmVycyIsIHNldHRpbmdzLT5udW1iZXJPZkJh
Y2tpbmdTdG9yZUJhY2tCdWZmZXJzKCkpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJ0
YWJzU3VwcG9ydGVkQnlDbGllbnQiLCBzZXR0aW5ncy0+dGFic1N1cHBvcnRlZEJ5Q2xpZW50KCkp
OwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoImNvbnRleHRNZW51RW5hYmxlZCIsIHNldHRp
bmdzLT5jb250ZXh0TWVudUVuYWJsZWQoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigi
c2VsZWN0aW9uRW5hYmxlZCIsIHNldHRpbmdzLT5zZWxlY3Rpb25FbmFibGVkKCkpOwotICAgIHBh
Z2UgKz0gbnVtYmVyVG9IVE1MVHIoImZpbmVDdXJzb3JDb250cm9sRW5hYmxlZCIsIHNldHRpbmdz
LT5maW5lQ3Vyc29yQ29udHJvbEVuYWJsZWQoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxU
cigiYWx3YXlzU2hvd0tleWJvYXJkT25Gb2N1cyIsIHNldHRpbmdzLT5hbHdheXNTaG93S2V5Ym9h
cmRPbkZvY3VzKCkpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoImFsbG93ZWRTY3JvbGxB
ZGp1c3RtZW50Rm9ySW5wdXRGaWVsZHMiLCBzZXR0aW5ncy0+YWxsb3dlZFNjcm9sbEFkanVzdG1l
bnRGb3JJbnB1dEZpZWxkcygpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJ1bnJlc3Ry
aWN0ZWRSZXNpemVFdmVudHMiLCBzZXR0aW5ncy0+dW5yZXN0cmljdGVkUmVzaXplRXZlbnRzKCkp
OwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoImlzQnJpZGdlQnJvd3NlciIsIHNldHRpbmdz
LT5pc0JyaWRnZUJyb3dzZXIoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigic2hvd0lt
YWdlTG9jYXRpb25PcHRpb25zSW5HQ00iLCBzZXR0aW5ncy0+c2hvd0ltYWdlTG9jYXRpb25PcHRp
b25zSW5HQ00oKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiZm9yY2VHTEVTMldpbmRv
d1VzYWdlIiwgc2V0dGluZ3MtPmZvcmNlR0xFUzJXaW5kb3dVc2FnZSgpKTsKLSAgICBwYWdlICs9
IG51bWJlclRvSFRNTFRyKCJtYXhDbGlja2FibGVTcGVlZCIsIHNldHRpbmdzLT5tYXhDbGlja2Fi
bGVTcGVlZCgpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJtYXhKaXR0ZXJSYWRpdXND
bGljayIsIHNldHRpbmdzLT5tYXhKaXR0ZXJSYWRpdXNDbGljaygpKTsKLSAgICBwYWdlICs9IG51
bWJlclRvSFRNTFRyKCJtYXhKaXR0ZXJSYWRpdXNUYXAiLCBzZXR0aW5ncy0+bWF4Sml0dGVyUmFk
aXVzVGFwKCkpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoIm1heEppdHRlclJhZGl1c1Np
bmdsZVRvdWNoTW92ZSIsIHNldHRpbmdzLT5tYXhKaXR0ZXJSYWRpdXNTaW5nbGVUb3VjaE1vdmUo
KSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigibWF4Sml0dGVyUmFkaXVzVG91Y2hIb2xk
Iiwgc2V0dGluZ3MtPm1heEppdHRlclJhZGl1c1RvdWNoSG9sZCgpKTsKLSAgICBwYWdlICs9IG51
bWJlclRvSFRNTFRyKCJtYXhKaXR0ZXJSYWRpdXNIYW5kbGVEcmFnIiwgc2V0dGluZ3MtPm1heEpp
dHRlclJhZGl1c0hhbmRsZURyYWcoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigibWF4
Sml0dGVyUmFkaXVzVGFwSGlnaGxpZ2h0Iiwgc2V0dGluZ3MtPm1heEppdHRlclJhZGl1c1RhcEhp
Z2hsaWdodCgpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJtYXhKaXR0ZXJEaXN0YW5j
ZUNsaWNrIiwgc2V0dGluZ3MtPm1heEppdHRlckRpc3RhbmNlQ2xpY2soKSk7Ci0gICAgcGFnZSAr
PSBudW1iZXJUb0hUTUxUcigibWF4Sml0dGVyRGlzdGFuY2VUYXAiLCBzZXR0aW5ncy0+bWF4Sml0
dGVyRGlzdGFuY2VUYXAoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigibWF4Sml0dGVy
RGlzdGFuY2VTaW5nbGVUb3VjaE1vdmUiLCBzZXR0aW5ncy0+bWF4Sml0dGVyRGlzdGFuY2VTaW5n
bGVUb3VjaE1vdmUoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigibWF4Sml0dGVyRGlz
dGFuY2VUb3VjaEhvbGQiLCBzZXR0aW5ncy0+bWF4Sml0dGVyRGlzdGFuY2VUb3VjaEhvbGQoKSk7
Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigibWF4Sml0dGVyRGlzdGFuY2VUYXBIaWdobGln
aHQiLCBzZXR0aW5ncy0+bWF4Sml0dGVyRGlzdGFuY2VUYXBIaWdobGlnaHQoKSk7Ci0gICAgcGFn
ZSArPSBudW1iZXJUb0hUTUxUcigibWF4Sml0dGVyRGlzdGFuY2VIYW5kbGVEcmFnIiwgc2V0dGlu
Z3MtPm1heEppdHRlckRpc3RhbmNlSGFuZGxlRHJhZygpKTsKLSAgICBwYWdlICs9IG51bWJlclRv
SFRNTFRyKCJ0b3BGYXRGaW5nZXJQYWRkaW5nIiwgc2V0dGluZ3MtPnRvcEZhdEZpbmdlclBhZGRp
bmcoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigicmlnaHRGYXRGaW5nZXJQYWRkaW5n
Iiwgc2V0dGluZ3MtPnJpZ2h0RmF0RmluZ2VyUGFkZGluZygpKTsKLSAgICBwYWdlICs9IG51bWJl
clRvSFRNTFRyKCJib3R0b21GYXRGaW5nZXJQYWRkaW5nIiwgc2V0dGluZ3MtPmJvdHRvbUZhdEZp
bmdlclBhZGRpbmcoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigibWF4U2VsZWN0aW9u
TmVja0hlaWdodCIsIHNldHRpbmdzLT5tYXhTZWxlY3Rpb25OZWNrSGVpZ2h0KCkpOwotICAgIHBh
Z2UgKz0gbnVtYmVyVG9IVE1MVHIoImxlZnRGYXRGaW5nZXJQYWRkaW5nIiwgc2V0dGluZ3MtPmxl
ZnRGYXRGaW5nZXJQYWRkaW5nKCkpOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiPC90YWJs
ZT48L2Rpdj48YnI+PGRpdiBjbGFzcz0nYm94Jz48ZGl2IGNsYXNzPSdib3gtdGl0bGUnPlBsYXRm
b3JtIFNldHRpbmdzPC9kaXY+PHRhYmxlIHN0eWxlPSdmb250LXNpemU6MTFweDsnIGNsYXNzPSdm
aXhlZC10YWJsZSc+PGNvbCB3aWR0aD03NSU+PGNvbCB3aWR0aD0yNSU+IikpOworICAgIGJ1aWxk
ZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJpc1JTU0ZpbHRlcmluZ0VuYWJsZWQiLCBzZXR0aW5n
cy0+aXNSU1NGaWx0ZXJpbmdFbmFibGVkKCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJU
b0hUTUxUcigibWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlIiwgc2V0dGluZ3MtPm1heFBpeGVsc1Bl
ckRlY29kZWRJbWFnZSgpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoInNo
b3VsZFJlcG9ydExvd01lbW9yeVRvVXNlciIsIHNldHRpbmdzLT5zaG91bGRSZXBvcnRMb3dNZW1v
cnlUb1VzZXIoKSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJudW1iZXJP
ZkJhY2tpbmdTdG9yZUZyb250QnVmZmVycyIsIHNldHRpbmdzLT5udW1iZXJPZkJhY2tpbmdTdG9y
ZUZyb250QnVmZmVycygpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIm51
bWJlck9mQmFja2luZ1N0b3JlQmFja0J1ZmZlcnMiLCBzZXR0aW5ncy0+bnVtYmVyT2ZCYWNraW5n
U3RvcmVCYWNrQnVmZmVycygpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIo
InRhYnNTdXBwb3J0ZWRCeUNsaWVudCIsIHNldHRpbmdzLT50YWJzU3VwcG9ydGVkQnlDbGllbnQo
KSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJjb250ZXh0TWVudUVuYWJs
ZWQiLCBzZXR0aW5ncy0+Y29udGV4dE1lbnVFbmFibGVkKCkpKTsKKyAgICBidWlsZGVyLmFwcGVu
ZChudW1iZXJUb0hUTUxUcigic2VsZWN0aW9uRW5hYmxlZCIsIHNldHRpbmdzLT5zZWxlY3Rpb25F
bmFibGVkKCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigiZmluZUN1cnNv
ckNvbnRyb2xFbmFibGVkIiwgc2V0dGluZ3MtPmZpbmVDdXJzb3JDb250cm9sRW5hYmxlZCgpKSk7
CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoImFsd2F5c1Nob3dLZXlib2FyZE9u
Rm9jdXMiLCBzZXR0aW5ncy0+YWx3YXlzU2hvd0tleWJvYXJkT25Gb2N1cygpKSk7CisgICAgYnVp
bGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoImFsbG93ZWRTY3JvbGxBZGp1c3RtZW50Rm9ySW5w
dXRGaWVsZHMiLCBzZXR0aW5ncy0+YWxsb3dlZFNjcm9sbEFkanVzdG1lbnRGb3JJbnB1dEZpZWxk
cygpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoInVucmVzdHJpY3RlZFJl
c2l6ZUV2ZW50cyIsIHNldHRpbmdzLT51bnJlc3RyaWN0ZWRSZXNpemVFdmVudHMoKSkpOworICAg
IGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJpc0JyaWRnZUJyb3dzZXIiLCBzZXR0aW5n
cy0+aXNCcmlkZ2VCcm93c2VyKCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxU
cigic2hvd0ltYWdlTG9jYXRpb25PcHRpb25zSW5HQ00iLCBzZXR0aW5ncy0+c2hvd0ltYWdlTG9j
YXRpb25PcHRpb25zSW5HQ00oKSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRy
KCJmb3JjZUdMRVMyV2luZG93VXNhZ2UiLCBzZXR0aW5ncy0+Zm9yY2VHTEVTMldpbmRvd1VzYWdl
KCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigibWF4Q2xpY2thYmxlU3Bl
ZWQiLCBzZXR0aW5ncy0+bWF4Q2xpY2thYmxlU3BlZWQoKSkpOworICAgIGJ1aWxkZXIuYXBwZW5k
KG51bWJlclRvSFRNTFRyKCJtYXhKaXR0ZXJSYWRpdXNDbGljayIsIHNldHRpbmdzLT5tYXhKaXR0
ZXJSYWRpdXNDbGljaygpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIm1h
eEppdHRlclJhZGl1c1RhcCIsIHNldHRpbmdzLT5tYXhKaXR0ZXJSYWRpdXNUYXAoKSkpOworICAg
IGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJtYXhKaXR0ZXJSYWRpdXNTaW5nbGVUb3Vj
aE1vdmUiLCBzZXR0aW5ncy0+bWF4Sml0dGVyUmFkaXVzU2luZ2xlVG91Y2hNb3ZlKCkpKTsKKyAg
ICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigibWF4Sml0dGVyUmFkaXVzVG91Y2hIb2xk
Iiwgc2V0dGluZ3MtPm1heEppdHRlclJhZGl1c1RvdWNoSG9sZCgpKSk7CisgICAgYnVpbGRlci5h
cHBlbmQobnVtYmVyVG9IVE1MVHIoIm1heEppdHRlclJhZGl1c0hhbmRsZURyYWciLCBzZXR0aW5n
cy0+bWF4Sml0dGVyUmFkaXVzSGFuZGxlRHJhZygpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVt
YmVyVG9IVE1MVHIoIm1heEppdHRlckRpc3RhbmNlQ2xpY2siLCBzZXR0aW5ncy0+bWF4Sml0dGVy
RGlzdGFuY2VDbGljaygpKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIm1h
eEppdHRlckRpc3RhbmNlVGFwIiwgc2V0dGluZ3MtPm1heEppdHRlckRpc3RhbmNlVGFwKCkpKTsK
KyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigibWF4Sml0dGVyRGlzdGFuY2VTaW5n
bGVUb3VjaE1vdmUiLCBzZXR0aW5ncy0+bWF4Sml0dGVyRGlzdGFuY2VTaW5nbGVUb3VjaE1vdmUo
KSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJtYXhKaXR0ZXJEaXN0YW5j
ZVRvdWNoSG9sZCIsIHNldHRpbmdzLT5tYXhKaXR0ZXJEaXN0YW5jZVRvdWNoSG9sZCgpKSk7Cisg
ICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIm1heEppdHRlckRpc3RhbmNlSGFuZGxl
RHJhZyIsIHNldHRpbmdzLT5tYXhKaXR0ZXJEaXN0YW5jZUhhbmRsZURyYWcoKSkpOworICAgIGJ1
aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJ0b3BGYXRGaW5nZXJQYWRkaW5nIiwgc2V0dGlu
Z3MtPnRvcEZhdEZpbmdlclBhZGRpbmcoKSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRv
SFRNTFRyKCJyaWdodEZhdEZpbmdlclBhZGRpbmciLCBzZXR0aW5ncy0+cmlnaHRGYXRGaW5nZXJQ
YWRkaW5nKCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigiYm90dG9tRmF0
RmluZ2VyUGFkZGluZyIsIHNldHRpbmdzLT5ib3R0b21GYXRGaW5nZXJQYWRkaW5nKCkpKTsKKyAg
ICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigibWF4U2VsZWN0aW9uTmVja0hlaWdodCIs
IHNldHRpbmdzLT5tYXhTZWxlY3Rpb25OZWNrSGVpZ2h0KCkpKTsKKyAgICBidWlsZGVyLmFwcGVu
ZChudW1iZXJUb0hUTUxUcigibGVmdEZhdEZpbmdlclBhZGRpbmciLCBzZXR0aW5ncy0+bGVmdEZh
dEZpbmdlclBhZGRpbmcoKSkpOwogCiAgICAgVmVjdG9yPFN0cmluZz4gdHJ1ZUxpc3QsIGZhbHNl
TGlzdDsKLSAgICAjaW5jbHVkZSAiQWJvdXREYXRhRW5hYmxlRmVhdHVyZXMuY3BwIgotICAgIHBh
Z2UgKz0gU3RyaW5nKCI8L3RhYmxlPjwvZGl2Pjxicj48ZGl2IGNsYXNzPSdib3gnPjxkaXYgY2xh
c3M9J2JveC10aXRsZSc+V2ViS2l0IEZlYXR1cmVzIChFTkFCTEVfKTwvZGl2Pjx0YWJsZSBjbGFz
cz0nZml4ZWQtdGFibGUnPiIpOworI2luY2x1ZGUgIkFib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmNw
cCIKKyAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjwvdGFibGU+PC9kaXY+PGJyPjxkaXYgY2xh
c3M9J2JveCc+PGRpdiBjbGFzcz0nYm94LXRpdGxlJz5XZWJLaXQgRmVhdHVyZXMgKEVOQUJMRV8p
PC9kaXY+PHRhYmxlIGNsYXNzPSdmaXhlZC10YWJsZSc+IikpOwogCi0gICAgcGFnZSArPSB3cml0
ZUZlYXR1cmVzKHRydWVMaXN0LCBmYWxzZUxpc3QpOworICAgIGJ1aWxkZXIuYXBwZW5kKHdyaXRl
RmVhdHVyZXModHJ1ZUxpc3QsIGZhbHNlTGlzdCkpOwogCiAgICAgdHJ1ZUxpc3QuY2xlYXIoKTsK
ICAgICBmYWxzZUxpc3QuY2xlYXIoKTsKLSAgICAjaW5jbHVkZSAiQWJvdXREYXRhSGF2ZUZlYXR1
cmVzLmNwcCIKLSAgICBwYWdlICs9IFN0cmluZygiPC90YWJsZT48L2Rpdj48YnI+PGRpdiBjbGFz
cz0nYm94Jz48ZGl2IGNsYXNzPSdib3gtdGl0bGUnPldlYktpdCBGZWF0dXJlcyAoSEFWRV8pPC9k
aXY+PHRhYmxlIGNsYXNzPSdmaXhlZC10YWJsZSc+Iik7CisjaW5jbHVkZSAiQWJvdXREYXRhSGF2
ZUZlYXR1cmVzLmNwcCIKKyAgICBidWlsZGVyLmFwcGVuZChTdHJpbmcoIjwvdGFibGU+PC9kaXY+
PGJyPjxkaXYgY2xhc3M9J2JveCc+PGRpdiBjbGFzcz0nYm94LXRpdGxlJz5XZWJLaXQgRmVhdHVy
ZXMgKEhBVkVfKTwvZGl2Pjx0YWJsZSBjbGFzcz0nZml4ZWQtdGFibGUnPiIpKTsKIAotICAgIHBh
Z2UgKz0gd3JpdGVGZWF0dXJlcyh0cnVlTGlzdCwgZmFsc2VMaXN0KTsKKyAgICBidWlsZGVyLmFw
cGVuZCh3cml0ZUZlYXR1cmVzKHRydWVMaXN0LCBmYWxzZUxpc3QpKTsKIAogICAgIHRydWVMaXN0
LmNsZWFyKCk7CiAgICAgZmFsc2VMaXN0LmNsZWFyKCk7Ci0gICAgI2luY2x1ZGUgIkFib3V0RGF0
YVVzZUZlYXR1cmVzLmNwcCIKLSAgICBwYWdlICs9IFN0cmluZygiPC90YWJsZT48L2Rpdj48YnI+
PGRpdiBjbGFzcz0nYm94Jz48ZGl2IGNsYXNzPSdib3gtdGl0bGUnPldlYktpdCBGZWF0dXJlcyAo
VVNFXyk8L2Rpdj48dGFibGUgY2xhc3M9J2ZpeGVkLXRhYmxlJz4iKTsKLSAgICBwYWdlICs9IHdy
aXRlRmVhdHVyZXModHJ1ZUxpc3QsIGZhbHNlTGlzdCk7Ci0gICAgcGFnZSArPSBTdHJpbmcoIjwv
dGFibGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4iKTsKKyNpbmNsdWRlICJBYm91dERhdGFVc2VGZWF0
dXJlcy5jcHAiCisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCI8L3RhYmxlPjwvZGl2Pjxicj48
ZGl2IGNsYXNzPSdib3gnPjxkaXYgY2xhc3M9J2JveC10aXRsZSc+V2ViS2l0IEZlYXR1cmVzIChV
U0VfKTwvZGl2Pjx0YWJsZSBjbGFzcz0nZml4ZWQtdGFibGUnPiIpKTsKKyAgICBidWlsZGVyLmFw
cGVuZCh3cml0ZUZlYXR1cmVzKHRydWVMaXN0LCBmYWxzZUxpc3QpKTsKKyAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmcoIjwvdGFibGU+PC9kaXY+PC9ib2R5PjwvaHRtbD4iKSk7CiAjZW5kaWYKIAot
ICAgIHJldHVybiBwYWdlOworICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAKIHN0
YXRpYyBTdHJpbmcgY2FjaGVUeXBlU3RhdGlzdGljVG9IVE1MVHIoY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbiwgY29uc3QgTWVtb3J5Q2FjaGU6OlR5cGVTdGF0aXN0aWMmIHN0YXRpc3RpYykKQEAg
LTE5NywyNyArMTk0LDI3IEBAIHN0YXRpYyBTdHJpbmcgY2FjaGVUeXBlU3RhdGlzdGljVG9IVE1M
VHIoY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgTWVtb3J5CiAgICAgICAgICsgIjwv
dHI+IjsKIH0KIAotc3RhdGljIHZvaWQgZHVtcEpTQ1R5cGVDb3VudFNldFRvVGFibGVIVE1MKFN0
cmluZyYgdGFibGVIVE1MLCBKU0M6OlR5cGVDb3VudFNldCogdHlwZUNvdW50U2V0KQorc3RhdGlj
IHZvaWQgZHVtcEpTQ1R5cGVDb3VudFNldFRvVGFibGVIVE1MKFN0cmluZ0J1aWxkZXImIHRhYmxl
SFRNTCwgSlNDOjpUeXBlQ291bnRTZXQqIHR5cGVDb3VudFNldCkKIHsKICAgICBpZiAoIXR5cGVD
b3VudFNldCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChKU0M6OlR5cGVDb3VudFNldDo6
Y29uc3RfaXRlcmF0b3IgaXRlciA9IHR5cGVDb3VudFNldC0+YmVnaW4oKTsgaXRlciAhPSB0eXBl
Q291bnRTZXQtPmVuZCgpOyArK2l0ZXIpCi0gICAgICAgIHRhYmxlSFRNTCArPSBudW1iZXJUb0hU
TUxUcihpdGVyLT5rZXksIGl0ZXItPnZhbHVlKTsKKyAgICAgICAgdGFibGVIVE1MLmFwcGVuZChu
dW1iZXJUb0hUTUxUcihpdGVyLT5rZXksIGl0ZXItPnZhbHVlKSk7CiB9CiAKIHN0YXRpYyBTdHJp
bmcgbWVtb3J5UGFnZSgpCiB7Ci0gICAgU3RyaW5nIHBhZ2U7CisgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOwogCi0gICAgcGFnZSA9IHdyaXRlSGVhZGVyKCJNZW1vcnkiKQotICAgICsgIjxkaXYg
Y2xhc3M9XCJib3hcIj48ZGl2IGNsYXNzPVwiYm94LXRpdGxlXCI+Q2FjaGUgSW5mb3JtYXRpb248
YnI+PGRpdiBzdHlsZT0nZm9udC1zaXplOjExcHg7Y29sb3I6I0E4QThBOCc+U2l6ZSwgTGl2aW5n
LCBhbmQgRGVjb2RlZCBhcmUgZXhwcmVzc2VkIGluIEtCLjwvZGl2Pjxicj48L2Rpdj48dGFibGUg
Y2xhc3M9J2ZpeGVkLXRhYmxlJz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1JT4iOworICAg
IGJ1aWxkZXIuYXBwZW5kKHdyaXRlSGVhZGVyKCJNZW1vcnkiKSk7CisgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCI8ZGl2IGNsYXNzPVwiYm94XCI+PGRpdiBjbGFzcz1cImJveC10aXRsZVwiPkNh
Y2hlIEluZm9ybWF0aW9uPGJyPjxkaXYgc3R5bGU9J2ZvbnQtc2l6ZToxMXB4O2NvbG9yOiNBOEE4
QTgnPlNpemUsIExpdmluZywgYW5kIERlY29kZWQgYXJlIGV4cHJlc3NlZCBpbiBLQi48L2Rpdj48
YnI+PC9kaXY+PHRhYmxlIGNsYXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03NSU+PGNvbCB3
aWR0aD0yNSU+Iik7CiAKICAgICAvLyBnZW5lcmF0ZSBjYWNoZSBpbmZvcm1hdGlvbgogICAgIE1l
bW9yeUNhY2hlKiBjYWNoZUluYyA9IG1lbW9yeUNhY2hlKCk7CiAgICAgTWVtb3J5Q2FjaGU6OlN0
YXRpc3RpY3MgY2FjaGVTdGF0ID0gY2FjaGVJbmMtPmdldFN0YXRpc3RpY3MoKTsKIAotICAgIHBh
Z2UgKz0gIjx0cj4gPHRoIGFsaWduPWxlZnQ+SXRlbTwvdGg+IDx0aCBhbGlnbj1sZWZ0PkNvdW50
PC90aD4gPHRoIGFsaWduPWxlZnQ+U2l6ZTwvdGg+IDx0aCBhbGlnbj1sZWZ0PkxpdmluZzwvdGg+
IDx0aCBhbGlnbj1sZWZ0PkRlY29kZWQ8L3RoPjwvdHI+IjsKKyAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIjx0cj4gPHRoIGFsaWduPWxlZnQ+SXRlbTwvdGg+IDx0aCBhbGlnbj1sZWZ0PkNvdW50
PC90aD4gPHRoIGFsaWduPWxlZnQ+U2l6ZTwvdGg+IDx0aCBhbGlnbj1sZWZ0PkxpdmluZzwvdGg+
IDx0aCBhbGlnbj1sZWZ0PkRlY29kZWQ8L3RoPjwvdHI+Iik7CiAKICAgICBNZW1vcnlDYWNoZTo6
VHlwZVN0YXRpc3RpYyB0b3RhbDsKICAgICB0b3RhbC5jb3VudCA9IGNhY2hlU3RhdC5pbWFnZXMu
Y291bnQgKyBjYWNoZVN0YXQuY3NzU3R5bGVTaGVldHMuY291bnQKQEAgLTIyOSwxNiArMjI2LDE2
IEBAIHN0YXRpYyBTdHJpbmcgbWVtb3J5UGFnZSgpCiAgICAgICAgICAgICArIGNhY2hlU3RhdC5j
c3NTdHlsZVNoZWV0cy5kZWNvZGVkU2l6ZSArIGNhY2hlU3RhdC5zY3JpcHRzLmRlY29kZWRTaXpl
CiAgICAgICAgICAgICArIGNhY2hlU3RhdC54c2xTdHlsZVNoZWV0cy5kZWNvZGVkU2l6ZSArIGNh
Y2hlU3RhdC5mb250cy5kZWNvZGVkU2l6ZTsKIAotICAgIHBhZ2UgKz0gY2FjaGVUeXBlU3RhdGlz
dGljVG9IVE1MVHIoIlRvdGFsIiwgdG90YWwpOwotICAgIHBhZ2UgKz0gY2FjaGVUeXBlU3RhdGlz
dGljVG9IVE1MVHIoIkltYWdlcyIsIGNhY2hlU3RhdC5pbWFnZXMpOwotICAgIHBhZ2UgKz0gY2Fj
aGVUeXBlU3RhdGlzdGljVG9IVE1MVHIoIkNTUyBTdHlsZSBTaGVldHMiLCBjYWNoZVN0YXQuY3Nz
U3R5bGVTaGVldHMpOwotICAgIHBhZ2UgKz0gY2FjaGVUeXBlU3RhdGlzdGljVG9IVE1MVHIoIlNj
cmlwdHMiLCBjYWNoZVN0YXQuc2NyaXB0cyk7CisgICAgYnVpbGRlci5hcHBlbmQoY2FjaGVUeXBl
U3RhdGlzdGljVG9IVE1MVHIoIlRvdGFsIiwgdG90YWwpKTsKKyAgICBidWlsZGVyLmFwcGVuZChj
YWNoZVR5cGVTdGF0aXN0aWNUb0hUTUxUcigiSW1hZ2VzIiwgY2FjaGVTdGF0LmltYWdlcykpOwor
ICAgIGJ1aWxkZXIuYXBwZW5kKGNhY2hlVHlwZVN0YXRpc3RpY1RvSFRNTFRyKCJDU1MgU3R5bGUg
U2hlZXRzIiwgY2FjaGVTdGF0LmNzc1N0eWxlU2hlZXRzKSk7CisgICAgYnVpbGRlci5hcHBlbmQo
Y2FjaGVUeXBlU3RhdGlzdGljVG9IVE1MVHIoIlNjcmlwdHMiLCBjYWNoZVN0YXQuc2NyaXB0cykp
OwogI2lmIEVOQUJMRShYU0xUKQotICAgIHBhZ2UgKz0gY2FjaGVUeXBlU3RhdGlzdGljVG9IVE1M
VHIoIlhTTCBTdHlsZSBTaGVldHMiLCBjYWNoZVN0YXQueHNsU3R5bGVTaGVldHMpOworICAgIGJ1
aWxkZXIuYXBwZW5kKGNhY2hlVHlwZVN0YXRpc3RpY1RvSFRNTFRyKCJYU0wgU3R5bGUgU2hlZXRz
IiwgY2FjaGVTdGF0LnhzbFN0eWxlU2hlZXRzKSk7CiAjZW5kaWYKLSAgICBwYWdlICs9IGNhY2hl
VHlwZVN0YXRpc3RpY1RvSFRNTFRyKCJGb250cyIsIGNhY2hlU3RhdC5mb250cyk7CisgICAgYnVp
bGRlci5hcHBlbmQoY2FjaGVUeXBlU3RhdGlzdGljVG9IVE1MVHIoIkZvbnRzIiwgY2FjaGVTdGF0
LmZvbnRzKSk7CiAKLSAgICBwYWdlICs9ICI8L3RhYmxlPjwvZGl2Pjxicj4iOworICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiPC90YWJsZT48L2Rpdj48YnI+Iik7CiAKICNpZiAhZGVmaW5lZChQ
VUJMSUNfQlVJTEQpIHx8ICFQVUJMSUNfQlVJTEQKIApAQCAtMjUxLDY0ICsyNDgsNzAgQEAgc3Rh
dGljIFN0cmluZyBtZW1vcnlQYWdlKCkKICAgICAvLyBNYWxsb2MgaW5mby4KICAgICBzdHJ1Y3Qg
bWFsbGluZm8gbWFsbG9jSW5mbyA9IG1hbGxpbmZvKCk7CiAKLSAgICBwYWdlICs9ICI8ZGl2IGNs
YXNzPSdib3gnPjxkaXYgY2xhc3M9J2JveC10aXRsZSc+UHJvY2VzcyBtZW1vcnkgdXNhZ2Ugc3Vt
bWFyeTwvZGl2Pjx0YWJsZSBjbGFzcz0nZml4ZWQtdGFibGUnPjxjb2wgd2lkdGg9NzUlPjxjb2wg
d2lkdGg9MjUlPiI7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8ZGl2IGNsYXNzPSdib3gn
PjxkaXYgY2xhc3M9J2JveC10aXRsZSc+UHJvY2VzcyBtZW1vcnkgdXNhZ2Ugc3VtbWFyeTwvZGl2
Pjx0YWJsZSBjbGFzcz0nZml4ZWQtdGFibGUnPjxjb2wgd2lkdGg9NzUlPjxjb2wgd2lkdGg9MjUl
PiIpOwogCi0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiVG90YWwgdXNlZCBtZW1vcnkgKG1h
bGxvYyArIEpTQykiLCBtYWxsb2NJbmZvLnVzbWJsa3MgKyBtYWxsb2NJbmZvLnVvcmRibGtzICsg
anNjTWVtb3J5U3RhdC5zdGFja0J5dGVzICsganNjTWVtb3J5U3RhdC5KSVRCeXRlcyArIG1haW5I
ZWFwLmNhcGFjaXR5KCkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJUb3Rh
bCB1c2VkIG1lbW9yeSAobWFsbG9jICsgSlNDKSIsIG1hbGxvY0luZm8ubV9zbWFsbF9hbGxvY21l
bSArIG1hbGxvY0luZm8ubV9hbGxvY21lbSArIGpzY01lbW9yeVN0YXQuc3RhY2tCeXRlcyArIGpz
Y01lbW9yeVN0YXQuSklUQnl0ZXMgKyBtYWluSGVhcC5jYXBhY2l0eSgpKSk7CiAKICAgICBpZiAo
dW5zaWduZWQgdG90YWxDb21taXR0ZWRNZW1vcnlPZkNocm9tZVByb2Nlc3MgPSBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6dG90YWxDb21taXR0ZWRNZW1vcnlPZkNocm9tZVByb2Nlc3MoKSkgewotICAg
ICAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJUb3RhbCBjb21taXR0ZWQgbWVtb3J5IG9mIHRh
YiBwcm9jZXNzIiwgQmxhY2tCZXJyeTo6UGxhdGZvcm06OnRvdGFsQ29tbWl0dGVkTWVtb3J5T2ZD
dXJyZW50UHJvY2VzcygpKTsKLSAgICAgICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiVG90YWwg
Y29tbWl0dGVkIG1lbW9yeSBvZiBjaHJvbWUgcHJvY2VzcyIsIHRvdGFsQ29tbWl0dGVkTWVtb3J5
T2ZDaHJvbWVQcm9jZXNzKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIo
IlRvdGFsIGNvbW1pdHRlZCBtZW1vcnkgb2YgdGFiIHByb2Nlc3MiLCBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6dG90YWxDb21taXR0ZWRNZW1vcnlPZkN1cnJlbnRQcm9jZXNzKCkpKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlRvdGFsIGNvbW1pdHRlZCBtZW1vcnkgb2Yg
Y2hyb21lIHByb2Nlc3MiLCB0b3RhbENvbW1pdHRlZE1lbW9yeU9mQ2hyb21lUHJvY2VzcykpOwog
ICAgIH0gZWxzZQotICAgICAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJUb3RhbCBjb21taXR0
ZWQgbWVtb3J5IiwgQmxhY2tCZXJyeTo6UGxhdGZvcm06OnRvdGFsQ29tbWl0dGVkTWVtb3J5T2ZD
dXJyZW50UHJvY2VzcygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIo
IlRvdGFsIGNvbW1pdHRlZCBtZW1vcnkiLCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6dG90YWxDb21t
aXR0ZWRNZW1vcnlPZkN1cnJlbnRQcm9jZXNzKCkpKTsKIAogICAgIHN0cnVjdCBzdGF0IHByb2Nl
c3NJbmZvOwogICAgIGlmICghc3RhdChTdHJpbmc6OmZvcm1hdCgiL3Byb2MvJXUvYXMiLCBnZXRw
aWQoKSkubGF0aW4xKCkuZGF0YSgpLCAmcHJvY2Vzc0luZm8pKQotICAgICAgICBwYWdlICs9IG51
bWJlclRvSFRNTFRyKCJUb3RhbCBtYXBwZWQgbWVtb3J5IiwgcHJvY2Vzc0luZm8uc3Rfc2l6ZSk7
Ci0KLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJTeXN0ZW0gZnJlZSBtZW1vcnkiLCBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6c3lzdGVtRnJlZU1lbW9yeSgpKTsKLQotICAgIHBhZ2UgKz0gIjwv
dGFibGU+PC9kaXY+PGJyPiI7Ci0KLSAgICBwYWdlICs9ICI8ZGl2IGNsYXNzPSdib3gnPjxkaXYg
Y2xhc3M9J2JveC10aXRsZSc+SlMgZW5naW5lIG1lbW9yeSB1c2FnZTwvZGl2Pjx0YWJsZSBjbGFz
cz0nZml4ZWQtdGFibGUnPjxjb2wgd2lkdGg9NzUlPjxjb2wgd2lkdGg9MjUlPiI7Ci0KLSAgICBw
YWdlICs9IG51bWJlclRvSFRNTFRyKCJTdGFjayBzaXplIiwganNjTWVtb3J5U3RhdC5zdGFja0J5
dGVzKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJKSVQgbWVtb3J5IHVzYWdlIiwganNj
TWVtb3J5U3RhdC5KSVRCeXRlcyk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiTWFpbiBo
ZWFwIGNhcGFjaXR5IiwgbWFpbkhlYXAuY2FwYWNpdHkoKSk7Ci0gICAgcGFnZSArPSBudW1iZXJU
b0hUTUxUcigiTWFpbiBoZWFwIHNpemUiLCBtYWluSGVhcC5zaXplKCkpOwotICAgIHBhZ2UgKz0g
bnVtYmVyVG9IVE1MVHIoIk9iamVjdCBjb3VudCIsIG1haW5IZWFwLm9iamVjdENvdW50KCkpOwot
ICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoIkdsb2JhbCBvYmplY3QgY291bnQiLCBtYWluSGVh
cC5nbG9iYWxPYmplY3RDb3VudCgpKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJQcm90
ZWN0ZWQgb2JqZWN0IGNvdW50IiwgbWFpbkhlYXAucHJvdGVjdGVkT2JqZWN0Q291bnQoKSk7Ci0g
ICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiUHJvdGVjdGVkIGdsb2JhbCBvYmplY3QgY291bnQi
LCBtYWluSGVhcC5wcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudCgpKTsKLQotICAgIHBhZ2UgKz0g
IjwvdGFibGU+PC9kaXY+PGJyPiI7Ci0KLSAgICBwYWdlICs9ICI8ZGl2IGNsYXNzPSdib3gnPjxk
aXYgY2xhc3M9J2JveC10aXRsZSc+SlMgb2JqZWN0IHR5cGUgY291bnRzPC9kaXY+PHRhYmxlIGNs
YXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03NSU+PGNvbCB3aWR0aD0yNSU+IjsKLSAgICBk
dW1wSlNDVHlwZUNvdW50U2V0VG9UYWJsZUhUTUwocGFnZSwgb2JqZWN0VHlwZUNvdW50cy5nZXQo
KSk7Ci0gICAgcGFnZSArPSAiPC90YWJsZT48L2Rpdj48YnI+IjsKLQotICAgIHBhZ2UgKz0gIjxk
aXYgY2xhc3M9J2JveCc+PGRpdiBjbGFzcz0nYm94LXRpdGxlJz5KUyBwcm90ZWN0ZWQgb2JqZWN0
IHR5cGUgY291bnRzPC9kaXY+PHRhYmxlIGNsYXNzPSdmaXhlZC10YWJsZSc+PGNvbCB3aWR0aD03
NSU+PGNvbCB3aWR0aD0yNSU+IjsKLSAgICBkdW1wSlNDVHlwZUNvdW50U2V0VG9UYWJsZUhUTUwo
cGFnZSwgcHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cy5nZXQoKSk7Ci0gICAgcGFnZSArPSAiPC90
YWJsZT48L2Rpdj48YnI+IjsKLQotICAgIHBhZ2UgKz0gIjxkaXYgY2xhc3M9J2JveCc+PGRpdiBj
bGFzcz0nYm94LXRpdGxlJz5NYWxsb2MgSW5mb3JtYXRpb248L2Rpdj48dGFibGUgY2xhc3M9J2Zp
eGVkLXRhYmxlJz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1JT4iOwotCi0gICAgcGFnZSAr
PSBudW1iZXJUb0hUTUxUcigiVG90YWwgc3BhY2UgaW4gdXNlIiwgbWFsbG9jSW5mby51c21ibGtz
ICsgbWFsbG9jSW5mby51b3JkYmxrcyk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiVG90
YWwgc3BhY2UgaW4gZnJlZSBibG9ja3MiLCBtYWxsb2NJbmZvLmZzbWJsa3MgKyBtYWxsb2NJbmZv
LmZvcmRibGtzKTsKLSAgICBwYWdlICs9IG51bWJlclRvSFRNTFRyKCJTaXplIG9mIHRoZSBhcmVu
YSIsIG1hbGxvY0luZm8uYXJlbmEpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoIk51bWJl
ciBvZiBiaWcgYmxvY2tzIGluIHVzZSIsIG1hbGxvY0luZm8ub3JkYmxrcyk7Ci0gICAgcGFnZSAr
PSBudW1iZXJUb0hUTUxUcigiTnVtYmVyIG9mIHNtYWxsIGJsb2NrcyBpbiB1c2UiLCBtYWxsb2NJ
bmZvLnNtYmxrcyk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiTnVtYmVyIG9mIGhlYWRl
ciBibG9ja3MgaW4gdXNlIiwgbWFsbG9jSW5mby5oYmxrcyk7Ci0gICAgcGFnZSArPSBudW1iZXJU
b0hUTUxUcigiU3BhY2UgaW4gaGVhZGVyIGJsb2NrIGhlYWRlcnMiLCBtYWxsb2NJbmZvLmhibGto
ZCk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigiU3BhY2UgaW4gc21hbGwgYmxvY2tzIGlu
IHVzZSIsIG1hbGxvY0luZm8udXNtYmxrcyk7Ci0gICAgcGFnZSArPSBudW1iZXJUb0hUTUxUcigi
TWVtb3J5IGluIGZyZWUgc21hbGwgYmxvY2tzIiwgbWFsbG9jSW5mby5mc21ibGtzKTsKLSAgICBw
YWdlICs9IG51bWJlclRvSFRNTFRyKCJTcGFjZSBpbiBiaWcgYmxvY2tzIGluIHVzZSIsIG1hbGxv
Y0luZm8udW9yZGJsa3MpOwotICAgIHBhZ2UgKz0gbnVtYmVyVG9IVE1MVHIoIk1lbW9yeSBpbiBm
cmVlIGJpZyBibG9ja3MiLCBtYWxsb2NJbmZvLmZvcmRibGtzKTsKLQotICAgIHBhZ2UgKz0gIjwv
dGFibGU+PC9kaXY+IjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlRv
dGFsIG1hcHBlZCBtZW1vcnkiLCBwcm9jZXNzSW5mby5zdF9zaXplKSk7CisKKyAgICBidWlsZGVy
LmFwcGVuZChudW1iZXJUb0hUTUxUcigiU3lzdGVtIGZyZWUgbWVtb3J5IiwgQmxhY2tCZXJyeTo6
UGxhdGZvcm06OnN5c3RlbUZyZWVNZW1vcnkoKSkpOworCisgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCI8L3RhYmxlPjwvZGl2Pjxicj4iKTsKKworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
PGRpdiBjbGFzcz0nYm94Jz48ZGl2IGNsYXNzPSdib3gtdGl0bGUnPkpTIGVuZ2luZSBtZW1vcnkg
dXNhZ2U8L2Rpdj48dGFibGUgY2xhc3M9J2ZpeGVkLXRhYmxlJz48Y29sIHdpZHRoPTc1JT48Y29s
IHdpZHRoPTI1JT4iKTsKKworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJTdGFj
ayBzaXplIiwganNjTWVtb3J5U3RhdC5zdGFja0J5dGVzKSk7CisgICAgYnVpbGRlci5hcHBlbmQo
bnVtYmVyVG9IVE1MVHIoIkpJVCBtZW1vcnkgdXNhZ2UiLCBqc2NNZW1vcnlTdGF0LkpJVEJ5dGVz
KSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIk1haW4gaGVhcCBjYXBhY2l0
eSIsIG1haW5IZWFwLmNhcGFjaXR5KCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hU
TUxUcigiTWFpbiBoZWFwIHNpemUiLCBtYWluSGVhcC5zaXplKCkpKTsKKyAgICBidWlsZGVyLmFw
cGVuZChudW1iZXJUb0hUTUxUcigiT2JqZWN0IGNvdW50IiwgbWFpbkhlYXAub2JqZWN0Q291bnQo
KSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJHbG9iYWwgb2JqZWN0IGNv
dW50IiwgbWFpbkhlYXAuZ2xvYmFsT2JqZWN0Q291bnQoKSkpOworICAgIGJ1aWxkZXIuYXBwZW5k
KG51bWJlclRvSFRNTFRyKCJQcm90ZWN0ZWQgb2JqZWN0IGNvdW50IiwgbWFpbkhlYXAucHJvdGVj
dGVkT2JqZWN0Q291bnQoKSkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJQ
cm90ZWN0ZWQgZ2xvYmFsIG9iamVjdCBjb3VudCIsIG1haW5IZWFwLnByb3RlY3RlZEdsb2JhbE9i
amVjdENvdW50KCkpKTsKKworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC90YWJsZT48L2Rp
dj48YnI+Iik7CisKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjxkaXYgY2xhc3M9J2JveCc+
PGRpdiBjbGFzcz0nYm94LXRpdGxlJz5KUyBvYmplY3QgdHlwZSBjb3VudHM8L2Rpdj48dGFibGUg
Y2xhc3M9J2ZpeGVkLXRhYmxlJz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1JT4iKTsKKyAg
ICBkdW1wSlNDVHlwZUNvdW50U2V0VG9UYWJsZUhUTUwoYnVpbGRlciwgb2JqZWN0VHlwZUNvdW50
cy5nZXQoKSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8L3RhYmxlPjwvZGl2Pjxicj4i
KTsKKworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPGRpdiBjbGFzcz0nYm94Jz48ZGl2IGNs
YXNzPSdib3gtdGl0bGUnPkpTIHByb3RlY3RlZCBvYmplY3QgdHlwZSBjb3VudHM8L2Rpdj48dGFi
bGUgY2xhc3M9J2ZpeGVkLXRhYmxlJz48Y29sIHdpZHRoPTc1JT48Y29sIHdpZHRoPTI1JT4iKTsK
KyAgICBkdW1wSlNDVHlwZUNvdW50U2V0VG9UYWJsZUhUTUwoYnVpbGRlciwgcHJvdGVjdGVkT2Jq
ZWN0VHlwZUNvdW50cy5nZXQoKSk7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8L3RhYmxl
PjwvZGl2Pjxicj4iKTsKKworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPGRpdiBjbGFzcz0n
Ym94Jz48ZGl2IGNsYXNzPSdib3gtdGl0bGUnPk1hbGxvYyBJbmZvcm1hdGlvbjwvZGl2Pjx0YWJs
ZSBjbGFzcz0nZml4ZWQtdGFibGUnPjxjb2wgd2lkdGg9NzUlPjxjb2wgd2lkdGg9MjUlPiIpOwor
CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlRvdGFsIHNwYWNlIGluIHVzZSIs
IG1hbGxvY0luZm8ubV9zbWFsbF9hbGxvY21lbSArIG1hbGxvY0luZm8ubV9hbGxvY21lbSkpOwor
ICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJUb3RhbCBzcGFjZSBpbiBmcmVlIGJs
b2NrcyIsIG1hbGxvY0luZm8ubV9zbWFsbF9mcmVlbWVtICsgbWFsbG9jSW5mby5tX2ZyZWVtZW0p
KTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigiTWVtb3J5IGluIGZyZWUgc21h
bGwgYmxvY2tzIiwgbWFsbG9jSW5mby5tX3NtYWxsX2ZyZWVtZW0pKTsKKyAgICBidWlsZGVyLmFw
cGVuZChudW1iZXJUb0hUTUxUcigiTWVtb3J5IGluIGZyZWUgYmlnIGJsb2NrcyIsIG1hbGxvY0lu
Zm8ubV9mcmVlbWVtKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlNwYWNl
IGluIGhlYWRlciBibG9jayBoZWFkZXJzIiwgbWFsbG9jSW5mby5tX3NtYWxsX292ZXJoZWFkKSk7
CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlNwYWNlIHVzZWQgYnkgYmxvY2sg
aGVhZGVycyIsIG1hbGxvY0luZm8ubV9vdmVyaGVhZCkpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51
bWJlclRvSFRNTFRyKCJTcGFjZSBpbiBzbWFsbCBibG9ja3MgaW4gdXNlIiwgbWFsbG9jSW5mby5t
X3NtYWxsX2FsbG9jbWVtKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIlNw
YWNlIGluIGJpZyBibG9ja3MgaW4gdXNlIiwgbWFsbG9jSW5mby5tX2FsbG9jbWVtKSk7CisgICAg
YnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIk51bWJlciBvZiBjb3JlIGFsbG9jYXRpb25z
IiwgbWFsbG9jSW5mby5tX2NvcmVhbGxvY3MpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJU
b0hUTUxUcigiTnVtYmVyIG9mIGNvcmUgZGUtYWxsb2NhdGlvbnMgcGVyZm9ybWVkIiwgbWFsbG9j
SW5mby5tX2NvcmVmcmVlcykpOworICAgIGJ1aWxkZXIuYXBwZW5kKG51bWJlclRvSFRNTFRyKCJT
aXplIG9mIHRoZSBhcmVuYSIsIG1hbGxvY0luZm8ubV9oZWFwc2l6ZSkpOworICAgIGJ1aWxkZXIu
YXBwZW5kKG51bWJlclRvSFRNTFRyKCJOdW1iZXIgb2YgZnJlZXMgcGVyZm9ybWVkIiwgbWFsbG9j
SW5mby5tX2ZyZWVzKSk7CisgICAgYnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIk51bWJl
ciBvZiBhbGxvY2F0aW9ucyBwZXJmb3JtZWQiLCBtYWxsb2NJbmZvLm1fYWxsb2NzKSk7CisgICAg
YnVpbGRlci5hcHBlbmQobnVtYmVyVG9IVE1MVHIoIk51bWJlciBvZiByZWFsbG9jIGZ1bmN0aW9u
cyBwZXJmb3JtZWQiLCBtYWxsb2NJbmZvLm1fcmVhbGxvY3MpKTsKKyAgICBidWlsZGVyLmFwcGVu
ZChudW1iZXJUb0hUTUxUcigiTnVtYmVyIG9mIHNtYWxsIGJsb2NrcyIsIG1hbGxvY0luZm8ubV9z
bWFsbF9ibG9ja3MpKTsKKyAgICBidWlsZGVyLmFwcGVuZChudW1iZXJUb0hUTUxUcigiTnVtYmVy
IG9mIGJpZyBibG9ja3MiLCBtYWxsb2NJbmZvLm1fYmxvY2tzKSk7CisgICAgYnVpbGRlci5hcHBl
bmQobnVtYmVyVG9IVE1MVHIoIk51bWJlciBvZiBoZWFkZXIgYmxvY2tzIiwgbWFsbG9jSW5mby5t
X2hibG9ja3MpKTsKKworICAgIGJ1aWxkZXIuYXBwZW5kKCI8L3RhYmxlPjwvZGl2PiIpOwogI2Vu
ZGlmCiAKLSAgICBwYWdlICs9ICI8L2JvZHk+PC9odG1sPiI7Ci0gICAgcmV0dXJuIHBhZ2U7Cisg
ICAgYnVpbGRlci5hcHBlbmQoIjwvYm9keT48L2h0bWw+Iik7CisgICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKIH0KIAogI2lmICFkZWZpbmVkKFBVQkxJQ19CVUlMRCkgfHwgIVBVQkxJQ19C
VUlMRApAQCAtNDE1LDM4ICs0MTgsMzggQEAgc3RhdGljIFN0cmluZyBtZW1vcnlQZWFrc1RvSHRt
bFRhYmxlKE1lbW9yeVRyYWNrZXImIG1lbW9yeVRyYWNrZXIpCiAKIHN0YXRpYyBTdHJpbmcgbWVt
b3J5TGl2ZVBhZ2UoU3RyaW5nIG1lbW9yeUxpdmVDb21tYW5kKQogewotICAgIFN0cmluZyBwYWdl
OworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKIAotICAgIHBhZ2UgPSB3cml0ZUhlYWRlcigi
TWVtb3J5IExpdmUgUGFnZSIpCi0gICAgICAgICsgIjxkaXYgY2xhc3M9J2JveCc+PGRpdiBjbGFz
cz0nYm94LXRpdGxlJz5NZW1vcnkgUGVha3M8L2Rpdj4iCi0gICAgICAgICsgIjxkaXYgc3R5bGU9
J2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiMxQkUwQzknPlwiYWJvdXQ6bWVtb3J5LWxpdmUvc3RhcnRc
Ijogc3RhcnQgdHJhY2tpbmcgbWVtb3J5IHBlYWtzLjwvZGl2PiIKLSAgICAgICAgKyAiPGRpdiBz
dHlsZT0nZm9udC1zaXplOjEycHg7Y29sb3I6IzFCRTBDOSc+XCJhYm91dDptZW1vcnktbGl2ZVwi
OiBzaG93IG1lbW9yeSBwZWFrcyBldmVyeSAzMG1zLjwvZGl2PiIKLSAgICAgICAgKyAiPGRpdiBz
dHlsZT0nZm9udC1zaXplOjEycHg7Y29sb3I6IzFCRTBDOSc+XCJhYm91dDptZW1vcnktbGl2ZS9z
dG9wXCI6IHN0b3AgdHJhY2tpbmcgYW5kIHNob3cgbWVtb3J5IHBlYWtzLjwvZGl2Pjxicj4iOwor
ICAgIGJ1aWxkZXIuYXBwZW5kKHdyaXRlSGVhZGVyKCJNZW1vcnkgTGl2ZSBQYWdlIikpOworICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPGRpdiBjbGFzcz0nYm94Jz48ZGl2IGNsYXNzPSdib3gt
dGl0bGUnPk1lbW9yeSBQZWFrczwvZGl2PiIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
PGRpdiBzdHlsZT0nZm9udC1zaXplOjEycHg7Y29sb3I6IzFCRTBDOSc+XCJhYm91dDptZW1vcnkt
bGl2ZS9zdGFydFwiOiBzdGFydCB0cmFja2luZyBtZW1vcnkgcGVha3MuPC9kaXY+Iik7CisgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8ZGl2IHN0eWxlPSdmb250LXNpemU6MTJweDtjb2xvcjoj
MUJFMEM5Jz5cImFib3V0Om1lbW9yeS1saXZlXCI6IHNob3cgbWVtb3J5IHBlYWtzIGV2ZXJ5IDMw
bXMuPC9kaXY+Iik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8ZGl2IHN0eWxlPSdmb250
LXNpemU6MTJweDtjb2xvcjojMUJFMEM5Jz5cImFib3V0Om1lbW9yeS1saXZlL3N0b3BcIjogc3Rv
cCB0cmFja2luZyBhbmQgc2hvdyBtZW1vcnkgcGVha3MuPC9kaXY+PGJyPiIpOwogCiAgICAgTWVt
b3J5VHJhY2tlciYgbWVtb3J5VHJhY2tlciA9IE1lbW9yeVRyYWNrZXI6Omluc3RhbmNlKCk7CiAg
ICAgaWYgKG1lbW9yeUxpdmVDb21tYW5kLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoIW1lbW9y
eVRyYWNrZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIHBhZ2UgKz0gIjxkaXYgc3R5bGU9J2Zv
bnQtc2l6ZToxNXB4O2NvbG9yOiNFNkYwMzInPk1lbW9yeSB0cmFja2VyIGlzbid0IHJ1bm5pbmcs
IHBsZWFzZSB1c2UgXCJhYm91dDptZW1vcnktbGl2ZS9zdGFydFwiIHRvIHN0YXJ0IHRoZSB0cmFj
a2VyLjwvZGl2PiI7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjxkaXYgc3R5
bGU9J2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiNFNkYwMzInPk1lbW9yeSB0cmFja2VyIGlzbid0IHJ1
bm5pbmcsIHBsZWFzZSB1c2UgXCJhYm91dDptZW1vcnktbGl2ZS9zdGFydFwiIHRvIHN0YXJ0IHRo
ZSB0cmFja2VyLjwvZGl2PiIpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHBhZ2UgKz0g
bWVtb3J5UGVha3NUb0h0bWxUYWJsZShtZW1vcnlUcmFja2VyKTsKLSAgICAgICAgICAgIHBhZ2Ug
Kz0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPnNldEludGVydmFsKGZ1bmN0aW9u
KCl7d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfSwzMCk7PC9zY3JpcHQ+IjsKKyAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKG1lbW9yeVBlYWtzVG9IdG1sVGFibGUobWVtb3J5VHJhY2tlcikpOwor
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2ph
dmFzY3JpcHRcIj5zZXRJbnRlcnZhbChmdW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQo
KX0sMzApOzwvc2NyaXB0PiIpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChlcXVhbElnbm9y
aW5nQ2FzZShtZW1vcnlMaXZlQ29tbWFuZCwgIi9zdGFydCIpKSB7CiAgICAgICAgIG1lbW9yeVRy
YWNrZXIuc3RhcnQoKTsKLSAgICAgICAgcGFnZSArPSAiPGRpdiBzdHlsZT0nZm9udC1zaXplOjE1
cHg7Y29sb3I6I0U2RjAzMic+TWVtb3J5IHRyYWNrZXIgaXMgcnVubmluZy48L2Rpdj4iOworICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjxkaXYgc3R5bGU9J2ZvbnQtc2l6ZToxNXB4O2Nv
bG9yOiNFNkYwMzInPk1lbW9yeSB0cmFja2VyIGlzIHJ1bm5pbmcuPC9kaXY+Iik7CiAgICAgfSBl
bHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtZW1vcnlMaXZlQ29tbWFuZCwgIi9zdG9wIikpIHsK
ICAgICAgICAgaWYgKCFtZW1vcnlUcmFja2VyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBwYWdl
ICs9ICI8ZGl2IHN0eWxlPSdmb250LXNpemU6MTVweDtjb2xvcjojRTZGMDMyJz5NZW1vcnkgdHJh
Y2tlciBpc24ndCBydW5uaW5nLjwvZGl2PiI7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIjxkaXYgc3R5bGU9J2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiNFNkYwMzInPk1lbW9yeSB0
cmFja2VyIGlzbid0IHJ1bm5pbmcuPC9kaXY+Iik7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgbWVtb3J5VHJhY2tlci5zdG9wKCk7Ci0gICAgICAgICAgICBwYWdlICs9IG1lbW9yeVBlYWtz
VG9IdG1sVGFibGUobWVtb3J5VHJhY2tlcik7Ci0gICAgICAgICAgICBwYWdlICs9ICI8ZGl2IHN0
eWxlPSdmb250LXNpemU6MTVweDtjb2xvcjojRTZGMDMyJz5NZW1vcnkgdHJhY2tlciBpcyBzdG9w
cGVkLjwvZGl2PiI7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChtZW1vcnlQZWFrc1RvSHRt
bFRhYmxlKG1lbW9yeVRyYWNrZXIpKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiPGRpdiBzdHlsZT0nZm9udC1zaXplOjE1cHg7Y29sb3I6I0U2RjAzMic+TWVtb3J5IHRyYWNr
ZXIgaXMgc3RvcHBlZC48L2Rpdj4iKTsKICAgICAgICAgfQogICAgIH0gZWxzZQotICAgICAgICBw
YWdlICs9ICI8ZGl2IHN0eWxlPSdmb250LXNpemU6MTVzcHg7Y29sb3I6I0U2RjAzMic+VW5rbm93
biBjb21tYW5kISBQbGVhc2UgaW5wdXQgYSBjb3JyZWN0IGNvbW1hbmQhPC9kaXY+IjsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8ZGl2IHN0eWxlPSdmb250LXNpemU6MTVzcHg7Y29s
b3I6I0U2RjAzMic+VW5rbm93biBjb21tYW5kISBQbGVhc2UgaW5wdXQgYSBjb3JyZWN0IGNvbW1h
bmQhPC9kaXY+Iik7CiAKLSAgICBwYWdlICs9ICI8L2Rpdj48YnI+PC9kaXY+PC9ib2R5PjwvaHRt
bD4iOwotICAgIHJldHVybiBwYWdlOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC9kaXY+
PGJyPjwvZGl2PjwvYm9keT48L2h0bWw+Iik7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmco
KTsKIH0KICNlbmRpZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>