<?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>148327</bug_id>
          
          <creation_ts>2015-08-21 13:51:55 -0700</creation_ts>
          <short_desc>Deprecate the old school callOnMainThread/cancelCallOnMainThread functions</short_desc>
          <delta_ts>2015-08-21 15:30:52 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1119904</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-21 13:51:55 -0700</bug_when>
    <thetext>Deprecate the old school callOnMainThread/cancelCallOnMainThread functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119905</commentid>
    <comment_count>1</comment_count>
      <attachid>259652</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-21 13:58:09 -0700</bug_when>
    <thetext>Created attachment 259652
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119906</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 14:01:01 -0700</bug_when>
    <thetext>Attachment 259652 did not pass style-queue:


ERROR: Source/WTF/wtf/MainThread.cpp:50:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/MainThread.cpp:52:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/MainThread.cpp:123:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/MainThread.cpp:147:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 4 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>1119909</commentid>
    <comment_count>3</comment_count>
      <attachid>259653</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-21 14:03:58 -0700</bug_when>
    <thetext>Created attachment 259653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119910</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 14:05:57 -0700</bug_when>
    <thetext>Attachment 259653 did not pass style-queue:


ERROR: Source/WTF/wtf/MainThread.cpp:50:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/MainThread.cpp:52:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/MainThread.cpp:123:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/wtf/MainThread.cpp:147:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 4 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>1119943</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-08-21 15:06:34 -0700</bug_when>
    <thetext>Committed r188788: &lt;http://trac.webkit.org/changeset/188788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119950</commentid>
    <comment_count>6</comment_count>
      <attachid>259653</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-08-21 15:30:52 -0700</bug_when>
    <thetext>Comment on attachment 259653
Patch

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

&gt; Source/WTF/wtf/MainThread.cpp:123
&gt; +    std::function&lt;void ()&gt; function;

I think this should be declared inside the while loop.

&gt; Source/WTF/wtf/MainThread.h:97
&gt; +#if PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED == 1090
&gt; +WTF_EXPORT_PRIVATE void callOnMainThread(MainThreadFunction*, void* context);
&gt; +WTF_EXPORT_PRIVATE void cancelCallOnMainThread(MainThreadFunction*, void* context);
&gt; +#endif

I think the MainThreadFunction typedef should also be inside the #if. Or we can write void (*)(void*) instead of using a named type.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259652</attachid>
            <date>2015-08-21 13:58:09 -0700</date>
            <delta_ts>2015-08-21 14:03:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148327-20150821135803.patch</filename>
            <type>text/plain</type>
            <size>11251</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVhNmEzZTBkZThiOTlhZDhiM2M4ZmZm
