<?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>42462</bug_id>
          
          <creation_ts>2010-07-16 09:31:39 -0700</creation_ts>
          <short_desc>Web Inspector: Clean-up Inspector interface generator.</short_desc>
          <delta_ts>2010-07-16 12:42:58 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>abarth</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>252557</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-07-16 09:31:39 -0700</bug_when>
    <thetext>%subj%

The current implementation of generator is not ready for generation Backend part of Inspector interface.
The full patch with Backend is quite big and I&apos;ve split it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252558</commentid>
    <comment_count>1</comment_count>
      <attachid>61816</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-07-16 09:35:43 -0700</bug_when>
    <thetext>Created attachment 61816
[patch] initial version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252568</commentid>
    <comment_count>2</comment_count>
      <attachid>61816</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-16 09:50:29 -0700</bug_when>
    <thetext>Comment on attachment 61816
[patch] initial version.

WebCore/inspector/CodeGeneratorInspector.pm:40
 +  };
Maybe accessorSuffix to be more specific?

WebCore/inspector/CodeGeneratorInspector.pm:104
 +  my $callId = new domSignature();
domSignature sounds weird to me

WebCore/inspector/CodeGeneratorInspector.pm:176
 +      my @argsFiltered = grep($_-&gt;direction eq &quot;out&quot;, @{$function-&gt;parameters});
Some comment would clarify this stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252571</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-16 09:57:23 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 61816 [details])
&gt; WebCore/inspector/CodeGeneratorInspector.pm:40
&gt;  +  };
&gt; Maybe accessorSuffix to be more specific?

For now I like &quot;pushSuffix&quot;. Its the method used to push the result into an
InspectorValue. But, it may also be used later for pulling out of an
InspectorValue, when generating a dispatch function. If so I don&apos;t know
whats best, accessorSuffix may be good enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252633</commentid>
    <comment_count>4</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-07-16 11:41:33 -0700</bug_when>
    <thetext>Committed r63561
	M	WebCore/ChangeLog
	M	WebCore/inspector/CodeGeneratorInspector.pm
	M	WebCore/inspector/InspectorValues.h
	M	WebCore/inspector/Inspector.idl
	M	WebCore/inspector/InspectorValues.cpp
r63561 = 52486558854a03d87a6292b1d1bc050243e0e37c (refs/remotes/trunk)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252654</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-16 12:42:58 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/63561 might have broken Chromium Win Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/63561
http://trac.webkit.org/changeset/63562
http://trac.webkit.org/changeset/63563</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61816</attachid>
            <date>2010-07-16 09:35:43 -0700</date>
            <delta_ts>2010-07-16 09:50:29 -0700</delta_ts>
            <desc>[patch] initial version.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>24204</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzEzZjRjNS4uODgxYzY5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNy0xNiAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBUaGUgY3VycmVudCBpbXBsZW1lbnRh
