<?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>134104</bug_id>
          
          <creation_ts>2014-06-20 07:14:50 -0700</creation_ts>
          <short_desc>CallbackMap::put should be able to take an unwrapped function</short_desc>
          <delta_ts>2014-06-21 15:26:13 -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>WebKit2</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>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1016921</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-06-20 07:14:50 -0700</bug_when>
    <thetext>Make it possible to pass an unwrapped function to CallbackMap::put</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016922</commentid>
    <comment_count>1</comment_count>
      <attachid>233426</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-20 07:16:55 -0700</bug_when>
    <thetext>Created attachment 233426
Overload CallbackMap::put</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016923</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-20 07:19:01 -0700</bug_when>
    <thetext>Attachment 233426 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/GenericCallback.h:190:  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>1017329</commentid>
    <comment_count>3</comment_count>
      <attachid>233544</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-21 13:15:01 -0700</bug_when>
    <thetext>Created attachment 233544
Overload CallbackMap::put</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017330</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-21 13:16:31 -0700</bug_when>
    <thetext>Attachment 233544 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/GenericCallback.h:190:  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>1017347</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-06-21 15:26:13 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r170254&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233426</attachid>
            <date>2014-06-20 07:16:55 -0700</date>
            <delta_ts>2014-06-21 13:14:58 -0700</delta_ts>
            <desc>Overload CallbackMap::put</desc>
            <filename>bug-134104-20140620071633.patch</filename>
            <type>text/plain</type>
            <size>14585</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDE4NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA2LTIwICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FsbGJhY2tNYXA6OnB1dCBzaG91
