<?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>148483</bug_id>
          
          <creation_ts>2015-08-26 11:09:50 -0700</creation_ts>
          <short_desc>Range.compareBoundaryPoints() should throw a NotSupportedError for invalid compareHow values</short_desc>
          <delta_ts>2015-08-31 19:38:00 -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>DOM</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://dom.spec.whatwg.org/#dom-range-compareboundarypoints</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1120984</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-26 11:09:50 -0700</bug_when>
    <thetext>Range.compareBoundaryPoints() should throw a NotSupportedError for invalid compareHow values:
https://dom.spec.whatwg.org/#dom-range-compareboundarypoints (step 1)

Firefox and Chrome conform to the specification already.

W3C test suite:
http://w3c-test.org/dom/ranges/Range-compareBoundaryPoints.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121059</commentid>
    <comment_count>1</comment_count>
      <attachid>259981</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-26 14:15:13 -0700</bug_when>
    <thetext>Created attachment 259981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121442</commentid>
    <comment_count>2</comment_count>
      <attachid>259981</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-27 14:42:55 -0700</bug_when>
    <thetext>Comment on attachment 259981
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121444</commentid>
    <comment_count>3</comment_count>
      <attachid>260091</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-27 14:46:02 -0700</bug_when>
    <thetext>Created attachment 260091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121452</commentid>
    <comment_count>4</comment_count>
      <attachid>260091</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-27 15:33:55 -0700</bug_when>
    <thetext>Comment on attachment 260091
Patch

Clearing flags on attachment: 260091

Committed r189062: &lt;http://trac.webkit.org/changeset/189062&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121453</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-27 15:34:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122440</commentid>
    <comment_count>6</comment_count>
      <attachid>260091</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-08-31 18:59:47 -0700</bug_when>
    <thetext>Comment on attachment 260091
Patch

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

&gt; LayoutTests/fast/dom/Range/compareBoundaryPoints-compareHow-exception-expected.txt:10
&gt; +PASS range.compareBoundaryPoints(65536, sourceRange) is -1

This is the desired behavior? Why not an exception in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122450</commentid>
    <comment_count>7</comment_count>
      <attachid>260091</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-31 19:33:24 -0700</bug_when>
    <thetext>Comment on attachment 260091
Patch

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

&gt;&gt; LayoutTests/fast/dom/Range/compareBoundaryPoints-compareHow-exception-expected.txt:10
&gt;&gt; +PASS range.compareBoundaryPoints(65536, sourceRange) is -1
&gt; 
&gt; This is the desired behavior? Why not an exception in this case?

Because 65536 wraps to 0, which is the value of the START_TO_START constant. compareHow is an unsigned short so it is in the range [0, 65535] as per:
https://heycam.github.io/webidl/#idl-unsigned-short

The unsigned short conversion is documented at:
https://heycam.github.io/webidl/#es-unsigned-short
which says to call ToUint16(x) in this case:
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16 (which specifies the wrapping around behavior)

We would only throw a TypeError if the IDL specified [EnforceRange]:
https://heycam.github.io/webidl/#EnforceRange</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122451</commentid>
    <comment_count>8</comment_count>
      <attachid>260091</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-31 19:34:04 -0700</bug_when>
    <thetext>Comment on attachment 260091
Patch

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

&gt; LayoutTests/fast/dom/Range/compareBoundaryPoints-compareHow-exception.html:20
&gt; +shouldBe(&quot;range.compareBoundaryPoints(65536, sourceRange)&quot;, &quot;-1&quot;); // 65536 should wrap around to 0.

By the way, I documented the wrapping around to 0 here already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122452</commentid>
    <comment_count>9</comment_count>
      <attachid>260091</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-31 19:38:00 -0700</bug_when>
    <thetext>Comment on attachment 260091
Patch

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

&gt;&gt;&gt; LayoutTests/fast/dom/Range/compareBoundaryPoints-compareHow-exception-expected.txt:10
&gt;&gt;&gt; +PASS range.compareBoundaryPoints(65536, sourceRange) is -1
&gt;&gt; 
&gt;&gt; This is the desired behavior? Why not an exception in this case?
&gt; 
&gt; Because 65536 wraps to 0, which is the value of the START_TO_START constant. compareHow is an unsigned short so it is in the range [0, 65535] as per:
&gt; https://heycam.github.io/webidl/#idl-unsigned-short
&gt; 
&gt; The unsigned short conversion is documented at:
&gt; https://heycam.github.io/webidl/#es-unsigned-short
&gt; which says to call ToUint16(x) in this case:
&gt; http://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16 (which specifies the wrapping around behavior)
&gt; 
&gt; We would only throw a TypeError if the IDL specified [EnforceRange]:
&gt; https://heycam.github.io/webidl/#EnforceRange

This layout test is also passing in the latest Firefox and Chrome.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259981</attachid>
            <date>2015-08-26 14:15:13 -0700</date>
            <delta_ts>2015-08-27 14:45:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148483-20150826141503.patch</filename>
            <type>text/plain</type>
            <size>14364</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzgwMmE1ZWFjYzRmZjQ4
