<?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>162884</bug_id>
          
          <creation_ts>2016-10-03 17:20:46 -0700</creation_ts>
          <short_desc>WebAssembly: handle a few corner cases</short_desc>
          <delta_ts>2016-10-04 16:28:06 -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 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>146064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1235999</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-03 17:20:46 -0700</bug_when>
    <thetext>Now that we can auto-generate some code it&apos;s nicer. Also, some corner cases aren&apos;t quite right, and the cmake build is busted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236000</commentid>
    <comment_count>1</comment_count>
      <attachid>290540</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-03 17:25:22 -0700</bug_when>
    <thetext>Created attachment 290540
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236002</commentid>
    <comment_count>2</comment_count>
      <attachid>290540</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-03 17:30:44 -0700</bug_when>
    <thetext>Comment on attachment 290540
patch

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

&gt; Source/JavaScriptCore/wasm/WASMParser.h:95
&gt; +    if (m_sourceLength &lt; 4 || m_offset &gt;= m_sourceLength - 4)

Why this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236193</commentid>
    <comment_count>3</comment_count>
      <attachid>290540</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-10-04 08:46:37 -0700</bug_when>
    <thetext>Comment on attachment 290540
patch

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

&gt; Source/JavaScriptCore/wasm/WASMOps.h:174
&gt; +template&lt;typename Int&gt; inline bool isValidOpType(Int i) { return i &lt;= 188; }

Aren&apos;t there gaps in the WASM opcodes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236204</commentid>
    <comment_count>4</comment_count>
      <attachid>290540</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-04 09:18:21 -0700</bug_when>
    <thetext>Comment on attachment 290540
patch

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

&gt;&gt; Source/JavaScriptCore/wasm/WASMOps.h:174
&gt;&gt; +template&lt;typename Int&gt; inline bool isValidOpType(Int i) { return i &lt;= 188; }
&gt; 
&gt; Aren&apos;t there gaps in the WASM opcodes?

Yup. I&apos;m planning on generating tables (for this and other things) as the next patch. Baby steps :)

&gt;&gt; Source/JavaScriptCore/wasm/WASMParser.h:95
&gt;&gt; +    if (m_sourceLength &lt; 4 || m_offset &gt;= m_sourceLength - 4)
&gt; 
&gt; Why this change?

It avoids overflowing m_sourceLength. That&apos;s not likely to happen with the code as-is, but I&apos;ve seen random refactorings in the past lead to wraparound in later code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236250</commentid>
    <comment_count>5</comment_count>
      <attachid>290617</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-04 10:46:09 -0700</bug_when>
    <thetext>Created attachment 290617
patch

Add opcode validity table.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236251</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-04 10:48:09 -0700</bug_when>
    <thetext>Attachment 290617 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/WASMOps.h:177:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236255</commentid>
    <comment_count>7</comment_count>
      <attachid>290619</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-04 10:51:27 -0700</bug_when>
    <thetext>Created attachment 290619
patch

Fix style, update changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236271</commentid>
    <comment_count>8</comment_count>
      <attachid>290619</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-10-04 11:13:34 -0700</bug_when>
    <thetext>Comment on attachment 290619
patch

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

r=me.

&gt; Source/JavaScriptCore/wasm/WASMOps.h:180
&gt; +    static const uint8_t valid[] = { 0xff, 0x8f, 0xff, 0x2, 0xff, 0xff, 0x7f, 0xa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f };
&gt; +    return 0 &lt;= i &amp;&amp; i &lt;= 188 &amp;&amp; (valid[i / 8] &amp; (1 &lt;&lt; (i % 8)));

I think this would be better as a constexpr WTF::BitMap but I&apos;m not going to block this patch on it. If you don&apos;t make it a WTF::BitMap, you should put a comment saying that the valid array is a bit map.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236278</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-04 11:20:53 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 290619 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=290619&amp;action=review
&gt; 
&gt; r=me.
&gt; 
&gt; &gt; Source/JavaScriptCore/wasm/WASMOps.h:180
&gt; &gt; +    static const uint8_t valid[] = { 0xff, 0x8f, 0xff, 0x2, 0xff, 0xff, 0x7f, 0xa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f };
&gt; &gt; +    return 0 &lt;= i &amp;&amp; i &lt;= 188 &amp;&amp; (valid[i / 8] &amp; (1 &lt;&lt; (i % 8)));
&gt; 
&gt; I think this would be better as a constexpr WTF::BitMap but I&apos;m not going to
&gt; block this patch on it. If you don&apos;t make it a WTF::BitMap, you should put a
&gt; comment saying that the valid array is a bit map.

I sort of don&apos;t mind this.  It has no magic, which is refreshing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236280</commentid>
    <comment_count>10</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-04 11:28:33 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Comment on attachment 290619 [details]
&gt; &gt; patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=290619&amp;action=review
&gt; &gt; 
&gt; &gt; r=me.
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/wasm/WASMOps.h:180
&gt; &gt; &gt; +    static const uint8_t valid[] = { 0xff, 0x8f, 0xff, 0x2, 0xff, 0xff, 0x7f, 0xa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f };
&gt; &gt; &gt; +    return 0 &lt;= i &amp;&amp; i &lt;= 188 &amp;&amp; (valid[i / 8] &amp; (1 &lt;&lt; (i % 8)));
&gt; &gt; 
&gt; &gt; I think this would be better as a constexpr WTF::BitMap but I&apos;m not going to
&gt; &gt; block this patch on it. If you don&apos;t make it a WTF::BitMap, you should put a
&gt; &gt; comment saying that the valid array is a bit map.
&gt; 
&gt; I sort of don&apos;t mind this.  It has no magic, which is refreshing.

I don&apos;t really know how much this matters but a switch statement would have been fine.  Clang will optimize it to a bitvector lookup.  So, it comes down to a question of what is clearer.  I think that the switch statement is clearer, but I don&apos;t care that much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236338</commentid>
    <comment_count>11</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-04 13:46:00 -0700</bug_when>
    <thetext>The following code:

```
bool isValidOpType(std::size_t i)
{
  switch (i) {
    case 0: return true;
    case 1: return true;
    case 2: return true;
    case 3: return true;
    case 4: return true;
    case 5: return true;
    case 6: return true;
    case 7: return true;
    case 8: return true;
    case 9: return true;
    case 10: return true;
    case 11: return true;
    case 12: return false;
    case 13: return false;
    case 14: return false;
    case 15: return true;
    case 16: return true;
    case 17: return true;
    case 18: return true;
    case 19: return true;
    case 20: return true;
    case 21: return true;
    case 22: return true;
    case 23: return true;
    case 24: return false;
    case 25: return true;
    case 26: return false;
    case 27: return false;
    case 28: return false;
    case 29: return false;
    case 30: return false;
    case 31: return false;
    case 32: return true;
    case 33: return true;
    case 34: return true;
    case 35: return true;
    case 36: return true;
    case 37: return true;
    case 38: return true;
    case 39: return true;
    case 40: return true;
    case 41: return true;
    case 42: return true;
    case 43: return true;
    case 44: return true;
    case 45: return true;
    case 46: return true;
    case 47: return true;
    case 48: return true;
    case 49: return true;
    case 50: return true;
    case 51: return true;
    case 52: return true;
    case 53: return true;
    case 54: return true;
    case 55: return false;
    case 56: return false;
    case 57: return true;
    case 58: return false;
    case 59: return true;
    case 60: return false;
    case 61: return false;
    case 62: return false;
    case 63: return false;
    case 64: return true;
    case 65: return true;
    case 66: return true;
    case 67: return true;
    case 68: return true;
    case 69: return true;
    case 70: return true;
    case 71: return true;
    case 72: return true;
    case 73: return true;
    case 74: return true;
    case 75: return true;
    case 76: return true;
    case 77: return true;
    case 78: return true;
    case 79: return true;
    case 80: return true;
    case 81: return true;
    case 82: return true;
    case 83: return true;
    case 84: return true;
    case 85: return true;
    case 86: return true;
    case 87: return true;
    case 88: return true;
    case 89: return true;
    case 90: return true;
    case 91: return true;
    case 92: return true;
    case 93: return true;
    case 94: return true;
    case 95: return true;
    case 96: return true;
    case 97: return true;
    case 98: return true;
    case 99: return true;
    case 100: return true;
    case 101: return true;
    case 102: return true;
    case 103: return true;
    case 104: return true;
    case 105: return true;
    case 106: return true;
    case 107: return true;
    case 108: return true;
    case 109: return true;
    case 110: return true;
    case 111: return true;
    case 112: return true;
    case 113: return true;
    case 114: return true;
    case 115: return true;
    case 116: return true;
    case 117: return true;
    case 118: return true;
    case 119: return true;
    case 120: return true;
    case 121: return true;
    case 122: return true;
    case 123: return true;
    case 124: return true;
    case 125: return true;
    case 126: return true;
    case 127: return true;
    case 128: return true;
    case 129: return true;
    case 130: return true;
    case 131: return true;
    case 132: return true;
    case 133: return true;
    case 134: return true;
    case 135: return true;
    case 136: return true;
    case 137: return true;
    case 138: return true;
    case 139: return true;
    case 140: return true;
    case 141: return true;
    case 142: return true;
    case 143: return true;
    case 144: return true;
    case 145: return true;
    case 146: return true;
    case 147: return true;
    case 148: return true;
    case 149: return true;
    case 150: return true;
    case 151: return true;
    case 152: return true;
    case 153: return true;
    case 154: return true;
    case 155: return true;
    case 156: return true;
    case 157: return true;
    case 158: return true;
    case 159: return true;
    case 160: return true;
    case 161: return true;
    case 162: return true;
    case 163: return true;
    case 164: return true;
    case 165: return true;
    case 166: return true;
    case 167: return true;
    case 168: return true;
    case 169: return true;
    case 170: return true;
    case 171: return true;
    case 172: return true;
    case 173: return true;
    case 174: return true;
    case 175: return true;
    case 176: return true;
    case 177: return true;
    case 178: return true;
    case 179: return true;
    case 180: return true;
    case 181: return true;
    case 182: return true;
    case 183: return true;
    case 184: return true;
    case 185: return true;
    case 186: return true;
    case 187: return true;
    case 188: return true;
    default: return false;
    }
}
```

