<?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>58342</bug_id>
          
          <creation_ts>2011-04-12 10:21:55 -0700</creation_ts>
          <short_desc>Teach sub-selector chains about shadow descendants</short_desc>
          <delta_ts>2011-04-27 13:32:25 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>58341</blocked>
    
    <blocked>52962</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hyatt</cc>
    
    <cc>jackalmage</cc>
    
    <cc>koivisto</cc>
    
    <cc>menard</cc>
    
    <cc>sjl</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>384106</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-12 10:21:55 -0700</bug_when>
    <thetext>In order to allow styling of the elements, exposed with shadow pseudo-element selector, we need to allow pseudo-classes and possibly other types of selectors (attribute selectors?) to be added at the end of the pseudo-elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387270</commentid>
    <comment_count>1</comment_count>
      <attachid>89928</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-16 11:19:49 -0700</bug_when>
    <thetext>Created attachment 89928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388526</commentid>
    <comment_count>2</comment_count>
      <attachid>90207</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-19 08:44:53 -0700</bug_when>
    <thetext>Created attachment 90207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389020</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-19 20:10:02 -0700</bug_when>
    <thetext>Antti, can you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389565</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-20 15:24:20 -0700</bug_when>
    <thetext>Bueller?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392381</commentid>
    <comment_count>5</comment_count>
      <attachid>90207</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-04-26 04:11:49 -0700</bug_when>
    <thetext>Comment on attachment 90207
Patch

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

r=me

&gt; Source/WebCore/css/CSSParserValues.h:119
&gt;      bool isSimple() const { return !m_tagHistory &amp;&amp; m_selector-&gt;isSimple(); }
&gt; +    bool hasShadowDescendant() const;

inline like the others?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393690</commentid>
    <comment_count>6</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-27 11:37:22 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 90207 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=90207&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/css/CSSParserValues.h:119
&gt; &gt;      bool isSimple() const { return !m_tagHistory &amp;&amp; m_selector-&gt;isSimple(); }
&gt; &gt; +    bool hasShadowDescendant() const;
&gt; 
&gt; inline like the others?

Sure thing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393753</commentid>
    <comment_count>7</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-27 13:32:25 -0700</bug_when>
    <thetext>Committed r85077: &lt;http://trac.webkit.org/changeset/85077&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89928</attachid>
            <date>2011-04-16 11:19:49 -0700</date>
            <delta_ts>2011-04-19 08:44:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58342-20110416111948.patch</filename>
            <type>text/plain</type>
            <size>15639</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM4NjIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkYjEyYjBmNDcwMWVkMDc0MjcxYjky