bGQgYmUgYWJsZSB0byB0YWtlIGFuIHVud3JhcHBlZCBmdW5jdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MTA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxi
YWNrLmg6CisgICAgICAgIChXZWJLaXQ6OkNhbGxiYWNrTWFwOjpwdXQpOiBBZGRlZCBhbiBvdmVy
bG9hZCB0aGF0IHRha2VzIGEgZnVuY3Rpb24gYW5kIGNyZWF0ZXMgYW5kIHB1dHMgYQorICAgICAg
ICBjYWxsYmFjay4gQ2hhbmdlZCBib3RoIG92ZXJsb2FkcyBvZiBwdXQoKSB0byByZXR1cm4gdGhl
IGNhbGxiYWNrIElELgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmFsaWRhdGVDb21tYW5kKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldFJlbmRlclRyZWVFeHRlcm5hbFJlcHJlc2VudGF0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRTb3VyY2VGb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0Qnl0ZWNvZGVQcm9maWxlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRDb250ZW50c0FzTUhUTUxEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldFNlbGVjdGlvbkFzV2ViQXJjaGl2
ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldE1haW5SZXNvdXJjZURh
dGFPZkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRSZXNvdXJjZURh
dGFGcm9tRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldFdlYkFyY2hp
dmVPZkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRNYXJrZWRSYW5n
ZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRTZWxlY3RlZFJhbmdl
QXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNoYXJhY3RlckluZGV4Rm9y
UG9pbnRBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zmlyc3RSZWN0Rm9y
Q2hhcmFjdGVyUmFuZ2VBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dGFr
ZVNuYXBzaG90KToKKwogMjAxNC0wNi0yMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCiAgICAgICAgIERvY3VtZW50IHRoZSB1bmRlcmx5aW5nIHR5cGVzIG9mIHRoZSBX
S1dpbmRvd0ZlYXR1cmVzIHJlY3QgcHJvcGVydGllcwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaAkocmV2aXNpb24gMTcwMTcxKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcs
MTAgKzE2NywzMCBAQCB2b2lkIGludmFsaWRhdGVDYWxsYmFja01hcChIYXNoTWFwPHVpbnQ2CiAK
IGNsYXNzIENhbGxiYWNrTWFwIHsKIHB1YmxpYzoKLSAgICB2b2lkIHB1dChQYXNzUmVmUHRyPENh
bGxiYWNrQmFzZT4gY2FsbGJhY2spCisgICAgdWludDY0X3QgcHV0KFBhc3NSZWZQdHI8Q2FsbGJh
Y2tCYXNlPiBjYWxsYmFjaykKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9tYXAuY29udGFpbnMo
Y2FsbGJhY2stPmNhbGxiYWNrSUQoKSkpOwotICAgICAgICBtX21hcC5zZXQoY2FsbGJhY2stPmNh
bGxiYWNrSUQoKSwgY2FsbGJhY2spOworCisgICAgICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBj
YWxsYmFjay0+Y2FsbGJhY2tJRCgpOworICAgICAgICBtX21hcC5zZXQoY2FsbGJhY2tJRCwgY2Fs
bGJhY2spOworICAgICAgICByZXR1cm4gY2FsbGJhY2tJRDsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTx1bnNpZ25lZCBJLCB0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBVPgorICAgIHN0cnVjdCBHZW5l
cmljQ2FsbGJhY2tUeXBlIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmljQ2FsbGJh
Y2tUeXBlPEkgLSAxLCBVLi4uLCBUPjo6dHlwZSB0eXBlOworICAgIH07CisKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZS4uLiBVPgorICAgIHN0cnVjdCBHZW5lcmljQ2FsbGJhY2tUeXBlPDEsIENhbGxi
YWNrQmFzZTo6RXJyb3IsIFUuLi4+IHsKKyAgICAgICAgdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8
VS4uLj4gdHlwZTsKKyAgICB9OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4KKyAgICB1
aW50NjRfdCBwdXQoc3RkOjpmdW5jdGlvbjx2b2lkIChULi4uKT4mJiBmdW5jdGlvbikKKyAgICB7
CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBHZW5lcmljQ2FsbGJhY2tUeXBlPHNpemVvZi4uLihU
KSwgVC4uLj46OnR5cGU6OmNyZWF0ZShzdGQ6Om1vdmUoZnVuY3Rpb24pKTsKKyAgICAgICAgcmV0
dXJuIHB1dChjYWxsYmFjayk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgVD4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAxNzAx
NzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTI0MSwxNSArMTI0MSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJT
ZWxlY3Rpb24oKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6dmFsaWRhdGVDb21tYW5kKGNvbnN0IFN0
cmluZyYgY29tbWFuZE5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJiwgYm9v
bCwgaW50MzJfdCwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0g
ICAgUmVmUHRyPFZhbGlkYXRlQ29tbWFuZENhbGxiYWNrPiBjYWxsYmFjayA9IFZhbGlkYXRlQ29t
bWFuZENhbGxiYWNrOjpjcmVhdGUoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKLQogICAg
IGlmICghaXNWYWxpZCgpKSB7Ci0gICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAg
ICAgIGNhbGxiYWNrRnVuY3Rpb24oU3RyaW5nKCksIGZhbHNlLCAwLCBDYWxsYmFja0Jhc2U6OkVy
cm9yOjpVbmtub3duKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNh
bGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAgIG1fY2FsbGJhY2tzLnB1dChj
YWxsYmFjayk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6
Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6VmFsaWRhdGVDb21tYW5kKGNvbW1hbmROYW1lLCBjYWxsYmFja0lEKSwgbV9wYWdl
SUQpOwogfQogCkBAIC0yMTg3LDE0OSArMjE4NCwxMjcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNv
dW50U3RyaW5nTWF0Y2hlcyhjbwogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdElu
TWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0
aW9uKQogewotICAgIFJlZlB0cjxTY3JpcHRWYWx1ZUNhbGxiYWNrPiBjYWxsYmFjayA9IFNjcmlw
dFZhbHVlQ2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAg
IGlmICghaXNWYWxpZCgpKSB7Ci0gICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAg
ICAgIGNhbGxiYWNrRnVuY3Rpb24obnVsbHB0ciwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93
bik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
Y2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKLSAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOwor
ICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxi
YWNrRnVuY3Rpb24pKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJ1
bkphdmFTY3JpcHRJbk1haW5GcmFtZShzY3JpcHQsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9
CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlv
bihzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6RXJyb3Ip
PiBjYWxsYmFja0Z1bmN0aW9uKQogewotICAgIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4gY2FsbGJh
Y2sgPSBTdHJpbmdDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7
CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsK
KyAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihTdHJpbmcoKSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6
VW5rbm93bik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgdWludDY0X3QgY2Fs
bGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgbV9jYWxsYmFja3MucHV0KGNh
bGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6
bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpHZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbihjYWxsYmFja0lEKSwg
bV9wYWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0U291cmNlRm9yRnJhbWUoV2Vi
RnJhbWVQcm94eSogZnJhbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJiwgQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPFN0cmlu
Z0NhbGxiYWNrPiBjYWxsYmFjayA9IFN0cmluZ0NhbGxiYWNrOjpjcmVhdGUoc3RkOjptb3ZlKGNh
bGxiYWNrRnVuY3Rpb24pKTsKICAgICBpZiAoIWlzVmFsaWQoKSkgewotICAgICAgICBjYWxsYmFj
ay0+aW52YWxpZGF0ZSgpOworICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKFN0cmluZygpLCBDYWxs
YmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAK
LSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICB1
aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1
bmN0aW9uKSk7CiAgICAgbV9sb2FkRGVwZW5kZW50U3RyaW5nQ2FsbGJhY2tJRHMuYWRkKGNhbGxi
YWNrSUQpOwotICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7CiAgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRTb3VyY2VGb3JGcmFtZShmcmFtZS0+ZnJhbWVJRCgp
LCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0Q29u
dGVudHNBc1N0cmluZyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFN0cmluZyYsIENhbGxiYWNr
QmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQogewotICAgIFJlZlB0cjxTdHJpbmdDYWxs
YmFjaz4gY2FsbGJhY2sgPSBTdHJpbmdDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92ZShjYWxsYmFj
a0Z1bmN0aW9uKSk7CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAgY2FsbGJhY2stPmlu
dmFsaWRhdGUoKTsKKyAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihTdHJpbmcoKSwgQ2FsbGJhY2tC
YXNlOjpFcnJvcjo6VW5rbm93bik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAg
dWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAgdWludDY0
X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlv
bikpOwogICAgIG1fbG9hZERlcGVuZGVudFN0cmluZ0NhbGxiYWNrSURzLmFkZChjYWxsYmFja0lE
KTsKLSAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOwogICAgIG1fcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6R2V0Q29udGVudHNBc1N0cmluZyhjYWxsYmFja0lEKSwgbV9wYWdl
SUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0Qnl0ZWNvZGVQcm9maWxlKHN0ZDo6ZnVu
Y3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNr
RnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiBjYWxsYmFjayA9IFN0cmlu
Z0NhbGxiYWNrOjpjcmVhdGUoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKICAgICBpZiAo
IWlzVmFsaWQoKSkgewotICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZSgpOworICAgICAgICBj
YWxsYmFja0Z1bmN0aW9uKFN0cmluZygpLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
Y2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxs
YmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgbV9sb2FkRGVwZW5k
ZW50U3RyaW5nQ2FsbGJhY2tJRHMuYWRkKGNhbGxiYWNrSUQpOwotICAgIG1fY2FsbGJhY2tzLnB1
dChjYWxsYmFjayk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRC
eXRlY29kZVByb2ZpbGUoY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KICAgICAKICNpZiBFTkFC
TEUoTUhUTUwpCiB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc01IVE1MRGF0YShzdGQ6
OmZ1bmN0aW9uPHZvaWQgKEFQSTo6RGF0YSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFj
a0Z1bmN0aW9uLCBib29sIHVzZUJpbmFyeUVuY29kaW5nKQogewotICAgIFJlZlB0cjxEYXRhQ2Fs
bGJhY2s+IGNhbGxiYWNrID0gRGF0YUNhbGxiYWNrOjpjcmVhdGUoc3RkOjptb3ZlKGNhbGxiYWNr
RnVuY3Rpb24pKTsKICAgICBpZiAoIWlzVmFsaWQoKSkgewotICAgICAgICBjYWxsYmFjay0+aW52
YWxpZGF0ZSgpOworICAgICAgICBjYWxsYmFrY0Z1bmN0aW9uKG51bGxwdHIsIENhbGxiYWNrQmFz
ZTo6RXJyb3I6OlVua25vd24pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0
X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgbV9jYWxsYmFja3Mu
cHV0KGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0
KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpHZXRDb250ZW50c0FzTUhUTUxEYXRhKGNhbGxiYWNrSUQsIHVzZUJpbmFy
eUVuY29kaW5nKSwgbV9wYWdlSUQpOwogfQogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpn
ZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcoc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBT
dHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKIHsKLSAgICBS
ZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IGNhbGxiYWNrID0gU3RyaW5nQ2FsbGJhY2s6OmNyZWF0ZShz
dGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIGlmICghaXNWYWxpZCgpKSB7Ci0gICAg
ICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oU3Ry
aW5nKCksIENhbGxiYWNrQmFzZTo6RXJyb3I6OlVua25vd24pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJ
RCgpOwotICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7CisgICAgdWludDY0X3QgY2FsbGJh
Y2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0U2VsZWN0aW9uT3JDb250ZW50
c0FzU3RyaW5nKGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5
OjpnZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVEYXRhKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpE
YXRhKiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVm
UHRyPERhdGFDYWxsYmFjaz4gY2FsbGJhY2sgPSBEYXRhQ2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1v
dmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIGlmICghaXNWYWxpZCgpKSB7Ci0gICAgICAgIGNh
bGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24obnVsbHB0ciwg
Q2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0g
ICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
bV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVEYXRh
KGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRNYWlu
UmVzb3VyY2VEYXRhT2ZGcmFtZShXZWJGcmFtZVByb3h5KiBmcmFtZSwgc3RkOjpmdW5jdGlvbjx2
b2lkIChBUEk6OkRhdGEqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikK
IHsKLSAgICBSZWZQdHI8RGF0YUNhbGxiYWNrPiBjYWxsYmFjayA9IERhdGFDYWxsYmFjazo6Y3Jl
YXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsK
LSAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgY2FsbGJhY2tGdW5jdGlv
bihudWxscHRyLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxi
YWNrSUQoKTsKLSAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNh
bGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsK
ICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldE1haW5SZXNvdXJjZURh
dGFPZkZyYW1lKGZyYW1lLT5mcmFtZUlEKCksIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAK
IHZvaWQgV2ViUGFnZVByb3h5OjpnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUoV2ViRnJhbWVQcm94
eSogZnJhbWUsIEFQSTo6VVJMKiByZXNvdXJjZVVSTCwgc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6
OkRhdGEqLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKIHsKLSAgICBS
ZWZQdHI8RGF0YUNhbGxiYWNrPiBjYWxsYmFjayA9IERhdGFDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6
bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAg
Y2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihudWxscHRy
LCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsK
LSAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQg
PSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldFJlc291cmNlRGF0YUZyb21GcmFtZShm
cmFtZS0+ZnJhbWVJRCgpLCByZXNvdXJjZVVSTC0+c3RyaW5nKCksIGNhbGxiYWNrSUQpLCBtX3Bh
Z2VJRCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRXZWJBcmNoaXZlT2ZGcmFtZShXZWJG
cmFtZVByb3h5KiBmcmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkRhdGEqLCBDYWxsYmFj
a0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKIHsKLSAgICBSZWZQdHI8RGF0YUNhbGxi
YWNrPiBjYWxsYmFjayA9IERhdGFDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1
bmN0aW9uKSk7CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAgY2FsbGJhY2stPmludmFs
aWRhdGUoKTsKKyAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihudWxscHRyLCBDYWxsYmFja0Jhc2U6
OkVycm9yOjpVbmtub3duKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICB1aW50
NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKLSAgICBtX2NhbGxiYWNr
cy5wdXQoY2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5w
dXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkdldFdlYkFyY2hpdmVPZkZyYW1lKGZyYW1lLT5mcmFtZUlEKCksIGNh
bGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTQ5NjgsMTYgKzQ5NDMsMTIgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6Omluc2VydFRleHRBc3luYyhjb25zdAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
Z2V0TWFya2VkUmFuZ2VBc3luYyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKEVkaXRpbmdSYW5nZSwgQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPEVkaXRp
bmdSYW5nZUNhbGxiYWNrPiBjYWxsYmFjayA9IEVkaXRpbmdSYW5nZUNhbGxiYWNrOjpjcmVhdGUo
c3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKLQogICAgIGlmICghaXNWYWxpZCgpKSB7Ci0g
ICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24o
RWRpdGluZ1JhbmdlKCksIENhbGxiYWNrQmFzZTo6RXJyb3I6OlVua25vd24pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxs
YmFja0lEKCk7Ci0gICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKLQorICAgIHVpbnQ2NF90
IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24p
KTsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0TWFya2VkUmFuZ2VB
c3luYyhjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC00OTkwLDM5ICs0OTYxLDI5IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpnZXRTZWxlY3RlZFJhbmdlQXN5bmMKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJ
RCgpOwotICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7Ci0KKyAgICB1aW50NjRfdCBjYWxs
YmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAg
ICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldFNlbGVjdGVkUmFuZ2VBc3lu
YyhjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y2hhcmFj
dGVySW5kZXhGb3JQb2ludEFzeW5jKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgc3Rk
OjpmdW5jdGlvbjx2b2lkICh1aW50NjRfdCwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNr
RnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPFVuc2lnbmVkQ2FsbGJhY2s+IGNhbGxiYWNrID0gVW5z
aWduZWRDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7Ci0KICAg
ICBpZiAoIWlzVmFsaWQoKSkgewotICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZSgpOworICAg
ICAgICBjYWxsYmFja0Z1bmN0aW9uKDAsIENhbGxiYWNrQmFzZTo6RXJyb3I6OlVua25vd24pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxi
YWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKLQorICAg
IHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNr
RnVuY3Rpb24pKTsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2hhcmFj
dGVySW5kZXhGb3JQb2ludEFzeW5jKHBvaW50LCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyhjb25z
dCBFZGl0aW5nUmFuZ2UmIHJhbmdlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBjb25zdCBFZGl0aW5nUmFuZ2UmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2Fs
bGJhY2tGdW5jdGlvbikKIHsKLSAgICBSZWZQdHI8UmVjdEZvckNoYXJhY3RlclJhbmdlQ2FsbGJh
Y2s+IGNhbGxiYWNrID0gUmVjdEZvckNoYXJhY3RlclJhbmdlQ2FsbGJhY2s6OmNyZWF0ZShzdGQ6
Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwotCiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAg
ICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihXZWJD
b3JlOjpJbnRSZWN0KCksIEVkaXRpbmdSYW5nZSgpLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtu
b3duKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQg
PSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7
Ci0KKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShj
YWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlQXN5bmMocmFuZ2UsIGNhbGxiYWNrSUQpLCBtX3Bh
Z2VJRCk7CiB9CiAKQEAgLTUwNDksMTYgKzUwMTAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNv
bmZpcm1Db21wb3NpdGlvbkFzeQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6dGFrZVNuYXBzaG90KElu
dFJlY3QgcmVjdCwgSW50U2l6ZSBiaXRtYXBTaXplLCBTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucywg
c3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIENhbGxi
YWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQogewotICAgIFJlZlB0cjxJbWFnZUNh
bGxiYWNrPiBjYWxsYmFjayA9IEltYWdlQ2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJh
Y2tGdW5jdGlvbikpOwotCiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKLSAgICAgICAgY2FsbGJhY2st
PmludmFsaWRhdGUoKTsKKyAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihTaGFyZWFibGVCaXRtYXA6
OkhhbmRsZSgpLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJ
RCgpOwotICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7Ci0KKyAgICB1aW50NjRfdCBjYWxs
YmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAg
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpUYWtlU25hcHNob3QocmVjdCwg
Yml0bWFwU2l6ZSwgb3B0aW9ucywgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233544</attachid>
            <date>2014-06-21 13:15:01 -0700</date>
            <delta_ts>2014-06-21 14:49:51 -0700</delta_ts>
            <desc>Overload CallbackMap::put</desc>
            <filename>bug-134104-20140621131439.patch</filename>
            <type>text/plain</type>
            <size>14571</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDI0OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA2LTIxICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FsbGJhY2tNYXA6OnB1dCBzaG91