Codegens as shitty code on clang 3.9:

```
isValidOpType(unsigned long):                     # @isValidOpType(unsigned long)
        cmp     rdi, 188
        ja      .LBB0_2
        mov     al, 1
        jmp     qword ptr [8*rdi + .LJTI0_0]
.LBB0_3:
        ret
.LBB0_2:
        xor     eax, eax
        jmp     .LBB0_3
.LJTI0_0:
        .quad   .LBB0_3
        .quad   .LBB0_3
        # and so on...
```

Same for ARMv7:

```
isValidOpType(int):                     @ @isValidOpType(int)
        mov     r1, r0
        cmp     r1, #188
        bhi     .LBB0_4
        adr     r2, .LJTI0_0
        lsl     r1, r1, #2
        mov     r0, #1
        ldr     pc, [r1, r2]
.LJTI0_0:
        .long   .LBB0_3
        .long   .LBB0_3
        # and so on...
```


In general I like to trust my compiler... but not for switches. LLVM&apos;s changed its approach over time, it generates good code in some cases, but not always and isn&apos;t consistent from one version to another IMO.

I usually would just go fix LLVM... but meh, switches are fraught with peril.

I&apos;ll add a comment though :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236343</commentid>
    <comment_count>12</comment_count>
      <attachid>290640</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-10-04 14:03:20 -0700</bug_when>
    <thetext>Created attachment 290640
patch

Add bitset comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236440</commentid>
    <comment_count>13</comment_count>
      <attachid>290640</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-04 16:28:01 -0700</bug_when>
    <thetext>Comment on attachment 290640
patch

Clearing flags on attachment: 290640

Committed r206794: &lt;http://trac.webkit.org/changeset/206794&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236441</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-04 16:28:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290540</attachid>
            <date>2016-10-03 17:25:22 -0700</date>
            <delta_ts>2016-10-04 10:46:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-random-wasm.patch</filename>
            <type>text/plain</type>
            <size>6445</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBkZGJjMTA2NDFjNzk3NWUzMDliYWE3ZmYxMzRiM2QyNWY4ZDEyM2VhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBNb24sIDMgT2N0IDIwMTYgMTc6MjE6MzMgLTA3MDAKU3ViamVjdDogW1BBVENIXSByYW5kb20t