NjRmYjM1NmUwZjAxMzA4OWEuLmVhYjk1Y2NlMjUwYjZhMzQ1ZjBjMjVhYzhiNzk2NzkwYWJiOGE4
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsNTEgQEAKIDIwMTUtMDgtMjEgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KIAorICAgICAgICBEZXByZWNhdGUgdGhlIG9sZCBzY2hvb2wgY2Fs
bE9uTWFpblRocmVhZC9jYW5jZWxDYWxsT25NYWluVGhyZWFkIGZ1bmN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MzI3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5j
cHA6CisgICAgICAgIChXVEY6OmZ1bmN0aW9uUXVldWUpOgorICAgICAgICAoV1RGOjpkaXNwYXRj
aEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkKToKKyAgICAgICAgKFdURjo6Y2FsbE9uTWFpblRocmVh
ZCk6CisgICAgICAgIENoYW5nZSB0aGUgZnVuY3Rpb24gcXVldWUgdG8gYmUgYSBxdWV1ZSBvZiBz
dGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGFuZCBnZXQgcmlkIG9mIGRlYWQgY29kZS4KKworICAgICAg
ICAqIHd0Zi9NYWluVGhyZWFkLmg6CisgICAgICAgIENvbmRpdGlvbmFsaXplIGNhbGxPbk1haW5U
aHJlYWQgYW5kIGNhbmNlbENhbGxPbk1haW5UaHJlYWQgYmVjYXVzZSBTYWZhcmkgb24gTWF2ZXJp
Y2tzIHN0aWxsIGV4cGVjdHMgdG8gdGhlbSB0byBiZQorICAgICAgICBkZWNsYXJlZCBpbiBNYWlu
VGhyZWFkLmggdW5kZXIgMTAuOS4KKworICAgICAgICAqIHd0Zi9tYWMvRGVwcmVjYXRlZFN5bWJv
bHNVc2VkQnlTYWZhcmkubW06CisgICAgICAgIEFkZCBhIE1haW5UaHJlYWRGdW5jdGlvblRyYWNr
ZXIgc2luZ2xldG9uIHRoYXQga2VlcHMgdHJhY2sgb2Ygc2NoZWR1bGVkIGZ1bmN0aW9ucyBzbyB3
ZSBjYW4gZW5zdXJlIHRoYXQgdGhleSdyZSBub3QKKyAgICAgICAgY2FsbGVkIGlmIHRoZXkncmUg
Y2FuY2VsbGVkLgorCisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OnNp
bmdsZXRvbik6CisgICAgICAgIFJldHVybiB0aGUgc2luZ2xldG9uLgorCisgICAgICAgIChXVEY6
Ok1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICBB
ZGQgdGhlIGZ1bmN0aW9uL2NvbnRleHQgcGFpciB0byBvdXIgbWFwIGFuZCBzY2hlZHVsZSB0aGUg
ZnVuY3Rpb24gdG8gYmUgcnVuIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgSWYgdGhlIGZ1
bmN0aW9uIGhhcyBiZWVuIHJlbW92ZWQsIGRvbid0IGNhbGwgaXQuCisgICAgICAgIAorICAgICAg
ICAoV1RGOjpNYWluVGhyZWFkRnVuY3Rpb25UcmFja2VyOjpjYW5jZWxDYWxsT25NYWluVGhyZWFk
KToKKyAgICAgICAgUmVtb3ZlIGFsbCBlbnRyaWVzIHdpdGggdGhlIGdpdmVuIGZ1bmN0aW9uL2Nv
bnRleHQgcGFpci4KKworICAgICAgICAoV1RGOjpNYWluVGhyZWFkRnVuY3Rpb25UcmFja2VyOjph
ZGRGdW5jdGlvbik6CisgICAgICAgIEFkZCB0aGUgZnVuY3Rpb24vY29udGV4dCBwYWlyIHRvIHRo
ZSBtYXAgYW5kIHJldHVybiB0aGUgdW5pcXVlIGlkZW50aWZpZXIuCisKKyAgICAgICAgKFdURjo6
TWFpblRocmVhZEZ1bmN0aW9uVHJhY2tlcjo6cmVtb3ZlSWRlbnRpZmllcik6CisgICAgICAgIExv
b2sgdXAgdGhlIGlkZW50aWZpZXIgYW5kIHJlbW92ZSBpdCBpZiBpdCBzdGlsbCBleGlzdHMuIElm
IGl0IGV4aXN0cyB3ZSBrbm93IHRoYXQgaXQgaGFzbid0IGJlZW4gY2FuY2VsZWQgYW5kIHRoYXQg
d2UgY2FuIGNhbGwgaXQuCisKKyAgICAgICAgKFdURjo6TWFpblRocmVhZEZ1bmN0aW9uVHJhY2tl
cjo6cmVtb3ZlRnVuY3Rpb25zKToKKyAgICAgICAgUmVtb3ZlIGFsbCBmdW5jdGlvbiBpZGVudGlm
aWVycyBtYXRjaGVkIGJ5IHRoZSBmdW5jdGlvbi9jb250ZXh0IHBhaXIuCisKKyAgICAgICAgKFdU
Rjo6Y2FsbE9uTWFpblRocmVhZCk6CisgICAgICAgIEltcGxlbWVudCB1c2luZyBNYWluVGhyZWFk
RnVuY3Rpb25UcmFja2VyLgorICAgICAgICAKKyAgICAgICAgKFdURjo6Y2FuY2VsQ2FsbE9uTWFp
blRocmVhZCk6CisgICAgICAgIEltcGxlbWVudCB1c2luZyBNYWluVGhyZWFkRnVuY3Rpb25UcmFj
a2VyLgorCisyMDE1LTA4LTIxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CisKICAgICAgICAgR2V0IHJpZCBvZiB1c2VzIG9mIHRoZSBvbGQgY2FsbE9uTWFpblRocmVhZCBm
dW5jdGlvbiB0aGF0IHRha2VzIGEgZnVuY3Rpb24gcHRyICsgY29udGV4dAogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MzI0CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL1dURi93dGYvTWFpblRocmVh
ZC5jcHAKaW5kZXggMGY4YmZhZDU5ODIxN2Y4MDdlODY4MGNlZWI5ZjI2ZWY1ZmEwYjJkMy4uNjAx
Zjc4YTIzZDIzMDViNDBmOWE1ZmRiODFmNTcwYzgyZmRmYWI0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTWFpblRocmVhZC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5j
cHAKQEAgLTQwLDMxICs0MCw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdHJ1Y3QgRnVuY3Rp
b25XaXRoQ29udGV4dCB7Ci0gICAgTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbjsKLSAgICB2
b2lkKiBjb250ZXh0OwotCi0gICAgRnVuY3Rpb25XaXRoQ29udGV4dChNYWluVGhyZWFkRnVuY3Rp
b24qIGZ1bmN0aW9uID0gbnVsbHB0ciwgdm9pZCogY29udGV4dCA9IG51bGxwdHIpCi0gICAgICAg
IDogZnVuY3Rpb24oZnVuY3Rpb24pCi0gICAgICAgICwgY29udGV4dChjb250ZXh0KQotICAgIHsK
LSAgICB9Ci0gICAgYm9vbCBvcGVyYXRvciA9PSAoY29uc3QgRnVuY3Rpb25XaXRoQ29udGV4dCYg
bykKLSAgICB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbiA9PSBvLmZ1bmN0aW9uICYmIGNvbnRl
eHQgPT0gby5jb250ZXh0OwotICAgIH0KLX07Ci0KLWNsYXNzIEZ1bmN0aW9uV2l0aENvbnRleHRG
aW5kZXIgewotcHVibGljOgotICAgIEZ1bmN0aW9uV2l0aENvbnRleHRGaW5kZXIoY29uc3QgRnVu
Y3Rpb25XaXRoQ29udGV4dCYgbSkgOiBtKG0pIHt9Ci0gICAgYm9vbCBvcGVyYXRvcigpIChGdW5j
dGlvbldpdGhDb250ZXh0JiBvKSB7IHJldHVybiBvID09IG07IH0KLSAgICBGdW5jdGlvbldpdGhD
b250ZXh0IG07Ci19OwotCi0KLXR5cGVkZWYgRGVxdWU8RnVuY3Rpb25XaXRoQ29udGV4dD4gRnVu
Y3Rpb25RdWV1ZTsKLQogc3RhdGljIGJvb2wgY2FsbGJhY2tzUGF1c2VkOyAvLyBUaGlzIGdsb2Jh
bCB2YXJpYWJsZSBpcyBvbmx5IGFjY2Vzc2VkIGZyb20gbWFpbiB0aHJlYWQuCiAjaWYgIU9TKERB
UldJTikgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCiBzdGF0aWMgVGhyZWFkSWRl
bnRpZmllciBtYWluVGhyZWFkSWRlbnRpZmllcjsKQEAgLTcyLDEzICs0NywxMiBAQCBzdGF0aWMg
VGhyZWFkSWRlbnRpZmllciBtYWluVGhyZWFkSWRlbnRpZmllcjsKIAogc3RhdGljIFN0YXRpY0xv
Y2sgbWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleDsKIAotc3RhdGljIEZ1bmN0aW9uUXVldWUm
IGZ1bmN0aW9uUXVldWUoKQorc3RhdGljIERlcXVlPHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4+JiBm
dW5jdGlvblF1ZXVlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RnVuY3Rpb25RdWV1
ZT4gZnVuY3Rpb25RdWV1ZTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RGVxdWU8c3RkOjpm
dW5jdGlvbjx2b2lkICgpPj4+IGZ1bmN0aW9uUXVldWU7CiAgICAgcmV0dXJuIGZ1bmN0aW9uUXVl
dWU7CiB9CiAKLQogI2lmICFPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0o
R1RLKQogCiB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkKCkKQEAgLTE0NiwxNiArMTIwLDE4IEBA
IHZvaWQgZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCgpCiAKICAgICBhdXRvIHN0YXJ0
VGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwogCi0gICAgRnVuY3Rpb25X
aXRoQ29udGV4dCBpbnZvY2F0aW9uOworICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rp
b247CisKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICB7CiAgICAgICAgICAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhtYWluVGhyZWFkRnVuY3Rpb25RdWV1ZU11dGV4KTsK
ICAgICAgICAgICAgIGlmICghZnVuY3Rpb25RdWV1ZSgpLnNpemUoKSkKICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGludm9jYXRpb24gPSBmdW5jdGlvblF1ZXVlKCkudGFrZUZp
cnN0KCk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uID0gZnVuY3Rpb25RdWV1ZSgpLnRha2VGaXJz
dCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaW52b2NhdGlvbi5mdW5jdGlvbihpbnZvY2F0aW9u
LmNvbnRleHQpOworICAgICAgICBmdW5jdGlvbigpOwogCiAgICAgICAgIC8vIElmIHdlIGFyZSBy
dW5uaW5nIGFjY3VtdWxhdGVkIGZ1bmN0aW9ucyBmb3IgdG9vIGxvbmcgc28gVUkgbWF5IGJlY29t
ZSB1bnJlc3BvbnNpdmUsIHdlIG5lZWQgdG8KICAgICAgICAgLy8geWllbGQgc28gdGhlIHVzZXIg
aW5wdXQgY2FuIGJlIHByb2Nlc3NlZC4gT3RoZXJ3aXNlIHVzZXIgbWF5IG5vdCBiZSBhYmxlIHRv
IGV2ZW4gY2xvc2UgdGhlIHdpbmRvdy4KQEAgLTE2OCw0OCArMTQ0LDIyIEBAIHZvaWQgZGlzcGF0
Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCgpCiAgICAgfQogfQogCi12b2lkIGNhbGxPbk1haW5U
aHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbiwgdm9pZCogY29udGV4dCkKK3ZvaWQg
Y2FsbE9uTWFpblRocmVhZChzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uKQogewogICAg
IEFTU0VSVChmdW5jdGlvbik7CisKICAgICBib29sIG5lZWRUb1NjaGVkdWxlID0gZmFsc2U7CisK
ICAgICB7CiAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKG1haW5UaHJl
YWRGdW5jdGlvblF1ZXVlTXV0ZXgpOwogICAgICAgICBuZWVkVG9TY2hlZHVsZSA9IGZ1bmN0aW9u
UXVldWUoKS5zaXplKCkgPT0gMDsKLSAgICAgICAgZnVuY3Rpb25RdWV1ZSgpLmFwcGVuZChGdW5j
dGlvbldpdGhDb250ZXh0KGZ1bmN0aW9uLCBjb250ZXh0KSk7CisgICAgICAgIGZ1bmN0aW9uUXVl
dWUoKS5hcHBlbmQoV1RGOjptb3ZlKGZ1bmN0aW9uKSk7CiAgICAgfQorCiAgICAgaWYgKG5lZWRU
b1NjaGVkdWxlKQogICAgICAgICBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFk
KCk7CiB9CiAKLXZvaWQgY2FuY2VsQ2FsbE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24q
IGZ1bmN0aW9uLCB2b2lkKiBjb250ZXh0KQotewotICAgIEFTU0VSVChmdW5jdGlvbik7Ci0KLSAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhtYWluVGhyZWFkRnVuY3Rpb25RdWV1
ZU11dGV4KTsKLQotICAgIEZ1bmN0aW9uV2l0aENvbnRleHRGaW5kZXIgcHJlZChGdW5jdGlvbldp
dGhDb250ZXh0KGZ1bmN0aW9uLCBjb250ZXh0KSk7Ci0KLSAgICB3aGlsZSAodHJ1ZSkgewotICAg
ICAgICAvLyBXZSBtdXN0IHJlZGVmaW5lICdpJyBlYWNoIHBhc3MsIGJlY2F1c2UgdGhlIGl0ZXJl
cmF0b3IncyBvcGVyYXRvcj0gCi0gICAgICAgIC8vIHJlcXVpcmVzICd0aGlzJyB0byBiZSB2YWxp
ZCwgYW5kIHJlbW92ZSgpIGludmFsaWRhdGVzIGFsbCBpdGVyYXRvcnMKLSAgICAgICAgRnVuY3Rp
b25RdWV1ZTo6aXRlcmF0b3IgaShmdW5jdGlvblF1ZXVlKCkuZmluZElmKHByZWQpKTsKLSAgICAg
ICAgaWYgKGkgPT0gZnVuY3Rpb25RdWV1ZSgpLmVuZCgpKQotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGZ1bmN0aW9uUXVldWUoKS5yZW1vdmUoaSk7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9p
ZCBjYWxsRnVuY3Rpb25PYmplY3Qodm9pZCogY29udGV4dCkKLXsKLSAgICBhdXRvIGZ1bmN0aW9u
ID0gc3RkOjp1bmlxdWVfcHRyPHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4+KHN0YXRpY19jYXN0PHN0
ZDo6ZnVuY3Rpb248dm9pZCAoKT4qPihjb250ZXh0KSk7Ci0gICAgKCpmdW5jdGlvbikoKTsKLX0K
LQotdm9pZCBjYWxsT25NYWluVGhyZWFkKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24p
Ci17Ci0gICAgY2FsbE9uTWFpblRocmVhZChjYWxsRnVuY3Rpb25PYmplY3QsIHN0ZDo6bWFrZV91
bmlxdWU8c3RkOjpmdW5jdGlvbjx2b2lkICgpPj4oV1RGOjptb3ZlKGZ1bmN0aW9uKSkucmVsZWFz
ZSgpKTsKLX0KLQogdm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wgcGF1c2Vk
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9NYWluVGhyZWFkLmggYi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmgKaW5kZXggYzEw
M2RiMjY3ZGE0NjViNjk0YTlhMjJhZDRiOTMwMWI1NGI3ZjFlYy4uYzZlNDliMWE3ZGY5NGUwY2Qz
NDgxZjlhM2M3YTUyOWI4ODEwZmIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWFpblRo
cmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuaApAQCAtNDEsOSArNDEsNiBA
QCB0eXBlZGVmIHZvaWQgTWFpblRocmVhZEZ1bmN0aW9uKHZvaWQqKTsKIC8vIE11c3QgYmUgY2Fs
bGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdGlh
bGl6ZU1haW5UaHJlYWQoKTsKIAotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgY2FsbE9uTWFpblRo
cmVhZChNYWluVGhyZWFkRnVuY3Rpb24qLCB2b2lkKiBjb250ZXh0KTsKLVdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGNhbmNlbENhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiwgdm9p
ZCogY29udGV4dCk7Ci0KIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGNhbGxPbk1haW5UaHJlYWQo
c3RkOjpmdW5jdGlvbjx2b2lkICgpPik7CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTk0LDEw
ICs5MSwxOCBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZFRv
UHJvY2Vzc01haW5UaHJlYWQoKTsKIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NN
YWluVGhyZWFkUGxhdGZvcm0oKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwOTAKK1dURl9FWFBPUlRfUFJJVkFURSB2
b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiwgdm9pZCogY29udGV4dCk7
CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBjYW5jZWxDYWxsT25NYWluVGhyZWFkKE1haW5UaHJl
YWRGdW5jdGlvbiosIHZvaWQqIGNvbnRleHQpOworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdU
RgogCi11c2luZyBXVEY6OmNhbGxPbk1haW5UaHJlYWQ7CisjaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwOTAKIHVzaW5nIFdURjo6Y2FuY2Vs
Q2FsbE9uTWFpblRocmVhZDsKKyNlbmRpZgorCit1c2luZyBXVEY6OmNhbGxPbk1haW5UaHJlYWQ7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiB1c2luZyBXVEY6OmNhbGxPbldlYlRocmVhZE9yRGlzcGF0
Y2hBc3luY09uTWFpblRocmVhZDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
bWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tIGIvU291cmNlL1dURi93dGYvbWFj
L0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tCmluZGV4IGVmZWQxYTFlOThlODNjYmEy
OGQ3ZGEzNWE2ZjA0ZmZlN2I4MmUwMmUuLmFhOWFmN2RjZWI3ZDcyZjMzNGFkZDdkY2U1NjlmZjVl
MGIzZGMxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL21hYy9EZXByZWNhdGVkU3ltYm9s
c1VzZWRCeVNhZmFyaS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJv
bHNVc2VkQnlTYWZhcmkubW0KQEAgLTI2LDExICsyNiwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogCiAjaW5jbHVkZSAiRnVuY3Rpb25hbC5oIgorI2luY2x1ZGUgIkhhc2hNYXAuaCIKKyNpbmNs
dWRlICJIYXNoU2V0LmgiCisjaW5jbHVkZSAiTG9jay5oIgogI2luY2x1ZGUgIk1haW5UaHJlYWQu
aCIKICNpbmNsdWRlICJOZXZlckRlc3Ryb3llZC5oIgogI2luY2x1ZGUgIlN0ZExpYkV4dHJhcy5o
IgotI2luY2x1ZGUgPG11dGV4PgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8c3Rk
aW50Lmg+CiAKIC8vIFRoaXMgZmlsZSBjb250YWlucyBkZXByZWNhdGVkIHN5bWJvbHMgdGhhdCB0
aGUgbGFzdCByZWxlYXNlZCB2ZXJzaW9uIG9mIFNhZmFyaSB1c2VzLgogLy8gT25jZSBTYWZhcmkg
c3RvcHMgdXNpbmcgdGhlbSwgd2Ugc2hvdWxkIHJlbW92ZSB0aGVtLgpAQCAtNTgsNCArNjAsOTUg
QEAgdm9pZCB1bmxvY2tBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCgpCiAgICAgYXRv
bWljYWxseUluaXRpYWxpemVkU3RhdGljTXV0ZXgudW5sb2NrKCk7CiB9CiAKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTEwMAorV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgY2FsbE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24qLCB2b2lkKiBjb250ZXh0KTsK
K1dURl9FWFBPUlRfUFJJVkFURSB2b2lkIGNhbmNlbENhbGxPbk1haW5UaHJlYWQoTWFpblRocmVh
ZEZ1bmN0aW9uKiwgdm9pZCogY29udGV4dCk7CisKK2NsYXNzIE1haW5UaHJlYWRGdW5jdGlvblRy
YWNrZXIgeworcHVibGljOgorICAgIHN0YXRpYyBNYWluVGhyZWFkRnVuY3Rpb25UcmFja2VyJiBz
aW5nbGV0b24oKQorICAgIHsKKyAgICAgICAgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisKKyAg
ICAgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxNYWluVGhyZWFkRnVuY3Rpb25UcmFja2Vy
PiB0cmFja2VyOworCisgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbJl0geworICAg
ICAgICAgICAgdHJhY2tlci5jb25zdHJ1Y3QoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcmV0
dXJuIHRyYWNrZXI7CisgICAgfQorCisgICAgdm9pZCBjYWxsT25NYWluVGhyZWFkKHZvaWQgKCpm
dW5jdGlvbikodm9pZCopLCB2b2lkKiBjb250ZXh0KQorICAgIHsKKyAgICAgICAgdWludDY0X3Qg
aWRlbnRpZmllciA9IGFkZEZ1bmN0aW9uKGZ1bmN0aW9uLCBjb250ZXh0KTsKKworICAgICAgICBX
VEY6OmNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIGZ1bmN0aW9uLCBjb250ZXh0LCBpZGVudGlmaWVy
XSB7CisgICAgICAgICAgICBpZiAoIXJlbW92ZUlkZW50aWZpZXIoZnVuY3Rpb24sIGNvbnRleHQs
IGlkZW50aWZpZXIpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgZnVu
Y3Rpb24oY29udGV4dCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHZvaWQgY2FuY2VsQ2Fs
bE9uTWFpblRocmVhZCh2b2lkICgqZnVuY3Rpb24pKHZvaWQqKSwgdm9pZCogY29udGV4dCkKKyAg
ICB7CisgICAgICAgIHJlbW92ZUZ1bmN0aW9ucyhmdW5jdGlvbiwgY29udGV4dCk7CisgICAgfQor
Citwcml2YXRlOgorICAgIHVpbnQ2NF90IGFkZEZ1bmN0aW9uKHZvaWQgKCpmdW5jdGlvbikodm9p
ZCopLCB2b2lkKiBjb250ZXh0KQorICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9sZGVy
KG1fbG9jayk7CisgICAgICAgIHVpbnQ2NF90IGlkZW50aWZpZXIgPSArK21fY3VycmVudElkZW50
aWZpZXI7CisKKyAgICAgICAgYXV0byYgc2V0ID0gbV9mdW5jdGlvbnMuYWRkKHsgZnVuY3Rpb24s
IGNvbnRleHQgfSwgSGFzaFNldDx1aW50NjRfdD4geyB9KS5pdGVyYXRvci0+dmFsdWU7CisgICAg
ICAgIHNldC5hZGQoaWRlbnRpZmllcik7CisKKyAgICAgICAgcmV0dXJuIGlkZW50aWZpZXI7Cisg
ICAgfQorCisgICAgYm9vbCByZW1vdmVJZGVudGlmaWVyKHZvaWQgKCpmdW5jdGlvbikodm9pZCop
LCB2b2lkKiBjb250ZXh0LCB1aW50NjRfdCBpZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgTG9j
a0hvbGRlciBsb2NrSG9sZGVyKG1fbG9jayk7CisKKyAgICAgICAgYXV0byBpdCA9IG1fZnVuY3Rp
b25zLmZpbmQoeyBmdW5jdGlvbiwgY29udGV4dCB9KTsKKyAgICAgICAgaWYgKGl0ID09IG1fZnVu
Y3Rpb25zLmVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGF1dG8m
IHNldCA9IGl0LT52YWx1ZTsKKyAgICAgICAgaWYgKCFzZXQucmVtb3ZlKGlkZW50aWZpZXIpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChzZXQuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgbV9mdW5jdGlvbnMucmVtb3ZlKGl0KTsKKworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICB2b2lkIHJlbW92ZUZ1bmN0aW9ucyh2b2lkICgqZnVuY3Rpb24pKHZv
aWQqKSwgdm9pZCogY29udGV4dCkKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja0hvbGRl
cihtX2xvY2spOworCisgICAgICAgIG1fZnVuY3Rpb25zLnJlbW92ZSh7IGZ1bmN0aW9uLCBjb250
ZXh0IH0pOworICAgIH0KKworICAgIExvY2sgbV9sb2NrOworICAgIHVpbnQ2NF90IG1fY3VycmVu
dElkZW50aWZpZXI7CisgICAgSGFzaE1hcDxzdGQ6OnBhaXI8dm9pZCAoKikodm9pZCopLCB2b2lk
Kj4sIEhhc2hTZXQ8dWludDY0X3Q+PiBtX2Z1bmN0aW9uczsKK307CisKK3ZvaWQgY2FsbE9uTWFp
blRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0aW9uLCB2b2lkKiBjb250ZXh0KQorewor
ICAgIE1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OnNpbmdsZXRvbigpLmNhbGxPbk1haW5UaHJl
YWQoZnVuY3Rpb24sIGNvbnRleHQpOworfQorCit2b2lkIGNhbmNlbENhbGxPbk1haW5UaHJlYWQo
TWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbiwgdm9pZCogY29udGV4dCkKK3sKKyAgICBBU1NF
UlQoZnVuY3Rpb24pOworCisgICAgTWFpblRocmVhZEZ1bmN0aW9uVHJhY2tlcjo6c2luZ2xldG9u
KCkuY2FuY2VsQ2FsbE9uTWFpblRocmVhZChmdW5jdGlvbiwgY29udGV4dCk7Cit9CisjZW5kaWYK
KwogfSAvLyBuYW1lc3BhY2UgV1RGCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259653</attachid>
            <date>2015-08-21 14:03:58 -0700</date>
            <delta_ts>2015-08-21 15:05:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148327-20150821140352.patch</filename>
            <type>text/plain</type>
            <size>11284</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVhNmEzZTBkZThiOTlhZDhiM2M4ZmZm