bGQgYmUgYWJsZSB0byB0YWtlIGFuIHVud3JhcHBlZCBmdW5jdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MTA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxi
YWNrLmg6CisgICAgICAgIChXZWJLaXQ6OkNhbGxiYWNrTWFwOjpwdXQpOiBBZGRlZCBhbiBvdmVy
bG9hZCB0aGF0IHRha2VzIGEgZnVuY3Rpb24gYW5kIGNyZWF0ZXMgYW5kIHB1dHMgYQorICAgICAg
ICBjYWxsYmFjay4gQ2hhbmdlZCBib3RoIG92ZXJsb2FkcyBvZiBwdXQoKSB0byByZXR1cm4gdGhl
IGNhbGxiYWNrIElELgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmFsaWRhdGVDb21tYW5kKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldFJlbmRlclRyZWVFeHRlcm5hbFJlcHJlc2VudGF0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRTb3VyY2VGb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0Qnl0ZWNvZGVQcm9maWxlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRDb250ZW50c0FzTUhUTUxEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldFNlbGVjdGlvbkFzV2ViQXJjaGl2
ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldE1haW5SZXNvdXJjZURh
dGFPZkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRSZXNvdXJjZURh
dGFGcm9tRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldFdlYkFyY2hp
dmVPZkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRNYXJrZWRSYW5n
ZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXRTZWxlY3RlZFJhbmdl
QXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNoYXJhY3RlckluZGV4Rm9y
UG9pbnRBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zmlyc3RSZWN0Rm9y
Q2hhcmFjdGVyUmFuZ2VBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dGFr
ZVNuYXBzaG90KToKKwogMjAxNC0wNi0yMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgR2FtZXBhZCBBUEkgLSBEZXByZWNhdGUgdGhlIGV4aXN0aW5nIGltcGxl
bWVudGF0aW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNr
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFj
ay5oCShyZXZpc2lvbiAxNzAyNDkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VuZXJp
Y0NhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NywxMCArMTY3LDMwIEBAIHZvaWQgaW52
YWxpZGF0ZUNhbGxiYWNrTWFwKEhhc2hNYXA8dWludDYKIAogY2xhc3MgQ2FsbGJhY2tNYXAgewog
cHVibGljOgotICAgIHZvaWQgcHV0KFBhc3NSZWZQdHI8Q2FsbGJhY2tCYXNlPiBjYWxsYmFjaykK
KyAgICB1aW50NjRfdCBwdXQoUGFzc1JlZlB0cjxDYWxsYmFja0Jhc2U+IGNhbGxiYWNrKQogICAg
IHsKICAgICAgICAgQVNTRVJUKCFtX21hcC5jb250YWlucyhjYWxsYmFjay0+Y2FsbGJhY2tJRCgp
KSk7Ci0gICAgICAgIG1fbWFwLnNldChjYWxsYmFjay0+Y2FsbGJhY2tJRCgpLCBjYWxsYmFjayk7
CisKKyAgICAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7
CisgICAgICAgIG1fbWFwLnNldChjYWxsYmFja0lELCBjYWxsYmFjayk7CisgICAgICAgIHJldHVy
biBjYWxsYmFja0lEOworICAgIH0KKworICAgIHRlbXBsYXRlPHVuc2lnbmVkIEksIHR5cGVuYW1l
IFQsIHR5cGVuYW1lLi4uIFU+CisgICAgc3RydWN0IEdlbmVyaWNDYWxsYmFja1R5cGUgeworICAg
ICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNDYWxsYmFja1R5cGU8SSAtIDEsIFUuLi4sIFQ+
Ojp0eXBlIHR5cGU7CisgICAgfTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFU+CisgICAg
c3RydWN0IEdlbmVyaWNDYWxsYmFja1R5cGU8MSwgQ2FsbGJhY2tCYXNlOjpFcnJvciwgVS4uLj4g
eworICAgICAgICB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxVLi4uPiB0eXBlOworICAgIH07CisK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUPgorICAgIHVpbnQ2NF90IHB1dChzdGQ6OmZ1bmN0
aW9uPHZvaWQgKFQuLi4pPiBmdW5jdGlvbikKKyAgICB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sg
PSBHZW5lcmljQ2FsbGJhY2tUeXBlPHNpemVvZi4uLihUKSwgVC4uLj46OnR5cGU6OmNyZWF0ZShz
dGQ6Om1vdmUoZnVuY3Rpb24pKTsKKyAgICAgICAgcmV0dXJuIHB1dChjYWxsYmFjayk7CiAgICAg
fQogCiAgICAgdGVtcGxhdGU8Y2xhc3MgVD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAxNzAyNDkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI0MSwxNSArMTI0
MSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJTZWxlY3Rpb24oKQogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6dmFsaWRhdGVDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIHN0ZDo6
ZnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJiwgYm9vbCwgaW50MzJfdCwgQ2FsbGJhY2tCYXNl
OjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPFZhbGlkYXRlQ29tbWFu
ZENhbGxiYWNrPiBjYWxsYmFjayA9IFZhbGlkYXRlQ29tbWFuZENhbGxiYWNrOjpjcmVhdGUoc3Rk
Ojptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKLQogICAgIGlmICghaXNWYWxpZCgpKSB7Ci0gICAg
ICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oU3Ry
aW5nKCksIGZhbHNlLCAwLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2Fs
bGJhY2tJRCgpOwotICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7CisgICAgdWludDY0X3Qg
Y2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikp
OwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VmFsaWRhdGVDb21tYW5k
KGNvbW1hbmROYW1lLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC0yMTg3LDE0OSAr
MjE4NCwxMjcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvdW50U3RyaW5nTWF0Y2hlcyhjbwogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYg
c2NyaXB0LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIENh
bGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQogewotICAgIFJlZlB0cjxTY3Jp
cHRWYWx1ZUNhbGxiYWNrPiBjYWxsYmFjayA9IFNjcmlwdFZhbHVlQ2FsbGJhY2s6OmNyZWF0ZShz
dGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIGlmICghaXNWYWxpZCgpKSB7Ci0gICAg
ICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24obnVs
bHB0ciwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsK
LSAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQg
PSBtX2NhbGxiYWNrcy5wdXQoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShz
Y3JpcHQsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpn
ZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbihzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNv
bnN0IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQogewot
ICAgIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4gY2FsbGJhY2sgPSBTdHJpbmdDYWxsYmFjazo6Y3Jl
YXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsK
LSAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgY2FsbGJhY2tGdW5jdGlv
bihTdHJpbmcoKSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxs
YmFja0lEKCk7Ci0gICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBj
YWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7
CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRSZW5kZXJUcmVlRXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6Z2V0U291cmNlRm9yRnJhbWUoV2ViRnJhbWVQcm94eSogZnJhbWUsIHN0ZDo6
ZnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxi
YWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiBjYWxsYmFjayA9IFN0
cmluZ0NhbGxiYWNrOjpjcmVhdGUoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKICAgICBp
ZiAoIWlzVmFsaWQoKSkgewotICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZSgpOworICAgICAg
ICBjYWxsYmFja0Z1bmN0aW9uKFN0cmluZygpLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3du
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lE
ID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9j
YWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgbV9sb2FkRGVw
ZW5kZW50U3RyaW5nQ2FsbGJhY2tJRHMuYWRkKGNhbGxiYWNrSUQpOwotICAgIG1fY2FsbGJhY2tz
LnB1dChjYWxsYmFjayk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpH
ZXRTb3VyY2VGb3JGcmFtZShmcmFtZS0+ZnJhbWVJRCgpLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQp
OwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0Q29udGVudHNBc1N0cmluZyhzdGQ6OmZ1bmN0
aW9uPHZvaWQgKGNvbnN0IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1
bmN0aW9uKQogewotICAgIFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4gY2FsbGJhY2sgPSBTdHJpbmdD
YWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgaWYgKCFp
c1ZhbGlkKCkpIHsKLSAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgY2Fs
bGJhY2tGdW5jdGlvbihTdHJpbmcoKSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNh
bGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJh
Y2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIG1fbG9hZERlcGVuZGVu
dFN0cmluZ0NhbGxiYWNrSURzLmFkZChjYWxsYmFja0lEKTsKLSAgICBtX2NhbGxiYWNrcy5wdXQo
Y2FsbGJhY2spOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0Q29u
dGVudHNBc1N0cmluZyhjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6Z2V0Qnl0ZWNvZGVQcm9maWxlKHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5n
JiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRy
PFN0cmluZ0NhbGxiYWNrPiBjYWxsYmFjayA9IFN0cmluZ0NhbGxiYWNrOjpjcmVhdGUoc3RkOjpt
b3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKICAgICBpZiAoIWlzVmFsaWQoKSkgewotICAgICAgICBj
YWxsYmFjay0+aW52YWxpZGF0ZSgpOworICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKFN0cmluZygp
LCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsK
KyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxs
YmFja0Z1bmN0aW9uKSk7CiAgICAgbV9sb2FkRGVwZW5kZW50U3RyaW5nQ2FsbGJhY2tJRHMuYWRk
KGNhbGxiYWNrSUQpOwotICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7CiAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRCeXRlY29kZVByb2ZpbGUoY2FsbGJhY2tJ
RCksIG1fcGFnZUlEKTsKIH0KICAgICAKICNpZiBFTkFCTEUoTUhUTUwpCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6Z2V0Q29udGVudHNBc01IVE1MRGF0YShzdGQ6OmZ1bmN0aW9uPHZvaWQgKEFQSTo6RGF0
YSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uLCBib29sIHVzZUJpbmFy
eUVuY29kaW5nKQogewotICAgIFJlZlB0cjxEYXRhQ2FsbGJhY2s+IGNhbGxiYWNrID0gRGF0YUNh
bGxiYWNrOjpjcmVhdGUoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKICAgICBpZiAoIWlz
VmFsaWQoKSkgewotICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZSgpOworICAgICAgICBjYWxs
YmFrY0Z1bmN0aW9uKG51bGxwdHIsIENhbGxiYWNrQmFzZTo6RXJyb3I6OlVua25vd24pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNr
LT5jYWxsYmFja0lEKCk7Ci0gICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKKyAgICB1aW50
NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0
aW9uKSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRDb250ZW50
c0FzTUhUTUxEYXRhKGNhbGxiYWNrSUQsIHVzZUJpbmFyeUVuY29kaW5nKSwgbV9wYWdlSUQpOwog
fQogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNT
dHJpbmcoc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVy
cm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKIHsKLSAgICBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IGNh
bGxiYWNrID0gU3RyaW5nQ2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlv
bikpOwogICAgIGlmICghaXNWYWxpZCgpKSB7Ci0gICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRl
KCk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oU3RyaW5nKCksIENhbGxiYWNrQmFzZTo6RXJy
b3I6OlVua25vd24pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHVpbnQ2NF90
IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAgIG1fY2FsbGJhY2tzLnB1
dChjYWxsYmFjayk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChz
dGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6R2V0U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5nKGNhbGxiYWNrSUQpLCBt
X3BhZ2VJRCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRTZWxlY3Rpb25Bc1dlYkFyY2hp
dmVEYXRhKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpEYXRhKiwgQ2FsbGJhY2tCYXNlOjpFcnJv
cik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPERhdGFDYWxsYmFjaz4gY2FsbGJh
Y2sgPSBEYXRhQ2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwog
ICAgIGlmICghaXNWYWxpZCgpKSB7Ci0gICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7Cisg
ICAgICAgIGNhbGxiYWNrRnVuY3Rpb24obnVsbHB0ciwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5r
bm93bik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgdWludDY0X3QgY2FsbGJh
Y2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgbV9jYWxsYmFja3MucHV0KGNhbGxi
YWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92
ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpHZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVEYXRhKGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7
CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShXZWJG
cmFtZVByb3h5KiBmcmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkRhdGEqLCBDYWxsYmFj
a0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKIHsKLSAgICBSZWZQdHI8RGF0YUNhbGxi
YWNrPiBjYWxsYmFjayA9IERhdGFDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92ZShjYWxsYmFja0Z1
bmN0aW9uKSk7CiAgICAgaWYgKCFpc1ZhbGlkKCkgfHwgIWZyYW1lKSB7Ci0gICAgICAgIGNhbGxi
YWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24obnVsbHB0ciwgQ2Fs
bGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
Ci0gICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAg
bV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9j
YWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShmcmFt
ZS0+ZnJhbWVJRCgpLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6Z2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKFdlYkZyYW1lUHJveHkqIGZyYW1lLCBBUEk6
OlVSTCogcmVzb3VyY2VVUkwsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpEYXRhKiwgQ2FsbGJh
Y2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPERhdGFDYWxs
YmFjaz4gY2FsbGJhY2sgPSBEYXRhQ2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tG
dW5jdGlvbikpOwogICAgIGlmICghaXNWYWxpZCgpKSB7Ci0gICAgICAgIGNhbGxiYWNrLT5pbnZh
bGlkYXRlKCk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24obnVsbHB0ciwgQ2FsbGJhY2tCYXNl
OjpFcnJvcjo6VW5rbm93bik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgdWlu
dDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgbV9jYWxsYmFj
a3MucHV0KGNhbGxiYWNrKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3Mu
cHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpHZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUoZnJhbWUtPmZyYW1lSUQo
KSwgcmVzb3VyY2VVUkwtPnN0cmluZygpLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViRnJhbWVQcm94eSogZnJh
bWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpEYXRhKiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+
IGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgUmVmUHRyPERhdGFDYWxsYmFjaz4gY2FsbGJhY2sg
PSBEYXRhQ2FsbGJhY2s6OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAg
IGlmICghaXNWYWxpZCgpKSB7Ci0gICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAg
ICAgIGNhbGxiYWNrRnVuY3Rpb24obnVsbHB0ciwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93
bik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgdWludDY0X3QgY2FsbGJhY2tJ
RCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNr
KTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShj
YWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpHZXRXZWJBcmNoaXZlT2ZGcmFtZShmcmFtZS0+ZnJhbWVJRCgpLCBjYWxsYmFja0lEKSwgbV9w
YWdlSUQpOwogfQogCkBAIC00OTY4LDE2ICs0OTQzLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpp
bnNlcnRUZXh0QXN5bmMoY29uc3QKIAogdm9pZCBXZWJQYWdlUHJveHk6OmdldE1hcmtlZFJhbmdl
QXN5bmMoc3RkOjpmdW5jdGlvbjx2b2lkIChFZGl0aW5nUmFuZ2UsIENhbGxiYWNrQmFzZTo6RXJy
b3IpPiBjYWxsYmFja0Z1bmN0aW9uKQogewotICAgIFJlZlB0cjxFZGl0aW5nUmFuZ2VDYWxsYmFj
az4gY2FsbGJhY2sgPSBFZGl0aW5nUmFuZ2VDYWxsYmFjazo6Y3JlYXRlKHN0ZDo6bW92ZShjYWxs
YmFja0Z1bmN0aW9uKSk7Ci0KICAgICBpZiAoIWlzVmFsaWQoKSkgewotICAgICAgICBjYWxsYmFj
ay0+aW52YWxpZGF0ZSgpOworICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKEVkaXRpbmdSYW5nZSgp
LCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAg
IG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7Ci0KKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
bV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAgICAgcHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldE1hcmtlZFJhbmdlQXN5bmMoY2FsbGJhY2tJ
RCksIG1fcGFnZUlEKTsKIH0KIApAQCAtNDk5MCwzOSArNDk2MSwyOSBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6Z2V0U2VsZWN0ZWRSYW5nZUFzeW5jCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKLSAgICBtX2Nh
bGxiYWNrcy5wdXQoY2FsbGJhY2spOwotCisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2Fs
bGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIHByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRTZWxlY3RlZFJhbmdlQXN5bmMoY2FsbGJhY2tJRCks
IG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmNoYXJhY3RlckluZGV4Rm9yUG9p
bnRBc3luYyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCAodWludDY0X3QsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQogewot
ICAgIFJlZlB0cjxVbnNpZ25lZENhbGxiYWNrPiBjYWxsYmFjayA9IFVuc2lnbmVkQ2FsbGJhY2s6
OmNyZWF0ZShzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwotCiAgICAgaWYgKCFpc1ZhbGlk
KCkpIHsKLSAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgY2FsbGJhY2tG
dW5jdGlvbigwLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpVbmtub3duKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJ
RCgpOwotICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7Ci0KKyAgICB1aW50NjRfdCBjYWxs
YmFja0lEID0gbV9jYWxsYmFja3MucHV0KHN0ZDo6bW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiAg
ICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNoYXJhY3RlckluZGV4Rm9yUG9p
bnRBc3luYyhwb2ludCwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQYWdl
UHJveHk6OmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlQXN5bmMoY29uc3QgRWRpdGluZ1Jhbmdl
JiByYW5nZSwgc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29u
c3QgRWRpdGluZ1JhbmdlJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxiYWNrRnVuY3Rpb24p
CiB7Ci0gICAgUmVmUHRyPFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrPiBjYWxsYmFjayA9
IFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrOjpjcmVhdGUoc3RkOjptb3ZlKGNhbGxiYWNr
RnVuY3Rpb24pKTsKLQogICAgIGlmICghaXNWYWxpZCgpKSB7Ci0gICAgICAgIGNhbGxiYWNrLT5p
bnZhbGlkYXRlKCk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oV2ViQ29yZTo6SW50UmVjdCgp
LCBFZGl0aW5nUmFuZ2UoKSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNh
bGxiYWNrSUQoKTsKLSAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOwotCisgICAgdWludDY0
X3QgY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlv
bikpOwogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpGaXJzdFJlY3RGb3JD
aGFyYWN0ZXJSYW5nZUFzeW5jKHJhbmdlLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBA
IC01MDQ5LDE2ICs1MDEwLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb25maXJtQ29tcG9zaXRp
b25Bc3kKIAogdm9pZCBXZWJQYWdlUHJveHk6OnRha2VTbmFwc2hvdChJbnRSZWN0IHJlY3QsIElu
dFNpemUgYml0bWFwU2l6ZSwgU25hcHNob3RPcHRpb25zIG9wdGlvbnMsIHN0ZDo6ZnVuY3Rpb248
dm9pZCAoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBDYWxsYmFja0Jhc2U6OkVycm9y
KT4gY2FsbGJhY2tGdW5jdGlvbikKIHsKLSAgICBSZWZQdHI8SW1hZ2VDYWxsYmFjaz4gY2FsbGJh
Y2sgPSBJbWFnZUNhbGxiYWNrOjpjcmVhdGUoc3RkOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsK
LQogICAgIGlmICghaXNWYWxpZCgpKSB7Ci0gICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7
CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUoKSwgQ2Fs
bGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKLSAgICBtX2Nh
bGxiYWNrcy5wdXQoY2FsbGJhY2spOwotCisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fY2Fs
bGJhY2tzLnB1dChzdGQ6Om1vdmUoY2FsbGJhY2tGdW5jdGlvbikpOwogICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VGFrZVNuYXBzaG90KHJlY3QsIGJpdG1hcFNpemUsIG9w
dGlvbnMsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAK
</data>
<flag name="review"
          id="258038"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>