<?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>179899</bug_id>
          
          <creation_ts>2017-11-20 15:06:03 -0800</creation_ts>
          <short_desc>Allow for more efficient use of GenericTypedArrayView</short_desc>
          <delta_ts>2017-11-23 09:28:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1373843</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-20 15:06:03 -0800</bug_when>
    <thetext>A few fixes to GenericTypedArrayView to make callers faster:
* add setNative(unsigned index, typename Adaptor::Type value) to avoid uint_8 -&gt; double -&gt; uint_8 conversions
* add getRange() to read a range of bytes, akin to setRange
* avoid getRange and setRange using the virtual byteLength</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373844</commentid>
    <comment_count>1</comment_count>
      <attachid>327376</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-20 15:09:51 -0800</bug_when>
    <thetext>Created attachment 327376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373846</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-11-20 15:12:20 -0800</bug_when>
    <thetext>Attachment 327376 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/ArrayBufferView.h:178:  Please replace ASSERT_WITH_SECURITY_IMPLICATION() with RELEASE_ASSERT_WITH_SECURITY_IMPLICATION().  [security/assertion] [5]
ERROR: Source/JavaScriptCore/runtime/ArrayBufferView.h:179:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/runtime/ArrayBufferView.h:180:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/runtime/ArrayBufferView.h:184:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/runtime/ArrayBufferView.h:186:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/runtime/ArrayBufferView.h:193:  Please replace ASSERT_WITH_SECURITY_IMPLICATION() with RELEASE_ASSERT_WITH_SECURITY_IMPLICATION().  [security/assertion] [5]
ERROR: Source/JavaScriptCore/runtime/GenericTypedArrayView.h:94:  Please replace ASSERT_WITH_SECURITY_IMPLICATION() with RELEASE_ASSERT_WITH_SECURITY_IMPLICATION().  [security/assertion] [5]
Total errors found: 7 in 3 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>1373847</commentid>
    <comment_count>3</comment_count>
      <attachid>327378</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-20 15:19:18 -0800</bug_when>
    <thetext>Created attachment 327378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373848</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-11-20 15:20:29 -0800</bug_when>
    <thetext>Attachment 327378 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/ArrayBufferView.h:178:  Please replace ASSERT_WITH_SECURITY_IMPLICATION() with RELEASE_ASSERT_WITH_SECURITY_IMPLICATION().  [security/assertion] [5]