ODRiODg5ODlhZTUyOWMyYjNjOTZlNmI0Ny4uNjBmOWRhNTI1NDNhYjlkODFiNmFhN2IyNzQ2NjNj
NTVhMTRjNGZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE1LTA4LTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmFuZ2UuY29tcGFyZUJvdW5k
YXJ5UG9pbnRzKCkgc2hvdWxkIHRocm93IGEgTm90U3VwcG9ydGVkRXJyb3IgZm9yIGludmFsaWQg
Y29tcGFyZUhvdyB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0ODQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cygpIHNob3VsZCB0aHJvdyBhIE5v
dFN1cHBvcnRlZEVycm9yIGZvcgorICAgICAgICBpbnZhbGlkIGNvbXBhcmVIb3cgdmFsdWVzOgor
ICAgICAgICBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1yYW5nZS1jb21wYXJlYm91
bmRhcnlwb2ludHMgKHN0ZXAgMSkKKworICAgICAgICBGaXJlZm94IGFuZCBDaHJvbWUgY29uZm9y
bSB0byB0aGUgc3BlY2lmaWNhdGlvbiBhbHJlYWR5LgorCisgICAgICAgIFByZXZpb3VzbHksIFdl
YktpdCB3b3VsZCBub3QgdGhyb3cgYW5kIHNpbXBseSBjYXN0IHRoZSB2YWx1ZSB0byBvdXIKKyAg
ICAgICAgaW50ZXJuYWwgQ29tcGFyZUhvdyBlbnVtIHR5cGUuIFRoaXMgcGF0Y2ggYWxpZ25zIFdl
YktpdCdzIGJlaGF2aW9yIHdpdGgKKyAgICAgICAgdGhlIERPTSBzcGVjaWZpY2FpdG9uIGFuZCBv
dGhlciBicm93c2Vycy4KKworICAgICAgICBXM0MgdGVzdCBzdWl0ZToKKyAgICAgICAgaHR0cDov
L3czYy10ZXN0Lm9yZy9kb20vcmFuZ2VzL1JhbmdlLWNvbXBhcmVCb3VuZGFyeVBvaW50cy5odG1s
CisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vUmFuZ2UvY29tcGFyZUJvdW5kYXJ5UG9pbnRzLWNv
bXBhcmVIb3ctZXhjZXB0aW9uLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvci5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JH
T2JqZWN0LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG06CisgICAg
ICAgIERyb3AgQ29tcGFyZUhvdyBzcGVjaWFsIGNhc2luZyBmcm9tIGJpbmRpbmdzIGdlbmVyYXRv
ciBhcyB3ZSBub3cgdXNlCisgICAgICAgIHVuc2lnbmVkIHNob3J0IGluc3RlYWQgaW4gdGhlIElE
TC4KKworICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
Y29tcGFyZUJvdW5kYXJ5UG9pbnRzRm9yQmluZGluZ3MpOgorICAgICAgICAqIGRvbS9SYW5nZS5o
OgorICAgICAgICAqIGRvbS9SYW5nZS5pZGw6CisgICAgICAgIFVzZSAidW5zaWduZWQgc2hvcnQi
IHR5cGUgaW5zdGVhZCBvZiBXZWJDb3JlJ3MgQ29tcGFyZUhvdyBmb3IgdGhlCisgICAgICAgIHBh
cmFtZXRlciwgYXMgcGVyIHRoZSBzcGVjaWZpY2F0aW9uLiBPbiBpbXBsZW1lbnRhdGlvbiBzaWRl
LCB3ZQorICAgICAgICBub3cgdmFsaWRhdGUgdGhlIGNvbXBhcmVIb3cgdmFsdWUgYmVmb3JlIGNh
c3RpbmcgaXQgdG8gYSBDb21wYXJlSG93CisgICAgICAgIGVudW0gdHlwZS4gSWYgdGhlIHZhbHVl
IGlzIG5vdCB2YWx1ZSwgd2UgdGhyb3cgYW5kIGFib3J0IGVhcmx5LgorCiAyMDE1LTA4LTI2ICBK
aW55b3VuZyBIdXIgIDxodXIuaW1zQG5hdmVyY29ycC5jb20+CiAKICAgICAgICAgW0NhaXJvXSBB
Y2NlbGVyYXRlZCBjYW52YXMgc2hvdWxkIGZhbGwgYmFjayB0byBub24tYWNjZWxlcmF0ZWQgY2Fu
dmFzIG9uIGNyZWF0aW9uIGZhaWx1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbQppbmRleCA4MTdmMjAxODAwOTUyMWQxYjNjZjFhMjNhYTJl
NmQ1NDI0MjYyMDU2Li5lYTA4MzNjMDliYjNiODY4MzA5OTYyNjNjNzU2MzBiY2MzY2UxNmUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3Iu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBt
CkBAIC01NywxNCArNTcsMTMgQEAgbXkgJXN0cmluZ1R5cGVIYXNoID0gKCJET01TdHJpbmciID0+
IDEsICJBdG9taWNTdHJpbmciID0+IDEpOwogCiAjIFdlYkNvcmUgdHlwZXMgdXNlZCBkaXJlY3Rs
eSBpbiBJREwgZmlsZXMuCiBteSAld2ViQ29yZVR5cGVIYXNoID0gKAotICAgICJDb21wYXJlSG93
IiA9PiAxLAogICAgICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiID0+IDEsCiAgICAgIkRpY3Rpb25h
cnkiID0+IDEKICk7CiAKIG15ICVlbnVtVHlwZUhhc2ggPSAoKTsKIAotbXkgJW5vblBvaW50ZXJU
eXBlSGFzaCA9ICgiRE9NVGltZVN0YW1wIiA9PiAxLCAiQ29tcGFyZUhvdyIgPT4gMSk7CitteSAl
bm9uUG9pbnRlclR5cGVIYXNoID0gKCJET01UaW1lU3RhbXAiID0+IDEpOwogCiBteSAlc3ZnQXR0
cmlidXRlc0luSFRNTEhhc2ggPSAoImNsYXNzIiA9PiAxLCAiaWQiID0+IDEsICJvbmFib3J0IiA9
PiAxLCAib25jbGljayIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25l
cnJvciIgPT4gMSwgIm9ubG9hZCIgPT4gMSwgIm9ubW91c2Vkb3duIiA9PiAxLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG0KaW5kZXggYWQ4YzlhYjc2NmFjMThkMGY4N2UwMjQ1YzYzZGExN2UwYjEwYzAxZS4uZDY5MzFj
NzcxODUzY2FjNDVmMDg1YjMwNzk3NTE5OTViNjBkNDM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC00
MTEsNyArNDExLDYgQEAgc3ViIEdldEdsaWJUeXBlTmFtZSB7CiAKICAgICBteSAldHlwZXMgPSAo
IkRPTVN0cmluZyIsICJnY2hhcioiLAogICAgICAgICAgICAgICAgICAiRE9NVGltZVN0YW1wIiwg
Imd1aW50MzIiLAotICAgICAgICAgICAgICAgICAiQ29tcGFyZUhvdyIsICJndXNob3J0IiwKICAg
ICAgICAgICAgICAgICAgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIsICJnY2hhcioiLAogICAgICAg
ICAgICAgICAgICAiZmxvYXQiLCAiZ2Zsb2F0IiwKICAgICAgICAgICAgICAgICAgInVucmVzdHJp
Y3RlZCBmbG9hdCIsICJnZmxvYXQiLApAQCAtMTA2Niw3ICsxMDY1LDcgQEAgc3ViIEdlbmVyYXRl
RnVuY3Rpb24gewogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IldlYktpdERPTSR7cGFy
YW1JRExUeXBlfVByaXZhdGUuaCJ9ID0gMTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAg
ICAgICBpZiAoJHBhcmFtSXNHRE9NVHlwZSB8fCAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5n
IikgfHwgKCRwYXJhbUlETFR5cGUgZXEgIkNvbXBhcmVIb3ciKSkgeworICAgICAgICBpZiAoJHBh
cmFtSXNHRE9NVHlwZSB8fCAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikpIHsKICAgICAg
ICAgICAgICRwYXJhbU5hbWUgPSAiY29udmVydGVkIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2Zp
cnN0KCRwYXJhbU5hbWUpOwogICAgICAgICB9CiAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIGVx
ICJOb2RlRmlsdGVyIiB8fCAkcGFyYW1JRExUeXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7CkBA
IC0xMTg4LDggKzExODcsNiBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbiB7CiAgICAgICAgICRjb252
ZXJ0ZWRQYXJhbU5hbWUgPSAiY29udmVydGVkIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KCRwYXJhbU5hbWUpOwogICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikg
ewogICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV1RGOjpTdHJpbmcgJHtjb252ZXJ0ZWRQ
YXJhbU5hbWV9ID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KCRwYXJhbU5hbWUpO1xuIik7Ci0gICAg
ICAgIH0gZWxzaWYgKCRwYXJhbUlETFR5cGUgZXEgIkNvbXBhcmVIb3ciKSB7Ci0gICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpSYW5nZTo6Q29tcGFyZUhvdyAke2NvbnZlcnRl
ZFBhcmFtTmFtZX0gPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpSYW5nZTo6Q29tcGFyZUhvdz4oJHBh
cmFtTmFtZSk7XG4iKTsKICAgICAgICAgfSBlbHNpZiAoJHBhcmFtSURMVHlwZSBlcSAiTm9kZUZp
bHRlciIgfHwgJHBhcmFtSURMVHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgUmVmUHRyPFdlYkNvcmU6OiRwYXJhbUlETFR5cGU+ICR7Y29u
dmVydGVkUGFyYW1OYW1lfSA9IFdlYktpdDo6Y29yZSgkcGFyYW1OYW1lKTtcbiIpOwogICAgICAg
ICB9IGVsc2lmICgkcGFyYW1Jc0dET01UeXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDZhNjE5NDBiZGNkOWU0NWY5
MTAxYjhhOWFhMzg5OWVmMmJjNGY4OTguLmYwYTU2NGVmNzE5ZjBkNDMzNWYxNTk3ZWQ5MTVmYjBh
ZGFiOWMyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCkBAIC0zNzEzLDcgKzM3MTMsNiBAQCBzdWIgR2V0TmF0aXZlVHlwZUZy
b21TaWduYXR1cmUKIH0KIAogbXkgJW5hdGl2ZVR5cGUgPSAoCi0gICAgIkNvbXBhcmVIb3ciID0+
ICJSYW5nZTo6Q29tcGFyZUhvdyIsCiAgICAgIkRPTVN0cmluZyIgPT4gIlN0cmluZyIsCiAgICAg
Ik5vZGVGaWx0ZXIiID0+ICJSZWZQdHI8Tm9kZUZpbHRlcj4iLAogICAgICJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUiID0+ICJSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiIsCkBAIC0zODUzLDcg
KzM4NTIsNiBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgcmV0dXJuICJ0b1VJbnQ2NChleGVj
LCAkdmFsdWUsICRpbnRDb252ZXJzaW9uKSIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9u
ZyI7CiAKICAgICByZXR1cm4gInZhbHVlVG9EYXRlKGV4ZWMsICR2YWx1ZSkiIGlmICR0eXBlIGVx
ICJEYXRlIjsKLSAgICByZXR1cm4gInN0YXRpY19jYXN0PFJhbmdlOjpDb21wYXJlSG93PigkdmFs
dWUudG9JbnQzMihleGVjKSkiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKIAogICAgIGlmICgk
dHlwZSBlcSAiRE9NU3RyaW5nIikgewogICAgICAgICAjIEZJWE1FOiBUaGlzIGltcGxlbWVudHMg
W1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGFuZCBbVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5n
XSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvck9iakMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JPYmpDLnBtCmluZGV4IDJjOGM2MWVlODljYmU0MmZjZjdiYzA5OTMxMGQ0Y2U0YTI0N2QyM2Mu
LmM1Yjg3NzkzOTY3NTVjNGFkMDNjZWIzODM2OGMxZjIzZTk3MmNhYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQpAQCAt
NTc3LDcgKzU3Nyw2IEBAIHN1YiBHZXRPYmpDVHlwZQogICAgIHJldHVybiAiZmxvYXQiIGlmICR0
eXBlIGVxICJ1bnJlc3RyaWN0ZWQgZmxvYXQiOwogICAgIHJldHVybiAiaWQgPCRuYW1lPiIgaWYg
SXNQcm90b2NvbFR5cGUoJHR5cGUpOwogICAgIHJldHVybiAkbmFtZSBpZiAkY29kZUdlbmVyYXRv
ci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBvciAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKLSAg
ICByZXR1cm4gInVuc2lnbmVkIHNob3J0IiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CiAgICAg
cmV0dXJuICRuYW1lIGlmIElzQ29yZUZvdW5kYXRpb25UeXBlKCRuYW1lKTsKICAgICByZXR1cm4g
IiRuYW1lICoiOwogfQpAQCAtNTk0LDcgKzU5Myw3IEBAIHN1YiBHZXRQcm9wZXJ0eUF0dHJpYnV0
ZXMKICAgICAjIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vNTA0OTkzND4gQ29uc2lkZXIgdXNpbmcg
J25vbmF0b21pYycgb24gdGhlIERPTSBAcHJvcGVydHkgZGVjbGFyYXRpb25zLgogICAgIGlmICgk
Y29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKSB8fCBJc05hdGl2ZU9iakNUeXBlKCR0
eXBlKSkgewogICAgICAgICBwdXNoKEBhdHRyaWJ1dGVzLCAiY29weSIpOwotICAgIH0gZWxzaWYg
KCEkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKSAmJiAhJGNvZGVHZW5lcmF0b3It
PklzUHJpbWl0aXZlVHlwZSgkdHlwZSkgJiYgJHR5cGUgbmUgIkRPTVRpbWVTdGFtcCIgJiYgJHR5
cGUgbmUgIkNvbXBhcmVIb3ciKSB7CisgICAgfSBlbHNpZiAoISRjb2RlR2VuZXJhdG9yLT5Jc1N0
cmluZ1R5cGUoJHR5cGUpICYmICEkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBl
KSAmJiAkdHlwZSBuZSAiRE9NVGltZVN0YW1wIikgewogICAgICAgICBwdXNoKEBhdHRyaWJ1dGVz
LCAic3Ryb25nIik7CiAgICAgfQogCkBAIC02MTYsNyArNjE1LDYgQEAgc3ViIEdldE9iakNUeXBl
R2V0dGVyCiAKICAgICByZXR1cm4gJGFyZ05hbWUgaWYgJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0
aXZlVHlwZSgkdHlwZSkgb3IgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSkgb3Ig
SXNOYXRpdmVPYmpDVHlwZSgkdHlwZSk7CiAgICAgcmV0dXJuICRhcmdOYW1lIC4gIk5vZGUiIGlm
ICR0eXBlIGVxICJFdmVudFRhcmdldCI7Ci0gICAgcmV0dXJuICJzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpSYW5nZTo6Q29tcGFyZUhvdz4oJGFyZ05hbWUpIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7
CiAgICAgcmV0dXJuICJXVEY6OmdldFB0cihuYXRpdmVFdmVudExpc3RlbmVyKSIgaWYgJHR5cGUg
ZXEgIkV2ZW50TGlzdGVuZXIiOwogICAgIHJldHVybiAiV1RGOjpnZXRQdHIobmF0aXZlTm9kZUZp
bHRlcikiIGlmICR0eXBlIGVxICJOb2RlRmlsdGVyIjsKICAgICByZXR1cm4gIldURjo6Z2V0UHRy
KG5hdGl2ZVJlc29sdmVyKSIgaWYgJHR5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jh
bmdlLmNwcAppbmRleCA5YmE0ODE0MGI5NzViOTI1ZTc2ZjlkMTMzMDAzYTk2MDkyNTMzYjc5Li5m
YjFkMjA3OTkyNDZlY2UxZmQ5MjZhMTdkYmU4NTljNWY1NTIxZGQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5j
cHAKQEAgLTQ2Miw2ICs0NjIsMTUgQEAgc2hvcnQgUmFuZ2U6OmNvbXBhcmVCb3VuZGFyeVBvaW50
cyhDb21wYXJlSG93IGhvdywgY29uc3QgUmFuZ2UqIHNvdXJjZVJhbmdlLCBFeGMKICAgICByZXR1
cm4gMDsKIH0KIAorc2hvcnQgUmFuZ2U6OmNvbXBhcmVCb3VuZGFyeVBvaW50c0ZvckJpbmRpbmdz
KHVuc2lnbmVkIHNob3J0IGNvbXBhcmVIb3csIGNvbnN0IFJhbmdlKiBzb3VyY2VSYW5nZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7CisgICAgaWYgKGNvbXBhcmVIb3cgPCBTVEFSVF9UT19T
VEFSVCB8fCBjb21wYXJlSG93ID4gRU5EX1RPX1NUQVJUKSB7CisgICAgICAgIGVjID0gTk9UX1NV
UFBPUlRFRF9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gY29tcGFy
ZUJvdW5kYXJ5UG9pbnRzKHN0YXRpY19jYXN0PENvbXBhcmVIb3c+KGNvbXBhcmVIb3cpLCBzb3Vy
Y2VSYW5nZSwgZWMpOworfQorCiBzaG9ydCBSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKE5v
ZGUqIGNvbnRhaW5lckEsIGludCBvZmZzZXRBLCBOb2RlKiBjb250YWluZXJCLCBpbnQgb2Zmc2V0
QiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNTRVJUKGNvbnRhaW5lckEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFu
Z2UuaAppbmRleCAwOGJjY2ZmNTIwMWM4OWZjM2E2MTZjOGIyNDhjNzIyOWMwYWU5ZDY1Li4yZDll
MTAyM2U2YTdhMmIxMzNmYmY5Mzg0ODI3OWMzOTMxMzg2NTZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaApAQCAt
ODAsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgQ29tcGFyZVJlc3VsdHMgY29tcGFyZU5vZGUoTm9k
ZSogcmVmTm9kZSwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIGVudW0gQ29tcGFyZUhvdyB7
IFNUQVJUX1RPX1NUQVJULCBTVEFSVF9UT19FTkQsIEVORF9UT19FTkQsIEVORF9UT19TVEFSVCB9
OwogICAgIFdFQkNPUkVfRVhQT1JUIHNob3J0IGNvbXBhcmVCb3VuZGFyeVBvaW50cyhDb21wYXJl
SG93LCBjb25zdCBSYW5nZSogc291cmNlUmFuZ2UsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAg
ICBzaG9ydCBjb21wYXJlQm91bmRhcnlQb2ludHNGb3JCaW5kaW5ncyh1bnNpZ25lZCBzaG9ydCBj
b21wYXJlSG93LCBjb25zdCBSYW5nZSogc291cmNlUmFuZ2UsIEV4Y2VwdGlvbkNvZGUmKSBjb25z
dDsKICAgICBzdGF0aWMgc2hvcnQgY29tcGFyZUJvdW5kYXJ5UG9pbnRzKE5vZGUqIGNvbnRhaW5l
ckEsIGludCBvZmZzZXRBLCBOb2RlKiBjb250YWluZXJCLCBpbnQgb2Zmc2V0QiwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIHN0YXRpYyBzaG9ydCBjb21wYXJlQm91bmRhcnlQb2ludHMoY29uc3QgUmFu
Z2VCb3VuZGFyeVBvaW50JiBib3VuZGFyeUEsIGNvbnN0IFJhbmdlQm91bmRhcnlQb2ludCYgYm91
bmRhcnlCLCBFeGNlcHRpb25Db2RlJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBib3VuZGFy
eVBvaW50c1ZhbGlkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFu
Z2UuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbAppbmRleCBjZmVkOTRmNzQ0YWRk
OTA4MmJiZWFhOGQ3ZmI4ODY1ZTczZTc0N2UzLi43M2U4NmE5MmI2MGNiMDI1ZWNhYjYwODMyNWM5
MmFiZDJhZWJiOWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKQEAgLTUwLDcgKzUwLDcgQEAKICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBFTkRfVE9fRU5EICAgICA9IDI7CiAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgRU5EX1RPX1NUQVJUICAgPSAzOwogCi0gICAgW09iakNMZWdhY3lVbm5hbWVkUGFy
YW1ldGVycywgUmFpc2VzRXhjZXB0aW9uXSBzaG9ydCBjb21wYXJlQm91bmRhcnlQb2ludHMoW0Rl
ZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBDb21wYXJlSG93IGhvdywKKyAgICBbT2JqQ0xlZ2Fj
eVVubmFtZWRQYXJhbWV0ZXJzLCBSYWlzZXNFeGNlcHRpb24sIEltcGxlbWVudGVkQXM9Y29tcGFy
ZUJvdW5kYXJ5UG9pbnRzRm9yQmluZGluZ3NdIHNob3J0IGNvbXBhcmVCb3VuZGFyeVBvaW50cyhb
RGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IGhvdywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RlZmF1bHQ9VW5kZWZpbmVk
XSBvcHRpb25hbCBSYW5nZSBzb3VyY2VSYW5nZSk7CiAKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2
b2lkIGRlbGV0ZUNvbnRlbnRzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmM1Mzk1MGFlZTdhMDJmMGM2ZjEzYWVkZjll
MWE4NDY0MmQ1ZTQzNy4uNmM3NzNhZWQ2OWQ3YmZmZThlZjczNTQyNDAzODFkMWExZjM5ZGEyMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA4LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgUmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKCkgc2hvdWxk
IHRocm93IGEgTm90U3VwcG9ydGVkRXJyb3IgZm9yIGludmFsaWQgY29tcGFyZUhvdyB2YWx1ZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODQ4Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcg
bGF5b3V0IHRlc3QgdG8gY29uZmlybSB0aGF0IFJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cygp
IHRocm93cworICAgICAgICB3aGVuIHBhc3NlZCBpbiBpbnZhbGlkIGNvbXBhcmVIb3cgdmFsdWVz
LgorCisgICAgICAgICogZmFzdC9kb20vUmFuZ2UvY29tcGFyZUJvdW5kYXJ5UG9pbnRzLWNvbXBh
cmVIb3ctZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
UmFuZ2UvY29tcGFyZUJvdW5kYXJ5UG9pbnRzLWNvbXBhcmVIb3ctZXhjZXB0aW9uLmh0bWw6IEFk
ZGVkLgorCiAyMDE1LTA4LTI2ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTg4OTYwLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvY29tcGFyZUJvdW5kYXJ5UG9pbnRzLWNvbXBh
cmVIb3ctZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Jhbmdl
L2NvbXBhcmVCb3VuZGFyeVBvaW50cy1jb21wYXJlSG93LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmZlNjkwYjA3NTczYzUxNWZmZjhmZTY1Y2E4NTIyNmYyOGZkOGU1ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL2NvbXBhcmVCb3VuZGFy
eVBvaW50cy1jb21wYXJlSG93LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBA
QAorQ2hlY2tzIHRoYXQgUmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKCkgdGhyb3cgaWYgdGhl
IGNvbXBhcmVIb3cgcGFyYW1ldGVyIGlzIGludmFsaWQKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgcmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlLlNUQVJUX1RP
X1NUQVJULCBzb3VyY2VSYW5nZSkgaXMgLTEKK1BBU1MgcmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9p
bnRzKFJhbmdlLlNUQVJUX1RPX0VORCwgc291cmNlUmFuZ2UpIGlzIC0xCitQQVNTIHJhbmdlLmNv
bXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZS5FTkRfVE9fRU5ELCBzb3VyY2VSYW5nZSkgaXMgLTEK
K1BBU1MgcmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlLkVORF9UT19TVEFSVCwgc291
cmNlUmFuZ2UpIGlzIC0xCitQQVNTIHJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cyg2NTUzNiwg
c291cmNlUmFuZ2UpIGlzIC0xCitQQVNTIHJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cygtMSwg
c291cmNlUmFuZ2UpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERP
TSBFeGNlcHRpb24gOS4KK1BBU1MgcmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKDQsIHNvdXJj
ZVJhbmdlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhj
ZXB0aW9uIDkuCitQQVNTIHJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cygxMDAsIHNvdXJjZVJh
bmdlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5vdFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0
aW9uIDkuCitQQVNTIHJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cyg2NTUzNSwgc291cmNlUmFu
Z2UpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRp
b24gOS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9jb21wYXJlQm91bmRhcnlQ
b2ludHMtY29tcGFyZUhvdy1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Jh
bmdlL2NvbXBhcmVCb3VuZGFyeVBvaW50cy1jb21wYXJlSG93LWV4Y2VwdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYwYzhlODYwNGYyNTNlOTVkNzMyMWRhYzk5ODZjNDBhYzM5NTQ5YzQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9jb21wYXJlQm91bmRhcnlQb2lu
dHMtY29tcGFyZUhvdy1leGNlcHRpb24uaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2PjwvZGl2PgorPGRpdj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJDaGVja3MgdGhhdCBSYW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMo
KSB0aHJvdyBpZiB0aGUgY29tcGFyZUhvdyBwYXJhbWV0ZXIgaXMgaW52YWxpZCIpOworCit2YXIg
cmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworcmFuZ2Uuc2VsZWN0Tm9kZShkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGl2IilbMF0pOwordmFyIHNvdXJjZVJhbmdlID0gZG9j
dW1lbnQuY3JlYXRlUmFuZ2UoKTsKK3NvdXJjZVJhbmdlLnNlbGVjdE5vZGUoZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpWzFdKTsKKworLy8gVmFsaWQgdmFsdWVzLgorc2hvdWxk
QmUoInJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZS5TVEFSVF9UT19TVEFSVCwgc291
cmNlUmFuZ2UpIiwgIi0xIik7CitzaG91bGRCZSgicmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRz
KFJhbmdlLlNUQVJUX1RPX0VORCwgc291cmNlUmFuZ2UpIiwgIi0xIik7CitzaG91bGRCZSgicmFu
Z2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlLkVORF9UT19FTkQsIHNvdXJjZVJhbmdlKSIs
ICItMSIpOworc2hvdWxkQmUoInJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZS5FTkRf
VE9fU1RBUlQsIHNvdXJjZVJhbmdlKSIsICItMSIpOworc2hvdWxkQmUoInJhbmdlLmNvbXBhcmVC
b3VuZGFyeVBvaW50cyg2NTUzNiwgc291cmNlUmFuZ2UpIiwgIi0xIik7IC8vIDY1NTM2IHNob3Vs
ZCB3cmFwIGFyb3VuZCB0byAwLgorCisvLyBJbnZhbGlkIHZhbHVlcy4KK3Nob3VsZFRocm93KCJy
YW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoLTEsIHNvdXJjZVJhbmdlKSIsICInRXJyb3I6IE5v
dFN1cHBvcnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDknIik7CitzaG91bGRUaHJvdygicmFuZ2Uu
Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKDQsIHNvdXJjZVJhbmdlKSIsICInRXJyb3I6IE5vdFN1cHBv
cnRlZEVycm9yOiBET00gRXhjZXB0aW9uIDknIik7CitzaG91bGRUaHJvdygicmFuZ2UuY29tcGFy
ZUJvdW5kYXJ5UG9pbnRzKDEwMCwgc291cmNlUmFuZ2UpIiwgIidFcnJvcjogTm90U3VwcG9ydGVk
RXJyb3I6IERPTSBFeGNlcHRpb24gOSciKTsKK3Nob3VsZFRocm93KCJyYW5nZS5jb21wYXJlQm91
bmRhcnlQb2ludHMoNjU1MzUsIHNvdXJjZVJhbmdlKSIsICInRXJyb3I6IE5vdFN1cHBvcnRlZEVy
cm9yOiBET00gRXhjZXB0aW9uIDknIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260091</attachid>
            <date>2015-08-27 14:46:02 -0700</date>
            <delta_ts>2015-08-27 15:33:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148483-20150827144549.patch</filename>
            <type>text/plain</type>
            <size>14357</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODIzNTEyOGQ2MWYxOTZj
