<?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>80549</bug_id>
          
          <creation_ts>2012-03-07 15:42:26 -0800</creation_ts>
          <short_desc>[MutationObservers] Enforce a consistent order of MutationRecord delivery</short_desc>
          <delta_ts>2012-03-21 13:49:34 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68729</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>darin</cc>
    
    <cc>ojan</cc>
    
    <cc>rafaelw</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>573313</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-07 15:42:26 -0800</bug_when>
    <thetext>[MutationObservers] Enforce a consistent order of MutationRecord delivery</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573317</commentid>
    <comment_count>1</comment_count>
      <attachid>130713</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-07 15:45:11 -0800</bug_when>
    <thetext>Created attachment 130713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573319</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-07 15:48:21 -0800</bug_when>
    <thetext>The exact ordering is currently specified in http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-mo-invoke, but I&apos;ve suggested a change to the algorithm to match this patch in http://lists.w3.org/Archives/Public/www-dom/2012JanMar/0145.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576284</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-12 11:04:55 -0700</bug_when>
    <thetext>This is now ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576298</commentid>
    <comment_count>4</comment_count>
      <attachid>130713</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-12 11:17:12 -0700</bug_when>
    <thetext>Comment on attachment 130713
Patch

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

&gt; Source/WebCore/dom/WebKitMutationObserver.h:98
&gt; +    int m_priority;

Are you at all worried about overflow? At the least, this should probably be unsigned, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576304</commentid>
    <comment_count>5</comment_count>
      <attachid>130713</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-12 11:23:12 -0700</bug_when>
    <thetext>Comment on attachment 130713
Patch

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

&gt;&gt; Source/WebCore/dom/WebKitMutationObserver.h:98
&gt;&gt; +    int m_priority;
&gt; 
&gt; Are you at all worried about overflow? At the least, this should probably be unsigned, no?

I find it unlikely that a renderer would behave reasonably having created 2 billion mutation observers. Making it unsigned doesn&apos;t help much (if you&apos;ve already created 2 billion, why not another 2 billion?).

If you think this is something that we should worry about, perhaps a completely different implementation (something better matching the spec, perhaps) could be in order: keeping a list of all living mutation observers, and iterating over that for delivery. But that will behave poorly if we have lots of observers only a few of which are active at a time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576372</commentid>
    <comment_count>6</comment_count>
      <attachid>130713</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-12 12:11:42 -0700</bug_when>
    <thetext>Comment on attachment 130713
Patch

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

&gt;&gt;&gt; Source/WebCore/dom/WebKitMutationObserver.h:98
&gt;&gt;&gt; +    int m_priority;
&gt;&gt; 
&gt;&gt; Are you at all worried about overflow? At the least, this should probably be unsigned, no?
&gt; 
&gt; I find it unlikely that a renderer would behave reasonably having created 2 billion mutation observers. Making it unsigned doesn&apos;t help much (if you&apos;ve already created 2 billion, why not another 2 billion?).
&gt; 
&gt; If you think this is something that we should worry about, perhaps a completely different implementation (something better matching the spec, perhaps) could be in order: keeping a list of all living mutation observers, and iterating over that for delivery. But that will behave poorly if we have lots of observers only a few of which are active at a time.

As per offline discussion, making this unsigned and punting overflow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576377</commentid>
    <comment_count>7</comment_count>
      <attachid>131378</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-12 12:18:13 -0700</bug_when>
    <thetext>Created attachment 131378
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576442</commentid>
    <comment_count>8</comment_count>
      <attachid>131378</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 13:11:33 -0700</bug_when>
    <thetext>Comment on attachment 131378
Patch for landing

Clearing flags on attachment: 131378

Committed r110465: &lt;http://trac.webkit.org/changeset/110465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576443</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 13:11:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584595</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-03-21 13:49:34 -0700</bug_when>
    <thetext>*** Bug 79710 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130713</attachid>
            <date>2012-03-07 15:45:11 -0800</date>
            <delta_ts>2012-03-12 12:18:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80549-20120307154510.patch</filename>
            <type>text/plain</type>
            <size>11357</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZkN2U1NjU4ZTIyYWZj
