<?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>72056</bug_id>
          
          <creation_ts>2011-11-10 13:59:32 -0800</creation_ts>
          <short_desc>[chromium] Fix plumbing for differentiating between clipboard/selection pastes.</short_desc>
          <delta_ts>2011-11-22 16:57:41 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Cheng">dcheng</reporter>
          <assigned_to name="Daniel Cheng">dcheng</assigned_to>
          <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>500247</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-11-10 13:59:32 -0800</bug_when>
    <thetext>[chromium] Fix plumbing for differentiating between clipboard/selection pastes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500271</commentid>
    <comment_count>1</comment_count>
      <attachid>114570</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-11-10 14:15:18 -0800</bug_when>
    <thetext>Created attachment 114570
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500274</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-10 14:17:08 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502329</commentid>
    <comment_count>3</comment_count>
      <attachid>114570</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-14 14:44:01 -0800</bug_when>
    <thetext>Comment on attachment 114570
Patch

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

&gt; Source/WebKit/chromium/src/PlatformSupport.cpp:153
&gt; +uint64_t PlatformSupport::clipboardGetSequenceNumber(PasteboardPrivate::ClipboardBuffer buffer)

if you are going to rename WebClipboard::getSequenceNumber to WebClipboard::sequenceNumber, then
it follows that you should also rename clipboardGetSequenceNumber to clipboardSequenceNumber, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502337</commentid>
    <comment_count>4</comment_count>
      <attachid>114570</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-11-14 14:48:43 -0800</bug_when>
    <thetext>Comment on attachment 114570
Patch

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

&gt;&gt; Source/WebKit/chromium/src/PlatformSupport.cpp:153
&gt;&gt; +uint64_t PlatformSupport::clipboardGetSequenceNumber(PasteboardPrivate::ClipboardBuffer buffer)
&gt; 
&gt; if you are going to rename WebClipboard::getSequenceNumber to WebClipboard::sequenceNumber, then
&gt; it follows that you should also rename clipboardGetSequenceNumber to clipboardSequenceNumber, right?

Hm. I wasn&apos;t sure.
I remember hearing somewhere that in WebKit, Class::getX() is usually something that returns a mutable X, so I thought WebClipboard::sequenceNumber would be more appropriate. But it seems like renaming the general convention in PlatformSupport is prefixVerbObject, which clipboardSequenceNumber wouldn&apos;t follow. Do you have a preference here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507300</commentid>
    <comment_count>5</comment_count>
      <attachid>116154</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-11-21 16:11:29 -0800</bug_when>
    <thetext>Created attachment 116154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507301</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-11-21 16:11:50 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 114570 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=114570&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/PlatformSupport.cpp:153
&gt; &gt; +uint64_t PlatformSupport::clipboardGetSequenceNumber(PasteboardPrivate::ClipboardBuffer buffer)
&gt; 
&gt; if you are going to rename WebClipboard::getSequenceNumber to WebClipboard::sequenceNumber, then
&gt; it follows that you should also rename clipboardGetSequenceNumber to clipboardSequenceNumber, right?

I&apos;ve updated the patch to make the naming consistent in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507306</commentid>
    <comment_count>7</comment_count>
      <attachid>116154</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-11-21 16:16:04 -0800</bug_when>
    <thetext>Comment on attachment 116154
Patch

LGTM, I defer to fishd due to the API change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507307</commentid>
    <comment_count>8</comment_count>
      <attachid>116154</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-11-21 16:16:53 -0800</bug_when>
    <thetext>Comment on attachment 116154
Patch

Oh, is it possible to write a test for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507309</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-11-21 16:19:35 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 116154 [details])
&gt; Oh, is it possible to write a test for this?

It might be possible, by calling execCommand(&quot;copy&quot;), then calling execCommand(&quot;paste&quot;) in the copy handler, then verifying that reads fail as expected. But the logic for exposing a clipboard sequence number is currently not implemented in the mock clipboard used by DRT, so it would require another 2-sided patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507325</commentid>
    <comment_count>10</comment_count>
      <attachid>116154</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-21 17:18:41 -0800</bug_when>
    <thetext>Comment on attachment 116154
Patch

WebKit API change LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507863</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-11-22 16:39:38 -0800</bug_when>
    <thetext>Committed r101031: &lt;http://trac.webkit.org/changeset/101031&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114570</attachid>
            <date>2011-11-10 14:15:18 -0800</date>
            <delta_ts>2011-11-21 16:11:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72056-20111110141517.patch</filename>
            <type>text/plain</type>
            <size>13717</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkzNjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNWJmMDY5YjZmOWVjYTE4