NTVmY2FlMDM4YzJlYmUzZjk3NmJlM2IzMC4uNmVlYzM4NGVlMDc0YWY1NzhiZjRmYzNjNTY0Mzhj
OWM1YTQ0MDBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE1LTA4LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmFuZ2UuY29tcGFyZUJvdW5k
YXJ5UG9pbnRzKCkgc2hvdWxkIHRocm93IGEgTm90U3VwcG9ydGVkRXJyb3IgZm9yIGludmFsaWQg
Y29tcGFyZUhvdyB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0ODQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgor
CisgICAgICAgIFJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cygpIHNob3VsZCB0aHJvdyBhIE5v
dFN1cHBvcnRlZEVycm9yIGZvcgorICAgICAgICBpbnZhbGlkIGNvbXBhcmVIb3cgdmFsdWVzOgor
ICAgICAgICBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1yYW5nZS1jb21wYXJlYm91
bmRhcnlwb2ludHMgKHN0ZXAgMSkKKworICAgICAgICBGaXJlZm94IGFuZCBDaHJvbWUgY29uZm9y
bSB0byB0aGUgc3BlY2lmaWNhdGlvbiBhbHJlYWR5LgorCisgICAgICAgIFByZXZpb3VzbHksIFdl
YktpdCB3b3VsZCBub3QgdGhyb3cgYW5kIHNpbXBseSBjYXN0IHRoZSB2YWx1ZSB0byBvdXIKKyAg
ICAgICAgaW50ZXJuYWwgQ29tcGFyZUhvdyBlbnVtIHR5cGUuIFRoaXMgcGF0Y2ggYWxpZ25zIFdl
YktpdCdzIGJlaGF2aW9yIHdpdGgKKyAgICAgICAgdGhlIERPTSBzcGVjaWZpY2FpdG9uIGFuZCBv
dGhlciBicm93c2Vycy4KKworICAgICAgICBXM0MgdGVzdCBzdWl0ZToKKyAgICAgICAgaHR0cDov
L3czYy10ZXN0Lm9yZy9kb20vcmFuZ2VzL1JhbmdlLWNvbXBhcmVCb3VuZGFyeVBvaW50cy5odG1s
CisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vUmFuZ2UvY29tcGFyZUJvdW5kYXJ5UG9pbnRzLWNv
bXBhcmVIb3ctZXhjZXB0aW9uLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvci5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JH
T2JqZWN0LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG06CisgICAg
ICAgIERyb3AgQ29tcGFyZUhvdyBzcGVjaWFsIGNhc2luZyBmcm9tIGJpbmRpbmdzIGdlbmVyYXRv
ciBhcyB3ZSBub3cgdXNlCisgICAgICAgIHVuc2lnbmVkIHNob3J0IGluc3RlYWQgaW4gdGhlIElE
TC4KKworICAgICAgICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6
Y29tcGFyZUJvdW5kYXJ5UG9pbnRzRm9yQmluZGluZ3MpOgorICAgICAgICAqIGRvbS9SYW5nZS5o
OgorICAgICAgICAqIGRvbS9SYW5nZS5pZGw6CisgICAgICAgIFVzZSAidW5zaWduZWQgc2hvcnQi
IHR5cGUgaW5zdGVhZCBvZiBXZWJDb3JlJ3MgQ29tcGFyZUhvdyBmb3IgdGhlCisgICAgICAgIHBh
cmFtZXRlciwgYXMgcGVyIHRoZSBzcGVjaWZpY2F0aW9uLiBPbiBpbXBsZW1lbnRhdGlvbiBzaWRl
LCB3ZQorICAgICAgICBub3cgdmFsaWRhdGUgdGhlIGNvbXBhcmVIb3cgdmFsdWUgYmVmb3JlIGNh
c3RpbmcgaXQgdG8gYSBDb21wYXJlSG93CisgICAgICAgIGVudW0gdHlwZS4gSWYgdGhlIHZhbHVl
IGlzIG5vdCB2YWx1ZSwgd2UgdGhyb3cgYW5kIGFib3J0IGVhcmx5LgorCiAyMDE1LTA4LTI3ICBa
YWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxlIGxpbmUgbGF5
b3V0OiBUZXh0IGp1bXBzIHNvbWV0aW1lcyBvbiBuYXVnaHR5IHN0cmluZ3MgcGFnZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCmluZGV4IDhl
MTg1ODVjODNkM2ViODY4ZDIzNjI5ZjFlZDUwZTI2ZDAxNjhmZWYuLjkxMGE5MjdmNzg3ZTFlZjlh
MDkwOWZjMmNkNGQxNzdlNmFmZGNhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KQEAgLTU3LDE0ICs1NywxMyBAQCBteSAlc3RyaW5n
VHlwZUhhc2ggPSAoIkRPTVN0cmluZyIgPT4gMSwgIkF0b21pY1N0cmluZyIgPT4gMSk7CiAKICMg
V2ViQ29yZSB0eXBlcyB1c2VkIGRpcmVjdGx5IGluIElETCBmaWxlcy4KIG15ICV3ZWJDb3JlVHlw
ZUhhc2ggPSAoCi0gICAgIkNvbXBhcmVIb3ciID0+IDEsCiAgICAgIlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSIgPT4gMSwKICAgICAiRGljdGlvbmFyeSIgPT4gMQogKTsKIAogbXkgJWVudW1UeXBlSGFz
aCA9ICgpOwogCi1teSAlbm9uUG9pbnRlclR5cGVIYXNoID0gKCJET01UaW1lU3RhbXAiID0+IDEs
ICJDb21wYXJlSG93IiA9PiAxKTsKK215ICVub25Qb2ludGVyVHlwZUhhc2ggPSAoIkRPTVRpbWVT
dGFtcCIgPT4gMSk7CiAKIG15ICVzdmdBdHRyaWJ1dGVzSW5IVE1MSGFzaCA9ICgiY2xhc3MiID0+
IDEsICJpZCIgPT4gMSwgIm9uYWJvcnQiID0+IDEsICJvbmNsaWNrIiA9PiAxLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJvbmVycm9yIiA9PiAxLCAib25sb2FkIiA9PiAxLCAib25t
b3VzZWRvd24iID0+IDEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCBhZDhjOWFiNzY2YWMxOGQwZjg3ZTAy
NDVjNjNkYTE3ZTBiMTBjMDFlLi5kNjkzMWM3NzE4NTNjYWM0NWYwODViMzA3OTc1MTk5NWI2MGQ0
MzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTQxMSw3ICs0MTEsNiBAQCBzdWIgR2V0R2xpYlR5cGVO
YW1lIHsKIAogICAgIG15ICV0eXBlcyA9ICgiRE9NU3RyaW5nIiwgImdjaGFyKiIsCiAgICAgICAg
ICAgICAgICAgICJET01UaW1lU3RhbXAiLCAiZ3VpbnQzMiIsCi0gICAgICAgICAgICAgICAgICJD
b21wYXJlSG93IiwgImd1c2hvcnQiLAogICAgICAgICAgICAgICAgICAiU2VyaWFsaXplZFNjcmlw
dFZhbHVlIiwgImdjaGFyKiIsCiAgICAgICAgICAgICAgICAgICJmbG9hdCIsICJnZmxvYXQiLAog
ICAgICAgICAgICAgICAgICAidW5yZXN0cmljdGVkIGZsb2F0IiwgImdmbG9hdCIsCkBAIC0xMDY2
LDcgKzEwNjUsNyBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbiB7CiAgICAgICAgICAgICAgICAgJGlt
cGxJbmNsdWRlc3siV2ViS2l0RE9NJHtwYXJhbUlETFR5cGV9UHJpdmF0ZS5oIn0gPSAxOwogICAg
ICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGlmICgkcGFyYW1Jc0dET01UeXBlIHx8ICgk
cGFyYW1JRExUeXBlIGVxICJET01TdHJpbmciKSB8fCAoJHBhcmFtSURMVHlwZSBlcSAiQ29tcGFy
ZUhvdyIpKSB7CisgICAgICAgIGlmICgkcGFyYW1Jc0dET01UeXBlIHx8ICgkcGFyYW1JRExUeXBl
IGVxICJET01TdHJpbmciKSkgewogICAgICAgICAgICAgJHBhcmFtTmFtZSA9ICJjb252ZXJ0ZWQi
IC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJHBhcmFtTmFtZSk7CiAgICAgICAgIH0KICAg
ICAgICAgaWYgKCRwYXJhbUlETFR5cGUgZXEgIk5vZGVGaWx0ZXIiIHx8ICRwYXJhbUlETFR5cGUg
ZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKQEAgLTExODgsOCArMTE4Nyw2IEBAIHN1YiBHZW5lcmF0
ZUZ1bmN0aW9uIHsKICAgICAgICAgJGNvbnZlcnRlZFBhcmFtTmFtZSA9ICJjb252ZXJ0ZWQiIC4g
JGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJHBhcmFtTmFtZSk7CiAgICAgICAgIGlmICgkcGFy
YW1JRExUeXBlIGVxICJET01TdHJpbmciKSB7CiAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICBXVEY6OlN0cmluZyAke2NvbnZlcnRlZFBhcmFtTmFtZX0gPSBXVEY6OlN0cmluZzo6ZnJvbVVU
RjgoJHBhcmFtTmFtZSk7XG4iKTsKLSAgICAgICAgfSBlbHNpZiAoJHBhcmFtSURMVHlwZSBlcSAi
Q29tcGFyZUhvdyIpIHsKLSAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OlJh
bmdlOjpDb21wYXJlSG93ICR7Y29udmVydGVkUGFyYW1OYW1lfSA9IHN0YXRpY19jYXN0PFdlYkNv
cmU6OlJhbmdlOjpDb21wYXJlSG93PigkcGFyYW1OYW1lKTtcbiIpOwogICAgICAgICB9IGVsc2lm
ICgkcGFyYW1JRExUeXBlIGVxICJOb2RlRmlsdGVyIiB8fCAkcGFyYW1JRExUeXBlIGVxICJYUGF0
aE5TUmVzb2x2ZXIiKSB7CiAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBSZWZQdHI8V2Vi
Q29yZTo6JHBhcmFtSURMVHlwZT4gJHtjb252ZXJ0ZWRQYXJhbU5hbWV9ID0gV2ViS2l0Ojpjb3Jl
KCRwYXJhbU5hbWUpO1xuIik7CiAgICAgICAgIH0gZWxzaWYgKCRwYXJhbUlzR0RPTVR5cGUpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KaW5kZXggMDU5Y2E4YmI4ZTYxMzUyYWEzYThlNTA2YTUzZDc2ZWQxZjkzNGMyMy4uYTJiMzQ4
NDUwZmQyYWUxZmQ4MzI0NjdlMWExZDVlNTEyNWIwMTk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTM3NDAsNyArMzc0
MCw2IEBAIHN1YiBHZXROYXRpdmVUeXBlRnJvbVNpZ25hdHVyZQogfQogCiBteSAlbmF0aXZlVHlw
ZSA9ICgKLSAgICAiQ29tcGFyZUhvdyIgPT4gIlJhbmdlOjpDb21wYXJlSG93IiwKICAgICAiRE9N
U3RyaW5nIiA9PiAiU3RyaW5nIiwKICAgICAiTm9kZUZpbHRlciIgPT4gIlJlZlB0cjxOb2RlRmls
dGVyPiIsCiAgICAgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIgPT4gIlJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IiwKQEAgLTM4ODAsNyArMzg3OSw2IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUK
ICAgICByZXR1cm4gInRvVUludDY0KGV4ZWMsICR2YWx1ZSwgJGludENvbnZlcnNpb24pIiBpZiAk
dHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKIAogICAgIHJldHVybiAidmFsdWVUb0RhdGUo
ZXhlYywgJHZhbHVlKSIgaWYgJHR5cGUgZXEgIkRhdGUiOwotICAgIHJldHVybiAic3RhdGljX2Nh
c3Q8UmFuZ2U6OkNvbXBhcmVIb3c+KCR2YWx1ZS50b0ludDMyKGV4ZWMpKSIgaWYgJHR5cGUgZXEg
IkNvbXBhcmVIb3ciOwogCiAgICAgaWYgKCR0eXBlIGVxICJET01TdHJpbmciKSB7CiAgICAgICAg
ICMgRklYTUU6IFRoaXMgaW1wbGVtZW50cyBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYW5kIFtU
cmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KaW5kZXggMmM4YzYxZWU4OWNiZTQy
ZmNmN2JjMDk5MzEwZDRjZTRhMjQ3ZDIzYy4uYzViODc3OTM5Njc1NWM0YWQwM2NlYjM4MzY4YzFm
MjNlOTcyY2FhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yT2JqQy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JPYmpDLnBtCkBAIC01NzcsNyArNTc3LDYgQEAgc3ViIEdldE9iakNUeXBl
CiAgICAgcmV0dXJuICJmbG9hdCIgaWYgJHR5cGUgZXEgInVucmVzdHJpY3RlZCBmbG9hdCI7CiAg
ICAgcmV0dXJuICJpZCA8JG5hbWU+IiBpZiBJc1Byb3RvY29sVHlwZSgkdHlwZSk7CiAgICAgcmV0
dXJuICRuYW1lIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpIG9yICR0
eXBlIGVxICJET01UaW1lU3RhbXAiOwotICAgIHJldHVybiAidW5zaWduZWQgc2hvcnQiIGlmICR0
eXBlIGVxICJDb21wYXJlSG93IjsKICAgICByZXR1cm4gJG5hbWUgaWYgSXNDb3JlRm91bmRhdGlv
blR5cGUoJG5hbWUpOwogICAgIHJldHVybiAiJG5hbWUgKiI7CiB9CkBAIC01OTQsNyArNTkzLDcg
QEAgc3ViIEdldFByb3BlcnR5QXR0cmlidXRlcwogICAgICMgRklYTUU6IDxyZGFyOi8vcHJvYmxl
bS81MDQ5OTM0PiBDb25zaWRlciB1c2luZyAnbm9uYXRvbWljJyBvbiB0aGUgRE9NIEBwcm9wZXJ0
eSBkZWNsYXJhdGlvbnMuCiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5
cGUpIHx8IElzTmF0aXZlT2JqQ1R5cGUoJHR5cGUpKSB7CiAgICAgICAgIHB1c2goQGF0dHJpYnV0
ZXMsICJjb3B5Iik7Ci0gICAgfSBlbHNpZiAoISRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUo
JHR5cGUpICYmICEkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSAmJiAkdHlw
ZSBuZSAiRE9NVGltZVN0YW1wIiAmJiAkdHlwZSBuZSAiQ29tcGFyZUhvdyIpIHsKKyAgICB9IGVs
c2lmICghJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSkgJiYgISRjb2RlR2VuZXJh
dG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpICYmICR0eXBlIG5lICJET01UaW1lU3RhbXAiKSB7
CiAgICAgICAgIHB1c2goQGF0dHJpYnV0ZXMsICJzdHJvbmciKTsKICAgICB9CiAKQEAgLTYxNiw3
ICs2MTUsNiBAQCBzdWIgR2V0T2JqQ1R5cGVHZXR0ZXIKIAogICAgIHJldHVybiAkYXJnTmFtZSBp
ZiAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBvciAkY29kZUdlbmVyYXRv
ci0+SXNTdHJpbmdUeXBlKCR0eXBlKSBvciBJc05hdGl2ZU9iakNUeXBlKCR0eXBlKTsKICAgICBy
ZXR1cm4gJGFyZ05hbWUgLiAiTm9kZSIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKLSAgICBy
ZXR1cm4gInN0YXRpY19jYXN0PFdlYkNvcmU6OlJhbmdlOjpDb21wYXJlSG93PigkYXJnTmFtZSki
IGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKICAgICByZXR1cm4gIldURjo6Z2V0UHRyKG5hdGl2
ZUV2ZW50TGlzdGVuZXIpIiBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CiAgICAgcmV0dXJu
ICJXVEY6OmdldFB0cihuYXRpdmVOb2RlRmlsdGVyKSIgaWYgJHR5cGUgZXEgIk5vZGVGaWx0ZXIi
OwogICAgIHJldHVybiAiV1RGOjpnZXRQdHIobmF0aXZlUmVzb2x2ZXIpIiBpZiAkdHlwZSBlcSAi
WFBhdGhOU1Jlc29sdmVyIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IDliYTQ4MTQwYjk3NWI5MjVl
NzZmOWQxMzMwMDNhOTYwOTI1MzNiNzkuLjE2NGE2NTVlZGQxNTdjYmNhM2U4ZmJjYzY0MDFiYzU3
YTQ0N2ZjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtNDYyLDYgKzQ2MiwxNSBAQCBzaG9ydCBS
YW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKENvbXBhcmVIb3cgaG93LCBjb25zdCBSYW5nZSog
c291cmNlUmFuZ2UsIEV4YwogICAgIHJldHVybiAwOwogfQogCitzaG9ydCBSYW5nZTo6Y29tcGFy
ZUJvdW5kYXJ5UG9pbnRzRm9yQmluZGluZ3ModW5zaWduZWQgc2hvcnQgY29tcGFyZUhvdywgY29u
c3QgUmFuZ2UqIHNvdXJjZVJhbmdlLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKKyAgICBp
ZiAoY29tcGFyZUhvdyA+IEVORF9UT19TVEFSVCkgeworICAgICAgICBlYyA9IE5PVF9TVVBQT1JU
RURfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIGNvbXBhcmVCb3Vu
ZGFyeVBvaW50cyhzdGF0aWNfY2FzdDxDb21wYXJlSG93Pihjb21wYXJlSG93KSwgc291cmNlUmFu
Z2UsIGVjKTsKK30KKwogc2hvcnQgUmFuZ2U6OmNvbXBhcmVCb3VuZGFyeVBvaW50cyhOb2RlKiBj
b250YWluZXJBLCBpbnQgb2Zmc2V0QSwgTm9kZSogY29udGFpbmVyQiwgaW50IG9mZnNldEIsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VSVChjb250YWluZXJBKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgK
aW5kZXggMDhiY2NmZjUyMDFjODlmYzNhNjE2YzhiMjQ4YzcyMjljMGFlOWQ2NS4uMmQ5ZTEwMjNl
NmE3YTJiMTMzZmJmOTM4NDgyNzljMzkzMTM4NjU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTgwLDYg
KzgwLDcgQEAgcHVibGljOgogICAgIENvbXBhcmVSZXN1bHRzIGNvbXBhcmVOb2RlKE5vZGUqIHJl
Zk5vZGUsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBlbnVtIENvbXBhcmVIb3cgeyBTVEFS
VF9UT19TVEFSVCwgU1RBUlRfVE9fRU5ELCBFTkRfVE9fRU5ELCBFTkRfVE9fU1RBUlQgfTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBzaG9ydCBjb21wYXJlQm91bmRhcnlQb2ludHMoQ29tcGFyZUhvdywg
Y29uc3QgUmFuZ2UqIHNvdXJjZVJhbmdlLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CisgICAgc2hv
cnQgY29tcGFyZUJvdW5kYXJ5UG9pbnRzRm9yQmluZGluZ3ModW5zaWduZWQgc2hvcnQgY29tcGFy
ZUhvdywgY29uc3QgUmFuZ2UqIHNvdXJjZVJhbmdlLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAg
ICAgc3RhdGljIHNob3J0IGNvbXBhcmVCb3VuZGFyeVBvaW50cyhOb2RlKiBjb250YWluZXJBLCBp
bnQgb2Zmc2V0QSwgTm9kZSogY29udGFpbmVyQiwgaW50IG9mZnNldEIsIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICBzdGF0aWMgc2hvcnQgY29tcGFyZUJvdW5kYXJ5UG9pbnRzKGNvbnN0IFJhbmdlQm91
bmRhcnlQb2ludCYgYm91bmRhcnlBLCBjb25zdCBSYW5nZUJvdW5kYXJ5UG9pbnQmIGJvdW5kYXJ5
QiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgYm91bmRhcnlQb2lu
dHNWYWxpZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKaW5kZXggY2ZlZDk0Zjc0NGFkZDkwODJi
YmVhYThkN2ZiODg2NWU3M2U3NDdlMy4uNzNlODZhOTJiNjBjYjAyNWVjYWI2MDgzMjVjOTJhYmQy
YWViYjliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsCkBAIC01MCw3ICs1MCw3IEBACiAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgRU5EX1RPX0VORCAgICAgPSAyOwogICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IEVORF9UT19TVEFSVCAgID0gMzsKIAotICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRl
cnMsIFJhaXNlc0V4Y2VwdGlvbl0gc2hvcnQgY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFtEZWZhdWx0
PVVuZGVmaW5lZF0gb3B0aW9uYWwgQ29tcGFyZUhvdyBob3csCisgICAgW09iakNMZWdhY3lVbm5h
bWVkUGFyYW1ldGVycywgUmFpc2VzRXhjZXB0aW9uLCBJbXBsZW1lbnRlZEFzPWNvbXBhcmVCb3Vu
ZGFyeVBvaW50c0ZvckJpbmRpbmdzXSBzaG9ydCBjb21wYXJlQm91bmRhcnlQb2ludHMoW0RlZmF1
bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCB1bnNpZ25lZCBzaG9ydCBob3csCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0
aW9uYWwgUmFuZ2Ugc291cmNlUmFuZ2UpOwogCiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBk
ZWxldGVDb250ZW50cygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBlZjFjYTFlYjA1Mzc2NDQ4ZmE1ZTI0ZjY4MTZhMDNj
YWQ3OTk0MjguLmRhNmY2MjE2ZDZjODUzOTliOGQzNzQzMzAxNWZkZjUxMzk4MmRlZTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwxOCBAQAogMjAxNS0wOC0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCisgICAgICAgIFJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cygpIHNob3VsZCB0aHJv
dyBhIE5vdFN1cHBvcnRlZEVycm9yIGZvciBpbnZhbGlkIGNvbXBhcmVIb3cgdmFsdWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg0ODMKKworICAg
ICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAgICAgICBBZGQgbmV3IGxheW91
dCB0ZXN0IHRvIGNvbmZpcm0gdGhhdCBSYW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoKSB0aHJv
d3MKKyAgICAgICAgd2hlbiBwYXNzZWQgaW4gaW52YWxpZCBjb21wYXJlSG93IHZhbHVlcy4KKwor
ICAgICAgICAqIGZhc3QvZG9tL1JhbmdlL2NvbXBhcmVCb3VuZGFyeVBvaW50cy1jb21wYXJlSG93
LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Jhbmdl
L2NvbXBhcmVCb3VuZGFyeVBvaW50cy1jb21wYXJlSG93LWV4Y2VwdGlvbi5odG1sOiBBZGRlZC4K
KworMjAxNS0wOC0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAg
IERvY3VtZW50IHdpbmRvdy5Ob2RlRmlsdGVyIHByb3BlcnRpZXMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODUzMQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9jb21wYXJlQm91bmRhcnlQb2ludHMtY29tcGFyZUhvdy1l
eGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvY29tcGFy
ZUJvdW5kYXJ5UG9pbnRzLWNvbXBhcmVIb3ctZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZmU2OTBiMDc1NzNjNTE1ZmZmOGZlNjVjYTg1MjI2ZjI4ZmQ4ZTVmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvY29tcGFyZUJvdW5kYXJ5UG9pbnRz
LWNvbXBhcmVIb3ctZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitDaGVj
a3MgdGhhdCBSYW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoKSB0aHJvdyBpZiB0aGUgY29tcGFy
ZUhvdyBwYXJhbWV0ZXIgaXMgaW52YWxpZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyByYW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2UuU1RBUlRfVE9fU1RBUlQs
IHNvdXJjZVJhbmdlKSBpcyAtMQorUEFTUyByYW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFu
Z2UuU1RBUlRfVE9fRU5ELCBzb3VyY2VSYW5nZSkgaXMgLTEKK1BBU1MgcmFuZ2UuY29tcGFyZUJv
dW5kYXJ5UG9pbnRzKFJhbmdlLkVORF9UT19FTkQsIHNvdXJjZVJhbmdlKSBpcyAtMQorUEFTUyBy
YW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2UuRU5EX1RPX1NUQVJULCBzb3VyY2VSYW5n
ZSkgaXMgLTEKK1BBU1MgcmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKDY1NTM2LCBzb3VyY2VS
YW5nZSkgaXMgLTEKK1BBU1MgcmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKC0xLCBzb3VyY2VS
YW5nZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA5LgorUEFTUyByYW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoNCwgc291cmNlUmFuZ2Up
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24g
OS4KK1BBU1MgcmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKDEwMCwgc291cmNlUmFuZ2UpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOS4K
K1BBU1MgcmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKDY1NTM1LCBzb3VyY2VSYW5nZSkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjogRE9NIEV4Y2VwdGlvbiA5Lgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL2NvbXBhcmVCb3VuZGFyeVBvaW50cy1j
b21wYXJlSG93LWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvY29t
cGFyZUJvdW5kYXJ5UG9pbnRzLWNvbXBhcmVIb3ctZXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjBjOGU4NjA0ZjI1M2U5NWQ3MzIxZGFjOTk4NmM0MGFjMzk1NDljNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL2NvbXBhcmVCb3VuZGFyeVBvaW50cy1jb21w
YXJlSG93LWV4Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxkaXY+PC9kaXY+Cis8ZGl2PjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIkNoZWNrcyB0aGF0IFJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cygpIHRocm93
IGlmIHRoZSBjb21wYXJlSG93IHBhcmFtZXRlciBpcyBpbnZhbGlkIik7CisKK3ZhciByYW5nZSA9
IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CityYW5nZS5zZWxlY3ROb2RlKGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJkaXYiKVswXSk7Cit2YXIgc291cmNlUmFuZ2UgPSBkb2N1bWVudC5j
cmVhdGVSYW5nZSgpOworc291cmNlUmFuZ2Uuc2VsZWN0Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiZGl2IilbMV0pOworCisvLyBWYWxpZCB2YWx1ZXMuCitzaG91bGRCZSgicmFu
Z2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlLlNUQVJUX1RPX1NUQVJULCBzb3VyY2VSYW5n
ZSkiLCAiLTEiKTsKK3Nob3VsZEJlKCJyYW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2Uu
U1RBUlRfVE9fRU5ELCBzb3VyY2VSYW5nZSkiLCAiLTEiKTsKK3Nob3VsZEJlKCJyYW5nZS5jb21w
YXJlQm91bmRhcnlQb2ludHMoUmFuZ2UuRU5EX1RPX0VORCwgc291cmNlUmFuZ2UpIiwgIi0xIik7
CitzaG91bGRCZSgicmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlLkVORF9UT19TVEFS
VCwgc291cmNlUmFuZ2UpIiwgIi0xIik7CitzaG91bGRCZSgicmFuZ2UuY29tcGFyZUJvdW5kYXJ5
UG9pbnRzKDY1NTM2LCBzb3VyY2VSYW5nZSkiLCAiLTEiKTsgLy8gNjU1MzYgc2hvdWxkIHdyYXAg
YXJvdW5kIHRvIDAuCisKKy8vIEludmFsaWQgdmFsdWVzLgorc2hvdWxkVGhyb3coInJhbmdlLmNv
bXBhcmVCb3VuZGFyeVBvaW50cygtMSwgc291cmNlUmFuZ2UpIiwgIidFcnJvcjogTm90U3VwcG9y
dGVkRXJyb3I6IERPTSBFeGNlcHRpb24gOSciKTsKK3Nob3VsZFRocm93KCJyYW5nZS5jb21wYXJl
Qm91bmRhcnlQb2ludHMoNCwgc291cmNlUmFuZ2UpIiwgIidFcnJvcjogTm90U3VwcG9ydGVkRXJy
b3I6IERPTSBFeGNlcHRpb24gOSciKTsKK3Nob3VsZFRocm93KCJyYW5nZS5jb21wYXJlQm91bmRh
cnlQb2ludHMoMTAwLCBzb3VyY2VSYW5nZSkiLCAiJ0Vycm9yOiBOb3RTdXBwb3J0ZWRFcnJvcjog
RE9NIEV4Y2VwdGlvbiA5JyIpOworc2hvdWxkVGhyb3coInJhbmdlLmNvbXBhcmVCb3VuZGFyeVBv
aW50cyg2NTUzNSwgc291cmNlUmFuZ2UpIiwgIidFcnJvcjogTm90U3VwcG9ydGVkRXJyb3I6IERP
TSBFeGNlcHRpb24gOSciKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>