<?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>144232</bug_id>
          
          <creation_ts>2015-04-26 11:35:31 -0700</creation_ts>
          <short_desc>Switch to std::function&lt;&gt;, std::bind() in MediaPlayerPrivateAVFoundationObjC</short_desc>
          <delta_ts>2015-04-29 06:14:20 -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>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="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1088799</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-04-26 11:35:31 -0700</bug_when>
    <thetext>Switch to std::function&lt;&gt;, std::bind() in MediaPlayerPrivateAVFoundationObjC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088800</commentid>
    <comment_count>1</comment_count>
      <attachid>251701</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-04-26 11:37:30 -0700</bug_when>
    <thetext>Created attachment 251701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088804</commentid>
    <comment_count>2</comment_count>
      <attachid>251701</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-26 11:55:37 -0700</bug_when>
    <thetext>Comment on attachment 251701
Patch

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

OK. I did a version of this that uses lambdas, but I guess this is more elegant.

r=me, only if you fix the problem with setAsset

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:3189
&gt; +    std::function&lt;void()&gt; function;

I think we decided to standardize on void () with the space. Anders did a patch recently about making this consistent.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:3221
&gt; -            function = WTF::bind(&amp;MediaPlayerPrivateAVFoundationObjC::setAsset, m_callback, RetainPtr&lt;NSArray&gt;(newValue));
&gt; +            function = std::bind(&amp;MediaPlayerPrivateAVFoundationObjC::setAsset, m_callback, newValue);

This introduces a bug. Nothing will retain/release the value and it could be deallocated by the time it runs on the main thread. Need to cast to some kind of RetainPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089424</commentid>
    <comment_count>3</comment_count>
      <attachid>251827</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-04-27 23:50:00 -0700</bug_when>
    <thetext>Created attachment 251827
Patch

Uses RetainPtr&lt;id&gt; for ::setAsset().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089425</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-27 23:51:41 -0700</bug_when>
    <thetext>Attachment 251827 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:3198:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089976</commentid>
    <comment_count>5</comment_count>
      <attachid>251827</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-04-29 06:14:13 -0700</bug_when>
    <thetext>Comment on attachment 251827
Patch

Clearing flags on attachment: 251827

Committed r183544: &lt;http://trac.webkit.org/changeset/183544&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089977</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-04-29 06:14:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251701</attachid>
            <date>2015-04-26 11:37:30 -0700</date>
            <delta_ts>2015-04-27 23:49:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144232-20150426203621.patch</filename>
            <type>text/plain</type>
            <size>9811</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjkzN2E5NWUwYjE3NGI5