d2FzbQoKLS0tCiBKU1Rlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDEwICsrKysrKysrKysKIEpTVGVzdHMvc3RyZXNzL3dhc20vZ2VuZXJhdGUtd2FzbW9wcy1o
ZWFkZXIuanMgIHwgMTAgKysrKysrKy0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgfCAxNyArKysrKysrKysrKysrKysrKwogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmNwcCAgICAgfCAgMSArCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaCB8ICA1ICsrLS0tCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XQVNNT3BzLmggICAgICAgICAgICB8ICAyICsrCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XQVNNUGFyc2VyLmggICAgICAgICB8ICA0ICsrKy0KIDcgZmlsZXMgY2hh
bmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUxMzYxMTguLjIxYTEyMDMg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMTUgQEAKIDIwMTYtMTAtMDMgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUu
Y29tPgogCisgICAgICAgIFdlYkFzc2VtYmx5OiBoYW5kbGUgYSBmZXcgY29ybmVyIGNhc2VzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4ODQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy93
YXNtL2dlbmVyYXRlLXdhc21vcHMtaGVhZGVyLmpzOgorICAgICAgICAoY29uc3Qub3Bjb2RlSXRl
cmF0b3IpOiBtYXggb3Bjb2RlIHZhbHVlLCBuZXh0IHN0ZXAgaXMgdG8gYWRkIGJpdG1hcHMgdG8g
YWxsIG9mIHRoZXNlCisKKzIwMTYtMTAtMDMgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUu
Y29tPgorCiAgICAgICAgIEF1dG8tZ2VuZXJhdGUgV0FTTU9wcy5oLCBzaGFyZSB3aXRoIHRlc3Rp
bmcgSlNPTiBmaWxlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjI4NzAKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvd2FzbS9nZW5lcmF0ZS13
YXNtb3BzLWhlYWRlci5qcyBiL0pTVGVzdHMvc3RyZXNzL3dhc20vZ2VuZXJhdGUtd2FzbW9wcy1o
ZWFkZXIuanMKaW5kZXggMjM5OWY1Ni4uODczOWQ2NCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3Mvd2FzbS9nZW5lcmF0ZS13YXNtb3BzLWhlYWRlci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy93
YXNtL2dlbmVyYXRlLXdhc21vcHMtaGVhZGVyLmpzCkBAIC00LDEyICs0LDEyIEBAIGNvbnN0IGpz
b25GaWxlID0gJ3dhc20uanNvbic7CiBjb25zdCB3YXNtID0gSlNPTi5wYXJzZShyZWFkKGpzb25G
aWxlKSk7CiBjb25zdCBvcGNvZGVzID0gd2FzbS5vcGNvZGU7CiAKLS8vIEl0ZXJhdGUgdGhyb3Vn
aCBvcGNvZGVzIHdoaWNoIG1hdGNoIGZpbHRlci4KLWNvbnN0IG9wY29kZUl0ZXJhdG9yID0gKGZp
bHRlcikgPT4geworLy8gSXRlcmF0ZSB0aHJvdWdoIG9wY29kZXMgd2hpY2ggbWF0Y2ggZmlsdGVy
LCBhbmQgb24gZWFjaCBpdGVyYXRpb24geWllbGQgcmV0LgorY29uc3Qgb3Bjb2RlSXRlcmF0b3Ig
PSAoZmlsdGVyLCByZXQgPSBvcCA9PiB7IHJldHVybiB7bmFtZTogb3AsIG9wY29kZTogb3Bjb2Rl
c1tvcF19OyB9KSA9PiB7CiAgICAgcmV0dXJuIGZ1bmN0aW9uKigpIHsKICAgICAgICAgZm9yIChs
ZXQgb3AgaW4gb3Bjb2RlcykKICAgICAgICAgICAgIGlmIChmaWx0ZXIob3Bjb2Rlc1tvcF0pKQot
ICAgICAgICAgICAgICAgIHlpZWxkIHtuYW1lOiBvcCwgb3Bjb2RlOiBvcGNvZGVzW29wXX07Cisg
ICAgICAgICAgICAgICAgeWllbGQgcmV0KG9wKTsKICAgICB9OwogfTsKIApAQCAtMzgsNiArMzgs
OCBAQCBjb25zdCBkZWZpbmVzID0gWwogICAgIC4uLm9wY29kZU1hY3JvaXplcihvcCA9PiAob3Au
Y2F0ZWdvcnkgPT09ICJhcml0aG1ldGljIiB8fCBvcC5jYXRlZ29yeSA9PT0gImNvbXBhcmlzb24i
KSAmJiBvcC5wYXJhbWV0ZXIubGVuZ3RoID09PSAyKSwKICAgICAiXG5cbiJdLmpvaW4oIiIpOwog
Citjb25zdCBtYXhPcFZhbHVlID0gTWF0aC5tYXgoLi4ub3Bjb2RlSXRlcmF0b3Iob3AgPT4gdHJ1
ZSwgb3AgPT4gb3Bjb2Rlc1tvcF0udmFsdWUpKCkpOworCiBjb25zdCB0ZW1wbGF0ZSA9IGAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CkBAIC04NSw2ICs4Nyw4IEBAIGVudW0gT3BUeXBlIDogdWludDhfdCB7CiAgICAgRk9SX0VBQ0hf
V0FTTV9PUChDUkVBVEVfRU5VTV9WQUxVRSkKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEludD4g
aW5saW5lIGJvb2wgaXNWYWxpZE9wVHlwZShJbnQgaSkgeyByZXR1cm4gaSA8PSAke21heE9wVmFs
dWV9OyB9CisKIGVudW0gY2xhc3MgQmluYXJ5T3BUeXBlIDogdWludDhfdCB7CiAgICAgRk9SX0VB
Q0hfV0FTTV9CSU5BUllfT1AoQ1JFQVRFX0VOVU1fVkFMVUUpCiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggYzZlMDEzNC4uNTE5ODJkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjIgQEAKIDIwMTYtMTAtMDMgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUu
Y29tPgogCisgICAgICAgIFdlYkFzc2VtYmx5OiBoYW5kbGUgYSBmZXcgY29ybmVyIGNhc2VzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4ODQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdhc20vSlNX
QVNNTW9kdWxlLmNwcDogbWlzc2luZyBpbmNsdWRlIGJyb2tlIGNtYWtlIGJ1aWxkCisgICAgICAg
ICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTTo6RnVuY3Rp
b25QYXJzZXI8Q29udGV4dD46OnBhcnNlQmxvY2spOiBjaGVjayBvcCBpcyB2YWxpZCAobm90IHF1
aXRlIGNvcnJlY3QsIGp1c3QgcmFuZ2UgY2hlY2sgZm9yIG5vdykKKyAgICAgICAgKEpTQzo6V0FT
TTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbik6IHN3aXRjaCBjb3Zl
cnMgYWxsIGNhc2VzCisgICAgICAgICogd2FzbS9XQVNNT3BzLmg6CisgICAgICAgIChKU0M6OldB
U006OmlzVmFsaWRPcFR5cGUpOiBvcCBpcyB2YWxpZCAoSSdsbCBkbyBhIGJpdG1hc2sgbmV4dCB0
aW1lKQorICAgICAgICAqIHdhc20vV0FTTVBhcnNlci5oOgorICAgICAgICAoSlNDOjpXQVNNOjpQ
YXJzZXI6OmNvbnN1bWVTdHJpbmcpOiBhdm9pZCBzdHJbaV0gYmVpbmcgb25lLXBhc3QtdGhlLWVu
ZAorICAgICAgICAoSlNDOjpXQVNNOjpQYXJzZXI6OnBhcnNlVUludDMyKTogc2hpZnQgbWF0aCBh
cm91bmQgdG8gYXZvaWQgb3ZlcmZsb3cKKworMjAxNi0xMC0wMyAgSkYgQmFzdGllbiAgPGpmYmFz
dGllbkBhcHBsZS5jb20+CisKICAgICAgICAgQXV0by1nZW5lcmF0ZSBXQVNNT3BzLmgsIHNoYXJl
IHdpdGggdGVzdGluZyBKU09OIGZpbGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2Mjg3MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9KU1dBU01Nb2R1bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNX
QVNNTW9kdWxlLmNwcAppbmRleCBkZWI3MTYxLi5jZDk5NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9KU1dBU01Nb2R1bGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl
ICJKU0NlbGxJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIlNs
b3RWaXNpdG9ySW5saW5lcy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01GdW5jdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0
aW9uUGFyc2VyLmgKaW5kZXggMTFiOGE4ZS4uYWU4NzQyNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBi
b29sIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZUJsb2NrKCkKIHsKICAgICB3aGlsZSAo
dHJ1ZSkgewogICAgICAgICB1aW50OF90IG9wOwotICAgICAgICBpZiAoIXBhcnNlVUludDcob3Ap
KQorICAgICAgICBpZiAoIXBhcnNlVUludDcob3ApIHx8ICFpc1ZhbGlkT3BUeXBlKG9wKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBpZiAodmVyYm9zZSkgewpAQCAtMjYw
LDggKzI2MCw3IEBAIGJvb2wgRnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lv
bihPcFR5cGUgb3ApCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICAvLyBVbmtu
b3duIG9wY29kZS4KLSAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRleHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XQVNNT3BzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
QVNNT3BzLmgKaW5kZXggMDVhYzk1ZC4uMjg4OGZiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTU9wcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dBU01PcHMuaApAQCAtMTcxLDYgKzE3MSw4IEBAIGVudW0gT3BUeXBlIDogdWludDhfdCB7CiAg
ICAgRk9SX0VBQ0hfV0FTTV9PUChDUkVBVEVfRU5VTV9WQUxVRSkKIH07CiAKK3RlbXBsYXRlPHR5
cGVuYW1lIEludD4gaW5saW5lIGJvb2wgaXNWYWxpZE9wVHlwZShJbnQgaSkgeyByZXR1cm4gaSA8
PSAxODg7IH0KKwogZW51bSBjbGFzcyBCaW5hcnlPcFR5cGUgOiB1aW50OF90IHsKICAgICBGT1Jf
RUFDSF9XQVNNX0JJTkFSWV9PUChDUkVBVEVfRU5VTV9WQUxVRSkKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XQVNNUGFyc2VyLmgKaW5kZXggYTg1MjBjZC4uNTM2OWI2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVBhcnNlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dBU01QYXJzZXIuaApAQCAtNzksNiArNzksOCBAQCBBTFdBWVNf
SU5MSU5FIGJvb2wgUGFyc2VyOjpjb25zdW1lQ2hhcmFjdGVyKGNoYXIgYykKIEFMV0FZU19JTkxJ
TkUgYm9vbCBQYXJzZXI6OmNvbnN1bWVTdHJpbmcoY29uc3QgY2hhciogc3RyKQogewogICAgIHVu
c2lnbmVkIHN0YXJ0ID0gbV9vZmZzZXQ7CisgICAgaWYgKG1fb2Zmc2V0ID49IG1fc291cmNlTGVu
Z3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgc3Ry
W2ldOyBpKyspIHsKICAgICAgICAgaWYgKCFjb25zdW1lQ2hhcmFjdGVyKHN0cltpXSkpIHsKICAg
ICAgICAgICAgIG1fb2Zmc2V0ID0gc3RhcnQ7CkBAIC05MCw3ICs5Miw3IEBAIEFMV0FZU19JTkxJ
TkUgYm9vbCBQYXJzZXI6OmNvbnN1bWVTdHJpbmcoY29uc3QgY2hhciogc3RyKQogCiBBTFdBWVNf
SU5MSU5FIGJvb2wgUGFyc2VyOjpwYXJzZVVJbnQzMih1aW50MzJfdCYgcmVzdWx0KQogewotICAg
IGlmIChtX29mZnNldCArIDQgPj0gbV9zb3VyY2VMZW5ndGgpCisgICAgaWYgKG1fc291cmNlTGVu
Z3RoIDwgNCB8fCBtX29mZnNldCA+PSBtX3NvdXJjZUxlbmd0aCAtIDQpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICByZXN1bHQgPSAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MzJfdCo+
KG1fc291cmNlLmRhdGEoKSArIG1fb2Zmc2V0KTsKICAgICBtX29mZnNldCArPSA0OwotLSAKMi45
LjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290617</attachid>
            <date>2016-10-04 10:46:09 -0700</date>
            <delta_ts>2016-10-04 10:51:27 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-random-wasm.patch</filename>
            <type>text/plain</type>
            <size>7494</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBhYzVhZjk5OTk3OGYxNjQ4NGE2ODNmYjJmYmQxNTNlNTc2YmU1ZmE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBNb24sIDMgT2N0IDIwMTYgMTc6MjE6MzMgLTA3MDAKU3ViamVjdDogW1BBVENIXSByYW5kb20t
