<?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>161724</bug_id>
          
          <creation_ts>2016-09-07 17:47:30 -0700</creation_ts>
          <short_desc>Add support for a ternary sub32 emitter for ARM64 and 32-bit ARM.</short_desc>
          <delta_ts>2016-09-08 13:08:05 -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>JavaScriptCore</component>
          <version>WebKit Local 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1227442</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-09-07 17:47:30 -0700</bug_when>
    <thetext>We can use this to fix the FIXME in emitAllocateWithNonNullAllocator().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227458</commentid>
    <comment_count>1</comment_count>
      <attachid>288217</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-09-07 18:11:46 -0700</bug_when>
    <thetext>Created attachment 288217
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227462</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-09-07 18:15:35 -0700</bug_when>
    <thetext>Looking into how to write a test for this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227463</commentid>
    <comment_count>3</comment_count>
      <attachid>288217</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-09-07 18:17:29 -0700</bug_when>
    <thetext>Comment on attachment 288217
proposed patch.

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

You ought to be able to write a test in testb3 that checks that we are now using the 3-operand sub.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:568
&gt; +    NO_RETURN_DUE_TO_CRASH void sub32(RegisterID, RegisterID, RegisterID)
&gt; +    {
&gt; +        RELEASE_ASSERT_NOT_REACHED();
&gt; +    }
&gt; +

Hmm.  I think we have an opportunity to make live a lot easier for ourselves if we implement this.  Here&apos;s a possible impl:

sub32(a, b, c)
{
    // Implement c = a - b
    if (c == b) {
        neg32(c);
        add32(a, c);
        return;
    }
    move(a, c);
    sub32(b, c);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227722</commentid>
    <comment_count>4</comment_count>
      <attachid>288310</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-09-08 13:03:26 -0700</bug_when>
    <thetext>Created attachment 288310
proposed patch with test added and feedback applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227724</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-09-08 13:08:05 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r205656: &lt;http://trac.webkit.org/r205656&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288217</attachid>
            <date>2016-09-07 18:11:46 -0700</date>
            <delta_ts>2016-09-08 13:03:26 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-161724.patch</filename>
            <type>text/plain</type>
            <size>5677</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA1NTc3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDE2LTA5LTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgYSB0ZXJuYXJ5IHN1YjMyIGVtaXR0ZXIgZm9yIEFSTTY0IGFuZCAzMi1i
aXQgQVJNLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYxNzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QVJNIGFyY2hpdGVjdHVyZXMgc3VwcG9ydCB0ZXJuYXJ5IHN1YiBpbnN0cnVjdGlvbnMuICBXZSBz
aG91bGQgbWFrZSB1c2Ugb2YgdGhlbQorICAgICAgICBpbiBlbWl0QWxsb2NhdGVXaXRoTm9uTnVs
bEFsbG9jYXRvcigpLgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmg6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNOjpzdWIzMik6CisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6c3ViMzIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1YjMyKToKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJYODZDb21tb246OnN1YjMyKToKKyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2Rl
Lm9wY29kZXM6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmVtaXRBbGxvY2F0ZVdpdGhOb25OdWxsQWxsb2NhdG9yKToKKwog
MjAxNi0wOS0wNyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vZGVybml6ZSBEZWJ1Z2dlciB0byB1c2UgbnVsbHB0cgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHJl
dmlzaW9uIDIwNTU3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk02NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcwNSw2ICs3
MDUsMTEgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5zdWI8MzI+KGRlc3QsIGRlc3Qs
IHNyYyk7CiAgICAgfQogCisgICAgdm9pZCBzdWIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVy
SUQgc3JjMiwgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3Vi
PDMyPihkZXN0LCBzcmMxLCBzcmMyKTsKKyAgICB9CisKICAgICB2b2lkIHN1YjMyKFRydXN0ZWRJ
bW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlmIChpc1VJbnQxMihp
bW0ubV92YWx1ZSkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgJKHJldmlzaW9uIDIwNTU3NykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMtMjAxNSBB
cHBsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMtMjAxNiBBcHBsZSBJbmMuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKICAqIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMzE0LDYgKzMxNCwxMSBAQCBwdWJsaWM6CiAgICAgICAg
IG1fYXNzZW1ibGVyLnN1YnMoZGVzdCwgZGVzdCwgc3JjKTsKICAgICB9CiAKKyAgICB2b2lkIHN1
YjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCisg
ICAgeworICAgICAgICBtX2Fzc2VtYmxlci5zdWJzKGRlc3QsIHNyYzEsIHNyYzIpOworICAgIH0K
KwogICAgIHZvaWQgc3ViMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3VicyhkZXN0LCBkZXN0LCBtX2Fzc2VtYmxlci5nZXRJ
bW0oaW1tLm1fdmFsdWUsIEFSTVJlZ2lzdGVyczo6UzApKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCShyZXZp
c2lvbiAyMDU1NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDktMjAxMCwgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwLCAyMDE0LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2Yg
U3plZ2VkCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC00NjIsNiArNDYyLDExIEBAIHB1YmxpYzoKICAg
ICAgICAgbV9hc3NlbWJsZXIuc3ViKGRlc3QsIGRlc3QsIHNyYyk7CiAgICAgfQogCisgICAgdm9p
ZCBzdWIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3ViKGRlc3QsIHNyYzEsIHNyYzIpOworICAg
IH0KKwogICAgIHZvaWQgc3ViMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKICAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlh
dGU6Om1ha2VVSW50MTJPckVuY29kZWRJbW0oaW1tLm1fdmFsdWUpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaAkocmV2aXNpb24gMjA1NTc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01NjAsNyAr
NTYwLDEyIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN1YmxfcnIoc3Jj
LCBkZXN0KTsKICAgICB9Ci0gICAgCisKKyAgICBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIHZvaWQg
c3ViMzIoUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCkKKyAgICB7CisgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCiAgICAgdm9pZCBzdWIzMihU
cnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoaW1t
Lm1fdmFsdWUgPT0gMSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bj
b2RlLm9wY29kZXMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJPcGNvZGUub3Bjb2RlcwkocmV2aXNpb24gMjA1NTc3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2Rlcwkod29ya2luZyBjb3B5KQpAQCAtMTcwLDYgKzE3
MCw5IEBAIFN1YjMyIFU6RzozMiwgVVpEOkc6MzIKICAgICB4ODY6IEFkZHIsIFRtcAogICAgIHg4
NjogVG1wLCBBZGRyCiAKK2FybTY0OiBTdWIzMiBVOkc6MzIsIFU6RzozMiwgRDpHOjMyCisgICAg
VG1wLCBUbXAsIFRtcAorCiA2NDogU3ViNjQgVTpHOjY0LCBVRDpHOjY0CiAgICAgVG1wLCBUbXAK
ICAgICB4ODY6IEltbSwgQWRkcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fz
c2VtYmx5SGVscGVycy5oCShyZXZpc2lvbiAyMDU1NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMxLDEwICsxNDMx
LDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgIG1vdmUocmVzdWx0R1BSLCBzY3JhdGNoR1BS
KTsKICAgICAgICAgICAgICAgICBzdWIzMihBZGRyZXNzKGFsbG9jYXRvckdQUiwgTWFya2VkQWxs
b2NhdG9yOjpvZmZzZXRPZkNlbGxTaXplKCkpLCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IFdlIG5lZWQgYSAzLW9wZXJhbmQgc3Vi
LCBhbmQgQVJNIHRvdGFsbHkgaGFzIGl0IQogICAgICAgICAgICAgICAgIGxvYWQzMihBZGRyZXNz
KGFsbG9jYXRvckdQUiwgTWFya2VkQWxsb2NhdG9yOjpvZmZzZXRPZkNlbGxTaXplKCkpLCBzY3Jh
dGNoR1BSKTsKLSAgICAgICAgICAgICAgICBuZWczMihzY3JhdGNoR1BSKTsKLSAgICAgICAgICAg
ICAgICBhZGQzMihyZXN1bHRHUFIsIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIHN1YjMy
KHJlc3VsdEdQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaEdQUik7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICAgICAgbmVnUHRyKHJlc3VsdEdQUik7Cg==
</data>
<flag name="review"
          id="311599"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288310</attachid>
            <date>2016-09-08 13:03:26 -0700</date>
            <delta_ts>2016-09-08 13:05:26 -0700</delta_ts>
            <desc>proposed patch with test added and feedback applied.</desc>
            <filename>bug-161724.patch</filename>
            <type>text/plain</type>
            <size>9478</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA1NjU0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBA
CisyMDE2LTA5LTA4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgYSB0ZXJuYXJ5IHN1YjMyIGVtaXR0ZXIgZm9yIEFSTTY0IGFuZCAzMi1i
aXQgQVJNLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYxNzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QVJNIGFyY2hpdGVjdHVyZXMgc3VwcG9ydCB0ZXJuYXJ5IHN1YiBpbnN0cnVjdGlvbnMuICBXZSBz
aG91bGQgbWFrZSB1c2Ugb2YgdGhlbQorICAgICAgICBpbiBlbWl0QWxsb2NhdGVXaXRoTm9uTnVs
bEFsbG9jYXRvcigpLgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmg6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNOjpzdWIzMik6CisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk02NDo6c3ViMzIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN1YjMyKToKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJTSDQ6OnN1YjMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnN1YjMyKToK
KyAgICAgICAgKiBiMy9haXIvQWlyT3Bjb2RlLm9wY29kZXM6CisgICAgICAgICogYjMvdGVzdGIz
LmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RUZXJuYXJ5U3ViSW5zdHJ1Y3Rpb25TZWxlY3Rp
b24pOgorICAgICAgICAoSlNDOjpCMzo6cnVuKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxw
ZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdEFsbG9jYXRlV2l0aE5v
bk51bGxBbGxvY2F0b3IpOgorCiAyMDE2LTA5LTA4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSBKU01hcC9KU1NldCBvdmVyIHRvIEF1eGlsaWFyeSBNYXJr
ZWRTcGFjZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHJldmlzaW9uIDIwNTU3NykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCwgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIw
MTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTcwNSw2ICs3MDUsMTEgQEAgcHVibGljOgogICAgICAgICBtX2Fz
c2VtYmxlci5zdWI8MzI+KGRlc3QsIGRlc3QsIHNyYyk7CiAgICAgfQogCisgICAgdm9pZCBzdWIz
MihSZWdpc3RlcklEIGxlZnQsIFJlZ2lzdGVySUQgcmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnN1YjwzMj4oZGVzdCwgbGVmdCwgcmlnaHQpOworICAg
IH0KKwogICAgIHZvaWQgc3ViMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKICAgICAgICAgaWYgKGlzVUludDEyKGltbS5tX3ZhbHVlKSkgewpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAko
cmV2aXNpb24gMjA1NTc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAxMy0yMDE1IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCwgMjAxMy0yMDE2IEFwcGxlIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBV
bml2ZXJzaXR5IG9mIFN6ZWdlZAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0zMTQs
NiArMzE0LDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuc3VicyhkZXN0LCBkZXN0
LCBzcmMpOwogICAgIH0KIAorICAgIHZvaWQgc3ViMzIoUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3Rl
cklEIHJpZ2h0LCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5z
dWJzKGRlc3QsIGxlZnQsIHJpZ2h0KTsKKyAgICB9CisKICAgICB2b2lkIHN1YjMyKFRydXN0ZWRJ
bW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN1
YnMoZGVzdCwgZGVzdCwgbV9hc3NlbWJsZXIuZ2V0SW1tKGltbS5tX3ZhbHVlLCBBUk1SZWdpc3Rl
cnM6OlMwKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkocmV2aXNpb24gMjA1NTc3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAsIDIwMTQt
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxMCwgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApA
QCAtNDYyLDYgKzQ2MiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnN1YihkZXN0
LCBkZXN0LCBzcmMpOwogICAgIH0KIAorICAgIHZvaWQgc3ViMzIoUmVnaXN0ZXJJRCBsZWZ0LCBS
ZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2Vt
Ymxlci5zdWIoZGVzdCwgbGVmdCwgcmlnaHQpOworICAgIH0KKwogICAgIHZvaWQgc3ViMzIoVHJ1
c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgQVJNVGh1bWJJ
bW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VVSW50MTJPckVuY29kZWRJ
bW0oaW1tLm1fdmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclNINC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJTSDQuaAkocmV2aXNpb24gMjA1NTc3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclNINC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBDaXNjbyBTeXN0
ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAx
MSBTVE1pY3JvZWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDgsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDE5LDYgKzQxOSwxNyBAQCBwdWJs
aWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLnN1YmxSZWdSZWcoc3JjLCBkZXN0KTsKICAgICB9CiAK
KyAgICB2b2lkIHN1YjMyKFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKGRlc3QgPT0gcmlnaHQpIHsKKyAgICAgICAg
ICAgIG5lZzMyKGRlc3QpOworICAgICAgICAgICAgYWRkMzIobGVmdCwgZGVzdCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbW92ZShsZWZ0LCBkZXN0KTsKKyAgICAg
ICAgc3ViMzIocmlnaHQsIGRlc3QpOworICAgIH0KKwogICAgIHZvaWQgc3ViMzIoVHJ1c3RlZElt
bTMyIGltbSwgQWJzb2x1dGVBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoIWlt
bS5tX3ZhbHVlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkocmV2aXNpb24gMjA1NTc3KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC01NjAsNyArNTYwLDE4IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLnN1YmxfcnIoc3JjLCBkZXN0KTsKICAgICB9Ci0gICAgCisKKyAgICB2
b2lkIHN1YjMyKFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0ZXJJRCBk
ZXN0KQorICAgIHsKKyAgICAgICAgaWYgKGRlc3QgPT0gcmlnaHQpIHsKKyAgICAgICAgICAgIG5l
ZzMyKGRlc3QpOworICAgICAgICAgICAgYWRkMzIobGVmdCwgZGVzdCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbW92ZShsZWZ0LCBkZXN0KTsKKyAgICAgICAgc3Vi
MzIocmlnaHQsIGRlc3QpOworICAgIH0KKwogICAgIHZvaWQgc3ViMzIoVHJ1c3RlZEltbTMyIGlt
bSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaWYgKGltbS5tX3ZhbHVlID09IDEp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMjA1NTc3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIxNzAsNiArMjE3MCwzOSBAQCB2b2lkIHRlc3RTdWJBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91
YmxlCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoZWZmZWN0LCBzdGF0aWNfY2FzdDxkb3VibGU+KGEp
IC0gc3RhdGljX2Nhc3Q8ZG91YmxlPihiKSkpOwogfQogCit2b2lkIHRlc3RUZXJuYXJ5U3ViSW5z
dHJ1Y3Rpb25TZWxlY3Rpb24oQjM6Ok9wY29kZSB2YWx1ZU1vZGlmaWVyLCBUeXBlIHZhbHVlVHlw
ZSwgQWlyOjpPcGNvZGUgZXhwZWN0ZWRPcGNvZGUpCit7CisgICAgUHJvY2VkdXJlIHByb2M7Cisg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgIFZhbHVlKiBsZWZ0
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOworICAgIFZhbHVlKiByaWdodCA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsK
KworICAgIGlmICh2YWx1ZU1vZGlmaWVyID09IFRydW5jKSB7CisgICAgICAgIGxlZnQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIHZhbHVlTW9kaWZpZXIsIHZhbHVlVHlwZSwgT3JpZ2lu
KCksIGxlZnQpOworICAgICAgICByaWdodCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
dmFsdWVNb2RpZmllciwgdmFsdWVUeXBlLCBPcmlnaW4oKSwgcmlnaHQpOworICAgIH0KKworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigp
LCBsZWZ0LCByaWdodCkpOworCisgICAgbG93ZXJUb0FpckZvclRlc3RpbmcocHJvYyk7CisKKyAg
ICBhdXRvIGJsb2NrID0gcHJvYy5jb2RlKClbMF07CisgICAgdW5zaWduZWQgbnVtYmVyT2ZTdWJJ
bnN0cnVjdGlvbnMgPSAwOworICAgIGZvciAoYXV0byBpbnN0cnVjdGlvbiA6ICpibG9jaykgewor
ICAgICAgICBpZiAoaW5zdHJ1Y3Rpb24ub3Bjb2RlID09IGV4cGVjdGVkT3Bjb2RlKSB7CisgICAg
ICAgICAgICBDSEVDS19FUShpbnN0cnVjdGlvbi5hcmdzLnNpemUoKSwgM3VsKTsKKyAgICAgICAg
ICAgIENIRUNLX0VRKGluc3RydWN0aW9uLmFyZ3NbMF0ua2luZCgpLCBBaXI6OkFyZzo6VG1wKTsK
KyAgICAgICAgICAgIENIRUNLX0VRKGluc3RydWN0aW9uLmFyZ3NbMV0ua2luZCgpLCBBaXI6OkFy
Zzo6VG1wKTsKKyAgICAgICAgICAgIENIRUNLX0VRKGluc3RydWN0aW9uLmFyZ3NbMl0ua2luZCgp
LCBBaXI6OkFyZzo6VG1wKTsKKyAgICAgICAgICAgIG51bWJlck9mU3ViSW5zdHJ1Y3Rpb25zKys7
CisgICAgICAgIH0KKyAgICB9CisgICAgQ0hFQ0tfRVEobnVtYmVyT2ZTdWJJbnN0cnVjdGlvbnMs
IDF1bCk7Cit9CisKIHZvaWQgdGVzdE5lZ0RvdWJsZShkb3VibGUgYSkKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKQEAgLTE0NDI1LDYgKzE0NDU4LDExIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZp
bHRlcikKICAgICAgICAgUlVOKHRlc3RCcmFuY2hCaXRBbmRJbW1GdXNpb24oTG9hZCwgSW50NjQs
IDEsIEFpcjo6QnJhbmNoVGVzdDMyLCBBaXI6OkFyZzo6QWRkcikpOwogICAgIH0KIAorICAgIGlm
IChpc0FSTTY0KCkpIHsKKyAgICAgICAgUlVOKHRlc3RUZXJuYXJ5U3ViSW5zdHJ1Y3Rpb25TZWxl
Y3Rpb24oSWRlbnRpdHksIEludDY0LCBBaXI6OlN1YjY0KSk7CisgICAgICAgIFJVTih0ZXN0VGVy
bmFyeVN1Ykluc3RydWN0aW9uU2VsZWN0aW9uKFRydW5jLCBJbnQzMiwgQWlyOjpTdWIzMikpOwor
ICAgIH0KKwogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCiAgICAgICAgIHVzYWdlKCk7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2Rlcwko
cmV2aXNpb24gMjA1NTc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNv
ZGUub3Bjb2Rlcwkod29ya2luZyBjb3B5KQpAQCAtMTcwLDYgKzE3MCw5IEBAIFN1YjMyIFU6Rzoz
MiwgVVpEOkc6MzIKICAgICB4ODY6IEFkZHIsIFRtcAogICAgIHg4NjogVG1wLCBBZGRyCiAKK2Fy
bTY0OiBTdWIzMiBVOkc6MzIsIFU6RzozMiwgRDpHOjMyCisgICAgVG1wLCBUbXAsIFRtcAorCiA2
NDogU3ViNjQgVTpHOjY0LCBVRDpHOjY0CiAgICAgVG1wLCBUbXAKICAgICB4ODY6IEltbSwgQWRk
cgpAQCAtMTc3LDYgKzE4MCw5IEBAIFN1YjMyIFU6RzozMiwgVVpEOkc6MzIKICAgICB4ODY6IEFk
ZHIsIFRtcAogICAgIHg4NjogVG1wLCBBZGRyCiAKK2FybTY0OiBTdWI2NCBVOkc6NjQsIFU6Rzo2
NCwgRDpHOjY0CisgICAgVG1wLCBUbXAsIFRtcAorCiBTdWJEb3VibGUgVTpGOjY0LCBVOkY6NjQs
IEQ6Rjo2NAogICAgIGFybTY0OiBUbXAsIFRtcCwgVG1wCiAgICAgeDg2OiBUbXAsIEFkZHIsIFRt
cApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCShy
ZXZpc2lvbiAyMDU1NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMxLDEwICsxNDMxLDggQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgIG1vdmUocmVzdWx0R1BSLCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAg
ICBzdWIzMihBZGRyZXNzKGFsbG9jYXRvckdQUiwgTWFya2VkQWxsb2NhdG9yOjpvZmZzZXRPZkNl
bGxTaXplKCkpLCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgLy8gRklYTUU6IFdlIG5lZWQgYSAzLW9wZXJhbmQgc3ViLCBhbmQgQVJNIHRvdGFsbHkg
aGFzIGl0IQogICAgICAgICAgICAgICAgIGxvYWQzMihBZGRyZXNzKGFsbG9jYXRvckdQUiwgTWFy
a2VkQWxsb2NhdG9yOjpvZmZzZXRPZkNlbGxTaXplKCkpLCBzY3JhdGNoR1BSKTsKLSAgICAgICAg
ICAgICAgICBuZWczMihzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBhZGQzMihyZXN1bHRH
UFIsIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIHN1YjMyKHJlc3VsdEdQUiwgc2NyYXRj
aEdQUiwgc2NyYXRjaEdQUik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgbmVn
UHRyKHJlc3VsdEdQUik7Cg==
</data>
<flag name="review"
          id="311661"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>