<?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>134069</bug_id>
          
          <creation_ts>2014-06-19 12:23:07 -0700</creation_ts>
          <short_desc>Use a single map for all callback types in WebPageProxy</short_desc>
          <delta_ts>2014-06-19 17:50:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1016720</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-06-19 12:23:07 -0700</bug_when>
    <thetext>Replace WebPageProxy’s multiple callback maps with one map for all callback types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016722</commentid>
    <comment_count>1</comment_count>
      <attachid>233373</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-19 12:28:10 -0700</bug_when>
    <thetext>Created attachment 233373
Part 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016724</commentid>
    <comment_count>2</comment_count>
      <attachid>233373</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-19 12:40:36 -0700</bug_when>
    <thetext>Comment on attachment 233373
Part 1

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

&gt; Source/WebKit2/UIProcess/GenericCallback.h:177
&gt; +    typename std::enable_if&lt;std::is_base_of&lt;CallbackBase, T&gt;::value, RefPtr&lt;T&gt;&gt;::type take(uint64_t callbackID)

Oops, the enable_if isn’t necessary anymore. I’ll get rid of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016725</commentid>
    <comment_count>3</comment_count>
      <attachid>233373</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-19 12:45:15 -0700</bug_when>
    <thetext>Comment on attachment 233373
Part 1

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

&gt; Source/WebKit2/UIProcess/GenericCallback.h:170
&gt; +    void put(PassRefPtr&lt;CallbackBase&gt; callback)

I think set or add would be better than put but I don&apos;t feel strongly about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016727</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-06-19 12:52:18 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 233373 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=233373&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/GenericCallback.h:170
&gt; &gt; +    void put(PassRefPtr&lt;CallbackBase&gt; callback)
&gt; 
&gt; I think set or add would be better than put but I don&apos;t feel strongly about it.

I wanted to use something different from the HashMap function names add and set, because the argument is consumed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016731</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-06-19 12:59:54 -0700</bug_when>
    <thetext>Committed part 1 as &lt;http://trac.webkit.org/r170158&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016774</commentid>
    <comment_count>6</comment_count>
      <attachid>233384</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-19 14:41:36 -0700</bug_when>
    <thetext>Created attachment 233384
Part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016810</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-06-19 17:50:00 -0700</bug_when>
    <thetext>Committed part 2 as &lt;http://trac.webkit.org/r170168&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233373</attachid>
            <date>2014-06-19 12:28:10 -0700</date>
            <delta_ts>2014-06-19 12:45:14 -0700</delta_ts>
            <desc>Part 1</desc>
            <filename>bug-134069-20140619122748.patch</filename>
            <type>text/plain</type>
            <size>25776</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDE1NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE0LTA2LTE5ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGEgc2luZ2xlIG1hcCBmb3Ig