d2FzbQoKLS0tCiBKU1Rlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDEwICsrKysrKysrKwogSlNUZXN0cy9zdHJlc3Mvd2FzbS9nZW5lcmF0ZS13YXNtb3BzLWhl
YWRlci5qcyAgfCAyOCArKysrKysrKysrKysrKysrKysrKysrLS0tCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICB8IDE3ICsrKysrKysrKysrKysrKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmNwcCAgICAgfCAgMSArCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaCB8ICA1ICsrLS0tCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNT3BzLmggICAgICAgICAgICB8ICA4ICsrKysr
KysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01QYXJzZXIuaCAgICAgICAgIHwgIDQg
KysrLQogNyBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NTEzNjExOC4uMjFhMTIwMyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxNi0xMC0wMyAgSkYgQmFzdGllbiAg
PGpmYmFzdGllbkBhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViQXNzZW1ibHk6IGhhbmRsZSBhIGZl
dyBjb3JuZXIgY2FzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2Mjg4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3RyZXNzL3dhc20vZ2VuZXJhdGUtd2FzbW9wcy1oZWFkZXIuanM6CisgICAgICAg
IChjb25zdC5vcGNvZGVJdGVyYXRvcik6IG1heCBvcGNvZGUgdmFsdWUsIG5leHQgc3RlcCBpcyB0
byBhZGQgYml0bWFwcyB0byBhbGwgb2YgdGhlc2UKKworMjAxNi0xMC0wMyAgSkYgQmFzdGllbiAg
PGpmYmFzdGllbkBhcHBsZS5jb20+CisKICAgICAgICAgQXV0by1nZW5lcmF0ZSBXQVNNT3BzLmgs
IHNoYXJlIHdpdGggdGVzdGluZyBKU09OIGZpbGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjg3MAogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy93YXNtL2dlbmVyYXRlLXdhc21vcHMtaGVhZGVyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvd2FzbS9n
ZW5lcmF0ZS13YXNtb3BzLWhlYWRlci5qcwppbmRleCAyMzk5ZjU2Li44MDhjMGM0IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3N0cmVzcy93YXNtL2dlbmVyYXRlLXdhc21vcHMtaGVhZGVyLmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL3dhc20vZ2VuZXJhdGUtd2FzbW9wcy1oZWFkZXIuanMKQEAgLTQsMTIg
KzQsMTIgQEAgY29uc3QganNvbkZpbGUgPSAnd2FzbS5qc29uJzsKIGNvbnN0IHdhc20gPSBKU09O
LnBhcnNlKHJlYWQoanNvbkZpbGUpKTsKIGNvbnN0IG9wY29kZXMgPSB3YXNtLm9wY29kZTsKIAot
Ly8gSXRlcmF0ZSB0aHJvdWdoIG9wY29kZXMgd2hpY2ggbWF0Y2ggZmlsdGVyLgotY29uc3Qgb3Bj
b2RlSXRlcmF0b3IgPSAoZmlsdGVyKSA9PiB7CisvLyBJdGVyYXRlIHRocm91Z2ggb3Bjb2RlcyB3
aGljaCBtYXRjaCBmaWx0ZXIsIGFuZCBvbiBlYWNoIGl0ZXJhdGlvbiB5aWVsZCByZXQuCitjb25z
dCBvcGNvZGVJdGVyYXRvciA9IChmaWx0ZXIsIHJldCA9IG9wID0+IHsgcmV0dXJuIHtuYW1lOiBv
cCwgb3Bjb2RlOiBvcGNvZGVzW29wXX07IH0pID0+IHsKICAgICByZXR1cm4gZnVuY3Rpb24qKCkg
ewogICAgICAgICBmb3IgKGxldCBvcCBpbiBvcGNvZGVzKQogICAgICAgICAgICAgaWYgKGZpbHRl
cihvcGNvZGVzW29wXSkpCi0gICAgICAgICAgICAgICAgeWllbGQge25hbWU6IG9wLCBvcGNvZGU6
IG9wY29kZXNbb3BdfTsKKyAgICAgICAgICAgICAgICB5aWVsZCByZXQob3ApOwogICAgIH07CiB9
OwogCkBAIC0zOCw2ICszOCwyMCBAQCBjb25zdCBkZWZpbmVzID0gWwogICAgIC4uLm9wY29kZU1h
Y3JvaXplcihvcCA9PiAob3AuY2F0ZWdvcnkgPT09ICJhcml0aG1ldGljIiB8fCBvcC5jYXRlZ29y
eSA9PT0gImNvbXBhcmlzb24iKSAmJiBvcC5wYXJhbWV0ZXIubGVuZ3RoID09PSAyKSwKICAgICAi
XG5cbiJdLmpvaW4oIiIpOwogCitjb25zdCBtYXhPcFZhbHVlID0gTWF0aC5tYXgoLi4ub3Bjb2Rl
SXRlcmF0b3Iob3AgPT4gdHJ1ZSwgb3AgPT4gb3Bjb2Rlc1tvcF0udmFsdWUpKCkpOworY29uc3Qg
dmFsaWRPcHMgPSAoKCkgPT4geworICAgIGxldCB2ID0gIiI7CisgICAgY29uc3Qgb3BWYWx1ZXMg
PSBuZXcgU2V0KG9wY29kZUl0ZXJhdG9yKG9wID0+IHRydWUsIG9wID0+IG9wY29kZXNbb3BdLnZh
bHVlKSgpKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1heE9wVmFsdWUgLyA4OyArK2kpIHsK
KyAgICAgICAgbGV0IGVudHJ5ID0gMDsKKyAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCA4OyAr
K2opCisgICAgICAgICAgICBpZiAob3BWYWx1ZXMuaGFzKGkgKiA4ICsgaikpCisgICAgICAgICAg
ICAgICAgZW50cnkgfD0gMSA8PCBqOworICAgICAgICB2ICs9IChpID8gIiwgIiA6ICIiKSArICIw
eCIgKyBlbnRyeS50b1N0cmluZygxNik7CisgICAgfQorICAgIHJldHVybiB2OworfSkoKTsKKwog
Y29uc3QgdGVtcGxhdGUgPSBgLyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNjksNiArODMsOCBAQCBjb25zdCB0ZW1wbGF0ZSA9
IGAvKgogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCisjaW5jbHVkZSA8Y3N0ZGludD4KKwog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXQVNNIHsKIAogJHtkZWZpbmVzfQpAQCAtODUsNiAr
MTAxLDEyIEBAIGVudW0gT3BUeXBlIDogdWludDhfdCB7CiAgICAgRk9SX0VBQ0hfV0FTTV9PUChD
UkVBVEVfRU5VTV9WQUxVRSkKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEludD4KK2lubGluZSBi
b29sIGlzVmFsaWRPcFR5cGUoSW50IGkpIHsKKyAgICBzdGF0aWMgY29uc3QgdWludDhfdCB2YWxp
ZFtdID0geyAke3ZhbGlkT3BzfSB9OworICAgIHJldHVybiAwIDw9IGkgJiYgaSA8PSAke21heE9w
VmFsdWV9ICYmICh2YWxpZFtpIC8gOF0gJiAoMSA8PCAoaSAlIDgpKSk7Cit9CisKIGVudW0gY2xh
c3MgQmluYXJ5T3BUeXBlIDogdWludDhfdCB7CiAgICAgRk9SX0VBQ0hfV0FTTV9CSU5BUllfT1Ao
Q1JFQVRFX0VOVU1fVkFMVUUpCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzZlMDEz
NC4uNTE5ODJkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIw
MTYtMTAtMDMgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgogCisgICAgICAgIFdl
YkFzc2VtYmx5OiBoYW5kbGUgYSBmZXcgY29ybmVyIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4ODQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdhc20vSlNXQVNNTW9kdWxlLmNwcDogbWlz
c2luZyBpbmNsdWRlIGJyb2tlIGNtYWtlIGJ1aWxkCisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rp
b25QYXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46
OnBhcnNlQmxvY2spOiBjaGVjayBvcCBpcyB2YWxpZCAobm90IHF1aXRlIGNvcnJlY3QsIGp1c3Qg
cmFuZ2UgY2hlY2sgZm9yIG5vdykKKyAgICAgICAgKEpTQzo6V0FTTTo6RnVuY3Rpb25QYXJzZXI8
Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbik6IHN3aXRjaCBjb3ZlcnMgYWxsIGNhc2VzCisgICAg
ICAgICogd2FzbS9XQVNNT3BzLmg6CisgICAgICAgIChKU0M6OldBU006OmlzVmFsaWRPcFR5cGUp
OiBvcCBpcyB2YWxpZCAoSSdsbCBkbyBhIGJpdG1hc2sgbmV4dCB0aW1lKQorICAgICAgICAqIHdh
c20vV0FTTVBhcnNlci5oOgorICAgICAgICAoSlNDOjpXQVNNOjpQYXJzZXI6OmNvbnN1bWVTdHJp
bmcpOiBhdm9pZCBzdHJbaV0gYmVpbmcgb25lLXBhc3QtdGhlLWVuZAorICAgICAgICAoSlNDOjpX
QVNNOjpQYXJzZXI6OnBhcnNlVUludDMyKTogc2hpZnQgbWF0aCBhcm91bmQgdG8gYXZvaWQgb3Zl
cmZsb3cKKworMjAxNi0xMC0wMyAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CisK
ICAgICAgICAgQXV0by1nZW5lcmF0ZSBXQVNNT3BzLmgsIHNoYXJlIHdpdGggdGVzdGluZyBKU09O
IGZpbGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
Mjg3MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9KU1dBU01Nb2R1
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmNwcAppbmRl
eCBkZWI3MTYxLi5jZDk5NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9KU1dBU01Nb2R1bGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FT
TU1vZHVsZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5o
IgorI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKaW5kZXgg
MTFiOGE4ZS4uYWU4NzQyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V0FTTUZ1bmN0aW9uUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBib29sIEZ1bmN0aW9uUGFyc2Vy
PENvbnRleHQ+OjpwYXJzZUJsb2NrKCkKIHsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICB1
aW50OF90IG9wOwotICAgICAgICBpZiAoIXBhcnNlVUludDcob3ApKQorICAgICAgICBpZiAoIXBh
cnNlVUludDcob3ApIHx8ICFpc1ZhbGlkT3BUeXBlKG9wKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgICAgICBpZiAodmVyYm9zZSkgewpAQCAtMjYwLDggKzI2MCw3IEBAIGJvb2wg
RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbihPcFR5cGUgb3ApCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICAvLyBVbmtub3duIG9wY29kZS4KLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIENvbnRleHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
QVNNT3BzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNT3BzLmgKaW5kZXggMDVh
Yzk1ZC4uYTdkOWM2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TU9wcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01PcHMuaApAQCAtMjks
NiArMjksOCBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCisjaW5jbHVkZSA8Y3N0ZGlu
dD4KKwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXQVNNIHsKIAogI2RlZmluZSBGT1JfRUFD
SF9XQVNNX1NQRUNJQUxfT1AobWFjcm8pIFwKQEAgLTE3MSw2ICsxNzMsMTIgQEAgZW51bSBPcFR5
cGUgOiB1aW50OF90IHsKICAgICBGT1JfRUFDSF9XQVNNX09QKENSRUFURV9FTlVNX1ZBTFVFKQog
fTsKIAordGVtcGxhdGU8dHlwZW5hbWUgSW50PgoraW5saW5lIGJvb2wgaXNWYWxpZE9wVHlwZShJ
bnQgaSkgeworICAgIHN0YXRpYyBjb25zdCB1aW50OF90IHZhbGlkW10gPSB7IDB4ZmYsIDB4OGYs
IDB4ZmYsIDB4MiwgMHhmZiwgMHhmZiwgMHg3ZiwgMHhhLCAweGZmLCAweGZmLCAweGZmLCAweGZm
LCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAw
eGZmLCAweGZmLCAweDFmIH07CisgICAgcmV0dXJuIDAgPD0gaSAmJiBpIDw9IDE4OCAmJiAodmFs
aWRbaSAvIDhdICYgKDEgPDwgKGkgJSA4KSkpOworfQorCiBlbnVtIGNsYXNzIEJpbmFyeU9wVHlw
ZSA6IHVpbnQ4X3QgewogICAgIEZPUl9FQUNIX1dBU01fQklOQVJZX09QKENSRUFURV9FTlVNX1ZB
TFVFKQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01QYXJz
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01QYXJzZXIuaAppbmRleCBhODUy
MGNkLi41MzY5YjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNN
UGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVBhcnNlci5oCkBA
IC03OSw2ICs3OSw4IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI6OmNvbnN1bWVDaGFyYWN0
ZXIoY2hhciBjKQogQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjo6Y29uc3VtZVN0cmluZyhjb25z
dCBjaGFyKiBzdHIpCiB7CiAgICAgdW5zaWduZWQgc3RhcnQgPSBtX29mZnNldDsKKyAgICBpZiAo
bV9vZmZzZXQgPj0gbV9zb3VyY2VMZW5ndGgpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBzdHJbaV07IGkrKykgewogICAgICAgICBpZiAoIWNvbnN1bWVD
aGFyYWN0ZXIoc3RyW2ldKSkgewogICAgICAgICAgICAgbV9vZmZzZXQgPSBzdGFydDsKQEAgLTkw
LDcgKzkyLDcgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjo6Y29uc3VtZVN0cmluZyhjb25z
dCBjaGFyKiBzdHIpCiAKIEFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI6OnBhcnNlVUludDMyKHVp
bnQzMl90JiByZXN1bHQpCiB7Ci0gICAgaWYgKG1fb2Zmc2V0ICsgNCA+PSBtX3NvdXJjZUxlbmd0
aCkKKyAgICBpZiAobV9zb3VyY2VMZW5ndGggPCA0IHx8IG1fb2Zmc2V0ID49IG1fc291cmNlTGVu
Z3RoIC0gNCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJlc3VsdCA9ICpyZWludGVycHJl
dF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4obV9zb3VyY2UuZGF0YSgpICsgbV9vZmZzZXQpOwogICAg
IG1fb2Zmc2V0ICs9IDQ7Ci0tIAoyLjkuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290619</attachid>
            <date>2016-10-04 10:51:27 -0700</date>
            <delta_ts>2016-10-04 14:03:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-random-wasm.patch</filename>
            <type>text/plain</type>
            <size>7376</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA1ZjE4YzZhY2JiMmNhNDA0YTU2OTUyNjE2ZjA1ZTU1ZmYzMzEwMGJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBNb24sIDMgT2N0IDIwMTYgMTc6MjE6MzMgLTA3MDAKU3ViamVjdDogW1BBVENIXSByYW5kb20t