Y2I0MjMxNjk3NDA3MmNjNTc4Li42MzhlZjkzOGRiNmRkMjlmMzNkNDdlNmNmZjJhZjAyOWEwY2Jh
NzUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMTYgIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZWxheCBwc2V1ZG8tZWxlbWVudCBzZWxlY3RvciByZXN0cmljdGlv
bnMgZm9yIHNoYWRvdyBET00KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU4MzQyCisKKyAgICAgICAgKiBmYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVt
ZW50LW1hdGNoaW5nLWV4cGVjdGVkLnR4dDogVXBkYXRlZCBleHBlY3RhdGlvbnMuCisgICAgICAg
ICogZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy5odG1sOiBBZGRlZCBu
ZXcgdGVzdHMuCisKIDIwMTEtMDQtMTQgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRj
aGluZy1leHBlY3RlZC50eHQKaW5kZXggMDgxOTk3ZDFjMTI4NDFlYTRjOWEwYzRhNWI5MGVhODhi
YjQ4NzQ2OC4uYWI4NmY5OWZlZDM4Zjc5MGFmMmMxNjA4ZTYxY2E2NGQzYWZkMWU2NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGlu
Zy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8t
ZWxlbWVudC1tYXRjaGluZy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw2IEBACiBUZXN0cyB2YXJp
b3VzIHNlbGVjdG9yIGNvbWJpbmF0aW9ucywgY29udGFpbmluZyB1bmtub3duIHBzZXVkbyBlbGVt
ZW50IHNlbGVjdG9ycy4KIAorQmFzaWMgc2VsZWN0b3IgdGVzdHM6CiA6Oi13ZWJraXQtc2xpZGVy
LXRodW1iIHNob3VsZCBtYXRjaDogUEFTUwogOjotd2Via2l0LXNsaWRlci10aHVtYiwgd2hlcmUg
SFRNTCBpcyBub3QgZGVmYXVsdCBuYW1lc3BhY2Ugc2hvdWxkIG5vdCBtYXRjaDogUEFTUwogKnw6
Oi13ZWJraXQtc2xpZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlzIG5vdCBkZWZhdWx0IG5hbWVzcGFj
ZSBzaG91bGQgbWF0Y2g6IFBBU1MKQEAgLTI0LDMgKzI1LDI3IEBAIGh0bWx8aW5wdXQuYmFyOjot
d2Via2l0LXNsaWRlci10aHVtYiwgd2hlcmUgSFRNTCBpcyBub3QgZGVmYXVsdCBuYW1lc3BhY2Ug
c2hvdWxkCiBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1h
dGNoOiBQQVNTCiBpbnB1dCNmb29bdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNo
b3VsZCBtYXRjaDogUEFTUwogaW5wdXQuYmFyW3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10
aHVtYiBzaG91bGQgbWF0Y2g6IFBBU1MKKworU2hvdWxkbid0IGlnbm9yZSBzZWxlY3RvciBhZnRl
ciB0aGUgdW5rbm93biBwc2V1ZG8gZWxlbWVudDoKKzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlz
YWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUworaW5wdXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1i
OmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKKyNmb286Oi13ZWJraXQtc2xpZGVyLXRo
dW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKK2lucHV0I2Zvbzo6LXdlYmtpdC1z
bGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUworaW5wdXQuYmFyOjot
d2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCitpbnB1
dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBt
YXRjaDogUEFTUworCitTaG91bGQgbm90IG1hdGNoIGRpc2FibGVkIGlucHV0LCBiZWNhdXNlIHRo
ZSBkaXNhYmxlZCBzdGF0ZSBpcyBvbiB0aGUgaW5wdXQsIG5vdCB0aGUgdGh1bWI6Cis6Oi13ZWJr
aXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKK2lucHV0Ojot
d2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCisjZm9v
Ojotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCitp
bnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6
IFBBU1MKK2lucHV0LmJhcjo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5v
dCBtYXRjaDogUEFTUworaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iOmRp
c2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKKworU2hvdWxkIG1hdGNoIDpob3ZlciB3aGVu
IHRoZSBtb3VzZSBpcyBvdmVyIHRoZSBzbGlkZXIgdGh1bWI6Cis6Oi13ZWJraXQtc2xpZGVyLXRo
dW1iOmhvdmVyIHNob3VsZCBtYXRjaDogUEFTUworaW5wdXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1i
OmhvdmVyIHNob3VsZCBtYXRjaDogUEFTUworI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92
ZXIgc2hvdWxkIG1hdGNoOiBQQVNTCitpbnB1dCNmb286Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhv
dmVyIHNob3VsZCBtYXRjaDogUEFTUworaW5wdXQuYmFyOjotd2Via2l0LXNsaWRlci10aHVtYjpo
b3ZlciBzaG91bGQgbWF0Y2g6IFBBU1MKK2lucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRl
ci10aHVtYjpob3ZlciBzaG91bGQgbWF0Y2g6IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmcuaHRtbAppbmRleCAw
ZmFmMTYwODEyNWEzNDNmMDVlZmEwYjkzOTg0NTdlNTdiYWVhN2U1Li42ODMxMGYxNzgyMmJiMzBl
NjEwNmU2ZmI3M2E2ZDM3MDhlOGJhM2IyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy5odG1sCkBAIC0xNiw2ICsx
NiwxNiBAQCB2YXIgaW5wdXQ7CiB2YXIgbG9nRGl2OwogdmFyIE5BTUVTUEFDRV9ERUNMQVJBVElP
TiA9ICdAbmFtZXNwYWNlICJodHRwOi8vZXhhbXBsZS5jb20vZm9vL25hbWVzcGFjZSI7XG5AbmFt
ZXNwYWNlIGh0bWwgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiO1xuJzsKIHZhciBTRUxF
Q1RPUl9URVNUX1BST1BFUlRJRVMgPSAnIHsgaGVpZ2h0OiAxcHg7IC13ZWJraXQtYXBwZWFyYW5j
ZTogbm9uZTsgfSc7Cit2YXIgU0VMRUNUT1JTID0gWworJzo6LXdlYmtpdC1zbGlkZXItdGh1bWIn
LAorJ2lucHV0Ojotd2Via2l0LXNsaWRlci10aHVtYicsCisnI2Zvbzo6LXdlYmtpdC1zbGlkZXIt
dGh1bWInLAorJ2lucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWInLAorJ2lucHV0LmJhcjo6
LXdlYmtpdC1zbGlkZXItdGh1bWInLAorJ2lucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRl
ci10aHVtYicKK107Cit2YXIgRElTQUJMRURfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChmdW5j
dGlvbihzZWxlY3RvcikgeyByZXR1cm4gc2VsZWN0b3IgKyAnOmRpc2FibGVkJzsgfSk7Cit2YXIg
SE9WRVJfU0VMRUNUT1JTID0gU0VMRUNUT1JTLm1hcChmdW5jdGlvbihzZWxlY3RvcikgeyByZXR1
cm4gc2VsZWN0b3IgKyAnOmhvdmVyJzsgfSkKIAogLy8gY29udmVuaWVuY2UgY29uc3RhbnRzCiB2
YXIgTUFUQ0ggPSB0cnVlOwpAQCAtMjQsNyArMzQsMTggQEAgdmFyIFdJVEhfTkFNRVNQQUNFUyA9
IHRydWU7CiAKIGZ1bmN0aW9uIGxvZyhtc2csIHN1Y2Nlc3MpCiB7Ci0gICAgbG9nRGl2LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKS5pbm5lckhUTUwgPSBtc2cgKyAn
OiAnICsgKHN1Y2Nlc3MgPyAnUEFTUycgOiAnRkFJTCcpOworICAgIGxvZ0Rpdi5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSkuaW5uZXJIVE1MID0gbXNnICsgKGFyZ3Vt
ZW50cy5sZW5ndGggPT0gMSA/ICcnIDogKCc6ICcgKyAoc3VjY2VzcyA/ICdQQVNTJyA6ICdGQUlM
JykpKTsKK30KKworZnVuY3Rpb24gaG92ZXJPdmVyU2xpZGVyVGh1bWIoKQoreworICAgIGlmICgh
d2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB2YXIgeCA9
IGlucHV0Lm9mZnNldExlZnQgKyBpbnB1dC5vZmZzZXRXaWR0aCAvIDI7CisgICAgdmFyIHkgPSBp
bnB1dC5vZmZzZXRUb3AgKyBpbnB1dC5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHgsIHkpOworICAgIHJldHVybiB0cnVlOwogfQogCiBmdW5jdGlvbiBydW5T
ZWxlY3RvclRlc3QobWF0Y2hFeHBlY3RlZCwgc2VsZWN0b3IsIHVzZU5hbWVzcGFjZXMpCkBAIC00
Miw2ICs2Myw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIGhlYWQgPSBkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdOwogICAgIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoJ2lucHV0JylbMF07CiAgICAgbG9nRGl2ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2xvZycpOworICAgIGxvZygnQmFzaWMgc2VsZWN0b3IgdGVzdHM6Jyk7CiAgICAg
cnVuU2VsZWN0b3JUZXN0KE1BVENILCAnOjotd2Via2l0LXNsaWRlci10aHVtYicpOwogICAgIHJ1
blNlbGVjdG9yVGVzdChOT19NQVRDSCwgJzo6LXdlYmtpdC1zbGlkZXItdGh1bWInLCBXSVRIX05B
TUVTUEFDRVMpOwogICAgIHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJyp8Ojotd2Via2l0LXNsaWRl
ci10aHVtYicsIFdJVEhfTkFNRVNQQUNFUyk7CkBAIC02Niw5ICs4OCwyOSBAQCBmdW5jdGlvbiBy
dW5UZXN0KCkKICAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICdpbnB1dFt0eXBlPXJhbmdlXTo6
LXdlYmtpdC1zbGlkZXItdGh1bWInKTsKICAgICBydW5TZWxlY3RvclRlc3QoTUFUQ0gsICdpbnB1
dCNmb29bdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iJyk7CiAgICAgcnVuU2VsZWN0
b3JUZXN0KE1BVENILCAnaW5wdXQuYmFyW3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVt
YicpOworICAgIGxvZygnPGJyPlNob3VsZG5cJ3QgaWdub3JlIHNlbGVjdG9yIGFmdGVyIHRoZSB1
bmtub3duIHBzZXVkbyBlbGVtZW50OicpOworICAgIERJU0FCTEVEX1NFTEVDVE9SUy5mb3JFYWNo
KGV4cGVjdE5vTWF0Y2gpOworICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBsb2coJzxi
cj5TaG91bGQgbm90IG1hdGNoIGRpc2FibGVkIGlucHV0LCBiZWNhdXNlIHRoZSBkaXNhYmxlZCBz
dGF0ZSBpcyBvbiB0aGUgaW5wdXQsIG5vdCB0aGUgdGh1bWI6Jyk7CisgICAgRElTQUJMRURfU0VM
RUNUT1JTLmZvckVhY2goZXhwZWN0Tm9NYXRjaCk7CisgICAgaW5wdXQuZGlzYWJsZWQgPSBmYWxz
ZTsKKyAgICBpZiAoIWhvdmVyT3ZlclNsaWRlclRodW1iKCkpIHsKKyAgICAgICAgbG9nKCc6aG92
ZXIgdGVzdHMgcmVxdWlyZSBEUlQnKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBsb2co
Jzxicj5TaG91bGQgbWF0Y2ggOmhvdmVyIHdoZW4gdGhlIG1vdXNlIGlzIG92ZXIgdGhlIHNsaWRl
ciB0aHVtYjonKTsKKyAgICBIT1ZFUl9TRUxFQ1RPUlMuZm9yRWFjaChleHBlY3RNYXRjaCk7CiAg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpbnB1dCk7CiB9CiAKK2Z1bmN0aW9uIGV4cGVj
dE5vTWF0Y2goc2VsZWN0b3IpIHsKKyAgICBydW5TZWxlY3RvclRlc3QoTk9fTUFUQ0gsIHNlbGVj
dG9yKTsKK30KKworZnVuY3Rpb24gZXhwZWN0TWF0Y2goc2VsZWN0b3IpIHsKKyAgICBydW5TZWxl
Y3RvclRlc3QoTUFUQ0gsIHNlbGVjdG9yKTsKK30KKwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmZkY2NmNzI5OGIzZTMzZGE1NjBj
OGZmNjMwZTM4NjRhZWIyNzRmNC4uOTg0NTBhY2I2ZDAzZDMxNTVmZTExMWQ2ZmZlYTE2ZmUxOGU4
OTNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTA0LTE2ICBEaW1pdHJpIEds
YXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVsYXggcHNldWRvLWVsZW1lbnQgc2VsZWN0b3IgcmVz
dHJpY3Rpb25zIGZvciBzaGFkb3cgRE9NCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01ODM0MgorCisgICAgICAgIFRoZSBwcmltYXJ5IGNoYW5nZSBpcyB0
byB0aGUgbG9naWMgb2YgcGFyc2luZyBzcGVjaWZpZXJzOgorICAgICAgICAxKSBUaGUgc2hhZG93
IGRlc2NlbmRhbnQgc2VsZWN0b3JzICh0aG9zZSBzcGVjaWZpZXJzIHRoYXQgYXJlIHVua25vd24K
KyAgICAgICAgcHNldWRvIGVsZW1lbnQgc2VsZWN0b3JzKSBhcmUgYWx3YXlzIGtlcHQgYXQgdGhl
IHRvcCBvZiB0aGUgY2hhaW4uCisgICAgICAgIDIpIFRoZSBzdWItc2VsZWN0b3JzIGFmdGVyIHNo
YWRvdyBkZXNjZW5kYW50IHNlbGVjdG9ycyBhcmUgc3Rhc2hlZCByaWdodAorICAgICAgICBiZWhp
bmQgdGhlIHN1Yi1zZWxlY3RvciwgYnV0IG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBjaGFpbi4KKyAg
ICAgICAgMykgT3RoZXIgc3ViLXNlbGVjdG9ycyBhcmUgYXBwZW5kZWQgYXQgdGhlIGVuZCBvZiB0
aGUgY2hhaW4uCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55OiBDaGFuZ2VkIHNwZWNpZmll
cl9saXN0IGNvbGxlY3Rpb24gdG8gdXNlIG5ldworICAgICAgICAgICAgQ1NTUGFyc2VyOjp1cGRh
dGVTcGVjaWZpZXIgaGVscGVyLgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKTog
QWRkZWQgbG9naWMgdG8KKyAgICAgICAgICAgIGxvb2sgZm9yIHRoZSBsYXN0IFNoYWRvd0Rlc2Nl
bmRhbnQgcmVsYXRpb24gaW4gdGhlIGNoYWluIG9mIHNlbGVjdG9ycywKKyAgICAgICAgICAgIGJl
Y2F1c2UgdGhlIG5leHQgc2VsZWN0b3IgYWZ0ZXIgaXQgaXMgdGhlIG9uZSB0aGF0IHNob3VsZCBn
ZXQgdGhlCisgICAgICAgICAgICBlbGVtZW50IG5hbWUuCisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OnVwZGF0ZVNwZWNpZmllcnMpOiBNb3ZlZCBhbmQgbW9kaWZpZWQgdGhlIGxvZ2ljIGZy
b20KKyAgICAgICAgICAgIENTU0dyYW1tYXIueS4gVGhlIG5ldyBsb2dpYyBhZGp1c3RzIHRoZSBz
ZWxlY3RvciBjaGFpbiB0byBhbGxvdworICAgICAgICAgICAgc2hhZG93IGRlc2NlbmRhbnQgc2Vs
ZWN0b3JzIGhhdmUgc3ViLXNlbGVjdG9ycyAoYW5kIGhhdmUgbXVsdGlwbGUgc2hhZG93CisgICAg
ICAgICAgICBkZXNjZW5kYW50cyBpbiB0aGUgY2hhaW4pLgorICAgICAgICAqIGNzcy9DU1NQYXJz
ZXIuaDogQWRkZWQgZGVjbC4KKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclNlbGVjdG9yOjpoYXNTaGFkb3dEZXNjZW5kYW50KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6aW5zZXJ0VGFnSGlz
dG9yeSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyU2VsZWN0b3I6OmFwcGVu
ZFRhZ0hpc3RvcnkpOiBBZGVkLgorICAgICAgICAqIGNzcy9DU1NQYXJzZXJWYWx1ZXMuaDogQWRk
ZWQgZGVjbHMuCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVj
dG9yKTogQWRkZWQKKyAgICAgICAgICAgIHNoYWRvdyBkZXNjZW5kYW50IHNlbGVjdG9yIG1hdGNo
IGNoZWNrLCBzaW5jZSBub3cgdGhlcmUgY291bGQgYmUgbWFueQorICAgICAgICAgICAgb2YgdGhl
bSBpbiB0aGUgc2VsZWN0b3IgY2hhaW4uCisKIDIwMTEtMDQtMTQgIFNhdGlzaCBTYW1wYXRoICA8
c2F0aXNoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IDI2OWVhZjBjZjYxZjhhYjRjZmNhNTY1OWM0OTg1
NGQ5MzNiMjYyNjcuLjMwOWYwNWIzOTlhODc1ZDQ3ODYxYmNmNDUyYWMzOWMzMDg3Yzk5MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYW1tYXIueQpAQCAtOTc5LDI0ICs5NzksOCBAQCBzcGVjaWZpZXJfbGlz
dDoKICAgICB8IHNwZWNpZmllcl9saXN0IHNwZWNpZmllciB7CiAgICAgICAgIGlmICghJDIpCiAg
ICAgICAgICAgICAkJCA9IDA7Ci0gICAgICAgIGVsc2UgaWYgKCQxKSB7Ci0gICAgICAgICAgICBD
U1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOwotICAgICAgICAg
ICAgQ1NTUGFyc2VyU2VsZWN0b3IqIGVuZDsKLSAgICAgICAgICAgIENTU1BhcnNlclNlbGVjdG9y
KiBoaXN0b3J5OwotICAgICAgICAgICAgLy8gRW5zdXJlIHRoYXQgdW5rbm93biBwc2V1ZG8gZWxl
bWVudCBhbHdheXMgc3RheXMgYXQgdGhlIHRvcCBvZiBzZWxlY3RvciBjaGFpbi4KLSAgICAgICAg
ICAgIGlmICgkMi0+aXNVbmtub3duUHNldWRvRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICAgICAg
ZW5kID0gJDI7Ci0gICAgICAgICAgICAgICAgaGlzdG9yeSA9ICQxOwotICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBlbmQgPSAkMTsKLSAgICAgICAgICAgICAgICBoaXN0b3J5
ID0gJDI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAkJCA9IGVuZDsKLSAgICAgICAgICAg
IHdoaWxlKGVuZC0+dGFnSGlzdG9yeSgpKQotICAgICAgICAgICAgICAgIGVuZCA9IGVuZC0+dGFn
SGlzdG9yeSgpOwotICAgICAgICAgICAgZW5kLT5zZXRSZWxhdGlvbihDU1NTZWxlY3Rvcjo6U3Vi
U2VsZWN0b3IpOwotICAgICAgICAgICAgZW5kLT5zZXRUYWdIaXN0b3J5KHAtPnNpbmtGbG9hdGlu
Z1NlbGVjdG9yKGhpc3RvcnkpKTsKLSAgICAgICAgfQorICAgICAgICBlbHNlIGlmICgkMSkKKyAg
ICAgICAgICAgICQkID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKS0+dXBkYXRlU3Bl
Y2lmaWVycygkMSwgJDIpOwogICAgIH0KICAgICB8IHNwZWNpZmllcl9saXN0IGVycm9yIHsKICAg
ICAgICAgJCQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAxZDhiNmIwZGMxOGYz
OGUyOTUyNTQzNTQ3YjcxN2I3MjZiNDk5ZDI0Li5kYTI3MmMwNWRmM2YwNjk3MWZiMGQyNzdkNTMy
NjlhN2NlNzJkOGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjM2OSw5ICs2MzY5
LDE2IEBAIHZvaWQgQ1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlUHJlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBzcGVjaWZpZXJzLT5zZXRSZWxhdGlvbihDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFu
dCk7Ci0gICAgaWYgKENTU1BhcnNlclNlbGVjdG9yKiBoaXN0b3J5ID0gc3BlY2lmaWVycy0+dGFn
SGlzdG9yeSgpKSB7Ci0gICAgICAgIGhpc3RvcnktPnNldFRhZyh0YWcpOworICAgIENTU1BhcnNl
clNlbGVjdG9yKiBsYXN0U2hhZG93RGVzY2VuZGFudCA9IHNwZWNpZmllcnM7CisgICAgQ1NTUGFy
c2VyU2VsZWN0b3IqIGhpc3RvcnkgPSBzcGVjaWZpZXJzOworICAgIHdoaWxlIChoaXN0b3J5LT50
YWdIaXN0b3J5KCkpIHsKKyAgICAgICAgaGlzdG9yeSA9IGhpc3RvcnktPnRhZ0hpc3RvcnkoKTsK
KyAgICAgICAgaWYgKGhpc3RvcnktPmhhc1NoYWRvd0Rlc2NlbmRhbnQoKSkKKyAgICAgICAgICAg
IGxhc3RTaGFkb3dEZXNjZW5kYW50ID0gaGlzdG9yeTsKKyAgICB9CisKKyAgICBpZiAobGFzdFNo
YWRvd0Rlc2NlbmRhbnQtPnRhZ0hpc3RvcnkoKSkgeworICAgICAgICBsYXN0U2hhZG93RGVzY2Vu
ZGFudC0+dGFnSGlzdG9yeSgpLT5zZXRUYWcodGFnKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtNjM4Miw5ICs2Mzg5LDI1IEBAIHZvaWQgQ1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJz
V2l0aEVsZW1lbnROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlUHJlCiAKICAgICBD
U1NQYXJzZXJTZWxlY3RvciogZWxlbWVudE5hbWVTZWxlY3RvciA9IG5ldyBDU1NQYXJzZXJTZWxl
Y3RvcjsKICAgICBlbGVtZW50TmFtZVNlbGVjdG9yLT5zZXRUYWcodGFnKTsKLSAgICBzcGVjaWZp
ZXJzLT5zZXRUYWdIaXN0b3J5KGVsZW1lbnROYW1lU2VsZWN0b3IpOworICAgIGxhc3RTaGFkb3dE
ZXNjZW5kYW50LT5zZXRUYWdIaXN0b3J5KGVsZW1lbnROYW1lU2VsZWN0b3IpOworICAgIGxhc3RT
aGFkb3dEZXNjZW5kYW50LT5zZXRSZWxhdGlvbihDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFu
dCk7CiB9CiAKK0NTU1BhcnNlclNlbGVjdG9yKiBDU1NQYXJzZXI6OnVwZGF0ZVNwZWNpZmllcnMo
Q1NTUGFyc2VyU2VsZWN0b3IqIHNwZWNpZmllcnMsIENTU1BhcnNlclNlbGVjdG9yKiBuZXdTcGVj
aWZpZXIpCit7CisgICAgaWYgKG5ld1NwZWNpZmllci0+aXNVbmtub3duUHNldWRvRWxlbWVudCgp
KSB7CisgICAgICAgIC8vIFVua25vd24gcHNldWRvIGVsZW1lbnQgYWx3YXlzIGdvZXMgYXQgdGhl
IHRvcCBvZiBzZWxlY3RvciBjaGFpbi4KKyAgICAgICAgbmV3U3BlY2lmaWVyLT5hcHBlbmRUYWdI
aXN0b3J5KENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50LCBzaW5rRmxvYXRpbmdTZWxlY3Rv
cihzcGVjaWZpZXJzKSk7CisgICAgICAgIHJldHVybiBuZXdTcGVjaWZpZXI7CisgICAgfQorICAg
IGlmIChzcGVjaWZpZXJzLT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkpIHsKKyAgICAgICAgLy8g
U3BlY2lmaWVycyBmb3IgdW5rbm93biBwc2V1ZG8gZWxlbWVudCBnbyByaWdodCBiZWhpbmQgaXQg
aW4gdGhlIGNoYWluLgorICAgICAgICBzcGVjaWZpZXJzLT5pbnNlcnRUYWdIaXN0b3J5KENTU1Nl
bGVjdG9yOjpTdWJTZWxlY3Rvciwgc2lua0Zsb2F0aW5nU2VsZWN0b3IobmV3U3BlY2lmaWVyKSwg
Q1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQpOworICAgICAgICByZXR1cm4gc3BlY2lmaWVy
czsKKyAgICB9CisgICAgc3BlY2lmaWVycy0+YXBwZW5kVGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6
U3ViU2VsZWN0b3IsIHNpbmtGbG9hdGluZ1NlbGVjdG9yKG5ld1NwZWNpZmllcikpOworICAgIHJl
dHVybiBzcGVjaWZpZXJzOworfQogCiBDU1NSdWxlKiBDU1NQYXJzZXI6OmNyZWF0ZVBhZ2VSdWxl
KFBhc3NPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHBhZ2VTZWxlY3RvcikKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaAppbmRleCA0YjFmYWQ2NTFhMTI3NjcyYjJlZjY3YzI5YTcxMWI0MmE0MmNkYmUw
Li4wNTI0MzAyMjYyM2VlMDY2Mzg1ZGE4MmVhZjZjOWZhMjY4NmMxMzE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCkBAIC0yMjAsNiArMjIwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIHZvaWQgYWRkTmFtZXNwYWNlKGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4LCBjb25zdCBB
dG9taWNTdHJpbmcmIHVyaSk7CiAgICAgICAgIHZvaWQgdXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVt
ZW50TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVByZWZpeCwgY29uc3QgQXRvbWlj
U3RyaW5nJiBlbGVtZW50TmFtZSwgQ1NTUGFyc2VyU2VsZWN0b3IqKTsKKyAgICAgICAgQ1NTUGFy
c2VyU2VsZWN0b3IqIHVwZGF0ZVNwZWNpZmllcnMoQ1NTUGFyc2VyU2VsZWN0b3IqLCBDU1NQYXJz
ZXJTZWxlY3RvciopOwogCiAgICAgICAgIHZvaWQgaW52YWxpZEJsb2NrSGl0KCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKaW5kZXggOTRkY2QzY2EyZmRkNDE3MTMyNzE0
MTJjMDMyY2IzNmI0NjJmNDhhZS4uODg4YTRkNzUwNTRmZDViNzBhZmMyZTE0OWQxMzg5NDY5YTc1
YjM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKQEAgLTExNCw1ICsx
MTQsMjkgQEAgdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTZWxlY3RvclZlY3RvcihWZWN0
b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+JgogICAgIHNlbGVjdG9yTGlzdC0+YWRvcHRT
ZWxlY3RvclZlY3RvcihzZWxlY3RvclZlY3Rvcik7CiAgICAgbV9zZWxlY3Rvci0+c2V0U2VsZWN0
b3JMaXN0KGFkb3B0UHRyKHNlbGVjdG9yTGlzdCkpOwogfQorCitib29sIENTU1BhcnNlclNlbGVj
dG9yOjpoYXNTaGFkb3dEZXNjZW5kYW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZWxlY3Rv
ci0+cmVsYXRpb24oKSA9PSBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudDsKK30KKwordm9p
ZCBDU1NQYXJzZXJTZWxlY3Rvcjo6aW5zZXJ0VGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6UmVsYXRp
b24gYmVmb3JlLCBQYXNzT3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiBzZWxlY3RvciwgQ1NTU2Vs
ZWN0b3I6OlJlbGF0aW9uIGFmdGVyKQoreworICAgIGlmIChtX3RhZ0hpc3RvcnkpCisgICAgICAg
IHNlbGVjdG9yLT5zZXRUYWdIaXN0b3J5KG1fdGFnSGlzdG9yeS5yZWxlYXNlKCkpOworICAgIHNl
dFJlbGF0aW9uKGJlZm9yZSk7CisgICAgc2VsZWN0b3ItPnNldFJlbGF0aW9uKGFmdGVyKTsKKyAg
ICBtX3RhZ0hpc3RvcnkgPSBzZWxlY3RvcjsKK30KKwordm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6
YXBwZW5kVGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6UmVsYXRpb24gcmVsYXRpb24sIFBhc3NPd25Q
dHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNlbGVjdG9yKQoreworICAgIENTU1BhcnNlclNlbGVjdG9y
KiBlbmQgPSB0aGlzOworICAgIHdoaWxlIChlbmQtPnRhZ0hpc3RvcnkoKSkKKyAgICAgICAgZW5k
ID0gZW5kLT50YWdIaXN0b3J5KCk7CisgICAgZW5kLT5zZXRSZWxhdGlvbihyZWxhdGlvbik7Cisg
ICAgZW5kLT5zZXRUYWdIaXN0b3J5KHNlbGVjdG9yKTsKK30KKwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyVmFsdWVzLmgKaW5kZXggODFlY2JjM2UyNmEzMDNlYmZjMzdhYjI3YzAxNmJlODAz
YjA4ODIzMS4uYzljNjRhMTM5N2M2NWQxMmRiNjJhMzQ1YWExOTdjMjU3MWJjNDc4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaApAQCAtMTE2LDkgKzExNiwxMiBAQCBwdWJsaWM6
CiAgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcHNldWRvVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2VsZWN0b3ItPnBzZXVkb1R5cGUoKTsgfQogICAgIGJvb2wgaXNVbmtub3duUHNldWRvRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0b3ItPmlzVW5rbm93blBzZXVkb0VsZW1lbnQo
KTsgfQogICAgIGJvb2wgaXNTaW1wbGUoKSBjb25zdCB7IHJldHVybiAhbV90YWdIaXN0b3J5ICYm
IG1fc2VsZWN0b3ItPmlzU2ltcGxlKCk7IH0KKyAgICBib29sIGhhc1NoYWRvd0Rlc2NlbmRhbnQo
KSBjb25zdDsKIAogICAgIENTU1BhcnNlclNlbGVjdG9yKiB0YWdIaXN0b3J5KCkgY29uc3QgeyBy
ZXR1cm4gbV90YWdIaXN0b3J5LmdldCgpOyB9CiAgICAgdm9pZCBzZXRUYWdIaXN0b3J5KFBhc3NP
d25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNlbGVjdG9yKSB7IG1fdGFnSGlzdG9yeSA9IHNlbGVj
dG9yOyB9CisgICAgdm9pZCBpbnNlcnRUYWdIaXN0b3J5KENTU1NlbGVjdG9yOjpSZWxhdGlvbiBi
ZWZvcmUsIFBhc3NPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+LCBDU1NTZWxlY3Rvcjo6UmVsYXRp
b24gYWZ0ZXIpOworICAgIHZvaWQgYXBwZW5kVGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6UmVsYXRp
b24sIFBhc3NPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+KTsKIAogcHJpdmF0ZToKICAgICBPd25Q
dHI8Q1NTU2VsZWN0b3I+IG1fc2VsZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAKaW5kZXggNzE3NDZmNDllNjE0YWM0YjdjYmVlN2Q5ZDY5N2Q3MmY2NGJmNDkyNC4u
ZDUyMjdjNWFhZDdkZjg5ZWZmOWFmNzhiOGQzZjcwZDI0ODQzYWFkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMjkzOSw2ICsyOTM5LDkgQEAgYm9vbCBDU1NT
dHlsZVNlbGVjdG9yOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lU2VsZWN0b3IoQ1NTU2VsZWN0
b3IqIHNlbCwgRWxlbWUKICAgICAgICAgaWYgKCFlbGVtZW50U3R5bGUgJiYgIW1fY29sbGVjdFJ1
bGVzT25seSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgICAgICBpZiAoc2VsLT5p
c1Vua25vd25Qc2V1ZG9FbGVtZW50KCkpCisgICAgICAgICAgICByZXR1cm4gZS0+c2hhZG93UHNl
dWRvSWQoKSA9PSBzZWwtPnZhbHVlKCk7CisKICAgICAgICAgUHNldWRvSWQgcHNldWRvSWQgPSBD
U1NTZWxlY3Rvcjo6cHNldWRvSWQoc2VsLT5wc2V1ZG9UeXBlKCkpOwogICAgICAgICBpZiAocHNl
dWRvSWQgPT0gRklSU1RfTEVUVEVSKSB7CiAgICAgICAgICAgICBpZiAoRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gZS0+ZG9jdW1lbnQoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90207</attachid>
            <date>2011-04-19 08:44:53 -0700</date>
            <delta_ts>2011-04-26 04:11:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58342-20110419084451.patch</filename>
            <type>text/plain</type>
            <size>15625</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM4NjIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkYjEyYjBmNDcwMWVkMDc0MjcxYjky
