<?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>176207</bug_id>
          
          <creation_ts>2017-08-31 19:28:53 -0700</creation_ts>
          <short_desc>WSL should support loading from arrays</short_desc>
          <delta_ts>2018-10-13 19:58:46 -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>WebGPU</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>176199</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>keith_miller</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1344279</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-31 19:28:53 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344281</commentid>
    <comment_count>1</comment_count>
      <attachid>319565</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-31 19:36:43 -0700</bug_when>
    <thetext>Created attachment 319565
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344283</commentid>
    <comment_count>2</comment_count>
      <attachid>319565</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-31 19:42:54 -0700</bug_when>
    <thetext>Comment on attachment 319565
the patch

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

&gt; Tools/WebGPUShadingLanguageRI/Parse.js:182
&gt; +            if (uintVersion + &quot;u&quot; != token.text)

I&apos;d use !==</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344284</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-31 19:51:56 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #2)
&gt; Comment on attachment 319565 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=319565&amp;action=review
&gt; 
&gt; &gt; Tools/WebGPUShadingLanguageRI/Parse.js:182
&gt; &gt; +            if (uintVersion + &quot;u&quot; != token.text)
&gt; 
&gt; I&apos;d use !==

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344285</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-31 19:52:39 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/221468/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353695</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:52:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/34694170&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469008</commentid>
    <comment_count>6</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 19:58:46 -0700</bug_when>
    <thetext>Migrated to https://github.com/gpuweb/WHLSL/issues/202</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319565</attachid>
            <date>2017-08-31 19:36:43 -0700</date>
            <delta_ts>2017-08-31 19:42:54 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>32463</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMTQ2NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDk2IEBACisyMDE3LTA4LTMxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgV1NMIHNob3VsZCBzdXBwb3J0IGxvYWRpbmcgZnJvbSBhcnJheXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjIwNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgR2V0dGluZyBh