d2FzbQoKLS0tCiBKU1Rlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDEwICsrKysrKysrKwogSlNUZXN0cy9zdHJlc3Mvd2FzbS9nZW5lcmF0ZS13YXNtb3BzLWhl
YWRlci5qcyAgfCAyOSArKysrKysrKysrKysrKysrKysrKysrLS0tCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICB8IDE3ICsrKysrKysrKysrKysrKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmNwcCAgICAgfCAgMSArCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaCB8ICA1ICsrLS0tCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNT3BzLmggICAgICAgICAgICB8ICA5ICsrKysr
KysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUGFyc2VyLmggICAgICAgICB8ICA0
ICsrKy0KIDcgZmlsZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDUxMzYxMTguLjllNzkwZDkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pT
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTYtMTAtMDMgIEpGIEJhc3RpZW4g
IDxqZmJhc3RpZW5AYXBwbGUuY29tPgogCisgICAgICAgIFdlYkFzc2VtYmx5OiBoYW5kbGUgYSBm
ZXcgY29ybmVyIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjI4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHN0cmVzcy93YXNtL2dlbmVyYXRlLXdhc21vcHMtaGVhZGVyLmpzOgorICAgICAg
ICAoY29uc3Qub3Bjb2RlSXRlcmF0b3IpOiBtYXggb3Bjb2RlIHZhbHVlCisKKzIwMTYtMTAtMDMg
IEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCiAgICAgICAgIEF1dG8tZ2VuZXJh
dGUgV0FTTU9wcy5oLCBzaGFyZSB3aXRoIHRlc3RpbmcgSlNPTiBmaWxlCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4NzAKIApkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3Mvd2FzbS9nZW5lcmF0ZS13YXNtb3BzLWhlYWRlci5qcyBiL0pTVGVzdHMv
c3RyZXNzL3dhc20vZ2VuZXJhdGUtd2FzbW9wcy1oZWFkZXIuanMKaW5kZXggMjM5OWY1Ni4uNzcy
ZThhZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvd2FzbS9nZW5lcmF0ZS13YXNtb3BzLWhl
YWRlci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy93YXNtL2dlbmVyYXRlLXdhc21vcHMtaGVhZGVy
LmpzCkBAIC00LDEyICs0LDEyIEBAIGNvbnN0IGpzb25GaWxlID0gJ3dhc20uanNvbic7CiBjb25z
dCB3YXNtID0gSlNPTi5wYXJzZShyZWFkKGpzb25GaWxlKSk7CiBjb25zdCBvcGNvZGVzID0gd2Fz
bS5vcGNvZGU7CiAKLS8vIEl0ZXJhdGUgdGhyb3VnaCBvcGNvZGVzIHdoaWNoIG1hdGNoIGZpbHRl
ci4KLWNvbnN0IG9wY29kZUl0ZXJhdG9yID0gKGZpbHRlcikgPT4geworLy8gSXRlcmF0ZSB0aHJv
dWdoIG9wY29kZXMgd2hpY2ggbWF0Y2ggZmlsdGVyLCBhbmQgb24gZWFjaCBpdGVyYXRpb24geWll
bGQgcmV0LgorY29uc3Qgb3Bjb2RlSXRlcmF0b3IgPSAoZmlsdGVyLCByZXQgPSBvcCA9PiB7IHJl
dHVybiB7bmFtZTogb3AsIG9wY29kZTogb3Bjb2Rlc1tvcF19OyB9KSA9PiB7CiAgICAgcmV0dXJu
IGZ1bmN0aW9uKigpIHsKICAgICAgICAgZm9yIChsZXQgb3AgaW4gb3Bjb2RlcykKICAgICAgICAg
ICAgIGlmIChmaWx0ZXIob3Bjb2Rlc1tvcF0pKQotICAgICAgICAgICAgICAgIHlpZWxkIHtuYW1l
OiBvcCwgb3Bjb2RlOiBvcGNvZGVzW29wXX07CisgICAgICAgICAgICAgICAgeWllbGQgcmV0KG9w
KTsKICAgICB9OwogfTsKIApAQCAtMzgsNiArMzgsMjAgQEAgY29uc3QgZGVmaW5lcyA9IFsKICAg
ICAuLi5vcGNvZGVNYWNyb2l6ZXIob3AgPT4gKG9wLmNhdGVnb3J5ID09PSAiYXJpdGhtZXRpYyIg
fHwgb3AuY2F0ZWdvcnkgPT09ICJjb21wYXJpc29uIikgJiYgb3AucGFyYW1ldGVyLmxlbmd0aCA9
PT0gMiksCiAgICAgIlxuXG4iXS5qb2luKCIiKTsKIAorY29uc3QgbWF4T3BWYWx1ZSA9IE1hdGgu
bWF4KC4uLm9wY29kZUl0ZXJhdG9yKG9wID0+IHRydWUsIG9wID0+IG9wY29kZXNbb3BdLnZhbHVl
KSgpKTsKK2NvbnN0IHZhbGlkT3BzID0gKCgpID0+IHsKKyAgICBsZXQgdiA9ICIiOworICAgIGNv
bnN0IG9wVmFsdWVzID0gbmV3IFNldChvcGNvZGVJdGVyYXRvcihvcCA9PiB0cnVlLCBvcCA9PiBv
cGNvZGVzW29wXS52YWx1ZSkoKSk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhPcFZhbHVl
IC8gODsgKytpKSB7CisgICAgICAgIGxldCBlbnRyeSA9IDA7CisgICAgICAgIGZvciAobGV0IGog
PSAwOyBqIDwgODsgKytqKQorICAgICAgICAgICAgaWYgKG9wVmFsdWVzLmhhcyhpICogOCArIGop
KQorICAgICAgICAgICAgICAgIGVudHJ5IHw9IDEgPDwgajsKKyAgICAgICAgdiArPSAoaSA/ICIs
ICIgOiAiIikgKyAiMHgiICsgZW50cnkudG9TdHJpbmcoMTYpOworICAgIH0KKyAgICByZXR1cm4g
djsKK30pKCk7CisKIGNvbnN0IHRlbXBsYXRlID0gYC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTY5LDYgKzgzLDggQEAgY29u
c3QgdGVtcGxhdGUgPSBgLyoKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAorI2luY2x1ZGUg
PGNzdGRpbnQ+CisKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV0FTTSB7CiAKICR7ZGVmaW5l
c30KQEAgLTg1LDYgKzEwMSwxMyBAQCBlbnVtIE9wVHlwZSA6IHVpbnQ4X3QgewogICAgIEZPUl9F
QUNIX1dBU01fT1AoQ1JFQVRFX0VOVU1fVkFMVUUpCiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBJ
bnQ+CitpbmxpbmUgYm9vbCBpc1ZhbGlkT3BUeXBlKEludCBpKQoreworICAgIHN0YXRpYyBjb25z
dCB1aW50OF90IHZhbGlkW10gPSB7ICR7dmFsaWRPcHN9IH07CisgICAgcmV0dXJuIDAgPD0gaSAm
JiBpIDw9ICR7bWF4T3BWYWx1ZX0gJiYgKHZhbGlkW2kgLyA4XSAmICgxIDw8IChpICUgOCkpKTsK
K30KKwogZW51bSBjbGFzcyBCaW5hcnlPcFR5cGUgOiB1aW50OF90IHsKICAgICBGT1JfRUFDSF9X
QVNNX0JJTkFSWV9PUChDUkVBVEVfRU5VTV9WQUxVRSkKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCBjNmUwMTM0Li40N2E5NmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMiBAQAogMjAxNi0xMC0wMyAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+
CiAKKyAgICAgICAgV2ViQXNzZW1ibHk6IGhhbmRsZSBhIGZldyBjb3JuZXIgY2FzZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjg4NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2FzbS9KU1dBU01N
b2R1bGUuY3BwOiBtaXNzaW5nIGluY2x1ZGUgYnJva2UgY21ha2UgYnVpbGQKKyAgICAgICAgKiB3
YXNtL1dBU01GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAoSlNDOjpXQVNNOjpGdW5jdGlvblBh
cnNlcjxDb250ZXh0Pjo6cGFyc2VCbG9jayk6IGNoZWNrIG9wIGlzIHZhbGlkCisgICAgICAgIChK
U0M6OldBU006OkZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZUV4cHJlc3Npb24pOiBzd2l0
Y2ggY292ZXJzIGFsbCBjYXNlcworICAgICAgICAqIHdhc20vV0FTTU9wcy5oOgorICAgICAgICAo
SlNDOjpXQVNNOjppc1ZhbGlkT3BUeXBlKTogb3AgaXMgdmFsaWQKKyAgICAgICAgKiB3YXNtL1dB
U01QYXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTTo6UGFyc2VyOjpjb25zdW1lU3RyaW5nKTog
YXZvaWQgc3RyW2ldIGJlaW5nIG9uZS1wYXN0LXRoZS1lbmQKKyAgICAgICAgKEpTQzo6V0FTTTo6
UGFyc2VyOjpwYXJzZVVJbnQzMik6IHNoaWZ0IG1hdGggYXJvdW5kIHRvIGF2b2lkIG92ZXJmbG93
CisKKzIwMTYtMTAtMDMgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCiAgICAg
ICAgIEF1dG8tZ2VuZXJhdGUgV0FTTU9wcy5oLCBzaGFyZSB3aXRoIHRlc3RpbmcgSlNPTiBmaWxl
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4NzAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9kdWxlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5jcHAKaW5kZXggZGVi
NzE2MS4uY2Q5OTZhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNX
QVNNTW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9KU1dBU01Nb2R1
bGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIKKyNp
bmNsdWRlICJTdHJ1Y3R1cmVJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCmluZGV4IDExYjhh
OGUuLmFlODc0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01G
dW5jdGlvblBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5j
dGlvblBhcnNlci5oCkBAIC0xMDEsNyArMTAxLDcgQEAgYm9vbCBGdW5jdGlvblBhcnNlcjxDb250
ZXh0Pjo6cGFyc2VCbG9jaygpCiB7CiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgdWludDhf
dCBvcDsKLSAgICAgICAgaWYgKCFwYXJzZVVJbnQ3KG9wKSkKKyAgICAgICAgaWYgKCFwYXJzZVVJ
bnQ3KG9wKSB8fCAhaXNWYWxpZE9wVHlwZShvcCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICAgICAgaWYgKHZlcmJvc2UpIHsKQEAgLTI2MCw4ICsyNjAsNyBAQCBib29sIEZ1bmN0
aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZUV4cHJlc3Npb24oT3BUeXBlIG9wKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgLy8gVW5rbm93biBvcGNvZGUuCi0gICAgcmV0dXJu
IGZhbHNlOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDb250ZXh0PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTU9w
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTU9wcy5oCmluZGV4IDA1YWM5NWQu
LmI0MDE3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01PcHMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNT3BzLmgKQEAgLTI5LDYgKzI5
LDggQEAKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAorI2luY2x1ZGUgPGNzdGRpbnQ+CisK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV0FTTSB7CiAKICNkZWZpbmUgRk9SX0VBQ0hfV0FT
TV9TUEVDSUFMX09QKG1hY3JvKSBcCkBAIC0xNzEsNiArMTczLDEzIEBAIGVudW0gT3BUeXBlIDog
dWludDhfdCB7CiAgICAgRk9SX0VBQ0hfV0FTTV9PUChDUkVBVEVfRU5VTV9WQUxVRSkKIH07CiAK
K3RlbXBsYXRlPHR5cGVuYW1lIEludD4KK2lubGluZSBib29sIGlzVmFsaWRPcFR5cGUoSW50IGkp
Cit7CisgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgdmFsaWRbXSA9IHsgMHhmZiwgMHg4ZiwgMHhm
ZiwgMHgyLCAweGZmLCAweGZmLCAweDdmLCAweGEsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4
ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYs
IDB4ZmYsIDB4MWYgfTsKKyAgICByZXR1cm4gMCA8PSBpICYmIGkgPD0gMTg4ICYmICh2YWxpZFtp
IC8gOF0gJiAoMSA8PCAoaSAlIDgpKSk7Cit9CisKIGVudW0gY2xhc3MgQmluYXJ5T3BUeXBlIDog
dWludDhfdCB7CiAgICAgRk9SX0VBQ0hfV0FTTV9CSU5BUllfT1AoQ1JFQVRFX0VOVU1fVkFMVUUp
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVBhcnNlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVBhcnNlci5oCmluZGV4IGE4NTIwY2Qu
LjUzNjliNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01QYXJz
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUGFyc2VyLmgKQEAgLTc5
LDYgKzc5LDggQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjo6Y29uc3VtZUNoYXJhY3Rlcihj
aGFyIGMpCiBBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyOjpjb25zdW1lU3RyaW5nKGNvbnN0IGNo
YXIqIHN0cikKIHsKICAgICB1bnNpZ25lZCBzdGFydCA9IG1fb2Zmc2V0OworICAgIGlmIChtX29m
ZnNldCA+PSBtX3NvdXJjZUxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IHN0cltpXTsgaSsrKSB7CiAgICAgICAgIGlmICghY29uc3VtZUNoYXJh
Y3RlcihzdHJbaV0pKSB7CiAgICAgICAgICAgICBtX29mZnNldCA9IHN0YXJ0OwpAQCAtOTAsNyAr
OTIsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyOjpjb25zdW1lU3RyaW5nKGNvbnN0IGNo
YXIqIHN0cikKIAogQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjo6cGFyc2VVSW50MzIodWludDMy
X3QmIHJlc3VsdCkKIHsKLSAgICBpZiAobV9vZmZzZXQgKyA0ID49IG1fc291cmNlTGVuZ3RoKQor
ICAgIGlmIChtX3NvdXJjZUxlbmd0aCA8IDQgfHwgbV9vZmZzZXQgPj0gbV9zb3VyY2VMZW5ndGgg
LSA0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmVzdWx0ID0gKnJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDMyX3QqPihtX3NvdXJjZS5kYXRhKCkgKyBtX29mZnNldCk7CiAgICAgbV9v
ZmZzZXQgKz0gNDsKLS0gCjIuOS4zCgo=
</data>
<flag name="review"
          id="313791"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
    <flag name="commit-queue"
          id="313792"
          type_id="3"
          status="-"
          setter="keith_miller"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290640</attachid>
            <date>2016-10-04 14:03:20 -0700</date>
            <delta_ts>2016-10-04 16:28:01 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-random-wasm.patch</filename>
            <type>text/plain</type>
            <size>7422</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA1MTNlYTk3NjlmMGE1NmM4OWI3NjYzY2QzZDdmNmI0NzQ2MzFmMTQ5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBNb24sIDMgT2N0IDIwMTYgMTc6MjE6MzMgLTA3MDAKU3ViamVjdDogW1BBVENIXSByYW5kb20t