YThhMzBiNjE1MDJjN2JiNGVjNmMzYjFkLi4yZTFiM2U3ODVlZmNiNzVmZjhhMjcwZThjMzUzMmYy
ZDA3MDI3MmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTEtMTAgIERhbmll
bCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBGaXgg
cGx1bWJpbmcgZm9yIGRpZmZlcmVudGlhdGluZyBiZXR3ZWVuIGNsaXBib2FyZC9zZWxlY3Rpb24g
cGFzdGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzIwNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYSBidWZmZXIgcGFyYW1ldGVyIHdoZW4gcmV0cmlldmluZyB0aGUgY2xpcGJvYXJkIHNlcXVl
bmNlIG51bWJlciBhbmQgZml4IHNldmVyYWwgY2FsbAorICAgICAgICBzaXRlcyB0aGF0IGluY29y
cmVjdGx5IGFzc3VtZSB1c2Ugb2YgdGhlIHN0YW5kYXJkIGJ1ZmZlciBpbiBwYXN0ZXMuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpnZXREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9taXVtRGF0YU9iamVjdDo6Y29udGFpbnNGaWxlbmFtZXMpOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBi
b2FyZENocm9taXVtOjpDbGlwYm9hcmRDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpDbGlw
Ym9hcmRDaHJvbWl1bTo6Z2V0RGF0YSk6IE9ubHkgdXNlIHNlcXVlbmNlIG51bWJlciBmb3IgcGFz
dGVzLgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkQ2hyb21pdW06OnBsYXRmb3JtQ2xpcGJv
YXJkQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkVXRpbGl0
aWVzQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3VycmVudFBhc3RlYm9hcmRCdWZm
ZXIpOgorICAgICAgICBIZWxwZXIgbWV0aG9kIHRvIHJldHVybiBjb3JyZXNwb25kaW5nIFBhc3Rl
Ym9hcmRQcml2YXRlOjpDbGlwYm9hcmRCdWZmZXIuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vQ2xpcGJvYXJkVXRpbGl0aWVzQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YVRyYW5zZmVySXRlbUNocm9taXVtOjpnZXRBc1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0Lmg6CisKIDIwMTEtMTEtMDQgIEpvbiBMZWUgIDxqb25s
ZWVAYXBwbGUuY29tPgogCiAgICAgICAgIERyYWdnaW5nIGEgZmlsZSBvbnRvIDxpbnB1dCB0eXBl
PSJmaWxlIj4gc2hvdWxkIGdpdmUgZGlzdGluY3QgdmlzdWFsIGZlZWRiYWNrCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IGQxM2I4ODNmMDNkNjg2YmYwMDY2NDNjZjg3YmVhNGJiZjNlZDU2
MzQuLjc3MDUwYmE2NzU0YmZjOWY1ODYxZDEwMDE2NWE3Nzc1ZjU5M2I0YjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTEtMTAgIERhbmllbCBDaGVu
ZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBGaXggcGx1bWJp
bmcgZm9yIGRpZmZlcmVudGlhdGluZyBiZXR3ZWVuIGNsaXBib2FyZC9zZWxlY3Rpb24gcGFzdGVz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwNTYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBi
dWZmZXIgcGFyYW1ldGVyIHdoZW4gcmV0cmlldmluZyB0aGUgY2xpcGJvYXJkIHNlcXVlbmNlIG51
bWJlci4KKworICAgICAgICAqIHB1YmxpYy9XZWJDbGlwYm9hcmQuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ2xpcGJvYXJkOjpzZXF1ZW5jZU51bWJlcik6CisgICAgICAgICogc3JjL1BsYXRmb3Jt
U3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2Fy
ZEdldFNlcXVlbmNlTnVtYmVyKToKKwogMjAxMS0xMS0wNSAgRGFuaWVsIENoZW5nICA8ZGNoZW5n
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVzZSB0aGUgc2VjdXJpdHkgb3Jp
Z2luIGluc3RlYWQgb2YgdGhlIFVSTCB3aGVuIGNoZWNraW5nIG5vdGlmaWNhdGlvbiBwZXJtaXNz
aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21p
dW1EYXRhT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9t
aXVtRGF0YU9iamVjdC5jcHAKaW5kZXggOTI2NTVkOGE5OWRlODIxNGJmMWI1Mjg1OTBjYzVjOTYw
NmQ0ZDg4NS4uOTY2ZDQwYTRmYWJjNjlkOGQ1N2FmZDljMDJiYzdjNjgwNzFlMmE2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFP
YmplY3QuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ2hyb21pdW1EYXRhT2JqZWN0
LmgiCiAKICNpbmNsdWRlICJDbGlwYm9hcmRNaW1lVHlwZXMuaCIKKyNpbmNsdWRlICJDbGlwYm9h
cmRVdGlsaXRpZXNDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVN1cHBvcnQuaCIKIApAQCAtMTMwLDExICsxMzEsNyBAQCBTdHJpbmcgQ2hyb21p
dW1EYXRhT2JqZWN0OjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3VjY2VzcykK
IHsKICAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRQbGFpbikgewogICAgICAgICBpZiAobV9j
bGlwYm9hcmRUeXBlID09IENsaXBib2FyZDo6Q29weUFuZFBhc3RlKSB7Ci0gICAgICAgICAgICBQ
YXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyIGJ1ZmZlciA9Ci0gICAgICAgICAgICAg
ICAgUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+aXNTZWxlY3Rpb25Nb2RlKCkgPwot
ICAgICAgICAgICAgICAgIFBhc3RlYm9hcmRQcml2YXRlOjpTZWxlY3Rpb25CdWZmZXIgOgotICAg
ICAgICAgICAgICAgIFBhc3RlYm9hcmRQcml2YXRlOjpTdGFuZGFyZEJ1ZmZlcjsKLSAgICAgICAg
ICAgIFN0cmluZyB0ZXh0ID0gUGxhdGZvcm1TdXBwb3J0OjpjbGlwYm9hcmRSZWFkUGxhaW5UZXh0
KGJ1ZmZlcik7CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IFBsYXRmb3JtU3VwcG9ydDo6Y2xp
cGJvYXJkUmVhZFBsYWluVGV4dChjdXJyZW50UGFzdGVib2FyZEJ1ZmZlcigpKTsKICAgICAgICAg
ICAgIHN1Y2Nlc3MgPSAhdGV4dC5pc0VtcHR5KCk7CiAgICAgICAgICAgICByZXR1cm4gdGV4dDsK
ICAgICAgICAgfQpAQCAtMTU0LDE0ICsxNTEsMTAgQEAgU3RyaW5nIENocm9taXVtRGF0YU9iamVj
dDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpCiAKICAgICBpZiAo
dHlwZSA9PSBtaW1lVHlwZVRleHRIVE1MKSB7CiAgICAgICAgIGlmIChtX2NsaXBib2FyZFR5cGUg
PT0gQ2xpcGJvYXJkOjpDb3B5QW5kUGFzdGUpIHsKLSAgICAgICAgICAgIFBhc3RlYm9hcmRQcml2
YXRlOjpDbGlwYm9hcmRCdWZmZXIgYnVmZmVyID0KLSAgICAgICAgICAgICAgICBQYXN0ZWJvYXJk
OjpnZW5lcmFsUGFzdGVib2FyZCgpLT5pc1NlbGVjdGlvbk1vZGUoKSA/Ci0gICAgICAgICAgICAg
ICAgUGFzdGVib2FyZFByaXZhdGU6OlNlbGVjdGlvbkJ1ZmZlciA6Ci0gICAgICAgICAgICAgICAg
UGFzdGVib2FyZFByaXZhdGU6OlN0YW5kYXJkQnVmZmVyOwogICAgICAgICAgICAgU3RyaW5nIGh0
bWxUZXh0OwogICAgICAgICAgICAgS1VSTCBzb3VyY2VVUkw7CiAgICAgICAgICAgICB1bnNpZ25l
ZCBpZ25vcmVkOwotICAgICAgICAgICAgUGxhdGZvcm1TdXBwb3J0OjpjbGlwYm9hcmRSZWFkSFRN
TChidWZmZXIsICZodG1sVGV4dCwgJnNvdXJjZVVSTCwgJmlnbm9yZWQsICZpZ25vcmVkKTsKKyAg
ICAgICAgICAgIFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJkUmVhZEhUTUwoY3VycmVudFBhc3Rl
Ym9hcmRCdWZmZXIoKSwgJmh0bWxUZXh0LCAmc291cmNlVVJMLCAmaWdub3JlZCwgJmlnbm9yZWQp
OwogICAgICAgICAgICAgc3VjY2VzcyA9ICFodG1sVGV4dC5pc0VtcHR5KCk7CiAgICAgICAgICAg
ICByZXR1cm4gaHRtbFRleHQ7CiAgICAgICAgIH0KQEAgLTIyNywxOCArMjIwLDEzIEBAIGJvb2wg
Q2hyb21pdW1EYXRhT2JqZWN0OjpzZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBkYXRhKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdWludDY0X3QgQ2hyb21pdW1EYXRh
T2JqZWN0OjpnZXRTZXF1ZW5jZU51bWJlcigpCi17Ci0gICAgcmV0dXJuIFBsYXRmb3JtU3VwcG9y
dDo6Y2xpcGJvYXJkR2V0U2VxdWVuY2VOdW1iZXIoKTsKLX0KLQogYm9vbCBDaHJvbWl1bURhdGFP
YmplY3Q6OmNvbnRhaW5zRmlsZW5hbWVzKCkgY29uc3QKIHsKICAgICBib29sIGNvbnRhaW5zRmls
ZW5hbWVzOwogICAgIGlmIChtX2NsaXBib2FyZFR5cGUgPT0gQ2xpcGJvYXJkOjpDb3B5QW5kUGFz
dGUpIHsKICAgICAgICAgSGFzaFNldDxTdHJpbmc+IGlnbm9yZWRSZXN1bHRzID0KLSAgICAgICAg
ICAgIFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJkUmVhZEF2YWlsYWJsZVR5cGVzKFBhc3RlYm9h
cmRQcml2YXRlOjpTdGFuZGFyZEJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbnRhaW5zRmlsZW5hbWVzKTsKKyAgICAgICAg
ICAgIFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJkUmVhZEF2YWlsYWJsZVR5cGVzKGN1cnJlbnRQ
YXN0ZWJvYXJkQnVmZmVyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmY29udGFpbnNGaWxlbmFtZXMpOwogICAgIH0gZWxzZQogICAg
ICAgICBjb250YWluc0ZpbGVuYW1lcyA9ICFtX2ZpbGVuYW1lcy5pc0VtcHR5KCk7CiAgICAgcmV0
dXJuIGNvbnRhaW5zRmlsZW5hbWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAppbmRleCA4YzJmOWJjZGVkMGY2OGE3YjVl
NTljYWE3ODM2Njc3Y2E5YjFkOGJkLi5lZTc5YmZlYzk0ZjE3YjJiZDhmYzQwNTUwNjg4NzNhZWI1
ODZlNmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJv
bWl1bURhdGFPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9D
aHJvbWl1bURhdGFPYmplY3QuaApAQCAtNjYsNyArNjYsNiBAQCBwdWJsaWM6CiAgICAgSGFzaFNl
dDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CiAgICAgU3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5n
JiB0eXBlLCBib29sJiBzdWNjZXNzKTsKICAgICBib29sIHNldERhdGEoY29uc3QgU3RyaW5nJiB0
eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpOwotICAgIHVpbnQ2NF90IGdldFNlcXVlbmNlTnVtYmVy
KCk7CiAKICAgICAvLyBTcGVjaWFsIGhhbmRsZXJzIGZvciBVUkwvSFRNTCBtZXRhZGF0YS4KICAg
ICBTdHJpbmcgdXJsVGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3VybFRpdGxlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5j
cHAKaW5kZXggMjUwODE3M2M2ODAyNmRhZTYxNTg0YjJjNjRiZWE5ODIxMTFiZjYwMi4uODZlNGU0
MzlkYjU4M2NkOGRlMjIwNDRkZjk0M2I4YjAxMWI2MDg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcApAQCAtNDIs
NiArNDIsNyBAQAogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3Ry
eS5oIgogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3VwcG9y
dC5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCkBAIC03Nyw3ICs3OCw3IEBAIENsaXBib2Fy
ZENocm9taXVtOjpDbGlwYm9hcmRDaHJvbWl1bShDbGlwYm9hcmRUeXBlIGNsaXBib2FyZFR5cGUs
CiAgICAgOiBDbGlwYm9hcmQocG9saWN5LCBjbGlwYm9hcmRUeXBlKQogICAgICwgbV9kYXRhT2Jq
ZWN0KGRhdGFPYmplY3QpCiAgICAgLCBtX2ZyYW1lKGZyYW1lKQotICAgICwgbV9vcmlnaW5hbFNl
cXVlbmNlTnVtYmVyKG1fZGF0YU9iamVjdC0+Z2V0U2VxdWVuY2VOdW1iZXIoKSkKKyAgICAsIG1f
b3JpZ2luYWxTZXF1ZW5jZU51bWJlcihQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZEdldFNlcXVl
bmNlTnVtYmVyKGN1cnJlbnRQYXN0ZWJvYXJkQnVmZmVyKCkpKQogewogfQogCkBAIC0xMTEsNyAr
MTEyLDcgQEAgU3RyaW5nIENsaXBib2FyZENocm9taXVtOjpnZXREYXRhKGNvbnN0IFN0cmluZyYg
dHlwZSwgYm9vbCYgc3VjY2VzcykgY29uc3QKICAgICBpZiAocG9saWN5KCkgIT0gQ2xpcGJvYXJk
UmVhZGFibGUgfHwgIW1fZGF0YU9iamVjdCkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0g
ICAgaWYgKHBsYXRmb3JtQ2xpcGJvYXJkQ2hhbmdlZCgpKQorICAgIGlmIChpc0ZvckNvcHlBbmRQ
YXN0ZSgpICYmIHBsYXRmb3JtQ2xpcGJvYXJkQ2hhbmdlZCgpKQogICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CiAKICAgICByZXR1cm4gbV9kYXRhT2JqZWN0LT5nZXREYXRhKG5vcm1hbGl6ZVR5cGUo
dHlwZSksIHN1Y2Nlc3MpOwpAQCAtMTI3LDcgKzEyOCw3IEBAIGJvb2wgQ2xpcGJvYXJkQ2hyb21p
dW06OnNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpCiAKIGJv
b2wgQ2xpcGJvYXJkQ2hyb21pdW06OnBsYXRmb3JtQ2xpcGJvYXJkQ2hhbmdlZCgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fZGF0YU9iamVjdC0+Z2V0U2VxdWVuY2VOdW1iZXIoKSAhPSBtX29yaWdp
bmFsU2VxdWVuY2VOdW1iZXI7CisgICAgcmV0dXJuIFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJk
R2V0U2VxdWVuY2VOdW1iZXIoY3VycmVudFBhc3RlYm9hcmRCdWZmZXIoKSkgIT0gbV9vcmlnaW5h
bFNlcXVlbmNlTnVtYmVyOwogfQogCiAvLyBleHRlbnNpb25zIGJleW9uZCBJRSdzIEFQSQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkVXRpbGl0
aWVzQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJv
YXJkVXRpbGl0aWVzQ2hyb21pdW0uY3BwCmluZGV4IGIwNjgwYWMzY2M1ZWJhM2ZkZTkwYzgzMGEz
ZDQyN2E2ODEzYTY0MDYuLjQ3NTcyYzViODhjMzA0YTNmNGI3YjEzMmQyNDMzNzVlMDZlMGNiY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZFV0
aWxpdGllc0Nocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DbGlwYm9hcmRVdGlsaXRpZXNDaHJvbWl1bS5jcHAKQEAgLTMyLDEwICszMiwxOCBAQAogI2lu
Y2x1ZGUgIkNsaXBib2FyZFV0aWxpdGllc0Nocm9taXVtLmgiCiAKICNpbmNsdWRlICJLVVJMLmgi
CisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorUGFzdGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEJ1ZmZl
ciBjdXJyZW50UGFzdGVib2FyZEJ1ZmZlcigpCit7CisgICAgcmV0dXJuIFBhc3RlYm9hcmQ6Omdl
bmVyYWxQYXN0ZWJvYXJkKCktPmlzU2VsZWN0aW9uTW9kZSgpID8KKyAgICAgICAgUGFzdGVib2Fy
ZFByaXZhdGU6OlNlbGVjdGlvbkJ1ZmZlciA6CisgICAgICAgIFBhc3RlYm9hcmRQcml2YXRlOjpT
dGFuZGFyZEJ1ZmZlcjsKK30KKwogI2lmIE9TKFdJTkRPV1MpCiB2b2lkIHJlcGxhY2VOZXdsaW5l
c1dpdGhXaW5kb3dzU3R5bGVOZXdsaW5lcyhTdHJpbmcmIHN0cikKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZFV0aWxpdGllc0Nocm9taXVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRVdGlsaXRpZXND
aHJvbWl1bS5oCmluZGV4IDNlNmY5MmE3NWMyYWJhMWY4MTZiOGM2YTdjMjFmNmJjZWRkZjkyYzYu
LjdhZTUwMDQzYTE2Yjk2YjMyMTkyNjk3ZDQwOGIyMzhiNThjMGE1ZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZFV0aWxpdGllc0Nocm9taXVt
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkVXRpbGl0
aWVzQ2hyb21pdW0uaApAQCAtMzEsMTIgKzMxLDE1IEBACiAjaWZuZGVmIENsaXBib2FyZFV0aWxp
dGllc0Nocm9taXVtX2gKICNkZWZpbmUgQ2xpcGJvYXJkVXRpbGl0aWVzQ2hyb21pdW1faAogCisj
aW5jbHVkZSAiUGFzdGVib2FyZFByaXZhdGUuaCIKKwogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgS1VSTDsKIAorUGFzdGVib2FyZFByaXZh
dGU6OkNsaXBib2FyZEJ1ZmZlciBjdXJyZW50UGFzdGVib2FyZEJ1ZmZlcigpOwogI2lmIE9TKFdJ
TkRPV1MpCiB2b2lkIHJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dzU3R5bGVOZXdsaW5lcyhTdHJp
bmcmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5jcHAKaW5kZXggYzExNGZmNWI3YTYz
YmMxODRhNDQ1ZjQwNDZhYTgwMjY1MzA4MTQ5YS4uYTc5YWU4NWViYzMzY2FmZDYxZTYyMWEwYWQ3
NjExZWY3NzAwOWRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkQ2hyb21pdW0u
aCIKICNpbmNsdWRlICJDbGlwYm9hcmRNaW1lVHlwZXMuaCIKKyNpbmNsdWRlICJDbGlwYm9hcmRV
dGlsaXRpZXNDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3VwcG9ydC5oIgogI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0cmluZ0NhbGxiYWNrLmgiCkBAIC04MCwy
NSArODEsMjUgQEAgdm9pZCBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmdldEFzU3RyaW5nKFBh
c3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IGNhbGxiYWNrKQogICAgICAgICB8fCBraW5kKCkgIT0g
a2luZFN0cmluZykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHN0YXRpY19jYXN0PENsaXBi
b2FyZENocm9taXVtKj4ob3duZXIoKSktPnBsYXRmb3JtQ2xpcGJvYXJkQ2hhbmdlZCgpKQotICAg
ICAgICByZXR1cm47Ci0KICAgICBpZiAobV9zb3VyY2UgPT0gSW50ZXJuYWxTb3VyY2UpIHsKICAg
ICAgICAgY2FsbGJhY2stPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LCBtX2RhdGEpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUKG1fc291cmNlID09IFBhc3RlYm9hcmRT
b3VyY2UpOworICAgIGlmIChzdGF0aWNfY2FzdDxDbGlwYm9hcmRDaHJvbWl1bSo+KG93bmVyKCkp
LT5wbGF0Zm9ybUNsaXBib2FyZENoYW5nZWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8g
VGhpcyBpcyB1Z2x5IGJ1dCB0aGVyZSdzIG5vIHJlYWwgYWx0ZXJuYXRpdmUuCiAgICAgaWYgKHR5
cGUoKSA9PSBtaW1lVHlwZVRleHRQbGFpbikgewotICAgICAgICBjYWxsYmFjay0+c2NoZWR1bGVD
YWxsYmFjayhtX2NvbnRleHQsIFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJkUmVhZFBsYWluVGV4
dChQYXN0ZWJvYXJkUHJpdmF0ZTo6U3RhbmRhcmRCdWZmZXIpKTsKKyAgICAgICAgY2FsbGJhY2st
PnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LCBQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFJl
YWRQbGFpblRleHQoY3VycmVudFBhc3RlYm9hcmRCdWZmZXIoKSkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIGlmICh0eXBlKCkgPT0gbWltZVR5cGVUZXh0SFRNTCkgewogICAgICAgICBT
dHJpbmcgaHRtbDsKICAgICAgICAgS1VSTCBpZ25vcmVkU291cmNlVVJMOwogICAgICAgICB1bnNp
Z25lZCBpZ25vcmVkOwotICAgICAgICBQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFJlYWRIVE1M
KFBhc3RlYm9hcmRQcml2YXRlOjpTdGFuZGFyZEJ1ZmZlciwgJmh0bWwsICZpZ25vcmVkU291cmNl
VVJMLCAmaWdub3JlZCwgJmlnbm9yZWQpOworICAgICAgICBQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBi
b2FyZFJlYWRIVE1MKGN1cnJlbnRQYXN0ZWJvYXJkQnVmZmVyKCksICZodG1sLCAmaWdub3JlZFNv
dXJjZVVSTCwgJmlnbm9yZWQsICZpZ25vcmVkKTsKICAgICAgICAgY2FsbGJhY2stPnNjaGVkdWxl
Q2FsbGJhY2sobV9jb250ZXh0LCBodG1sKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgKaW5k
ZXggNzI1NzAxMTMxZGY5MDE5N2EwYTRhNGQ0YzE5MDFmYTVlYWQ1ZDI4MC4uNWJhMmMwZjQwNDk1
MzlmZTg5ODJhNmIwNTc3YWNjNzVkMzJhMTk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIGNhY2hlTWV0YWRhdGEoY29uc3QgS1VSTCYsIGRvdWJsZSBy
ZXNwb25zZVRpbWUsIGNvbnN0IFZlY3RvcjxjaGFyPiYpOwogCiAgICAgLy8gQ2xpcGJvYXJkIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LSAgICBzdGF0aWMgdWludDY0X3QgY2xpcGJvYXJkR2V0U2VxdWVuY2VOdW1iZXIoKTsKKyAgICBz
dGF0aWMgdWludDY0X3QgY2xpcGJvYXJkR2V0U2VxdWVuY2VOdW1iZXIoUGFzdGVib2FyZFByaXZh
dGU6OkNsaXBib2FyZEJ1ZmZlcik7CiAKICAgICBzdGF0aWMgYm9vbCBjbGlwYm9hcmRJc0Zvcm1h
dEF2YWlsYWJsZShQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkRm9ybWF0LCBQYXN0ZWJvYXJk
UHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyKTsKICAgICBzdGF0aWMgSGFzaFNldDxTdHJpbmc+IGNs
aXBib2FyZFJlYWRBdmFpbGFibGVUeXBlcyhQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVm
ZmVyLCBib29sKiBjb250YWluc0ZpbGVuYW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJDbGlwYm9hcmQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkNsaXBib2FyZC5oCmluZGV4IDYyNDQ3MTM2NTRiNDk2OWQ4ZWE5NGU2MjNhZmI0
MDVkYTczNzExZWEuLjNkOTNkOTk0Mzg3YmIwYjhmZTQxMDFmYjNlNThkOTZlMDk2YjZiYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNsaXBib2FyZC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNsaXBib2FyZC5oCkBAIC02Miw3
ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFJldHVybnMgYW4gaWRlbnRpZmllciB3aGljaCBj
YW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgZGF0YQogICAgIC8vIGNvbnRhaW5l
ZCB3aXRoaW4gdGhlIGNsaXBib2FyZCBoYXMgY2hhbmdlZC4KLSAgICB2aXJ0dWFsIHVpbnQ2NCBn
ZXRTZXF1ZW5jZU51bWJlcigpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHVpbnQ2NCBzZXF1
ZW5jZU51bWJlcihCdWZmZXIpIHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0Zv
cm1hdEF2YWlsYWJsZShGb3JtYXQsIEJ1ZmZlcikgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKaW5kZXggMmYyYzJh
N2VjYzIwOWZkNDRjZTNmOTU4MWZjNGNmZTAyMDM1YjJhMi4uMDNlMzk5Y2RhMTk4ZWNlMTU5MTgy
Y2M2ZjdmOGU2ZWEyNzI4ZWM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvUGxhdGZvcm1TdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Q
bGF0Zm9ybVN1cHBvcnQuY3BwCkBAIC0xNTAsOSArMTUwLDEwIEBAIHZvaWQgUGxhdGZvcm1TdXBw
b3J0OjpjYWNoZU1ldGFkYXRhKGNvbnN0IEtVUkwmIHVybCwgZG91YmxlIHJlc3BvbnNlVGltZSwg
Y29uc3QKIAogLy8gQ2xpcGJvYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi11aW50NjRfdCBQbGF0Zm9ybVN1cHBv
cnQ6OmNsaXBib2FyZEdldFNlcXVlbmNlTnVtYmVyKCkKK3VpbnQ2NF90IFBsYXRmb3JtU3VwcG9y
dDo6Y2xpcGJvYXJkR2V0U2VxdWVuY2VOdW1iZXIoUGFzdGVib2FyZFByaXZhdGU6OkNsaXBib2Fy
ZEJ1ZmZlciBidWZmZXIpCiB7Ci0gICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5j
bGlwYm9hcmQoKS0+Z2V0U2VxdWVuY2VOdW1iZXIoKTsKKyAgICByZXR1cm4gd2ViS2l0UGxhdGZv
cm1TdXBwb3J0KCktPmNsaXBib2FyZCgpLT5zZXF1ZW5jZU51bWJlcigKKyAgICAgICAgc3RhdGlj
X2Nhc3Q8V2ViQ2xpcGJvYXJkOjpCdWZmZXI+KGJ1ZmZlcikpOwogfQogCiBib29sIFBsYXRmb3Jt
U3VwcG9ydDo6Y2xpcGJvYXJkSXNGb3JtYXRBdmFpbGFibGUoCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116154</attachid>
            <date>2011-11-21 16:11:29 -0800</date>
            <delta_ts>2011-11-22 16:57:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72056-20111121161128.patch</filename>
            <type>text/plain</type>
            <size>14074</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNjNGRkZGUyYjcxYWU3
MjRhYWMyODllZDJlN2ExYmEzOTI1ZjgxOS4uYjlkYmI1OGMyOWRhY2I1Nzk4MWE1OTNmMjA4MGZh
ODk4YjcxZmZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDExLTExLTIxICBEYW5p
ZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRml4
IHBsdW1iaW5nIGZvciBkaWZmZXJlbnRpYXRpbmcgYmV0d2VlbiBjbGlwYm9hcmQvc2VsZWN0aW9u
IHBhc3Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcyMDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGEgYnVmZmVyIHBhcmFtZXRlciB3aGVuIHJldHJpZXZpbmcgdGhlIGNsaXBib2FyZCBzZXF1
ZW5jZSBudW1iZXIgYW5kIGZpeCBzZXZlcmFsIGNhbGwKKyAgICAgICAgc2l0ZXMgdGhhdCBpbmNv
cnJlY3RseSBhc3N1bWUgdXNlIG9mIHRoZSBzdGFuZGFyZCBidWZmZXIgaW4gcGFzdGVzLgorCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6dHlwZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpnZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
aXVtRGF0YU9iamVjdDo6Y29udGFpbnNGaWxlbmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L0NsaXBib2FyZENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZENocm9t
aXVtOjpDbGlwYm9hcmRDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJv
bWl1bTo6Z2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6cGxh
dGZvcm1DbGlwYm9hcmRDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlw
Ym9hcmRVdGlsaXRpZXNDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjdXJyZW50UGFz
dGVib2FyZEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkVXRp
bGl0aWVzQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUNo
cm9taXVtOjpnZXRBc1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZv
cm1TdXBwb3J0Lmg6CisKIDIwMTEtMTEtMjEgIFJha2VzaCBLTiAgPHJha2VzaC5rbkBtb3Rvcm9s
YS5jb20+CiAKICAgICAgICAgTmVlZCBzdXBwb3J0IGZvciBkaXJuYW1lIGF0dHJpYnV0ZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmMDdjZTVjMjk5ZGJkYTRiMTMyMWZmMjc2YjY4YjMx
MWJiODFkZDE0Li5jYTNiNzgyYjUyODZkNzU4ODFkZjgwNzVmOTVhN2EzNTg5ZDQyYWJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTExLTIxICBEYW5p
ZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRml4
IHBsdW1iaW5nIGZvciBkaWZmZXJlbnRpYXRpbmcgYmV0d2VlbiBjbGlwYm9hcmQvc2VsZWN0aW9u
IHBhc3Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcyMDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGEgYnVmZmVyIHBhcmFtZXRlciB3aGVuIHJldHJpZXZpbmcgdGhlIGNsaXBib2FyZCBzZXF1
ZW5jZSBudW1iZXIuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViQ2xpcGJvYXJkLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYkNsaXBib2FyZDo6c2VxdWVuY2VOdW1iZXIpOgorICAgICAgICAqIHNyYy9Q
bGF0Zm9ybVN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0Ojpj
bGlwYm9hcmRTZXF1ZW5jZU51bWJlcik6CisKIDIwMTEtMTEtMjEgIEphbWVzIFJvYmluc29uICA8
amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEZpeCB0aWxlciBpbml0
aWFsaXphdGlvbiBpbiBUaWxlZExheWVyQ2hyb21pdW1UZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcAppbmRleCBm
Y2Q2N2UzOTkyOThiMjUyOGExZDQwNjcxNTBlOTRlYTYwYTMzYmUzLi5mOTk5YzEzMWQ5MmIxMTA1
MzM1ZWMyZGUxYWVlY2IwM2IwYzUzZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJDaHJvbWl1bURhdGFPYmplY3QuaCIKIAogI2luY2x1ZGUgIkNsaXBib2Fy
ZE1pbWVUeXBlcy5oIgorI2luY2x1ZGUgIkNsaXBib2FyZFV0aWxpdGllc0Nocm9taXVtLmgiCiAj
aW5jbHVkZSAiUGFzdGVib2FyZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3VwcG9ydC5oIgogCkBA
IC0xMDMsOCArMTA0LDggQEAgSGFzaFNldDxTdHJpbmc+IENocm9taXVtRGF0YU9iamVjdDo6dHlw
ZXMoKSBjb25zdAogewogICAgIGlmIChtX3N0b3JhZ2VNb2RlID09IFBhc3RlYm9hcmQpIHsKICAg
ICAgICAgYm9vbCBpZ25vcmVkQ29udGFpbnNGaWxlbmFtZXM7Ci0gICAgICAgIHJldHVybiBQbGF0
Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFJlYWRBdmFpbGFibGVUeXBlcyhQYXN0ZWJvYXJkUHJpdmF0
ZTo6U3RhbmRhcmRCdWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZpZ25vcmVkQ29udGFpbnNGaWxlbmFtZXMpOworICAgICAg
ICByZXR1cm4gUGxhdGZvcm1TdXBwb3J0OjpjbGlwYm9hcmRSZWFkQXZhaWxhYmxlVHlwZXMoY3Vy
cmVudFBhc3RlYm9hcmRCdWZmZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpZ25vcmVkQ29udGFpbnNGaWxlbmFtZXMpOwog
ICAgIH0KIAogICAgIEhhc2hTZXQ8U3RyaW5nPiByZXN1bHRzOwpAQCAtMTMwLDExICsxMzEsNyBA
QCBTdHJpbmcgQ2hyb21pdW1EYXRhT2JqZWN0OjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwg
Ym9vbCYgc3VjY2VzcykKIHsKICAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRQbGFpbikgewog
ICAgICAgICBpZiAobV9zdG9yYWdlTW9kZSA9PSBQYXN0ZWJvYXJkKSB7Ci0gICAgICAgICAgICBQ
YXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyIGJ1ZmZlciA9Ci0gICAgICAgICAgICAg
ICAgUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKS0+aXNTZWxlY3Rpb25Nb2RlKCkgPwot
ICAgICAgICAgICAgICAgIFBhc3RlYm9hcmRQcml2YXRlOjpTZWxlY3Rpb25CdWZmZXIgOgotICAg
ICAgICAgICAgICAgIFBhc3RlYm9hcmRQcml2YXRlOjpTdGFuZGFyZEJ1ZmZlcjsKLSAgICAgICAg
ICAgIFN0cmluZyB0ZXh0ID0gUGxhdGZvcm1TdXBwb3J0OjpjbGlwYm9hcmRSZWFkUGxhaW5UZXh0
KGJ1ZmZlcik7CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IFBsYXRmb3JtU3VwcG9ydDo6Y2xp
cGJvYXJkUmVhZFBsYWluVGV4dChjdXJyZW50UGFzdGVib2FyZEJ1ZmZlcigpKTsKICAgICAgICAg
ICAgIHN1Y2Nlc3MgPSAhdGV4dC5pc0VtcHR5KCk7CiAgICAgICAgICAgICByZXR1cm4gdGV4dDsK
ICAgICAgICAgfQpAQCAtMTU0LDE0ICsxNTEsMTAgQEAgU3RyaW5nIENocm9taXVtRGF0YU9iamVj
dDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpCiAKICAgICBpZiAo
dHlwZSA9PSBtaW1lVHlwZVRleHRIVE1MKSB7CiAgICAgICAgIGlmIChtX3N0b3JhZ2VNb2RlID09
IFBhc3RlYm9hcmQpIHsKLSAgICAgICAgICAgIFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9hcmRC
dWZmZXIgYnVmZmVyID0KLSAgICAgICAgICAgICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVi
b2FyZCgpLT5pc1NlbGVjdGlvbk1vZGUoKSA/Ci0gICAgICAgICAgICAgICAgUGFzdGVib2FyZFBy
aXZhdGU6OlNlbGVjdGlvbkJ1ZmZlciA6Ci0gICAgICAgICAgICAgICAgUGFzdGVib2FyZFByaXZh
dGU6OlN0YW5kYXJkQnVmZmVyOwogICAgICAgICAgICAgU3RyaW5nIGh0bWxUZXh0OwogICAgICAg
ICAgICAgS1VSTCBzb3VyY2VVUkw7CiAgICAgICAgICAgICB1bnNpZ25lZCBpZ25vcmVkOwotICAg
ICAgICAgICAgUGxhdGZvcm1TdXBwb3J0OjpjbGlwYm9hcmRSZWFkSFRNTChidWZmZXIsICZodG1s
VGV4dCwgJnNvdXJjZVVSTCwgJmlnbm9yZWQsICZpZ25vcmVkKTsKKyAgICAgICAgICAgIFBsYXRm
b3JtU3VwcG9ydDo6Y2xpcGJvYXJkUmVhZEhUTUwoY3VycmVudFBhc3RlYm9hcmRCdWZmZXIoKSwg
Jmh0bWxUZXh0LCAmc291cmNlVVJMLCAmaWdub3JlZCwgJmlnbm9yZWQpOwogICAgICAgICAgICAg
c3VjY2VzcyA9ICFodG1sVGV4dC5pc0VtcHR5KCk7CiAgICAgICAgICAgICByZXR1cm4gaHRtbFRl
eHQ7CiAgICAgICAgIH0KQEAgLTIyNywxOCArMjIwLDEzIEBAIGJvb2wgQ2hyb21pdW1EYXRhT2Jq
ZWN0OjpzZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotdWludDY0X3QgQ2hyb21pdW1EYXRhT2JqZWN0OjpnZXRTZXF1
ZW5jZU51bWJlcigpCi17Ci0gICAgcmV0dXJuIFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJkR2V0
U2VxdWVuY2VOdW1iZXIoKTsKLX0KLQogYm9vbCBDaHJvbWl1bURhdGFPYmplY3Q6OmNvbnRhaW5z
RmlsZW5hbWVzKCkgY29uc3QKIHsKICAgICBib29sIGNvbnRhaW5zRmlsZW5hbWVzOwogICAgIGlm
IChtX3N0b3JhZ2VNb2RlID09IFBhc3RlYm9hcmQpIHsKICAgICAgICAgSGFzaFNldDxTdHJpbmc+
IGlnbm9yZWRSZXN1bHRzID0KLSAgICAgICAgICAgIFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJk
UmVhZEF2YWlsYWJsZVR5cGVzKFBhc3RlYm9hcmRQcml2YXRlOjpTdGFuZGFyZEJ1ZmZlciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNv
bnRhaW5zRmlsZW5hbWVzKTsKKyAgICAgICAgICAgIFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJk
UmVhZEF2YWlsYWJsZVR5cGVzKGN1cnJlbnRQYXN0ZWJvYXJkQnVmZmVyKCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29udGFpbnNG
aWxlbmFtZXMpOwogICAgIH0gZWxzZQogICAgICAgICBjb250YWluc0ZpbGVuYW1lcyA9ICFtX2Zp
bGVuYW1lcy5pc0VtcHR5KCk7CiAgICAgcmV0dXJuIGNvbnRhaW5zRmlsZW5hbWVzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3Qu
aAppbmRleCA4YWE4YmFjODI5NGUzMzZhODAzYTM2NzkzYzYyZmI3NDIyMDY3Mzc2Li5mNzllZjVi
NzVjY2QyZDliYzQxMTFkZmIwMjJiNjNjZmYyYzcwNDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaApAQCAtNzcsNyAr
NzcsNiBAQCBwdWJsaWM6CiAgICAgSGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CiAgICAg
U3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBib29sJiBzdWNjZXNzKTsKICAgICBi
b29sIHNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpOwotICAg
IHVpbnQ2NF90IGdldFNlcXVlbmNlTnVtYmVyKCk7CiAKICAgICAvLyBTcGVjaWFsIGhhbmRsZXJz
IGZvciBVUkwvSFRNTCBtZXRhZGF0YS4KICAgICBTdHJpbmcgdXJsVGl0bGUoKSBjb25zdCB7IHJl
dHVybiBtX3VybFRpdGxlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKaW5kZXggYWZjZWUxZGZiMGM0Mjc1MzJmZDJi
MjYzMDNiN2NmMWM1NzU2NDYzNy4uY2QwYmY3OGNmZmZiYzIzM2EwZDFmYWVhNGFjM2Q3NjIwMTUw
YjczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJv
YXJkQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Ns
aXBib2FyZENocm9taXVtLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkltYWdlLmgi
CiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtU3VwcG9ydC5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5j
bHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CkBAIC03Nyw3ICs3OCw3IEBAIENsaXBib2FyZENocm9taXVtOjpDbGlwYm9hcmRDaHJvbWl1bShD
bGlwYm9hcmRUeXBlIGNsaXBib2FyZFR5cGUsCiAgICAgOiBDbGlwYm9hcmQocG9saWN5LCBjbGlw
Ym9hcmRUeXBlKQogICAgICwgbV9kYXRhT2JqZWN0KGRhdGFPYmplY3QpCiAgICAgLCBtX2ZyYW1l
KGZyYW1lKQotICAgICwgbV9vcmlnaW5hbFNlcXVlbmNlTnVtYmVyKG1fZGF0YU9iamVjdC0+Z2V0
U2VxdWVuY2VOdW1iZXIoKSkKKyAgICAsIG1fb3JpZ2luYWxTZXF1ZW5jZU51bWJlcihQbGF0Zm9y
bVN1cHBvcnQ6OmNsaXBib2FyZFNlcXVlbmNlTnVtYmVyKGN1cnJlbnRQYXN0ZWJvYXJkQnVmZmVy
KCkpKQogewogfQogCkBAIC0xMTEsNyArMTEyLDcgQEAgU3RyaW5nIENsaXBib2FyZENocm9taXVt
OjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3VjY2VzcykgY29uc3QKICAgICBp
ZiAocG9saWN5KCkgIT0gQ2xpcGJvYXJkUmVhZGFibGUgfHwgIW1fZGF0YU9iamVjdCkKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgaWYgKHBsYXRmb3JtQ2xpcGJvYXJkQ2hhbmdlZCgp
KQorICAgIGlmIChpc0ZvckNvcHlBbmRQYXN0ZSgpICYmIHBsYXRmb3JtQ2xpcGJvYXJkQ2hhbmdl
ZCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICByZXR1cm4gbV9kYXRhT2JqZWN0
LT5nZXREYXRhKG5vcm1hbGl6ZVR5cGUodHlwZSksIHN1Y2Nlc3MpOwpAQCAtMTI3LDcgKzEyOCw3
IEBAIGJvb2wgQ2xpcGJvYXJkQ2hyb21pdW06OnNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIGRhdGEpCiAKIGJvb2wgQ2xpcGJvYXJkQ2hyb21pdW06OnBsYXRmb3JtQ2xp
cGJvYXJkQ2hhbmdlZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fZGF0YU9iamVjdC0+Z2V0U2Vx
dWVuY2VOdW1iZXIoKSAhPSBtX29yaWdpbmFsU2VxdWVuY2VOdW1iZXI7CisgICAgcmV0dXJuIFBs
YXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJkU2VxdWVuY2VOdW1iZXIoY3VycmVudFBhc3RlYm9hcmRC
dWZmZXIoKSkgIT0gbV9vcmlnaW5hbFNlcXVlbmNlTnVtYmVyOwogfQogCiAvLyBleHRlbnNpb25z
IGJleW9uZCBJRSdzIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vQ2xpcGJvYXJkVXRpbGl0aWVzQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkVXRpbGl0aWVzQ2hyb21pdW0uY3BwCmluZGV4IGIwNjgw
YWMzY2M1ZWJhM2ZkZTkwYzgzMGEzZDQyN2E2ODEzYTY0MDYuLjQ3NTcyYzViODhjMzA0YTNmNGI3
YjEzMmQyNDMzNzVlMDZlMGNiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0NsaXBib2FyZFV0aWxpdGllc0Nocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRVdGlsaXRpZXNDaHJvbWl1bS5jcHAKQEAg
LTMyLDEwICszMiwxOCBAQAogI2luY2x1ZGUgIkNsaXBib2FyZFV0aWxpdGllc0Nocm9taXVtLmgi
CiAKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorUGFzdGVib2FyZFBy
aXZhdGU6OkNsaXBib2FyZEJ1ZmZlciBjdXJyZW50UGFzdGVib2FyZEJ1ZmZlcigpCit7CisgICAg
cmV0dXJuIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCktPmlzU2VsZWN0aW9uTW9kZSgp
ID8KKyAgICAgICAgUGFzdGVib2FyZFByaXZhdGU6OlNlbGVjdGlvbkJ1ZmZlciA6CisgICAgICAg
IFBhc3RlYm9hcmRQcml2YXRlOjpTdGFuZGFyZEJ1ZmZlcjsKK30KKwogI2lmIE9TKFdJTkRPV1Mp
CiB2b2lkIHJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dzU3R5bGVOZXdsaW5lcyhTdHJpbmcmIHN0
cikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBi
b2FyZFV0aWxpdGllc0Nocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DbGlwYm9hcmRVdGlsaXRpZXNDaHJvbWl1bS5oCmluZGV4IDNlNmY5MmE3NWMyYWJhMWY4MTZi
OGM2YTdjMjFmNmJjZWRkZjkyYzYuLjdhZTUwMDQzYTE2Yjk2YjMyMTkyNjk3ZDQwOGIyMzhiNThj
MGE1ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBi
b2FyZFV0aWxpdGllc0Nocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vQ2xpcGJvYXJkVXRpbGl0aWVzQ2hyb21pdW0uaApAQCAtMzEsMTIgKzMxLDE1IEBACiAj
aWZuZGVmIENsaXBib2FyZFV0aWxpdGllc0Nocm9taXVtX2gKICNkZWZpbmUgQ2xpcGJvYXJkVXRp
bGl0aWVzQ2hyb21pdW1faAogCisjaW5jbHVkZSAiUGFzdGVib2FyZFByaXZhdGUuaCIKKwogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgS1VS
TDsKIAorUGFzdGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEJ1ZmZlciBjdXJyZW50UGFzdGVib2Fy
ZEJ1ZmZlcigpOwogI2lmIE9TKFdJTkRPV1MpCiB2b2lkIHJlcGxhY2VOZXdsaW5lc1dpdGhXaW5k
b3dzU3R5bGVOZXdsaW5lcyhTdHJpbmcmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJvbWl1bS5j
cHAKaW5kZXggYzExNGZmNWI3YTYzYmMxODRhNDQ1ZjQwNDZhYTgwMjY1MzA4MTQ5YS4uYTc5YWU4
NWViYzMzY2FmZDYxZTYyMWEwYWQ3NjExZWY3NzAwOWRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21p
dW0uY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCiAjaW5jbHVk
ZSAiQ2xpcGJvYXJkQ2hyb21pdW0uaCIKICNpbmNsdWRlICJDbGlwYm9hcmRNaW1lVHlwZXMuaCIK
KyNpbmNsdWRlICJDbGlwYm9hcmRVdGlsaXRpZXNDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3VwcG9ydC5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0cmlu
Z0NhbGxiYWNrLmgiCkBAIC04MCwyNSArODEsMjUgQEAgdm9pZCBEYXRhVHJhbnNmZXJJdGVtQ2hy
b21pdW06OmdldEFzU3RyaW5nKFBhc3NSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IGNhbGxiYWNrKQog
ICAgICAgICB8fCBraW5kKCkgIT0ga2luZFN0cmluZykKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKHN0YXRpY19jYXN0PENsaXBib2FyZENocm9taXVtKj4ob3duZXIoKSktPnBsYXRmb3JtQ2xp
cGJvYXJkQ2hhbmdlZCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAobV9zb3VyY2UgPT0g
SW50ZXJuYWxTb3VyY2UpIHsKICAgICAgICAgY2FsbGJhY2stPnNjaGVkdWxlQ2FsbGJhY2sobV9j
b250ZXh0LCBtX2RhdGEpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQVNTRVJUKG1f
c291cmNlID09IFBhc3RlYm9hcmRTb3VyY2UpOworICAgIGlmIChzdGF0aWNfY2FzdDxDbGlwYm9h
cmRDaHJvbWl1bSo+KG93bmVyKCkpLT5wbGF0Zm9ybUNsaXBib2FyZENoYW5nZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgLy8gVGhpcyBpcyB1Z2x5IGJ1dCB0aGVyZSdzIG5vIHJlYWwgYWx0
ZXJuYXRpdmUuCiAgICAgaWYgKHR5cGUoKSA9PSBtaW1lVHlwZVRleHRQbGFpbikgewotICAgICAg
ICBjYWxsYmFjay0+c2NoZWR1bGVDYWxsYmFjayhtX2NvbnRleHQsIFBsYXRmb3JtU3VwcG9ydDo6
Y2xpcGJvYXJkUmVhZFBsYWluVGV4dChQYXN0ZWJvYXJkUHJpdmF0ZTo6U3RhbmRhcmRCdWZmZXIp
KTsKKyAgICAgICAgY2FsbGJhY2stPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LCBQbGF0Zm9y
bVN1cHBvcnQ6OmNsaXBib2FyZFJlYWRQbGFpblRleHQoY3VycmVudFBhc3RlYm9hcmRCdWZmZXIo
KSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICh0eXBlKCkgPT0gbWltZVR5cGVU
ZXh0SFRNTCkgewogICAgICAgICBTdHJpbmcgaHRtbDsKICAgICAgICAgS1VSTCBpZ25vcmVkU291
cmNlVVJMOwogICAgICAgICB1bnNpZ25lZCBpZ25vcmVkOwotICAgICAgICBQbGF0Zm9ybVN1cHBv
cnQ6OmNsaXBib2FyZFJlYWRIVE1MKFBhc3RlYm9hcmRQcml2YXRlOjpTdGFuZGFyZEJ1ZmZlciwg
Jmh0bWwsICZpZ25vcmVkU291cmNlVVJMLCAmaWdub3JlZCwgJmlnbm9yZWQpOworICAgICAgICBQ
bGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFJlYWRIVE1MKGN1cnJlbnRQYXN0ZWJvYXJkQnVmZmVy
KCksICZodG1sLCAmaWdub3JlZFNvdXJjZVVSTCwgJmlnbm9yZWQsICZpZ25vcmVkKTsKICAgICAg
ICAgY2FsbGJhY2stPnNjaGVkdWxlQ2FsbGJhY2sobV9jb250ZXh0LCBodG1sKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1BsYXRmb3JtU3VwcG9ydC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UGxhdGZvcm1TdXBwb3J0LmgKaW5kZXggYThhNDJjMDRiMjM3NzBlMjdmYTQ3MmVkODQ1N2Y5NTZm
MmFlOGJhYi4uM2UzOTkwNWY0MzA5ZjgxNDgyZmQ1MDM2ZmQwYjgzMjNiOGYxODQ0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgK
QEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNhY2hlTWV0YWRhdGEo
Y29uc3QgS1VSTCYsIGRvdWJsZSByZXNwb25zZVRpbWUsIGNvbnN0IFZlY3RvcjxjaGFyPiYpOwog
CiAgICAgLy8gQ2xpcGJvYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBzdGF0aWMgdWludDY0X3QgY2xpcGJvYXJkR2V0U2Vx
dWVuY2VOdW1iZXIoKTsKKyAgICBzdGF0aWMgdWludDY0X3QgY2xpcGJvYXJkU2VxdWVuY2VOdW1i
ZXIoUGFzdGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEJ1ZmZlcik7CiAKICAgICBzdGF0aWMgYm9v
bCBjbGlwYm9hcmRJc0Zvcm1hdEF2YWlsYWJsZShQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJk
Rm9ybWF0LCBQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyKTsKICAgICBzdGF0aWMg
SGFzaFNldDxTdHJpbmc+IGNsaXBib2FyZFJlYWRBdmFpbGFibGVUeXBlcyhQYXN0ZWJvYXJkUHJp
dmF0ZTo6Q2xpcGJvYXJkQnVmZmVyLCBib29sKiBjb250YWluc0ZpbGVuYW1lcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDbGlwYm9hcmQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNsaXBib2FyZC5oCmluZGV4IDNmMmQzMzc1MTJi
NzNhYjZlM2FlNDMwNTRlOTAwYzFmMzYyODYzZTguLjBmYzg4MDhiNDI3NDc3ZDkwMTg0OTY4OGMz
MDkyNzA3MDZhYzJjZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkNsaXBib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNs
aXBib2FyZC5oCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFJldHVybnMgYW4g
aWRlbnRpZmllciB3aGljaCBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgZGF0
YQogICAgIC8vIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGNsaXBib2FyZCBoYXMgY2hhbmdlZC4KLSAg
ICB2aXJ0dWFsIHVpbnQ2NCBnZXRTZXF1ZW5jZU51bWJlcigpIHsgcmV0dXJuIDA7IH0KKyAgICB2
aXJ0dWFsIHVpbnQ2NCBzZXF1ZW5jZU51bWJlcihCdWZmZXIpIHsgcmV0dXJuIDA7IH0KIAogICAg
IHZpcnR1YWwgYm9vbCBpc0Zvcm1hdEF2YWlsYWJsZShGb3JtYXQsIEJ1ZmZlcikgeyByZXR1cm4g
ZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZv
cm1TdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9y
dC5jcHAKaW5kZXggZTA1OGE5MzY0NzFlMjI3Zjc0NWU4YzMzMDM5YWViM2E3NzM1MzhhMS4uOWU5
YjM5ODkwNmYzMGUwNWMzMmM2ZTc3ZWExNmM4NzJkMmU0YTIyNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCkBAIC0xNTEsOSArMTUxLDEwIEBA
IHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpjYWNoZU1ldGFkYXRhKGNvbnN0IEtVUkwmIHVybCwgZG91
YmxlIHJlc3BvbnNlVGltZSwgY29uc3QKIAogLy8gQ2xpcGJvYXJkIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi11aW50
NjRfdCBQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZEdldFNlcXVlbmNlTnVtYmVyKCkKK3VpbnQ2
NF90IFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJkU2VxdWVuY2VOdW1iZXIoUGFzdGVib2FyZFBy
aXZhdGU6OkNsaXBib2FyZEJ1ZmZlciBidWZmZXIpCiB7Ci0gICAgcmV0dXJuIHdlYktpdFBsYXRm
b3JtU3VwcG9ydCgpLT5jbGlwYm9hcmQoKS0+Z2V0U2VxdWVuY2VOdW1iZXIoKTsKKyAgICByZXR1
cm4gd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNsaXBib2FyZCgpLT5zZXF1ZW5jZU51bWJlcigK
KyAgICAgICAgc3RhdGljX2Nhc3Q8V2ViQ2xpcGJvYXJkOjpCdWZmZXI+KGJ1ZmZlcikpOwogfQog
CiBib29sIFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJkSXNGb3JtYXRBdmFpbGFibGUoCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>