MjI3Y2MyYTdiMmNkNjBlZDAwOWQ2NzhjNi4uYjJiNDNkMDRhYTE0NmVhZDMzNmE5NzA2OGU2YWY5
NTY2MzAyNmI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA0LTI2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBTd2l0Y2ggdG8gc3Rk
OjpmdW5jdGlvbjw+LCBzdGQ6OmJpbmQoKSBpbiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDQyMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgICgtW1dlYkNvcmVBVkZNb3ZpZU9ic2VydmVyIG9i
c2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6IAorICAgICAg
ICBSZXBsYWNlIHVzZXMgb2YgV1RGOjpGdW5jdGlvbjw+IGFuZCBXVEY6OmJpbmQoKSB3aXRoIHRo
ZSBTVEwgYWx0ZXJuYXRpdmVzLgorCiAyMDE1LTA0LTI1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlZCBleHBlY3RlZCBiaW5kaW5ncyBnZW5lcmF0aW9u
IHRlc3QgcmVzdWx0cyBhZnRlciByMTgzMzQzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
ZDNlNDk5NGVjMTc3MGUxZmI4ZDJlNmFmZTllODNmYTg1ZTRiOTBhYi4uODA1ZTYzYjczYjQxYmZm
MGQ5ZGQ3ZTIyYjY1YTZkZjJkMjFhNzgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC02
MSw2ICs2MSw3IEBACiAjaW1wb3J0ICJXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBv
cnQgIldlYkNvcmVDQUxheWVyRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLmgiCisjaW1wb3J0IDxmdW5jdGlvbmFsPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAj
aW1wb3J0IDxydW50aW1lL0RhdGFWaWV3Lmg+CiAjaW1wb3J0IDxydW50aW1lL0pTQ0lubGluZXMu
aD4KQEAgLTY5LDcgKzcwLDYgQEAKICNpbXBvcnQgPHJ1bnRpbWUvVWludDMyQXJyYXkuaD4KICNp
bXBvcnQgPHJ1bnRpbWUvVWludDhBcnJheS5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+
Ci0jaW1wb3J0IDx3dGYvRnVuY3Rpb25hbC5oPgogI2ltcG9ydCA8d3RmL0xpc3RIYXNoU2V0Lmg+
CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KQEAgLTMxODYsNzQgKzMxODYsNzQgQEAgTlNBcnJheSogcGxheWVyS1ZPUHJvcGVydGll
cygpCiAgICAgfQogI2VuZGlmCiAKLSAgICBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9u
OworICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbjsKIAogICAgIGlmIChjb250ZXh0
ID09IE1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25Db250ZXh0QVZQbGF5ZXJMYXll
cikgewogICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAicmVhZHlGb3JEaXNw
bGF5Il0pCi0gICAgICAgICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Zmlyc3RGcmFtZUF2YWlsYWJsZURpZENoYW5nZSwgbV9jYWxs
YmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1ZV0pOworICAgICAgICAgICAgZnVuY3Rpb24gPSBzdGQ6
OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmZpcnN0RnJhbWVBdmFp
bGFibGVEaWRDaGFuZ2UsIG1fY2FsbGJhY2ssIFtuZXdWYWx1ZSBib29sVmFsdWVdKTsKICAgICB9
CiAKICAgICBpZiAoY29udGV4dCA9PSBNZWRpYVBsYXllckFWRm91bmRhdGlvbk9ic2VydmF0aW9u
Q29udGV4dFBsYXllckl0ZW1UcmFjaykgewogICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRv
U3RyaW5nOkAiZW5hYmxlZCJdKQotICAgICAgICAgICAgZnVuY3Rpb24gPSBXVEY6OmJpbmQoJk1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnRyYWNrRW5hYmxlZERpZENoYW5nZSwg
bV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1ZV0pOworICAgICAgICAgICAgZnVuY3Rpb24g
PSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnRyYWNrRW5h
YmxlZERpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1ZV0pOwogICAgIH0K
IAogICAgIGlmIChjb250ZXh0ID09IE1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25D
b250ZXh0UGxheWVySXRlbSAmJiB3aWxsQ2hhbmdlKSB7CiAgICAgICAgIGlmIChba2V5UGF0aCBp
c0VxdWFsVG9TdHJpbmc6QCJwbGF5YmFja0xpa2VseVRvS2VlcFVwIl0pCi0gICAgICAgICAgICBm
dW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cGxheWJhY2tMaWtlbHlUb0tlZXBVcFdpbGxDaGFuZ2UsIG1fY2FsbGJhY2spOworICAgICAgICAg
ICAgZnVuY3Rpb24gPSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBsYXliYWNrTGlrZWx5VG9LZWVwVXBXaWxsQ2hhbmdlLCBtX2NhbGxiYWNrKTsKICAgICAg
ICAgZWxzZSBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAicGxheWJhY2tCdWZmZXJFbXB0
eSJdKQotICAgICAgICAgICAgZnVuY3Rpb24gPSBXVEY6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBsYXliYWNrQnVmZmVyRW1wdHlXaWxsQ2hhbmdlLCBtX2NhbGxi
YWNrKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uID0gc3RkOjpiaW5kKCZNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpwbGF5YmFja0J1ZmZlckVtcHR5V2lsbENoYW5nZSwgbV9jYWxs
YmFjayk7CiAgICAgICAgIGVsc2UgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAInBsYXli
YWNrQnVmZmVyRnVsbCJdKQotICAgICAgICAgICAgZnVuY3Rpb24gPSBXVEY6OmJpbmQoJk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXliYWNrQnVmZmVyRnVsbFdpbGxDaGFu
Z2UsIG1fY2FsbGJhY2spOworICAgICAgICAgICAgZnVuY3Rpb24gPSBzdGQ6OmJpbmQoJk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXliYWNrQnVmZmVyRnVsbFdpbGxDaGFu
Z2UsIG1fY2FsbGJhY2spOwogICAgIH0KIAogICAgIGlmIChjb250ZXh0ID09IE1lZGlhUGxheWVy
QVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25Db250ZXh0UGxheWVySXRlbSAmJiAhd2lsbENoYW5nZSkg
ewogICAgICAgICAvLyBBIHZhbHVlIGNoYW5nZWQgZm9yIGFuIEFWUGxheWVySXRlbQogICAgICAg
ICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAic3RhdHVzIl0pCi0gICAgICAgICAgICBm
dW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
cGxheWVySXRlbVN0YXR1c0RpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGludFZhbHVl
XSk7CisgICAgICAgICAgICBmdW5jdGlvbiA9IHN0ZDo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cGxheWVySXRlbVN0YXR1c0RpZENoYW5nZSwgbV9jYWxsYmFjaywg
W25ld1ZhbHVlIGludFZhbHVlXSk7CiAgICAgICAgIGVsc2UgaWYgKFtrZXlQYXRoIGlzRXF1YWxU
b1N0cmluZzpAInBsYXliYWNrTGlrZWx5VG9LZWVwVXAiXSkKLSAgICAgICAgICAgIGZ1bmN0aW9u
ID0gV1RGOjpiaW5kKCZNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF5YmFj
a0xpa2VseVRvS2VlcFVwRGlkQ2hhbmdlLCBtX2NhbGxiYWNrLCBbbmV3VmFsdWUgYm9vbFZhbHVl
XSk7CisgICAgICAgICAgICBmdW5jdGlvbiA9IHN0ZDo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cGxheWJhY2tMaWtlbHlUb0tlZXBVcERpZENoYW5nZSwgbV9jYWxs
YmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1ZV0pOwogICAgICAgICBlbHNlIGlmIChba2V5UGF0aCBp
c0VxdWFsVG9TdHJpbmc6QCJwbGF5YmFja0J1ZmZlckVtcHR5Il0pCi0gICAgICAgICAgICBmdW5j
dGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxh
eWJhY2tCdWZmZXJFbXB0eURpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1
ZV0pOworICAgICAgICAgICAgZnVuY3Rpb24gPSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBsYXliYWNrQnVmZmVyRW1wdHlEaWRDaGFuZ2UsIG1fY2FsbGJh
Y2ssIFtuZXdWYWx1ZSBib29sVmFsdWVdKTsKICAgICAgICAgZWxzZSBpZiAoW2tleVBhdGggaXNF
cXVhbFRvU3RyaW5nOkAicGxheWJhY2tCdWZmZXJGdWxsIl0pCi0gICAgICAgICAgICBmdW5jdGlv
biA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxheWJh
Y2tCdWZmZXJGdWxsRGlkQ2hhbmdlLCBtX2NhbGxiYWNrLCBbbmV3VmFsdWUgYm9vbFZhbHVlXSk7
CisgICAgICAgICAgICBmdW5jdGlvbiA9IHN0ZDo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6cGxheWJhY2tCdWZmZXJGdWxsRGlkQ2hhbmdlLCBtX2NhbGxiYWNrLCBb
bmV3VmFsdWUgYm9vbFZhbHVlXSk7CiAgICAgICAgIGVsc2UgaWYgKFtrZXlQYXRoIGlzRXF1YWxU
b1N0cmluZzpAImFzc2V0Il0pCi0gICAgICAgICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0QXNzZXQsIG1fY2FsbGJhY2ssIFJl
dGFpblB0cjxOU0FycmF5PihuZXdWYWx1ZSkpOworICAgICAgICAgICAgZnVuY3Rpb24gPSBzdGQ6
OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldEFzc2V0LCBtX2Nh
bGxiYWNrLCBuZXdWYWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0
cmluZzpAImxvYWRlZFRpbWVSYW5nZXMiXSkKLSAgICAgICAgICAgIGZ1bmN0aW9uID0gV1RGOjpi
aW5kKCZNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpsb2FkZWRUaW1lUmFuZ2Vz
RGlkQ2hhbmdlLCBtX2NhbGxiYWNrLCBSZXRhaW5QdHI8TlNBcnJheT4obmV3VmFsdWUpKTsKKyAg
ICAgICAgICAgIGZ1bmN0aW9uID0gc3RkOjpiaW5kKCZNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpsb2FkZWRUaW1lUmFuZ2VzRGlkQ2hhbmdlLCBtX2NhbGxiYWNrLCBSZXRhaW5Q
dHI8TlNBcnJheT4obmV3VmFsdWUpKTsKICAgICAgICAgZWxzZSBpZiAoW2tleVBhdGggaXNFcXVh
bFRvU3RyaW5nOkAic2Vla2FibGVUaW1lUmFuZ2VzIl0pCi0gICAgICAgICAgICBmdW5jdGlvbiA9
IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2Vla2FibGVU
aW1lUmFuZ2VzRGlkQ2hhbmdlLCBtX2NhbGxiYWNrLCBSZXRhaW5QdHI8TlNBcnJheT4obmV3VmFs
dWUpKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uID0gc3RkOjpiaW5kKCZNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpzZWVrYWJsZVRpbWVSYW5nZXNEaWRDaGFuZ2UsIG1fY2FsbGJh
Y2ssIFJldGFpblB0cjxOU0FycmF5PihuZXdWYWx1ZSkpOwogICAgICAgICBlbHNlIGlmIChba2V5
UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJ0cmFja3MiXSkKLSAgICAgICAgICAgIGZ1bmN0aW9uID0g
V1RGOjpiaW5kKCZNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp0cmFja3NEaWRD
aGFuZ2UsIG1fY2FsbGJhY2ssIFJldGFpblB0cjxOU0FycmF5PihuZXdWYWx1ZSkpOworICAgICAg
ICAgICAgZnVuY3Rpb24gPSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnRyYWNrc0RpZENoYW5nZSwgbV9jYWxsYmFjaywgUmV0YWluUHRyPE5TQXJyYXk+KG5l
d1ZhbHVlKSk7CiAgICAgICAgIGVsc2UgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAImhh
c0VuYWJsZWRBdWRpbyJdKQotICAgICAgICAgICAgZnVuY3Rpb24gPSBXVEY6OmJpbmQoJk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omhhc0VuYWJsZWRBdWRpb0RpZENoYW5nZSwg
bV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1ZV0pOworICAgICAgICAgICAgZnVuY3Rpb24g
PSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omhhc0VuYWJs
ZWRBdWRpb0RpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1ZV0pOwogICAg
ICAgICBlbHNlIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJwcmVzZW50YXRpb25TaXpl
Il0pCi0gICAgICAgICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cHJlc2VudGF0aW9uU2l6ZURpZENoYW5nZSwgbV9jYWxsYmFjaywg
RmxvYXRTaXplKFtuZXdWYWx1ZSBzaXplVmFsdWVdKSk7CisgICAgICAgICAgICBmdW5jdGlvbiA9
IHN0ZDo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cHJlc2VudGF0
aW9uU2l6ZURpZENoYW5nZSwgbV9jYWxsYmFjaywgRmxvYXRTaXplKFtuZXdWYWx1ZSBzaXplVmFs
dWVdKSk7CiAgICAgICAgIGVsc2UgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAImR1cmF0
aW9uIl0pCi0gICAgICAgICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZHVyYXRpb25EaWRDaGFuZ2UsIG1fY2FsbGJhY2ssIHRvTWVk
aWFUaW1lKFtuZXdWYWx1ZSBDTVRpbWVWYWx1ZV0pKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uID0g
c3RkOjpiaW5kKCZNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkdXJhdGlvbkRp
ZENoYW5nZSwgbV9jYWxsYmFjaywgdG9NZWRpYVRpbWUoW25ld1ZhbHVlIENNVGltZVZhbHVlXSkp
OwogICAgICAgICBlbHNlIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJ0aW1lZE1ldGFk
YXRhIl0gJiYgbmV3VmFsdWUpIHsKICAgICAgICAgICAgIE1lZGlhVGltZSBub3c7CiAgICAgICAg
ICAgICBDTVRpbWUgaXRlbVRpbWUgPSBbKEFWUGxheWVySXRlbVR5cGUgKilvYmplY3QgY3VycmVu
dFRpbWVdOwogICAgICAgICAgICAgaWYgKENNVElNRV9JU19OVU1FUklDKGl0ZW1UaW1lKSkKICAg
ICAgICAgICAgICAgICBub3cgPSBzdGQ6Om1heCh0b01lZGlhVGltZShpdGVtVGltZSksIE1lZGlh
VGltZTo6emVyb1RpbWUoKSk7Ci0gICAgICAgICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUsIG1fY2Fs
bGJhY2ssIFJldGFpblB0cjxOU0FycmF5PihuZXdWYWx1ZSksIG5vdyk7CisgICAgICAgICAgICBm
dW5jdGlvbiA9IHN0ZDo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
bWV0YWRhdGFEaWRBcnJpdmUsIG1fY2FsbGJhY2ssIFJldGFpblB0cjxOU0FycmF5PihuZXdWYWx1
ZSksIG5vdyk7CiAgICAgICAgIH0gZWxzZSBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAi
Y2FuUGxheUZhc3RSZXZlcnNlIl0pCi0gICAgICAgICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgm
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2FuUGxheUZhc3RSZXZlcnNlRGlk
Q2hhbmdlLCBtX2NhbGxiYWNrLCBbbmV3VmFsdWUgYm9vbFZhbHVlXSk7CisgICAgICAgICAgICBm
dW5jdGlvbiA9IHN0ZDo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
Y2FuUGxheUZhc3RSZXZlcnNlRGlkQ2hhbmdlLCBtX2NhbGxiYWNrLCBbbmV3VmFsdWUgYm9vbFZh
bHVlXSk7CiAgICAgICAgIGVsc2UgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAImNhblBs
YXlGYXN0Rm9yd2FyZCJdKQotICAgICAgICAgICAgZnVuY3Rpb24gPSBXVEY6OmJpbmQoJk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNhblBsYXlGYXN0Rm9yd2FyZERpZENoYW5n
ZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1ZV0pOworICAgICAgICAgICAgZnVuY3Rp
b24gPSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNhblBs
YXlGYXN0Rm9yd2FyZERpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1ZV0p
OwogICAgIH0KIAogICAgIGlmIChjb250ZXh0ID09IE1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2Jz
ZXJ2YXRpb25Db250ZXh0UGxheWVyICYmICF3aWxsQ2hhbmdlKSB7CiAgICAgICAgIC8vIEEgdmFs
dWUgY2hhbmdlZCBmb3IgYW4gQVZQbGF5ZXIuCiAgICAgICAgIGlmIChba2V5UGF0aCBpc0VxdWFs
VG9TdHJpbmc6QCJyYXRlIl0pCi0gICAgICAgICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmF0ZURpZENoYW5nZSwgbV9jYWxsYmFj
aywgW25ld1ZhbHVlIGRvdWJsZVZhbHVlXSk7CisgICAgICAgICAgICBmdW5jdGlvbiA9IHN0ZDo6
YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cmF0ZURpZENoYW5nZSwg
bV9jYWxsYmFjaywgW25ld1ZhbHVlIGRvdWJsZVZhbHVlXSk7CiAjaWYgRU5BQkxFKFdJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCkKICAgICAgICAgZWxzZSBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3Ry
aW5nOkAiZXh0ZXJuYWxQbGF5YmFja0FjdGl2ZSJdIHx8IFtrZXlQYXRoIGlzRXF1YWxUb1N0cmlu
ZzpAImFsbG93c0V4dGVybmFsUGxheWJhY2siXSkKLSAgICAgICAgICAgIGZ1bmN0aW9uID0gV1RG
OjpiaW5kKCZNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF5YmFja1Rhcmdl
dElzV2lyZWxlc3NEaWRDaGFuZ2UsIG1fY2FsbGJhY2spOworICAgICAgICAgICAgZnVuY3Rpb24g
PSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXliYWNr
VGFyZ2V0SXNXaXJlbGVzc0RpZENoYW5nZSwgbV9jYWxsYmFjayk7CiAjZW5kaWYKICAgICB9CiAg
ICAgCi0gICAgaWYgKGZ1bmN0aW9uLmlzTnVsbCgpKQorICAgIGlmICghZnVuY3Rpb24pCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGF1dG8gd2Vha1RoaXMgPSBtX2NhbGxiYWNrLT5jcmVhdGVXZWFr
UHRyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251827</attachid>
            <date>2015-04-27 23:50:00 -0700</date>
            <delta_ts>2015-04-29 06:14:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144232-20150428084850.patch</filename>
            <type>text/plain</type>
            <size>10864</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NiYTYyMTI3M2NkNGEw
