<?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>76183</bug_id>
          
          <creation_ts>2012-01-12 08:51:28 -0800</creation_ts>
          <short_desc>Web Inspector: make HTML editing preserve node identity when node nesting level changes.</short_desc>
          <delta_ts>2012-02-26 06:14:19 -0800</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>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ossy</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>534882</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-12 08:51:28 -0800</bug_when>
    <thetext>As of today, editing

&lt;p&gt;Foo&lt;/p&gt;

to become

&lt;div&gt;&lt;p&gt;Foo&lt;/p&gt;&lt;/div&gt;

re-creates &lt;p&gt;Foo&lt;/p&gt;, hence all JavaScript wrappers pointing to &lt;p&gt; become invalid.

It should move it into the new &lt;div&gt; instead, while preserving the node identity and wrapper references.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534884</commentid>
    <comment_count>1</comment_count>
      <attachid>122253</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-12 08:54:41 -0800</bug_when>
    <thetext>Created attachment 122253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534916</commentid>
    <comment_count>2</comment_count>
      <attachid>122253</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-01-12 09:42:14 -0800</bug_when>
    <thetext>Comment on attachment 122253
Patch

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

&gt; Source/WebCore/inspector/DOMEditor.cpp:402
&gt; +    Deque&lt;Digest*&gt; queue;

Why do you prefer BFS over DFS here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535600</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-13 05:25:11 -0800</bug_when>
    <thetext>Committed r104920: &lt;http://trac.webkit.org/changeset/104920&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535607</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-01-13 05:39:31 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Committed r104920: &lt;http://trac.webkit.org/changeset/104920&gt;

Reopen, because it broke the 32 bit builds:
cc1plus: warnings being treated as errors
/ramdisk/qt-linux-32-release-webkit2/build/Source/WebCore/inspector/DOMEditor.cpp: In member function ‘void WebCore::DOMEditor::dumpMap(const WTF::String&amp;, const WTF::Vector&lt;std::pair&lt;WebCore::DOMEditor::Digest*, unsigned int&gt;, 0u&gt;&amp;, const WTF::Vector&lt;WTF::OwnPtr&lt;WebCore::DOMEditor::Digest&gt;, 0u&gt;&amp;)’:
/ramdisk/qt-linux-32-release-webkit2/build/Source/WebCore/inspector/DOMEditor.cpp:430: error: format ‘%ld’ expects type ‘long int’, but argument 4 has type ‘size_t’
/ramdisk/qt-linux-32-release-webkit2/build/Source/WebCore/inspector/DOMEditor.cpp:430: error: format ‘%ld’ expects type ‘long int’, but argument 6 has type ‘unsigned int’

Could you fix it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535625</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-01-13 06:02:58 -0800</bug_when>
    <thetext>Buildfix landed in http://trac.webkit.org/changeset/104923</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565010</commentid>
    <comment_count>6</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-02-25 13:07:18 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Buildfix landed in http://trac.webkit.org/changeset/104923

can be re-closed?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122253</attachid>
            <date>2012-01-12 08:54:41 -0800</date>
            <delta_ts>2012-01-12 09:42:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76183-20120112205439.patch</filename>
            <type>text/plain</type>
            <size>35392</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0Nzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcxOWE5ZDNkMjFiOGU0