dGlvbiBvZiBnZW5lcmF0b3IgaXMgbm90IHJlYWR5CisgICAgICAgIGZvciBnZW5lcmF0aW9uIEJh
Y2tlbmQgcGFydCBvZiBJbnNwZWN0b3IgaW50ZXJmYWNlLiBUaGUgZnVsbCBwYXRjaAorICAgICAg
ICB3aXRoIEJhY2tlbmQgaXMgcXVpdGUgYmlnIGFuZCBJJ3ZlIHNwbGl0IGl0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI0NjIKKworICAgICAgICAq
IGluc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXJyYXk6OmdldCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXJy
YXk6Omxlbmd0aCk6CisKIDIwMTAtMDctMTYgIENvc21pbiBUcnV0YSAgPGN0cnV0YUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQppbmRleCBiMjBlZGExLi5jMzVmYTZhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KQEAgLTYsNiAr
Niw3IEBAIHBhY2thZ2UgQ29kZUdlbmVyYXRvckluc3BlY3RvcjsKIAogdXNlIHN0cmljdDsKIAor
dXNlIENsYXNzOjpTdHJ1Y3Q7CiB1c2UgRmlsZTo6c3RhdDsKIAogbXkgJXR5cGVUcmFuc2Zvcm07
CkBAIC0yMSw1NiArMjIsNTYgQEAgJHR5cGVUcmFuc2Zvcm17Ik9iamVjdCJ9ID0gewogICAgICJy
ZXRWYWwiID0+ICJQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4iLAogICAgICJmb3J3YXJkIiA9
PiAiSW5zcGVjdG9yT2JqZWN0IiwKICAgICAiaGVhZGVyIiA9PiAiSW5zcGVjdG9yVmFsdWVzLmgi
LAotICAgICJwdXNoIiA9PiAicHVzaCIKKyAgICAic3VmZml4IiA9PiAiIgogfTsKICR0eXBlVHJh
bnNmb3JteyJBcnJheSJ9ID0gewogICAgICJwYXJhbSIgPT4gIlBhc3NSZWZQdHI8SW5zcGVjdG9y
QXJyYXk+IiwKICAgICAicmV0VmFsIiA9PiAiUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4iLAog
ICAgICJmb3J3YXJkIiA9PiAiSW5zcGVjdG9yQXJyYXkiLAogICAgICJoZWFkZXIiID0+ICJJbnNw
ZWN0b3JWYWx1ZXMuaCIsCi0gICAgInB1c2giID0+ICJwdXNoIgorICAgICJzdWZmaXgiID0+ICIi
CiB9OwogJHR5cGVUcmFuc2Zvcm17IlZhbHVlIn0gPSB7CiAgICAgInBhcmFtIiA9PiAiUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JWYWx1ZT4iLAogICAgICJyZXRWYWwiID0+ICJQYXNzUmVmUHRyPEluc3Bl
Y3RvclZhbHVlPiIsCiAgICAgImZvcndhcmQiID0+ICJJbnNwZWN0b3JWYWx1ZSIsCiAgICAgImhl
YWRlciIgPT4gIkluc3BlY3RvclZhbHVlcy5oIiwKLSAgICAicHVzaCIgPT4gInB1c2giCisgICAg
InN1ZmZpeCIgPT4gIiIKIH07CiAkdHlwZVRyYW5zZm9ybXsiU3RyaW5nIn0gPSB7CiAgICAgInBh
cmFtIiA9PiAiY29uc3QgU3RyaW5nJiIsCiAgICAgInJldFZhbCIgPT4gIlN0cmluZyIsCiAgICAg
ImZvcndhcmQiID0+ICJTdHJpbmciLAogICAgICJoZWFkZXIiID0+ICJQbGF0Zm9ybVN0cmluZy5o
IiwKLSAgICAicHVzaCIgPT4gInB1c2hTdHJpbmciCisgICAgInN1ZmZpeCIgPT4gIlN0cmluZyIK
IH07CiAkdHlwZVRyYW5zZm9ybXsibG9uZyJ9ID0gewogICAgICJwYXJhbSIgPT4gImxvbmciLAog
ICAgICJyZXRWYWwiID0+ICJsb25nIiwKICAgICAiZm9yd2FyZCIgPT4gIiIsCiAgICAgImhlYWRl
ciIgPT4gIiIsCi0gICAgInB1c2giID0+ICJwdXNoTnVtYmVyIgorICAgICJzdWZmaXgiID0+ICJO
dW1iZXIiCiB9OwogJHR5cGVUcmFuc2Zvcm17ImludCJ9ID0gewogICAgICJwYXJhbSIgPT4gImlu
dCIsCiAgICAgInJldFZhbCIgPT4gImludCIsCiAgICAgImZvcndhcmQiID0+ICIiLAogICAgICJo
ZWFkZXIiID0+ICIiLAotICAgICJwdXNoIiA9PiAicHVzaE51bWJlciIKKyAgICAic3VmZml4IiA9
PiAiTnVtYmVyIiwKIH07CiAkdHlwZVRyYW5zZm9ybXsidW5zaWduZWQgbG9uZyJ9ID0gewogICAg
ICJwYXJhbSIgPT4gInVuc2lnbmVkIGxvbmciLAogICAgICJyZXRWYWwiID0+ICJ1bnNpZ25lZCBs
b25nIiwKICAgICAiZm9yd2FyZCIgPT4gIiIsCiAgICAgImhlYWRlciIgPT4gIiIsCi0gICAgInB1
c2giID0+ICJwdXNoTnVtYmVyIgorICAgICJzdWZmaXgiID0+ICJOdW1iZXIiCiB9OwogJHR5cGVU
cmFuc2Zvcm17ImJvb2xlYW4ifSA9IHsKICAgICAicGFyYW0iID0+ICJib29sIiwKICAgICAicmV0
VmFsIj0+ICJib29sIiwKICAgICAiZm9yd2FyZCIgPT4gIiIsCiAgICAgImhlYWRlciIgPT4gIiIs
Ci0gICAgInB1c2giID0+ICJwdXNoQm9vbCIKKyAgICAic3VmZml4IiA9PiAiQm9vbCIKIH07CiAk
dHlwZVRyYW5zZm9ybXsidm9pZCJ9ID0gewogICAgICJyZXRWYWwiID0+ICJ2b2lkIiwKQEAgLTky
LDIzICs5MywxNyBAQCBteSAkd3JpdGVEZXBlbmRlbmNpZXM7CiBteSAkdmVyYm9zZTsKIAogbXkg
JG5hbWVzcGFjZTsKLW15ICRmcm9udGVuZENsYXNzTmFtZTsKLW15ICVkaXNjb3ZlcmVkVHlwZXM7
Ci1teSAlZ2VuZXJhdGVkRnVuY3Rpb25zOwotCi1teSBAZnJvbnRlbmRDbGFzc0RlY2xhcmF0aW9u
OwotbXkgQGZ1bmN0aW9uRGVmaW5pdGlvbnM7CiAKLXN1YiB0eXBlU3BlYwotewotICAgIG15ICRw
YXJhbSA9IHNoaWZ0OwotICAgIG15ICRyZXRWYWx1ZSA9IHNoaWZ0OworbXkgJGZyb250ZW5kQ2xh
c3NOYW1lOworbXkgJWZyb250ZW5kVHlwZXM7CitteSAlZnJvbnRlbmRNZXRob2RzOworbXkgQGZy
b250ZW5kTWV0aG9kc0ltcGw7CitteSAkZnJvbnRlbmRDb25zdHJ1Y3RvcjsKK215ICRmcm9udGVu
ZEZvb3RlcjsKIAotICAgIG15ICR0eXBlID0gJHR5cGVUcmFuc2Zvcm17JHBhcmFtLT50eXBlfS0+
eyRyZXRWYWx1ZSA/ICJyZXRWYWwiIDogInBhcmFtIn07Ci0gICAgJGRpc2NvdmVyZWRUeXBlc3sk
cGFyYW0tPnR5cGV9ID0gMTsKLSAgICAkdHlwZSBvciBkaWUgImludmFsaWQgdHlwZSBzcGVjaWZp
Y2F0aW9uIFwiIiAuICRwYXJhbS0+dHlwZSAuIlwiIjsKLSAgICByZXR1cm4gJHR5cGU7Ci19Citt
eSAkY2FsbElkID0gbmV3IGRvbVNpZ25hdHVyZSgpOworJGNhbGxJZC0+dHlwZSgibG9uZyIpOwor
JGNhbGxJZC0+bmFtZSgiY2FsbElkIik7CiAKICMgRGVmYXVsdCBjb25zdHJ1Y3Rvcgogc3ViIG5l
dwpAQCAtMTQ1LDEyNyArMTQwLDEyNiBAQCBzdWIgR2VuZXJhdGVJbnRlcmZhY2UKICAgICBteSAk
ZGVmaW5lcyA9IHNoaWZ0OwogCiAgICAgbXkgJGNsYXNzTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7
CisKICAgICAkZnJvbnRlbmRDbGFzc05hbWUgPSAiUmVtb3RlIiAuICRjbGFzc05hbWUgLiAiRnJv
bnRlbmQiOworICAgICRmcm9udGVuZENvbnN0cnVjdG9yID0gIiAgICAke2Zyb250ZW5kQ2xhc3NO
YW1lfShJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNsaWVudCkgOiBtX2luc3BlY3RvckNsaWVu
dChpbnNwZWN0b3JDbGllbnQpIHsgfSI7CisgICAgJGZyb250ZW5kRm9vdGVyID0gIiAgICBJbnNw
ZWN0b3JDbGllbnQqIG1faW5zcGVjdG9yQ2xpZW50OyI7CisgICAgJGZyb250ZW5kVHlwZXN7IlN0
cmluZyJ9ID0gMTsKKyAgICAkZnJvbnRlbmRUeXBlc3siSW5zcGVjdG9yQ2xpZW50In0gPSAxOwor
ICAgICRmcm9udGVuZFR5cGVzeyJQYXNzUmVmUHRyIn0gPSAxOwogCi0gICAgJGRpc2NvdmVyZWRU
eXBlc3siU3RyaW5nIn0gPSAxOwotICAgICRkaXNjb3ZlcmVkVHlwZXN7Ikluc3BlY3RvckNsaWVu
dCJ9ID0gMTsKLSAgICAkZGlzY292ZXJlZFR5cGVzeyJQYXNzUmVmUHRyIn0gPSAxOwotCi0gICAg
cHVzaChAZnJvbnRlbmRDbGFzc0RlY2xhcmF0aW9uLCAiY2xhc3MgJGZyb250ZW5kQ2xhc3NOYW1l
IHsiKTsKLSAgICBwdXNoKEBmcm9udGVuZENsYXNzRGVjbGFyYXRpb24sICJwdWJsaWM6Iik7Ci0g
ICAgcHVzaChAZnJvbnRlbmRDbGFzc0RlY2xhcmF0aW9uLCAiICAgICRmcm9udGVuZENsYXNzTmFt
ZShJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNsaWVudCkgOiBtX2luc3BlY3RvckNsaWVudChp
bnNwZWN0b3JDbGllbnQpIHsgfSIpOwotICAgIHB1c2goQGZyb250ZW5kQ2xhc3NEZWNsYXJhdGlv
biwgIiIpOwotICAgIHB1c2goQGZyb250ZW5kQ2xhc3NEZWNsYXJhdGlvbiwgZ2VuZXJhdGVGdW5j
dGlvbnMoJGludGVyZmFjZSwgJGZyb250ZW5kQ2xhc3NOYW1lKSk7Ci0gICAgcHVzaChAZnJvbnRl
bmRDbGFzc0RlY2xhcmF0aW9uLCAiIik7Ci0gICAgcHVzaChAZnJvbnRlbmRDbGFzc0RlY2xhcmF0
aW9uLCAicHJpdmF0ZToiKTsKLSAgICBwdXNoKEBmcm9udGVuZENsYXNzRGVjbGFyYXRpb24sICIg
ICAgSW5zcGVjdG9yQ2xpZW50KiBtX2luc3BlY3RvckNsaWVudDsiKTsKLSAgICBwdXNoKEBmcm9u
dGVuZENsYXNzRGVjbGFyYXRpb24sICJ9OyIpOworICAgIGdlbmVyYXRlRnVuY3Rpb25zKCRpbnRl
cmZhY2UpOwogfQogCiBzdWIgZ2VuZXJhdGVGdW5jdGlvbnMKIHsKICAgICBteSAkaW50ZXJmYWNl
ID0gc2hpZnQ7Ci0gICAgbXkgJGNsYXNzTmFtZSA9IHNoaWZ0OwogCi0gICAgbXkgQGZ1bmN0aW9u
RGVjbGFyYXRpb25zOwogICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1
bmN0aW9uc30pIHsKLSAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZTsKLSAgICAgICAgbXkgJGFyZ3Vt
ZW50c0RpcmVjdGlvbkZpbHRlcjsKLSAgICAgICAgbXkgJGFyZ3VtZW50czsKLSAgICAgICAgbXkg
QGZ1bmN0aW9uQm9keTsKLSAgICAgICAgcHVzaChAZnVuY3Rpb25Cb2R5LCAiICAgIFJlZlB0cjxJ
bnNwZWN0b3JBcnJheT4gYXJndW1lbnRzID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpOyIpOwot
ICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJu
b3RpZnkifSkgewotICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5uYW1lOwotICAgICAgICAgICAgJGFyZ3VtZW50c0RpcmVjdGlvbkZpbHRlciA9ICJpbiI7
Ci0gICAgICAgICAgICAkYXJndW1lbnRzID0gIiI7Ci0gICAgICAgICAgICBwdXNoKEBmdW5jdGlv
bkJvZHksICIgICAgYXJndW1lbnRzLT5wdXNoU3RyaW5nKFwiJGZ1bmN0aW9uTmFtZVwiKTsiKTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG15ICRjdXN0b21SZXNwb25zZSA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiY3VzdG9tUmVzcG9uc2UifTsK
LSAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAkY3VzdG9tUmVzcG9uc2UgPyAkY3VzdG9tUmVz
cG9uc2UgOiAiZGlkIiAuIHVjZmlyc3QoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUpOwotICAg
ICAgICAgICAgJGFyZ3VtZW50c0RpcmVjdGlvbkZpbHRlciA9ICJvdXQiOwotICAgICAgICAgICAg
JGFyZ3VtZW50cyA9ICJsb25nIGNhbGxJZCI7Ci0gICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkJv
ZHksICIgICAgYXJndW1lbnRzLT5wdXNoU3RyaW5nKFwiJGZ1bmN0aW9uTmFtZVwiKTsiKTsKLSAg
ICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQm9keSwgIiAgICBhcmd1bWVudHMtPnB1c2hOdW1iZXIo
Y2FsbElkKTsiKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAo
QHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Ci0gICAgICAgICAgICBpZiAoJHBhcmFtZXRlci0+
ZGlyZWN0aW9uIGVxICRhcmd1bWVudHNEaXJlY3Rpb25GaWx0ZXIpIHsKLSAgICAgICAgICAgICAg
ICAkcGFyYW1ldGVyLT5uYW1lIG9yIGRpZSAiZW1wdHkgYXJndW1lbnQgbmFtZSBzcGVjaWZpZWQg
Zm9yIGZ1bmN0aW9uICR7ZnJvbnRlbmRDbGFzc05hbWV9OjokZnVuY3Rpb25OYW1lIGFuZCBhcmd1
bWVudCB0eXBlICIgLiAkcGFyYW1ldGVyLT50eXBlOwotICAgICAgICAgICAgICAgICRhcmd1bWVu
dHMgPSAkYXJndW1lbnRzIC4gIiwgIiBpZiAoJGFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAg
JGFyZ3VtZW50cyA9ICRhcmd1bWVudHMgLiB0eXBlU3BlYygkcGFyYW1ldGVyKSAuICIgIiAuICRw
YXJhbWV0ZXItPm5hbWU7Ci0gICAgICAgICAgICAgICAgbXkgJHB1c2hGdW5jdGlvbk5hbWUgPSAg
JHR5cGVUcmFuc2Zvcm17JHBhcmFtZXRlci0+dHlwZX0tPnsicHVzaCJ9OwotICAgICAgICAgICAg
ICAgIHB1c2goQGZ1bmN0aW9uQm9keSwgIiAgICBhcmd1bWVudHMtPiRwdXNoRnVuY3Rpb25OYW1l
KCIgLiAkcGFyYW1ldGVyLT5uYW1lIC4gIik7Iik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgcHVzaChAZnVuY3Rpb25Cb2R5LCAiICAgIG1faW5zcGVjdG9yQ2xpZW50LT5zZW5k
TWVzc2FnZVRvRnJvbnRlbmQoYXJndW1lbnRzLT50b0pTT05TdHJpbmcoKSk7Iik7Ci0KLSAgICAg
ICAgbXkgJHNpZ25hdHVyZSA9ICIgICAgIiAuIHR5cGVTcGVjKCRmdW5jdGlvbi0+c2lnbmF0dXJl
LCAxKSAuICIgJGZ1bmN0aW9uTmFtZSgkYXJndW1lbnRzKTsiOwotICAgICAgICBpZiAoISRnZW5l
cmF0ZWRGdW5jdGlvbnN7JHtzaWduYXR1cmV9fSkgewotICAgICAgICAgICAgJGdlbmVyYXRlZEZ1
bmN0aW9uc3ske3NpZ25hdHVyZX19ID0gMTsKLSAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uRGVj
bGFyYXRpb25zLCAkc2lnbmF0dXJlKTsKLQotICAgICAgICAgICAgbXkgQGZ1bmN0aW9uOwotICAg
ICAgICAgICAgcHVzaChAZnVuY3Rpb24sIHR5cGVTcGVjKCRmdW5jdGlvbi0+c2lnbmF0dXJlLCAx
KSAuICIgIiAuICRjbGFzc05hbWUgLiAiOjoiIC4gJGZ1bmN0aW9uTmFtZSAuICIoIiAuICRhcmd1
bWVudHMgLiAiKSIpOwotICAgICAgICAgICAgcHVzaChAZnVuY3Rpb24sICJ7Iik7Ci0gICAgICAg
ICAgICBwdXNoKEBmdW5jdGlvbiwgQGZ1bmN0aW9uQm9keSk7Ci0gICAgICAgICAgICBwdXNoKEBm
dW5jdGlvbiwgIn0iKTsKLSAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uLCAiIik7Ci0gICAgICAg
ICAgICBwdXNoKEBmdW5jdGlvbkRlZmluaXRpb25zLCBAZnVuY3Rpb24pOwotICAgICAgICB9Cisg
ICAgICAgIGdlbmVyYXRlRnJvbnRlbmRGdW5jdGlvbigkZnVuY3Rpb24pOwogICAgIH0KLSAgICBy
ZXR1cm4gQGZ1bmN0aW9uRGVjbGFyYXRpb25zOwogfQogCi1zdWIgZ2VuZXJhdGVIZWFkZXIKK3N1
YiBnZW5lcmF0ZUZyb250ZW5kRnVuY3Rpb24KIHsKLSAgICBteSBAaGVhZGVyQ29udGVudCA9IHNw
bGl0KCJcciIsICRsaWNlbnNlVGVtcGxhdGUpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIj
aWZuZGVmICR7ZnJvbnRlbmRDbGFzc05hbWV9X2giKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiI2RlZmluZSAke2Zyb250ZW5kQ2xhc3NOYW1lfV9oIik7Ci0gICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiIpOwotCi0gICAgbXkgQGZvcndhcmRIZWFkZXJzOwotICAgIGZvcmVhY2ggbXkgJHR5
cGUgKGtleXMgJWRpc2NvdmVyZWRUeXBlcykgewotICAgICAgICBwdXNoKEBmb3J3YXJkSGVhZGVy
cywgIiNpbmNsdWRlIDwiIC4gJHR5cGVUcmFuc2Zvcm17JHR5cGV9LT57ImZvcndhcmRIZWFkZXIi
fSAuICI+IikgaWYgISR0eXBlVHJhbnNmb3JteyR0eXBlfS0+eyJmb3J3YXJkSGVhZGVyIn0gZXEg
ICIiOworICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0OworCisgICAgbXkgJGZ1bmN0aW9uTmFtZTsK
KyAgICBteSAkbm90aWZ5ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJub3RpZnkifTsKKyAgICBpZiAoJG5vdGlmeSkgeworICAgICAgICAkZnVuY3Rpb25OYW1l
ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbXkg
JGN1c3RvbVJlc3BvbnNlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJjdXN0b21SZXNwb25zZSJ9OworICAgICAgICAkZnVuY3Rpb25OYW1lID0gJGN1c3RvbVJl
c3BvbnNlID8gJGN1c3RvbVJlc3BvbnNlIDogImRpZCIgLiB1Y2ZpcnN0KCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5uYW1lKTsKICAgICB9Ci0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgc29ydCBAZm9y
d2FyZEhlYWRlcnMpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIiKTsKLSAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAibmFtZXNwYWNlICRuYW1lc3BhY2UgeyIpOwotICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIiKTsKLQotICAgIG15IEBmb3J3YXJkRGVjbGFyYXRpb25zOwotICAgIGZvcmVh
Y2ggbXkgJHR5cGUgKGtleXMgJWRpc2NvdmVyZWRUeXBlcykgewotICAgICAgICBwdXNoKEBmb3J3
YXJkRGVjbGFyYXRpb25zLCAiY2xhc3MgIiAuICR0eXBlVHJhbnNmb3JteyR0eXBlfS0+eyJmb3J3
YXJkIn0gLiAiOyIpIGlmICEkdHlwZVRyYW5zZm9ybXskdHlwZX0tPnsiZm9yd2FyZCJ9IGVxICAi
IjsKKworICAgIG15IEBhcmdzRmlsdGVyZWQgPSBncmVwKCRfLT5kaXJlY3Rpb24gZXEgIm91dCIs
IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSk7CisgICAgdW5zaGlmdChAYXJnc0ZpbHRlcmVkLCAk
Y2FsbElkKSBpZiAhJG5vdGlmeTsKKyAgICBtYXAoJGZyb250ZW5kVHlwZXN7JF8tPnR5cGV9ID0g
MSwgQGFyZ3NGaWx0ZXJlZCk7ICMgcmVnaXN0ZXIgcmVxdWlyZWQgdHlwZXMKKyAgICBteSAkYXJn
dW1lbnRzID0gam9pbigiLCAiLCBtYXAoJHR5cGVUcmFuc2Zvcm17JF8tPnR5cGV9LT57InBhcmFt
In0gLiAiICIgLiAkXy0+bmFtZSwgQGFyZ3NGaWx0ZXJlZCkpOworICAgIG15IEBwdXNoQXJndW1l
bnRzID0gbWFwKCIgICAgYXJndW1lbnRzLT5wdXNoIiAuICR0eXBlVHJhbnNmb3JteyRfLT50eXBl
fS0+eyJzdWZmaXgifSAuICIoIiAuICRfLT5uYW1lIC4gIik7IiwgQGFyZ3NGaWx0ZXJlZCk7CisK
KyAgICBteSAkc2lnbmF0dXJlID0gIiAgICB2b2lkICR7ZnVuY3Rpb25OYW1lfSgke2FyZ3VtZW50
c30pOyI7CisgICAgaWYgKCEkZnJvbnRlbmRNZXRob2RzeyR7c2lnbmF0dXJlfX0pIHsKKyAgICAg
ICAgJGZyb250ZW5kTWV0aG9kc3ske3NpZ25hdHVyZX19ID0gMTsKKworICAgICAgICBteSBAZnVu
Y3Rpb247CisgICAgICAgIHB1c2goQGZ1bmN0aW9uLCAidm9pZCAke2Zyb250ZW5kQ2xhc3NOYW1l
fTo6JHtmdW5jdGlvbk5hbWV9KCR7YXJndW1lbnRzfSkiKTsKKyAgICAgICAgcHVzaChAZnVuY3Rp
b24sICJ7Iik7CisgICAgICAgIHB1c2goQGZ1bmN0aW9uLCAiICAgIFJlZlB0cjxJbnNwZWN0b3JB
cnJheT4gYXJndW1lbnRzID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpOyIpOworICAgICAgICBw
dXNoKEBmdW5jdGlvbiwgIiAgICBhcmd1bWVudHMtPnB1c2hTdHJpbmcoXCIkZnVuY3Rpb25OYW1l
XCIpOyIpOworICAgICAgICBwdXNoKEBmdW5jdGlvbiwgQHB1c2hBcmd1bWVudHMpOworICAgICAg
ICBwdXNoKEBmdW5jdGlvbiwgIiAgICBtX2luc3BlY3RvckNsaWVudC0+c2VuZE1lc3NhZ2VUb0Zy
b250ZW5kKGFyZ3VtZW50cy0+dG9KU09OU3RyaW5nKCkpOyIpOworICAgICAgICBwdXNoKEBmdW5j
dGlvbiwgIn0iKTsKKyAgICAgICAgcHVzaChAZnVuY3Rpb24sICIiKTsKKyAgICAgICAgcHVzaChA
ZnJvbnRlbmRNZXRob2RzSW1wbCwgQGZ1bmN0aW9uKTsKICAgICB9Ci0gICAgcHVzaChAaGVhZGVy
Q29udGVudCwgc29ydCBAZm9yd2FyZERlY2xhcmF0aW9ucyk7Ci0KLSAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiIik7Ci0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgQGZyb250ZW5kQ2xhc3NEZWNs
YXJhdGlvbik7Ci0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiIpOwotICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJ9IC8vIG5hbWVzcGFjZSAkbmFtZXNwYWNlIik7Ci0gICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWYgLy8gIWRlZmlu
ZWQoJHtmcm9udGVuZENsYXNzTmFtZX1faCkiKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
Iik7Ci0gICAgcmV0dXJuIEBoZWFkZXJDb250ZW50OworfQorCitzdWIgZ2VuZXJhdGVIZWFkZXIK
K3sKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgbXkgJHR5cGVzID0gc2hpZnQ7Cisg
ICAgbXkgJGNvbnN0cnVjdG9yID0gc2hpZnQ7CisgICAgbXkgJG1ldGhvZHMgPSBzaGlmdDsKKyAg
ICBteSAkZm9vdGVyID0gc2hpZnQ7CisKKyAgICBteSAkZm9yd2FyZEhlYWRlcnMgPSBqb2luKCJc
biIsIHNvcnQobWFwKCIjaW5jbHVkZSA8IiAuICR0eXBlVHJhbnNmb3JteyRffS0+eyJmb3J3YXJk
SGVhZGVyIn0gLiAiPiIsIGdyZXAoJHR5cGVUcmFuc2Zvcm17JF99LT57ImZvcndhcmRIZWFkZXIi
fSwga2V5cyAleyR0eXBlc30pKSkpOworICAgIG15ICRmb3J3YXJkRGVjbGFyYXRpb25zID0gam9p
bigiXG4iLCBzb3J0KG1hcCgiY2xhc3MgIiAuICR0eXBlVHJhbnNmb3JteyRffS0+eyJmb3J3YXJk
In0gLiAiOyIsIGdyZXAoJHR5cGVUcmFuc2Zvcm17JF99LT57ImZvcndhcmQifSwga2V5cyAleyR0
eXBlc30pKSkpOworICAgIG15ICRtZXRob2RzRGVjbGFyYXRpb25zID0gam9pbigiXG4iLCBrZXlz
ICV7JG1ldGhvZHN9KTsKKworICAgIG15ICRoZWFkZXJCb2R5ID0gPDwgIkVPRiI7CisvLyBDb3B5
cmlnaHQgKGMpIDIwMTAgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorI2lmbmRl
ZiAke2NsYXNzTmFtZX1faAorI2RlZmluZSAke2NsYXNzTmFtZX1faAorCiske2ZvcndhcmRIZWFk
ZXJzfQorCituYW1lc3BhY2UgJG5hbWVzcGFjZSB7CisKKyRmb3J3YXJkRGVjbGFyYXRpb25zCisK
K2NsYXNzICRjbGFzc05hbWUgeworcHVibGljOgorJGNvbnN0cnVjdG9yCisKKyRtZXRob2RzRGVj
bGFyYXRpb25zCisKK3ByaXZhdGU6CiskZm9vdGVyCit9OworCit9IC8vIG5hbWVzcGFjZSAkbmFt
ZXNwYWNlCisjZW5kaWYgLy8gIWRlZmluZWQoJHtjbGFzc05hbWV9X2gpCisKK0VPRgorICAgIHJl
dHVybiAkaGVhZGVyQm9keTsKIH0KIAogc3ViIGdlbmVyYXRlU291cmNlCiB7CisgICAgbXkgJGNs
YXNzTmFtZSA9IHNoaWZ0OworICAgIG15ICR0eXBlcyA9IHNoaWZ0OworICAgIG15ICRtZXRob2Rz
ID0gc2hpZnQ7CisKICAgICBteSBAc291cmNlQ29udGVudCA9IHNwbGl0KCJcciIsICRsaWNlbnNl
VGVtcGxhdGUpOwogICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICJcbiNpbmNsdWRlIFwiY29uZmln
LmhcIiIpOwotICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIjaW5jbHVkZSBcIiRmcm9udGVuZENs
YXNzTmFtZS5oXCIiKTsKKyAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiI2luY2x1ZGUgXCIkY2xh
c3NOYW1lLmhcIiIpOwogICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsICIiKTsKICAgICBwdXNoKEBz
b3VyY2VDb250ZW50LCAiI2lmIEVOQUJMRShJTlNQRUNUT1IpIik7CiAgICAgcHVzaChAc291cmNl
Q29udGVudCwgIiIpOwogCiAgICAgbXkgJWhlYWRlcnM7Ci0gICAgZm9yZWFjaCBteSAkdHlwZSAo
a2V5cyAlZGlzY292ZXJlZFR5cGVzKSB7CisgICAgZm9yZWFjaCBteSAkdHlwZSAoa2V5cyAleyR0
eXBlc30pIHsKICAgICAgICAgJGhlYWRlcnN7IiNpbmNsdWRlIFwiIiAuICR0eXBlVHJhbnNmb3Jt
eyR0eXBlfS0+eyJoZWFkZXIifSAuICJcIiJ9ID0gMSBpZiAhJHR5cGVUcmFuc2Zvcm17JHR5cGV9
LT57ImhlYWRlciJ9IGVxICAiIjsKICAgICB9CiAgICAgcHVzaChAc291cmNlQ29udGVudCwgc29y
dCBrZXlzICVoZWFkZXJzKTsKICAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiIik7CiAgICAgcHVz
aChAc291cmNlQ29udGVudCwgIm5hbWVzcGFjZSAkbmFtZXNwYWNlIHsiKTsKICAgICBwdXNoKEBz
b3VyY2VDb250ZW50LCAiIik7Ci0gICAgcHVzaChAc291cmNlQ29udGVudCwgQGZ1bmN0aW9uRGVm
aW5pdGlvbnMpOworICAgIHB1c2goQHNvdXJjZUNvbnRlbnQsIEB7JG1ldGhvZHN9KTsKICAgICBw
dXNoKEBzb3VyY2VDb250ZW50LCAiIik7CiAgICAgcHVzaChAc291cmNlQ29udGVudCwgIn0gLy8g
bmFtZXNwYWNlICRuYW1lc3BhY2UiKTsKICAgICBwdXNoKEBzb3VyY2VDb250ZW50LCAiIik7CkBA
IC0yNzksMTUgKzI3MywxNSBAQCBzdWIgZmluaXNoCiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0Owog
CiAgICAgb3BlbihteSAkU09VUkNFLCAiPiRvdXRwdXREaXIvJGZyb250ZW5kQ2xhc3NOYW1lLmNw
cCIpIHx8IGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRvdXRwdXREaXIvJGZyb250ZW5kQ2xhc3NO
YW1lLmNwcCI7Ci0gICAgb3BlbihteSAkSEVBREVSLCAiPiRvdXRwdXREaXIvJGZyb250ZW5kQ2xh
c3NOYW1lLmgiKSB8fCBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkb3V0cHV0RGlyLyRmcm9udGVu
ZENsYXNzTmFtZS5oIjsKLQotICAgIHByaW50ICRTT1VSQ0Ugam9pbigiXG4iLCBnZW5lcmF0ZVNv
dXJjZSgpKTsKKyAgICBwcmludCAkU09VUkNFIGpvaW4oIlxuIiwgZ2VuZXJhdGVTb3VyY2UoJGZy
b250ZW5kQ2xhc3NOYW1lLCBcJWZyb250ZW5kVHlwZXMsIFxAZnJvbnRlbmRNZXRob2RzSW1wbCkp
OwogICAgIGNsb3NlKCRTT1VSQ0UpOwogICAgIHVuZGVmKCRTT1VSQ0UpOwogCi0gICAgcHJpbnQg
JEhFQURFUiBqb2luKCJcbiIsIGdlbmVyYXRlSGVhZGVyKCkpOworICAgIG9wZW4obXkgJEhFQURF
UiwgIj4kb3V0cHV0RGlyLyRmcm9udGVuZENsYXNzTmFtZS5oIikgfHwgZGllICJDb3VsZG4ndCBv
cGVuIGZpbGUgJG91dHB1dERpci8kZnJvbnRlbmRDbGFzc05hbWUuaCI7CisgICAgcHJpbnQgJEhF
QURFUiBnZW5lcmF0ZUhlYWRlcigkZnJvbnRlbmRDbGFzc05hbWUsIFwlZnJvbnRlbmRUeXBlcywg
JGZyb250ZW5kQ29uc3RydWN0b3IsIFwlZnJvbnRlbmRNZXRob2RzLCAkZnJvbnRlbmRGb290ZXIp
OwogICAgIGNsb3NlKCRIRUFERVIpOwogICAgIHVuZGVmKCRIRUFERVIpOworCiB9CiAKIDE7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRleCA0NzZkMDQwLi4zYzk2ZGIxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5pZGwKQEAgLTMyLDE1ICszMiwxNSBAQAogCiBtb2R1bGUgY29yZSB7CiAgICAgaW50
ZXJmYWNlIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIEluc3BlY3RvciB7Ci0gICAgICAgIFtub3Rp
ZnldIHZvaWQgYWRkUmVjb3JkVG9UaW1lbGluZShpbiBPYmplY3QgcmVjb3JkKTsKLSAgICAgICAg
W25vdGlmeV0gdm9pZCBhZGROb2Rlc1RvU2VhcmNoUmVzdWx0KGluIEFycmF5IG5vZGVJZHMpOwot
ICAgICAgICBbbm90aWZ5XSB2b2lkIGF0dHJpYnV0ZXNVcGRhdGVkKGluIGxvbmcgaWQsIGluIEFy
cmF5IGF0dHJpYnV0ZXMpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIGNoaWxkTm9kZUNvdW50VXBk
YXRlZChpbiBsb25nIGlkLCBpbiBpbnQgbmV3VmFsdWUpOwotICAgICAgICBbbm90aWZ5XSB2b2lk
IGNoaWxkTm9kZUluc2VydGVkKGluIGxvbmcgcGFyZW50SWQsIGluIGxvbmcgcHJldklkLCBpbiBP
YmplY3Qgbm9kZSk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgY2hpbGROb2RlUmVtb3ZlZChpbiBs
b25nIHBhcmVudElkLCBpbiBsb25nIGlkKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBzZXRDaGls
ZE5vZGVzKGluIGxvbmcgcGFyZW50SWQsIGluIEFycmF5IG5vZGVzKTsKLSAgICAgICAgW25vdGlm
eV0gdm9pZCBzZXREZXRhY2hlZFJvb3QoaW4gT2JqZWN0IHJvb3QpOwotICAgICAgICBbbm90aWZ5
XSB2b2lkIHNldERvY3VtZW50KGluIFZhbHVlIHJvb3QpOworICAgICAgICBbbm90aWZ5XSB2b2lk
IGFkZFJlY29yZFRvVGltZWxpbmUob3V0IE9iamVjdCByZWNvcmQpOworICAgICAgICBbbm90aWZ5
XSB2b2lkIGFkZE5vZGVzVG9TZWFyY2hSZXN1bHQob3V0IEFycmF5IG5vZGVJZHMpOworICAgICAg
ICBbbm90aWZ5XSB2b2lkIGF0dHJpYnV0ZXNVcGRhdGVkKG91dCBsb25nIGlkLCBvdXQgQXJyYXkg
YXR0cmlidXRlcyk7CisgICAgICAgIFtub3RpZnldIHZvaWQgY2hpbGROb2RlQ291bnRVcGRhdGVk
KG91dCBsb25nIGlkLCBvdXQgaW50IG5ld1ZhbHVlKTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBj
aGlsZE5vZGVJbnNlcnRlZChvdXQgbG9uZyBwYXJlbnRJZCwgb3V0IGxvbmcgcHJldklkLCBvdXQg
T2JqZWN0IG5vZGUpOworICAgICAgICBbbm90aWZ5XSB2b2lkIGNoaWxkTm9kZVJlbW92ZWQob3V0
IGxvbmcgcGFyZW50SWQsIG91dCBsb25nIGlkKTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBzZXRD
aGlsZE5vZGVzKG91dCBsb25nIHBhcmVudElkLCBvdXQgQXJyYXkgbm9kZXMpOworICAgICAgICBb
bm90aWZ5XSB2b2lkIHNldERldGFjaGVkUm9vdChvdXQgT2JqZWN0IHJvb3QpOworICAgICAgICBb
bm90aWZ5XSB2b2lkIHNldERvY3VtZW50KG91dCBWYWx1ZSByb290KTsKIAogICAgICAgICB2b2lk
IHN0b3JlTGFzdEFjdGl2ZVBhbmVsKGluIFN0cmluZyBwYW5lbE5hbWUpOwogCkBAIC01NSw3ICs1
NSw3IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAgICB2b2lkIGVuYWJsZVJlc291cmNlVHJhY2tp
bmcoaW4gYm9vbGVhbiBhbHdheXMpOwogICAgICAgICB2b2lkIGRpc2FibGVSZXNvdXJjZVRyYWNr
aW5nKGluIGJvb2xlYW4gYWx3YXlzKTsKLSAgICAgICAgdm9pZCBnZXRSZXNvdXJjZUNvbnRlbnQo
aW4gdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKKyAgICAgICAgdm9pZCBnZXRSZXNvdXJjZUNv
bnRlbnQoaW4gbG9uZyBjYWxsSWQsIGluIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAgICAg
ICAgIHZvaWQgcmVsb2FkUGFnZSgpOwogCiAgICAgICAgIHZvaWQgc3RhcnRUaW1lbGluZVByb2Zp
bGVyKCk7CkBAIC02NSw3ICs2NSw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgdm9pZCBlbmFi
bGVEZWJ1Z2dlcihpbiBib29sZWFuIGFsd2F5cyk7CiAgICAgICAgIHZvaWQgZGlzYWJsZURlYnVn
Z2VyKGluIGJvb2xlYW4gYWx3YXlzKTsKIAotICAgICAgICB2b2lkIHNldEJyZWFrcG9pbnQoaW4g
U3RyaW5nIHNvdXJjZUlELCBpbiB1bnNpZ25lZCBsb25nIGxpbmVOdW1iZXIsIGluIGJvb2xlYW4g
ZW5hYmxlZCwgaW4gU3RyaW5nIGNvbmRpdGlvbik7CisgICAgICAgIHZvaWQgc2V0QnJlYWtwb2lu
dChpbiBsb25nIGNhbGxJZCwgaW4gU3RyaW5nIHNvdXJjZUlELCBpbiB1bnNpZ25lZCBsb25nIGxp
bmVOdW1iZXIsIGluIGJvb2xlYW4gZW5hYmxlZCwgaW4gU3RyaW5nIGNvbmRpdGlvbik7CiAgICAg
ICAgIHZvaWQgcmVtb3ZlQnJlYWtwb2ludChpbiBTdHJpbmcgc291cmNlSUQsIGluIHVuc2lnbmVk
IGxvbmcgbGluZU51bWJlcik7CiAgICAgICAgIHZvaWQgYWN0aXZhdGVCcmVha3BvaW50cygpOwog
ICAgICAgICB2b2lkIGRlYWN0aXZhdGVCcmVha3BvaW50cygpOwpAQCAtNzksOCArNzksOCBAQCBt
b2R1bGUgY29yZSB7CiAKICAgICAgICAgdm9pZCBzZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKGlu
IGxvbmcgcGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSk7CiAKLSAgICAgICAgdm9pZCBlZGl0U2NyaXB0
U291cmNlKGluIFN0cmluZyBzb3VyY2VJRCwgaW4gU3RyaW5nIG5ld0NvbnRlbnQpOwotICAgICAg
ICB2b2lkIGdldFNjcmlwdFNvdXJjZShpbiBTdHJpbmcgc291cmNlSUQpOworICAgICAgICB2b2lk
IGVkaXRTY3JpcHRTb3VyY2UoaW4gbG9uZyBjYWxsSWQsIGluIFN0cmluZyBzb3VyY2VJRCwgaW4g
U3RyaW5nIG5ld0NvbnRlbnQpOworICAgICAgICB2b2lkIGdldFNjcmlwdFNvdXJjZShpbiBsb25n
IGNhbGxJZCwgaW4gU3RyaW5nIHNvdXJjZUlEKTsKIAogICAgICAgICB2b2lkIGVuYWJsZVByb2Zp
bGVyKGluIGJvb2xlYW4gYWx3YXlzKTsKICAgICAgICAgdm9pZCBkaXNhYmxlUHJvZmlsZXIoaW4g
Ym9vbGVhbiBhbHdheXMpOwpAQCAtODgsOCArODgsOCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAg
IHZvaWQgc3RhcnRQcm9maWxpbmcoKTsKICAgICAgICAgdm9pZCBzdG9wUHJvZmlsaW5nKCk7CiAK
LSAgICAgICAgdm9pZCBnZXRQcm9maWxlSGVhZGVycygpOwotICAgICAgICB2b2lkIGdldFByb2Zp
bGUoaW4gdW5zaWduZWQgbG9uZyB1aWQpOworICAgICAgICB2b2lkIGdldFByb2ZpbGVIZWFkZXJz
KGluIGxvbmcgY2FsbElkKTsKKyAgICAgICAgdm9pZCBnZXRQcm9maWxlKGluIGxvbmcgY2FsbElk
LCBpbiB1bnNpZ25lZCBsb25nIHVpZCk7CiAKICAgICAgICAgdm9pZCByZW1vdmVQcm9maWxlKGlu
IHVuc2lnbmVkIGxvbmcgdWlkKTsKICAgICAgICAgdm9pZCBjbGVhclByb2ZpbGVzKCk7CkBAIC05
Nyw2MiArOTcsNjIgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICB2b2lkIHRha2VIZWFwU25hcHNo
b3QoKTsKICNlbmRpZgogICAgICAgICB2b2lkIHNldEluamVjdGVkU2NyaXB0U291cmNlKGluIFN0
cmluZyBzY3JpcHRTb3VyY2UpOwotICAgICAgICB2b2lkIGRpc3BhdGNoT25JbmplY3RlZFNjcmlw
dChpbiBsb25nIGluamVjdGVkU2NyaXB0SWQsIGluIFN0cmluZyBtZXRob2ROYW1lLCBpbiBTdHJp
bmcgYXJndW1lbnRzLCBpbiBib29sZWFuIGFzeW5jKTsKKyAgICAgICAgdm9pZCBkaXNwYXRjaE9u
SW5qZWN0ZWRTY3JpcHQoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgaW5qZWN0ZWRTY3JpcHRJZCwg
aW4gU3RyaW5nIG1ldGhvZE5hbWUsIGluIFN0cmluZyBhcmd1bWVudHMsIGluIGJvb2xlYW4gYXN5
bmMpOwogCiAgICAgICAgIHZvaWQgYWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZChpbiBTdHJpbmcg
c2NyaXB0U291cmNlKTsKICAgICAgICAgdm9pZCByZW1vdmVBbGxTY3JpcHRzVG9FdmFsdWF0ZU9u
TG9hZCgpOwogCi0gICAgICAgIHZvaWQgZ2V0Q2hpbGROb2RlcyhpbiBsb25nIG5vZGVJZCk7Ci0g
ICAgICAgIFtjdXN0b21SZXNwb25zZT1kaWRBcHBseURvbUNoYW5nZV0gdm9pZCBzZXRBdHRyaWJ1
dGUoaW4gbG9uZyBlbGVtZW50SWQsIGluIFN0cmluZyBuYW1lLCBpbiBTdHJpbmcgdmFsdWUsIG91
dCBib29sZWFuIHN1Y2Nlc3MpOwotICAgICAgICBbY3VzdG9tUmVzcG9uc2U9ZGlkQXBwbHlEb21D
aGFuZ2VdIHZvaWQgcmVtb3ZlQXR0cmlidXRlKGluIGxvbmcgZWxlbWVudElkLCBpbiBTdHJpbmcg
bmFtZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7Ci0gICAgICAgIHZvaWQgc2V0VGV4dE5vZGVWYWx1
ZShpbiBsb25nIG5vZGVJZCwgaW4gU3RyaW5nIHZhbHVlKTsKLSAgICAgICAgdm9pZCBnZXRFdmVu
dExpc3RlbmVyc0Zvck5vZGUoaW4gbG9uZyBub2RlSWQsIG91dCBsb25nIG5vZGVJZCwgb3V0IEFy
cmF5IGxpc3RlbmVyc0FycmF5KTsKKyAgICAgICAgdm9pZCBnZXRDaGlsZE5vZGVzKGluIGxvbmcg
Y2FsbElkLCBpbiBsb25nIG5vZGVJZCk7CisgICAgICAgIFtjdXN0b21SZXNwb25zZT1kaWRBcHBs
eURvbUNoYW5nZV0gdm9pZCBzZXRBdHRyaWJ1dGUoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgZWxl
bWVudElkLCBpbiBTdHJpbmcgbmFtZSwgaW4gU3RyaW5nIHZhbHVlLCBvdXQgYm9vbGVhbiBzdWNj
ZXNzKTsKKyAgICAgICAgW2N1c3RvbVJlc3BvbnNlPWRpZEFwcGx5RG9tQ2hhbmdlXSB2b2lkIHJl
bW92ZUF0dHJpYnV0ZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBlbGVtZW50SWQsIGluIFN0cmlu
ZyBuYW1lLCBvdXQgYm9vbGVhbiBzdWNjZXNzKTsKKyAgICAgICAgdm9pZCBzZXRUZXh0Tm9kZVZh
bHVlKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCwgaW4gU3RyaW5nIHZhbHVlKTsKKyAg
ICAgICAgdm9pZCBnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUoaW4gbG9uZyBjYWxsSWQsIGluIGxv
bmcgbm9kZUlkLCBvdXQgbG9uZyBub2RlSWQsIG91dCBBcnJheSBsaXN0ZW5lcnNBcnJheSk7CiAg
ICAgICAgIHZvaWQgY29weU5vZGUoaW4gbG9uZyBub2RlSWQpOwotICAgICAgICB2b2lkIHJlbW92
ZU5vZGUoaW4gbG9uZyBub2RlSWQsIG91dCBsb25nIG5vZGVJZCk7Ci0gICAgICAgIHZvaWQgY2hh
bmdlVGFnTmFtZShpbiBsb25nIG5vZGVJZCwgaW4gU3RyaW5nIG5ld1RhZ05hbWUsIG91dCBsb25n
IG5vZGVJZCk7Ci0gICAgICAgIHZvaWQgZ2V0T3V0ZXJIVE1MKGluIGxvbmcgbm9kZUlkLCBvdXQg
U3RyaW5nIG91dGVySFRNTCk7Ci0gICAgICAgIHZvaWQgc2V0T3V0ZXJIVE1MKGluIGxvbmcgbm9k
ZUlkLCBpbiBTdHJpbmcgb3V0ZXJIVE1MLCBvdXQgbG9uZyBub2RlSWQpOworICAgICAgICB2b2lk
IHJlbW92ZU5vZGUoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkLCBvdXQgbG9uZyBub2Rl
SWQpOworICAgICAgICB2b2lkIGNoYW5nZVRhZ05hbWUoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcg
bm9kZUlkLCBpbiBTdHJpbmcgbmV3VGFnTmFtZSwgb3V0IGxvbmcgbm9kZUlkKTsKKyAgICAgICAg
dm9pZCBnZXRPdXRlckhUTUwoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkLCBvdXQgU3Ry
aW5nIG91dGVySFRNTCk7CisgICAgICAgIHZvaWQgc2V0T3V0ZXJIVE1MKGluIGxvbmcgY2FsbElk
LCBpbiBsb25nIG5vZGVJZCwgaW4gU3RyaW5nIG91dGVySFRNTCwgb3V0IGxvbmcgbm9kZUlkKTsK
ICAgICAgICAgdm9pZCBhZGRJbnNwZWN0ZWROb2RlKGluIGxvbmcgbm9kZUlkKTsKICAgICAgICAg
dm9pZCBwZXJmb3JtU2VhcmNoKGluIFN0cmluZyBxdWVyeSwgaW4gYm9vbGVhbiBydW5TeW5jaHJv
bm91c2x5KTsKICAgICAgICAgdm9pZCBzZWFyY2hDYW5jZWxlZCgpOwotICAgICAgICB2b2lkIHB1
c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChpbiBTdHJpbmcgcGF0aCwgb3V0IGxvbmcgbm9kZUlkKTsK
KyAgICAgICAgdm9pZCBwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQoaW4gbG9uZyBjYWxsSWQsIGlu
IFN0cmluZyBwYXRoLCBvdXQgbG9uZyBub2RlSWQpOwogCiAgICAgICAgIHZvaWQgY2xlYXJDb25z
b2xlTWVzc2FnZXMoKTsKIAogICAgICAgICB2b2lkIGhpZ2hsaWdodERPTU5vZGUoaW4gbG9uZyBu
b2RlSWQpOwogICAgICAgICB2b2lkIGhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CiAKLSAgICAgICAg
dm9pZCBnZXRTdHlsZXMoaW4gbG9uZyBub2RlSWQsIGluIGJvb2xlYW4gYXV0aE9ubHksIG91dCBW
YWx1ZSBzdHlsZXMpOwotICAgICAgICB2b2lkIGdldEFsbFN0eWxlcyhvdXQgQXJyYXkgc3R5bGVz
KTsKLSAgICAgICAgdm9pZCBnZXRJbmxpbmVTdHlsZShpbiBsb25nIG5vZGVJZCwgb3V0IFZhbHVl
IHN0eWxlKTsKLSAgICAgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlKGluIGxvbmcgbm9kZUlkLCBv
dXQgVmFsdWUgc3R5bGUpOwotICAgICAgICB2b2lkIGdldFN0eWxlU2hlZXQoaW4gbG9uZyBzdHls
ZVNoZWV0SWQsIG91dCBWYWx1ZSBzdHlsZVNoZWV0KTsKLSAgICAgICAgdm9pZCBnZXRSdWxlUmFu
Z2VzRm9yU3R5bGVTaGVldElkKGluIGxvbmcgc3R5bGVTaGVldElkKTsKLSAgICAgICAgdm9pZCBh
cHBseVN0eWxlVGV4dChpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBzdHlsZVRleHQsIGluIFN0
cmluZyBwcm9wZXJ0eU5hbWUsIG91dCBib29sZWFuIHN1Y2Nlc3MsIG91dCBWYWx1ZSBzdHlsZSwg
b3V0IEFycmF5IGNoYW5nZWRQcm9wZXJ0aWVzKTsKLSAgICAgICAgdm9pZCBzZXRTdHlsZVRleHQo
aW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgc3R5bGVUZXh0LCBvdXQgYm9vbGVhbiBzdWNjZXNz
KTsKLSAgICAgICAgdm9pZCBzZXRTdHlsZVByb3BlcnR5KGluIGxvbmcgc3R5bGVJZCwgaW4gU3Ry
aW5nIG5hbWUsIGluIFN0cmluZyB2YWx1ZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7Ci0gICAgICAg
IHZvaWQgdG9nZ2xlU3R5bGVFbmFibGVkKGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIHByb3Bl
cnR5TmFtZSwgaW4gYm9vbGVhbiBkaXNhYmxlZCwgb3V0IFZhbHVlIHN0eWxlKTsKLSAgICAgICAg
dm9pZCBzZXRSdWxlU2VsZWN0b3IoaW4gbG9uZyBydWxlSWQsIGluIFN0cmluZyBzZWxlY3Rvciwg
aW4gbG9uZyBzZWxlY3RlZE5vZGVJZCwgb3V0IFZhbHVlIHJ1bGUsIG91dCBib29sZWFuIHNlbGVj
dG9yQWZmZWN0c05vZGUpOwotICAgICAgICB2b2lkIGFkZFJ1bGUoaW4gU3RyaW5nIHNlbGVjdG9y
LCBpbiBsb25nIHNlbGVjdGVkTm9kZUlkLCBvdXQgVmFsdWUgcnVsZSwgb3V0IGJvb2xlYW4gc2Vs
ZWN0b3JBZmZlY3RzTm9kZSk7Ci0KLSAgICAgICAgdm9pZCBnZXRDb29raWVzKCk7CisgICAgICAg
IHZvaWQgZ2V0U3R5bGVzKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCwgaW4gYm9vbGVh
biBhdXRoT25seSwgb3V0IFZhbHVlIHN0eWxlcyk7CisgICAgICAgIHZvaWQgZ2V0QWxsU3R5bGVz
KGluIGxvbmcgY2FsbElkLCBvdXQgQXJyYXkgc3R5bGVzKTsKKyAgICAgICAgdm9pZCBnZXRJbmxp
bmVTdHlsZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSBzdHlsZSk7
CisgICAgICAgIHZvaWQgZ2V0Q29tcHV0ZWRTdHlsZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBu
b2RlSWQsIG91dCBWYWx1ZSBzdHlsZSk7CisgICAgICAgIHZvaWQgZ2V0U3R5bGVTaGVldChpbiBs
b25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZVNoZWV0SWQsIG91dCBWYWx1ZSBzdHlsZVNoZWV0KTsK
KyAgICAgICAgdm9pZCBnZXRSdWxlUmFuZ2VzRm9yU3R5bGVTaGVldElkKGluIGxvbmcgY2FsbElk
LCBpbiBsb25nIHN0eWxlU2hlZXRJZCk7CisgICAgICAgIHZvaWQgYXBwbHlTdHlsZVRleHQoaW4g
bG9uZyBjYWxsSWQsIGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIHN0eWxlVGV4dCwgaW4gU3Ry
aW5nIHByb3BlcnR5TmFtZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcywgb3V0IFZhbHVlIHN0eWxlLCBv
dXQgQXJyYXkgY2hhbmdlZFByb3BlcnRpZXMpOworICAgICAgICB2b2lkIHNldFN0eWxlVGV4dChp
biBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgc3R5bGVUZXh0LCBvdXQg
Ym9vbGVhbiBzdWNjZXNzKTsKKyAgICAgICAgdm9pZCBzZXRTdHlsZVByb3BlcnR5KGluIGxvbmcg
Y2FsbElkLCBpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBuYW1lLCBpbiBTdHJpbmcgdmFsdWUs
IG91dCBib29sZWFuIHN1Y2Nlc3MpOworICAgICAgICB2b2lkIHRvZ2dsZVN0eWxlRW5hYmxlZChp
biBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgcHJvcGVydHlOYW1lLCBp
biBib29sZWFuIGRpc2FibGVkLCBvdXQgVmFsdWUgc3R5bGUpOworICAgICAgICB2b2lkIHNldFJ1
bGVTZWxlY3RvcihpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBydWxlSWQsIGluIFN0cmluZyBzZWxl
Y3RvciwgaW4gbG9uZyBzZWxlY3RlZE5vZGVJZCwgb3V0IFZhbHVlIHJ1bGUsIG91dCBib29sZWFu
IHNlbGVjdG9yQWZmZWN0c05vZGUpOworICAgICAgICB2b2lkIGFkZFJ1bGUoaW4gbG9uZyBjYWxs
SWQsIGluIFN0cmluZyBzZWxlY3RvciwgaW4gbG9uZyBzZWxlY3RlZE5vZGVJZCwgb3V0IFZhbHVl
IHJ1bGUsIG91dCBib29sZWFuIHNlbGVjdG9yQWZmZWN0c05vZGUpOworCisgICAgICAgIHZvaWQg
Z2V0Q29va2llcyhpbiBsb25nIGNhbGxJZCk7CiAgICAgICAgIHZvaWQgZGVsZXRlQ29va2llKGlu
IFN0cmluZyBjb29raWVOYW1lLCBpbiBTdHJpbmcgZG9tYWluKTsKIAogI2lmIGRlZmluZWQoRU5B
QkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJiYgRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUwotICAgICAgICB2b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVzKCk7CisgICAgICAgIHZv
aWQgZ2V0QXBwbGljYXRpb25DYWNoZXMoaW4gbG9uZyBjYWxsSWQpOwogI2VuZGlmCiAKICAgICAg
ICAgdm9pZCByZWxlYXNlV3JhcHBlck9iamVjdEdyb3VwKGluIGxvbmcgaW5qZWN0ZWRTY3JpcHRJ
ZCwgaW4gU3RyaW5nIG9iamVjdEdyb3VwKTsKLSAgICAgICAgdm9pZCBkaWRFdmFsdWF0ZUZvclRl
c3RJbkZyb250ZW5kKGluIFN0cmluZyBqc29uUmVzdWx0KTsKKyAgICAgICAgdm9pZCBkaWRFdmFs
dWF0ZUZvclRlc3RJbkZyb250ZW5kKGluIGxvbmcgY2FsbElkLCBpbiBTdHJpbmcganNvblJlc3Vs
dCk7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9EQVRBQkFTRSkgJiYgRU5BQkxFX0RBVEFCQVNFCi0g
ICAgICAgIHZvaWQgZ2V0RGF0YWJhc2VUYWJsZU5hbWVzKGluIGxvbmcgZGF0YWJhc2VJZCk7Cisg
ICAgICAgIHZvaWQgZ2V0RGF0YWJhc2VUYWJsZU5hbWVzKGluIGxvbmcgY2FsbElkLCBpbiBsb25n
IGRhdGFiYXNlSWQpOwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEVOQUJMRV9ET01fU1RPUkFHRSkg
JiYgRU5BQkxFX0RPTV9TVE9SQUdFCi0gICAgICAgIHZvaWQgZ2V0RE9NU3RvcmFnZUVudHJpZXMo
aW4gbG9uZyBzdG9yYWdlSWQpOwotICAgICAgICB2b2lkIHNldERPTVN0b3JhZ2VJdGVtKGluIGxv
bmcgc3RvcmFnZUlkLCBpbiBTdHJpbmcga2V5LCBpbiBTdHJpbmcgdmFsdWUpOwotICAgICAgICB2
b2lkIHJlbW92ZURPTVN0b3JhZ2VJdGVtKGluIGxvbmcgc3RvcmFnZUlkLCBpbiBTdHJpbmcga2V5
KTsKKyAgICAgICAgdm9pZCBnZXRET01TdG9yYWdlRW50cmllcyhpbiBsb25nIGNhbGxJZCwgaW4g
bG9uZyBzdG9yYWdlSWQpOworICAgICAgICB2b2lkIHNldERPTVN0b3JhZ2VJdGVtKGluIGxvbmcg
Y2FsbElkLCBpbiBsb25nIHN0b3JhZ2VJZCwgaW4gU3RyaW5nIGtleSwgaW4gU3RyaW5nIHZhbHVl
KTsKKyAgICAgICAgdm9pZCByZW1vdmVET01TdG9yYWdlSXRlbShpbiBsb25nIGNhbGxJZCwgaW4g
bG9uZyBzdG9yYWdlSWQsIGluIFN0cmluZyBrZXkpOwogI2VuZGlmCiAgICAgfTsKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5jcHAgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuY3BwCmluZGV4IGY5NTExNmMuLmZkNDJjNjUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5jcHAKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmNwcApAQCAtNjUwLDYgKzY1MCwxMiBAQCB2b2lk
IEluc3BlY3RvckFycmF5Ojp3cml0ZUpTT04oVmVjdG9yPFVDaGFyPiogb3V0cHV0KSBjb25zdAog
ICAgIG91dHB1dC0+YXBwZW5kKCddJyk7CiB9CiAKK1Bhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+
IEluc3BlY3RvckFycmF5OjpnZXQoc2l6ZV90IGluZGV4KQoreworICAgIEFTU0VSVChpbmRleCA8
IG1fZGF0YS5zaXplKCkpOworICAgIHJldHVybiBtX2RhdGFbaW5kZXhdOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmggYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JWYWx1ZXMuaAppbmRleCAzMGJhOTVhLi5hMGMwYzJkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JWYWx1ZXMuaApAQCAtMTk4LDcgKzE5OCw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHB1c2hOdW1iZXIoZG91YmxlKTsKICAgICB2b2lkIHB1c2hTdHJpbmcoY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCBwdXNoKFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KTsKLSAgICB1bnNpZ25l
ZCBsZW5ndGgoKSB7IHJldHVybiBtX2RhdGEuc2l6ZSgpOyB9CisgICAgdW5zaWduZWQgbGVuZ3Ro
KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnNpemUoKTsgfQorCisgICAgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JWYWx1ZT4gZ2V0KHNpemVfdCBpbmRleCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVK
U09OKFZlY3RvcjxVQ2hhcj4qIG91dHB1dCkgY29uc3Q7CiAK
</data>
<flag name="review"
          id="49906"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>