YWxsIGNhbGxiYWNrIHR5cGVzIGluIFdlYlBhZ2VQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmg6
CisgICAgICAgIChXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6YXMpOiBBZGRlZC4gUGVyZm9ybXMgYSBk
eW5hbWljIGNhc3QgdG8gYSBzcGVjaWZpYyBjYWxsYmFjayB0eXBlLgorICAgICAgICAoV2ViS2l0
OjpDYWxsYmFja0Jhc2U6OkNhbGxiYWNrQmFzZSk6IEFkZGVkIGEgdHlwZSBwYXJhbWV0ZXIsIHdo
aWNoIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZQorICAgICAgICB0aGUgbmV3IG1fdHlwZSBtZW1iZXIu
CisgICAgICAgIChXZWJLaXQ6OkdlbmVyaWNDYWxsYmFjazo6R2VuZXJpY0NhbGxiYWNrKTogUGFz
cyB0aGUgdHlwZSB0byB0aGUgYmFzZSBjbGFzcyBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdlYktp
dDo6R2VuZXJpY0NhbGxiYWNrOjp0eXBlKTogQWRkZWQuIFJldHVybnMgYSB1bmlxdWUgdHlwZS4K
KyAgICAgICAgKFdlYktpdDo6R2VuZXJpY0NhbGxiYWNrOjppbnZhbGlkYXRlKTogTm93IHZpcnR1
YWwuCisKKyAgICAgICAgKFdlYktpdDo6Q2FsbGJhY2tNYXA6OnB1dCk6IEFkZHMgdGhlIGNhbGxi
YWNrIHRvIHRoZSBtYXAuCisgICAgICAgIChXZWJLaXQ6OkNhbGxiYWNrTWFwOjp0YWtlKTogUmVt
b3ZlcyB0aGUgY2FsbGJhY2sgZnJvbSB0aGUgbWFwLCBhbmQgZHluYW1pY2FsbHkgY2FzdHMgaXQg
dG8KKyAgICAgICAgdGhlIHNwZWNpZmllZCB0eXBlLgorICAgICAgICAoV2ViS2l0OjpDYWxsYmFj
a01hcDo6aW52YWxpZGF0ZSk6IEludmFsaWRhdGVzIHRoZSBtYXAuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp2
YWxpZGF0ZUNvbW1hbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bkphdmFT
Y3JpcHRJbk1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0UmVu
ZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmdldFNvdXJjZUZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpnZXRDb250ZW50c0FzU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpn
ZXRCeXRlY29kZVByb2ZpbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldFNl
bGVjdGlvbk9yQ29udGVudHNBc1N0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6Z2V0U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6Z2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmZvcmNlUmVwYWludCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6Y2xlYXJMb2FkRGVwZW5kZW50Q2FsbGJhY2tzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojp2b2lkQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRh
dGFDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aW1hZ2VDYWxsYmFj
ayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RyaW5nQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNjcmlwdFZhbHVlQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbXB1dGVkUGFnZXNDYWxsYmFjayk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmFsaWRhdGVDb21tYW5kQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuc2lnbmVkQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmVkaXRpbmdSYW5nZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpyZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VDYWxsYmFjayk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVzZXRTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRyYXdSZWN0VG9JbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZHJhd1BhZ2VzVG9QREYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omdl
dE1hcmtlZFJhbmdlQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldFNl
bGVjdGVkUmFuZ2VBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2hhcmFj
dGVySW5kZXhGb3JQb2ludEFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpm
aXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojp0YWtlU25hcHNob3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXN0dXJlQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnRvdWNoZXNDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6YXV0b2NvcnJlY3Rpb25EYXRhQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpY3RhdGlvbkNvbnRleHRDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6YXV0b2NvcnJlY3Rpb25Db250ZXh0Q2FsbGJhY2spOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlbGVjdFdpdGhHZXN0dXJlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVTZWxlY3Rpb25XaXRoVG91Y2hlcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdEF1dG9jb3JyZWN0aW9uRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YXBwbHlBdXRvY29ycmVjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdERpY3RhdGlvbkNvbnRleHQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RBdXRvY29ycmVjdGlvbkNvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlbGVjdFdpdGhUd29Ub3VjaGVzKToKKwogMjAx
NC0wNi0xOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFN3aXRj
aCB0byB1c2luZyB0aGUgcHJvY2VzcyBwYXJhbWV0ZXJzIGR1cmluZyBpbml0aWFsaXNhdGlvbgpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaAkocmV2aXNp
b24gMTcwMTQ1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Miw5ICs1MiwyNCBAQCBwdWJsaWM6CiAKICAgICB1aW50NjRf
dCBjYWxsYmFja0lEKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFja0lEOyB9CiAKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBUPgorICAgIFQqIGFzKCkKKyAgICB7CisgICAgICAgIGlmIChUOjp0eXBlKCkg
PT0gbV90eXBlKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPih0aGlzKTsKKwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZShFcnJvcikgPSAwOworCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgQ2FsbGJhY2tCYXNl
KCkKLSAgICAgICAgOiBtX2NhbGxiYWNrSUQoZ2VuZXJhdGVDYWxsYmFja0lEKCkpCisgICAgc3Ry
dWN0IFR5cGVUYWcgeyB9OworICAgIHR5cGVkZWYgY29uc3QgVHlwZVRhZyogVHlwZTsKKworICAg
IGV4cGxpY2l0IENhbGxiYWNrQmFzZShUeXBlIHR5cGUpCisgICAgICAgIDogbV90eXBlKHR5cGUp
CisgICAgICAgICwgbV9jYWxsYmFja0lEKGdlbmVyYXRlQ2FsbGJhY2tJRCgpKQogICAgIHsKICAg
ICB9CiAKQEAgLTY2LDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHVuaXF1ZUNh
bGxiYWNrSUQrKzsKICAgICB9CiAKKyAgICBUeXBlIG1fdHlwZTsKICAgICB1aW50NjRfdCBtX2Nh
bGxiYWNrSUQ7CiB9OwogCkBAIC05OSw3ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIHBlcmZv
cm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZSgpOwogICAgIH0KIAotICAgIHZvaWQgaW52YWxpZGF0
ZShFcnJvciBlcnJvciA9IEVycm9yOjpVbmtub3duKQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlKEVycm9yIGVycm9yID0gRXJyb3I6OlVua25vd24pIG92ZXJyaWRlIGZpbmFsCiAgICAgewog
ICAgICAgICBpZiAoIW1fY2FsbGJhY2spCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMTEsMTAg
KzEyNywxOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgR2VuZXJpY0NhbGxiYWNrKENhbGxi
YWNrRnVuY3Rpb24gY2FsbGJhY2spCi0gICAgICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykKKyAg
ICAgICAgOiBDYWxsYmFja0Jhc2UodHlwZSgpKQorICAgICAgICAsIG1fY2FsbGJhY2soY2FsbGJh
Y2spCiAgICAgewogICAgIH0KIAorICAgIGZyaWVuZCBjbGFzcyBDYWxsYmFja0Jhc2U7CisgICAg
c3RhdGljIFR5cGUgdHlwZSgpCisgICAgeworICAgICAgICBzdGF0aWMgVHlwZVRhZyB0YWc7Cisg
ICAgICAgIHJldHVybiAmdGFnOworICAgIH0KKwogICAgIENhbGxiYWNrRnVuY3Rpb24gbV9jYWxs
YmFjazsKIH07CiAKQEAgLTE0MSw2ICsxNjUsMzMgQEAgdm9pZCBpbnZhbGlkYXRlQ2FsbGJhY2tN
YXAoSGFzaE1hcDx1aW50NgogICAgIGNhbGxiYWNrTWFwLmNsZWFyKCk7CiB9CiAKK2NsYXNzIENh
bGxiYWNrTWFwIHsKK3B1YmxpYzoKKyAgICB2b2lkIHB1dChQYXNzUmVmUHRyPENhbGxiYWNrQmFz
ZT4gY2FsbGJhY2spCisgICAgeworICAgICAgICBBU1NFUlQoIW1fbWFwLmNvbnRhaW5zKGNhbGxi
YWNrLT5jYWxsYmFja0lEKCkpKTsKKyAgICAgICAgbV9tYXAuc2V0KGNhbGxiYWNrLT5jYWxsYmFj
a0lEKCksIGNhbGxiYWNrKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBUPgorICAgIHR5
cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfYmFzZV9vZjxDYWxsYmFja0Jhc2UsIFQ+Ojp2
YWx1ZSwgUmVmUHRyPFQ+Pjo6dHlwZSB0YWtlKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgewor
ICAgICAgICBSZWZQdHI8Q2FsbGJhY2tCYXNlPiBiYXNlID0gbV9tYXAudGFrZShjYWxsYmFja0lE
KTsKKyAgICAgICAgaWYgKCFiYXNlKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKGJhc2UucmVsZWFzZSgpLmxlYWtSZWYoKS0+YXM8VD4oKSk7
CisgICAgfQorCisgICAgdm9pZCBpbnZhbGlkYXRlKENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3Ip
CisgICAgeworICAgICAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9tYXAsIGVycm9yKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPENhbGxiYWNrQmFz
ZT4+IG1fbWFwOworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBHZW5l
cmljQ2FsbGJhY2tfaApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAJKHJldmlzaW9uIDE3MDE0NSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ5LDcgKzEyNDksNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6dmFsaWRhdGVDb21tYW5kKGNvbnN0CiAgICAgfQogCiAgICAgdWludDY0X3Qg
Y2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgbV92YWxpZGF0ZUNvbW1h
bmRDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrKTsKKyAgICBtX2NhbGxiYWNrcy5w
dXQoY2FsbGJhY2spOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VmFs
aWRhdGVDb21tYW5kKGNvbW1hbmROYW1lLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBA
IC0yMTk0LDcgKzIxOTQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluTWFp
bkZyCiAgICAgfQogCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFj
a0lEKCk7Ci0gICAgbV9zY3JpcHRWYWx1ZUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJh
Y2spOworICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7CiAgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoc2NyaXB0LCBjYWxs
YmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC0yMjA3LDcgKzIyMDcsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6Z2V0UmVuZGVyVHJlZUV4dGVybmFsCiAgICAgfQogICAgIAogICAgIHVpbnQ2NF90
IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAgIG1fc3RyaW5nQ2FsbGJh
Y2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjayk7CisgICAgbV9jYWxsYmFja3MucHV0KGNhbGxi
YWNrKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldFJlbmRlclRy
ZWVFeHRlcm5hbFJlcHJlc2VudGF0aW9uKGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAg
LTIyMjEsNyArMjIyMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRTb3VyY2VGb3JGcmFtZShX
ZWIKICAgICAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQo
KTsKICAgICBtX2xvYWREZXBlbmRlbnRTdHJpbmdDYWxsYmFja0lEcy5hZGQoY2FsbGJhY2tJRCk7
Ci0gICAgbV9zdHJpbmdDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrKTsKKyAgICBt
X2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6R2V0U291cmNlRm9yRnJhbWUoZnJhbWUtPmZyYW1lSUQoKSwgY2FsbGJhY2tJRCks
IG1fcGFnZUlEKTsKIH0KIApAQCAtMjIzNSw3ICsyMjM1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmdldENvbnRlbnRzQXNTdHJpbmcocwogICAgIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBj
YWxsYmFjay0+Y2FsbGJhY2tJRCgpOwogICAgIG1fbG9hZERlcGVuZGVudFN0cmluZ0NhbGxiYWNr
SURzLmFkZChjYWxsYmFja0lEKTsKLSAgICBtX3N0cmluZ0NhbGxiYWNrcy5zZXQoY2FsbGJhY2tJ
RCwgY2FsbGJhY2spOworICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7CiAgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRDb250ZW50c0FzU3RyaW5nKGNhbGxiYWNr
SUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTIyNDksNyArMjI0OSw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpnZXRCeXRlY29kZVByb2ZpbGUoc3QKICAgICAKICAgICB1aW50NjRfdCBjYWxsYmFja0lE
ID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKICAgICBtX2xvYWREZXBlbmRlbnRTdHJpbmdDYWxs
YmFja0lEcy5hZGQoY2FsbGJhY2tJRCk7Ci0gICAgbV9zdHJpbmdDYWxsYmFja3Muc2V0KGNhbGxi
YWNrSUQsIGNhbGxiYWNrKTsKKyAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOwogICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0Qnl0ZWNvZGVQcm9maWxlKGNhbGxi
YWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAgICAgCkBAIC0yMjc3LDcgKzIyNzcsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Z2V0U2VsZWN0aW9uT3JDb250ZW50CiAgICAgfQogICAgIAogICAgIHVpbnQ2
NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAgIG1fc3RyaW5nQ2Fs
bGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjayk7CisgICAgbV9jYWxsYmFja3MucHV0KGNh
bGxiYWNrKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldFNlbGVj
dGlvbk9yQ29udGVudHNBc1N0cmluZyhjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC0y
MjkwLDcgKzIyOTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0U2VsZWN0aW9uQXNXZWJBcmNo
CiAgICAgfQogICAgIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJh
Y2tJRCgpOwotICAgIG1fZGF0YUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2spOwor
ICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpHZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVEYXRhKGNhbGxiYWNrSUQpLCBt
X3BhZ2VJRCk7CiB9CiAKQEAgLTIzMDMsNyArMjMwMyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpn
ZXRNYWluUmVzb3VyY2VEYXRhT2YKICAgICB9CiAgICAgCiAgICAgdWludDY0X3QgY2FsbGJhY2tJ
RCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgbV9kYXRhQ2FsbGJhY2tzLnNldChjYWxs
YmFja0lELCBjYWxsYmFjayk7CisgICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldE1haW5SZXNvdXJjZURhdGFPZkZy
YW1lKGZyYW1lLT5mcmFtZUlEKCksIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTIz
MTYsNyArMjMxNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRSZXNvdXJjZURhdGFGcm9tRnIK
ICAgICB9CiAgICAgCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFj
a0lEKCk7Ci0gICAgbV9kYXRhQ2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjayk7Cisg
ICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkdldFJlc291cmNlRGF0YUZyb21GcmFtZShmcmFtZS0+ZnJhbWVJRCgpLCBy
ZXNvdXJjZVVSTC0+c3RyaW5nKCksIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTIz
MjksNyArMjMyOSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSgK
ICAgICB9CiAgICAgCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFj
a0lEKCk7Ci0gICAgbV9kYXRhQ2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjayk7Cisg
ICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkdldFdlYkFyY2hpdmVPZkZyYW1lKGZyYW1lLT5mcmFtZUlEKCksIGNhbGxi
YWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKQEAgLTIzNDMsNyArMjM0Myw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojpmb3JjZVJlcGFpbnQoUGFzc1JlZlAKICAgICB9CiAKICAgICB1aW50NjRfdCBjYWxs
YmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKLSAgICBtX3ZvaWRDYWxsYmFja3Muc2V0
KGNhbGxiYWNrSUQsIGNhbGxiYWNrKTsKKyAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOwog
ICAgIG1fZHJhd2luZ0FyZWEtPndhaXRGb3JCYWNraW5nU3RvcmVVcGRhdGVPbk5leHRQYWludCgp
OwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Rm9yY2VSZXBhaW50KGNh
bGxiYWNrSUQpLCBtX3BhZ2VJRCk7IAogfQpAQCAtMjUwMSw3ICsyNTAxLDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmNsZWFyTG9hZERlcGVuZGVudENhbAogICAgIG1fbG9hZERlcGVuZGVudFN0cmlu
Z0NhbGxiYWNrSURzLmNsZWFyKCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNhbGxi
YWNrSURzQ29weS5zaXplKCk7ICsraSkgewotICAgICAgICBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+
IGNhbGxiYWNrID0gbV9zdHJpbmdDYWxsYmFja3MudGFrZShjYWxsYmFja0lEc0NvcHlbaV0pOwor
ICAgICAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxTdHJpbmdDYWxsYmFjaz4o
Y2FsbGJhY2tJRHNDb3B5W2ldKTsKICAgICAgICAgaWYgKGNhbGxiYWNrKQogICAgICAgICAgICAg
Y2FsbGJhY2stPmludmFsaWRhdGUoKTsKICAgICB9CkBAIC00MDAwLDcgKzQwMDAsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6c3RvcFJlc3BvbnNpdmVuZXNzVGltCiAKIHZvaWQgV2ViUGFnZVByb3h5
Ojp2b2lkQ2FsbGJhY2sodWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBSZWZQdHI8Vm9pZENh
bGxiYWNrPiBjYWxsYmFjayA9IG1fdm9pZENhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAg
IGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlPFZvaWRDYWxsYmFjaz4oY2FsbGJhY2tJ
RCk7CiAgICAgaWYgKCFjYWxsYmFjaykgewogICAgICAgICAvLyBGSVhNRTogTG9nIGVycm9yIG9y
IGFzc2VydC4KICAgICAgICAgcmV0dXJuOwpAQCAtNDAxMSw3ICs0MDExLDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnZvaWRDYWxsYmFjayh1aW50NjRfdAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGF0
YUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSwgdWludDY0
X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBSZWZQdHI8RGF0YUNhbGxiYWNrPiBjYWxsYmFjayA9IG1f
ZGF0YUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAgIGF1dG8gY2FsbGJhY2sgPSBtX2Nh
bGxiYWNrcy50YWtlPERhdGFDYWxsYmFjaz4oY2FsbGJhY2tJRCk7CiAgICAgaWYgKCFjYWxsYmFj
aykgewogICAgICAgICAvLyBGSVhNRTogTG9nIGVycm9yIG9yIGFzc2VydC4KICAgICAgICAgcmV0
dXJuOwpAQCAtNDAyMiw3ICs0MDIyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRhdGFDYWxsYmFj
ayhjb25zdCBJUAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6aW1hZ2VDYWxsYmFjayhjb25zdCBTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZSYgYml0bWFwSGFuZGxlLCB1aW50NjRfdCBjYWxsYmFja0lEKQog
ewotICAgIFJlZlB0cjxJbWFnZUNhbGxiYWNrPiBjYWxsYmFjayA9IG1faW1hZ2VDYWxsYmFja3Mu
dGFrZShjYWxsYmFja0lEKTsKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxJ
bWFnZUNhbGxiYWNrPihjYWxsYmFja0lEKTsKICAgICBpZiAoIWNhbGxiYWNrKSB7CiAgICAgICAg
IC8vIEZJWE1FOiBMb2cgZXJyb3Igb3IgYXNzZXJ0LgogICAgICAgICByZXR1cm47CkBAIC00MDMz
LDcgKzQwMzMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aW1hZ2VDYWxsYmFjayhjb25zdCBTCiAK
IHZvaWQgV2ViUGFnZVByb3h5OjpzdHJpbmdDYWxsYmFjayhjb25zdCBTdHJpbmcmIHJlc3VsdFN0
cmluZywgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+
IGNhbGxiYWNrID0gbV9zdHJpbmdDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBhdXRv
IGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxTdHJpbmdDYWxsYmFjaz4oY2FsbGJhY2tJRCk7
CiAgICAgaWYgKCFjYWxsYmFjaykgewogICAgICAgICAvLyBGSVhNRTogTG9nIGVycm9yIG9yIGFz
c2VydC4KICAgICAgICAgLy8gdGhpcyBjYW4gdmFsaWRseSBoYXBwZW4gaWYgYSBsb2FkIGludmFs
aWRhdGVkIHRoZSBjYWxsYmFjaywgdGhvdWdoCkBAIC00MDQ3LDcgKzQwNDcsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c3RyaW5nQ2FsbGJhY2soY29uc3QgCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpz
Y3JpcHRWYWx1ZUNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5j
ZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBSZWZQdHI8U2NyaXB0VmFsdWVDYWxsYmFj
az4gY2FsbGJhY2sgPSBtX3NjcmlwdFZhbHVlQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7Cisg
ICAgYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2U8U2NyaXB0VmFsdWVDYWxsYmFjaz4o
Y2FsbGJhY2tJRCk7CiAgICAgaWYgKCFjYWxsYmFjaykgewogICAgICAgICAvLyBGSVhNRTogTG9n
IGVycm9yIG9yIGFzc2VydC4KICAgICAgICAgcmV0dXJuOwpAQCAtNDA2Miw3ICs0MDYyLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnNjcmlwdFZhbHVlQ2FsbGJhY2soYwogCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6Y29tcHV0ZWRQYWdlc0NhbGxiYWNrKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcGFnZVJl
Y3RzLCBkb3VibGUgdG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCB1aW50NjRfdCBjYWxsYmFj
a0lEKQogewotICAgIFJlZlB0cjxDb21wdXRlZFBhZ2VzQ2FsbGJhY2s+IGNhbGxiYWNrID0gbV9j
b21wdXRlZFBhZ2VzQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgYXV0byBjYWxsYmFj
ayA9IG1fY2FsbGJhY2tzLnRha2U8Q29tcHV0ZWRQYWdlc0NhbGxiYWNrPihjYWxsYmFja0lEKTsK
ICAgICBpZiAoIWNhbGxiYWNrKSB7CiAgICAgICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Igb3IgYXNz
ZXJ0LgogICAgICAgICByZXR1cm47CkBAIC00MDczLDcgKzQwNzMsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6Y29tcHV0ZWRQYWdlc0NhbGxiYWNrCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp2YWxpZGF0
ZUNvbW1hbmRDYWxsYmFjayhjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBib29sIGlzRW5hYmxl
ZCwgaW50IHN0YXRlLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIFJlZlB0cjxWYWxpZGF0
ZUNvbW1hbmRDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX3ZhbGlkYXRlQ29tbWFuZENhbGxiYWNrcy50
YWtlKGNhbGxiYWNrSUQpOworICAgIGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlPFZh
bGlkYXRlQ29tbWFuZENhbGxiYWNrPihjYWxsYmFja0lEKTsKICAgICBpZiAoIWNhbGxiYWNrKSB7
CiAgICAgICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Igb3IgYXNzZXJ0LgogICAgICAgICByZXR1cm47
CkBAIC00MDg0LDcgKzQwODQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dmFsaWRhdGVDb21tYW5k
Q2FsbGJhCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp1bnNpZ25lZENhbGxiYWNrKHVpbnQ2NF90IHJl
c3VsdCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBSZWZQdHI8VW5zaWduZWRDYWxsYmFj
az4gY2FsbGJhY2sgPSBtX3Vuc2lnbmVkQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAg
YXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2U8VW5zaWduZWRDYWxsYmFjaz4oY2FsbGJh
Y2tJRCk7CiAgICAgaWYgKCFjYWxsYmFjaykgewogICAgICAgICAvLyBGSVhNRTogTG9nIGVycm9y
IG9yIGFzc2VydC4KICAgICAgICAgLy8gdGhpcyBjYW4gdmFsaWRseSBoYXBwZW4gaWYgYSBsb2Fk
IGludmFsaWRhdGVkIHRoZSBjYWxsYmFjaywgdGhvdWdoCkBAIC00MDk4LDcgKzQwOTgsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZWRpdGluZ1JhbmdlQ2FsbGJhY2soCiB7CiAgICAgTUVTU0FHRV9D
SEVDSyhyYW5nZS5pc1ZhbGlkKCkpOwogCi0gICAgUmVmUHRyPEVkaXRpbmdSYW5nZUNhbGxiYWNr
PiBjYWxsYmFjayA9IG1fZWRpdGluZ1JhbmdlQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7Cisg
ICAgYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2U8RWRpdGluZ1JhbmdlQ2FsbGJhY2s+
KGNhbGxiYWNrSUQpOwogICAgIGlmICghY2FsbGJhY2spIHsKICAgICAgICAgLy8gRklYTUU6IExv
ZyBlcnJvciBvciBhc3NlcnQuCiAgICAgICAgIC8vIHRoaXMgY2FuIHZhbGlkbHkgaGFwcGVuIGlm
IGEgbG9hZCBpbnZhbGlkYXRlZCB0aGUgY2FsbGJhY2ssIHRob3VnaApAQCAtNDExMiw3ICs0MTEy
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY3RGb3JDaGFyYWN0ZXJSYW5nZQogewogICAgIE1F
U1NBR0VfQ0hFQ0soYWN0dWFsUmFuZ2UuaXNWYWxpZCgpKTsKIAotICAgIFJlZlB0cjxSZWN0Rm9y
Q2hhcmFjdGVyUmFuZ2VDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX3JlY3RGb3JDaGFyYWN0ZXJSYW5n
ZUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAgIGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxi
YWNrcy50YWtlPFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrPihjYWxsYmFja0lEKTsKICAg
ICBpZiAoIWNhbGxiYWNrKSB7CiAgICAgICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Igb3IgYXNzZXJ0
LgogICAgICAgICAvLyB0aGlzIGNhbiB2YWxpZGx5IGhhcHBlbiBpZiBhIGxvYWQgaW52YWxpZGF0
ZWQgdGhlIGNhbGxiYWNrLCB0aG91Z2gKQEAgLTQyODEsMjcgKzQyODEsMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnJlc2V0U3RhdGUoUmVzZXRTdGF0ZQogICAgICAgICBicmVhazsKICAgICB9CiAK
LSAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV92b2lkQ2FsbGJhY2tzLCBlcnJvcik7Ci0gICAg
aW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fZGF0YUNhbGxiYWNrcywgZXJyb3IpOwotICAgIGludmFs
aWRhdGVDYWxsYmFja01hcChtX2ltYWdlQ2FsbGJhY2tzLCBlcnJvcik7Ci0gICAgaW52YWxpZGF0
ZUNhbGxiYWNrTWFwKG1fc3RyaW5nQ2FsbGJhY2tzLCBlcnJvcik7CisgICAgbV9jYWxsYmFja3Mu
aW52YWxpZGF0ZShlcnJvcik7CiAgICAgbV9sb2FkRGVwZW5kZW50U3RyaW5nQ2FsbGJhY2tJRHMu
Y2xlYXIoKTsKLSAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9zY3JpcHRWYWx1ZUNhbGxiYWNr
cywgZXJyb3IpOwotICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX2NvbXB1dGVkUGFnZXNDYWxs
YmFja3MsIGVycm9yKTsKLSAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV92YWxpZGF0ZUNvbW1h
bmRDYWxsYmFja3MsIGVycm9yKTsKLSAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV91bnNpZ25l
ZENhbGxiYWNrcywgZXJyb3IpOwotICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX2VkaXRpbmdS
YW5nZUNhbGxiYWNrcywgZXJyb3IpOwotICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX3JlY3RG
b3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrcywgZXJyb3IpOwogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hdHRyaWJ1dGVkU3RyaW5nRm9yQ2hhcmFjdGVyUmFu
Z2VDYWxsYmFja3MsIGVycm9yKTsKICNlbmRpZgotI2lmIFBMQVRGT1JNKElPUykKLSAgICBpbnZh
bGlkYXRlQ2FsbGJhY2tNYXAobV9nZXN0dXJlQ2FsbGJhY2tzLCBlcnJvcik7Ci0gICAgaW52YWxp
ZGF0ZUNhbGxiYWNrTWFwKG1fdG91Y2hlc0NhbGxiYWNrcywgZXJyb3IpOwotICAgIGludmFsaWRh
dGVDYWxsYmFja01hcChtX2F1dG9jb3JyZWN0aW9uQ2FsbGJhY2tzLCBlcnJvcik7Ci0gICAgaW52
YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXV0b2NvcnJlY3Rpb25Db250ZXh0Q2FsbGJhY2tzLCBlcnJv
cik7Ci0gICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fZGljdGF0aW9uQ29udGV4dENhbGxiYWNr
cywgZXJyb3IpOwotI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIGludmFsaWRhdGVDYWxs
YmFja01hcChtX3ByaW50RmluaXNoZWRDYWxsYmFja3MsIGVycm9yKTsKICNlbmRpZgpAQCAtNDcx
OCw3ICs0NzAyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbXB1dGVQYWdlc0ZvclByaW50aQog
ICAgIH0KIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgp
OwotICAgIG1fY29tcHV0ZWRQYWdlc0NhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sp
OworICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7CiAgICAgbV9pc0luUHJpbnRpbmdNb2Rl
ID0gdHJ1ZTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nKGZyYW1lLT5mcmFtZUlEKCksIHByaW50SW5mbywgY2FsbGJhY2tJRCks
IG1fcGFnZUlELCBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uID8gSVBDOjpEaXNwYXRj
aE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgOiAwKTsKIH0KQEAgLTQ3MzMsNyAr
NDcxNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkcmF3UmVjdFRvSW1hZ2UoV2ViRnIKICAgICB9
CiAgICAgCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7
Ci0gICAgbV9pbWFnZUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2spOworICAgIG1f
Y2FsbGJhY2tzLnB1dChjYWxsYmFjayk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEcmF3UmVjdFRvSW1hZ2UoZnJhbWUtPmZyYW1lSUQoKSwgcHJpbnRJbmZvLCByZWN0
LCBpbWFnZVNpemUsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCwgbV9pc1BlcmZvcm1pbmdET01Qcmlu
dE9wZXJhdGlvbiA/IElQQzo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5IDogMCk7CiB9CiAKQEAgLTQ3NDYsNyArNDczMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
cmF3UGFnZXNUb1BERihXZWJGcmEKICAgICB9CiAgICAgCiAgICAgdWludDY0X3QgY2FsbGJhY2tJ
RCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgbV9kYXRhQ2FsbGJhY2tzLnNldChjYWxs
YmFja0lELCBjYWxsYmFjayk7CisgICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRyYXdQYWdlc1RvUERGKGZyYW1lLT5m
cmFtZUlEKCksIHByaW50SW5mbywgZmlyc3QsIGNvdW50LCBjYWxsYmFja0lEKSwgbV9wYWdlSUQs
IG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gPyBJUEM6OkRpc3BhdGNoTWVzc2FnZUV2
ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSA6IDApOwogfQogI2VsaWYgUExBVEZPUk0oR1RLKQpA
QCAtNDk5OCw3ICs0OTgyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdldE1hcmtlZFJhbmdlQXN5
bmMocwogICAgIH0KIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJh
Y2tJRCgpOwotICAgIG1fZWRpdGluZ1JhbmdlQ2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxs
YmFjayk7CisgICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKIAogICAgIHByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRNYXJrZWRSYW5nZUFzeW5jKGNhbGxiYWNrSUQpLCBt
X3BhZ2VJRCk7CiB9CkBAIC01MDEzLDcgKzQ5OTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0
U2VsZWN0ZWRSYW5nZUFzeW5jCiAgICAgfQogCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNh
bGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgbV9lZGl0aW5nUmFuZ2VDYWxsYmFja3Muc2V0KGNh
bGxiYWNrSUQsIGNhbGxiYWNrKTsKKyAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOwogCiAg
ICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldFNlbGVjdGVkUmFuZ2VBc3lu
YyhjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQpAQCAtNTAyOCw3ICs1MDEyLDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmNoYXJhY3RlckluZGV4Rm9yUG9pbgogICAgIH0KIAogICAgIHVpbnQ2NF90
IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAgIG1fdW5zaWduZWRDYWxs
YmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrKTsKKyAgICBtX2NhbGxiYWNrcy5wdXQoY2Fs
bGJhY2spOwogCiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNoYXJhY3Rl
ckluZGV4Rm9yUG9pbnRBc3luYyhwb2ludCwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KQEAg
LTUwNDMsNyArNTAyNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpmaXJzdFJlY3RGb3JDaGFyYWN0
ZXIKICAgICB9CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNr
SUQoKTsKLSAgICBtX3JlY3RGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJ
RCwgY2FsbGJhY2spOworICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7CiAKICAgICBwcm9j
ZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Rmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VB
c3luYyhyYW5nZSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KQEAgLTUwNzksNyArNTA2Myw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp0YWtlU25hcHNob3QoSW50UmVjdCAKICAgICB9CiAKICAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKLSAgICBtX2lt
YWdlQ2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5nZXQoKSk7CisgICAgbV9jYWxs
YmFja3MucHV0KGNhbGxiYWNrKTsKIAogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6VGFrZVNuYXBzaG90KHJlY3QsIGJpdG1hcFNpemUsIG9wdGlvbnMsIGNhbGxiYWNrSUQp
LCBtX3BhZ2VJRCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCShyZXZpc2lvbiAxNzAxNDUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMDIsMjcgKzEzMDIsMTEgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8V2ViVmlicmF0aW9uUHJveHk+IG1fdmlicmF0aW9uOwogI2VuZGlmCiAKLSAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8Vm9pZENhbGxiYWNrPj4gbV92b2lkQ2FsbGJhY2tz
OwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxEYXRhQ2FsbGJhY2s+PiBtX2RhdGFDYWxs
YmFja3M7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEltYWdlQ2FsbGJhY2s+PiBtX2lt
YWdlQ2FsbGJhY2tzOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTdHJpbmdDYWxsYmFj
az4+IG1fc3RyaW5nQ2FsbGJhY2tzOworICAgIENhbGxiYWNrTWFwIG1fY2FsbGJhY2tzOwogICAg
IEhhc2hTZXQ8dWludDY0X3Q+IG1fbG9hZERlcGVuZGVudFN0cmluZ0NhbGxiYWNrSURzOwotICAg
IEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTY3JpcHRWYWx1ZUNhbGxiYWNrPj4gbV9zY3JpcHRW
YWx1ZUNhbGxiYWNrczsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8Q29tcHV0ZWRQYWdl
c0NhbGxiYWNrPj4gbV9jb21wdXRlZFBhZ2VzQ2FsbGJhY2tzOwotICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxWYWxpZGF0ZUNvbW1hbmRDYWxsYmFjaz4+IG1fdmFsaWRhdGVDb21tYW5kQ2Fs
bGJhY2tzOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxVbnNpZ25lZENhbGxiYWNrPj4g
bV91bnNpZ25lZENhbGxiYWNrczsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RWRpdGlu
Z1JhbmdlQ2FsbGJhY2s+PiBtX2VkaXRpbmdSYW5nZUNhbGxiYWNrczsKLSAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8UmVjdEZvckNoYXJhY3RlclJhbmdlQ2FsbGJhY2s+PiBtX3JlY3RGb3JD
aGFyYWN0ZXJSYW5nZUNhbGxiYWNrczsKICNpZiBQTEFURk9STShNQUMpCiAgICAgSGFzaE1hcDx1
aW50NjRfdCwgUmVmUHRyPEF0dHJpYnV0ZWRTdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNr
Pj4gbV9hdHRyaWJ1dGVkU3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VDYWxsYmFja3M7CiAjZW5kaWYK
LSNpZiBQTEFURk9STShJT1MpCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEdlc3R1cmVD
YWxsYmFjaz4+IG1fZ2VzdHVyZUNhbGxiYWNrczsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQ
dHI8VG91Y2hlc0NhbGxiYWNrPj4gbV90b3VjaGVzQ2FsbGJhY2tzOwotICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZlB0cjxBdXRvY29ycmVjdGlvbkRhdGFDYWxsYmFjaz4+IG1fYXV0b2NvcnJlY3Rp
b25DYWxsYmFja3M7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEF1dG9jb3JyZWN0aW9u
Q29udGV4dENhbGxiYWNrPj4gbV9hdXRvY29ycmVjdGlvbkNvbnRleHRDYWxsYmFja3M7Ci0gICAg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPERpY3RhdGlvbkNvbnRleHRDYWxsYmFjaz4+IG1fZGlj
dGF0aW9uQ29udGV4dENhbGxiYWNrczsKLSNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8UHJpbnRGaW5pc2hlZENhbGxiYWNrPj4gbV9wcmludEZp
bmlzaGVkQ2FsbGJhY2tzOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQkocmV2aXNpb24gMTcwMTQ1KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkK
QEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cGVyZm9ybURpY3Rpb25hcnlM
b29rCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXN0dXJlQ2FsbGJhY2soY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIHBvaW50LCB1aW50MzJfdCBnZXN0dXJlVHlwZSwgdWludDMyX3QgZ2VzdHVyZVN0
YXRlLCB1aW50MzJfdCBmbGFncywgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBSZWZQdHI8
R2VzdHVyZUNhbGxiYWNrPiBjYWxsYmFjayA9IG1fZ2VzdHVyZUNhbGxiYWNrcy50YWtlKGNhbGxi
YWNrSUQpOworICAgIGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlPEdlc3R1cmVDYWxs
YmFjaz4oY2FsbGJhY2tJRCk7CiAgICAgaWYgKCFjYWxsYmFjaykgewogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpnZXN0dXJlQ2FsbGJhY2soY29uc3QKIAogdm9pZCBXZWJQYWdlUHJveHk6
OnRvdWNoZXNDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIHVpbnQzMl90
IHRvdWNoZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7Ci0gICAgUmVmUHRyPFRvdWNoZXNDYWxs
YmFjaz4gY2FsbGJhY2sgPSBtX3RvdWNoZXNDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAg
ICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxUb3VjaGVzQ2FsbGJhY2s+KGNhbGxi
YWNrSUQpOwogICAgIGlmICghY2FsbGJhY2spIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6dG91Y2hlc0NhbGxiYWNrKGNvbnN0CiAKIHZvaWQgV2ViUGFnZVByb3h5OjphdXRvY29ycmVj
dGlvbkRhdGFDYWxsYmFjayhjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiYgcmVjdHMs
IGNvbnN0IFN0cmluZyYgZm9udE5hbWUsIGZsb2F0IGZvbnRTaXplLCB1aW50NjRfdCBmb250VHJh
aXRzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIFJlZlB0cjxBdXRvY29ycmVjdGlvbkRh
dGFDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX2F1dG9jb3JyZWN0aW9uQ2FsbGJhY2tzLnRha2UoY2Fs
bGJhY2tJRCk7CisgICAgYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2U8QXV0b2NvcnJl
Y3Rpb25EYXRhQ2FsbGJhY2s+KGNhbGxiYWNrSUQpOwogICAgIGlmICghY2FsbGJhY2spIHsKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTE2Niw3ICsx
NjYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YXV0b2NvcnJlY3Rpb25EYXRhQ2FsCiAKIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWN0YXRpb25Db250ZXh0Q2FsbGJhY2soY29uc3QgU3RyaW5nJiBzZWxl
Y3RlZFRleHQsIGNvbnN0IFN0cmluZyYgYmVmb3JlVGV4dCwgY29uc3QgU3RyaW5nJiBhZnRlclRl
eHQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7Ci0gICAgUmVmUHRyPERpY3RhdGlvbkNvbnRleHRD
YWxsYmFjaz4gY2FsbGJhY2sgPSBtX2RpY3RhdGlvbkNvbnRleHRDYWxsYmFja3MudGFrZShjYWxs
YmFja0lEKTsKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxEaWN0YXRpb25D
b250ZXh0Q2FsbGJhY2s+KGNhbGxiYWNrSUQpOwogICAgIGlmICghY2FsbGJhY2spIHsKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTE3Nyw3ICsxNzcs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGljdGF0aW9uQ29udGV4dENhbGxiCiAKIHZvaWQgV2Vi
UGFnZVByb3h5OjphdXRvY29ycmVjdGlvbkNvbnRleHRDYWxsYmFjayhjb25zdCBTdHJpbmcmIGJl
Zm9yZVRleHQsIGNvbnN0IFN0cmluZyYgbWFya2VkVGV4dCwgY29uc3QgU3RyaW5nJiBzZWxlY3Rl
ZFRleHQsIGNvbnN0IFN0cmluZyYgYWZ0ZXJUZXh0LCB1aW50NjRfdCBsb2NhdGlvbiwgdWludDY0
X3QgbGVuZ3RoLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIFJlZlB0cjxBdXRvY29ycmVj
dGlvbkNvbnRleHRDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX2F1dG9jb3JyZWN0aW9uQ29udGV4dENh
bGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAgIGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNr
cy50YWtlPEF1dG9jb3JyZWN0aW9uQ29udGV4dENhbGxiYWNrPihjYWxsYmFja0lEKTsKICAgICBp
ZiAoIWNhbGxiYWNrKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBy
ZXR1cm47CkBAIC0zMTMsNyArMzEzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdFdpdGhH
ZXN0dXJlKGNvbgogICAgIH0KICAgICAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJh
Y2stPmNhbGxiYWNrSUQoKTsKLSAgICBtX2dlc3R1cmVDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQs
IGNhbGxiYWNrKTsKKyAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOwogICAgIG1fcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2VsZWN0V2l0aEdlc3R1cmUocG9pbnQsICh1aW50
MzJfdClncmFudWxhcml0eSwgZ2VzdHVyZVR5cGUsIGdlc3R1cmVTdGF0ZSwgY2FsbGJhY2tJRCks
IG1fcGFnZUlEKTsKIH0KIApAQCAtMzI3LDcgKzMyNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1
cGRhdGVTZWxlY3Rpb25XaXRoVG8KICAgICB9CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
Y2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKLSAgICBtX3RvdWNoZXNDYWxsYmFja3Muc2V0KGNhbGxi
YWNrSUQsIGNhbGxiYWNrKTsKKyAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOwogICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6VXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNo
ZXMocG9pbnQsIHRvdWNoZXMsIGJhc2VJc1N0YXJ0LCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwog
fQogICAgIApAQCAtMzUxLDcgKzM1MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0QXV0
b2NvcnJlY3Rpb24KICAgICB9CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2st
PmNhbGxiYWNrSUQoKTsKLSAgICBtX2F1dG9jb3JyZWN0aW9uQ2FsbGJhY2tzLnNldChjYWxsYmFj
a0lELCBjYWxsYmFjayk7CisgICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEo
dGV4dEZvckF1dG9jb3JyZWN0aW9uLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC0z
NjUsNyArMzY1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmFwcGx5QXV0b2NvcnJlY3Rpb24oYwog
ICAgIH0KIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgp
OwotICAgIG1fc3RyaW5nQ2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjayk7CisgICAg
bV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkFwcGx5QXV0b2NvcnJlY3Rpb24oY29ycmVjdGlvbiwgb3JpZ2luYWxUZXh0LCBj
YWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC0zODYsNyArMzg2LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3REaWN0YXRpb25Db250ZQogICAgIH0KIAogICAgIHVpbnQ2NF90IGNh
bGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAgIG1fZGljdGF0aW9uQ29udGV4
dENhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2spOworICAgIG1fY2FsbGJhY2tzLnB1
dChjYWxsYmFjayk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1
ZXN0RGljdGF0aW9uQ29udGV4dChjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCkBAIC00MDAs
NyArNDAwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RBdXRvY29ycmVjdGlvbgogICAg
IH0KIAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwot
ICAgIG1fYXV0b2NvcnJlY3Rpb25Db250ZXh0Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxs
YmFjayk7CisgICAgbV9jYWxsYmFja3MucHV0KGNhbGxiYWNrKTsKICAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJlcXVlc3RBdXRvY29ycmVjdGlvbkNvbnRleHQoY2FsbGJh
Y2tJRCksIG1fcGFnZUlEKTsKIH0KIApAQCAtNDE5LDcgKzQxOSw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZWxlY3RXaXRoVHdvVG91Y2hlcygKICAgICB9CiAKICAgICB1aW50NjRfdCBjYWxsYmFj
a0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKLSAgICBtX2dlc3R1cmVDYWxsYmFja3Muc2V0
KGNhbGxiYWNrSUQsIGNhbGxiYWNrKTsKKyAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOwog
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2VsZWN0V2l0aFR3b1RvdWNo
ZXMoZnJvbSwgdG8sIGdlc3R1cmVUeXBlLCBnZXN0dXJlU3RhdGUsIGNhbGxiYWNrSUQpLCBtX3Bh
Z2VJRCk7CiB9CiAK
</data>
<flag name="review"
          id="257873"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233384</attachid>
            <date>2014-06-19 14:41:36 -0700</date>
            <delta_ts>2014-06-19 17:48:31 -0700</delta_ts>
            <desc>Part 2</desc>
            <filename>bug-134069-20140619144114.patch</filename>
            <type>text/plain</type>
            <size>4923</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDE2MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE0LTA2LTE5ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGEgc2luZ2xlIG1hcCBmb3Ig