NTRmNjJlZTZiNTBlY2RjOWY2NjAwZDhlZC4uOWRmYTI2MGRjYTZhNzQ2NzI4MDc4MDMwZmU5OTFj
ZDhkNWI0YjdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAxLTEyICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBtYWtlIEhUTUwgZWRpdGluZyBwcmVzZXJ2ZSBub2RlIGlkZW50aXR5IHdoZW4gbm9kZSBuZXN0
aW5nIGxldmVsIGNoYW5nZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NjE4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaW5zcGVjdG9yL0RPTUVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01FZGl0b3I6OnBhdGNoRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRWRpdG9yOjpw
YXRjaE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRWRpdG9yOjppbm5lclBhdGNoSFRNTEVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRWRpdG9yOjppbm5lclBhdGNoTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01FZGl0b3I6OmRpZmYpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
RWRpdG9yOjppbm5lclBhdGNoQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6RE9NRWRpdG9y
OjpjcmVhdGVEaWdlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRWRpdG9yOjppbnNlcnRCZWZv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRWRpdG9yOjpyZW1vdmVDaGlsZCk6CisgICAgICAg
IChXZWJDb3JlOjpET01FZGl0b3I6Om1hcmtOb2RlQXNVc2VkKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvRE9NRWRpdG9yLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzZXRPdXRlckhUTUwpOgor
CiAyMDEyLTAxLTExICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgUXVlcnlTZWxlY3RvciBzaG91bGQgbm90IGhhdmUgc2lkZSBlZmZlY3QuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9ET01FZGl0b3IuY3BwCmluZGV4IDFlMWYyYzdlMDQxOGEwZThiMzVjNGQ2
MmE3MTBkMjE5YzUxYzY5ZjkuLjQ3Y2EyNzhkYTZmNWNiZmY2ZjgwNGRkMGQ3MTY4MDJjZjlhMmMw
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01FZGl0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01FZGl0b3IuY3BwCkBAIC0zNywxMyArMzcs
MTMgQEAKICNpbmNsdWRlICJCYXNlNjQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5j
bHVkZSAiSFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50UGFyc2VyLmgiCiAj
aW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKICNp
bmNsdWRlICJOb2RlLmgiCiAKKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1NIQTEuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CkBAIC01MiwxMiArNTIsNiBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBTdHJpbmcgZXhjZXB0aW9uRGVzY3JpcHRpb24oRXhjZXB0
aW9uQ29kZSYgZWMpCi17Ci0gICAgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGRlc2NyaXB0aW9u
KGVjKTsKLSAgICByZXR1cm4gZGVzY3JpcHRpb24ubmFtZTsKLX0KLQogc3RydWN0IERPTUVkaXRv
cjo6RGlnZXN0IHsKICAgICBleHBsaWNpdCBEaWdlc3QoTm9kZSogbm9kZSkgOiBtX25vZGUobm9k
ZSkgeyB9CiAKQEAgLTc5LDI3ICs3MywyMSBAQCB2b2lkIERPTUVkaXRvcjo6cGF0Y2hEb2N1bWVu
dChjb25zdCBTdHJpbmcmIG1hcmt1cCkKICAgICBwYXJzZXItPmZpbmlzaCgpOwogICAgIHBhcnNl
ci0+ZGV0YWNoKCk7CiAKLSAgICBFcnJvclN0cmluZyBlcnJvclN0cmluZzsKLSAgICBpbm5lclBh
dGNoSFRNTEVsZW1lbnQoJmVycm9yU3RyaW5nLCBtX2RvY3VtZW50LT5oZWFkKCksIG5ld0RvY3Vt
ZW50LT5oZWFkKCkpOwotICAgIGlmIChlcnJvclN0cmluZy5pc0VtcHR5KCkpCi0gICAgICAgIGlu
bmVyUGF0Y2hIVE1MRWxlbWVudCgmZXJyb3JTdHJpbmcsIG1fZG9jdW1lbnQtPmJvZHkoKSwgbmV3
RG9jdW1lbnQtPmJvZHkoKSk7Ci0KLSAgICBpZiAoZXJyb3JTdHJpbmcuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm47CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgaW5uZXJQYXRjaEhU
TUxFbGVtZW50KG1fZG9jdW1lbnQtPmhlYWQoKSwgbmV3RG9jdW1lbnQtPmhlYWQoKSwgZWMpOwor
ICAgIGlmICghZWMpCisgICAgICAgIGlubmVyUGF0Y2hIVE1MRWxlbWVudChtX2RvY3VtZW50LT5i
b2R5KCksIG5ld0RvY3VtZW50LT5ib2R5KCksIGVjKTsKIAotICAgIC8vIEZhbGwgYmFjayB0byBy
ZXdyaXRlLgotICAgIG1fZG9jdW1lbnQtPndyaXRlKG1hcmt1cCk7Ci0gICAgbV9kb2N1bWVudC0+
Y2xvc2UoKTsKKyAgICBpZiAoZWMpIHsKKyAgICAgICAgLy8gRmFsbCBiYWNrIHRvIHJld3JpdGUu
CisgICAgICAgIG1fZG9jdW1lbnQtPndyaXRlKG1hcmt1cCk7CisgICAgICAgIG1fZG9jdW1lbnQt
PmNsb3NlKCk7CisgICAgfQogfQogCi1Ob2RlKiBET01FZGl0b3I6OnBhdGNoTm9kZShFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgbWFya3VwKQorTm9k
ZSogRE9NRWRpdG9yOjpwYXRjaE5vZGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtYXJrdXAs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEVsZW1lbnQqIHBhcmVudEVsZW1lbnQgPSBub2Rl
LT5wYXJlbnRFbGVtZW50KCk7Ci0gICAgaWYgKCFwYXJlbnRFbGVtZW50KSB7Ci0gICAgICAgICpl
cnJvclN0cmluZyA9ICJDYW4gb25seSBzZXQgb3V0ZXIgSFRNTCB0byBub2RlcyB3aXRoaW4gRWxl
bWVudCI7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQogICAgIE5vZGUqIHByZXZpb3VzU2li
bGluZyA9IG5vZGUtPnByZXZpb3VzU2libGluZygpOwogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBmcmFnbWVudCA9IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShtX2RvY3VtZW50KTsKICAg
ICBmcmFnbWVudC0+cGFyc2VIVE1MKG1hcmt1cCwgcGFyZW50RWxlbWVudCk7CkBAIC0xMDcsNTIg
Kzk1LDQ2IEBAIE5vZGUqIERPTUVkaXRvcjo6cGF0Y2hOb2RlKEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZywgTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtCiAgICAgLy8gQ29tcG9zZSB0aGUgb2xk
IGxpc3QuCiAgICAgVmVjdG9yPE93blB0cjxEaWdlc3Q+ID4gb2xkTGlzdDsKICAgICBmb3IgKE5v
ZGUqIGNoaWxkID0gcGFyZW50RWxlbWVudC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgb2xkTGlzdC5hcHBlbmQoY3JlYXRlRGlnZXN0
KGNoaWxkKSk7CisgICAgICAgIG9sZExpc3QuYXBwZW5kKGNyZWF0ZURpZ2VzdChjaGlsZCwgMCkp
OwogCiAgICAgLy8gQ29tcG9zZSB0aGUgbmV3IGxpc3QuCiAgICAgVmVjdG9yPE93blB0cjxEaWdl
c3Q+ID4gbmV3TGlzdDsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gcGFyZW50RWxlbWVudC0+Zmly
c3RDaGlsZCgpOyBjaGlsZCAhPSBub2RlOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQot
ICAgICAgICBuZXdMaXN0LmFwcGVuZChjcmVhdGVEaWdlc3QoY2hpbGQpKTsKKyAgICAgICAgbmV3
TGlzdC5hcHBlbmQoY3JlYXRlRGlnZXN0KGNoaWxkLCAwKSk7CiAgICAgZm9yIChOb2RlKiBjaGls
ZCA9IGZyYWdtZW50LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2li
bGluZygpKQotICAgICAgICBuZXdMaXN0LmFwcGVuZChjcmVhdGVEaWdlc3QoY2hpbGQpKTsKKyAg
ICAgICAgbmV3TGlzdC5hcHBlbmQoY3JlYXRlRGlnZXN0KGNoaWxkLCAmbV91bnVzZWROb2Rlc01h
cCkpOwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBub2RlLT5uZXh0U2libGluZygpOyBjaGlsZDsg
Y2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgbmV3TGlzdC5hcHBlbmQoY3Jl
YXRlRGlnZXN0KGNoaWxkKSk7CisgICAgICAgIG5ld0xpc3QuYXBwZW5kKGNyZWF0ZURpZ2VzdChj
aGlsZCwgMCkpOwogCi0gICAgaW5uZXJQYXRjaENoaWxkcmVuKGVycm9yU3RyaW5nLCBwYXJlbnRF
bGVtZW50LCBvbGRMaXN0LCBuZXdMaXN0KTsKLSAgICBpZiAoIWVycm9yU3RyaW5nLT5pc0VtcHR5
KCkpIHsKKyAgICBpbm5lclBhdGNoQ2hpbGRyZW4ocGFyZW50RWxlbWVudCwgb2xkTGlzdCwgbmV3
TGlzdCwgZWMpOworICAgIGlmIChlYykgewogICAgICAgICAvLyBGYWxsIGJhY2sgdG8gdG90YWwg
cmVwbGFjZS4KLSAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgICAgIGVjID0gMDsK
ICAgICAgICAgcGFyZW50RWxlbWVudC0+cmVwbGFjZUNoaWxkKGZyYWdtZW50LnJlbGVhc2UoKSwg
bm9kZSwgZWMpOwotICAgICAgICBpZiAoZWMpIHsKLSAgICAgICAgICAgICplcnJvclN0cmluZyA9
IGV4Y2VwdGlvbkRlc2NyaXB0aW9uKGVjKTsKKyAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIHByZXZpb3VzU2libGluZyA/
IHByZXZpb3VzU2libGluZy0+bmV4dFNpYmxpbmcoKSA6IHBhcmVudEVsZW1lbnQtPmZpcnN0Q2hp
bGQoKTsKIH0KIAotdm9pZCBET01FZGl0b3I6OmlubmVyUGF0Y2hIVE1MRWxlbWVudChFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIEhUTUxFbGVtZW50KiBvbGRFbGVtZW50LCBIVE1MRWxlbWVudCog
bmV3RWxlbWVudCkKK3ZvaWQgRE9NRWRpdG9yOjppbm5lclBhdGNoSFRNTEVsZW1lbnQoSFRNTEVs
ZW1lbnQqIG9sZEVsZW1lbnQsIEhUTUxFbGVtZW50KiBuZXdFbGVtZW50LCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBpZiAob2xkRWxlbWVudCkgIHsKICAgICAgICAgaWYgKG5ld0VsZW1lbnQp
IHsKLSAgICAgICAgICAgIE93blB0cjxEaWdlc3Q+IG9sZEluZm8gPSBjcmVhdGVEaWdlc3Qob2xk
RWxlbWVudCk7Ci0gICAgICAgICAgICBPd25QdHI8RGlnZXN0PiBuZXdJbmZvID0gY3JlYXRlRGln
ZXN0KG5ld0VsZW1lbnQpOwotICAgICAgICAgICAgaW5uZXJQYXRjaE5vZGUoZXJyb3JTdHJpbmcs
IG9sZEluZm8uZ2V0KCksIG5ld0luZm8uZ2V0KCkpOwotICAgICAgICAgICAgaWYgKCFlcnJvclN0
cmluZy0+aXNFbXB0eSgpKQorICAgICAgICAgICAgT3duUHRyPERpZ2VzdD4gb2xkSW5mbyA9IGNy
ZWF0ZURpZ2VzdChvbGRFbGVtZW50LCAwKTsKKyAgICAgICAgICAgIE93blB0cjxEaWdlc3Q+IG5l
d0luZm8gPSBjcmVhdGVEaWdlc3QobmV3RWxlbWVudCwgJm1fdW51c2VkTm9kZXNNYXApOworICAg
ICAgICAgICAgaW5uZXJQYXRjaE5vZGUob2xkSW5mby5nZXQoKSwgbmV3SW5mby5nZXQoKSwgZWMp
OworICAgICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgICAgICBvbGRFbGVtZW50LT5yZW1vdmVBbGxDaGlsZHJlbigpOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIGlmIChuZXdFbGVtZW50KSB7Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOworICAgIGlmIChuZXdFbGVtZW50KQogICAgICAgICBtX2RvY3VtZW50LT5kb2N1bWVu
dEVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQobmV3RWxlbWVudCwgZWMpOwotICAgICAgICBpZiAoZWMp
Ci0gICAgICAgICAgICAqZXJyb3JTdHJpbmcgPSBleGNlcHRpb25EZXNjcmlwdGlvbihlYyk7Ci0g
ICAgfQogfQogCi12b2lkIERPTUVkaXRvcjo6aW5uZXJQYXRjaE5vZGUoRXJyb3JTdHJpbmcqIGVy
cm9yU3RyaW5nLCBEaWdlc3QqIG9sZERpZ2VzdCwgRGlnZXN0KiBuZXdEaWdlc3QpCit2b2lkIERP
TUVkaXRvcjo6aW5uZXJQYXRjaE5vZGUoRGlnZXN0KiBvbGREaWdlc3QsIERpZ2VzdCogbmV3RGln
ZXN0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAob2xkRGlnZXN0LT5tX3NoYTEgPT0g
bmV3RGlnZXN0LT5tX3NoYTEpCiAgICAgICAgIHJldHVybjsKQEAgLTE2MSwyMCArMTQzLDE0IEBA
IHZvaWQgRE9NRWRpdG9yOjppbm5lclBhdGNoTm9kZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IERpZ2VzdCogb2xkRGlnZXN0LCBEaWdlCiAgICAgTm9kZSogbmV3Tm9kZSA9IG5ld0RpZ2VzdC0+
bV9ub2RlOwogCiAgICAgaWYgKG5ld05vZGUtPm5vZGVUeXBlKCkgIT0gb2xkTm9kZS0+bm9kZVR5
cGUoKSB8fCBuZXdOb2RlLT5ub2RlTmFtZSgpICE9IG9sZE5vZGUtPm5vZGVOYW1lKCkpIHsKLSAg
ICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAgIG9sZE5vZGUtPnBhcmVudE5vZGUo
KS0+cmVwbGFjZUNoaWxkKG5ld05vZGUsIG9sZE5vZGUsIGVjKTsKLSAgICAgICAgaWYgKGVjKQot
ICAgICAgICAgICAgKmVycm9yU3RyaW5nID0gZXhjZXB0aW9uRGVzY3JpcHRpb24oZWMpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaWYg
KG9sZE5vZGUtPm5vZGVWYWx1ZSgpICE9IG5ld05vZGUtPm5vZGVWYWx1ZSgpKQogICAgICAgICBv
bGROb2RlLT5zZXROb2RlVmFsdWUobmV3Tm9kZS0+bm9kZVZhbHVlKCksIGVjKTsKLSAgICBpZiAo
ZWMpIHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gZXhjZXB0aW9uRGVzY3JpcHRpb24oZWMpOwor
ICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIGlmIChvbGROb2RlLT5u
b2RlVHlwZSgpICE9IE5vZGU6OkVMRU1FTlRfTk9ERSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTk4
LDE5ICsxNzQsNDEgQEAgdm9pZCBET01FZGl0b3I6OmlubmVyUGF0Y2hOb2RlKEVycm9yU3RyaW5n
KiBlcnJvclN0cmluZywgRGlnZXN0KiBvbGREaWdlc3QsIERpZ2UKICAgICAgICAgfQogICAgIH0K
IAotICAgIGlubmVyUGF0Y2hDaGlsZHJlbihlcnJvclN0cmluZywgb2xkRWxlbWVudCwgb2xkRGln
ZXN0LT5tX2NoaWxkcmVuLCBuZXdEaWdlc3QtPm1fY2hpbGRyZW4pOworICAgIGlubmVyUGF0Y2hD
aGlsZHJlbihvbGRFbGVtZW50LCBvbGREaWdlc3QtPm1fY2hpbGRyZW4sIG5ld0RpZ2VzdC0+bV9j
aGlsZHJlbiwgZWMpOworICAgIG1fdW51c2VkTm9kZXNNYXAucmVtb3ZlKG5ld0RpZ2VzdC0+bV9z
aGExKTsKIH0KIAogcGFpcjxET01FZGl0b3I6OlJlc3VsdE1hcCwgRE9NRWRpdG9yOjpSZXN1bHRN
YXA+Ci1ET01FZGl0b3I6OmRpZmYoVmVjdG9yPE93blB0cjxEaWdlc3Q+ID4mIG9sZExpc3QsIFZl
Y3RvcjxPd25QdHI8RGlnZXN0PiA+JiBuZXdMaXN0KQorRE9NRWRpdG9yOjpkaWZmKGNvbnN0IFZl
Y3RvcjxPd25QdHI8RGlnZXN0PiA+JiBvbGRMaXN0LCBjb25zdCBWZWN0b3I8T3duUHRyPERpZ2Vz
dD4gPiYgbmV3TGlzdCkKIHsKICAgICBSZXN1bHRNYXAgbmV3TWFwKG5ld0xpc3Quc2l6ZSgpKTsK
ICAgICBSZXN1bHRNYXAgb2xkTWFwKG9sZExpc3Quc2l6ZSgpKTsKIAotICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgb2xkTWFwLnNpemUoKTsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgb2xkTWFwLnNpemUoKTsgKytpKSB7CiAgICAgICAgIG9sZE1hcFtpXS5maXJzdCA9IDA7Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuZXdNYXAuc2l6ZSgpOyArK2kpCisgICAgICAgIG9s
ZE1hcFtpXS5zZWNvbmQgPSAtMTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG5ld01hcC5zaXplKCk7ICsraSkgewogICAgICAgICBuZXdNYXBbaV0uZmlyc3QgPSAwOworICAg
ICAgICBuZXdNYXBbaV0uc2Vjb25kID0gLTE7CisgICAgfQorCisgICAgLy8gVHJpbSBoZWFkIGFu
ZCB0YWlsLgorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2xkTGlzdC5zaXplKCkgJiYgaSA8
IG5ld0xpc3Quc2l6ZSgpICYmIG9sZExpc3RbaV0tPm1fc2hhMSA9PSBuZXdMaXN0W2ldLT5tX3No
YTE7ICsraSkgeworICAgICAgICBvbGRNYXBbaV0uZmlyc3QgPSBvbGRMaXN0W2ldLmdldCgpOwor
ICAgICAgICBvbGRNYXBbaV0uc2Vjb25kID0gaTsKKyAgICAgICAgbmV3TWFwW2ldLmZpcnN0ID0g
bmV3TGlzdFtpXS5nZXQoKTsKKyAgICAgICAgbmV3TWFwW2ldLnNlY29uZCA9IGk7CisgICAgfQor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2xkTGlzdC5zaXplKCkgJiYgaSA8IG5ld0xpc3Qu
c2l6ZSgpICYmIG9sZExpc3Rbb2xkTGlzdC5zaXplKCkgLSBpIC0gMV0tPm1fc2hhMSA9PSBuZXdM
aXN0W25ld0xpc3Quc2l6ZSgpIC0gaSAtIDFdLT5tX3NoYTE7ICsraSkgeworICAgICAgICBzaXpl
X3Qgb2xkSW5kZXggPSBvbGRMaXN0LnNpemUoKSAtIGkgLSAxOworICAgICAgICBzaXplX3QgbmV3
SW5kZXggPSBuZXdMaXN0LnNpemUoKSAtIGkgLSAxOworICAgICAgICBvbGRNYXBbb2xkSW5kZXhd
LmZpcnN0ID0gb2xkTGlzdFtvbGRJbmRleF0uZ2V0KCk7CisgICAgICAgIG9sZE1hcFtvbGRJbmRl
eF0uc2Vjb25kID0gbmV3SW5kZXg7CisgICAgICAgIG5ld01hcFtuZXdJbmRleF0uZmlyc3QgPSBu
ZXdMaXN0W25ld0luZGV4XS5nZXQoKTsKKyAgICAgICAgbmV3TWFwW25ld0luZGV4XS5zZWNvbmQg
PSBvbGRJbmRleDsKKyAgICB9CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8
c2l6ZV90PiA+IERpZmZUYWJsZTsKICAgICBEaWZmVGFibGUgbmV3VGFibGU7CkBAIC0yMzMsNyAr
MjMxLDcgQEAgRE9NRWRpdG9yOjpkaWZmKFZlY3RvcjxPd25QdHI8RGlnZXN0PiA+JiBvbGRMaXN0
LCBWZWN0b3I8T3duUHRyPERpZ2VzdD4gPiYgbmV3TGkKICAgICAgICAgRGlmZlRhYmxlOjppdGVy
YXRvciBvbGRJdCA9IG9sZFRhYmxlLmZpbmQobmV3SXQtPmZpcnN0KTsKICAgICAgICAgaWYgKG9s
ZEl0ID09IG9sZFRhYmxlLmVuZCgpIHx8IG9sZEl0LT5zZWNvbmQuc2l6ZSgpICE9IDEpCiAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbWFrZV9wYWlyKG5ld0xpc3RbbmV3SXQtPnNlY29u
ZFswXV0uZ2V0KCksIG9sZEl0LT5zZWNvbmRbMF0pOworCiAgICAgICAgIG5ld01hcFtuZXdJdC0+
c2Vjb25kWzBdXSA9IG1ha2VfcGFpcihuZXdMaXN0W25ld0l0LT5zZWNvbmRbMF1dLmdldCgpLCBv
bGRJdC0+c2Vjb25kWzBdKTsKICAgICAgICAgb2xkTWFwW29sZEl0LT5zZWNvbmRbMF1dID0gbWFr
ZV9wYWlyKG9sZExpc3Rbb2xkSXQtPnNlY29uZFswXV0uZ2V0KCksIG5ld0l0LT5zZWNvbmRbMF0p
OwogICAgIH0KQEAgLTI1OSw2MSArMjU3LDYyIEBAIERPTUVkaXRvcjo6ZGlmZihWZWN0b3I8T3du
UHRyPERpZ2VzdD4gPiYgb2xkTGlzdCwgVmVjdG9yPE93blB0cjxEaWdlc3Q+ID4mIG5ld0xpCiAg
ICAgICAgICAgICBvbGRNYXBbal0gPSBtYWtlX3BhaXIob2xkTGlzdFtqXS5nZXQoKSwgaSAtIDEp
OwogICAgICAgICB9CiAgICAgfQorCiAgICAgcmV0dXJuIG1ha2VfcGFpcihvbGRNYXAsIG5ld01h
cCk7CiB9CiAKLXZvaWQgRE9NRWRpdG9yOjppbm5lclBhdGNoQ2hpbGRyZW4oRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBFbGVtZW50KiBlbGVtZW50LCBWZWN0b3I8T3duUHRyPERpZ2VzdD4gPiYg
b2xkTGlzdCwgVmVjdG9yPE93blB0cjxEaWdlc3Q+ID4mIG5ld0xpc3QpCit2b2lkIERPTUVkaXRv
cjo6aW5uZXJQYXRjaENoaWxkcmVuKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFZlY3RvcjxPd25Q
dHI8RGlnZXN0PiA+JiBvbGRMaXN0LCBjb25zdCBWZWN0b3I8T3duUHRyPERpZ2VzdD4gPiYgbmV3
TGlzdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgLy8gVHJpbSB0YWlsLgotICAgIHNpemVf
dCBvZmZzZXQgPSAwOwotICAgIGZvciAoOyBvZmZzZXQgPCBvbGRMaXN0LnNpemUoKSAmJiBvZmZz
ZXQgPCBuZXdMaXN0LnNpemUoKSAmJiBvbGRMaXN0W29sZExpc3Quc2l6ZSgpIC0gb2Zmc2V0IC0g
MV0tPm1fc2hhMSA9PSBuZXdMaXN0W25ld0xpc3Quc2l6ZSgpIC0gb2Zmc2V0IC0gMV0tPm1fc2hh
MTsgKytvZmZzZXQpIHsgfQotICAgIGlmIChvZmZzZXQgPiAwKSB7Ci0gICAgICAgIG9sZExpc3Qu
cmVzaXplKG9sZExpc3Quc2l6ZSgpIC0gb2Zmc2V0KTsKLSAgICAgICAgbmV3TGlzdC5yZXNpemUo
bmV3TGlzdC5zaXplKCkgLSBvZmZzZXQpOwotICAgIH0KLQotICAgIC8vIFRyaW0gaGVhZC4KLSAg
ICBmb3IgKG9mZnNldCA9IDA7IG9mZnNldCA8IG9sZExpc3Quc2l6ZSgpICYmIG9mZnNldCA8IG5l
d0xpc3Quc2l6ZSgpICYmIG9sZExpc3Rbb2Zmc2V0XS0+bV9zaGExID09IG5ld0xpc3Rbb2Zmc2V0
XS0+bV9zaGExOyArK29mZnNldCkgeyB9Ci0gICAgaWYgKG9mZnNldCA+IDApIHsKLSAgICAgICAg
b2xkTGlzdC5yZW1vdmUoMCwgb2Zmc2V0KTsKLSAgICAgICAgbmV3TGlzdC5yZW1vdmUoMCwgb2Zm
c2V0KTsKLSAgICB9Ci0KICAgICBwYWlyPFJlc3VsdE1hcCwgUmVzdWx0TWFwPiByZXN1bHRNYXBz
ID0gZGlmZihvbGRMaXN0LCBuZXdMaXN0KTsKICAgICBSZXN1bHRNYXAmIG9sZE1hcCA9IHJlc3Vs
dE1hcHMuZmlyc3Q7CiAgICAgUmVzdWx0TWFwJiBuZXdNYXAgPSByZXN1bHRNYXBzLnNlY29uZDsK
IAotICAgIEhhc2hTZXQ8RGlnZXN0Kj4gbWVyZ2VzOworICAgIC8vIDEuIEZpcnN0IHN0cmlwIGV2
ZXJ5dGhpbmcgZXhjZXB0IGZvciB0aGUgbm9kZXMgdGhhdCByZXRhaW4uIENvbGxlY3QgcGVuZGlu
ZyBtZXJnZXMuCisgICAgSGFzaE1hcDxEaWdlc3QqLCBEaWdlc3QqPiBtZXJnZXM7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBvbGRMaXN0LnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlmIChv
bGRNYXBbaV0uZmlyc3QpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAvLyBDaGVj
ayBpZiB0aGlzIGNoYW5nZSBpcyBiZXR3ZWVuIHN0YWJsZSBub2Rlcy4gSWYgaXQgaXMsIGNvbnNp
ZGVyIGl0IGFzICJtb2RpZmllZCIuCi0gICAgICAgIGlmICgoIWkgfHwgb2xkTWFwW2kgLSAxXS5m
aXJzdCkgJiYgKGkgPT0gb2xkTWFwLnNpemUoKSAtIDEgfHwgb2xkTWFwW2kgKyAxXS5maXJzdCkp
IHsKKyAgICAgICAgaWYgKCFtX3VudXNlZE5vZGVzTWFwLmNvbnRhaW5zKG9sZExpc3RbaV0tPm1f
c2hhMSkgJiYgKCFpIHx8IG9sZE1hcFtpIC0gMV0uZmlyc3QpICYmIChpID09IG9sZE1hcC5zaXpl
KCkgLSAxIHx8IG9sZE1hcFtpICsgMV0uZmlyc3QpKSB7CiAgICAgICAgICAgICBzaXplX3QgYW5j
aG9yQ2FuZGlkYXRlID0gaSA/IG9sZE1hcFtpIC0gMV0uc2Vjb25kICsgMSA6IDA7CiAgICAgICAg
ICAgICBzaXplX3QgYW5jaG9yQWZ0ZXIgPSBpID09IG9sZE1hcC5zaXplKCkgLSAxID8gYW5jaG9y
Q2FuZGlkYXRlICsgMSA6IG9sZE1hcFtpICsgMV0uc2Vjb25kOwotICAgICAgICAgICAgaWYgKGFu
Y2hvckFmdGVyIC0gYW5jaG9yQ2FuZGlkYXRlID09IDEgJiYgYW5jaG9yQ2FuZGlkYXRlIDwgbmV3
TGlzdC5zaXplKCkpIHsKLSAgICAgICAgICAgICAgICBpbm5lclBhdGNoTm9kZShlcnJvclN0cmlu
Zywgb2xkTGlzdFtpXS5nZXQoKSwgbmV3TGlzdFthbmNob3JDYW5kaWRhdGVdLmdldCgpKTsKLSAg
ICAgICAgICAgICAgICBpZiAoIWVycm9yU3RyaW5nLT5pc0VtcHR5KCkpCisgICAgICAgICAgICBp
ZiAoYW5jaG9yQWZ0ZXIgLSBhbmNob3JDYW5kaWRhdGUgPT0gMSAmJiBhbmNob3JDYW5kaWRhdGUg
PCBuZXdMaXN0LnNpemUoKSkKKyAgICAgICAgICAgICAgICBtZXJnZXMuc2V0KG5ld0xpc3RbYW5j
aG9yQ2FuZGlkYXRlXS5nZXQoKSwgb2xkTGlzdFtpXS5nZXQoKSk7CisgICAgICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgICAgICByZW1vdmVDaGlsZChvbGRMaXN0W2ldLmdldCgpLCBlYyk7Cisg
ICAgICAgICAgICAgICAgaWYgKGVjKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZW1vdmVDaGlsZChvbGRM
aXN0W2ldLmdldCgpLCBlYyk7CisgICAgICAgICAgICBpZiAoZWMpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgfQogCi0gICAgICAgICAgICAgICAgbWVyZ2VzLmFkZChu
ZXdMaXN0W2FuY2hvckNhbmRpZGF0ZV0uZ2V0KCkpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICAgICAgZWxlbWVudC0+cmVtb3ZlQ2hpbGQob2xkTGlzdFtpXS0+bV9ub2RlKTsKLSAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBlbGVtZW50LT5yZW1vdmVDaGlsZChvbGRMaXN0W2ld
LT5tX25vZGUpOworICAgIC8vIE1hcmsgcmV0YWluZWQgbm9kZXMgYXMgdXNlZC4KKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG5ld0xpc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG5l
d01hcFtpXS5maXJzdCkKKyAgICAgICAgICAgIG1hcmtOb2RlQXNVc2VkKG5ld01hcFtpXS5maXJz
dCk7CiAgICAgfQogCisgICAgLy8gMi4gUGF0Y2ggbm9kZXMgbWFya2VkIGZvciBtZXJnZS4KKyAg
ICBmb3IgKEhhc2hNYXA8RGlnZXN0KiwgRGlnZXN0Kj46Oml0ZXJhdG9yIGl0ID0gbWVyZ2VzLmJl
Z2luKCk7IGl0ICE9IG1lcmdlcy5lbmQoKTsgKytpdCkgeworICAgICAgICBpbm5lclBhdGNoTm9k
ZShpdC0+c2Vjb25kLCBpdC0+Zmlyc3QsIGVjKTsKKyAgICAgICAgaWYgKGVjKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIDMuIEluc2VydCBtaXNzaW5nIG5vZGVzLgogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmV3TWFwLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlm
IChuZXdNYXBbaV0uZmlyc3QgfHwgbWVyZ2VzLmNvbnRhaW5zKG5ld0xpc3RbaV0uZ2V0KCkpKQog
ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgICAgIGVsZW1lbnQtPmluc2VydEJlZm9yZShuZXdMaXN0W2ldLT5tX25vZGUsIGVsZW1lbnQt
PmNoaWxkTm9kZShpICsgb2Zmc2V0KSwgZWMpOwotICAgICAgICBpZiAoZWMpIHsKLSAgICAgICAg
ICAgICplcnJvclN0cmluZyA9IGV4Y2VwdGlvbkRlc2NyaXB0aW9uKGVjKTsKKyAgICAgICAgaW5z
ZXJ0QmVmb3JlKGVsZW1lbnQsIG5ld0xpc3RbaV0uZ2V0KCksIGVsZW1lbnQtPmNoaWxkTm9kZShp
KSwgZWMpOworICAgICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
ICAgICB9CiB9CiAKQEAgLTMyMyw3ICszMjIsNyBAQCBzdGF0aWMgdm9pZCBhZGRTdHJpbmdUb1NI
QTEoU0hBMSYgc2hhMSwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgc2hhMS5hZGRCeXRlcyhy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihjU3RyaW5nLmRhdGEoKSksIGNTdHJpbmcu
bGVuZ3RoKCkpOwogfQogCi1QYXNzT3duUHRyPERPTUVkaXRvcjo6RGlnZXN0PiBET01FZGl0b3I6
OmNyZWF0ZURpZ2VzdChOb2RlKiBub2RlKQorUGFzc093blB0cjxET01FZGl0b3I6OkRpZ2VzdD4g
RE9NRWRpdG9yOjpjcmVhdGVEaWdlc3QoTm9kZSogbm9kZSwgVW51c2VkTm9kZXNNYXAqIHVudXNl
ZE5vZGVzTWFwKQogewogICAgIERpZ2VzdCogZGlnZXN0ID0gbmV3IERpZ2VzdChub2RlKTsKIApA
QCAtMzM3LDcgKzMzNiw3IEBAIFBhc3NPd25QdHI8RE9NRWRpdG9yOjpEaWdlc3Q+IERPTUVkaXRv
cjo6Y3JlYXRlRGlnZXN0KE5vZGUqIG5vZGUpCiAgICAgaWYgKG5vZGUtPm5vZGVUeXBlKCkgPT0g
Tm9kZTo6RUxFTUVOVF9OT0RFKSB7CiAgICAgICAgIE5vZGUqIGNoaWxkID0gbm9kZS0+Zmlyc3RD
aGlsZCgpOwogICAgICAgICB3aGlsZSAoY2hpbGQpIHsKLSAgICAgICAgICAgIE93blB0cjxEaWdl
c3Q+IGNoaWxkSW5mbyA9IGNyZWF0ZURpZ2VzdChjaGlsZCk7CisgICAgICAgICAgICBPd25QdHI8
RGlnZXN0PiBjaGlsZEluZm8gPSBjcmVhdGVEaWdlc3QoY2hpbGQsIHVudXNlZE5vZGVzTWFwKTsK
ICAgICAgICAgICAgIGFkZFN0cmluZ1RvU0hBMShzaGExLCBjaGlsZEluZm8tPm1fc2hhMSk7CiAg
ICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpOwogICAgICAgICAgICAgZGln
ZXN0LT5tX2NoaWxkcmVuLmFwcGVuZChjaGlsZEluZm8ucmVsZWFzZSgpKTsKQEAgLTM2Myw5ICsz
NjIsNTMgQEAgUGFzc093blB0cjxET01FZGl0b3I6OkRpZ2VzdD4gRE9NRWRpdG9yOjpjcmVhdGVE
aWdlc3QoTm9kZSogbm9kZSkKICAgICBWZWN0b3I8dWludDhfdCwgMjA+IGhhc2g7CiAgICAgc2hh
MS5jb21wdXRlSGFzaChoYXNoKTsKICAgICBkaWdlc3QtPm1fc2hhMSA9IGJhc2U2NEVuY29kZShy
ZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihoYXNoLmRhdGEoKSksIDEwKTsKKyAgICBpZiAo
dW51c2VkTm9kZXNNYXApCisgICAgICAgIHVudXNlZE5vZGVzTWFwLT5hZGQoZGlnZXN0LT5tX3No
YTEsIGRpZ2VzdCk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKGRpZ2VzdCk7CiB9CiAKK3ZvaWQgRE9N
RWRpdG9yOjppbnNlcnRCZWZvcmUoRWxlbWVudCogcGFyZW50RWxlbWVudCwgRGlnZXN0KiBkaWdl
c3QsIE5vZGUqIGFuY2hvciwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgcGFyZW50RWxlbWVu
dC0+aW5zZXJ0QmVmb3JlKGRpZ2VzdC0+bV9ub2RlLCBhbmNob3IsIGVjKTsKKyAgICBtYXJrTm9k
ZUFzVXNlZChkaWdlc3QpOworfQorCit2b2lkIERPTUVkaXRvcjo6cmVtb3ZlQ2hpbGQoRGlnZXN0
KiBvbGREaWdlc3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIFJlZlB0cjxOb2RlPiBvbGRO
b2RlID0gb2xkRGlnZXN0LT5tX25vZGU7CisgICAgb2xkTm9kZS0+cGFyZW50Tm9kZSgpLT5yZW1v
dmVDaGlsZChvbGROb2RlLmdldCgpLCBlYyk7CisKKyAgICAvLyBEaWZmIHdvcmtzIHdpdGhpbiBs
ZXZlbHMuIEluIG9yZGVyIG5vdCB0byBsb3NlIHRoZSBub2RlIGlkZW50aXR5IHdoZW4gdXNlcgor
ICAgIC8vIHByZXBlbmRzIGhpcyBIVE1MIHdpdGggIjxkaXY+IiAoaS5lLiBhbGwgbm9kZXMgYXJl
IHNoaWZ0ZWQgdG8gdGhlIG5leHQgbmVzdGVkIGxldmVsKSwKKyAgICAvLyBwcmlvciB0byBkcm9w
cGluZyB0aGUgb3JpZ2luYWwgbm9kZSBvbiB0aGUgZmxvb3IsIGNoZWNrIHdoZXRoZXIgbmV3IERP
TSBoYXMgYSBkaWdlc3QKKyAgICAvLyB3aXRoIG1hdGNoaW5nIHNoYTEuIElmIGl0IGRvZXMsIHJl
cGxhY2UgaXQgd2l0aCB0aGUgb3JpZ2luYWwgRE9NIGNodW5rLiBDaGFuY2VzIGFyZQorICAgIC8v
IGhpZ2ggdGhhdCBpdCB3aWxsIGdldCBtZXJnZWQgYmFjayBpbnRvIHRoZSBvcmlnaW5hbCBET00g
ZHVyaW5nIHRoZSBmdXJ0aGVyIHBhdGNoaW5nLgorCisgICAgVW51c2VkTm9kZXNNYXA6Oml0ZXJh
dG9yIGl0ID0gbV91bnVzZWROb2Rlc01hcC5maW5kKG9sZERpZ2VzdC0+bV9zaGExKTsKKyAgICBp
ZiAoaXQgIT0gbV91bnVzZWROb2Rlc01hcC5lbmQoKSkgeworICAgICAgICBEaWdlc3QqIG5ld0Rp
Z2VzdCA9IGl0LT5zZWNvbmQ7CisgICAgICAgIE5vZGUqIG5ld05vZGUgPSBuZXdEaWdlc3QtPm1f
bm9kZTsKKyAgICAgICAgbmV3Tm9kZS0+cGFyZW50Tm9kZSgpLT5yZXBsYWNlQ2hpbGQob2xkTm9k
ZSwgbmV3Tm9kZSwgZWMpOworICAgICAgICBtYXJrTm9kZUFzVXNlZChuZXdEaWdlc3QpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvbGREaWdl
c3QtPm1fY2hpbGRyZW4uc2l6ZSgpOyArK2kpCisgICAgICAgIHJlbW92ZUNoaWxkKG9sZERpZ2Vz
dC0+bV9jaGlsZHJlbltpXS5nZXQoKSwgZWMpOworfQorCit2b2lkIERPTUVkaXRvcjo6bWFya05v
ZGVBc1VzZWQoRGlnZXN0KiBkaWdlc3QpCit7CisgICAgRGVxdWU8RGlnZXN0Kj4gcXVldWU7Cisg
ICAgcXVldWUuYXBwZW5kKGRpZ2VzdCk7CisgICAgd2hpbGUgKCFxdWV1ZS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgRGlnZXN0KiBmaXJzdCA9IHF1ZXVlLnRha2VGaXJzdCgpOworICAgICAgICBtX3Vu
dXNlZE5vZGVzTWFwLnJlbW92ZShmaXJzdC0+bV9zaGExKTsKKyAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBmaXJzdC0+bV9jaGlsZHJlbi5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIHF1
ZXVlLmFwcGVuZChmaXJzdC0+bV9jaGlsZHJlbltpXS5nZXQoKSk7CisgICAgfQorfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTUVkaXRvci5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0RPTUVkaXRvci5oCmluZGV4IDE5YWYyNWU1YTdmMWUzNDk5YTVkOWNjOTNk
NTMyM2IxNzIwZGMzMGUuLjcxOWRhNjVmYjFhNzMxNDVmOTU5MWYyZTgyOWFkOGNmOWQ4YzgwNzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01FZGl0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NRWRpdG9yLmgKQEAgLTMxLDYgKzMxLDkgQEAKICNp
Zm5kZWYgRE9NRWRpdG9yX2gKICNkZWZpbmUgRE9NRWRpdG9yX2gKIAorI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKKworI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgpAQCAtNDUsOCArNDgsNiBAQCBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIE5hbWVkTm9k
ZU1hcDsKIGNsYXNzIE5vZGU7CiAKLXR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwotCiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKIAogY2xhc3MgRE9NRWRpdG9yIHsKQEAgLTU1LDE4ICs1NiwyNSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+RE9NRWRpdG9yKCk7CiAKICAgICB2b2lkIHBhdGNoRG9j
dW1lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXApOwotICAgIE5vZGUqIHBhdGNoTm9kZShFcnJvclN0
cmluZyosIE5vZGUqLCBjb25zdCBTdHJpbmcmIG1hcmt1cCk7CisgICAgTm9kZSogcGF0Y2hOb2Rl
KE5vZGUqLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgRXhjZXB0aW9uQ29kZSYpOwogCiBwcml2YXRl
OgogICAgIHN0cnVjdCBEaWdlc3Q7CiAgICAgdHlwZWRlZiBWZWN0b3I8cGFpcjxEaWdlc3QqLCBz
aXplX3Q+ID4gUmVzdWx0TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIERpZ2VzdCo+
IFVudXNlZE5vZGVzTWFwOworCisgICAgdm9pZCBpbm5lclBhdGNoSFRNTEVsZW1lbnQoSFRNTEVs
ZW1lbnQqIG9sZEVsZW1lbnQsIEhUTUxFbGVtZW50KiBuZXdFbGVtZW50LCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgdm9pZCBpbm5lclBhdGNoTm9kZShEaWdlc3QqIG9sZE5vZGUsIERpZ2VzdCogbmV3
Tm9kZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0ZDo6cGFpcjxSZXN1bHRNYXAsIFJlc3VsdE1h
cD4gZGlmZihjb25zdCBWZWN0b3I8T3duUHRyPERpZ2VzdD4gPiYgb2xkQ2hpbGRyZW4sIGNvbnN0
IFZlY3RvcjxPd25QdHI8RGlnZXN0PiA+JiBuZXdDaGlsZHJlbik7CisgICAgdm9pZCBpbm5lclBh
dGNoQ2hpbGRyZW4oRWxlbWVudCosIGNvbnN0IFZlY3RvcjxPd25QdHI8RGlnZXN0PiA+JiBvbGRD
aGlsZHJlbiwgY29uc3QgVmVjdG9yPE93blB0cjxEaWdlc3Q+ID4mIG5ld0NoaWxkcmVuLCBFeGNl
cHRpb25Db2RlJik7CisgICAgUGFzc093blB0cjxEaWdlc3Q+IGNyZWF0ZURpZ2VzdChOb2RlKiwg
VW51c2VkTm9kZXNNYXAqKTsKKyAgICB2b2lkIGluc2VydEJlZm9yZShFbGVtZW50KiBwYXJlbnRF
bGVtZW50LCBEaWdlc3QqLCBOb2RlKiBhbmNob3IsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHJlbW92ZUNoaWxkKERpZ2VzdCosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIG1hcmtOb2Rl
QXNVc2VkKERpZ2VzdCopOwogCi0gICAgdm9pZCBpbm5lclBhdGNoSFRNTEVsZW1lbnQoRXJyb3JT
dHJpbmcqLCBIVE1MRWxlbWVudCogb2xkRWxlbWVudCwgSFRNTEVsZW1lbnQqIG5ld0VsZW1lbnQp
OwotICAgIHZvaWQgaW5uZXJQYXRjaE5vZGUoRXJyb3JTdHJpbmcqLCBEaWdlc3QqIG9sZE5vZGUs
IERpZ2VzdCogbmV3Tm9kZSk7Ci0gICAgc3RkOjpwYWlyPFJlc3VsdE1hcCwgUmVzdWx0TWFwPiBk
aWZmKFZlY3RvcjxPd25QdHI8RGlnZXN0PiA+JiBvbGRDaGlsZHJlbiwgVmVjdG9yPE93blB0cjxE
aWdlc3Q+ID4mIG5ld0NoaWxkcmVuKTsKLSAgICB2b2lkIGlubmVyUGF0Y2hDaGlsZHJlbihFcnJv
clN0cmluZyosIEVsZW1lbnQqLCBWZWN0b3I8T3duUHRyPERpZ2VzdD4gPiYgb2xkQ2hpbGRyZW4s
IFZlY3RvcjxPd25QdHI8RGlnZXN0PiA+JiBuZXdDaGlsZHJlbik7Ci0gICAgUGFzc093blB0cjxE
aWdlc3Q+IGNyZWF0ZURpZ2VzdChOb2RlKik7CiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisK
KyAgICBVbnVzZWROb2Rlc01hcCBtX3VudXNlZE5vZGVzTWFwOwogfTsKIAogI2VuZGlmIC8vIEVO
QUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcAppbmRleCA2ZThiMjg3MWJmNjdkZTY2NmIzODllZjNjYjg3YWRjZTc5YTg2Y2Jj
Li5hODFiYmEwOTM3MGU4YjZiNzVkMGQ2ZjY3MWM2MmJjNDVkMzgzOTNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTY0MywyMiArNjQz
LDI3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldE91dGVySFRNTChFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0CiAgICAgaWYgKCFub2RlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBOb2RlKiBwYXJlbnROb2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOwotICAg
IGlmICghcGFyZW50Tm9kZSkgewotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRWRpdGluZyBvZiB0
aGUgZGV0YWNoZWQgbm9kZXMgaXMgbm90IHN1cHBvcnRlZCI7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBub2RlLT5vd25lckRvY3VtZW50KCk7CiAg
ICAgaWYgKCFkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSkgewogICAgICAgICAqZXJyb3JTdHJp
bmcgPSAiTm90IGFuIEhUTUwgZG9jdW1lbnQiOwogICAgICAgICByZXR1cm47CiAgICAgfQogCisg
ICAgRWxlbWVudCogcGFyZW50RWxlbWVudCA9IG5vZGUtPnBhcmVudEVsZW1lbnQoKTsKKyAgICBp
ZiAoIXBhcmVudEVsZW1lbnQpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIkNhbiBvbmx5IHNl
dCBvdXRlciBIVE1MIHRvIG5vZGVzIHdpdGhpbiBFbGVtZW50IjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIERPTUVkaXRvciBkb21FZGl0b3IoZG9jdW1lbnQpOwotICAgIE5vZGUqIG5l
d05vZGUgPSBkb21FZGl0b3IucGF0Y2hOb2RlKGVycm9yU3RyaW5nLCBub2RlLCBvdXRlckhUTUwp
OwotICAgIGlmICghZXJyb3JTdHJpbmctPmlzRW1wdHkoKSkKKworICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOworICAgIE5vZGUqIG5ld05vZGUgPSBkb21FZGl0b3IucGF0Y2hOb2RlKG5vZGUsIG91
dGVySFRNTCwgZWMpOworICAgIGlmIChlYykgeworICAgICAgICBFeGNlcHRpb25Db2RlRGVzY3Jp
cHRpb24gZGVzY3JpcHRpb24oZWMpOworICAgICAgICAqZXJyb3JTdHJpbmcgPSBkZXNjcmlwdGlv
bi5uYW1lOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgYm9vbCByZXF1aXJlc1RvdGFs
VXBkYXRlID0gbm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIChub2RlLT5ub2RlTmFtZSgpID09ICJI
VE1MIiB8fCBub2RlLT5ub2RlTmFtZSgpID09ICJCT0RZIiB8fCBub2RlLT5ub2RlTmFtZSgpID09
ICJIRUFEIik7CiAgICAgaWYgKHJlcXVpcmVzVG90YWxVcGRhdGUpIHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MzRjNmJl
Y2I3YTExYjAzYzk1YmNlNjg2N2Q1ZWRjYzU5OTVkNzUzLi45NWM0OWQ4N2IxNWQzM2Y0MDFkNGEy
NGFmYzRiNmFiOThiYmRmYTMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDEtMTIgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IG1ha2UgSFRNTCBlZGl0aW5nIHByZXNlcnZlIG5vZGUgaWRlbnRpdHkgd2hlbiBub2RlIG5l
c3RpbmcgbGV2ZWwgY2hhbmdlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc2MTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC5odG1sOgor
CiAyMDEyLTAxLTExICBNaWtlIExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgYmxvY2sgbWFzayBvdmVybGF5IHRlc3QgZm9yIENTUzMgY2FsYwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC1leHBl
Y3RlZC50eHQKaW5kZXggZGU0NTMwODc0MDkzYTVkYjIyOTUzYzgzZjhjNDkzNTU1NmQwY2YxYy4u
ZGE0NTg1OGZlZjRkMjcwNDU0Yjc4YTI5YmM1YzFhYzliNjNjNmQxNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL3NldC1vdXRlci1odG1sLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvc2V0LW91dGVyLWh0bWwtZXhwZWN0
ZWQudHh0CkBAIC00LDcgKzQsOSBAQCBUZXN0cyBET01BZ2VudC5zZXRPdXRlckhUTUwgcHJvdG9j
b2wgbWV0aG9kLgogUnVubmluZzogdGVzdFNldFVwCiAKIFJ1bm5pbmc6IHRlc3RDaGFuZ2VDaGFy
YWN0ZXJEYXRhCi1SZXBsYWNpbmcgJ0dldHRpbmcgaW52b2x2ZWQnIHdpdGggJ0dldHRpbmcgbm90
IGludm9sdmVkJyBhbmQgYmFjaycKK1JlcGxhY2luZyAnR2V0dGluZyBpbnZvbHZlZCcgd2l0aCAn
R2V0dGluZyBub3QgaW52b2x2ZWQnCisKK1dyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5CiBFdmVu
dCBDaGFyYWN0ZXJEYXRhTW9kaWZpZWQ6IAogPT09PT09PT09PTg8PT09PT09PT09PQogPGRpdiBp
ZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KQEAgLTEzLDEyICsxNSwxOSBAQCBF
dmVudCBDaGFyYWN0ZXJEYXRhTW9kaWZpZWQ6CiAKIDxoMj5HZXR0aW5nIG5vdCBpbnZvbHZlZDwv
aDI+CiA8YSBocmVmPSJodHRwOi8vbmlnaHRseS53ZWJraXQub3JnLyI+PC9hPgotPHA+VGhlcmUg
YXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgorPHAgaWQ9ImlkZW50
aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Cis8
dWw+CisgICA8bGk+PC9saT4KKzwvdWw+CiA8dWw+Ci0gICA8bGk+PGEgaHJlZj0iaHR0cDovL25p
Z2h0bHkud2Via2l0Lm9yZy8iPmRvd25sb2FkIHRoZSBsYXRlc3QgbmlnaHRseSBidWlsZDwvYT48
L2xpPgorICAgPGxpPjwvbGk+CiA8L3VsPgogPC9kaXY+CiA9PT09PT09PT09Pjg9PT09PT09PT09
CisKK0JyaW5naW5nIHRoaW5ncyBiYWNrCisKK1dyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5CiBF
dmVudCBDaGFyYWN0ZXJEYXRhTW9kaWZpZWQ6IAogPT09PT09PT09PTg8PT09PT09PT09PQogPGRp
diBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KQEAgLTI3LDE4ICszNiwyNyBA
QCBFdmVudCBDaGFyYWN0ZXJEYXRhTW9kaWZpZWQ6CiAKIDxoMj5HZXR0aW5nIGludm9sdmVkPC9o
Mj4KIDxhIGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj48L2E+Ci08cD5UaGVyZSBh
cmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Cis8cCBpZD0iaWRlbnRp
dHkiPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KKzx1
bD4KKyAgIDxsaT48L2xpPgorPC91bD4KIDx1bD4KLSAgIDxsaT48YSBocmVmPSJodHRwOi8vbmln
aHRseS53ZWJraXQub3JnLyI+ZG93bmxvYWQgdGhlIGxhdGVzdCBuaWdodGx5IGJ1aWxkPC9hPjwv
bGk+CisgICA8bGk+PC9saT4KIDwvdWw+CiA8L2Rpdj4KID09PT09PT09PT0+OD09PT09PT09PT0K
IAorCisKKworCiBSdW5uaW5nOiB0ZXN0Q2hhbmdlQXR0cmlidXRlcwotUmVwbGFjaW5nICc8YSBo
cmVmJyB3aXRoICc8YSBmb289ImJhciIgaHJlZicgYW5kIGJhY2snCi1FdmVudCBBdHRyUmVtb3Zl
ZDogQQorUmVwbGFjaW5nICc8YSBocmVmJyB3aXRoICc8YSBmb289ImJhciIgaHJlZicKKworV3Jh
cHBlciBpZGVudGl0eTogaWRlbnRpdHkKIEV2ZW50IEF0dHJNb2RpZmllZDogQQogRXZlbnQgQXR0
ck1vZGlmaWVkOiBBCitFdmVudCBBdHRyUmVtb3ZlZDogQQogPT09PT09PT09PTg8PT09PT09PT09
PQogPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KIDxoMj5XZWxjb21l
IHRvIHRoZSB3ZWJzaXRlIGZvciB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFByb2plY3QhPC9oMj4K
QEAgLTQ2LDE1ICs2NCwyMiBAQCBFdmVudCBBdHRyTW9kaWZpZWQ6IEEKIAogPGgyPkdldHRpbmcg
aW52b2x2ZWQ8L2gyPgogPGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8iPjwvYT4K
LTxwPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KKzxw
IGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBj
YW46PC9wPgogPHVsPgotICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcv
Ij5kb3dubG9hZCB0aGUgbGF0ZXN0IG5pZ2h0bHkgYnVpbGQ8L2E+PC9saT4KKyAgIDxsaT48L2xp
PgorPC91bD4KKzx1bD4KKyAgIDxsaT48L2xpPgogPC91bD4KIDwvZGl2PgogPT09PT09PT09PT44
PT09PT09PT09PQorCitCcmluZ2luZyB0aGluZ3MgYmFjaworCitXcmFwcGVyIGlkZW50aXR5OiBp
ZGVudGl0eQorRXZlbnQgQXR0ck1vZGlmaWVkOiBBCiBFdmVudCBBdHRyUmVtb3ZlZDogQQogRXZl
bnQgQXR0clJlbW92ZWQ6IEEKLUV2ZW50IEF0dHJNb2RpZmllZDogQQogPT09PT09PT09PTg8PT09
PT09PT09PQogPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KIDxoMj5X
ZWxjb21lIHRvIHRoZSB3ZWJzaXRlIGZvciB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFByb2plY3Qh
PC9oMj4KQEAgLTYyLDE1ICs4NywyNCBAQCBFdmVudCBBdHRyTW9kaWZpZWQ6IEEKIAogPGgyPkdl
dHRpbmcgaW52b2x2ZWQ8L2gyPgogPGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8i
PjwvYT4KLTxwPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwv
cD4KKzxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQu
IFlvdSBjYW46PC9wPgorPHVsPgorICAgPGxpPjwvbGk+Cis8L3VsPgogPHVsPgotICAgPGxpPjxh
IGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj5kb3dubG9hZCB0aGUgbGF0ZXN0IG5p
Z2h0bHkgYnVpbGQ8L2E+PC9saT4KKyAgIDxsaT48L2xpPgogPC91bD4KIDwvZGl2PgogPT09PT09
PT09PT44PT09PT09PT09PQogCisKKworCisKIFJ1bm5pbmc6IHRlc3RSZW1vdmVMYXN0Q2hpbGQK
LVJlcGxhY2luZyAnR2V0dGluZyBpbnZvbHZlZCcgd2l0aCAnJyBhbmQgYmFjaycKK1JlcGxhY2lu
ZyAnR2V0dGluZyBpbnZvbHZlZCcgd2l0aCAnJworCitXcmFwcGVyIGlkZW50aXR5OiBpZGVudGl0
eQogRXZlbnQgTm9kZVJlbW92ZWQ6IAogPT09PT09PT09PTg8PT09PT09PT09PQogPGRpdiBpZD0i
Y29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KQEAgLTc5LDEyICsxMTMsMTkgQEAgRXZl
bnQgTm9kZVJlbW92ZWQ6CiAKIDxoMj48L2gyPgogPGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Vi
a2l0Lm9yZy8iPjwvYT4KLTxwPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZ
b3UgY2FuOjwvcD4KKzxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQg
aW52b2x2ZWQuIFlvdSBjYW46PC9wPgogPHVsPgotICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9uaWdo
dGx5LndlYmtpdC5vcmcvIj5kb3dubG9hZCB0aGUgbGF0ZXN0IG5pZ2h0bHkgYnVpbGQ8L2E+PC9s
aT4KKyAgIDxsaT48L2xpPgorPC91bD4KKzx1bD4KKyAgIDxsaT48L2xpPgogPC91bD4KIDwvZGl2
PgogPT09PT09PT09PT44PT09PT09PT09PQorCitCcmluZ2luZyB0aGluZ3MgYmFjaworCitXcmFw
cGVyIGlkZW50aXR5OiBpZGVudGl0eQogRXZlbnQgTm9kZUluc2VydGVkOiAKID09PT09PT09PT04
PD09PT09PT09PT0KIDxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CkBA
IC05MywxNyArMTM0LDI3IEBAIEV2ZW50IE5vZGVJbnNlcnRlZDoKIAogPGgyPkdldHRpbmcgaW52
b2x2ZWQ8L2gyPgogPGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8iPjwvYT4KLTxw
PlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KKzxwIGlk
PSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46
PC9wPgogPHVsPgotICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj5k
b3dubG9hZCB0aGUgbGF0ZXN0IG5pZ2h0bHkgYnVpbGQ8L2E+PC9saT4KKyAgIDxsaT48L2xpPgor
PC91bD4KKzx1bD4KKyAgIDxsaT48L2xpPgogPC91bD4KIDwvZGl2PgogPT09PT09PT09PT44PT09
PT09PT09PQogCisKKworCisKIFJ1bm5pbmc6IHRlc3RTcGxpdE5vZGUKLVJlcGxhY2luZyAnR2V0
dGluZyBpbnZvbHZlZCcgd2l0aCAnR2V0dGluZzwvaDI+PGgyPmludm9sdmVkJyBhbmQgYmFjaycK
LUV2ZW50IENoYXJhY3RlckRhdGFNb2RpZmllZDogCitSZXBsYWNpbmcgJ0dldHRpbmcgaW52b2x2
ZWQnIHdpdGggJ0dldHRpbmc8L2gyPjxoMj5pbnZvbHZlZCcKKworV3JhcHBlciBpZGVudGl0eTog
aWRlbnRpdHkKIEV2ZW50IE5vZGVJbnNlcnRlZDogSDIKK0V2ZW50IE5vZGVJbnNlcnRlZDogSDIK
K0V2ZW50IE5vZGVSZW1vdmVkOiBIMgogPT09PT09PT09PTg8PT09PT09PT09PQogPGRpdiBpZD0i
Y29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KIDxoMj5XZWxjb21lIHRvIHRoZSB3ZWJz
aXRlIGZvciB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFByb2plY3QhPC9oMj4KQEAgLTExMSwxNSAr
MTYyLDIyIEBAIEV2ZW50IE5vZGVJbnNlcnRlZDogSDIKIAogPGgyPkdldHRpbmc8L2gyPjxoMj5p
bnZvbHZlZDwvaDI+CiA8YSBocmVmPSJodHRwOi8vbmlnaHRseS53ZWJraXQub3JnLyI+PC9hPgot
PHA+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgorPHAg
aWQ9ImlkZW50aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNh
bjo8L3A+CiA8dWw+Ci0gICA8bGk+PGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8i
PmRvd25sb2FkIHRoZSBsYXRlc3QgbmlnaHRseSBidWlsZDwvYT48L2xpPgorICAgPGxpPjwvbGk+
Cis8L3VsPgorPHVsPgorICAgPGxpPjwvbGk+CiA8L3VsPgogPC9kaXY+CiA9PT09PT09PT09Pjg9
PT09PT09PT09CisKK0JyaW5naW5nIHRoaW5ncyBiYWNrCisKK1dyYXBwZXIgaWRlbnRpdHk6IGlk
ZW50aXR5CitFdmVudCBOb2RlSW5zZXJ0ZWQ6IEgyCiBFdmVudCBOb2RlUmVtb3ZlZDogSDIKIEV2
ZW50IE5vZGVSZW1vdmVkOiBIMgotRXZlbnQgTm9kZUluc2VydGVkOiBIMgogPT09PT09PT09PTg8
PT09PT09PT09PQogPGRpdiBpZD0iY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KIDxo
Mj5XZWxjb21lIHRvIHRoZSB3ZWJzaXRlIGZvciB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFByb2pl
Y3QhPC9oMj4KQEAgLTEyNywxNyArMTg1LDI2IEBAIEV2ZW50IE5vZGVJbnNlcnRlZDogSDIKIAog
PGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gyPgogPGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0
Lm9yZy8iPjwvYT4KLTxwPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3Ug
Y2FuOjwvcD4KKzxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52
b2x2ZWQuIFlvdSBjYW46PC9wPgorPHVsPgorICAgPGxpPjwvbGk+Cis8L3VsPgogPHVsPgotICAg
PGxpPjxhIGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj5kb3dubG9hZCB0aGUgbGF0
ZXN0IG5pZ2h0bHkgYnVpbGQ8L2E+PC9saT4KKyAgIDxsaT48L2xpPgogPC91bD4KIDwvZGl2Pgog
PT09PT09PT09PT44PT09PT09PT09PQogCisKKworCisKIFJ1bm5pbmc6IHRlc3RDaGFuZ2VOb2Rl
TmFtZQotUmVwbGFjaW5nICc8aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+JyB3aXRoICc8aDM+R2V0
dGluZyBpbnZvbHZlZDwvaDM+JyBhbmQgYmFjaycKLUV2ZW50IE5vZGVSZW1vdmVkOiBIMgorUmVw
bGFjaW5nICc8aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+JyB3aXRoICc8aDM+R2V0dGluZyBpbnZv
bHZlZDwvaDM+JworCitXcmFwcGVyIGlkZW50aXR5OiBpZGVudGl0eQogRXZlbnQgTm9kZUluc2Vy
dGVkOiBIMworRXZlbnQgTm9kZVJlbW92ZWQ6IEgyCiA9PT09PT09PT09ODw9PT09PT09PT09CiA8
ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgogPGgyPldlbGNvbWUgdG8g
dGhlIHdlYnNpdGUgZm9yIHRoZSBXZWJLaXQgT3BlbiBTb3VyY2UgUHJvamVjdCE8L2gyPgpAQCAt
MTQ1LDE0ICsyMTIsMjEgQEAgRXZlbnQgTm9kZUluc2VydGVkOiBIMwogCiA8aDM+R2V0dGluZyBp
bnZvbHZlZDwvaDM+CiA8YSBocmVmPSJodHRwOi8vbmlnaHRseS53ZWJraXQub3JnLyI+PC9hPgot
PHA+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgorPHAg
aWQ9ImlkZW50aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNh
bjo8L3A+Cis8dWw+CisgICA8bGk+PC9saT4KKzwvdWw+CiA8dWw+Ci0gICA8bGk+PGEgaHJlZj0i
aHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8iPmRvd25sb2FkIHRoZSBsYXRlc3QgbmlnaHRseSBi
dWlsZDwvYT48L2xpPgorICAgPGxpPjwvbGk+CiA8L3VsPgogPC9kaXY+CiA9PT09PT09PT09Pjg9
PT09PT09PT09Ci1FdmVudCBOb2RlUmVtb3ZlZDogSDMKKworQnJpbmdpbmcgdGhpbmdzIGJhY2sK
KworV3JhcHBlciBpZGVudGl0eTogaWRlbnRpdHkKIEV2ZW50IE5vZGVJbnNlcnRlZDogSDIKK0V2
ZW50IE5vZGVSZW1vdmVkOiBIMwogPT09PT09PT09PTg8PT09PT09PT09PQogPGRpdiBpZD0iY29u
dGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KIDxoMj5XZWxjb21lIHRvIHRoZSB3ZWJzaXRl
IGZvciB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFByb2plY3QhPC9oMj4KQEAgLTE2MCwxNyArMjM0
LDI2IEBAIEV2ZW50IE5vZGVJbnNlcnRlZDogSDIKIAogPGgyPkdldHRpbmcgaW52b2x2ZWQ8L2gy
PgogPGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8iPjwvYT4KLTxwPlRoZXJlIGFy
ZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KKzxwIGlkPSJpZGVudGl0
eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgogPHVs
PgotICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj5kb3dubG9hZCB0
aGUgbGF0ZXN0IG5pZ2h0bHkgYnVpbGQ8L2E+PC9saT4KKyAgIDxsaT48L2xpPgorPC91bD4KKzx1
bD4KKyAgIDxsaT48L2xpPgogPC91bD4KIDwvZGl2PgogPT09PT09PT09PT44PT09PT09PT09PQog
CisKKworCisKIFJ1bm5pbmc6IHRlc3RDaGFuZ2VNdWx0aXBsZVRoaW5ncworV3JhcHBlciBpZGVu
dGl0eTogaWRlbnRpdHkKIEV2ZW50IEF0dHJNb2RpZmllZDogSDIKIEV2ZW50IEF0dHJNb2RpZmll
ZDogSDIKLUV2ZW50IE5vZGVSZW1vdmVkOiBMSQorRXZlbnQgTm9kZUluc2VydGVkOiBVTAorRXZl
bnQgTm9kZVJlbW92ZWQ6IFVMCiA9PT09PT09PT09ODw9PT09PT09PT09CiA8ZGl2IGlkPSJjb250
YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgogPGgyIGZvbz0iYmFyIiBiYXI9ImJheiI+V2Vs
Y29tZSB0byB0aGUgd2Vic2l0ZSBmb3IgdGhlIFdlYktpdCBPcGVuIFNvdXJjZSBQcm9qZWN0ITwv
aDI+CkBAIC0xNzgsMTUgKzI2MSw0NyBAQCBFdmVudCBOb2RlUmVtb3ZlZDogTEkKIAogPGgyPkdl
dHRpbmcgaW52b2x2ZWQ8L2gyPgogPGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8i
PjwvYT4KLTxwPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwv
cD4KKzxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQu
IFlvdSBjYW46PC9wPgogPHVsPgogICAgCiA8L3VsPgorPHVsPgorICAgPGxpPjwvbGk+Cis8L3Vs
PgogPC9kaXY+CiA9PT09PT09PT09Pjg9PT09PT09PT09CisKK0JyaW5naW5nIHRoaW5ncyBiYWNr
CisKK1dyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5CiBFdmVudCBBdHRyUmVtb3ZlZDogSDIKIEV2
ZW50IEF0dHJSZW1vdmVkOiBIMgotRXZlbnQgTm9kZUluc2VydGVkOiBMSQorRXZlbnQgQ2hpbGRO
b2RlQ291bnRVcGRhdGVkOiBVTAorPT09PT09PT09PTg8PT09PT09PT09PQorPGRpdiBpZD0iY29u
dGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lIj4KKzxoMj5XZWxjb21lIHRvIHRoZSB3ZWJzaXRl
IGZvciB0aGUgV2ViS2l0IE9wZW4gU291cmNlIFByb2plY3QhPC9oMj4KKzxwPldlYktpdCBpcyB1
c2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBwbGUuY29tL3NhZmFyaS8iPlNhZmFyaTwvYT4s
IERhc2hib2FyZCwgZXRjLi48L3A+CisKKzxoMj5HZXR0aW5nIGludm9sdmVkPC9oMj4KKzxhIGhy
ZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj48L2E+Cis8cCBpZD0iaWRlbnRpdHkiPlRo
ZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwvcD4KKzx1bD4KKyAg
IDxsaT48L2xpPgorPC91bD4KKzx1bD4KKyAgIDxsaT48L2xpPgorPC91bD4KKzwvZGl2PgorPT09
PT09PT09PT44PT09PT09PT09PQorCisKKworCisKK1J1bm5pbmc6IHRlc3RDaGFuZ2VOZXN0aW5n
TGV2ZWwKK1dyYXBwZXIgaWRlbnRpdHk6IGlkZW50aXR5CitFdmVudCBOb2RlSW5zZXJ0ZWQ6IERJ
VgorRXZlbnQgTm9kZVJlbW92ZWQ6IFVMCiA9PT09PT09PT09ODw9PT09PT09PT09CiA8ZGl2IGlk
PSJjb250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgogPGgyPldlbGNvbWUgdG8gdGhlIHdl
YnNpdGUgZm9yIHRoZSBXZWJLaXQgT3BlbiBTb3VyY2UgUHJvamVjdCE8L2gyPgpAQCAtMTk0LDEw
ICszMDksMzkgQEAgRXZlbnQgTm9kZUluc2VydGVkOiBMSQogCiA8aDI+R2V0dGluZyBpbnZvbHZl
ZDwvaDI+CiA8YSBocmVmPSJodHRwOi8vbmlnaHRseS53ZWJraXQub3JnLyI+PC9hPgotPHA+VGhl
cmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQuIFlvdSBjYW46PC9wPgorPHAgaWQ9Imlk
ZW50aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+
Cis8ZGl2Pjx1bD4KKyAgIDxsaT48L2xpPgorPC91bD48L2Rpdj4KIDx1bD4KLSAgIDxsaT48YSBo
cmVmPSJodHRwOi8vbmlnaHRseS53ZWJraXQub3JnLyI+ZG93bmxvYWQgdGhlIGxhdGVzdCBuaWdo
dGx5IGJ1aWxkPC9hPjwvbGk+CisgICA8bGk+PC9saT4KIDwvdWw+CiA8L2Rpdj4KID09PT09PT09
PT0+OD09PT09PT09PT0KIAorQnJpbmdpbmcgdGhpbmdzIGJhY2sKKworV3JhcHBlciBpZGVudGl0
eTogaWRlbnRpdHkKK0V2ZW50IE5vZGVJbnNlcnRlZDogVUwKK0V2ZW50IE5vZGVSZW1vdmVkOiBE
SVYKKz09PT09PT09PT04PD09PT09PT09PT0KKzxkaXYgaWQ9ImNvbnRhaW5lciIgc3R5bGU9ImRp
c3BsYXk6bm9uZSI+Cis8aDI+V2VsY29tZSB0byB0aGUgd2Vic2l0ZSBmb3IgdGhlIFdlYktpdCBP
cGVuIFNvdXJjZSBQcm9qZWN0ITwvaDI+Cis8cD5XZWJLaXQgaXMgdXNlZCBieSA8YSBocmVmPSJo
dHRwOi8vd3d3LmFwcGxlLmNvbS9zYWZhcmkvIj5TYWZhcmk8L2E+LCBEYXNoYm9hcmQsIGV0Yy4u
PC9wPgorCis8aDI+R2V0dGluZyBpbnZvbHZlZDwvaDI+Cis8YSBocmVmPSJodHRwOi8vbmlnaHRs
eS53ZWJraXQub3JnLyI+PC9hPgorPHAgaWQ9ImlkZW50aXR5Ij5UaGVyZSBhcmUgbWFueSB3YXlz
IHRvIGdldCBpbnZvbHZlZC4gWW91IGNhbjo8L3A+Cis8dWw+CisgICA8bGk+PC9saT4KKzwvdWw+
Cis8dWw+CisgICA8bGk+PC9saT4KKzwvdWw+Cis8L2Rpdj4KKz09PT09PT09PT0+OD09PT09PT09
PT0KKworCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
c2V0LW91dGVyLWh0bWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQt
b3V0ZXItaHRtbC5odG1sCmluZGV4IDljNTc3OTM3NzdjYzczZGUxMDQxYWVhMWM3ZjBhNDcwNTQx
OTZlMGEuLjFhMDM3ZThkN2NlOGVjN2VlYjMyNWJjMjg3NTA5YjA2YmE4OGRjNGUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9zZXQtb3V0ZXItaHRtbC5odG1sCkBA
IC00LDExICs0LDE3IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KK2Z1bmN0
aW9uIG9ubG9hZCgpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkZW50aXR5Iiku
d3JhcHBlcklkZW50aXR5ID0gImlkZW50aXR5IjsKKyAgICBydW5UZXN0KCk7Cit9CiAKIGZ1bmN0
aW9uIHRlc3QoKQogewogICAgIHZhciBjb250YWluZXJJZDsKICAgICB2YXIgY29udGFpbmVyVGV4
dDsKKyAgICB2YXIgZXZlbnRzID0gW107CiAKICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0
ZShbCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RTZXRVcChuZXh0KQpAQCAtMzIsNyArMzgsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBXZWJJbnNw
ZWN0b3IuRE9NQWdlbnQuRXZlbnRzKSB7CiAgICAgICAgICAgICAgICAgICAgIHZhciBldmVudE5h
bWUgPSBXZWJJbnNwZWN0b3IuRE9NQWdlbnQuRXZlbnRzW2tleV07Ci0gICAgICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZHVt
cEV2ZW50LmJpbmQobnVsbCwgZXZlbnROYW1lKSk7CisgICAgICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgcmVjb3JkRXZlbnQu
YmluZChudWxsLCBldmVudE5hbWUpKTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
ICAgICBuZXh0KCk7CkBAIC02Niw0MCArNzIsNTggQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAg
ICAgZnVuY3Rpb24gdGVzdENoYW5nZU11bHRpcGxlVGhpbmdzKG5leHQpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHRleHQgPSBjb250YWluZXJUZXh0LnJlcGxhY2UoLzxsaT4uKjxcL2xpPi8sICIi
KTsKKyAgICAgICAgICAgIHZhciB0ZXh0ID0gY29udGFpbmVyVGV4dC5yZXBsYWNlKC88bGk+Lio8
XC9saT4vLCAiIik7CiAgICAgICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKCI8aDI+IiwgIjxo
MiBmb289XCJiYXJcIiBiYXI9XCJiYXpcIj4iKTsKICAgICAgICAgICAgIHNldE91dGVySFRNTCh0
ZXh0LCBuZXh0KTsKKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0Q2hhbmdlTmVz
dGluZ0xldmVsKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciB0ZXh0ID0gY29udGFp
bmVyVGV4dC5yZXBsYWNlKCI8dWw+IiwgIjxkaXY+PHVsPiIpOworICAgICAgICAgICAgdmFyIHRl
eHQgPSB0ZXh0LnJlcGxhY2UoIjwvdWw+IiwgIjwvdWw+PC9kaXY+Iik7CisgICAgICAgICAgICBz
ZXRPdXRlckhUTUwodGV4dCwgbmV4dCk7CiAgICAgICAgIH0KICAgICBdKTsKIAotICAgIGZ1bmN0
aW9uIGR1bXBFdmVudChldmVudE5hbWUsIGV2ZW50KQorICAgIGZ1bmN0aW9uIHJlY29yZEV2ZW50
KGV2ZW50TmFtZSwgZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgbm9kZSA9IGV2ZW50LmRhdGEu
bm9kZSB8fCBldmVudC5kYXRhOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXZl
bnQgIiArIGV2ZW50TmFtZSArICI6ICIgKyBub2RlLm5vZGVOYW1lKCkpOworICAgICAgICBldmVu
dHMucHVzaCgiRXZlbnQgIiArIGV2ZW50TmFtZSArICI6ICIgKyBub2RlLm5vZGVOYW1lKCkpOwog
ICAgIH0KIAogICAgIGZ1bmN0aW9uIHBhdGNoT3V0ZXJIVE1MKHBhdHRlcm4sIHJlcGxhY2VtZW50
LCBuZXh0KQogICAgIHsKLSAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVwbGFjaW5n
ICciICsgcGF0dGVybiArICInIHdpdGggJyIgKyByZXBsYWNlbWVudCArICInIGFuZCBiYWNrJyIp
OworICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXBsYWNpbmcgJyIgKyBwYXR0ZXJu
ICsgIicgd2l0aCAnIiArIHJlcGxhY2VtZW50ICsgIidcbiIpOwogICAgICAgIHNldE91dGVySFRN
TChjb250YWluZXJUZXh0LnJlcGxhY2UocGF0dGVybiwgcmVwbGFjZW1lbnQpLCBuZXh0KTsKICAg
ICB9CiAKICAgICBmdW5jdGlvbiBzZXRPdXRlckhUTUwobmV3VGV4dCwgbmV4dCkKICAgICB7Ci0g
ICAgICAgIGlubmVyU2V0T3V0ZXJIVE1MKG5ld1RleHQsIGJyaW5nQmFjayk7CisgICAgICAgIGlu
bmVyU2V0T3V0ZXJIVE1MKG5ld1RleHQsIGZhbHNlLCBicmluZ0JhY2spOwogCiAgICAgICAgIGZ1
bmN0aW9uIGJyaW5nQmFjaygpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlubmVyU2V0T3V0ZXJI
VE1MKGNvbnRhaW5lclRleHQsIG5leHQpOworICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiXG5CcmluZ2luZyB0aGluZ3MgYmFja1xuIik7CisgICAgICAgICAgICBpbm5lclNldE91
dGVySFRNTChjb250YWluZXJUZXh0LCB0cnVlLCBuZXh0KTsKICAgICAgICAgfQogICAgIH0KIAot
ICAgIGZ1bmN0aW9uIGlubmVyU2V0T3V0ZXJIVE1MKG5ld1RleHQsIG5leHQpCisgICAgZnVuY3Rp
b24gaW5uZXJTZXRPdXRlckhUTUwobmV3VGV4dCwgbGFzdCwgbmV4dCkKICAgICB7CiAgICAgICAg
IERPTUFnZW50LnNldE91dGVySFRNTChjb250YWluZXJJZCwgbmV3VGV4dCwgZHVtcE91dGVySFRN
TCk7CiAKICAgICAgICAgZnVuY3Rpb24gZHVtcE91dGVySFRNTCgpCiAgICAgICAgIHsKKyAgICAg
ICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJp
ZGVudGl0eVwiKS53cmFwcGVySWRlbnRpdHkiLCBkdW1wSWRlbnRpdHkpOworICAgICAgICAgICAg
ZnVuY3Rpb24gZHVtcElkZW50aXR5KGVycm9yLCByZXN1bHQpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIldyYXBwZXIgaWRlbnRpdHk6ICIg
KyByZXN1bHQudmFsdWUpOworICAgICAgICAgICAgICAgIGV2ZW50cy5zb3J0KCk7CisgICAgICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudHMubGVuZ3RoOyArK2kpCisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGV2ZW50c1tpXSk7CisgICAgICAg
ICAgICAgICAgZXZlbnRzID0gW107CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIERPTUFn
ZW50LmdldE91dGVySFRNTChjb250YWluZXJJZCwgY2FsbGJhY2spOwogCiAgICAgICAgICAgICBm
dW5jdGlvbiBjYWxsYmFjayhlcnJvciwgdGV4dCkKQEAgLTEwNyw2ICsxMzEsOCBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09PT09
PT09PTg8PT09PT09PT09PSIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KHRleHQpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09
PT09PT09Pjg9PT09PT09PT09Iik7CisgICAgICAgICAgICAgICAgaWYgKGxhc3QpCisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJcblxuXG4iKTsKICAgICAgICAg
ICAgICAgICBuZXh0KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTExNSw3ICsxNDEs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKIDwvc2NyaXB0PgogPC9oZWFkPgogCi08Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KIDxwPgogVGVzdHMgRE9NQWdl
bnQuc2V0T3V0ZXJIVE1MIHByb3RvY29sIG1ldGhvZC4KIDwvcD4KQEAgLTEyNiw5ICsxNTIsMTIg
QEAgVGVzdHMgRE9NQWdlbnQuc2V0T3V0ZXJIVE1MIHByb3RvY29sIG1ldGhvZC4KIAogPGgyPkdl
dHRpbmcgaW52b2x2ZWQ8L2gyPgogPGEgaHJlZj0iaHR0cDovL25pZ2h0bHkud2Via2l0Lm9yZy8i
PjwvYT4KLTxwPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gZ2V0IGludm9sdmVkLiBZb3UgY2FuOjwv
cD4KKzxwIGlkPSJpZGVudGl0eSI+VGhlcmUgYXJlIG1hbnkgd2F5cyB0byBnZXQgaW52b2x2ZWQu
IFlvdSBjYW46PC9wPgorPHVsPgorICAgPGxpPjwvbGk+Cis8L3VsPgogPHVsPgotICAgPGxpPjxh
IGhyZWY9Imh0dHA6Ly9uaWdodGx5LndlYmtpdC5vcmcvIj5kb3dubG9hZCB0aGUgbGF0ZXN0IG5p
Z2h0bHkgYnVpbGQ8L2E+PC9saT4KKyAgIDxsaT48L2xpPgogPC91bD4KIDwvZGl2PgogCg==
</data>
<flag name="review"
          id="122995"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>