d2FzbQoKLS0tCiBKU1Rlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDEwICsrKysrKysrCiBKU1Rlc3RzL3N0cmVzcy93YXNtL2dlbmVyYXRlLXdhc21vcHMtaGVh
ZGVyLmpzICB8IDMxICsrKysrKysrKysrKysrKysrKysrKystLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgIHwgMTcgKysrKysrKysrKysrKysKIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL0pTV0FTTU1vZHVsZS5jcHAgICAgIHwgIDEgKwogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmggfCAgNSArKy0tCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNT3BzLmggICAgICAgICAgICB8IDEwICsrKysrKysr
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUGFyc2VyLmggICAgICAgICB8ICA0ICsr
Ky0KIDcgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUx
MzYxMTguLjQ2MzhlZTIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTYtMTAtMDMgIEpGIEJhc3RpZW4gIDxq
ZmJhc3RpZW5AYXBwbGUuY29tPgogCisgICAgICAgIFdlYkFzc2VtYmx5OiBoYW5kbGUgYSBmZXcg
Y29ybmVyIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjI4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBLZWl0aCBNaWxsZXIuCisKKyAgICAg
ICAgKiBzdHJlc3Mvd2FzbS9nZW5lcmF0ZS13YXNtb3BzLWhlYWRlci5qczoKKyAgICAgICAgKGNv
bnN0Lm9wY29kZUl0ZXJhdG9yKTogbWF4IG9wY29kZSB2YWx1ZQorCisyMDE2LTEwLTAzICBKRiBC
YXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKwogICAgICAgICBBdXRvLWdlbmVyYXRlIFdB
U01PcHMuaCwgc2hhcmUgd2l0aCB0ZXN0aW5nIEpTT04gZmlsZQogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyODcwCiAKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL3dhc20vZ2VuZXJhdGUtd2FzbW9wcy1oZWFkZXIuanMgYi9KU1Rlc3RzL3N0cmVz
cy93YXNtL2dlbmVyYXRlLXdhc21vcHMtaGVhZGVyLmpzCmluZGV4IDIzOTlmNTYuLmNlNTI4OTcg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3dhc20vZ2VuZXJhdGUtd2FzbW9wcy1oZWFkZXIu
anMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvd2FzbS9nZW5lcmF0ZS13YXNtb3BzLWhlYWRlci5qcwpA
QCAtNCwxMiArNCwxMiBAQCBjb25zdCBqc29uRmlsZSA9ICd3YXNtLmpzb24nOwogY29uc3Qgd2Fz
bSA9IEpTT04ucGFyc2UocmVhZChqc29uRmlsZSkpOwogY29uc3Qgb3Bjb2RlcyA9IHdhc20ub3Bj
b2RlOwogCi0vLyBJdGVyYXRlIHRocm91Z2ggb3Bjb2RlcyB3aGljaCBtYXRjaCBmaWx0ZXIuCi1j
b25zdCBvcGNvZGVJdGVyYXRvciA9IChmaWx0ZXIpID0+IHsKKy8vIEl0ZXJhdGUgdGhyb3VnaCBv
cGNvZGVzIHdoaWNoIG1hdGNoIGZpbHRlciwgYW5kIG9uIGVhY2ggaXRlcmF0aW9uIHlpZWxkIHJl
dC4KK2NvbnN0IG9wY29kZUl0ZXJhdG9yID0gKGZpbHRlciwgcmV0ID0gb3AgPT4geyByZXR1cm4g
e25hbWU6IG9wLCBvcGNvZGU6IG9wY29kZXNbb3BdfTsgfSkgPT4gewogICAgIHJldHVybiBmdW5j
dGlvbiooKSB7CiAgICAgICAgIGZvciAobGV0IG9wIGluIG9wY29kZXMpCiAgICAgICAgICAgICBp
ZiAoZmlsdGVyKG9wY29kZXNbb3BdKSkKLSAgICAgICAgICAgICAgICB5aWVsZCB7bmFtZTogb3As
IG9wY29kZTogb3Bjb2Rlc1tvcF19OworICAgICAgICAgICAgICAgIHlpZWxkIHJldChvcCk7CiAg
ICAgfTsKIH07CiAKQEAgLTM4LDYgKzM4LDIxIEBAIGNvbnN0IGRlZmluZXMgPSBbCiAgICAgLi4u
b3Bjb2RlTWFjcm9pemVyKG9wID0+IChvcC5jYXRlZ29yeSA9PT0gImFyaXRobWV0aWMiIHx8IG9w
LmNhdGVnb3J5ID09PSAiY29tcGFyaXNvbiIpICYmIG9wLnBhcmFtZXRlci5sZW5ndGggPT09IDIp
LAogICAgICJcblxuIl0uam9pbigiIik7CiAKK2NvbnN0IG9wVmFsdWVTZXQgPSBuZXcgU2V0KG9w
Y29kZUl0ZXJhdG9yKG9wID0+IHRydWUsIG9wID0+IG9wY29kZXNbb3BdLnZhbHVlKSgpKTsKK2Nv
bnN0IG1heE9wVmFsdWUgPSBNYXRoLm1heCguLi5vcFZhbHVlU2V0KTsKK2NvbnN0IHZhbGlkT3Bz
ID0gKCgpID0+IHsKKyAgICAvLyBDcmVhdGUgYSBiaXRzZXQgb2YgdmFsaWQgb3BzLgorICAgIGxl
dCB2ID0gIiI7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhPcFZhbHVlIC8gODsgKytpKSB7
CisgICAgICAgIGxldCBlbnRyeSA9IDA7CisgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgODsg
KytqKQorICAgICAgICAgICAgaWYgKG9wVmFsdWVTZXQuaGFzKGkgKiA4ICsgaikpCisgICAgICAg
ICAgICAgICAgZW50cnkgfD0gMSA8PCBqOworICAgICAgICB2ICs9IChpID8gIiwgIiA6ICIiKSAr
ICIweCIgKyBlbnRyeS50b1N0cmluZygxNik7CisgICAgfQorICAgIHJldHVybiB2OworfSkoKTsK
KwogY29uc3QgdGVtcGxhdGUgPSBgLyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNjksNiArODQsOCBAQCBjb25zdCB0ZW1wbGF0
ZSA9IGAvKgogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCisjaW5jbHVkZSA8Y3N0ZGludD4K
KwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXQVNNIHsKIAogJHtkZWZpbmVzfQpAQCAtODUs
NiArMTAyLDE0IEBAIGVudW0gT3BUeXBlIDogdWludDhfdCB7CiAgICAgRk9SX0VBQ0hfV0FTTV9P
UChDUkVBVEVfRU5VTV9WQUxVRSkKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEludD4KK2lubGlu
ZSBib29sIGlzVmFsaWRPcFR5cGUoSW50IGkpCit7CisgICAgLy8gQml0c2V0IG9mIHZhbGlkIG9w
cy4KKyAgICBzdGF0aWMgY29uc3QgdWludDhfdCB2YWxpZFtdID0geyAke3ZhbGlkT3BzfSB9Owor
ICAgIHJldHVybiAwIDw9IGkgJiYgaSA8PSAke21heE9wVmFsdWV9ICYmICh2YWxpZFtpIC8gOF0g
JiAoMSA8PCAoaSAlIDgpKSk7Cit9CisKIGVudW0gY2xhc3MgQmluYXJ5T3BUeXBlIDogdWludDhf
dCB7CiAgICAgRk9SX0VBQ0hfV0FTTV9CSU5BUllfT1AoQ1JFQVRFX0VOVU1fVkFMVUUpCiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzZlMDEzNC4uMmJhZTM2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTYtMTAtMDMgIEpGIEJhc3RpZW4gIDxq
ZmJhc3RpZW5AYXBwbGUuY29tPgogCisgICAgICAgIFdlYkFzc2VtYmx5OiBoYW5kbGUgYSBmZXcg
Y29ybmVyIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjI4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBLZWl0aCBNaWxsZXIuCisKKyAgICAg
ICAgKiB3YXNtL0pTV0FTTU1vZHVsZS5jcHA6IG1pc3NpbmcgaW5jbHVkZSBicm9rZSBjbWFrZSBi
dWlsZAorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmg6CisgICAgICAgIChKU0M6
OldBU006OkZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZUJsb2NrKTogY2hlY2sgb3AgaXMg
dmFsaWQKKyAgICAgICAgKEpTQzo6V0FTTTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNl
RXhwcmVzc2lvbik6IHN3aXRjaCBjb3ZlcnMgYWxsIGNhc2VzCisgICAgICAgICogd2FzbS9XQVNN
T3BzLmg6CisgICAgICAgIChKU0M6OldBU006OmlzVmFsaWRPcFR5cGUpOiBvcCBpcyB2YWxpZAor
ICAgICAgICAqIHdhc20vV0FTTVBhcnNlci5oOgorICAgICAgICAoSlNDOjpXQVNNOjpQYXJzZXI6
OmNvbnN1bWVTdHJpbmcpOiBhdm9pZCBzdHJbaV0gYmVpbmcgb25lLXBhc3QtdGhlLWVuZAorICAg
ICAgICAoSlNDOjpXQVNNOjpQYXJzZXI6OnBhcnNlVUludDMyKTogc2hpZnQgbWF0aCBhcm91bmQg
dG8gYXZvaWQgb3ZlcmZsb3cKKworMjAxNi0xMC0wMyAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBh
cHBsZS5jb20+CisKICAgICAgICAgQXV0by1nZW5lcmF0ZSBXQVNNT3BzLmgsIHNoYXJlIHdpdGgg
dGVzdGluZyBKU09OIGZpbGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2Mjg3MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9KU1dBU01Nb2R1bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vSlNXQVNNTW9k
dWxlLmNwcAppbmRleCBkZWI3MTYxLi5jZDk5NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9KU1dBU01Nb2R1bGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL0pTV0FTTU1vZHVsZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJKU0Nl
bGxJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIlNsb3RWaXNp
dG9ySW5saW5lcy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5j
dGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFy
c2VyLmgKaW5kZXggMTFiOGE4ZS4uYWU4NzQyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBib29sIEZ1
bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZUJsb2NrKCkKIHsKICAgICB3aGlsZSAodHJ1ZSkg
ewogICAgICAgICB1aW50OF90IG9wOwotICAgICAgICBpZiAoIXBhcnNlVUludDcob3ApKQorICAg
ICAgICBpZiAoIXBhcnNlVUludDcob3ApIHx8ICFpc1ZhbGlkT3BUeXBlKG9wKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBpZiAodmVyYm9zZSkgewpAQCAtMjYwLDggKzI2
MCw3IEBAIGJvb2wgRnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbihPcFR5
cGUgb3ApCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICAvLyBVbmtub3duIG9w
Y29kZS4KLSAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIENvbnRleHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XQVNNT3BzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNT3Bz
LmgKaW5kZXggMDVhYzk1ZC4uNmVmNWJkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV0FTTU9wcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01P
cHMuaApAQCAtMjksNiArMjksOCBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCisjaW5j
bHVkZSA8Y3N0ZGludD4KKwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXQVNNIHsKIAogI2Rl
ZmluZSBGT1JfRUFDSF9XQVNNX1NQRUNJQUxfT1AobWFjcm8pIFwKQEAgLTE3MSw2ICsxNzMsMTQg
QEAgZW51bSBPcFR5cGUgOiB1aW50OF90IHsKICAgICBGT1JfRUFDSF9XQVNNX09QKENSRUFURV9F
TlVNX1ZBTFVFKQogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgSW50PgoraW5saW5lIGJvb2wgaXNW
YWxpZE9wVHlwZShJbnQgaSkKK3sKKyAgICAvLyBCaXRzZXQgb2YgdmFsaWQgb3BzLgorICAgIHN0
YXRpYyBjb25zdCB1aW50OF90IHZhbGlkW10gPSB7IDB4ZmYsIDB4OGYsIDB4ZmYsIDB4MiwgMHhm
ZiwgMHhmZiwgMHg3ZiwgMHhhLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAw
eGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweDFm
IH07CisgICAgcmV0dXJuIDAgPD0gaSAmJiBpIDw9IDE4OCAmJiAodmFsaWRbaSAvIDhdICYgKDEg
PDwgKGkgJSA4KSkpOworfQorCiBlbnVtIGNsYXNzIEJpbmFyeU9wVHlwZSA6IHVpbnQ4X3Qgewog
ICAgIEZPUl9FQUNIX1dBU01fQklOQVJZX09QKENSRUFURV9FTlVNX1ZBTFVFKQogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01QYXJzZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dBU01QYXJzZXIuaAppbmRleCBhODUyMGNkLi41MzY5YjZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUGFyc2VyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVBhcnNlci5oCkBAIC03OSw2ICs3OSw4IEBA
IEFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI6OmNvbnN1bWVDaGFyYWN0ZXIoY2hhciBjKQogQUxX
QVlTX0lOTElORSBib29sIFBhcnNlcjo6Y29uc3VtZVN0cmluZyhjb25zdCBjaGFyKiBzdHIpCiB7
CiAgICAgdW5zaWduZWQgc3RhcnQgPSBtX29mZnNldDsKKyAgICBpZiAobV9vZmZzZXQgPj0gbV9z
b3VyY2VMZW5ndGgpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBzdHJbaV07IGkrKykgewogICAgICAgICBpZiAoIWNvbnN1bWVDaGFyYWN0ZXIoc3RyW2ld
KSkgewogICAgICAgICAgICAgbV9vZmZzZXQgPSBzdGFydDsKQEAgLTkwLDcgKzkyLDcgQEAgQUxX
QVlTX0lOTElORSBib29sIFBhcnNlcjo6Y29uc3VtZVN0cmluZyhjb25zdCBjaGFyKiBzdHIpCiAK
IEFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI6OnBhcnNlVUludDMyKHVpbnQzMl90JiByZXN1bHQp
CiB7Ci0gICAgaWYgKG1fb2Zmc2V0ICsgNCA+PSBtX3NvdXJjZUxlbmd0aCkKKyAgICBpZiAobV9z
b3VyY2VMZW5ndGggPCA0IHx8IG1fb2Zmc2V0ID49IG1fc291cmNlTGVuZ3RoIC0gNCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIHJlc3VsdCA9ICpyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQzMl90Kj4obV9zb3VyY2UuZGF0YSgpICsgbV9vZmZzZXQpOwogICAgIG1fb2Zmc2V0ICs9IDQ7
Ci0tIAoyLjkuMwoK
</data>

          </attachment>
      

    </bug>

</bugzilla>