Y2I0MjMxNjk3NDA3MmNjNTc4Li40M2RjOTRhMzdlMzRhNzBhNTg5ZjBjZWM0MzIxMGRhNmM5ZTQ2
YjE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMTYgIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZWFjaCBzdWItc2VsZWN0b3IgY2hhaW5zIGFib3V0IHNoYWRvdyBk
ZXNjZW5kYW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTgzNDIKKworICAgICAgICAqIGZhc3QvY3NzL3Vua25vd24tcHNldWRvLWVsZW1lbnQtbWF0
Y2hpbmctZXhwZWN0ZWQudHh0OiBVcGRhdGVkIGV4cGVjdGF0aW9ucy4KKyAgICAgICAgKiBmYXN0
L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLmh0bWw6IEFkZGVkIG5ldyB0ZXN0
cy4KKwogMjAxMS0wNC0xNCAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4
cGVjdGVkLnR4dAppbmRleCAwODE5OTdkMWMxMjg0MWVhNGM5YTBjNGE1YjkwZWE4OGJiNDg3NDY4
Li5hYjg2Zjk5ZmVkMzhmNzkwYWYyYzE2MDhlNjFjYTY0ZDNhZmQxZTY3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy91bmtub3duLXBzZXVkby1lbGVtZW50
LW1hdGNoaW5nLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDYgQEAKIFRlc3RzIHZhcmlvdXMgc2Vs
ZWN0b3IgY29tYmluYXRpb25zLCBjb250YWluaW5nIHVua25vd24gcHNldWRvIGVsZW1lbnQgc2Vs
ZWN0b3JzLgogCitCYXNpYyBzZWxlY3RvciB0ZXN0czoKIDo6LXdlYmtpdC1zbGlkZXItdGh1bWIg
c2hvdWxkIG1hdGNoOiBQQVNTCiA6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlz
IG5vdCBkZWZhdWx0IG5hbWVzcGFjZSBzaG91bGQgbm90IG1hdGNoOiBQQVNTCiAqfDo6LXdlYmtp
dC1zbGlkZXItdGh1bWIsIHdoZXJlIEhUTUwgaXMgbm90IGRlZmF1bHQgbmFtZXNwYWNlIHNob3Vs
ZCBtYXRjaDogUEFTUwpAQCAtMjQsMyArMjUsMjcgQEAgaHRtbHxpbnB1dC5iYXI6Oi13ZWJraXQt
c2xpZGVyLXRodW1iLCB3aGVyZSBIVE1MIGlzIG5vdCBkZWZhdWx0IG5hbWVzcGFjZSBzaG91bGQK
IGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiBzaG91bGQgbWF0Y2g6IFBB
U1MKIGlucHV0I2Zvb1t0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgc2hvdWxkIG1h
dGNoOiBQQVNTCiBpbnB1dC5iYXJbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHNo
b3VsZCBtYXRjaDogUEFTUworCitTaG91bGRuJ3QgaWdub3JlIHNlbGVjdG9yIGFmdGVyIHRoZSB1
bmtub3duIHBzZXVkbyBlbGVtZW50OgorOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBz
aG91bGQgbm90IG1hdGNoOiBQQVNTCitpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJs
ZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUworI2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlz
YWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUworaW5wdXQjZm9vOjotd2Via2l0LXNsaWRlci10
aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQQVNTCitpbnB1dC5iYXI6Oi13ZWJraXQt
c2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKK2lucHV0W3R5cGU9
cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNoOiBQ
QVNTCisKK1Nob3VsZCBub3QgbWF0Y2ggZGlzYWJsZWQgaW5wdXQsIGJlY2F1c2UgdGhlIGRpc2Fi
bGVkIHN0YXRlIGlzIG9uIHRoZSBpbnB1dCwgbm90IHRoZSB0aHVtYjoKKzo6LXdlYmtpdC1zbGlk
ZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUworaW5wdXQ6Oi13ZWJraXQt
c2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKKyNmb286Oi13ZWJr
aXQtc2xpZGVyLXRodW1iOmRpc2FibGVkIHNob3VsZCBub3QgbWF0Y2g6IFBBU1MKK2lucHV0I2Zv
bzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQgc2hvdWxkIG5vdCBtYXRjaDogUEFTUwor
aW5wdXQuYmFyOjotd2Via2l0LXNsaWRlci10aHVtYjpkaXNhYmxlZCBzaG91bGQgbm90IG1hdGNo
OiBQQVNTCitpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWI6ZGlzYWJsZWQg
c2hvdWxkIG5vdCBtYXRjaDogUEFTUworCitTaG91bGQgbWF0Y2ggOmhvdmVyIHdoZW4gdGhlIG1v
dXNlIGlzIG92ZXIgdGhlIHNsaWRlciB0aHVtYjoKKzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92
ZXIgc2hvdWxkIG1hdGNoOiBQQVNTCitpbnB1dDo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIg
c2hvdWxkIG1hdGNoOiBQQVNTCisjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYjpob3ZlciBzaG91
bGQgbWF0Y2g6IFBBU1MKK2lucHV0I2Zvbzo6LXdlYmtpdC1zbGlkZXItdGh1bWI6aG92ZXIgc2hv
dWxkIG1hdGNoOiBQQVNTCitpbnB1dC5iYXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmhvdmVyIHNo
b3VsZCBtYXRjaDogUEFTUworaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1i
OmhvdmVyIHNob3VsZCBtYXRjaDogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvdW5rbm93bi1wc2V1ZG8tZWxlbWVudC1tYXRjaGluZy5odG1sCmluZGV4IDBmYWYxNjA4
MTI1YTM0M2YwNWVmYTBiOTM5ODQ1N2U1N2JhZWE3ZTUuLjY4MzEwZjE3ODIyYmIzMGU2MTA2ZTZm
YjczYTZkMzcwOGU4YmEzYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Vua25v
d24tcHNldWRvLWVsZW1lbnQtbWF0Y2hpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy91bmtub3duLXBzZXVkby1lbGVtZW50LW1hdGNoaW5nLmh0bWwKQEAgLTE2LDYgKzE2LDE2IEBA
IHZhciBpbnB1dDsKIHZhciBsb2dEaXY7CiB2YXIgTkFNRVNQQUNFX0RFQ0xBUkFUSU9OID0gJ0Bu
YW1lc3BhY2UgImh0dHA6Ly9leGFtcGxlLmNvbS9mb28vbmFtZXNwYWNlIjtcbkBuYW1lc3BhY2Ug
aHRtbCAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI7XG4nOwogdmFyIFNFTEVDVE9SX1RF
U1RfUFJPUEVSVElFUyA9ICcgeyBoZWlnaHQ6IDFweDsgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25l
OyB9JzsKK3ZhciBTRUxFQ1RPUlMgPSBbCisnOjotd2Via2l0LXNsaWRlci10aHVtYicsCisnaW5w
dXQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iJywKKycjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYics
CisnaW5wdXQjZm9vOjotd2Via2l0LXNsaWRlci10aHVtYicsCisnaW5wdXQuYmFyOjotd2Via2l0
LXNsaWRlci10aHVtYicsCisnaW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1i
JworXTsKK3ZhciBESVNBQkxFRF9TRUxFQ1RPUlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNl
bGVjdG9yKSB7IHJldHVybiBzZWxlY3RvciArICc6ZGlzYWJsZWQnOyB9KTsKK3ZhciBIT1ZFUl9T
RUxFQ1RPUlMgPSBTRUxFQ1RPUlMubWFwKGZ1bmN0aW9uKHNlbGVjdG9yKSB7IHJldHVybiBzZWxl
Y3RvciArICc6aG92ZXInOyB9KQogCiAvLyBjb252ZW5pZW5jZSBjb25zdGFudHMKIHZhciBNQVRD
SCA9IHRydWU7CkBAIC0yNCw3ICszNCwxOCBAQCB2YXIgV0lUSF9OQU1FU1BBQ0VTID0gdHJ1ZTsK
IAogZnVuY3Rpb24gbG9nKG1zZywgc3VjY2VzcykKIHsKLSAgICBsb2dEaXYuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpLmlubmVySFRNTCA9IG1zZyArICc6ICcgKyAo
c3VjY2VzcyA/ICdQQVNTJyA6ICdGQUlMJyk7CisgICAgbG9nRGl2LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKS5pbm5lckhUTUwgPSBtc2cgKyAoYXJndW1lbnRzLmxl
bmd0aCA9PSAxID8gJycgOiAoJzogJyArIChzdWNjZXNzID8gJ1BBU1MnIDogJ0ZBSUwnKSkpOwor
fQorCitmdW5jdGlvbiBob3Zlck92ZXJTbGlkZXJUaHVtYigpCit7CisgICAgaWYgKCF3aW5kb3cu
ZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHZhciB4ID0gaW5wdXQu
b2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgeSA9IGlucHV0Lm9m
ZnNldFRvcCArIGlucHV0Lm9mZnNldEhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oeCwgeSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGZ1bmN0aW9uIHJ1blNlbGVjdG9y
VGVzdChtYXRjaEV4cGVjdGVkLCBzZWxlY3RvciwgdXNlTmFtZXNwYWNlcykKQEAgLTQyLDYgKzYz
LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdoZWFkJylbMF07CiAgICAgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgnaW5wdXQnKVswXTsKICAgICBsb2dEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnbG9nJyk7CisgICAgbG9nKCdCYXNpYyBzZWxlY3RvciB0ZXN0czonKTsKICAgICBydW5TZWxl
Y3RvclRlc3QoTUFUQ0gsICc6Oi13ZWJraXQtc2xpZGVyLXRodW1iJyk7CiAgICAgcnVuU2VsZWN0
b3JUZXN0KE5PX01BVENILCAnOjotd2Via2l0LXNsaWRlci10aHVtYicsIFdJVEhfTkFNRVNQQUNF
Uyk7CiAgICAgcnVuU2VsZWN0b3JUZXN0KE1BVENILCAnKnw6Oi13ZWJraXQtc2xpZGVyLXRodW1i
JywgV0lUSF9OQU1FU1BBQ0VTKTsKQEAgLTY2LDkgKzg4LDI5IEBAIGZ1bmN0aW9uIHJ1blRlc3Qo
KQogICAgIHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJ2lucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0
LXNsaWRlci10aHVtYicpOwogICAgIHJ1blNlbGVjdG9yVGVzdChNQVRDSCwgJ2lucHV0I2Zvb1t0
eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWInKTsKICAgICBydW5TZWxlY3RvclRlc3Qo
TUFUQ0gsICdpbnB1dC5iYXJbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iJyk7Cisg
ICAgbG9nKCc8YnI+U2hvdWxkblwndCBpZ25vcmUgc2VsZWN0b3IgYWZ0ZXIgdGhlIHVua25vd24g
cHNldWRvIGVsZW1lbnQ6Jyk7CisgICAgRElTQUJMRURfU0VMRUNUT1JTLmZvckVhY2goZXhwZWN0
Tm9NYXRjaCk7CisgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGxvZygnPGJyPlNob3Vs
ZCBub3QgbWF0Y2ggZGlzYWJsZWQgaW5wdXQsIGJlY2F1c2UgdGhlIGRpc2FibGVkIHN0YXRlIGlz
IG9uIHRoZSBpbnB1dCwgbm90IHRoZSB0aHVtYjonKTsKKyAgICBESVNBQkxFRF9TRUxFQ1RPUlMu
Zm9yRWFjaChleHBlY3ROb01hdGNoKTsKKyAgICBpbnB1dC5kaXNhYmxlZCA9IGZhbHNlOworICAg
IGlmICghaG92ZXJPdmVyU2xpZGVyVGh1bWIoKSkgeworICAgICAgICBsb2coJzpob3ZlciB0ZXN0
cyByZXF1aXJlIERSVCcpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGxvZygnPGJyPlNo
b3VsZCBtYXRjaCA6aG92ZXIgd2hlbiB0aGUgbW91c2UgaXMgb3ZlciB0aGUgc2xpZGVyIHRodW1i
OicpOworICAgIEhPVkVSX1NFTEVDVE9SUy5mb3JFYWNoKGV4cGVjdE1hdGNoKTsKICAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlucHV0KTsKIH0KIAorZnVuY3Rpb24gZXhwZWN0Tm9NYXRj
aChzZWxlY3RvcikgeworICAgIHJ1blNlbGVjdG9yVGVzdChOT19NQVRDSCwgc2VsZWN0b3IpOwor
fQorCitmdW5jdGlvbiBleHBlY3RNYXRjaChzZWxlY3RvcikgeworICAgIHJ1blNlbGVjdG9yVGVz
dChNQVRDSCwgc2VsZWN0b3IpOworfQorCiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZmRjY2Y3Mjk4YjNlMzNkYTU2MGM4ZmY2MzBl
Mzg2NGFlYjI3NGY0Li40ODM4NmYyMjE4NjA2MTUwNmEwNDk4MjQ5MjdlZjU4YjQwOTZiOTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDQtMTYgIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZWFjaCBzdWItc2VsZWN0b3IgY2hhaW5zIGFib3V0IHNoYWRvdyBk
ZXNjZW5kYW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTgzNDIKKworICAgICAgICBUaGUgcHJpbWFyeSBjaGFuZ2UgaXMgdG8gdGhlIGxvZ2ljIG9m
IHBhcnNpbmcgc3BlY2lmaWVyczoKKyAgICAgICAgMSkgVGhlIHNoYWRvdyBkZXNjZW5kYW50IHNl
bGVjdG9ycyAodGhvc2Ugc3BlY2lmaWVycyB0aGF0IGFyZSB1bmtub3duCisgICAgICAgIHBzZXVk
byBlbGVtZW50IHNlbGVjdG9ycykgYXJlIGFsd2F5cyBrZXB0IGF0IHRoZSB0b3Agb2YgdGhlIGNo
YWluLgorICAgICAgICAyKSBUaGUgc3ViLXNlbGVjdG9ycyBhZnRlciBzaGFkb3cgZGVzY2VuZGFu
dCBzZWxlY3RvcnMgYXJlIHN0YXNoZWQgcmlnaHQKKyAgICAgICAgYmVoaW5kIHRoZSBzdWItc2Vs
ZWN0b3IsIGJ1dCBub3QgYXQgdGhlIGVuZCBvZiB0aGUgY2hhaW4uCisgICAgICAgIDMpIE90aGVy
IHN1Yi1zZWxlY3RvcnMgYXJlIGFwcGVuZGVkIGF0IHRoZSBlbmQgb2YgdGhlIGNoYWluLgorCisg
ICAgICAgICogY3NzL0NTU0dyYW1tYXIueTogQ2hhbmdlZCBzcGVjaWZpZXJfbGlzdCBjb2xsZWN0
aW9uIHRvIHVzZSBuZXcKKyAgICAgICAgICAgIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyIGhl
bHBlci4KKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZSk6IEFkZGVkIGxvZ2ljIHRv
CisgICAgICAgICAgICBsb29rIGZvciB0aGUgbGFzdCBTaGFkb3dEZXNjZW5kYW50IHJlbGF0aW9u
IGluIHRoZSBjaGFpbiBvZiBzZWxlY3RvcnMsCisgICAgICAgICAgICBiZWNhdXNlIHRoZSBuZXh0
IHNlbGVjdG9yIGFmdGVyIGl0IGlzIHRoZSBvbmUgdGhhdCBzaG91bGQgZ2V0IHRoZQorICAgICAg
ICAgICAgZWxlbWVudCBuYW1lLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjp1cGRhdGVT
cGVjaWZpZXJzKTogTW92ZWQgYW5kIG1vZGlmaWVkIHRoZSBsb2dpYyBmcm9tCisgICAgICAgICAg
ICBDU1NHcmFtbWFyLnkuIFRoZSBuZXcgbG9naWMgYWRqdXN0cyB0aGUgc2VsZWN0b3IgY2hhaW4g
dG8gYWxsb3cKKyAgICAgICAgICAgIHNoYWRvdyBkZXNjZW5kYW50IHNlbGVjdG9ycyBoYXZlIHN1
Yi1zZWxlY3RvcnMgKGFuZCBoYXZlIG11bHRpcGxlIHNoYWRvdworICAgICAgICAgICAgZGVzY2Vu
ZGFudHMgaW4gdGhlIGNoYWluKS4KKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6IEFkZGVkIGRl
Y2wuCisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXJTZWxlY3Rvcjo6aGFzU2hhZG93RGVzY2VuZGFudCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyU2VsZWN0b3I6Omluc2VydFRhZ0hpc3RvcnkpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclNlbGVjdG9yOjphcHBlbmRUYWdIaXN0b3J5KTog
QWRlZC4KKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyVmFsdWVzLmg6IEFkZGVkIGRlY2xzLgorICAg
ICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2VsZWN0b3I6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcik6IEFkZGVkCisg
ICAgICAgICAgICBzaGFkb3cgZGVzY2VuZGFudCBzZWxlY3RvciBtYXRjaCBjaGVjaywgc2luY2Ug
bm93IHRoZXJlIGNvdWxkIGJlIG1hbnkKKyAgICAgICAgICAgIG9mIHRoZW0gaW4gdGhlIHNlbGVj
dG9yIGNoYWluLgorCiAyMDExLTA0LTE0ICBTYXRpc2ggU2FtcGF0aCAgPHNhdGlzaEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dy
YW1tYXIueQppbmRleCAyNjllYWYwY2Y2MWY4YWI0Y2ZjYTU2NTljNDk4NTRkOTMzYjI2MjY3Li4z
MDlmMDViMzk5YTg3NWQ0Nzg2MWJjZjQ1MmFjMzljMzA4N2M5OTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NH
cmFtbWFyLnkKQEAgLTk3OSwyNCArOTc5LDggQEAgc3BlY2lmaWVyX2xpc3Q6CiAgICAgfCBzcGVj
aWZpZXJfbGlzdCBzcGVjaWZpZXIgewogICAgICAgICBpZiAoISQyKQogICAgICAgICAgICAgJCQg
PSAwOwotICAgICAgICBlbHNlIGlmICgkMSkgewotICAgICAgICAgICAgQ1NTUGFyc2VyKiBwID0g
c3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKLSAgICAgICAgICAgIENTU1BhcnNlclNl
bGVjdG9yKiBlbmQ7Ci0gICAgICAgICAgICBDU1NQYXJzZXJTZWxlY3RvciogaGlzdG9yeTsKLSAg
ICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHVua25vd24gcHNldWRvIGVsZW1lbnQgYWx3YXlzIHN0
YXlzIGF0IHRoZSB0b3Agb2Ygc2VsZWN0b3IgY2hhaW4uCi0gICAgICAgICAgICBpZiAoJDItPmlz
VW5rbm93blBzZXVkb0VsZW1lbnQoKSkgewotICAgICAgICAgICAgICAgIGVuZCA9ICQyOwotICAg
ICAgICAgICAgICAgIGhpc3RvcnkgPSAkMTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgZW5kID0gJDE7Ci0gICAgICAgICAgICAgICAgaGlzdG9yeSA9ICQyOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgJCQgPSBlbmQ7Ci0gICAgICAgICAgICB3aGlsZShlbmQtPnRh
Z0hpc3RvcnkoKSkKLSAgICAgICAgICAgICAgICBlbmQgPSBlbmQtPnRhZ0hpc3RvcnkoKTsKLSAg
ICAgICAgICAgIGVuZC0+c2V0UmVsYXRpb24oQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yKTsKLSAg
ICAgICAgICAgIGVuZC0+c2V0VGFnSGlzdG9yeShwLT5zaW5rRmxvYXRpbmdTZWxlY3RvcihoaXN0
b3J5KSk7Ci0gICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoJDEpCisgICAgICAgICAgICAkJCA9
IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlciktPnVwZGF0ZVNwZWNpZmllcnMoJDEsICQy
KTsKICAgICB9CiAgICAgfCBzcGVjaWZpZXJfbGlzdCBlcnJvciB7CiAgICAgICAgICQkID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMWQ4YjZiMGRjMThmMzhlMjk1MjU0MzU0N2I3
MTdiNzI2YjQ5OWQyNC4uZGEyNzJjMDVkZjNmMDY5NzFmYjBkMjc3ZDUzMjY5YTdjZTcyZDhhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTYzNjksOSArNjM2OSwxNiBAQCB2b2lkIENT
U1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZShjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWVzcGFjZVByZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc3BlY2lmaWVy
cy0+c2V0UmVsYXRpb24oQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQpOwotICAgIGlmIChD
U1NQYXJzZXJTZWxlY3RvciogaGlzdG9yeSA9IHNwZWNpZmllcnMtPnRhZ0hpc3RvcnkoKSkgewot
ICAgICAgICBoaXN0b3J5LT5zZXRUYWcodGFnKTsKKyAgICBDU1NQYXJzZXJTZWxlY3RvciogbGFz
dFNoYWRvd0Rlc2NlbmRhbnQgPSBzcGVjaWZpZXJzOworICAgIENTU1BhcnNlclNlbGVjdG9yKiBo
aXN0b3J5ID0gc3BlY2lmaWVyczsKKyAgICB3aGlsZSAoaGlzdG9yeS0+dGFnSGlzdG9yeSgpKSB7
CisgICAgICAgIGhpc3RvcnkgPSBoaXN0b3J5LT50YWdIaXN0b3J5KCk7CisgICAgICAgIGlmICho
aXN0b3J5LT5oYXNTaGFkb3dEZXNjZW5kYW50KCkpCisgICAgICAgICAgICBsYXN0U2hhZG93RGVz
Y2VuZGFudCA9IGhpc3Rvcnk7CisgICAgfQorCisgICAgaWYgKGxhc3RTaGFkb3dEZXNjZW5kYW50
LT50YWdIaXN0b3J5KCkpIHsKKyAgICAgICAgbGFzdFNoYWRvd0Rlc2NlbmRhbnQtPnRhZ0hpc3Rv
cnkoKS0+c2V0VGFnKHRhZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTYzODIsOSAr
NjM4OSwyNSBAQCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFt
ZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVByZQogCiAgICAgQ1NTUGFyc2VyU2VsZWN0
b3IqIGVsZW1lbnROYW1lU2VsZWN0b3IgPSBuZXcgQ1NTUGFyc2VyU2VsZWN0b3I7CiAgICAgZWxl
bWVudE5hbWVTZWxlY3Rvci0+c2V0VGFnKHRhZyk7Ci0gICAgc3BlY2lmaWVycy0+c2V0VGFnSGlz
dG9yeShlbGVtZW50TmFtZVNlbGVjdG9yKTsKKyAgICBsYXN0U2hhZG93RGVzY2VuZGFudC0+c2V0
VGFnSGlzdG9yeShlbGVtZW50TmFtZVNlbGVjdG9yKTsKKyAgICBsYXN0U2hhZG93RGVzY2VuZGFu
dC0+c2V0UmVsYXRpb24oQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQpOwogfQogCitDU1NQ
YXJzZXJTZWxlY3RvciogQ1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzKENTU1BhcnNlclNlbGVj
dG9yKiBzcGVjaWZpZXJzLCBDU1NQYXJzZXJTZWxlY3RvciogbmV3U3BlY2lmaWVyKQoreworICAg
IGlmIChuZXdTcGVjaWZpZXItPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSkgeworICAgICAgICAv
LyBVbmtub3duIHBzZXVkbyBlbGVtZW50IGFsd2F5cyBnb2VzIGF0IHRoZSB0b3Agb2Ygc2VsZWN0
b3IgY2hhaW4uCisgICAgICAgIG5ld1NwZWNpZmllci0+YXBwZW5kVGFnSGlzdG9yeShDU1NTZWxl
Y3Rvcjo6U2hhZG93RGVzY2VuZGFudCwgc2lua0Zsb2F0aW5nU2VsZWN0b3Ioc3BlY2lmaWVycykp
OworICAgICAgICByZXR1cm4gbmV3U3BlY2lmaWVyOworICAgIH0KKyAgICBpZiAoc3BlY2lmaWVy
cy0+aXNVbmtub3duUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgIC8vIFNwZWNpZmllcnMgZm9y
IHVua25vd24gcHNldWRvIGVsZW1lbnQgZ28gcmlnaHQgYmVoaW5kIGl0IGluIHRoZSBjaGFpbi4K
KyAgICAgICAgc3BlY2lmaWVycy0+aW5zZXJ0VGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6U3ViU2Vs
ZWN0b3IsIHNpbmtGbG9hdGluZ1NlbGVjdG9yKG5ld1NwZWNpZmllciksIENTU1NlbGVjdG9yOjpT
aGFkb3dEZXNjZW5kYW50KTsKKyAgICAgICAgcmV0dXJuIHNwZWNpZmllcnM7CisgICAgfQorICAg
IHNwZWNpZmllcnMtPmFwcGVuZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yLCBz
aW5rRmxvYXRpbmdTZWxlY3RvcihuZXdTcGVjaWZpZXIpKTsKKyAgICByZXR1cm4gc3BlY2lmaWVy
czsKK30KIAogQ1NTUnVsZSogQ1NTUGFyc2VyOjpjcmVhdGVQYWdlUnVsZShQYXNzT3duUHRyPENT
U1BhcnNlclNlbGVjdG9yPiBwYWdlU2VsZWN0b3IpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5k
ZXggNGIxZmFkNjUxYTEyNzY3MmIyZWY2N2MyOWE3MTFiNDJhNDJjZGJlMC4uMDUyNDMwMjI2MjNl
ZTA2NjM4NWRhODJlYWY2YzlmYTI2ODZjMTMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAt
MjIwLDYgKzIyMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGFkZE5h
bWVzcGFjZShjb25zdCBBdG9taWNTdHJpbmcmIHByZWZpeCwgY29uc3QgQXRvbWljU3RyaW5nJiB1
cmkpOwogICAgICAgICB2b2lkIHVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUoY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lc3BhY2VQcmVmaXgsIGNvbnN0IEF0b21pY1N0cmluZyYgZWxlbWVu
dE5hbWUsIENTU1BhcnNlclNlbGVjdG9yKik7CisgICAgICAgIENTU1BhcnNlclNlbGVjdG9yKiB1
cGRhdGVTcGVjaWZpZXJzKENTU1BhcnNlclNlbGVjdG9yKiwgQ1NTUGFyc2VyU2VsZWN0b3IqKTsK
IAogICAgICAgICB2b2lkIGludmFsaWRCbG9ja0hpdCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXJWYWx1ZXMuY3BwCmluZGV4IDk0ZGNkM2NhMmZkZDQxNzEzMjcxNDEyYzAzMmNiMzZiNDYy
ZjQ4YWUuLjg4OGE0ZDc1MDU0ZmQ1YjcwYWZjMmUxNDlkMTM4OTQ2OWE3NWIzNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCkBAIC0xMTQsNSArMTE0LDI5IEBAIHZvaWQg
Q1NTUGFyc2VyU2VsZWN0b3I6OmFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPE93blB0cjxDU1NQ
YXJzZXJTZWxlY3Rvcj4gPiYKICAgICBzZWxlY3Rvckxpc3QtPmFkb3B0U2VsZWN0b3JWZWN0b3Io
c2VsZWN0b3JWZWN0b3IpOwogICAgIG1fc2VsZWN0b3ItPnNldFNlbGVjdG9yTGlzdChhZG9wdFB0
cihzZWxlY3Rvckxpc3QpKTsKIH0KKworYm9vbCBDU1NQYXJzZXJTZWxlY3Rvcjo6aGFzU2hhZG93
RGVzY2VuZGFudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0b3ItPnJlbGF0aW9uKCkg
PT0gQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQ7Cit9CisKK3ZvaWQgQ1NTUGFyc2VyU2Vs
ZWN0b3I6Omluc2VydFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIGJlZm9yZSwgUGFz
c093blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc2VsZWN0b3IsIENTU1NlbGVjdG9yOjpSZWxhdGlv
biBhZnRlcikKK3sKKyAgICBpZiAobV90YWdIaXN0b3J5KQorICAgICAgICBzZWxlY3Rvci0+c2V0
VGFnSGlzdG9yeShtX3RhZ0hpc3RvcnkucmVsZWFzZSgpKTsKKyAgICBzZXRSZWxhdGlvbihiZWZv
cmUpOworICAgIHNlbGVjdG9yLT5zZXRSZWxhdGlvbihhZnRlcik7CisgICAgbV90YWdIaXN0b3J5
ID0gc2VsZWN0b3I7Cit9CisKK3ZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OmFwcGVuZFRhZ0hpc3Rv
cnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIHJlbGF0aW9uLCBQYXNzT3duUHRyPENTU1BhcnNlclNl
bGVjdG9yPiBzZWxlY3RvcikKK3sKKyAgICBDU1NQYXJzZXJTZWxlY3RvciogZW5kID0gdGhpczsK
KyAgICB3aGlsZSAoZW5kLT50YWdIaXN0b3J5KCkpCisgICAgICAgIGVuZCA9IGVuZC0+dGFnSGlz
dG9yeSgpOworICAgIGVuZC0+c2V0UmVsYXRpb24ocmVsYXRpb24pOworICAgIGVuZC0+c2V0VGFn
SGlzdG9yeShzZWxlY3Rvcik7Cit9CisKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlclZhbHVlcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVl
cy5oCmluZGV4IDgxZWNiYzNlMjZhMzAzZWJmYzM3YWIyN2MwMTZiZTgwM2IwODgyMzEuLmM5YzY0
YTEzOTdjNjVkMTJkYjYyYTM0NWFhMTk3YzI1NzFiYzQ3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyVmFsdWVzLmgKQEAgLTExNiw5ICsxMTYsMTIgQEAgcHVibGljOgogICAgIENTU1NlbGVj
dG9yOjpQc2V1ZG9UeXBlIHBzZXVkb1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdG9yLT5w
c2V1ZG9UeXBlKCk7IH0KICAgICBib29sIGlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSBjb25zdCB7
IHJldHVybiBtX3NlbGVjdG9yLT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCk7IH0KICAgICBib29s
IGlzU2ltcGxlKCkgY29uc3QgeyByZXR1cm4gIW1fdGFnSGlzdG9yeSAmJiBtX3NlbGVjdG9yLT5p
c1NpbXBsZSgpOyB9CisgICAgYm9vbCBoYXNTaGFkb3dEZXNjZW5kYW50KCkgY29uc3Q7CiAKICAg
ICBDU1NQYXJzZXJTZWxlY3RvciogdGFnSGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fdGFnSGlz
dG9yeS5nZXQoKTsgfQogICAgIHZvaWQgc2V0VGFnSGlzdG9yeShQYXNzT3duUHRyPENTU1BhcnNl
clNlbGVjdG9yPiBzZWxlY3RvcikgeyBtX3RhZ0hpc3RvcnkgPSBzZWxlY3RvcjsgfQorICAgIHZv
aWQgaW5zZXJ0VGFnSGlzdG9yeShDU1NTZWxlY3Rvcjo6UmVsYXRpb24gYmVmb3JlLCBQYXNzT3du
UHRyPENTU1BhcnNlclNlbGVjdG9yPiwgQ1NTU2VsZWN0b3I6OlJlbGF0aW9uIGFmdGVyKTsKKyAg
ICB2b2lkIGFwcGVuZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlJlbGF0aW9uLCBQYXNzT3duUHRy
PENTU1BhcnNlclNlbGVjdG9yPik7CiAKIHByaXZhdGU6CiAgICAgT3duUHRyPENTU1NlbGVjdG9y
PiBtX3NlbGVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4
IDcxNzQ2ZjQ5ZTYxNGFjNGI3Y2JlZTdkOWQ2OTdkNzJmNjRiZjQ5MjQuLmQ1MjI3YzVhYWQ3ZGY4
OWVmZjlhZjc4YjhkM2Y3MGQyNDg0M2FhZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAKQEAgLTI5MzksNiArMjkzOSw5IEBAIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6
U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWwsIEVsZW1l
CiAgICAgICAgIGlmICghZWxlbWVudFN0eWxlICYmICFtX2NvbGxlY3RSdWxlc09ubHkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAgICAgaWYgKHNlbC0+aXNVbmtub3duUHNldWRv
RWxlbWVudCgpKQorICAgICAgICAgICAgcmV0dXJuIGUtPnNoYWRvd1BzZXVkb0lkKCkgPT0gc2Vs
LT52YWx1ZSgpOworCiAgICAgICAgIFBzZXVkb0lkIHBzZXVkb0lkID0gQ1NTU2VsZWN0b3I6OnBz
ZXVkb0lkKHNlbC0+cHNldWRvVHlwZSgpKTsKICAgICAgICAgaWYgKHBzZXVkb0lkID09IEZJUlNU
X0xFVFRFUikgewogICAgICAgICAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IGUtPmRvY3Vt
ZW50KCkpCg==
</data>
<flag name="review"
          id="82936"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="82937"
          type_id="3"
          status="-"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>