NmUxMjc1ZjlkNzk2ZTUxNTk0NjcyNGMwNy4uZjhhNDk5ZGZkMGY0MTQ1NjM1MTMyYWIyZDUzNzZl
MjMwZmMxOTE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTA3ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtNdXRhdGlvbk9ic2VydmVy
c10gRW5mb3JjZSBhIGNvbnNpc3RlbnQgb3JkZXIgb2YgTXV0YXRpb25SZWNvcmQgZGVsaXZlcnkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNTQ5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTXV0YXRpb25z
IHNob3VsZCBiZSBkZWxpdmVyZWQgaW4gb3JkZXIgb2YgY3JlYXRpb24uCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvbXV0YXRpb24vY3JlYXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L211dGF0aW9uL2RlbGl2ZXJ5LW9yZGVyLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvbXV0YXRpb24vbXV0YXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCisKKyAgICAgICAgKiBkb20v
V2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYktpdE11dGF0aW9uT2JzZXJ2ZXI6Ok9ic2VydmVyTGVzc1RoYW46Om9wZXJh
dG9yKCkpOiBGdW5jdG9yIGZvciB1c2Ugd2l0aCBzdGQ6OnNvcnQuCisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
S2l0TXV0YXRpb25PYnNlcnZlcjo6V2ViS2l0TXV0YXRpb25PYnNlcnZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKTogTW92
ZSBvYnNlcnZlcnMgaW50byBhIHNvcnRlZCB2ZWN0b3IgYmVmb3JlIGRlbGl2ZXJ5LgorICAgICAg
ICAqIGRvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmg6IEFkZCBhICJwcmlvcml0eSIgbWVtYmVy
IHdoaWNoIG1vbm90b25pY2FsbHkgaW5jcmVhc2VzIHdpdGggZWFjaCBjb25zdHJ1Y3Rpb24uCisK
IDIwMTItMDMtMDcgIEFydW4gUGF0b2xlICA8Ym1mODM0QG1vdG9yb2xhLmNvbT4KIAogICAgICAg
ICBIVE1MVHJhY2tFbGVtZW50LmlkbCBkb2Vzbid0IGhhdmUgZGVmYXVsdCBhdHRyaWJ1dGUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAKaW5kZXggMzMw
Y2RjYTQ2M2M5NzMzNzUxYWYwOTNmYTQ0NGI3M2QyNmI1ZWU0NS4uMjgwNzZlOWMwMmQzMTY5ODU4
ZmNiMTk3NTYyM2YzOTVmNjAwMWYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dl
YktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRN
dXRhdGlvbk9ic2VydmVyLmNwcApAQCAtNDAsMTggKzQwLDMxIEBACiAjaW5jbHVkZSAiTXV0YXRp
b25PYnNlcnZlclJlZ2lzdHJhdGlvbi5oIgogI2luY2x1ZGUgIk11dGF0aW9uUmVjb3JkLmgiCiAj
aW5jbHVkZSAiTm9kZS5oIgotI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgorI2luY2x1ZGUg
PGFsZ29yaXRobT4KKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK3N0YXRpYyBpbnQgc19vYnNlcnZlclByaW9yaXR5ID0gMDsKKworc3RydWN0IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI6Ok9ic2VydmVyTGVzc1RoYW4geworICAgIGJvb2wgb3BlcmF0b3IoKShj
b25zdCBSZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4mIGxocywgY29uc3QgUmVmUHRyPFdl
YktpdE11dGF0aW9uT2JzZXJ2ZXI+JiByaHMpCisgICAgeworICAgICAgICByZXR1cm4gbGhzLT5t
X3ByaW9yaXR5IDwgcmhzLT5tX3ByaW9yaXR5OworICAgIH0KK307CisKIFBhc3NSZWZQdHI8V2Vi
S2l0TXV0YXRpb25PYnNlcnZlcj4gV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6Y3JlYXRlKFBhc3NS
ZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2spCiB7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
Y2FsbGJhY2spKTsKIH0KIAogV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6V2ViS2l0TXV0YXRpb25P
YnNlcnZlcihQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+IGNhbGxiYWNrKQogICAgIDogbV9j
YWxsYmFjayhjYWxsYmFjaykKKyAgICAsIG1fcHJpb3JpdHkoKytzX29ic2VydmVyUHJpb3JpdHkp
CiB7CiB9CiAKQEAgLTEwNyw3ICsxMjAsNyBAQCB2b2lkIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6
Om9ic2VydmF0aW9uRW5kZWQoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaQogICAg
IG1fcmVnaXN0cmF0aW9ucy5yZW1vdmUocmVnaXN0cmF0aW9uKTsKIH0KIAotdHlwZWRlZiBMaXN0
SGFzaFNldDxSZWZQdHI8V2ViS2l0TXV0YXRpb25PYnNlcnZlcj4gPiBNdXRhdGlvbk9ic2VydmVy
U2V0OwordHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiA+IE11
dGF0aW9uT2JzZXJ2ZXJTZXQ7CiAKIHN0YXRpYyBNdXRhdGlvbk9ic2VydmVyU2V0JiBhY3RpdmVN
dXRhdGlvbk9ic2VydmVycygpCiB7CkBAIC0xNDUsMTAgKzE1OCwxMiBAQCB2b2lkIFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKQogICAgIGRlbGl2ZXJ5SW5Qcm9n
cmVzcyA9IHRydWU7CiAKICAgICB3aGlsZSAoIWFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkuaXNF
bXB0eSgpKSB7Ci0gICAgICAgIE11dGF0aW9uT2JzZXJ2ZXJTZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBh
Y3RpdmVNdXRhdGlvbk9ic2VydmVycygpLmJlZ2luKCk7Ci0gICAgICAgIFJlZlB0cjxXZWJLaXRN
dXRhdGlvbk9ic2VydmVyPiBvYnNlcnZlciA9ICppdGVyOwotICAgICAgICBhY3RpdmVNdXRhdGlv
bk9ic2VydmVycygpLnJlbW92ZShpdGVyKTsKLSAgICAgICAgb2JzZXJ2ZXItPmRlbGl2ZXIoKTsK
KyAgICAgICAgVmVjdG9yPFJlZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiA+IG9ic2VydmVy
czsKKyAgICAgICAgY29weVRvVmVjdG9yKGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCksIG9ic2Vy
dmVycyk7CisgICAgICAgIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJzKCkuY2xlYXIoKTsKKyAgICAg
ICAgc3RkOjpzb3J0KG9ic2VydmVycy5iZWdpbigpLCBvYnNlcnZlcnMuZW5kKCksIE9ic2VydmVy
TGVzc1RoYW4oKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2JzZXJ2ZXJzLnNp
emUoKTsgKytpKQorICAgICAgICAgICAgb2JzZXJ2ZXJzW2ldLT5kZWxpdmVyKCk7CiAgICAgfQog
CiAgICAgZGVsaXZlcnlJblByb2dyZXNzID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1dl
YktpdE11dGF0aW9uT2JzZXJ2ZXIuaAppbmRleCA0YTgzOGU0N2QzZGMwMzJmM2RmYWQ2OWRjOTE3
YTMyNWRkZjc4OTIxLi41Y2JkYTA5ZmQ0MmQ5NzAyMDUyMjBiMGIwMDU0ODBiMWVhYjY5ZmU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgKQEAgLTg1LDYg
Kzg1LDggQEAgcHVibGljOgogICAgIHZvaWQgZW5xdWV1ZU11dGF0aW9uUmVjb3JkKFBhc3NSZWZQ
dHI8TXV0YXRpb25SZWNvcmQ+KTsKIAogcHJpdmF0ZToKKyAgICBzdHJ1Y3QgT2JzZXJ2ZXJMZXNz
VGhhbjsKKwogICAgIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoUGFzc1JlZlB0cjxNdXRhdGlvbkNh
bGxiYWNrPik7CiAgICAgdm9pZCBkZWxpdmVyKCk7CiAKQEAgLTkzLDYgKzk1LDcgQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gbV9jYWxsYmFjazsKICAgICBWZWN0b3I8
UmVmUHRyPE11dGF0aW9uUmVjb3JkPiA+IG1fcmVjb3JkczsKICAgICBIYXNoU2V0PE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiBtX3JlZ2lzdHJhdGlvbnM7CisgICAgaW50IG1fcHJpb3Jp
dHk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjMyMzMxMmY3NDhlMjgyYzAwZjQ3MGVlNzJlYzY2YWZkY2Zj
NzA3ZS4uMjQ5OWMxNzE1Nzg5NjE2Yjk0NDJkZGMwMWVhZGY4ZmZlYjM4NzNhZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDEyLTAzLTA3ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtNdXRhdGlvbk9ic2VydmVyc10gRW5mb3JjZSBhIGNvbnNpc3RlbnQgb3Jk
ZXIgb2YgTXV0YXRpb25SZWNvcmQgZGVsaXZlcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNTQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2NyZWF0ZS1kdXJpbmctZGVsaXZl
cnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2NyZWF0ZS1k
dXJpbmctZGVsaXZlcnkuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tdXRhdGlvbi9kZWxp
dmVyeS1vcmRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L211dGF0aW9uL211dGF0ZS1k
dXJpbmctZGVsaXZlcnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L211dGF0
aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMDcgIFN0
ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9t
aXVtXSBNYXJraW5nIGZpbGUtd3JpdGVyLWV2ZW50cy5odG1sIGFzIGZsYWt5LWNyYXNoaW5nIG9u
IFdpbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3JlYXRlLWR1cmlu
Zy1kZWxpdmVyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NyZWF0
ZS1kdXJpbmctZGVsaXZlcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzODZkZmFjZDVlMThh
ZjJkNzEyYzY5OGE5Mzg4MzNhOTc1MjFhY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L211dGF0aW9uL2NyZWF0ZS1kdXJpbmctZGVsaXZlcnktZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTQgQEAKK1Rlc3QgdGhhdCBNdXRhdGlvbk9ic2VydmVycyBjcmVhdGVkIGR1cmluZyBk
ZWxpdmVyeSBtdXN0IHdhaXQgZm9yIHRoZSBuZXh0IGxvb3AuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIG9yZGVyLmxlbmd0aCBpcyA0CitQQVNTIG9yZGVyWzBdIGlzIDEK
K1BBU1Mgb3JkZXJbMV0gaXMgMgorUEFTUyBvcmRlclsyXSBpcyAxCitQQVNTIG9yZGVyWzNdIGlz
IDMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NyZWF0ZS1kdXJpbmctZGVsaXZl
cnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3JlYXRlLWR1cmluZy1kZWxpdmVy
eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNlZWUyNGU3MDgyY2Y4MWQ1YTVhNTQ5YzRjZDdiNGQyZGI4ZTIw
MjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NyZWF0ZS1k
dXJpbmctZGVsaXZlcnkuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oJ1Rlc3Qg
dGhhdCBNdXRhdGlvbk9ic2VydmVycyBjcmVhdGVkIGR1cmluZyBkZWxpdmVyeSBtdXN0IHdhaXQg
Zm9yIHRoZSBuZXh0IGxvb3AuJyk7CitmdW5jdGlvbiBmaW5pc2goKSB7CisgICAgc2hvdWxkQmUo
J29yZGVyLmxlbmd0aCcsICc0Jyk7CisgICAgc2hvdWxkQmUoJ29yZGVyWzBdJywgJzEnKTsKKyAg
ICBzaG91bGRCZSgnb3JkZXJbMV0nLCAnMicpOworICAgIHNob3VsZEJlKCdvcmRlclsyXScsICcx
Jyk7CisgICAgc2hvdWxkQmUoJ29yZGVyWzNdJywgJzMnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKwordmFyIG9yZGVyID0gW107Cit2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CisKK3ZhciBvYnNlcnZlcjM7Cit2YXIgb2JzZXJ2ZXIxID0gbmV3IFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgb3JkZXIucHVzaCgxKTsKKyAg
ICBpZiAoIW9ic2VydmVyMykgeworICAgICAgICBvYnNlcnZlcjMgPSBuZXcgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgICAgIG9yZGVyLnB1c2go
Myk7CisgICAgICAgIH0pOworICAgICAgICBvYnNlcnZlcjMub2JzZXJ2ZShkaXYsIHthdHRyaWJ1
dGVzOiB0cnVlfSk7CisgICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoJ2ZvbycsICdiYXonKTsKKyAg
ICB9Cit9KTsKK3ZhciBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5j
dGlvbihtdXRhdGlvbnMpIHsKKyAgICBvcmRlci5wdXNoKDIpOworfSk7CisKK29ic2VydmVyMS5v
YnNlcnZlKGRpdiwge2F0dHJpYnV0ZXM6IHRydWV9KTsKK29ic2VydmVyMi5vYnNlcnZlKGRpdiwg
e2F0dHJpYnV0ZXM6IHRydWV9KTsKK2Rpdi5zZXRBdHRyaWJ1dGUoJ2ZvbycsICdiYXInKTsKK3Nl
dFRpbWVvdXQoZmluaXNoLCAwKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tdXRhdGlvbi9kZWxpdmVyeS1vcmRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRh
dGlvbi9kZWxpdmVyeS1vcmRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNTVjMGQ2MmI2NTM0OGQ5ZWFh
M2MyYjUwNjdmNWZhZmI4MmI0ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL2RlbGl2ZXJ5LW9yZGVyLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0
aW9uKCdUZXN0IHRoYXQgTXV0YXRpb25PYnNlcnZlcnMgYXJlIGRlbGl2ZXJlZCB0byBpbiBvcmRl
ciBvZiBjcmVhdGlvbi4nKTsKK2Z1bmN0aW9uIGZpbmlzaCgpIHsKKyAgICBzaG91bGRCZSgnb3Jk
ZXIubGVuZ3RoJywgJzEwJyk7CisgICAgc2hvdWxkQmUoJ29yZGVyWzBdJywgJzAnKTsKKyAgICBz
aG91bGRCZSgnb3JkZXJbMV0nLCAnMScpOworICAgIHNob3VsZEJlKCdvcmRlclsyXScsICcyJyk7
CisgICAgc2hvdWxkQmUoJ29yZGVyWzNdJywgJzMnKTsKKyAgICBzaG91bGRCZSgnb3JkZXJbNF0n
LCAnNCcpOworICAgIHNob3VsZEJlKCdvcmRlcls1XScsICc1Jyk7CisgICAgc2hvdWxkQmUoJ29y
ZGVyWzZdJywgJzYnKTsKKyAgICBzaG91bGRCZSgnb3JkZXJbN10nLCAnNycpOworICAgIHNob3Vs
ZEJlKCdvcmRlcls4XScsICc4Jyk7CisgICAgc2hvdWxkQmUoJ29yZGVyWzldJywgJzknKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordmFyIG9yZGVyID0gW107Cit2YXIgb2JzZXJ2ZXJzID0g
W107CisKK2Z1bmN0aW9uIHNldFVwT3JkZXJpbmcobnVtKSB7CisgICAgb2JzZXJ2ZXJzLnB1c2go
bmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAg
IG9yZGVyLnB1c2gobnVtKTsKKyAgICB9KSk7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTA7
ICsraSkgeworICAgIHNldFVwT3JkZXJpbmcoaSk7Cit9CisKK3ZhciBkaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKK29ic2VydmVyc1szXS5vYnNlcnZlKGRpdiwge2F0dHJpYnV0
ZXM6IHRydWV9KTsKK29ic2VydmVyc1syXS5vYnNlcnZlKGRpdiwge2NoYXJhY3RlckRhdGE6IHRy
dWUsIHN1YnRyZWU6IHRydWV9KTsKK29ic2VydmVyc1sxXS5vYnNlcnZlKGRpdiwge2F0dHJpYnV0
ZXM6IHRydWV9KTsKK29ic2VydmVyc1s3XS5vYnNlcnZlKGRpdiwge2NoaWxkTGlzdDogdHJ1ZX0p
Oworb2JzZXJ2ZXJzWzRdLm9ic2VydmUoZGl2LCB7YXR0cmlidXRlczogdHJ1ZX0pOworb2JzZXJ2
ZXJzWzldLm9ic2VydmUoZGl2LCB7YXR0cmlidXRlczogdHJ1ZX0pOworb2JzZXJ2ZXJzWzBdLm9i
c2VydmUoZGl2LCB7Y2hpbGRMaXN0OiB0cnVlfSk7CitvYnNlcnZlcnNbNV0ub2JzZXJ2ZShkaXYs
IHthdHRyaWJ1dGVzOiB0cnVlfSk7CitvYnNlcnZlcnNbNl0ub2JzZXJ2ZShkaXYsIHtjaGFyYWN0
ZXJEYXRhOiB0cnVlLCBzdWJ0cmVlOiB0cnVlfSk7CitvYnNlcnZlcnNbOF0ub2JzZXJ2ZShkaXYs
IHthdHRyaWJ1dGVzOiB0cnVlfSk7CitkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAnYmFyJyk7Citk
aXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2hlbGxvJykpOworZGl2LmZp
cnN0Q2hpbGQudGV4dENvbnRlbnQgPSAnZ29vZGJ5ZSc7CitzZXRUaW1lb3V0KGZpbmlzaCwgMCk7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRl
LWR1cmluZy1kZWxpdmVyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9u
L211dGF0ZS1kdXJpbmctZGVsaXZlcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5NmMwZDdh
MDllYjQ0MjcxMTIzZDQ4OTc5NWI4NWE4Nzc2NWFhMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3QgdGhhdCBtdXRhdGlvbnMgZHVyaW5nIGRlbGl2ZXJ5IGRv
IG5vdCBpbnRlcnJ1cHQgZGVsaXZlcnkgb3JkZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIG9yZGVyLmxlbmd0aCBpcyAzCitQQVNTIG9yZGVyWzBdIGlzIDEKK1BBU1Mg
b3JkZXJbMV0gaXMgMworUEFTUyBvcmRlclsyXSBpcyAyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9tdXRhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTMwMWI5
N2U1Y2QxOGExMDUyMjRjZmRhYzRmZTRmOGEzOTM3YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9tdXRhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwKQEAgLTAs
MCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQgbXV0YXRpb25zIGR1cmluZyBkZWxp
dmVyeSBkbyBub3QgaW50ZXJydXB0IGRlbGl2ZXJ5IG9yZGVyLicpOworZnVuY3Rpb24gZmluaXNo
KCkgeworICAgIHNob3VsZEJlKCdvcmRlci5sZW5ndGgnLCAnMycpOworICAgIHNob3VsZEJlKCdv
cmRlclswXScsICcxJyk7CisgICAgc2hvdWxkQmUoJ29yZGVyWzFdJywgJzMnKTsKKyAgICBzaG91
bGRCZSgnb3JkZXJbMl0nLCAnMicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit2YXIgb3Jk
ZXIgPSBbXTsKK3ZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKwordmFy
IG9ic2VydmVyMSA9IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9u
cykgeworICAgIG9yZGVyLnB1c2goMSk7CisgICAgZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7Cit9KTsKK3ZhciBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0
YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICBvcmRlci5wdXNoKDIpOwor
fSk7Cit2YXIgb2JzZXJ2ZXIzID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o
bXV0YXRpb25zKSB7CisgICAgb3JkZXIucHVzaCgzKTsKK30pOworCitvYnNlcnZlcjEub2JzZXJ2
ZShkaXYsIHthdHRyaWJ1dGVzOiB0cnVlfSk7CitvYnNlcnZlcjIub2JzZXJ2ZShkaXYsIHtjaGls
ZExpc3Q6IHRydWV9KTsKK29ic2VydmVyMy5vYnNlcnZlKGRpdiwge2F0dHJpYnV0ZXM6IHRydWV9
KTsKK2Rpdi5zZXRBdHRyaWJ1dGUoJ2ZvbycsICdiYXInKTsKK3NldFRpbWVvdXQoZmluaXNoLCAw
KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131378</attachid>
            <date>2012-03-12 12:18:13 -0700</date>
            <delta_ts>2012-03-12 13:11:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-80549-20120312121812.patch</filename>
            <type>text/plain</type>
            <size>11345</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTAyMDExMDEwYWJmYWE3
NjE4ZDFiZGRiOWVlNTc0MWU2NjFkMTBjMy4uYjZlMWM2ZDYyZjY4NWM5MzI1MDkyYjFiY2U5ZTk1
NDBhZDc2NmFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTA3ICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtNdXRhdGlvbk9ic2VydmVy
c10gRW5mb3JjZSBhIGNvbnNpc3RlbnQgb3JkZXIgb2YgTXV0YXRpb25SZWNvcmQgZGVsaXZlcnkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNTQ5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KKworICAgICAgICBNdXRhdGlvbnMgc2hv
dWxkIGJlIGRlbGl2ZXJlZCBpbiBvcmRlciBvZiBjcmVhdGlvbi4KKworICAgICAgICBUZXN0czog
ZmFzdC9tdXRhdGlvbi9jcmVhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvbXV0YXRpb24vZGVsaXZlcnktb3JkZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9t
dXRhdGlvbi9tdXRhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwKKworICAgICAgICAqIGRvbS9XZWJL
aXRNdXRhdGlvbk9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6T2JzZXJ2ZXJMZXNzVGhhbjo6b3BlcmF0b3Io
KSk6IEZ1bmN0b3IgZm9yIHVzZSB3aXRoIHN0ZDo6c29ydC4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YktpdE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRN
dXRhdGlvbk9ic2VydmVyOjpXZWJLaXRNdXRhdGlvbk9ic2VydmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMpOiBNb3ZlIG9i
c2VydmVycyBpbnRvIGEgc29ydGVkIHZlY3RvciBiZWZvcmUgZGVsaXZlcnkuCisgICAgICAgICog
ZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaDogQWRkIGEgInByaW9yaXR5IiBtZW1iZXIgd2hp
Y2ggbW9ub3RvbmljYWxseSBpbmNyZWFzZXMgd2l0aCBlYWNoIGNvbnN0cnVjdGlvbi4KKwogMjAx
Mi0wMy0xMiAgQW5kcmVhcyBLbGluZyAgPGF3ZXNvbWVrbGluZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVzdG9yZSBBdHRyOjpzdHlsZSgpIGZ1bmN0aW9uYWxpdHkuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5jcHAKaW5kZXggMzMwY2RjYTQ2M2M5NzMzNzUx
YWYwOTNmYTQ0NGI3M2QyNmI1ZWU0NS4uMWY4Mjk2ZWJmMzYzZmU3ZWE0NDg0OTBmM2M3ZjBjZDg5
OGQzZTAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVy
LmNwcApAQCAtNDAsMTggKzQwLDMxIEBACiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJhdGlvbi5oIgogI2luY2x1ZGUgIk11dGF0aW9uUmVjb3JkLmgiCiAjaW5jbHVkZSAiTm9kZS5o
IgotI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyB1bnNp
Z25lZCBzX29ic2VydmVyUHJpb3JpdHkgPSAwOworCitzdHJ1Y3QgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcjo6T2JzZXJ2ZXJMZXNzVGhhbiB7CisgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFJlZlB0
cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiYgbGhzLCBjb25zdCBSZWZQdHI8V2ViS2l0TXV0YXRp
b25PYnNlcnZlcj4mIHJocykKKyAgICB7CisgICAgICAgIHJldHVybiBsaHMtPm1fcHJpb3JpdHkg
PCByaHMtPm1fcHJpb3JpdHk7CisgICAgfQorfTsKKwogUGFzc1JlZlB0cjxXZWJLaXRNdXRhdGlv
bk9ic2VydmVyPiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpjcmVhdGUoUGFzc1JlZlB0cjxNdXRh
dGlvbkNhbGxiYWNrPiBjYWxsYmFjaykKIHsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihjYWxsYmFjaykp
OwogfQogCiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyOjpXZWJLaXRNdXRhdGlvbk9ic2VydmVyKFBh
c3NSZWZQdHI8TXV0YXRpb25DYWxsYmFjaz4gY2FsbGJhY2spCiAgICAgOiBtX2NhbGxiYWNrKGNh
bGxiYWNrKQorICAgICwgbV9wcmlvcml0eShzX29ic2VydmVyUHJpb3JpdHkrKykKIHsKIH0KIApA
QCAtMTA3LDcgKzEyMCw3IEBAIHZvaWQgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2YXRp
b25FbmRlZChNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKiByZWdpCiAgICAgbV9yZWdpc3Ry
YXRpb25zLnJlbW92ZShyZWdpc3RyYXRpb24pOwogfQogCi10eXBlZGVmIExpc3RIYXNoU2V0PFJl
ZlB0cjxXZWJLaXRNdXRhdGlvbk9ic2VydmVyPiA+IE11dGF0aW9uT2JzZXJ2ZXJTZXQ7Cit0eXBl
ZGVmIEhhc2hTZXQ8UmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+ID4gTXV0YXRpb25PYnNl
cnZlclNldDsKIAogc3RhdGljIE11dGF0aW9uT2JzZXJ2ZXJTZXQmIGFjdGl2ZU11dGF0aW9uT2Jz
ZXJ2ZXJzKCkKIHsKQEAgLTE0NSwxMCArMTU4LDEyIEBAIHZvaWQgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpCiAgICAgZGVsaXZlcnlJblByb2dyZXNzID0gdHJ1
ZTsKIAogICAgIHdoaWxlICghYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5pc0VtcHR5KCkpIHsK
LSAgICAgICAgTXV0YXRpb25PYnNlcnZlclNldDo6aXRlcmF0b3IgaXRlciA9IGFjdGl2ZU11dGF0
aW9uT2JzZXJ2ZXJzKCkuYmVnaW4oKTsKLSAgICAgICAgUmVmUHRyPFdlYktpdE11dGF0aW9uT2Jz
ZXJ2ZXI+IG9ic2VydmVyID0gKml0ZXI7Ci0gICAgICAgIGFjdGl2ZU11dGF0aW9uT2JzZXJ2ZXJz
KCkucmVtb3ZlKGl0ZXIpOwotICAgICAgICBvYnNlcnZlci0+ZGVsaXZlcigpOworICAgICAgICBW
ZWN0b3I8UmVmUHRyPFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI+ID4gb2JzZXJ2ZXJzOworICAgICAg
ICBjb3B5VG9WZWN0b3IoYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKSwgb2JzZXJ2ZXJzKTsKKyAg
ICAgICAgYWN0aXZlTXV0YXRpb25PYnNlcnZlcnMoKS5jbGVhcigpOworICAgICAgICBzdGQ6OnNv
cnQob2JzZXJ2ZXJzLmJlZ2luKCksIG9ic2VydmVycy5lbmQoKSwgT2JzZXJ2ZXJMZXNzVGhhbigp
KTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvYnNlcnZlcnMuc2l6ZSgpOyArK2kp
CisgICAgICAgICAgICBvYnNlcnZlcnNbaV0tPmRlbGl2ZXIoKTsKICAgICB9CiAKICAgICBkZWxp
dmVyeUluUHJvZ3Jlc3MgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9X
ZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRp
b25PYnNlcnZlci5oCmluZGV4IDRhODM4ZTQ3ZDNkYzAzMmYzZGZhZDY5ZGM5MTdhMzI1ZGRmNzg5
MjEuLmZiN2FhOGFkZTFjMzg5NDRkNzVkMDYwMTA2OGM5ZWM1OWRkMmY1ODIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaApAQCAtODUsNiArODUsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBlbnF1ZXVlTXV0YXRpb25SZWNvcmQoUGFzc1JlZlB0cjxNdXRhdGlv
blJlY29yZD4pOwogCiBwcml2YXRlOgorICAgIHN0cnVjdCBPYnNlcnZlckxlc3NUaGFuOworCiAg
ICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihQYXNzUmVmUHRyPE11dGF0aW9uQ2FsbGJhY2s+KTsK
ICAgICB2b2lkIGRlbGl2ZXIoKTsKIApAQCAtOTMsNiArOTUsNyBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxNdXRhdGlvbkNhbGxiYWNrPiBtX2NhbGxiYWNrOwogICAgIFZlY3RvcjxSZWZQdHI8TXV0
YXRpb25SZWNvcmQ+ID4gbV9yZWNvcmRzOwogICAgIEhhc2hTZXQ8TXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJhdGlvbio+IG1fcmVnaXN0cmF0aW9uczsKKyAgICB1bnNpZ25lZCBtX3ByaW9yaXR5Owog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGM4YWI4Y2JiOTE5MDkxNzVjYWY5M2UyYzE3YmNkMzhmMjAxYzk4NTAu
LjI4NzUyNjVhNmQ4MTRjNTE1ZmQ3MjNhNWRmMzkxNTJjYjVlY2MyZjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0wMy0wNyAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbTXV0YXRpb25PYnNlcnZlcnNdIEVuZm9yY2UgYSBjb25zaXN0ZW50IG9yZGVyIG9m
IE11dGF0aW9uUmVjb3JkIGRlbGl2ZXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MDU0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWku
CisKKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2NyZWF0ZS1kdXJpbmctZGVsaXZlcnktZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L211dGF0aW9uL2NyZWF0ZS1kdXJpbmctZGVs
aXZlcnkuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tdXRhdGlvbi9kZWxpdmVyeS1vcmRl
ci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVs
aXZlcnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L211dGF0aW9uL211dGF0
ZS1kdXJpbmctZGVsaXZlcnkuaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMTIgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTA5Mjg1KTogQ3Jh
c2ggaW4gV2ViQ29yZTo6RG9jdW1lbnQ6Om5vZGVDaGlsZHJlbldpbGxCZVJlbW92ZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3JlYXRlLWR1cmluZy1kZWxpdmVyeS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NyZWF0ZS1kdXJpbmctZGVs
aXZlcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzODZkZmFjZDVlMThhZjJkNzEyYzY5OGE5
Mzg4MzNhOTc1MjFhY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0
aW9uL2NyZWF0ZS1kdXJpbmctZGVsaXZlcnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAK
K1Rlc3QgdGhhdCBNdXRhdGlvbk9ic2VydmVycyBjcmVhdGVkIGR1cmluZyBkZWxpdmVyeSBtdXN0
IHdhaXQgZm9yIHRoZSBuZXh0IGxvb3AuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIG9yZGVyLmxlbmd0aCBpcyA0CitQQVNTIG9yZGVyWzBdIGlzIDEKK1BBU1Mgb3JkZXJb
MV0gaXMgMgorUEFTUyBvcmRlclsyXSBpcyAxCitQQVNTIG9yZGVyWzNdIGlzIDMKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NyZWF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vY3JlYXRlLWR1cmluZy1kZWxpdmVyeS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNlZWUyNGU3MDgyY2Y4MWQ1YTVhNTQ5YzRjZDdiNGQyZGI4ZTIwMjYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2NyZWF0ZS1kdXJpbmctZGVsaXZl
cnkuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBNdXRhdGlv
bk9ic2VydmVycyBjcmVhdGVkIGR1cmluZyBkZWxpdmVyeSBtdXN0IHdhaXQgZm9yIHRoZSBuZXh0
IGxvb3AuJyk7CitmdW5jdGlvbiBmaW5pc2goKSB7CisgICAgc2hvdWxkQmUoJ29yZGVyLmxlbmd0
aCcsICc0Jyk7CisgICAgc2hvdWxkQmUoJ29yZGVyWzBdJywgJzEnKTsKKyAgICBzaG91bGRCZSgn
b3JkZXJbMV0nLCAnMicpOworICAgIHNob3VsZEJlKCdvcmRlclsyXScsICcxJyk7CisgICAgc2hv
dWxkQmUoJ29yZGVyWzNdJywgJzMnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwordmFyIG9y
ZGVyID0gW107Cit2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKK3Zh
ciBvYnNlcnZlcjM7Cit2YXIgb2JzZXJ2ZXIxID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIo
ZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgb3JkZXIucHVzaCgxKTsKKyAgICBpZiAoIW9ic2Vy
dmVyMykgeworICAgICAgICBvYnNlcnZlcjMgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihm
dW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICAgICAgICAgIG9yZGVyLnB1c2goMyk7CisgICAgICAg
IH0pOworICAgICAgICBvYnNlcnZlcjMub2JzZXJ2ZShkaXYsIHthdHRyaWJ1dGVzOiB0cnVlfSk7
CisgICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoJ2ZvbycsICdiYXonKTsKKyAgICB9Cit9KTsKK3Zh
ciBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlv
bnMpIHsKKyAgICBvcmRlci5wdXNoKDIpOworfSk7CisKK29ic2VydmVyMS5vYnNlcnZlKGRpdiwg
e2F0dHJpYnV0ZXM6IHRydWV9KTsKK29ic2VydmVyMi5vYnNlcnZlKGRpdiwge2F0dHJpYnV0ZXM6
IHRydWV9KTsKK2Rpdi5zZXRBdHRyaWJ1dGUoJ2ZvbycsICdiYXInKTsKK3NldFRpbWVvdXQoZmlu
aXNoLCAwKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlv
bi9kZWxpdmVyeS1vcmRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9kZWxpdmVy
eS1vcmRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNTVjMGQ2MmI2NTM0OGQ5ZWFhM2MyYjUwNjdmNWZh
ZmI4MmI0ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL2Rl
bGl2ZXJ5LW9yZGVyLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCdUZXN0IHRo
YXQgTXV0YXRpb25PYnNlcnZlcnMgYXJlIGRlbGl2ZXJlZCB0byBpbiBvcmRlciBvZiBjcmVhdGlv
bi4nKTsKK2Z1bmN0aW9uIGZpbmlzaCgpIHsKKyAgICBzaG91bGRCZSgnb3JkZXIubGVuZ3RoJywg
JzEwJyk7CisgICAgc2hvdWxkQmUoJ29yZGVyWzBdJywgJzAnKTsKKyAgICBzaG91bGRCZSgnb3Jk
ZXJbMV0nLCAnMScpOworICAgIHNob3VsZEJlKCdvcmRlclsyXScsICcyJyk7CisgICAgc2hvdWxk
QmUoJ29yZGVyWzNdJywgJzMnKTsKKyAgICBzaG91bGRCZSgnb3JkZXJbNF0nLCAnNCcpOworICAg
IHNob3VsZEJlKCdvcmRlcls1XScsICc1Jyk7CisgICAgc2hvdWxkQmUoJ29yZGVyWzZdJywgJzYn
KTsKKyAgICBzaG91bGRCZSgnb3JkZXJbN10nLCAnNycpOworICAgIHNob3VsZEJlKCdvcmRlcls4
XScsICc4Jyk7CisgICAgc2hvdWxkQmUoJ29yZGVyWzldJywgJzknKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKwordmFyIG9yZGVyID0gW107Cit2YXIgb2JzZXJ2ZXJzID0gW107CisKK2Z1bmN0
aW9uIHNldFVwT3JkZXJpbmcobnVtKSB7CisgICAgb2JzZXJ2ZXJzLnB1c2gobmV3IFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7CisgICAgICAgIG9yZGVyLnB1c2go
bnVtKTsKKyAgICB9KSk7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAg
IHNldFVwT3JkZXJpbmcoaSk7Cit9CisKK3ZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKK29ic2VydmVyc1szXS5vYnNlcnZlKGRpdiwge2F0dHJpYnV0ZXM6IHRydWV9KTsK
K29ic2VydmVyc1syXS5vYnNlcnZlKGRpdiwge2NoYXJhY3RlckRhdGE6IHRydWUsIHN1YnRyZWU6
IHRydWV9KTsKK29ic2VydmVyc1sxXS5vYnNlcnZlKGRpdiwge2F0dHJpYnV0ZXM6IHRydWV9KTsK
K29ic2VydmVyc1s3XS5vYnNlcnZlKGRpdiwge2NoaWxkTGlzdDogdHJ1ZX0pOworb2JzZXJ2ZXJz
WzRdLm9ic2VydmUoZGl2LCB7YXR0cmlidXRlczogdHJ1ZX0pOworb2JzZXJ2ZXJzWzldLm9ic2Vy
dmUoZGl2LCB7YXR0cmlidXRlczogdHJ1ZX0pOworb2JzZXJ2ZXJzWzBdLm9ic2VydmUoZGl2LCB7
Y2hpbGRMaXN0OiB0cnVlfSk7CitvYnNlcnZlcnNbNV0ub2JzZXJ2ZShkaXYsIHthdHRyaWJ1dGVz
OiB0cnVlfSk7CitvYnNlcnZlcnNbNl0ub2JzZXJ2ZShkaXYsIHtjaGFyYWN0ZXJEYXRhOiB0cnVl
LCBzdWJ0cmVlOiB0cnVlfSk7CitvYnNlcnZlcnNbOF0ub2JzZXJ2ZShkaXYsIHthdHRyaWJ1dGVz
OiB0cnVlfSk7CitkaXYuc2V0QXR0cmlidXRlKCdmb28nLCAnYmFyJyk7CitkaXYuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ2hlbGxvJykpOworZGl2LmZpcnN0Q2hpbGQudGV4
dENvbnRlbnQgPSAnZ29vZGJ5ZSc7CitzZXRUaW1lb3V0KGZpbmlzaCwgMCk7Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbXV0YXRpb24vbXV0YXRlLWR1cmluZy1kZWxp
dmVyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211dGF0ZS1kdXJp
bmctZGVsaXZlcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5NmMwZDdhMDllYjQ0MjcxMTIz
ZDQ4OTc5NWI4NWE4Nzc2NWFhMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L211dGF0aW9uL211dGF0ZS1kdXJpbmctZGVsaXZlcnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTMgQEAKK1Rlc3QgdGhhdCBtdXRhdGlvbnMgZHVyaW5nIGRlbGl2ZXJ5IGRvIG5vdCBpbnRlcnJ1
cHQgZGVsaXZlcnkgb3JkZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IG9yZGVyLmxlbmd0aCBpcyAzCitQQVNTIG9yZGVyWzBdIGlzIDEKK1BBU1Mgb3JkZXJbMV0gaXMg
MworUEFTUyBvcmRlclsyXSBpcyAyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tdXRhdGlvbi9t
dXRhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L211dGF0aW9uL211
dGF0ZS1kdXJpbmctZGVsaXZlcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTMwMWI5N2U1Y2QxOGExMDUy
MjRjZmRhYzRmZTRmOGEzOTM3YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tdXRhdGlvbi9tdXRhdGUtZHVyaW5nLWRlbGl2ZXJ5Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQgbXV0YXRpb25zIGR1cmluZyBkZWxpdmVyeSBkbyBub3Qg
aW50ZXJydXB0IGRlbGl2ZXJ5IG9yZGVyLicpOworZnVuY3Rpb24gZmluaXNoKCkgeworICAgIHNo
b3VsZEJlKCdvcmRlci5sZW5ndGgnLCAnMycpOworICAgIHNob3VsZEJlKCdvcmRlclswXScsICcx
Jyk7CisgICAgc2hvdWxkQmUoJ29yZGVyWzFdJywgJzMnKTsKKyAgICBzaG91bGRCZSgnb3JkZXJb
Ml0nLCAnMicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit2YXIgb3JkZXIgPSBbXTsKK3Zh
ciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKwordmFyIG9ic2VydmVyMSA9
IG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgeworICAgIG9y
ZGVyLnB1c2goMSk7CisgICAgZGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3NwYW4nKSk7Cit9KTsKK3ZhciBvYnNlcnZlcjIgPSBuZXcgV2ViS2l0TXV0YXRpb25PYnNlcnZl
cihmdW5jdGlvbihtdXRhdGlvbnMpIHsKKyAgICBvcmRlci5wdXNoKDIpOworfSk7Cit2YXIgb2Jz
ZXJ2ZXIzID0gbmV3IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24obXV0YXRpb25zKSB7
CisgICAgb3JkZXIucHVzaCgzKTsKK30pOworCitvYnNlcnZlcjEub2JzZXJ2ZShkaXYsIHthdHRy
aWJ1dGVzOiB0cnVlfSk7CitvYnNlcnZlcjIub2JzZXJ2ZShkaXYsIHtjaGlsZExpc3Q6IHRydWV9
KTsKK29ic2VydmVyMy5vYnNlcnZlKGRpdiwge2F0dHJpYnV0ZXM6IHRydWV9KTsKK2Rpdi5zZXRB
dHRyaWJ1dGUoJ2ZvbycsICdiYXInKTsKK3NldFRpbWVvdXQoZmluaXNoLCAwKTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>