IHRlc3QgdGhhdCBsb2FkcyBmcm9tIGFycmF5cyB0byB3b3JrIHJlcXVpcmVkIGRvaW5nIGEgbG90
IG9mIHRoaW5nczoKKyAgICAgICAgCisgICAgICAgIC0gYVtpXSBub3cgcGFyc2VzIHRvIF4ob3Bl
cmF0b3JcW10oYSwgaSkpLgorICAgICAgICAtIGFkZGVkIG9wZXJhdG9yXFtdIGZvciBmb3VyIGFy
cmF5IHJlZmVyZW5jZSB0eXBlcy4KKyAgICAgICAgLSB0byBtYWtlIHRocmVhZHx0aHJlYWRncm91
cHxkZXZpY2UgVFtdIHdvcmssIHlvdSBuZWVkIFQ6cHJpbWl0aXZlLgorICAgICAgICAtIHNvIHRo
aXMgYWRkcyB0aGUgbWFnaWNhbCBwcmltaXRpdmUgcHJvdG9jb2wuCisgICAgICAgIAorICAgICAg
ICBUaGlzIHJlcXVpcmVkIGEgbGl0dGxlIGJpdCBvZiByZWp1Z2dsaW5nIGluIHRoZSBuYW1lIHJl
c29sdmVyIGFuZCB0eXBlIGNoZWNrZXIuIFRoZSBtYWluIHRoaW5nCisgICAgICAgIGlzIHRoYXQg
dG8gcHJldmVudCB0aGUgcmV3cml0ZXIgZnJvbSBjb3B5aW5nIHRoZSB0eXBlcyByZWZlcmVuY2Vk
IGJ5IHNvbWUgZnVuY3Rpb24sIHlvdSBuZWVkIHRvCisgICAgICAgIG1ha2Ugc3VyZSB0aGF0IHdo
ZW4geW91IGFkZCBhIHJlZmVyZW5jZSB0byBhIHR5cGUsIHlvdSB3cmFwIGl0IGluIGEgVHlwZVJl
Zi4gVGhpcyBkb2Vzbid0CisgICAgICAgIGNvbXBsZXRlbHkgZmVlbCByaWdodCwgYnV0IEknbSBz
dXJlIHdlJ2xsIGZpZ3VyZSBvdXQgdGhlIGJhbGFuY2UgZXZlbnR1YWxseS4gU2VlIGJ1ZyAxNzYy
MDguCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xEZWNsLnNldCB0aHJvdyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvRUFycmF5UmVmLmpzOiBBZGRlZC4KKyAgICAgICAgKEVBcnJheVJl
Zik6CisgICAgICAgIChFQXJyYXlSZWYucHJvdG90eXBlLmdldCBwdHIpOgorICAgICAgICAoRUFy
cmF5UmVmLnByb3RvdHlwZS5nZXQgbGVuZ3RoKToKKyAgICAgICAgKEVBcnJheVJlZi5wcm90b3R5
cGUudG9TdHJpbmcpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VQdHIuanM6
CisgICAgICAgIChFUHRyLnByb3RvdHlwZS5wbHVzKToKKyAgICAgICAgKEVQdHIucHJvdG90eXBl
LnRvU3RyaW5nKToKKyAgICAgICAgKEVQdHIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0V2YWx1YXRvci5qczoKKyAgICAgICAgKEV2YWx1YXRvci5wcm90b3R5cGUudmlzaXRV
aW50TGl0ZXJhbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3Rh
bnRpYXRvci5qczoKKyAgICAgICAgKEZ1bmNJbnN0YW50aWF0b3IucHJvdG90eXBlLmdldFVuaXF1
ZS5JbnN0YW50aWF0ZS5wcm90b3R5cGUudmlzaXROYXRpdmVGdW5jKToKKyAgICAgICAgKEZ1bmNJ
bnN0YW50aWF0b3IucHJvdG90eXBlLmdldFVuaXF1ZS5JbnN0YW50aWF0ZSk6CisgICAgICAgIChG
dW5jSW5zdGFudGlhdG9yLnByb3RvdHlwZS5nZXRVbmlxdWUpOgorICAgICAgICAoRnVuY0luc3Rh
bnRpYXRvcik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5q
czoKKyAgICAgICAgKEludHJpbnNpY3MpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0xleGVyLmpzOgorICAgICAgICAoTGV4ZXIucHJvdG90eXBlLm5leHQpOgorICAgICAgICAo
TGV4ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVDb250ZXh0Lmpz
OgorICAgICAgICAoTmFtZUNvbnRleHQucHJvdG90eXBlLnJlY29nbml6ZUludHJpbnNpY3MpOgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZlci5qczoKKyAgICAg
ICAgKE5hbWVSZXNvbHZlci5wcm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6CisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuY0luc3RhbmNlLmpzOgorICAgICAgICAo
TmF0aXZlRnVuY0luc3RhbmNlLnByb3RvdHlwZS5nZXQgaXNOYXRpdmUpOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1BhcnNlLmpzOgorICAgICAgICAocGFyc2VUZXJtKToKKyAg
ICAgICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChw
YXJzZVBvc3NpYmxlU3VmZml4KToKKyAgICAgICAgKHBhcnNlKToKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6CisgICAgICAgIChQcm90b2NvbERlY2wp
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sUmVmLmpzOgorICAg
ICAgICAoUHJvdG9jb2xSZWYucHJvdG90eXBlLmdldCBpc1ByaW1pdGl2ZSk6CisgICAgICAgIChQ
cm90b2NvbFJlZik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHRyVHlwZS5q
czoKKyAgICAgICAgKFB0clR5cGUucHJvdG90eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZWZlcmVuY2VUeXBlLmpz
OgorICAgICAgICAoUmVmZXJlbmNlVHlwZS5wcm90b3R5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUp
OgorICAgICAgICAoUmVmZXJlbmNlVHlwZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUmV3cml0ZXIuanM6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRVaW50
TGl0ZXJhbCk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRGdW5jKTogRGVsZXRl
ZC4KKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0
ZWQuCisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1l
dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFy
ZExpYnJhcnkuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qczoK
KyAgICAgICAgKFRFU1RfdGhyZWFkQXJyYXlMb2FkKToKKyAgICAgICAgKFRFU1RfZGV2aWNlQXJy
YXlMb2FkKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUmVmLmpzOgor
ICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IGluc3RhbnRpYXRlZFR5cGUpOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qczoKKyAgICAgICAgKFR5
cGVWYXJpYWJsZS5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVZhcmlhYmxlKToK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VaW50TGl0ZXJhbC5qczogQWRkZWQu
CisgICAgICAgIChVaW50TGl0ZXJhbCk6CisgICAgICAgIChVaW50TGl0ZXJhbC5wcm90b3R5cGUu
Z2V0IHZhbHVlKToKKyAgICAgICAgKFVpbnRMaXRlcmFsLnByb3RvdHlwZS5nZXQgaXNDb25zdGV4
cHIpOgorICAgICAgICAoVWludExpdGVyYWwucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzOgorICAgICAgICAoVmlzaXRvci5w
cm90b3R5cGUudmlzaXROYXRpdmVGdW5jSW5zdGFuY2UpOgorICAgICAgICAoVmlzaXRvci5wcm90
b3R5cGUudmlzaXRUeXBlVmFyaWFibGUpOgorICAgICAgICAoVmlzaXRvci5wcm90b3R5cGUudmlz
aXRQdHJUeXBlKToKKyAgICAgICAgKFZpc2l0b3IucHJvdG90eXBlLnZpc2l0QXJyYXlSZWZUeXBl
KToKKyAgICAgICAgKFZpc2l0b3IucHJvdG90eXBlLnZpc2l0VWludExpdGVyYWwpOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dUcmFwRXJyb3IuanM6IEFkZGVkLgorICAgICAg
ICAoV1RyYXBFcnJvcik6CisKIDIwMTctMDgtMzEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgV0tVSURlbGVnYXRlUHJpdmF0ZSBlcXVp
dmFsZW50IG9mIFdLUGFnZVVJQ2xpZW50J3MgaXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UKSW5kZXg6
IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMJKHJldmlzaW9uIDIyMTQ2MCkKKysrIFRv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwkod29ya2luZyBjb3B5KQpAQCAtNDUs
NiArNDUsNyBAQCBsb2FkKCJDaGVja2VyLmpzIik7CiBsb2FkKCJDb21tYUV4cHJlc3Npb24uanMi
KTsKIGxvYWQoIkNvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMiKTsKIGxvYWQoIkRlcmVmZXJlbmNl
RXhwcmVzc2lvbi5qcyIpOworbG9hZCgiRUFycmF5UmVmLmpzIik7CiBsb2FkKCJFQnVmZmVyLmpz
Iik7CiBsb2FkKCJFQnVmZmVyQnVpbGRlci5qcyIpOwogbG9hZCgiRVB0ci5qcyIpOwpAQCAtOTMs
OSArOTQsMTEgQEAgbG9hZCgiVHlwZU9yVmFyaWFibGVSZWYuanMiKTsKIGxvYWQoIlR5cGVSZWYu
anMiKTsKIGxvYWQoIlR5cGVWYXJpYWJsZS5qcyIpOwogbG9hZCgiVHlwZWRWYWx1ZS5qcyIpOwor
bG9hZCgiVWludExpdGVyYWwuanMiKTsKIGxvYWQoIlVuaWZpY2F0aW9uQ29udGV4dC5qcyIpOwog
bG9hZCgiVmFyaWFibGVEZWNsLmpzIik7CiBsb2FkKCJWYXJpYWJsZVJlZi5qcyIpOwogbG9hZCgi
VmlzaXRpbmdTZXQuanMiKTsKIGxvYWQoIldTeW50YXhFcnJvci5qcyIpOworbG9hZCgiV1RyYXBF
cnJvci5qcyIpOwogbG9hZCgiV1R5cGVFcnJvci5qcyIpOwpJbmRleDogVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCShyZXZpc2lvbiAyMjE0NjApCisrKyBUb29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsOCAr
MTAwLDggQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICBpZiAobm9k
ZS5hZGRyZXNzU3BhY2UgPT0gInRocmVhZCIpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IAotICAgICAgICBpZiAoIW5vZGUuZWxlbWVudFR5cGUud2l0aFJlY3Vyc2l2ZWx5SW5zdGFudGlh
dGVkSW1tZWRpYXRlcy5pc1ByaW1pdGl2ZSkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVy
cm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIklsbGVnYWwgcG9pbnRlciB0byBub24tcHJp
bWl0aXZlIHR5cGUiKTsKKyAgICAgICAgaWYgKCFub2RlLmVsZW1lbnRUeXBlLmluc3RhbnRpYXRl
ZFR5cGUuaXNQcmltaXRpdmUpCisgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2Rl
Lm9yaWdpbi5vcmlnaW5TdHJpbmcsICJJbGxlZ2FsIHBvaW50ZXIgdG8gbm9uLXByaW1pdGl2ZSB0
eXBlOiAiICsgbm9kZS5lbGVtZW50VHlwZSk7CiAgICAgfQogICAgIAogICAgIHZpc2l0QXJyYXlU
eXBlKG5vZGUpCkBAIC0xMjksNyArMTI5LDcgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0
b3IgewogICAgICAgICBsZXQgcmhzVHlwZSA9IG5vZGUucmhzLnZpc2l0KHRoaXMpOwogICAgICAg
ICBpZiAoIWxoc1R5cGUuZXF1YWxzKHJoc1R5cGUpKQogICAgICAgICAgICAgdGhyb3cgbmV3IFdU
eXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBtaXNtYXRjaCBpbiBhc3Np
Z25tZW50OiAiICsgbGhzVHlwZSArICIgdmVyc3VzICIgKyByaHNUeXBlKTsKLSAgICAgICAgbm9k
ZS50eXBlID0gbGhzVHlwZTsKKyAgICAgICAgbm9kZS50eXBlID0gVHlwZVJlZi53cmFwKGxoc1R5
cGUpOwogICAgICAgICByZXR1cm4gbGhzVHlwZTsKICAgICB9CiAgICAgCkBAIC0xMzgsNyArMTM4
LDcgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICBsZXQgdHlwZSA9
IG5vZGUucHRyLnZpc2l0KHRoaXMpLnVuaWZ5Tm9kZTsKICAgICAgICAgaWYgKCF0eXBlLmlzUHRy
KQogICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3Ry
aW5nLCAiVHlwZSBwYXNzZWQgdG8gZGVyZWZlcmVuY2UgaXMgbm90IGEgcG9pbnRlcjogIiArIHR5
cGUpOwotICAgICAgICBub2RlLnR5cGUgPSB0eXBlLmVsZW1lbnRUeXBlOworICAgICAgICBub2Rl
LnR5cGUgPSBUeXBlUmVmLndyYXAodHlwZS5lbGVtZW50VHlwZSk7CiAgICAgICAgIG5vZGUuYWRk
cmVzc1NwYWNlID0gdHlwZS5hZGRyZXNzU3BhY2U7CiAgICAgICAgIHJldHVybiBub2RlLnR5cGU7
CiAgICAgfQpAQCAtMTc1LDkgKzE3NSwxNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRv
ciB7CiAgICAgCiAgICAgdmlzaXRJbnRMaXRlcmFsKG5vZGUpCiAgICAgeworICAgICAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgcmV0dXJuIHNvbWUga2luZCBvZiB0eXBlIHZhcmlhYmxlIHRoYXQg
ZGVmYXVsdHMgdG8gaW50IGJ1dCBpcyBoYXBweSB0bworICAgICAgICAvLyB1bmlmeSB3aXRoIHVp
bnQuCiAgICAgICAgIHJldHVybiB0aGlzLl9wcm9ncmFtLmludHJpbnNpY3MuaW50MzI7CiAgICAg
fQogICAgIAorICAgIHZpc2l0VWludExpdGVyYWwobm9kZSkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLl9wcm9ncmFtLmludHJpbnNpY3MudWludDMyOworICAgIH0KKyAgICAKICAgICB2aXNp
dENvbW1hRXhwcmVzc2lvbihub2RlKQogICAgIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7
CkluZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FQXJyYXlSZWYuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRUFycmF5UmVmLmpzCShub25l
eGlzdGVudCkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VBcnJheVJlZi5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIEVBcnJheVJlZiB7Cisg
ICAgY29uc3RydWN0b3IocHRyLCBsZW5ndGgpCisgICAgeworICAgICAgICB0aGlzLl9wdHIgPSBw
dHI7CisgICAgICAgIHRoaXMuX2xlbmd0aCA9IGxlbmd0aDsKKyAgICB9CisgICAgCisgICAgZ2V0
IHB0cigpIHsgcmV0dXJuIHRoaXMuX3B0cjsgfQorICAgIGdldCBsZW5ndGgoKSB7IHJldHVybiB0
aGlzLl9sZW5ndGg7IH0KKyAgICAKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1
cm4gIkE6PCIgKyB0aGlzLnB0ciArICIsICIgKyB0aGlzLmxlbmd0aCArICI+IjsKKyAgICB9Cit9
CisKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VQdHIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRVB0ci5qcwkocmV2aXNpb24gMjIx
NDQ4KQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRVB0ci5qcwkod29ya2luZyBj
b3B5KQpAQCAtNDYsNiArNDYsMTEgQEAgY2xhc3MgRVB0ciB7CiAgICAgZ2V0IGJ1ZmZlcigpIHsg
cmV0dXJuIHRoaXMuX2J1ZmZlcjsgfQogICAgIGdldCBvZmZzZXQoKSB7IHJldHVybiB0aGlzLl9v
ZmZzZXQ7IH0KICAgICAKKyAgICBwbHVzKG9mZnNldCkKKyAgICB7CisgICAgICAgIHJldHVybiBu
ZXcgRVB0cih0aGlzLmJ1ZmZlciwgdGhpcy5vZmZzZXQgKyBvZmZzZXQpOworICAgIH0KKyAgICAK
ICAgICBsb2FkVmFsdWUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyLmdldCh0
aGlzLm9mZnNldCk7CkBAIC01OSw4ICs2NCw2IEBAIGNsYXNzIEVQdHIgewogICAgIAogICAgIHRv
U3RyaW5nKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5idWZmZXIpCi0gICAgICAgICAgICBy
ZXR1cm4gIm51bGwiOwogICAgICAgICByZXR1cm4gIkIiICsgdGhpcy5idWZmZXIuaW5kZXggKyAi
OiIgKyB0aGlzLm9mZnNldDsKICAgICB9CiB9CkluZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9FdmFsdWF0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRXZhbHVhdG9yLmpzCShyZXZpc2lvbiAyMjE0NjApCisrKyBUb29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9FdmFsdWF0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw2ICsx
MjEsMTEgQEAgY2xhc3MgRXZhbHVhdG9yIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHJldHVy
biBFUHRyLmJveChub2RlLnZhbHVlKTsKICAgICB9CiAgICAgCisgICAgdmlzaXRVaW50TGl0ZXJh
bChub2RlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEVQdHIuYm94KG5vZGUudmFsdWUpOworICAg
IH0KKyAgICAKICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCiAgICAgewogICAgICAgICAv
LyBXZSBldmFsdWF0ZSBpbmxpbmVkIEFTVHMsIHNvIHRoaXMgY2FuIG9ubHkgYmUgYSBuYXRpdmUg
Y2FsbC4KSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0
b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0lu
c3RhbnRpYXRvci5qcwkocmV2aXNpb24gMjIxNDYwKQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qcwkod29ya2luZyBjb3B5KQpAQCAtNzEsNyArNzEs
NyBAQCBjbGFzcyBGdW5jSW5zdGFudGlhdG9yIHsKICAgICAgICAgICAgICAgICByZXR1cm4gbmV3
IE5hdGl2ZUZ1bmNJbnN0YW5jZSgKICAgICAgICAgICAgICAgICAgICAgZnVuYywKICAgICAgICAg
ICAgICAgICAgICAgZnVuYy5yZXR1cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlvbiksCi0gICAgICAg
ICAgICAgICAgICAgIHBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQo
c3Vic3RpdHV0aW9uKSkpOworICAgICAgICAgICAgICAgICAgICBmdW5jLnBhcmFtZXRlcnMubWFw
KHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQoc3Vic3RpdHV0aW9uKSkpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgICAgIGxldCByZXN1bHRpbmdGdW5jID0gZnVuYy52aXNpdChu
ZXcgSW5zdGFudGlhdGUoKSk7CkluZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9J
bnRyaW5zaWNzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0ludHJpbnNpY3MuanMJKHJldmlzaW9uIDIyMTQ0OCkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0ludHJpbnNpY3MuanMJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDEyIEBA
CiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIEludHJpbnNpY3MgewotICAgIGNvbnN0cnVjdG9yKCkK
KyAgICBjb25zdHJ1Y3RvcihuYW1lQ29udGV4dCkKICAgICB7CisgICAgICAgIHRoaXMucHJpbWl0
aXZlID0gbmV3IFByb3RvY29sRGVjbChudWxsLCAicHJpbWl0aXZlIik7CisgICAgICAgIHRoaXMu
cHJpbWl0aXZlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgbmFtZUNvbnRleHQuYWRkKHRo
aXMucHJpbWl0aXZlKTsKKyAgICAgICAgCiAgICAgICAgIHRoaXMuX21hcCA9IG5ldyBNYXAoKTsK
IAogICAgICAgICAvLyBOT1RFOiBJbnRyaW5zaWMgcmVzb2x1dGlvbiBoYXBwZW5zIGJlZm9yZSB0
eXBlIG5hbWUgcmVzb2x1dGlvbiwgc28gdGhlIHN0cmluZ3Mgd2UgdXNlIGhlcmUKQEAgLTM2LDcg
KzQwLDcgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgIAogICAgICAgICB0aGlzLl9tYXAu
c2V0KAogICAgICAgICAgICAgIm5hdGl2ZSBwcmltaXRpdmUgdHlwZSB2b2lkPD4iLAotICAgICAg
ICAgICAgKHR5cGUpID0+IHsKKyAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAg
IHRoaXMudm9pZCA9IHR5cGU7CiAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMDsKICAgICAg
ICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKCkgPT4geyB9OwpAQCAtNDQs
MTUgKzQ4LDIzIEBAIGNsYXNzIEludHJpbnNpY3MgewogCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
CiAgICAgICAgICAgICAibmF0aXZlIHByaW1pdGl2ZSB0eXBlIGludDMyPD4iLAotICAgICAgICAg
ICAgKHR5cGUpID0+IHsKKyAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgIHRo
aXMuaW50MzIgPSB0eXBlOwogICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAg
ICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4g
YnVmZmVyLnNldChvZmZzZXQsIDApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgcHJpbWl0aXZlIHR5cGUgdWludDMyPD4iLAor
ICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgdGhpcy51aW50MzIgPSB0eXBl
OworICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgdHlwZS5w
b3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZz
ZXQsIDApOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKICAgICAg
ICAgICAgICJuYXRpdmUgcHJpbWl0aXZlIHR5cGUgZG91YmxlPD4iLAotICAgICAgICAgICAgKHR5
cGUpID0+IHsKKyAgICAgICAgICAgIHR5cGUgPT4gewogICAgICAgICAgICAgICAgIHRoaXMuZG91
YmxlID0gdHlwZTsKICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwogICAgICAgICAgICAg
ICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZl
ci5zZXQob2Zmc2V0LCAwKTsKQEAgLTYwLDEwICs3MiwzMyBAQCBjbGFzcyBJbnRyaW5zaWNzIHsK
ICAgICAgICAgCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCiAgICAgICAgICAgICAibmF0aXZlIGlu
dCBvcGVyYXRvcis8PihpbnQsaW50KSIsCi0gICAgICAgICAgICAoZnVuYykgPT4gewotICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPQotICAgICAgICAgICAgICAgICAgICAoW2xl
ZnQsIHJpZ2h0XSkgPT4gRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFs
dWUoKSkgfCAwKTsKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKICAg
ICAgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgbGV0IGFycmF5RWxlbWVudFB0ciA9IGZ1
bmMgPT4geworICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbcmVmLCBpbmRleF0s
IG5vZGUpID0+IHsKKyAgICAgICAgICAgICAgICByZWYgPSByZWYubG9hZFZhbHVlKCk7CisgICAg
ICAgICAgICAgICAgaW5kZXggPSBpbmRleC5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBp
ZiAoaW5kZXggPiByZWYubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1Ry
YXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJBcnJheSBpbmRleCAiICsgaW5kZXgg
KyAiIGlzIG91dCBvZiBib3VuZHMgb2YgIiArIHJlZik7CisgICAgICAgICAgICAgICAgcmV0dXJu
IEVQdHIuYm94KHJlZi5wdHIucGx1cyhpbmRleCAqIG5vZGUuYWN0dWFsVHlwZUFyZ3VtZW50c1sw
XS5zaXplKSk7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICAKKyAgICAgICAg
dGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgdGhyZWFkIFReIG9wZXJhdG9yXFxb
XTxUPih0aHJlYWQgVFtdLHVpbnQpIiwKKyAgICAgICAgICAgIGFycmF5RWxlbWVudFB0cik7Cisg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIHRocmVhZGdyb3VwIFRe
IG9wZXJhdG9yXFxbXTxUOnByaW1pdGl2ZT4odGhyZWFkZ3JvdXAgVFtdLHVpbnQpIiwKKyAgICAg
ICAgICAgIGFycmF5RWxlbWVudFB0cik7CisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAibmF0aXZlIGRldmljZSBUXiBvcGVyYXRvclxcW108VDpwcmltaXRpdmU+KGRldmljZSBU
W10sdWludCkiLAorICAgICAgICAgICAgYXJyYXlFbGVtZW50UHRyKTsKKyAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgY29uc3RhbnQgVF4gb3BlcmF0b3JcXFtdPFQ6
cHJpbWl0aXZlPihjb25zdGFudCBUW10sdWludCkiLAorICAgICAgICAgICAgYXJyYXlFbGVtZW50
UHRyKTsKICAgICB9CiAgICAgCiAgICAgYWRkKHRoaW5nKQpJbmRleDogVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTGV4ZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTGV4ZXIuanMJKHJldmlzaW9uIDIyMTQzNSkKKysrIFRvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0xleGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDkg
QEAgY2xhc3MgTGV4ZXIgewogICAgICAgICBpZiAoL15bXlxkXFddXHcqLy50ZXN0KHJlbGV2YW50
VGV4dCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0KCJpZGVudGlmaWVyIik7CiAKKyAgICAg
ICAgaWYgKC9eWzAtOV0rdS8udGVzdChyZWxldmFudFRleHQpKQorICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdCgidWludExpdGVyYWwiKTsKKwogICAgICAgICBpZiAoL15bMC05XSsvLnRlc3QocmVs
ZXZhbnRUZXh0KSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQoImludExpdGVyYWwiKTsKIApA
QCAtMTEyLDcgKzExNSw3IEBAIGNsYXNzIExleGVyIHsKICAgICAgICAgaWYgKC9eKFswLTldKlwu
WzAtOV0rKXwoWzAtOV0rXC5bMC05XSopLy50ZXN0KHJlbGV2YW50VGV4dCkpCiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0KCJkb3VibGVMaXRlcmFsIik7CiAgICAgICAgIAotICAgICAgICBpZiAo
L14oc3RydWN0fHByb3RvY29sfHR5cGV8aWZ8ZWxzZXxlbnVtfGNvbnRpbnVlfGJyZWFrfHN3aXRj
aHxjYXNlfGRlZmF1bHR8Zm9yfHdoaWxlfGRvfHJldHVybnxzaXplb2Z8Y29uc3RhbnR8ZGV2aWNl
fHRocmVhZGdyb3VwfHRocmVhZHxvcGVyYXRvcnxudWxsKS8udGVzdChyZWxldmFudFRleHQpKQor
ICAgICAgICBpZiAoL14oc3RydWN0fHByb3RvY29sfHR5cGVkZWZ8aWZ8ZWxzZXxlbnVtfGNvbnRp
bnVlfGJyZWFrfHN3aXRjaHxjYXNlfGRlZmF1bHR8Zm9yfHdoaWxlfGRvfHJldHVybnxzaXplb2Z8
Y29uc3RhbnR8ZGV2aWNlfHRocmVhZGdyb3VwfHRocmVhZHxvcGVyYXRvcnxudWxsKS8udGVzdChy
ZWxldmFudFRleHQpKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCgia2V5d29yZCIpOwogICAg
ICAgICAKICAgICAgICAgaWYgKC9eKFt7fSgpXFtcXT86PSsqXC8sLiUhfl4mfDw+XFw7LV18LT58
PT58PD18PT18IT18XCs9fC09fFwqPXxcLz18JT18Xj18XHw9fCY9KS8udGVzdChyZWxldmFudFRl
eHQpKQpJbmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQu
anMJKHJldmlzaW9uIDIyMTQzNSkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05h
bWVDb250ZXh0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsNyArMTM3LDcgQEAgY2xhc3MgTmFt
ZUNvbnRleHQgewogICAgIAogICAgIHJlY29nbml6ZUludHJpbnNpY3MoKQogICAgIHsKLSAgICAg
ICAgdGhpcy5faW50cmluc2ljcyA9IG5ldyBJbnRyaW5zaWNzKCk7CisgICAgICAgIHRoaXMuX2lu
dHJpbnNpY3MgPSBuZXcgSW50cmluc2ljcyh0aGlzKTsKICAgICB9CiAgICAgCiAgICAgZ2V0IGlu
dHJpbnNpY3MoKQpJbmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29s
dmVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVS
ZXNvbHZlci5qcwkocmV2aXNpb24gMjIxNDQyKQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTmFtZVJlc29sdmVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNiArMTAwLDE0IEBA
IGNsYXNzIE5hbWVSZXNvbHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAgc2lnbmF0
dXJlLnZpc2l0KGNoZWNrZXIpOwogICAgIH0KICAgICAKKyAgICB2aXNpdFByb3RvY29sUmVmKG5v
ZGUpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KFBy
b3RvY29sLCBub2RlLm5hbWUpOworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNvdWxkIG5vdCBm
aW5kIHByb3RvY29sIG5hbWVkICIgKyBub2RlLm5hbWUpOworICAgICAgICBub2RlLnByb3RvY29s
RGVjbCA9IHJlc3VsdDsKKyAgICB9CisgICAgCiAgICAgdmlzaXRUeXBlRGVmKG5vZGUpCiAgICAg
ewogICAgICAgICBsZXQgbmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNv
bnRleHQpOwpJbmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuY0lu
c3RhbmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05h
dGl2ZUZ1bmNJbnN0YW5jZS5qcwkocmV2aXNpb24gMjIxNDYwKQorKysgVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuY0luc3RhbmNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw2ICszMiw3IEBAIGNsYXNzIE5hdGl2ZUZ1bmNJbnN0YW5jZSBleHRlbmRzIEZ1bmMgewogICAg
IH0KICAgICAKICAgICBnZXQgZnVuYygpIHsgcmV0dXJuIHRoaXMuX2Z1bmM7IH0KKyAgICBnZXQg
aXNOYXRpdmUoKSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB0b1N0cmluZygpCiAgICAgewpJbmRl
eDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMJKHJldmlzaW9uIDIyMTQzNikK
KysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1BhcnNlLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzcsNiArMTc3LDEyIEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgbGlu
ZU51bWIKICAgICAgICAgICAgICAgICBsZXhlci5mYWlsKCJJbnRlZ2VyIGxpdGVyYWwgaXMgbm90
IDMyLWJpdCBpbnRlZ2VyIik7CiAgICAgICAgICAgICByZXR1cm4gbmV3IEludExpdGVyYWwodG9r
ZW4sIGludFZlcnNpb24pOwogICAgICAgICB9CisgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1
bWVLaW5kKCJ1aW50TGl0ZXJhbCIpKSB7CisgICAgICAgICAgICBsZXQgdWludFZlcnNpb24gPSB0
b2tlbi50ZXh0ID4+PiAwOworICAgICAgICAgICAgaWYgKHVpbnRWZXJzaW9uICsgInUiICE9IHRv
a2VuLnRleHQpCisgICAgICAgICAgICAgICAgbGV4ZXIuZmFpbCgiSW50ZWdlciBsaXRlcmFsIGlz
IG5vdCAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciIpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBV
aW50TGl0ZXJhbCh0b2tlbiwgdWludFZlcnNpb24pOworICAgICAgICB9CiAgICAgICAgIGlmICh0
b2tlbiA9IHRyeUNvbnN1bWVLaW5kKCJkb3VibGVMaXRlcmFsIikpIHsKICAgICAgICAgICAgIHRv
a2VuID0gY29uc3VtZUtpbmQoImRvdWJsZUxpdGVyYWwiKTsKICAgICAgICAgICAgIHJldHVybiBu
ZXcgRG91YmxlTGl0ZXJhbCh0b2tlbiwgK3Rva2VuLnRleHQpOwpAQCAtMjgwLDcgKzI4Niw3IEBA
IGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgbGluZU51bWIKICAgICAKICAgICBmdW5j
dGlvbiBwYXJzZVR5cGVEZWYoKQogICAgIHsKLSAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUo
InR5cGUiKTsKKyAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoInR5cGVkZWYiKTsKICAgICAg
ICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpLnRleHQ7CiAgICAgICAgIGxl
dCB0eXBlUGFyYW1ldGVycyA9IHBhcnNlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAgICAgY29uc3Vt
ZSgiPSIpOwpAQCAtMjkzLDEwICsyOTksMTAgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3Jp
Z2luLCBsaW5lTnVtYgogICAgIHsKICAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoIm5hdGl2
ZSIpOwogICAgICAgICBsZXQgaXNUeXBlID0gbGV4ZXIuYmFja3RyYWNraW5nU2NvcGUoKCkgPT4g
ewotICAgICAgICAgICAgaWYgKHRyeUNvbnN1bWUoInR5cGUiKSkKKyAgICAgICAgICAgIGlmICh0
cnlDb25zdW1lKCJ0eXBlZGVmIikpCiAgICAgICAgICAgICAgICAgcmV0dXJuICJub3JtYWwiOwog
ICAgICAgICAgICAgY29uc3VtZSgicHJpbWl0aXZlIik7Ci0gICAgICAgICAgICBjb25zdW1lKCJ0
eXBlIik7CisgICAgICAgICAgICBjb25zdW1lKCJ0eXBlZGVmIik7CiAgICAgICAgICAgICByZXR1
cm4gInByaW1pdGl2ZSI7CiAgICAgICAgIH0pOwogICAgICAgICBpZiAoaXNUeXBlKSB7CkBAIC0z
NzQsNyArMzgwLDkgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBsaW5lTnVtYgog
ICAgICAgICAgICAgY2FzZSAiWyI6IHsKICAgICAgICAgICAgICAgICBsZXQgaW5kZXggPSBwYXJz
ZUV4cHJlc3Npb24oKTsKICAgICAgICAgICAgICAgICBjb25zdW1lKCJdIik7Ci0gICAgICAgICAg
ICAgICAgbGVmdCA9IG5ldyBJbmRleEV4cHJlc3Npb24odG9rZW4sIGxlZnQsIGluZGV4KTsKKyAg
ICAgICAgICAgICAgICBsZWZ0ID0gbmV3IERlcmVmZXJlbmNlRXhwcmVzc2lvbigKKyAgICAgICAg
ICAgICAgICAgICAgdG9rZW4sCisgICAgICAgICAgICAgICAgICAgIG5ldyBDYWxsRXhwcmVzc2lv
bih0b2tlbiwgIm9wZXJhdG9yXFxbXSIsIFtdLCBbbGVmdCwgaW5kZXhdKSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBkZWZhdWx0OgpAQCAtNjQ0
LDcgKzY1Miw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgbGluZU51bWIKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKHRva2VuLnRleHQgPT0gIjsiKQogICAgICAg
ICAgICAgbGV4ZXIubmV4dCgpOwotICAgICAgICBlbHNlIGlmICh0b2tlbi50ZXh0ID09ICJ0eXBl
IikKKyAgICAgICAgZWxzZSBpZiAodG9rZW4udGV4dCA9PSAidHlwZWRlZiIpCiAgICAgICAgICAg
ICBwcm9ncmFtLmFkZChwYXJzZVR5cGVEZWYoKSk7CiAgICAgICAgIGVsc2UgaWYgKHRva2VuLnRl
eHQgPT0gIm5hdGl2ZSIpCiAgICAgICAgICAgICBwcm9ncmFtLmFkZChwYXJzZU5hdGl2ZSgpKTsK
SW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sRGVjbC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanMJ
KHJldmlzaW9uIDIyMTQzNSkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3Rv
Y29sRGVjbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQCBjbGFzcyBQcm90b2Nv
bERlY2wgZXh0ZW5kcyBQcm90b2NvbCB7CiAgICAgICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbXTsK
ICAgICAgICAgdGhpcy5fc2lnbmF0dXJlTWFwID0gbmV3IE1hcCgpOwogICAgICAgICB0aGlzLl90
eXBlVmFyaWFibGUgPSBuZXcgVHlwZVZhcmlhYmxlKG9yaWdpbiwgbmFtZSwgbnVsbCk7CisgICAg
ICAgIHRoaXMuaXNQcmltaXRpdmUgPSBmYWxzZTsKICAgICB9CiAgICAgCiAgICAgYWRkU2lnbmF0
dXJlKHNpZ25hdHVyZSkKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3Rv
Y29sUmVmLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1By
b3RvY29sUmVmLmpzCShyZXZpc2lvbiAyMjE0MzUpCisrKyBUb29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Qcm90b2NvbFJlZi5qcwkod29ya2luZyBjb3B5KQpAQCAtNDAsNCArNDAsOSBAQCBj
bGFzcyBQcm90b2NvbFJlZiBleHRlbmRzIFByb3RvY29sIHsKICAgICB7CiAgICAgICAgIHJldHVy
biB0aGlzLnByb3RvY29sRGVjbC5oYXNIZWlyKHR5cGUpOwogICAgIH0KKyAgICAKKyAgICBnZXQg
aXNQcmltaXRpdmUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2xEZWNsLmlz
UHJpbWl0aXZlOworICAgIH0KIH0KSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1B0clR5cGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
UHRyVHlwZS5qcwkocmV2aXNpb24gMjIxNDUwKQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUHRyVHlwZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMjcsMTEgKzI3LDYgQEAKIGNsYXNz
IFB0clR5cGUgZXh0ZW5kcyBSZWZlcmVuY2VUeXBlIHsKICAgICBnZXQgaXNQdHIoKSB7IHJldHVy
biB0cnVlOyB9CiAgICAgCi0gICAgcG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQp
Ci0gICAgewotICAgICAgICBidWZmZXIuc2V0KG9mZnNldCwgbnVsbCk7Ci0gICAgfQotICAgIAog
ICAgIHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQogICAgIHsKICAgICAgICAg
aWYgKCEob3RoZXIgaW5zdGFuY2VvZiBQdHJUeXBlKSkKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1JlZmVyZW5jZVR5cGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUmVmZXJlbmNlVHlwZS5qcwkocmV2aXNpb24gMjIxNDM1KQorKysg
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVmZXJlbmNlVHlwZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtNDAsNSArNDAsMTAgQEAgY2xhc3MgUmVmZXJlbmNlVHlwZSBleHRlbmRzIFR5cGUg
ewogICAgIGdldCBpc1ByaW1pdGl2ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBnZXQgc2l6
ZSgpIHsgcmV0dXJuIDE7IH0KKworICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zm
c2V0KQorICAgIHsKKyAgICAgICAgYnVmZmVyLnNldChvZmZzZXQsIG51bGwpOworICAgIH0KIH0K
IApJbmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMJKHJldmlz
aW9uIDIyMTQ2MCkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw5IEBACiAgKi8KICJ1c2Ugc3RyaWN0IjsKIAor
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGhhdmUgc2Vuc2libGUgYmVoYXZpb3Igd2hlbiBpdCBlbmNv
dW50ZXJzIGRlZmluaXRpb25zIHRoYXQgaXQgY2Fubm90IGhhbmRsZS4gUmlnaHQKKy8vIG5vdyB3
ZSBhcmUgaGFja2lzaGx5IHByZXZlbnRpbmcgdGhpcyBieSB3cmFwcGluZyB0aGluZ3MgaW4gVHlw
ZVJlZi4gVGhhdCdzIHByb2JhYmx5IHdyb25nLgorLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NjIwOAogY2xhc3MgUmV3cml0ZXIgewogICAgIGNvbnN0cnVjdG9y
KCkKICAgICB7CkBAIC00NCwxNCArNDcsNiBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAgIHJl
dHVybiBvbGRJdGVtOwogICAgIH0KICAgICAKLSAgICB2aXNpdEZ1bmMobm9kZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBuZXcgRnVuYygKLSAgICAgICAgICAgIG5vZGUubmFtZSwgbm9kZS5yZXR1
cm5UeXBlLnZpc2l0KHRoaXMpLAotICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAo
dHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKLSAgICAgICAgICAg
IG5vZGUucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSkp
OwotICAgIH0KLSAgICAKICAgICB2aXNpdEZ1bmNQYXJhbWV0ZXIobm9kZSkKICAgICB7CiAgICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgRnVuY1BhcmFtZXRlcihub2RlLm9yaWdpbiwgbm9kZS5uYW1l
LCBub2RlLnR5cGUudmlzaXQodGhpcykpOwpAQCAtOTcsMjAgKzkyLDEyIEBAIGNsYXNzIFJld3Jp
dGVyIHsKICAgICB2aXNpdFR5cGVSZWYobm9kZSkKICAgICB7CiAgICAgICAgIGxldCByZXN1bHQg
PSBuZXcgVHlwZVJlZihub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGVBcmd1bWVudHMu
bWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQudmlzaXQodGhpcykpKTsKKyAgICAgICAg
Ly8gV2Ugc2hvdWxkIHByb2JhYmx5IHZpc2l0IHRoaXMgdHlwZS4KKyAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjIwOAogICAgICAgICByZXN1bHQu
dHlwZSA9IG5vZGUudHlwZTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0g
ICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBub2RlOwot
ICAgIH0KLSAgICAKLSAgICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBuZXcgQ29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlLm9yaWdpbiwg
bm9kZS5uYW1lLCBub2RlLnR5cGUudmlzaXQodGhpcykpOwotICAgIH0KLSAgICAKICAgICB2aXNp
dEZpZWxkKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IEZpZWxkKG5vZGUub3JpZ2lu
LCBub2RlLm5hbWUsIG5vZGUudHlwZS52aXNpdCh0aGlzKSk7CkBAIC0xNzEsNiArMTU4LDExIEBA
IGNsYXNzIFJld3JpdGVyIHsKICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgfQogCisgICAgdmlz
aXRVaW50TGl0ZXJhbChub2RlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5vZGU7CisgICAgfQor
CiAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQogICAgIHsKICAgICAgICAgbGV0IHJlc3Vs
dCA9IG5ldyBDYWxsRXhwcmVzc2lvbigKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N0YW5kYXJkTGlicmFyeS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMJKHJldmlzaW9uIDIyMTQzNSkKKysrIFRvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMjcsMTIgKzI3LDIxIEBACiAvLyBOT1RFOiBUaGUgbmV4dCBsaW5lIGlzIGxpbmUgMjgs
IGFuZCB3ZSByZWx5IG9uIHRoaXMgaW4gUHJlcGFyZS5qcy4KIGNvbnN0IHN0YW5kYXJkTGlicmFy
eSA9IGAKIC8vIFRoaXMgaXMgdGhlIFdTTCBzdGFuZGFyZCBsaWJyYXJ5LiBJbXBsZW1lbnRhdGlv
bnMgb2YgYWxsIG9mIHRoZXNlIHRoaW5ncyBhcmUgaW4KLS8vIEludHJpbnNpY3MuanMuCisvLyBJ
bnRyaW5zaWNzLmpzLiBUaGUgb25seSB0aGluZyB0aGF0IGdldHMgZGVmaW5lZCBiZWZvcmUgd2Ug
Z2V0IGhlcmUgaXMgdGhlIHByaW1pdGl2ZQorLy8gcHJvdG9jb2wuCiAKIC8vIE5lZWQgdG8gYm9v
dHN0cmFwIHZvaWQgZmlyc3QuCi1uYXRpdmUgcHJpbWl0aXZlIHR5cGUgdm9pZDsKLW5hdGl2ZSBw
cmltaXRpdmUgdHlwZSBpbnQzMjsKLXR5cGUgaW50ID0gaW50MzI7CituYXRpdmUgcHJpbWl0aXZl
IHR5cGVkZWYgdm9pZDsKKworbmF0aXZlIHByaW1pdGl2ZSB0eXBlZGVmIGludDMyOworbmF0aXZl
IHByaW1pdGl2ZSB0eXBlZGVmIHVpbnQzMjsKK3R5cGVkZWYgaW50ID0gaW50MzI7Cit0eXBlZGVm
IHVpbnQgPSB1aW50MzI7CiAKIG5hdGl2ZSBpbnQgb3BlcmF0b3IrKGludCwgaW50KTsKKworbmF0
aXZlIHRocmVhZCBUXiBvcGVyYXRvclxcW108VD4odGhyZWFkIFRbXSwgdWludCk7CituYXRpdmUg
dGhyZWFkZ3JvdXAgVF4gb3BlcmF0b3JcXFtdPFQ6cHJpbWl0aXZlPih0aHJlYWRncm91cCBUW10s
IHVpbnQpOworbmF0aXZlIGRldmljZSBUXiBvcGVyYXRvclxcW108VDpwcmltaXRpdmU+KGRldmlj
ZSBUW10sIHVpbnQpOworbmF0aXZlIGNvbnN0YW50IFReIG9wZXJhdG9yXFxbXTxUOnByaW1pdGl2
ZT4oY29uc3RhbnQgVFtdLCB1aW50KTsKIGA7CkluZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9UZXN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Rlc3QuanMJKHJldmlzaW9uIDIyMTQ2MCkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Rlc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1Nyw2ICsxNTcsMzIgQEAgZnVuY3Rp
b24gVEVTVF9zaW1wbGVNYWtlUHRyKCkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeHBlY3Rl
ZCA0MiBidXQgZ290OiAiICsgdmFsdWUpOwogfQogCitmdW5jdGlvbiBURVNUX3RocmVhZEFycmF5
TG9hZCgpCit7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBpbnQgZm9vKHRo
cmVhZCBpbnRbXSBhcnJheSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFycmF5WzB1
XTsKKyAgICAgICAgfWApOworICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKKyAgICBi
dWZmZXIuc2V0KDAsIDg5KTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJlZlR5cGUobnVsbCwgInRocmVh
ZCIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVm
ZmVyLCAwKSwgMSkpXSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgcmVzdWx0LCA4OSk7Cit9CisK
K2Z1bmN0aW9uIFRFU1RfZGV2aWNlQXJyYXlMb2FkKCkKK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCisgICAgICAgIGludCBmb28oZGV2aWNlIGludFtdIGFycmF5KQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gYXJyYXlbMHVdOworICAgICAgICB9YCk7CisgICAgbGV0IGJ1ZmZl
ciA9IG5ldyBFQnVmZmVyKDEpOworICAgIGJ1ZmZlci5zZXQoMCwgODkpOworICAgIGxldCByZXN1
bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3
IEFycmF5UmVmVHlwZShudWxsLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwg
bmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCByZXN1bHQsIDg5KTsKK30KKwogbGV0IGJlZm9yZSA9IHByZWNpc2VUaW1lKCk7CiAK
IGxldCBmaWx0ZXIgPSAvLiovOyAvLyBydW4gZXZlcnl0aGluZyBieSBkZWZhdWx0CkluZGV4OiBU
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUmVmLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMJKHJldmlzaW9uIDIyMTQzNSkK
KysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTQ4LDYgKzQ4LDggQEAgY2xhc3MgVHlwZVJlZiBleHRlbmRzIFR5cGUgewogICAgIGdl
dCBpbnN0YW50aWF0ZWRUeXBlKCkKICAgICB7CiAgICAgICAgIGxldCB0eXBlID0gdGhpcy50eXBl
LnVuaWZ5Tm9kZTsKKyAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQorICAg
ICAgICAgICAgcmV0dXJuIHR5cGU7CiAgICAgICAgIGlmICghdHlwZS5pbnN0YW50aWF0ZSkKICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigidHlwZSBkb2VzIG5vdCBzdXBwb3J0IGluc3RhbnRp
YXRpb246ICIgKyB0eXBlICsgIiAoIiArIHR5cGUuY29uc3RydWN0b3IubmFtZSArICIpIik7CiAg
ICAgICAgIHJldHVybiB0eXBlLmluc3RhbnRpYXRlKHRoaXMudHlwZUFyZ3VtZW50cyk7CkluZGV4
OiBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzCShyZXZp
c2lvbiAyMjE0MzUpCisrKyBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFi
bGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcgQEAgY2xhc3MgVHlwZVZhcmlhYmxl
IGV4dGVuZHMgVHlwZSB7CiAgICAgCiAgICAgdG9TdHJpbmcoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMubmFtZTsKKyAgICAgICAgcmV0dXJuIHRoaXMubmFtZSArICh0aGlzLnByb3RvY29s
ID8gIjoiICsgdGhpcy5wcm90b2NvbC5uYW1lIDogIiIpOwogICAgIH0KIH0KIApJbmRleDogVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVWludExpdGVyYWwuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVWludExpdGVyYWwuanMJKG5vbmV4aXN0ZW50
KQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVWludExpdGVyYWwuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworInVzZSBzdHJpY3QiOworCitjbGFzcyBVaW50TGl0ZXJhbCBleHRlbmRz
IEV4cHJlc3Npb24geworICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgdmFsdWUpCisgICAgeworICAg
ICAgICBzdXBlcihvcmlnaW4pOworICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlOworICAgIH0K
KyAgICAKKyAgICBnZXQgdmFsdWUoKSB7IHJldHVybiB0aGlzLl92YWx1ZTsgfQorICAgIGdldCBp
c0NvbnN0ZXhwcigpIHsgcmV0dXJuIHRydWU7IH0KKyAgICAKKyAgICB0b1N0cmluZygpCisgICAg
eworICAgICAgICByZXR1cm4gIiIgKyB0aGlzLl92YWx1ZSArICJ1IjsKKyAgICB9Cit9CisKSW5k
ZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcwkocmV2aXNpb24gMjIx
NDYwKQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtNTYsNiArNTYsMTIgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgICAgIHRoaXMu
dmlzaXRGdW5jKG5vZGUpOwogICAgIH0KICAgICAKKyAgICB2aXNpdE5hdGl2ZUZ1bmNJbnN0YW5j
ZShub2RlKQorICAgIHsKKyAgICAgICAgbm9kZS5mdW5jLnZpc2l0KHRoaXMpOworICAgICAgICB0
aGlzLnZpc2l0RnVuYyhub2RlKTsKKyAgICB9CisgICAgCiAgICAgdmlzaXRCbG9jayhub2RlKQog
ICAgIHsKICAgICAgICAgZm9yIChsZXQgc3RhdGVtZW50IG9mIG5vZGUuc3RhdGVtZW50cykKQEAg
LTEwNyw2ICsxMTMsOCBAQCBjbGFzcyBWaXNpdG9yIHsKICAgICAKICAgICB2aXNpdFR5cGVWYXJp
YWJsZShub2RlKQogICAgIHsKKyAgICAgICAgaWYgKG5vZGUucHJvdG9jb2wpCisgICAgICAgICAg
ICBub2RlLnByb3RvY29sLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKICAgICB2aXNpdENvbnN0
ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKQEAgLTEyNCwxNCArMTMyLDE5IEBAIGNsYXNzIFZpc2l0
b3IgewogICAgICAgICBub2RlLmVsZW1lbnRUeXBlLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAK
LSAgICB2aXNpdFB0clR5cGUobm9kZSkKKyAgICB2aXNpdFJlZmVyZW5jZVR5cGUobm9kZSkKICAg
ICB7CiAgICAgICAgIHRoaXMudmlzaXRFbGVtZW50YWxUeXBlKG5vZGUpOwogICAgIH0KICAgICAK
KyAgICB2aXNpdFB0clR5cGUobm9kZSkKKyAgICB7CisgICAgICAgIHRoaXMudmlzaXRSZWZlcmVu
Y2VUeXBlKG5vZGUpOworICAgIH0KKyAgICAKICAgICB2aXNpdEFycmF5UmVmVHlwZShub2RlKQog
ICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEVsZW1lbnRhbFR5cGUobm9kZSk7CisgICAgICAgIHRo
aXMudmlzaXRSZWZlcmVuY2VUeXBlKG5vZGUpOwogICAgIH0KICAgICAKICAgICB2aXNpdEFycmF5
VHlwZShub2RlKQpAQCAtMTc3LDYgKzE5MCwxMCBAQCBjbGFzcyBWaXNpdG9yIHsKICAgICB7CiAg
ICAgfQogICAgIAorICAgIHZpc2l0VWludExpdGVyYWwobm9kZSkKKyAgICB7CisgICAgfQorICAg
IAogICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICB7CiAgICAgICAgIGZvciAobGV0
IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCkluZGV4OiBUb29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9XVHJhcEVycm9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1dUcmFwRXJyb3IuanMJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV1RyYXBFcnJvci5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisidXNlIHN0cmljdCI7CisKK2NsYXNzIFdUcmFwRXJyb3IgZXh0ZW5kcyBFcnJvciB7CisgICAg
Y29uc3RydWN0b3Iob3JpZ2luU3RyaW5nLCBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgc3VwZXIo
IlRyYXAgYXQgIiArIG9yaWdpblN0cmluZyArICI6ICIgKyBtZXNzYWdlKTsKKyAgICAgICAgdGhp
cy5vcmlnaW5TdHJpbmcgPSBvcmlnaW5TdHJpbmc7CisgICAgICAgIHRoaXMuc3ludGF4RXJyb3JN
ZXNzYWdlID0gbWVzc2FnZTsKKyAgICB9Cit9CisK
</data>
<flag name="review"
          id="339826"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>