ERROR: Source/JavaScriptCore/runtime/ArrayBufferView.h:193:  Please replace ASSERT_WITH_SECURITY_IMPLICATION() with RELEASE_ASSERT_WITH_SECURITY_IMPLICATION().  [security/assertion] [5]
ERROR: Source/JavaScriptCore/runtime/GenericTypedArrayView.h:94:  Please replace ASSERT_WITH_SECURITY_IMPLICATION() with RELEASE_ASSERT_WITH_SECURITY_IMPLICATION().  [security/assertion] [5]
Total errors found: 3 in 3 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>1373909</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-20 19:34:34 -0800</bug_when>
    <thetext>(In reply to Build Bot from comment #4)
&gt; Attachment 327378 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR: Source/JavaScriptCore/runtime/ArrayBufferView.h:178:  Please replace
&gt; ASSERT_WITH_SECURITY_IMPLICATION() with
&gt; RELEASE_ASSERT_WITH_SECURITY_IMPLICATION().  [security/assertion] [5]

Nope; the assertion runs a virtual function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374049</commentid>
    <comment_count>6</comment_count>
      <attachid>327378</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-21 09:16:34 -0800</bug_when>
    <thetext>Comment on attachment 327378
Patch

Clearing flags on attachment: 327378

Committed r225084: &lt;https://trac.webkit.org/changeset/225084&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374050</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-21 09:16:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374052</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-21 09:17:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/35658463&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374230</commentid>
    <comment_count>9</comment_count>
      <attachid>327378</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-11-22 10:45:27 -0800</bug_when>
    <thetext>Comment on attachment 327378
Patch

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

&gt; Source/JavaScriptCore/runtime/ArrayBufferView.h:122
&gt; +    inline bool setRangeImpl(const char* data, size_t dataByteLength, unsigned byteOffset, unsigned bufferByteLength);
&gt; +    inline bool getRangeImpl(char* destination, size_t dataByteLength, unsigned byteOffset, unsigned bufferByteLength);

The &quot;inline&quot; on all these functions are not needed.

Should these be void* instead of char*? Or maybe uint8_t*?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374341</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-22 22:48:40 -0800</bug_when>
    <thetext>Followup in https://trac.webkit.org/changeset/225106/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374343</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-22 23:07:48 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; Comment on attachment 327378 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=327378&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/ArrayBufferView.h:122
&gt; &gt; +    inline bool setRangeImpl(const char* data, size_t dataByteLength, unsigned byteOffset, unsigned bufferByteLength);
&gt; &gt; +    inline bool getRangeImpl(char* destination, size_t dataByteLength, unsigned byteOffset, unsigned bufferByteLength);
&gt; 
&gt; The &quot;inline&quot; on all these functions are not needed.

Without them I get duplicate symbol errors at link time.

&gt; Should these be void* instead of char*? Or maybe uint8_t*?

void*, yes. Will fix in a followup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374347</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-22 23:29:29 -0800</bug_when>
    <thetext>More cleanup in aisle, er bug 179966</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374437</commentid>
    <comment_count>13</comment_count>
      <attachid>327378</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-11-23 09:28:56 -0800</bug_when>
    <thetext>Comment on attachment 327378
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/ArrayBufferView.h:122
&gt;&gt;&gt; +    inline bool getRangeImpl(char* destination, size_t dataByteLength, unsigned byteOffset, unsigned bufferByteLength);
&gt;&gt; 
&gt;&gt; The &quot;inline&quot; on all these functions are not needed.
&gt;&gt; 
&gt;&gt; Should these be void* instead of char*? Or maybe uint8_t*?
&gt; 
&gt; Without them I get duplicate symbol errors at link time.

What I meant is that the inline should be on the function definitions, not here in the class. Not removing them entirely.

But maybe I am wrong about that. Maybe we should be moving toward doing it this way consistently instead, moving the &quot;inline&quot; keywords from the function definitions to the function declarations in the class above. There is at least one benefit to that, I think. The compiler can produce a warning or error if you call the function and it doesn’t have the function definition in the compilation unit, moving what would be a linker error to compile time.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327376</attachid>
            <date>2017-11-20 15:09:51 -0800</date>
            <delta_ts>2017-11-20 15:19:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>ArrayBufferView.patch</filename>
            <type>text/plain</type>
            <size>6655</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGRhOTZkZWI2ZTA1YjNiZDI3ZTljYzdkODRhMjNm
OTk5YzBkM2RmNTkuLjVjZmZjYjMwMjRjZTIwOWE0YjU0YmY3MTEyOTQ1OTcyZmNhZGZmMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTExLTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGZvciBt
b3JlIGVmZmljaWVudCB1c2Ugb2YgR2VuZXJpY1R5cGVkQXJyYXlWaWV3CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk4OTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEZpeCBBcnJheUJ1ZmZl
clZpZXc6OnNldFJhbmdlKCkgdG8gbm90IG1ha2UgdHdvIHZpcnR1YWwgZnVuY3Rpb24gY2FsbHMg
dG8gYnl0ZUxlbmd0aCgpCisgICAgICAgIHVuZGVyIHNldFJhbmdlSW1wbCgpLiBUaGVyZSBpcyBv
bmx5IG9uZSBjYWxsZXIgaW4gR2VuZXJpY1R5cGVkQXJyYXlWaWV3LCBhbmQgaXQgY2FuIHBhc3MK
KyAgICAgICAgaW4gYSBsZW5ndGguCisKKyAgICAgICAgQWRkIEdlbmVyaWNUeXBlZEFycmF5Vmll
dzo6Z2V0UmFuZ2UoKSB0byBmZXRjaCBhIHJhbmdlIG9mIGVsZW1lbnRzLCBhbHNvIHdpdGhvdXQg
dmlydHVhbAorICAgICAgICBieXRlTGVuZ3RoKCkgY2FsbHMuCisgICAgICAgIAorICAgICAgICBS
ZW5hbWVkICdkYXRhTGVuZ3RoJyB0byAnY291bnQnIGluIHNldFJhbmdlKCkgdG8gYmUgY2xlYXJl
ci4KKyAgICAgICAgCisgICAgICAgIEFkZGVkIHNldE5hdGl2ZSgpIGZvciBjYWxsZXJzIHdobyBk
b24ndCBuZWVkIGNsYW1waW5nIG9mIGRvdWJsZXMuCisKKyAgICAgICAgKiBydW50aW1lL0FycmF5
QnVmZmVyVmlldy5oOgorICAgICAgICAoSlNDOjpBcnJheUJ1ZmZlclZpZXc6OnNldFJhbmdlSW1w
bCk6CisgICAgICAgIChKU0M6OkFycmF5QnVmZmVyVmlldzo6Z2V0UmFuZ2VJbXBsKToKKyAgICAg
ICAgKiBydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oOgorICAgICAgICAoSlNDOjpHZW5l
cmljVHlwZWRBcnJheVZpZXc6OnNldFJhbmdlKToKKyAgICAgICAgKEpTQzo6R2VuZXJpY1R5cGVk
QXJyYXlWaWV3OjpzZXROYXRpdmUgY29uc3QpOgorICAgICAgICAoSlNDOjpHZW5lcmljVHlwZWRB
cnJheVZpZXc6OmdldFJhbmdlKToKKyAgICAgICAgKEpTQzo6R2VuZXJpY1R5cGVkQXJyYXlWaWV3
OjpjaGVja0luYm91bmREYXRhIGNvbnN0KToKKyAgICAgICAgKEpTQzo6R2VuZXJpY1R5cGVkQXJy
YXlWaWV3OjppbnRlcm5hbEJ5dGVMZW5ndGggY29uc3QpOgorCiAyMDE3LTExLTE4ICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0eXBvcyBpbiBj
bG9zaW5nIEVOQUJMRSgpIGNvbW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheUJ1ZmZlclZpZXcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5QnVmZmVyVmlldy5oCmluZGV4IGZiOGZjMjJjN2I3ODdhNTMzNmQ2MDI4MTQ4NWEw
NWFhNjZjM2Y4NDQuLjM5NjAyYTQ3MmZkYzhjNTcyMDI5OTk1NTAxYTMxNDQwODUxYWVjOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyVmlldy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyVmlldy5oCkBA
IC0xMTcsNyArMTE3LDkgQEAgcHJvdGVjdGVkOgogCiAgICAgaW5saW5lIGJvb2wgc2V0SW1wbChB
cnJheUJ1ZmZlclZpZXcqLCB1bnNpZ25lZCBieXRlT2Zmc2V0KTsKIAotICAgIGlubGluZSBib29s
IHNldFJhbmdlSW1wbChjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUJ5dGVMZW5ndGgsIHVu
c2lnbmVkIGJ5dGVPZmZzZXQpOworICAgIC8vIENhbGxlciBwYXNzZXMgaW4gYnVmZmVyQnl0ZUxl
bmd0aCB0byBhdm9pZCBhIHZpcnR1YWwgZnVuY3Rpb24gY2FsbC4KKyAgICBpbmxpbmUgYm9vbCBz
ZXRSYW5nZUltcGwoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFCeXRlTGVuZ3RoLCB1bnNp
Z25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBidWZmZXJCeXRlTGVuZ3RoKTsKKyAgICBpbmxpbmUg
Ym9vbCBnZXRSYW5nZUltcGwoY2hhciogZGVzdGluYXRpb24sIHNpemVfdCBkYXRhQnl0ZUxlbmd0
aCwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnVmZmVyQnl0ZUxlbmd0aCk7CiAKICAg
ICBpbmxpbmUgYm9vbCB6ZXJvUmFuZ2VJbXBsKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNpemVfdCBy
YW5nZUJ5dGVMZW5ndGgpOwogCkBAIC0xNzEsMTcgKzE3MywzMyBAQCBib29sIEFycmF5QnVmZmVy
Vmlldzo6c2V0SW1wbChBcnJheUJ1ZmZlclZpZXcqIGFycmF5LCB1bnNpZ25lZCBieXRlT2Zmc2V0
KQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEFycmF5QnVmZmVyVmlldzo6c2V0UmFuZ2VJ
bXBsKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhQnl0ZUxlbmd0aCwgdW5zaWduZWQgYnl0
ZU9mZnNldCkKK2Jvb2wgQXJyYXlCdWZmZXJWaWV3OjpzZXRSYW5nZUltcGwoY29uc3QgY2hhciog
ZGF0YSwgc2l6ZV90IGRhdGFCeXRlTGVuZ3RoLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25l
ZCBidWZmZXJCeXRlTGVuZ3RoKQogewotICAgIGlmIChieXRlT2Zmc2V0ID4gYnl0ZUxlbmd0aCgp
Ci0gICAgICAgIHx8IGJ5dGVPZmZzZXQgKyBkYXRhQnl0ZUxlbmd0aCA+IGJ5dGVMZW5ndGgoKQor
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGJ1ZmZlckJ5dGVMZW5ndGggPT0g
Ynl0ZUxlbmd0aCgpKTsKKwlpZiAoYnl0ZU9mZnNldCA+IGJ1ZmZlckJ5dGVMZW5ndGgKKyAgICAg
ICAgfHwgYnl0ZU9mZnNldCArIGRhdGFCeXRlTGVuZ3RoID4gYnVmZmVyQnl0ZUxlbmd0aAorICAg
ICAgICB8fCBieXRlT2Zmc2V0ICsgZGF0YUJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0KSB7CisgICAg
ICAgIC8vIE91dCBvZiByYW5nZSBvZmZzZXQgb3Igb3ZlcmZsb3cKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCX0KKworCWNoYXIqIGJhc2UgPSBzdGF0aWNfY2FzdDxjaGFyKj4oYmFzZUFkZHJlc3Mo
KSk7CisgICAgbWVtbW92ZShiYXNlICsgYnl0ZU9mZnNldCwgZGF0YSwgZGF0YUJ5dGVMZW5ndGgp
OworICAgIHJldHVybiB0cnVlOworfQorCitib29sIEFycmF5QnVmZmVyVmlldzo6Z2V0UmFuZ2VJ
bXBsKGNoYXIqIGRlc3RpbmF0aW9uLCBzaXplX3QgZGF0YUJ5dGVMZW5ndGgsIHVuc2lnbmVkIGJ5
dGVPZmZzZXQsIHVuc2lnbmVkIGJ1ZmZlckJ5dGVMZW5ndGgpCit7CisgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oYnVmZmVyQnl0ZUxlbmd0aCA9PSBieXRlTGVuZ3RoKCkpOwor
ICAgIGlmIChieXRlT2Zmc2V0ID4gYnVmZmVyQnl0ZUxlbmd0aAorICAgICAgICB8fCBieXRlT2Zm
c2V0ICsgZGF0YUJ5dGVMZW5ndGggPiBidWZmZXJCeXRlTGVuZ3RoCiAgICAgICAgIHx8IGJ5dGVP
ZmZzZXQgKyBkYXRhQnl0ZUxlbmd0aCA8IGJ5dGVPZmZzZXQpIHsKICAgICAgICAgLy8gT3V0IG9m
IHJhbmdlIG9mZnNldCBvciBvdmVyZmxvdwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQot
ICAgIAorCiAgICAgY2hhciogYmFzZSA9IHN0YXRpY19jYXN0PGNoYXIqPihiYXNlQWRkcmVzcygp
KTsKLSAgICBtZW1tb3ZlKGJhc2UgKyBieXRlT2Zmc2V0LCBkYXRhLCBkYXRhQnl0ZUxlbmd0aCk7
CisgICAgbWVtbW92ZShkZXN0aW5hdGlvbiwgYmFzZSArIGJ5dGVPZmZzZXQsIGRhdGFCeXRlTGVu
Z3RoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9HZW5lcmljVHlwZWRBcnJheVZpZXcuaAppbmRleCAzNDdiNjUxMmRjZjQw
MTllYjZiNDg5OGEwZTFkNzQ0NWQ0ZTYzZGRmLi5jNDY4Y2U1NTM2MGEyZDZhYTQxY2UwNTgwNDhj
ZTU3ZWY4OTNlOWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9H
ZW5lcmljVHlwZWRBcnJheVZpZXcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9HZW5lcmljVHlwZWRBcnJheVZpZXcuaApAQCAtNDksMTIgKzQ5LDEzIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIHNldEltcGwoYXJyYXksIG9mZnNldCAqIHNpemVvZih0eXBlbmFtZSBBZGFw
dG9yOjpUeXBlKSk7CiAgICAgfQogICAgIAotICAgIGJvb2wgc2V0UmFuZ2UoY29uc3QgdHlwZW5h
bWUgQWRhcHRvcjo6VHlwZSogZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHVuc2lnbmVkIG9mZnNl
dCkKKyAgICBib29sIHNldFJhbmdlKGNvbnN0IHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUqIGRhdGEs
IHNpemVfdCBjb3VudCwgdW5zaWduZWQgb2Zmc2V0KQogICAgIHsKICAgICAgICAgcmV0dXJuIHNl
dFJhbmdlSW1wbCgKICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRh
dGEpLAotICAgICAgICAgICAgZGF0YUxlbmd0aCAqIHNpemVvZih0eXBlbmFtZSBBZGFwdG9yOjpU
eXBlKSwKLSAgICAgICAgICAgIG9mZnNldCAqIHNpemVvZih0eXBlbmFtZSBBZGFwdG9yOjpUeXBl
KSk7CisgICAgICAgICAgICBjb3VudCAqIHNpemVvZih0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKSwK
KyAgICAgICAgICAgIG9mZnNldCAqIHNpemVvZih0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKSwKKyAg
ICAgICAgICAgIGludGVybmFsQnl0ZUxlbmd0aCgpKTsKICAgICB9CiAgICAgCiAgICAgYm9vbCB6
ZXJvUmFuZ2UodW5zaWduZWQgb2Zmc2V0LCBzaXplX3QgbGVuZ3RoKQpAQCAtNzMsNyArNzQsNyBA
QCBwdWJsaWM6CiAgICAgCiAgICAgdW5zaWduZWQgYnl0ZUxlbmd0aCgpIGNvbnN0IG92ZXJyaWRl
CiAgICAgewotICAgICAgICByZXR1cm4gbGVuZ3RoKCkgKiBzaXplb2YodHlwZW5hbWUgQWRhcHRv
cjo6VHlwZSk7CisgICAgICAgIHJldHVybiBpbnRlcm5hbEJ5dGVMZW5ndGgoKTsKICAgICB9CiAK
ICAgICB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0CkBA
IC04NywxNCArODgsMjkgQEAgcHVibGljOgogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTihpbmRleCA8IHRoaXMtPmxlbmd0aCgpKTsKICAgICAgICAgZGF0YSgpW2luZGV4
XSA9IEFkYXB0b3I6OnRvTmF0aXZlRnJvbURvdWJsZSh2YWx1ZSk7CiAgICAgfQotICAgIAotICAg
IGJvb2wgY2hlY2tJbmJvdW5kRGF0YSh1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIHBvcykgY29u
c3QKKworICAgIHZvaWQgc2V0TmF0aXZlKHVuc2lnbmVkIGluZGV4LCB0eXBlbmFtZSBBZGFwdG9y
OjpUeXBlIHZhbHVlKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04oaW5kZXggPCB0aGlzLT5sZW5ndGgoKSk7CisgICAgICAgIGRhdGEoKVtpbmRl
eF0gPSB2YWx1ZTsKKyAgICB9CisKKyAgICBib29sIGdldFJhbmdlKHR5cGVuYW1lIEFkYXB0b3I6
OlR5cGUqIGRhdGEsIHNpemVfdCBjb3VudCwgdW5zaWduZWQgb2Zmc2V0KQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGdldFJhbmdlVW5jaGVja2VkKAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4oZGF0YSksCisgICAgICAgICAgICBjb3VudCAqIHNpemVvZih0eXBlbmFtZSBBZGFw
dG9yOjpUeXBlKSwKKyAgICAgICAgICAgIG9mZnNldCAqIHNpemVvZih0eXBlbmFtZSBBZGFwdG9y
OjpUeXBlKSwKKyAgICAgICAgICAgIGludGVybmFsQnl0ZUxlbmd0aCgpKTsKKyAgICB9CisKKyAg
ICBib29sIGNoZWNrSW5ib3VuZERhdGEodW5zaWduZWQgb2Zmc2V0LCBzaXplX3QgY291bnQpIGNv
bnN0CiAgICAgewogICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSB0aGlzLT5sZW5ndGgoKTsKICAg
ICAgICAgcmV0dXJuIChvZmZzZXQgPD0gbGVuZ3RoCi0gICAgICAgICAgICAmJiBvZmZzZXQgKyBw
b3MgPD0gbGVuZ3RoCisgICAgICAgICAgICAmJiBvZmZzZXQgKyBjb3VudCA8PSBsZW5ndGgKICAg
ICAgICAgICAgIC8vIGNoZWNrIG92ZXJmbG93Ci0gICAgICAgICAgICAmJiBvZmZzZXQgKyBwb3Mg
Pj0gb2Zmc2V0KTsKKyAgICAgICAgICAgICYmIG9mZnNldCArIGNvdW50ID49IG9mZnNldCk7CiAg
ICAgfQogICAgIAogICAgIFJlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc+IHN1YmFycmF5KGlu
dCBzdGFydCkgY29uc3Q7CkBAIC0xMDgsNiArMTI0LDExIEBAIHB1YmxpYzoKICAgICBKU0FycmF5
QnVmZmVyVmlldyogd3JhcChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIG92ZXJyaWRlOwog
CiBwcml2YXRlOgorICAgIHVuc2lnbmVkIGludGVybmFsQnl0ZUxlbmd0aCgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gbGVuZ3RoKCkgKiBzaXplb2YodHlwZW5hbWUgQWRhcHRvcjo6VHlw
ZSk7CisgICAgfQorCiAgICAgdW5zaWduZWQgbV9sZW5ndGg7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327378</attachid>
            <date>2017-11-20 15:19:18 -0800</date>
            <delta_ts>2017-11-21 09:16:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>ArrayBufferView.patch</filename>
            <type>text/plain</type>
            <size>6729</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGRhOTZkZWI2ZTA1YjNiZDI3ZTljYzdkODRhMjNm
OTk5YzBkM2RmNTkuLjVjZmZjYjMwMjRjZTIwOWE0YjU0YmY3MTEyOTQ1OTcyZmNhZGZmMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTExLTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGZvciBt
b3JlIGVmZmljaWVudCB1c2Ugb2YgR2VuZXJpY1R5cGVkQXJyYXlWaWV3CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk4OTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEZpeCBBcnJheUJ1ZmZl
clZpZXc6OnNldFJhbmdlKCkgdG8gbm90IG1ha2UgdHdvIHZpcnR1YWwgZnVuY3Rpb24gY2FsbHMg
dG8gYnl0ZUxlbmd0aCgpCisgICAgICAgIHVuZGVyIHNldFJhbmdlSW1wbCgpLiBUaGVyZSBpcyBv
bmx5IG9uZSBjYWxsZXIgaW4gR2VuZXJpY1R5cGVkQXJyYXlWaWV3LCBhbmQgaXQgY2FuIHBhc3MK
KyAgICAgICAgaW4gYSBsZW5ndGguCisKKyAgICAgICAgQWRkIEdlbmVyaWNUeXBlZEFycmF5Vmll
dzo6Z2V0UmFuZ2UoKSB0byBmZXRjaCBhIHJhbmdlIG9mIGVsZW1lbnRzLCBhbHNvIHdpdGhvdXQg
dmlydHVhbAorICAgICAgICBieXRlTGVuZ3RoKCkgY2FsbHMuCisgICAgICAgIAorICAgICAgICBS
ZW5hbWVkICdkYXRhTGVuZ3RoJyB0byAnY291bnQnIGluIHNldFJhbmdlKCkgdG8gYmUgY2xlYXJl
ci4KKyAgICAgICAgCisgICAgICAgIEFkZGVkIHNldE5hdGl2ZSgpIGZvciBjYWxsZXJzIHdobyBk
b24ndCBuZWVkIGNsYW1waW5nIG9mIGRvdWJsZXMuCisKKyAgICAgICAgKiBydW50aW1lL0FycmF5
QnVmZmVyVmlldy5oOgorICAgICAgICAoSlNDOjpBcnJheUJ1ZmZlclZpZXc6OnNldFJhbmdlSW1w
bCk6CisgICAgICAgIChKU0M6OkFycmF5QnVmZmVyVmlldzo6Z2V0UmFuZ2VJbXBsKToKKyAgICAg
ICAgKiBydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oOgorICAgICAgICAoSlNDOjpHZW5l
cmljVHlwZWRBcnJheVZpZXc6OnNldFJhbmdlKToKKyAgICAgICAgKEpTQzo6R2VuZXJpY1R5cGVk
QXJyYXlWaWV3OjpzZXROYXRpdmUgY29uc3QpOgorICAgICAgICAoSlNDOjpHZW5lcmljVHlwZWRB
cnJheVZpZXc6OmdldFJhbmdlKToKKyAgICAgICAgKEpTQzo6R2VuZXJpY1R5cGVkQXJyYXlWaWV3
OjpjaGVja0luYm91bmREYXRhIGNvbnN0KToKKyAgICAgICAgKEpTQzo6R2VuZXJpY1R5cGVkQXJy
YXlWaWV3OjppbnRlcm5hbEJ5dGVMZW5ndGggY29uc3QpOgorCiAyMDE3LTExLTE4ICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0eXBvcyBpbiBj
bG9zaW5nIEVOQUJMRSgpIGNvbW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheUJ1ZmZlclZpZXcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5QnVmZmVyVmlldy5oCmluZGV4IGZiOGZjMjJjN2I3ODdhNTMzNmQ2MDI4MTQ4NWEw
NWFhNjZjM2Y4NDQuLmRhZjlkODZlODY1MTQ2MmUyNjY5ZjA5NTQyNTA0ZjFmZjJlYmY4ODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyVmlldy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyVmlldy5oCkBA
IC0xMTcsNyArMTE3LDkgQEAgcHJvdGVjdGVkOgogCiAgICAgaW5saW5lIGJvb2wgc2V0SW1wbChB
cnJheUJ1ZmZlclZpZXcqLCB1bnNpZ25lZCBieXRlT2Zmc2V0KTsKIAotICAgIGlubGluZSBib29s
IHNldFJhbmdlSW1wbChjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUJ5dGVMZW5ndGgsIHVu
c2lnbmVkIGJ5dGVPZmZzZXQpOworICAgIC8vIENhbGxlciBwYXNzZXMgaW4gYnVmZmVyQnl0ZUxl
bmd0aCB0byBhdm9pZCBhIHZpcnR1YWwgZnVuY3Rpb24gY2FsbC4KKyAgICBpbmxpbmUgYm9vbCBz
ZXRSYW5nZUltcGwoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFCeXRlTGVuZ3RoLCB1bnNp
Z25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBidWZmZXJCeXRlTGVuZ3RoKTsKKyAgICBpbmxpbmUg
Ym9vbCBnZXRSYW5nZUltcGwoY2hhciogZGVzdGluYXRpb24sIHNpemVfdCBkYXRhQnl0ZUxlbmd0
aCwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnVmZmVyQnl0ZUxlbmd0aCk7CiAKICAg
ICBpbmxpbmUgYm9vbCB6ZXJvUmFuZ2VJbXBsKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNpemVfdCBy
YW5nZUJ5dGVMZW5ndGgpOwogCkBAIC0xNzEsMjAgKzE3MywzNiBAQCBib29sIEFycmF5QnVmZmVy
Vmlldzo6c2V0SW1wbChBcnJheUJ1ZmZlclZpZXcqIGFycmF5LCB1bnNpZ25lZCBieXRlT2Zmc2V0
KQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEFycmF5QnVmZmVyVmlldzo6c2V0UmFuZ2VJ
bXBsKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhQnl0ZUxlbmd0aCwgdW5zaWduZWQgYnl0
ZU9mZnNldCkKK2Jvb2wgQXJyYXlCdWZmZXJWaWV3OjpzZXRSYW5nZUltcGwoY29uc3QgY2hhciog
ZGF0YSwgc2l6ZV90IGRhdGFCeXRlTGVuZ3RoLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25l
ZCBidWZmZXJCeXRlTGVuZ3RoKQogewotICAgIGlmIChieXRlT2Zmc2V0ID4gYnl0ZUxlbmd0aCgp
Ci0gICAgICAgIHx8IGJ5dGVPZmZzZXQgKyBkYXRhQnl0ZUxlbmd0aCA+IGJ5dGVMZW5ndGgoKQor
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGJ1ZmZlckJ5dGVMZW5ndGggPT0g
Ynl0ZUxlbmd0aCgpKTsKKyAgICBpZiAoYnl0ZU9mZnNldCA+IGJ1ZmZlckJ5dGVMZW5ndGgKKyAg
ICAgICAgfHwgYnl0ZU9mZnNldCArIGRhdGFCeXRlTGVuZ3RoID4gYnVmZmVyQnl0ZUxlbmd0aAog
ICAgICAgICB8fCBieXRlT2Zmc2V0ICsgZGF0YUJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0KSB7CiAg
ICAgICAgIC8vIE91dCBvZiByYW5nZSBvZmZzZXQgb3Igb3ZlcmZsb3cKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KLSAgICAKKwogICAgIGNoYXIqIGJhc2UgPSBzdGF0aWNfY2FzdDxjaGFy
Kj4oYmFzZUFkZHJlc3MoKSk7CiAgICAgbWVtbW92ZShiYXNlICsgYnl0ZU9mZnNldCwgZGF0YSwg
ZGF0YUJ5dGVMZW5ndGgpOwogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIEFycmF5QnVmZmVy
Vmlldzo6Z2V0UmFuZ2VJbXBsKGNoYXIqIGRlc3RpbmF0aW9uLCBzaXplX3QgZGF0YUJ5dGVMZW5n
dGgsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ1ZmZlckJ5dGVMZW5ndGgpCit7Cisg
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oYnVmZmVyQnl0ZUxlbmd0aCA9PSBi
eXRlTGVuZ3RoKCkpOworICAgIGlmIChieXRlT2Zmc2V0ID4gYnVmZmVyQnl0ZUxlbmd0aAorICAg
ICAgICB8fCBieXRlT2Zmc2V0ICsgZGF0YUJ5dGVMZW5ndGggPiBidWZmZXJCeXRlTGVuZ3RoCisg
ICAgICAgIHx8IGJ5dGVPZmZzZXQgKyBkYXRhQnl0ZUxlbmd0aCA8IGJ5dGVPZmZzZXQpIHsKKyAg
ICAgICAgLy8gT3V0IG9mIHJhbmdlIG9mZnNldCBvciBvdmVyZmxvdworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgY2hhciogYmFzZSA9IHN0YXRpY19jYXN0PGNoYXIqPihiYXNl
QWRkcmVzcygpKTsKKyAgICBtZW1tb3ZlKGRlc3RpbmF0aW9uLCBiYXNlICsgYnl0ZU9mZnNldCwg
ZGF0YUJ5dGVMZW5ndGgpOworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIEFycmF5QnVmZmVy
Vmlldzo6emVyb1JhbmdlSW1wbCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBzaXplX3QgcmFuZ2VCeXRl
TGVuZ3RoKQogewogICAgIGlmIChieXRlT2Zmc2V0ID4gYnl0ZUxlbmd0aCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljVHlwZWRBcnJheVZpZXcuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oCmlu
ZGV4IDM0N2I2NTEyZGNmNDAxOWViNmI0ODk4YTBlMWQ3NDQ1ZDRlNjNkZGYuLmM0NjhjZTU1MzYw
YTJkNmFhNDFjZTA1ODA0OGNlNTdlZjg5M2U5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oCkBAIC00OSwxMiArNDks
MTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc2V0SW1wbChhcnJheSwgb2Zmc2V0ICogc2l6
ZW9mKHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUpKTsKICAgICB9CiAgICAgCi0gICAgYm9vbCBzZXRS
YW5nZShjb25zdCB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0
aCwgdW5zaWduZWQgb2Zmc2V0KQorICAgIGJvb2wgc2V0UmFuZ2UoY29uc3QgdHlwZW5hbWUgQWRh
cHRvcjo6VHlwZSogZGF0YSwgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBvZmZzZXQpCiAgICAgewog
ICAgICAgICByZXR1cm4gc2V0UmFuZ2VJbXBsKAogICAgICAgICAgICAgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oZGF0YSksCi0gICAgICAgICAgICBkYXRhTGVuZ3RoICogc2l6ZW9mKHR5
cGVuYW1lIEFkYXB0b3I6OlR5cGUpLAotICAgICAgICAgICAgb2Zmc2V0ICogc2l6ZW9mKHR5cGVu
YW1lIEFkYXB0b3I6OlR5cGUpKTsKKyAgICAgICAgICAgIGNvdW50ICogc2l6ZW9mKHR5cGVuYW1l
IEFkYXB0b3I6OlR5cGUpLAorICAgICAgICAgICAgb2Zmc2V0ICogc2l6ZW9mKHR5cGVuYW1lIEFk
YXB0b3I6OlR5cGUpLAorICAgICAgICAgICAgaW50ZXJuYWxCeXRlTGVuZ3RoKCkpOwogICAgIH0K
ICAgICAKICAgICBib29sIHplcm9SYW5nZSh1bnNpZ25lZCBvZmZzZXQsIHNpemVfdCBsZW5ndGgp
CkBAIC03Myw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICAKICAgICB1bnNpZ25lZCBieXRlTGVuZ3Ro
KCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIHJldHVybiBsZW5ndGgoKSAqIHNpemVv
Zih0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKTsKKyAgICAgICAgcmV0dXJuIGludGVybmFsQnl0ZUxl
bmd0aCgpOwogICAgIH0KIAogICAgIHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUgaXRlbSh1bnNpZ25l
ZCBpbmRleCkgY29uc3QKQEAgLTg3LDE0ICs4OCwyOSBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGluZGV4IDwgdGhpcy0+bGVuZ3RoKCkpOwogICAg
ICAgICBkYXRhKClbaW5kZXhdID0gQWRhcHRvcjo6dG9OYXRpdmVGcm9tRG91YmxlKHZhbHVlKTsK
ICAgICB9Ci0gICAgCi0gICAgYm9vbCBjaGVja0luYm91bmREYXRhKHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgcG9zKSBjb25zdAorCisgICAgdm9pZCBzZXROYXRpdmUodW5zaWduZWQgaW5kZXgs
IHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUgdmFsdWUpIGNvbnN0CisgICAgeworICAgICAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpbmRleCA8IHRoaXMtPmxlbmd0aCgpKTsKKyAg
ICAgICAgZGF0YSgpW2luZGV4XSA9IHZhbHVlOworICAgIH0KKworICAgIGJvb2wgZ2V0UmFuZ2Uo
dHlwZW5hbWUgQWRhcHRvcjo6VHlwZSogZGF0YSwgc2l6ZV90IGNvdW50LCB1bnNpZ25lZCBvZmZz
ZXQpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0UmFuZ2VVbmNoZWNrZWQoCisgICAgICAgICAg
ICByZWludGVycHJldF9jYXN0PGNoYXIqPihkYXRhKSwKKyAgICAgICAgICAgIGNvdW50ICogc2l6
ZW9mKHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUpLAorICAgICAgICAgICAgb2Zmc2V0ICogc2l6ZW9m
KHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUpLAorICAgICAgICAgICAgaW50ZXJuYWxCeXRlTGVuZ3Ro
KCkpOworICAgIH0KKworICAgIGJvb2wgY2hlY2tJbmJvdW5kRGF0YSh1bnNpZ25lZCBvZmZzZXQs
IHNpemVfdCBjb3VudCkgY29uc3QKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRo
aXMtPmxlbmd0aCgpOwogICAgICAgICByZXR1cm4gKG9mZnNldCA8PSBsZW5ndGgKLSAgICAgICAg
ICAgICYmIG9mZnNldCArIHBvcyA8PSBsZW5ndGgKKyAgICAgICAgICAgICYmIG9mZnNldCArIGNv
dW50IDw9IGxlbmd0aAogICAgICAgICAgICAgLy8gY2hlY2sgb3ZlcmZsb3cKLSAgICAgICAgICAg
ICYmIG9mZnNldCArIHBvcyA+PSBvZmZzZXQpOworICAgICAgICAgICAgJiYgb2Zmc2V0ICsgY291
bnQgPj0gb2Zmc2V0KTsKICAgICB9CiAgICAgCiAgICAgUmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5
Vmlldz4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKQEAgLTEwOCw2ICsxMjQsMTEgQEAgcHVi
bGljOgogICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB3cmFwKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2Jq
ZWN0Kikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CisgICAgdW5zaWduZWQgaW50ZXJuYWxCeXRlTGVu
Z3RoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBsZW5ndGgoKSAqIHNpemVvZih0eXBl
bmFtZSBBZGFwdG9yOjpUeXBlKTsKKyAgICB9CisKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKIH07
CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>