ODBiZmNiOTFjMmYzYzFhMTExOTBmMzVhMS4uMTdhY2NkOGQ4MGI4MTNlNTk4MmJiM2Q0ZjI5MWZh
MTdhOWNlOGU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA0LTI3ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBTd2l0Y2ggdG8gc3Rk
OjpmdW5jdGlvbjw+LCBzdGQ6OmJpbmQoKSBpbiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDQyMzIKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW06CisgICAgICAgICgtW1dlYkNvcmVBVkZNb3ZpZU9ic2VydmVyIG9ic2Vy
dmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6IAorICAgICAgICBS
ZXBsYWNlIHVzZXMgb2YgV1RGOjpGdW5jdGlvbjw+IGFuZCBXVEY6OmJpbmQoKSB3aXRoIHRoZSBT
VEwgYWx0ZXJuYXRpdmVzLgorCiAyMDE1LTA0LTI3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgU2ltcGxlIGxpbmUgbGF5b3V0OiBXcm9uZyB0ZXh0IG9mZnNldHRp
bmcgd2hlbiByYW5nZSBkb2VzIG5vdCBzdGFydCBmcm9tIHRoZSBmaXJzdCByZW5kZXJlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaAppbmRleCA2OGU1NGMxYTJiMDlmZDdlMDE3Yzc3NTE0M2E0NGJmMTVj
ZjY0YTI3Li43ODQ2OGQxOTY5YTY1MmMzMGI4OGZiM2U0N2M3OGU2ZGFhNGI4MzkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2
b2lkIHJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIpOwogCi0gICAgdm9p
ZCBzZXRBc3NldChpZCk7CisgICAgdm9pZCBzZXRBc3NldChSZXRhaW5QdHI8aWQ+KTsKICAgICB2
aXJ0dWFsIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIG92ZXJyaWRlOwogCiAjaWYgSEFWRShBVkZPVU5E
QVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
ZDNlNDk5NGVjMTc3MGUxZmI4ZDJlNmFmZTllODNmYTg1ZTRiOTBhYi4uN2FlMTIxYWZhZGE4ZDM5
YWY1YzAyNGY2OTU3ZGY1M2E3NmFlZGZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC02
MSw2ICs2MSw3IEBACiAjaW1wb3J0ICJXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBv
cnQgIldlYkNvcmVDQUxheWVyRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLmgiCisjaW1wb3J0IDxmdW5jdGlvbmFsPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAj
aW1wb3J0IDxydW50aW1lL0RhdGFWaWV3Lmg+CiAjaW1wb3J0IDxydW50aW1lL0pTQ0lubGluZXMu
aD4KQEAgLTY5LDcgKzcwLDYgQEAKICNpbXBvcnQgPHJ1bnRpbWUvVWludDMyQXJyYXkuaD4KICNp
bXBvcnQgPHJ1bnRpbWUvVWludDhBcnJheS5oPgogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+
Ci0jaW1wb3J0IDx3dGYvRnVuY3Rpb25hbC5oPgogI2ltcG9ydCA8d3RmL0xpc3RIYXNoU2V0Lmg+
CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KQEAgLTE0MzksNyArMTQzOSw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp0b3RhbEJ5dGVzKCkgY29uc3QKICAgICByZXR1cm4g
bV9jYWNoZWRUb3RhbEJ5dGVzOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnNldEFzc2V0KGlkIGFzc2V0KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpzZXRBc3NldChSZXRhaW5QdHI8aWQ+IGFzc2V0KQogewogICAgIG1fYXZB
c3NldCA9IGFzc2V0OwogfQpAQCAtMzE4Niw3NCArMzE4Niw3NCBAQCBOU0FycmF5KiBwbGF5ZXJL
Vk9Qcm9wZXJ0aWVzKCkKICAgICB9CiAjZW5kaWYKIAotICAgIFdURjo6RnVuY3Rpb248dm9pZCAo
KT4gZnVuY3Rpb247CisgICAgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBmdW5jdGlvbjsKIAogICAg
IGlmIChjb250ZXh0ID09IE1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25Db250ZXh0
QVZQbGF5ZXJMYXllcikgewogICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAi
cmVhZHlGb3JEaXNwbGF5Il0pCi0gICAgICAgICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Zmlyc3RGcmFtZUF2YWlsYWJsZURpZENo
YW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1ZV0pOworICAgICAgICAgICAgZnVu
Y3Rpb24gPSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmZp
cnN0RnJhbWVBdmFpbGFibGVEaWRDaGFuZ2UsIG1fY2FsbGJhY2ssIFtuZXdWYWx1ZSBib29sVmFs
dWVdKTsKICAgICB9CiAKICAgICBpZiAoY29udGV4dCA9PSBNZWRpYVBsYXllckFWRm91bmRhdGlv
bk9ic2VydmF0aW9uQ29udGV4dFBsYXllckl0ZW1UcmFjaykgewogICAgICAgICBpZiAoW2tleVBh
dGggaXNFcXVhbFRvU3RyaW5nOkAiZW5hYmxlZCJdKQotICAgICAgICAgICAgZnVuY3Rpb24gPSBX
VEY6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnRyYWNrRW5hYmxl
ZERpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1ZV0pOworICAgICAgICAg
ICAgZnVuY3Rpb24gPSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnRyYWNrRW5hYmxlZERpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1
ZV0pOwogICAgIH0KIAogICAgIGlmIChjb250ZXh0ID09IE1lZGlhUGxheWVyQVZGb3VuZGF0aW9u
T2JzZXJ2YXRpb25Db250ZXh0UGxheWVySXRlbSAmJiB3aWxsQ2hhbmdlKSB7CiAgICAgICAgIGlm
IChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJwbGF5YmFja0xpa2VseVRvS2VlcFVwIl0pCi0g
ICAgICAgICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6cGxheWJhY2tMaWtlbHlUb0tlZXBVcFdpbGxDaGFuZ2UsIG1fY2FsbGJhY2sp
OworICAgICAgICAgICAgZnVuY3Rpb24gPSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnBsYXliYWNrTGlrZWx5VG9LZWVwVXBXaWxsQ2hhbmdlLCBtX2NhbGxi
YWNrKTsKICAgICAgICAgZWxzZSBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAicGxheWJh
Y2tCdWZmZXJFbXB0eSJdKQotICAgICAgICAgICAgZnVuY3Rpb24gPSBXVEY6OmJpbmQoJk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXliYWNrQnVmZmVyRW1wdHlXaWxsQ2hh
bmdlLCBtX2NhbGxiYWNrKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uID0gc3RkOjpiaW5kKCZNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF5YmFja0J1ZmZlckVtcHR5V2lsbENo
YW5nZSwgbV9jYWxsYmFjayk7CiAgICAgICAgIGVsc2UgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0
cmluZzpAInBsYXliYWNrQnVmZmVyRnVsbCJdKQotICAgICAgICAgICAgZnVuY3Rpb24gPSBXVEY6
OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXliYWNrQnVmZmVy
RnVsbFdpbGxDaGFuZ2UsIG1fY2FsbGJhY2spOworICAgICAgICAgICAgZnVuY3Rpb24gPSBzdGQ6
OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXliYWNrQnVmZmVy
RnVsbFdpbGxDaGFuZ2UsIG1fY2FsbGJhY2spOwogICAgIH0KIAogICAgIGlmIChjb250ZXh0ID09
IE1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25Db250ZXh0UGxheWVySXRlbSAmJiAh
d2lsbENoYW5nZSkgewogICAgICAgICAvLyBBIHZhbHVlIGNoYW5nZWQgZm9yIGFuIEFWUGxheWVy
SXRlbQogICAgICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAic3RhdHVzIl0pCi0g
ICAgICAgICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6cGxheWVySXRlbVN0YXR1c0RpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1Zh
bHVlIGludFZhbHVlXSk7CisgICAgICAgICAgICBmdW5jdGlvbiA9IHN0ZDo6YmluZCgmTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxheWVySXRlbVN0YXR1c0RpZENoYW5nZSwg
bV9jYWxsYmFjaywgW25ld1ZhbHVlIGludFZhbHVlXSk7CiAgICAgICAgIGVsc2UgaWYgKFtrZXlQ
YXRoIGlzRXF1YWxUb1N0cmluZzpAInBsYXliYWNrTGlrZWx5VG9LZWVwVXAiXSkKLSAgICAgICAg
ICAgIGZ1bmN0aW9uID0gV1RGOjpiaW5kKCZNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwbGF5YmFja0xpa2VseVRvS2VlcFVwRGlkQ2hhbmdlLCBtX2NhbGxiYWNrLCBbbmV3VmFs
dWUgYm9vbFZhbHVlXSk7CisgICAgICAgICAgICBmdW5jdGlvbiA9IHN0ZDo6YmluZCgmTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxheWJhY2tMaWtlbHlUb0tlZXBVcERpZENo
YW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1ZV0pOwogICAgICAgICBlbHNlIGlm
IChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJwbGF5YmFja0J1ZmZlckVtcHR5Il0pCi0gICAg
ICAgICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cGxheWJhY2tCdWZmZXJFbXB0eURpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1Zh
bHVlIGJvb2xWYWx1ZV0pOworICAgICAgICAgICAgZnVuY3Rpb24gPSBzdGQ6OmJpbmQoJk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXliYWNrQnVmZmVyRW1wdHlEaWRDaGFu
Z2UsIG1fY2FsbGJhY2ssIFtuZXdWYWx1ZSBib29sVmFsdWVdKTsKICAgICAgICAgZWxzZSBpZiAo
W2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAicGxheWJhY2tCdWZmZXJGdWxsIl0pCi0gICAgICAg
ICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxheWJhY2tCdWZmZXJGdWxsRGlkQ2hhbmdlLCBtX2NhbGxiYWNrLCBbbmV3VmFsdWUg
Ym9vbFZhbHVlXSk7CisgICAgICAgICAgICBmdW5jdGlvbiA9IHN0ZDo6YmluZCgmTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxheWJhY2tCdWZmZXJGdWxsRGlkQ2hhbmdlLCBt
X2NhbGxiYWNrLCBbbmV3VmFsdWUgYm9vbFZhbHVlXSk7CiAgICAgICAgIGVsc2UgaWYgKFtrZXlQ
YXRoIGlzRXF1YWxUb1N0cmluZzpAImFzc2V0Il0pCi0gICAgICAgICAgICBmdW5jdGlvbiA9IFdU
Rjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0QXNzZXQsIG1f
Y2FsbGJhY2ssIFJldGFpblB0cjxOU0FycmF5PihuZXdWYWx1ZSkpOworICAgICAgICAgICAgZnVu
Y3Rpb24gPSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNl
dEFzc2V0LCBtX2NhbGxiYWNrLCBSZXRhaW5QdHI8aWQ+KG5ld1ZhbHVlKSk7CiAgICAgICAgIGVs
c2UgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAImxvYWRlZFRpbWVSYW5nZXMiXSkKLSAg
ICAgICAgICAgIGZ1bmN0aW9uID0gV1RGOjpiaW5kKCZNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpsb2FkZWRUaW1lUmFuZ2VzRGlkQ2hhbmdlLCBtX2NhbGxiYWNrLCBSZXRhaW5Q
dHI8TlNBcnJheT4obmV3VmFsdWUpKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uID0gc3RkOjpiaW5k
KCZNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpsb2FkZWRUaW1lUmFuZ2VzRGlk
Q2hhbmdlLCBtX2NhbGxiYWNrLCBSZXRhaW5QdHI8TlNBcnJheT4obmV3VmFsdWUpKTsKICAgICAg
ICAgZWxzZSBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAic2Vla2FibGVUaW1lUmFuZ2Vz
Il0pCi0gICAgICAgICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6c2Vla2FibGVUaW1lUmFuZ2VzRGlkQ2hhbmdlLCBtX2NhbGxiYWNr
LCBSZXRhaW5QdHI8TlNBcnJheT4obmV3VmFsdWUpKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uID0g
c3RkOjpiaW5kKCZNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZWVrYWJsZVRp
bWVSYW5nZXNEaWRDaGFuZ2UsIG1fY2FsbGJhY2ssIFJldGFpblB0cjxOU0FycmF5PihuZXdWYWx1
ZSkpOwogICAgICAgICBlbHNlIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJ0cmFja3Mi
XSkKLSAgICAgICAgICAgIGZ1bmN0aW9uID0gV1RGOjpiaW5kKCZNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjp0cmFja3NEaWRDaGFuZ2UsIG1fY2FsbGJhY2ssIFJldGFpblB0cjxO
U0FycmF5PihuZXdWYWx1ZSkpOworICAgICAgICAgICAgZnVuY3Rpb24gPSBzdGQ6OmJpbmQoJk1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnRyYWNrc0RpZENoYW5nZSwgbV9jYWxs
YmFjaywgUmV0YWluUHRyPE5TQXJyYXk+KG5ld1ZhbHVlKSk7CiAgICAgICAgIGVsc2UgaWYgKFtr
ZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAImhhc0VuYWJsZWRBdWRpbyJdKQotICAgICAgICAgICAg
ZnVuY3Rpb24gPSBXVEY6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
Omhhc0VuYWJsZWRBdWRpb0RpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1
ZV0pOworICAgICAgICAgICAgZnVuY3Rpb24gPSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6Omhhc0VuYWJsZWRBdWRpb0RpZENoYW5nZSwgbV9jYWxsYmFjaywg
W25ld1ZhbHVlIGJvb2xWYWx1ZV0pOwogICAgICAgICBlbHNlIGlmIChba2V5UGF0aCBpc0VxdWFs
VG9TdHJpbmc6QCJwcmVzZW50YXRpb25TaXplIl0pCi0gICAgICAgICAgICBmdW5jdGlvbiA9IFdU
Rjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cHJlc2VudGF0aW9u
U2l6ZURpZENoYW5nZSwgbV9jYWxsYmFjaywgRmxvYXRTaXplKFtuZXdWYWx1ZSBzaXplVmFsdWVd
KSk7CisgICAgICAgICAgICBmdW5jdGlvbiA9IHN0ZDo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cHJlc2VudGF0aW9uU2l6ZURpZENoYW5nZSwgbV9jYWxsYmFjaywg
RmxvYXRTaXplKFtuZXdWYWx1ZSBzaXplVmFsdWVdKSk7CiAgICAgICAgIGVsc2UgaWYgKFtrZXlQ
YXRoIGlzRXF1YWxUb1N0cmluZzpAImR1cmF0aW9uIl0pCi0gICAgICAgICAgICBmdW5jdGlvbiA9
IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZHVyYXRpb25E
aWRDaGFuZ2UsIG1fY2FsbGJhY2ssIHRvTWVkaWFUaW1lKFtuZXdWYWx1ZSBDTVRpbWVWYWx1ZV0p
KTsKKyAgICAgICAgICAgIGZ1bmN0aW9uID0gc3RkOjpiaW5kKCZNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpkdXJhdGlvbkRpZENoYW5nZSwgbV9jYWxsYmFjaywgdG9NZWRpYVRp
bWUoW25ld1ZhbHVlIENNVGltZVZhbHVlXSkpOwogICAgICAgICBlbHNlIGlmIChba2V5UGF0aCBp
c0VxdWFsVG9TdHJpbmc6QCJ0aW1lZE1ldGFkYXRhIl0gJiYgbmV3VmFsdWUpIHsKICAgICAgICAg
ICAgIE1lZGlhVGltZSBub3c7CiAgICAgICAgICAgICBDTVRpbWUgaXRlbVRpbWUgPSBbKEFWUGxh
eWVySXRlbVR5cGUgKilvYmplY3QgY3VycmVudFRpbWVdOwogICAgICAgICAgICAgaWYgKENNVElN
RV9JU19OVU1FUklDKGl0ZW1UaW1lKSkKICAgICAgICAgICAgICAgICBub3cgPSBzdGQ6Om1heCh0
b01lZGlhVGltZShpdGVtVGltZSksIE1lZGlhVGltZTo6emVyb1RpbWUoKSk7Ci0gICAgICAgICAg
ICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6bWV0YWRhdGFEaWRBcnJpdmUsIG1fY2FsbGJhY2ssIFJldGFpblB0cjxOU0FycmF5PihuZXdW
YWx1ZSksIG5vdyk7CisgICAgICAgICAgICBmdW5jdGlvbiA9IHN0ZDo6YmluZCgmTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bWV0YWRhdGFEaWRBcnJpdmUsIG1fY2FsbGJhY2ss
IFJldGFpblB0cjxOU0FycmF5PihuZXdWYWx1ZSksIG5vdyk7CiAgICAgICAgIH0gZWxzZSBpZiAo
W2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiY2FuUGxheUZhc3RSZXZlcnNlIl0pCi0gICAgICAg
ICAgICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6Y2FuUGxheUZhc3RSZXZlcnNlRGlkQ2hhbmdlLCBtX2NhbGxiYWNrLCBbbmV3VmFsdWUg
Ym9vbFZhbHVlXSk7CisgICAgICAgICAgICBmdW5jdGlvbiA9IHN0ZDo6YmluZCgmTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2FuUGxheUZhc3RSZXZlcnNlRGlkQ2hhbmdlLCBt
X2NhbGxiYWNrLCBbbmV3VmFsdWUgYm9vbFZhbHVlXSk7CiAgICAgICAgIGVsc2UgaWYgKFtrZXlQ
YXRoIGlzRXF1YWxUb1N0cmluZzpAImNhblBsYXlGYXN0Rm9yd2FyZCJdKQotICAgICAgICAgICAg
ZnVuY3Rpb24gPSBXVEY6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmNhblBsYXlGYXN0Rm9yd2FyZERpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGJvb2xW
YWx1ZV0pOworICAgICAgICAgICAgZnVuY3Rpb24gPSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmNhblBsYXlGYXN0Rm9yd2FyZERpZENoYW5nZSwgbV9jYWxs
YmFjaywgW25ld1ZhbHVlIGJvb2xWYWx1ZV0pOwogICAgIH0KIAogICAgIGlmIChjb250ZXh0ID09
IE1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25Db250ZXh0UGxheWVyICYmICF3aWxs
Q2hhbmdlKSB7CiAgICAgICAgIC8vIEEgdmFsdWUgY2hhbmdlZCBmb3IgYW4gQVZQbGF5ZXIuCiAg
ICAgICAgIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJyYXRlIl0pCi0gICAgICAgICAg
ICBmdW5jdGlvbiA9IFdURjo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cmF0ZURpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGRvdWJsZVZhbHVlXSk7Cisg
ICAgICAgICAgICBmdW5jdGlvbiA9IHN0ZDo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6cmF0ZURpZENoYW5nZSwgbV9jYWxsYmFjaywgW25ld1ZhbHVlIGRvdWJsZVZh
bHVlXSk7CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICAgICAgZWxz
ZSBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiZXh0ZXJuYWxQbGF5YmFja0FjdGl2ZSJd
IHx8IFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAImFsbG93c0V4dGVybmFsUGxheWJhY2siXSkK
LSAgICAgICAgICAgIGZ1bmN0aW9uID0gV1RGOjpiaW5kKCZNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwbGF5YmFja1RhcmdldElzV2lyZWxlc3NEaWRDaGFuZ2UsIG1fY2FsbGJh
Y2spOworICAgICAgICAgICAgZnVuY3Rpb24gPSBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0RpZENoYW5nZSwgbV9j
YWxsYmFjayk7CiAjZW5kaWYKICAgICB9CiAgICAgCi0gICAgaWYgKGZ1bmN0aW9uLmlzTnVsbCgp
KQorICAgIGlmICghZnVuY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gd2Vha1Ro
aXMgPSBtX2NhbGxiYWNrLT5jcmVhdGVXZWFrUHRyKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>