YWxsIGNhbGxiYWNrIHR5cGVzIGluIFdlYlBhZ2VQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmg6
CisgICAgICAgIChXZWJLaXQ6OkNhbGxiYWNrTWFwOjp0YWtlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcmlu
dEZpbmlzaGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0
U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRyYXdQYWdlc0ZvclByaW50
aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6YXR0cmlidXRlZFN1YnN0cmluZ0ZvckNoYXJhY3RlclJhbmdlQXN5bmMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmF0dHJpYnV0ZWRTdHJpbmdGb3JDaGFyYWN0ZXJSYW5n
ZUNhbGxiYWNrKToKKwogMjAxNC0wNi0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFtDb2NvYV0gTmVlZCBTUEkgdG8gZGV0ZXJtaW5lIGlmIHRoZSBXS1dlYlZpZXcg
aXMgZGlzcGxheWluZyBhIHN0YW5kYWxvbmUgaW1hZ2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmgJKHJldmlzaW9uIDE3MDE1OCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTc0
LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBUPgotICAg
IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfYmFzZV9vZjxDYWxsYmFja0Jhc2UsIFQ+
Ojp2YWx1ZSwgUmVmUHRyPFQ+Pjo6dHlwZSB0YWtlKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAg
UmVmUHRyPFQ+IHRha2UodWludDY0X3QgY2FsbGJhY2tJRCkKICAgICB7CiAgICAgICAgIFJlZlB0
cjxDYWxsYmFja0Jhc2U+IGJhc2UgPSBtX21hcC50YWtlKGNhbGxiYWNrSUQpOwogICAgICAgICBp
ZiAoIWJhc2UpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAkocmV2aXNpb24gMTcwMTU4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxMjUsNyArNDEyNSw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UKICNpZiBQTEFURk9STShHVEspCiB2b2lkIFdl
YlBhZ2VQcm94eTo6cHJpbnRGaW5pc2hlZENhbGxiYWNrKGNvbnN0IFJlc291cmNlRXJyb3ImIHBy
aW50RXJyb3IsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7Ci0gICAgUmVmUHRyPFByaW50RmluaXNo
ZWRDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX3ByaW50RmluaXNoZWRDYWxsYmFja3MudGFrZShjYWxs
YmFja0lEKTsKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxQcmludEZpbmlz
aGVkQ2FsbGJhY2s+KGNhbGxiYWNrSUQpOwogICAgIGlmICghY2FsbGJhY2spIHsKICAgICAgICAg
Ly8gRklYTUU6IExvZyBlcnJvciBvciBhc3NlcnQuCiAgICAgICAgIHJldHVybjsKQEAgLTQyODMs
MTIgKzQyODMsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVzZXRTdGF0ZShSZXNldFN0YXRlCiAK
ICAgICBtX2NhbGxiYWNrcy5pbnZhbGlkYXRlKGVycm9yKTsKICAgICBtX2xvYWREZXBlbmRlbnRT
dHJpbmdDYWxsYmFja0lEcy5jbGVhcigpOwotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpbnZhbGlk
YXRlQ2FsbGJhY2tNYXAobV9hdHRyaWJ1dGVkU3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VDYWxsYmFj
a3MsIGVycm9yKTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKEdUSykKLSAgICBpbnZhbGlkYXRlQ2Fs
bGJhY2tNYXAobV9wcmludEZpbmlzaGVkQ2FsbGJhY2tzLCBlcnJvcik7Ci0jZW5kaWYKIAogICAg
IFZlY3RvcjxXZWJFZGl0Q29tbWFuZFByb3h5Kj4gZWRpdENvbW1hbmRWZWN0b3I7CiAgICAgY29w
eVRvVmVjdG9yKG1fZWRpdENvbW1hbmRTZXQsIGVkaXRDb21tYW5kVmVjdG9yKTsKQEAgLTQ3NDMs
NyArNDczNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkcmF3UGFnZXNGb3JQcmludGluZygKICAg
ICB9CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsK
LSAgICBtX3ByaW50RmluaXNoZWRDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrKTsK
KyAgICBtX2NhbGxiYWNrcy5wdXQoY2FsbGJhY2spOwogICAgIG1faXNJblByaW50aW5nTW9kZSA9
IHRydWU7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEcmF3UGFnZXNG
b3JQcmludGluZyhmcmFtZS0+ZnJhbWVJRCgpLCBwcmludEluZm8sIGNhbGxiYWNrSUQpLCBtX3Bh
Z2VJRCwgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiA/IElQQzo6RGlzcGF0Y2hNZXNz
YWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5IDogMCk7CiB9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAxNzAxNTgpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMDQs
MTIgKzEzMDQsNiBAQCBwcml2YXRlOgogCiAgICAgQ2FsbGJhY2tNYXAgbV9jYWxsYmFja3M7CiAg
ICAgSGFzaFNldDx1aW50NjRfdD4gbV9sb2FkRGVwZW5kZW50U3RyaW5nQ2FsbGJhY2tJRHM7Ci0j
aWYgUExBVEZPUk0oTUFDKQotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBdHRyaWJ1dGVk
U3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VDYWxsYmFjaz4+IG1fYXR0cmlidXRlZFN0cmluZ0ZvckNo
YXJhY3RlclJhbmdlQ2FsbGJhY2tzOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKQotICAgIEhh
c2hNYXA8dWludDY0X3QsIFJlZlB0cjxQcmludEZpbmlzaGVkQ2FsbGJhY2s+PiBtX3ByaW50Rmlu
aXNoZWRDYWxsYmFja3M7Ci0jZW5kaWYKIAogICAgIEhhc2hTZXQ8V2ViRWRpdENvbW1hbmRQcm94
eSo+IG1fZWRpdENvbW1hbmRTZXQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViUGFnZVByb3h5TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCShyZXZpc2lvbiAxNzAxNTcpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzM1LDcgKzMzNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjphdHRyaWJ1dGVkU3Vic3RyaW5n
Rm8KICAgICB9CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNr
SUQoKTsKLSAgICBtX2F0dHJpYnV0ZWRTdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrcy5z
ZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2spOworICAgIG1fY2FsbGJhY2tzLnB1dChjYWxsYmFjayk7
CiAKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6QXR0cmlidXRlZFN1YnN0
cmluZ0ZvckNoYXJhY3RlclJhbmdlQXN5bmMocmFuZ2UsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7
CiB9CkBAIC0zNDQsNyArMzQ0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmF0dHJpYnV0ZWRTdHJp
bmdGb3JDaAogewogICAgIE1FU1NBR0VfQ0hFQ0soYWN0dWFsUmFuZ2UuaXNWYWxpZCgpKTsKIAot
ICAgIFJlZlB0cjxBdHRyaWJ1dGVkU3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VDYWxsYmFjaz4gY2Fs
bGJhY2sgPSBtX2F0dHJpYnV0ZWRTdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrcy50YWtl
KGNhbGxiYWNrSUQpOworICAgIGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlPEF0dHJp
YnV0ZWRTdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrPihjYWxsYmFja0lEKTsKICAgICBp
ZiAoIWNhbGxiYWNrKSB7CiAgICAgICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Igb3IgYXNzZXJ0Lgog
ICAgICAgICAvLyB0aGlzIGNhbiB2YWxpZGx5IGhhcHBlbiBpZiBhIGxvYWQgaW52YWxpZGF0ZWQg
dGhlIGNhbGxiYWNrLCB0aG91Z2gK
</data>
<flag name="review"
          id="257885"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>