NjRmYjM1NmUwZjAxMzA4OWEuLmVhYjk1Y2NlMjUwYjZhMzQ1ZjBjMjVhYzhiNzk2NzkwYWJiOGE4
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsNTEgQEAKIDIwMTUtMDgtMjEgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KIAorICAgICAgICBEZXByZWNhdGUgdGhlIG9sZCBzY2hvb2wgY2Fs
bE9uTWFpblRocmVhZC9jYW5jZWxDYWxsT25NYWluVGhyZWFkIGZ1bmN0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MzI3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTWFpblRocmVhZC5j
cHA6CisgICAgICAgIChXVEY6OmZ1bmN0aW9uUXVldWUpOgorICAgICAgICAoV1RGOjpkaXNwYXRj
aEZ1bmN0aW9uc0Zyb21NYWluVGhyZWFkKToKKyAgICAgICAgKFdURjo6Y2FsbE9uTWFpblRocmVh
ZCk6CisgICAgICAgIENoYW5nZSB0aGUgZnVuY3Rpb24gcXVldWUgdG8gYmUgYSBxdWV1ZSBvZiBz
dGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGFuZCBnZXQgcmlkIG9mIGRlYWQgY29kZS4KKworICAgICAg
ICAqIHd0Zi9NYWluVGhyZWFkLmg6CisgICAgICAgIENvbmRpdGlvbmFsaXplIGNhbGxPbk1haW5U
aHJlYWQgYW5kIGNhbmNlbENhbGxPbk1haW5UaHJlYWQgYmVjYXVzZSBTYWZhcmkgb24gTWF2ZXJp
Y2tzIHN0aWxsIGV4cGVjdHMgdG8gdGhlbSB0byBiZQorICAgICAgICBkZWNsYXJlZCBpbiBNYWlu
VGhyZWFkLmggdW5kZXIgMTAuOS4KKworICAgICAgICAqIHd0Zi9tYWMvRGVwcmVjYXRlZFN5bWJv
bHNVc2VkQnlTYWZhcmkubW06CisgICAgICAgIEFkZCBhIE1haW5UaHJlYWRGdW5jdGlvblRyYWNr
ZXIgc2luZ2xldG9uIHRoYXQga2VlcHMgdHJhY2sgb2Ygc2NoZWR1bGVkIGZ1bmN0aW9ucyBzbyB3
ZSBjYW4gZW5zdXJlIHRoYXQgdGhleSdyZSBub3QKKyAgICAgICAgY2FsbGVkIGlmIHRoZXkncmUg
Y2FuY2VsbGVkLgorCisgICAgICAgIChXVEY6Ok1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OnNp
bmdsZXRvbik6CisgICAgICAgIFJldHVybiB0aGUgc2luZ2xldG9uLgorCisgICAgICAgIChXVEY6
Ok1haW5UaHJlYWRGdW5jdGlvblRyYWNrZXI6OmNhbGxPbk1haW5UaHJlYWQpOgorICAgICAgICBB
ZGQgdGhlIGZ1bmN0aW9uL2NvbnRleHQgcGFpciB0byBvdXIgbWFwIGFuZCBzY2hlZHVsZSB0aGUg
ZnVuY3Rpb24gdG8gYmUgcnVuIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgSWYgdGhlIGZ1
bmN0aW9uIGhhcyBiZWVuIHJlbW92ZWQsIGRvbid0IGNhbGwgaXQuCisgICAgICAgIAorICAgICAg
ICAoV1RGOjpNYWluVGhyZWFkRnVuY3Rpb25UcmFja2VyOjpjYW5jZWxDYWxsT25NYWluVGhyZWFk
KToKKyAgICAgICAgUmVtb3ZlIGFsbCBlbnRyaWVzIHdpdGggdGhlIGdpdmVuIGZ1bmN0aW9uL2Nv
bnRleHQgcGFpci4KKworICAgICAgICAoV1RGOjpNYWluVGhyZWFkRnVuY3Rpb25UcmFja2VyOjph
ZGRGdW5jdGlvbik6CisgICAgICAgIEFkZCB0aGUgZnVuY3Rpb24vY29udGV4dCBwYWlyIHRvIHRo
ZSBtYXAgYW5kIHJldHVybiB0aGUgdW5pcXVlIGlkZW50aWZpZXIuCisKKyAgICAgICAgKFdURjo6
TWFpblRocmVhZEZ1bmN0aW9uVHJhY2tlcjo6cmVtb3ZlSWRlbnRpZmllcik6CisgICAgICAgIExv
b2sgdXAgdGhlIGlkZW50aWZpZXIgYW5kIHJlbW92ZSBpdCBpZiBpdCBzdGlsbCBleGlzdHMuIElm
IGl0IGV4aXN0cyB3ZSBrbm93IHRoYXQgaXQgaGFzbid0IGJlZW4gY2FuY2VsZWQgYW5kIHRoYXQg
d2UgY2FuIGNhbGwgaXQuCisKKyAgICAgICAgKFdURjo6TWFpblRocmVhZEZ1bmN0aW9uVHJhY2tl
cjo6cmVtb3ZlRnVuY3Rpb25zKToKKyAgICAgICAgUmVtb3ZlIGFsbCBmdW5jdGlvbiBpZGVudGlm
aWVycyBtYXRjaGVkIGJ5IHRoZSBmdW5jdGlvbi9jb250ZXh0IHBhaXIuCisKKyAgICAgICAgKFdU
Rjo6Y2FsbE9uTWFpblRocmVhZCk6CisgICAgICAgIEltcGxlbWVudCB1c2luZyBNYWluVGhyZWFk
RnVuY3Rpb25UcmFja2VyLgorICAgICAgICAKKyAgICAgICAgKFdURjo6Y2FuY2VsQ2FsbE9uTWFp
blRocmVhZCk6CisgICAgICAgIEltcGxlbWVudCB1c2luZyBNYWluVGhyZWFkRnVuY3Rpb25UcmFj
a2VyLgorCisyMDE1LTA4LTIxICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CisKICAgICAgICAgR2V0IHJpZCBvZiB1c2VzIG9mIHRoZSBvbGQgY2FsbE9uTWFpblRocmVhZCBm
dW5jdGlvbiB0aGF0IHRha2VzIGEgZnVuY3Rpb24gcHRyICsgY29udGV4dAogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MzI0CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL1dURi93dGYvTWFpblRocmVh
ZC5jcHAKaW5kZXggMGY4YmZhZDU5ODIxN2Y4MDdlODY4MGNlZWI5ZjI2ZWY1ZmEwYjJkMy4uNjAx
Zjc4YTIzZDIzMDViNDBmOWE1ZmRiODFmNTcwYzgyZmRmYWI0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTWFpblRocmVhZC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5j
cHAKQEAgLTQwLDMxICs0MCw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdHJ1Y3QgRnVuY3Rp
b25XaXRoQ29udGV4dCB7Ci0gICAgTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbjsKLSAgICB2
b2lkKiBjb250ZXh0OwotCi0gICAgRnVuY3Rpb25XaXRoQ29udGV4dChNYWluVGhyZWFkRnVuY3Rp
b24qIGZ1bmN0aW9uID0gbnVsbHB0ciwgdm9pZCogY29udGV4dCA9IG51bGxwdHIpCi0gICAgICAg
IDogZnVuY3Rpb24oZnVuY3Rpb24pCi0gICAgICAgICwgY29udGV4dChjb250ZXh0KQotICAgIHsK
LSAgICB9Ci0gICAgYm9vbCBvcGVyYXRvciA9PSAoY29uc3QgRnVuY3Rpb25XaXRoQ29udGV4dCYg
bykKLSAgICB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbiA9PSBvLmZ1bmN0aW9uICYmIGNvbnRl
eHQgPT0gby5jb250ZXh0OwotICAgIH0KLX07Ci0KLWNsYXNzIEZ1bmN0aW9uV2l0aENvbnRleHRG
aW5kZXIgewotcHVibGljOgotICAgIEZ1bmN0aW9uV2l0aENvbnRleHRGaW5kZXIoY29uc3QgRnVu
Y3Rpb25XaXRoQ29udGV4dCYgbSkgOiBtKG0pIHt9Ci0gICAgYm9vbCBvcGVyYXRvcigpIChGdW5j
dGlvbldpdGhDb250ZXh0JiBvKSB7IHJldHVybiBvID09IG07IH0KLSAgICBGdW5jdGlvbldpdGhD
b250ZXh0IG07Ci19OwotCi0KLXR5cGVkZWYgRGVxdWU8RnVuY3Rpb25XaXRoQ29udGV4dD4gRnVu
Y3Rpb25RdWV1ZTsKLQogc3RhdGljIGJvb2wgY2FsbGJhY2tzUGF1c2VkOyAvLyBUaGlzIGdsb2Jh
bCB2YXJpYWJsZSBpcyBvbmx5IGFjY2Vzc2VkIGZyb20gbWFpbiB0aHJlYWQuCiAjaWYgIU9TKERB
UldJTikgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCiBzdGF0aWMgVGhyZWFkSWRl
bnRpZmllciBtYWluVGhyZWFkSWRlbnRpZmllcjsKQEAgLTcyLDEzICs0NywxMiBAQCBzdGF0aWMg
VGhyZWFkSWRlbnRpZmllciBtYWluVGhyZWFkSWRlbnRpZmllcjsKIAogc3RhdGljIFN0YXRpY0xv
Y2sgbWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleDsKIAotc3RhdGljIEZ1bmN0aW9uUXVldWUm
IGZ1bmN0aW9uUXVldWUoKQorc3RhdGljIERlcXVlPHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4+JiBm
dW5jdGlvblF1ZXVlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RnVuY3Rpb25RdWV1
ZT4gZnVuY3Rpb25RdWV1ZTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RGVxdWU8c3RkOjpm
dW5jdGlvbjx2b2lkICgpPj4+IGZ1bmN0aW9uUXVldWU7CiAgICAgcmV0dXJuIGZ1bmN0aW9uUXVl
dWU7CiB9CiAKLQogI2lmICFPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0o
R1RLKQogCiB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkKCkKQEAgLTE0NiwxNiArMTIwLDE4IEBA
IHZvaWQgZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCgpCiAKICAgICBhdXRvIHN0YXJ0
VGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwogCi0gICAgRnVuY3Rpb25X
aXRoQ29udGV4dCBpbnZvY2F0aW9uOworICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rp
b247CisKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICB7CiAgICAgICAgICAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhtYWluVGhyZWFkRnVuY3Rpb25RdWV1ZU11dGV4KTsK
ICAgICAgICAgICAgIGlmICghZnVuY3Rpb25RdWV1ZSgpLnNpemUoKSkKICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGludm9jYXRpb24gPSBmdW5jdGlvblF1ZXVlKCkudGFrZUZp
cnN0KCk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uID0gZnVuY3Rpb25RdWV1ZSgpLnRha2VGaXJz
dCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaW52b2NhdGlvbi5mdW5jdGlvbihpbnZvY2F0aW9u
LmNvbnRleHQpOworICAgICAgICBmdW5jdGlvbigpOwogCiAgICAgICAgIC8vIElmIHdlIGFyZSBy
dW5uaW5nIGFjY3VtdWxhdGVkIGZ1bmN0aW9ucyBmb3IgdG9vIGxvbmcgc28gVUkgbWF5IGJlY29t
ZSB1bnJlc3BvbnNpdmUsIHdlIG5lZWQgdG8KICAgICAgICAgLy8geWllbGQgc28gdGhlIHVzZXIg
aW5wdXQgY2FuIGJlIHByb2Nlc3NlZC4gT3RoZXJ3aXNlIHVzZXIgbWF5IG5vdCBiZSBhYmxlIHRv
IGV2ZW4gY2xvc2UgdGhlIHdpbmRvdy4KQEAgLTE2OCw0OCArMTQ0LDIyIEBAIHZvaWQgZGlzcGF0
Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCgpCiAgICAgfQogfQogCi12b2lkIGNhbGxPbk1haW5U
aHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5jdGlvbiwgdm9pZCogY29udGV4dCkKK3ZvaWQg
Y2FsbE9uTWFpblRocmVhZChzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGZ1bmN0aW9uKQogewogICAg
IEFTU0VSVChmdW5jdGlvbik7CisKICAgICBib29sIG5lZWRUb1NjaGVkdWxlID0gZmFsc2U7CisK
ICAgICB7CiAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKG1haW5UaHJl
YWRGdW5jdGlvblF1ZXVlTXV0ZXgpOwogICAgICAgICBuZWVkVG9TY2hlZHVsZSA9IGZ1bmN0aW9u
UXVldWUoKS5zaXplKCkgPT0gMDsKLSAgICAgICAgZnVuY3Rpb25RdWV1ZSgpLmFwcGVuZChGdW5j
dGlvbldpdGhDb250ZXh0KGZ1bmN0aW9uLCBjb250ZXh0KSk7CisgICAgICAgIGZ1bmN0aW9uUXVl
dWUoKS5hcHBlbmQoV1RGOjptb3ZlKGZ1bmN0aW9uKSk7CiAgICAgfQorCiAgICAgaWYgKG5lZWRU
b1NjaGVkdWxlKQogICAgICAgICBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFk
KCk7CiB9CiAKLXZvaWQgY2FuY2VsQ2FsbE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24q
IGZ1bmN0aW9uLCB2b2lkKiBjb250ZXh0KQotewotICAgIEFTU0VSVChmdW5jdGlvbik7Ci0KLSAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhtYWluVGhyZWFkRnVuY3Rpb25RdWV1
ZU11dGV4KTsKLQotICAgIEZ1bmN0aW9uV2l0aENvbnRleHRGaW5kZXIgcHJlZChGdW5jdGlvbldp
dGhDb250ZXh0KGZ1bmN0aW9uLCBjb250ZXh0KSk7Ci0KLSAgICB3aGlsZSAodHJ1ZSkgewotICAg
ICAgICAvLyBXZSBtdXN0IHJlZGVmaW5lICdpJyBlYWNoIHBhc3MsIGJlY2F1c2UgdGhlIGl0ZXJl
cmF0b3IncyBvcGVyYXRvcj0gCi0gICAgICAgIC8vIHJlcXVpcmVzICd0aGlzJyB0byBiZSB2YWxp
ZCwgYW5kIHJlbW92ZSgpIGludmFsaWRhdGVzIGFsbCBpdGVyYXRvcnMKLSAgICAgICAgRnVuY3Rp
b25RdWV1ZTo6aXRlcmF0b3IgaShmdW5jdGlvblF1ZXVlKCkuZmluZElmKHByZWQpKTsKLSAgICAg
ICAgaWYgKGkgPT0gZnVuY3Rpb25RdWV1ZSgpLmVuZCgpKQotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGZ1bmN0aW9uUXVldWUoKS5yZW1vdmUoaSk7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9p
ZCBjYWxsRnVuY3Rpb25PYmplY3Qodm9pZCogY29udGV4dCkKLXsKLSAgICBhdXRvIGZ1bmN0aW9u
ID0gc3RkOjp1bmlxdWVfcHRyPHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4+KHN0YXRpY19jYXN0PHN0
ZDo6ZnVuY3Rpb248dm9pZCAoKT4qPihjb250ZXh0KSk7Ci0gICAgKCpmdW5jdGlvbikoKTsKLX0K
LQotdm9pZCBjYWxsT25NYWluVGhyZWFkKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gZnVuY3Rpb24p
Ci17Ci0gICAgY2FsbE9uTWFpblRocmVhZChjYWxsRnVuY3Rpb25PYmplY3QsIHN0ZDo6bWFrZV91
bmlxdWU8c3RkOjpmdW5jdGlvbjx2b2lkICgpPj4oV1RGOjptb3ZlKGZ1bmN0aW9uKSkucmVsZWFz
ZSgpKTsKLX0KLQogdm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wgcGF1c2Vk
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9NYWluVGhyZWFkLmggYi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmgKaW5kZXggYzEw
M2RiMjY3ZGE0NjViNjk0YTlhMjJhZDRiOTMwMWI1NGI3ZjFlYy4uYzZlNDliMWE3ZGY5NGUwY2Qz
NDgxZjlhM2M3YTUyOWI4ODEwZmIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWFpblRo
cmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuaApAQCAtNDEsOSArNDEsNiBA
QCB0eXBlZGVmIHZvaWQgTWFpblRocmVhZEZ1bmN0aW9uKHZvaWQqKTsKIC8vIE11c3QgYmUgY2Fs
bGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdGlh
bGl6ZU1haW5UaHJlYWQoKTsKIAotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgY2FsbE9uTWFpblRo
cmVhZChNYWluVGhyZWFkRnVuY3Rpb24qLCB2b2lkKiBjb250ZXh0KTsKLVdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGNhbmNlbENhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiwgdm9p
ZCogY29udGV4dCk7Ci0KIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGNhbGxPbk1haW5UaHJlYWQo
c3RkOjpmdW5jdGlvbjx2b2lkICgpPik7CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTk0LDEw
ICs5MSwxOCBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZFRv
UHJvY2Vzc01haW5UaHJlYWQoKTsKIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NN
YWluVGhyZWFkUGxhdGZvcm0oKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwOTAKK1dURl9FWFBPUlRfUFJJVkFURSB2
b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiwgdm9pZCogY29udGV4dCk7
CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBjYW5jZWxDYWxsT25NYWluVGhyZWFkKE1haW5UaHJl
YWRGdW5jdGlvbiosIHZvaWQqIGNvbnRleHQpOworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdU
RgogCi11c2luZyBXVEY6OmNhbGxPbk1haW5UaHJlYWQ7CisjaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID09IDEwOTAKIHVzaW5nIFdURjo6Y2FuY2Vs
Q2FsbE9uTWFpblRocmVhZDsKKyNlbmRpZgorCit1c2luZyBXVEY6OmNhbGxPbk1haW5UaHJlYWQ7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiB1c2luZyBXVEY6OmNhbGxPbldlYlRocmVhZE9yRGlzcGF0
Y2hBc3luY09uTWFpblRocmVhZDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
bWFjL0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tIGIvU291cmNlL1dURi93dGYvbWFj
L0RlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tCmluZGV4IGVmZWQxYTFlOThlODNjYmEy
OGQ3ZGEzNWE2ZjA0ZmZlN2I4MmUwMmUuLjU0YWI1ZDA4NzQ5MDhlN2M1ZDEzOGQ2MTcwMzIzNTE1
YzZmNDM3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL21hYy9EZXByZWNhdGVkU3ltYm9s
c1VzZWRCeVNhZmFyaS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9tYWMvRGVwcmVjYXRlZFN5bWJv
bHNVc2VkQnlTYWZhcmkubW0KQEAgLTI1LDEyICsyNSwxNiBAQAogCiAjaW5jbHVkZSAiY29uZmln
LmgiCiAKKyNpZiBQTEFURk9STShNQUMpCisKICNpbmNsdWRlICJGdW5jdGlvbmFsLmgiCisjaW5j
bHVkZSAiSGFzaE1hcC5oIgorI2luY2x1ZGUgIkhhc2hTZXQuaCIKKyNpbmNsdWRlICJMb2NrLmgi
CiAjaW5jbHVkZSAiTWFpblRocmVhZC5oIgogI2luY2x1ZGUgIk5ldmVyRGVzdHJveWVkLmgiCiAj
aW5jbHVkZSAiU3RkTGliRXh0cmFzLmgiCi0jaW5jbHVkZSA8bXV0ZXg+Ci0jaW5jbHVkZSA8d3Rm
L0xvY2suaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KIAogLy8gVGhpcyBmaWxlIGNvbnRhaW5zIGRl
cHJlY2F0ZWQgc3ltYm9scyB0aGF0IHRoZSBsYXN0IHJlbGVhc2VkIHZlcnNpb24gb2YgU2FmYXJp
IHVzZXMuCiAvLyBPbmNlIFNhZmFyaSBzdG9wcyB1c2luZyB0aGVtLCB3ZSBzaG91bGQgcmVtb3Zl
IHRoZW0uCkBAIC01OCw0ICs2Miw5NyBAQCB2b2lkIHVubG9ja0F0b21pY2FsbHlJbml0aWFsaXpl
ZFN0YXRpY011dGV4KCkKICAgICBhdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleC51bmxv
Y2soKTsKIH0KIAorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTAxMTAw
CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBjYWxsT25NYWluVGhyZWFkKE1haW5UaHJlYWRGdW5j
dGlvbiosIHZvaWQqIGNvbnRleHQpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgY2FuY2VsQ2Fs
bE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24qLCB2b2lkKiBjb250ZXh0KTsKKworY2xh
c3MgTWFpblRocmVhZEZ1bmN0aW9uVHJhY2tlciB7CitwdWJsaWM6CisgICAgc3RhdGljIE1haW5U
aHJlYWRGdW5jdGlvblRyYWNrZXImIHNpbmdsZXRvbigpCisgICAgeworICAgICAgICBzdGQ6Om9u
Y2VfZmxhZyBvbmNlRmxhZzsKKworICAgICAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPE1h
aW5UaHJlYWRGdW5jdGlvblRyYWNrZXI+IHRyYWNrZXI7CisKKyAgICAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUZsYWcsIFsmXSB7CisgICAgICAgICAgICB0cmFja2VyLmNvbnN0cnVjdCgpOworICAg
ICAgICB9KTsKKworICAgICAgICByZXR1cm4gdHJhY2tlcjsKKyAgICB9CisKKyAgICB2b2lkIGNh
bGxPbk1haW5UaHJlYWQodm9pZCAoKmZ1bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQpCisg
ICAgeworICAgICAgICB1aW50NjRfdCBpZGVudGlmaWVyID0gYWRkRnVuY3Rpb24oZnVuY3Rpb24s
IGNvbnRleHQpOworCisgICAgICAgIFdURjo6Y2FsbE9uTWFpblRocmVhZChbdGhpcywgZnVuY3Rp
b24sIGNvbnRleHQsIGlkZW50aWZpZXJdIHsKKyAgICAgICAgICAgIGlmICghcmVtb3ZlSWRlbnRp
ZmllcihmdW5jdGlvbiwgY29udGV4dCwgaWRlbnRpZmllcikpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgICAgICBmdW5jdGlvbihjb250ZXh0KTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgdm9pZCBjYW5jZWxDYWxsT25NYWluVGhyZWFkKHZvaWQgKCpmdW5jdGlvbikodm9p
ZCopLCB2b2lkKiBjb250ZXh0KQorICAgIHsKKyAgICAgICAgcmVtb3ZlRnVuY3Rpb25zKGZ1bmN0
aW9uLCBjb250ZXh0KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdWludDY0X3QgYWRkRnVuY3Rp
b24odm9pZCAoKmZ1bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQpCisgICAgeworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tIb2xkZXIobV9sb2NrKTsKKyAgICAgICAgdWludDY0X3QgaWRlbnRp
ZmllciA9ICsrbV9jdXJyZW50SWRlbnRpZmllcjsKKworICAgICAgICBhdXRvJiBzZXQgPSBtX2Z1
bmN0aW9ucy5hZGQoeyBmdW5jdGlvbiwgY29udGV4dCB9LCBIYXNoU2V0PHVpbnQ2NF90PiB7IH0p
Lml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgc2V0LmFkZChpZGVudGlmaWVyKTsKKworICAgICAg
ICByZXR1cm4gaWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBib29sIHJlbW92ZUlkZW50aWZpZXIo
dm9pZCAoKmZ1bmN0aW9uKSh2b2lkKiksIHZvaWQqIGNvbnRleHQsIHVpbnQ2NF90IGlkZW50aWZp
ZXIpCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2tIb2xkZXIobV9sb2NrKTsKKworICAg
ICAgICBhdXRvIGl0ID0gbV9mdW5jdGlvbnMuZmluZCh7IGZ1bmN0aW9uLCBjb250ZXh0IH0pOwor
ICAgICAgICBpZiAoaXQgPT0gbV9mdW5jdGlvbnMuZW5kKCkpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgYXV0byYgc2V0ID0gaXQtPnZhbHVlOworICAgICAgICBpZiAoIXNl
dC5yZW1vdmUoaWRlbnRpZmllcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgaWYgKHNldC5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX2Z1bmN0aW9ucy5yZW1vdmUoaXQp
OworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZvaWQgcmVtb3ZlRnVuY3Rp
b25zKHZvaWQgKCpmdW5jdGlvbikodm9pZCopLCB2b2lkKiBjb250ZXh0KQorICAgIHsKKyAgICAg
ICAgTG9ja0hvbGRlciBsb2NrSG9sZGVyKG1fbG9jayk7CisKKyAgICAgICAgbV9mdW5jdGlvbnMu
cmVtb3ZlKHsgZnVuY3Rpb24sIGNvbnRleHQgfSk7CisgICAgfQorCisgICAgTG9jayBtX2xvY2s7
CisgICAgdWludDY0X3QgbV9jdXJyZW50SWRlbnRpZmllcjsKKyAgICBIYXNoTWFwPHN0ZDo6cGFp
cjx2b2lkICgqKSh2b2lkKiksIHZvaWQqPiwgSGFzaFNldDx1aW50NjRfdD4+IG1fZnVuY3Rpb25z
OworfTsKKwordm9pZCBjYWxsT25NYWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiogZnVuY3Rp
b24sIHZvaWQqIGNvbnRleHQpCit7CisgICAgTWFpblRocmVhZEZ1bmN0aW9uVHJhY2tlcjo6c2lu
Z2xldG9uKCkuY2FsbE9uTWFpblRocmVhZChmdW5jdGlvbiwgY29udGV4dCk7Cit9CisKK3ZvaWQg
Y2FuY2VsQ2FsbE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0aW9uLCB2b2lk
KiBjb250ZXh0KQoreworICAgIEFTU0VSVChmdW5jdGlvbik7CisKKyAgICBNYWluVGhyZWFkRnVu
Y3Rpb25UcmFja2VyOjpzaW5nbGV0b24oKS5jYW5jZWxDYWxsT25NYWluVGhyZWFkKGZ1bmN0aW9u
LCBjb250ZXh0KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmCg==
</data>
<flag name="review"
          id="284847"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>