<?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>122586</bug_id>
          
          <creation_ts>2013-10-09 20:18:22 -0700</creation_ts>
          <short_desc>Move the rest of EventRetargeter functions to EventPath</short_desc>
          <delta_ts>2013-10-10 12:47:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>938188</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-09 20:18:22 -0700</bug_when>
    <thetext>Move the rest of EventRetargeter functions to EventPath</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938191</commentid>
    <comment_count>1</comment_count>
      <attachid>213846</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-09 20:23:32 -0700</bug_when>
    <thetext>Created attachment 213846
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938194</commentid>
    <comment_count>2</comment_count>
      <attachid>213847</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-09 20:27:06 -0700</bug_when>
    <thetext>Created attachment 213847
Updated for ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938197</commentid>
    <comment_count>3</comment_count>
      <attachid>213847</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-09 20:47:26 -0700</bug_when>
    <thetext>Comment on attachment 213847
Updated for ToT

Attachment 213847 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/3848042</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938198</commentid>
    <comment_count>4</comment_count>
      <attachid>213847</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-09 20:53:17 -0700</bug_when>
    <thetext>Comment on attachment 213847
Updated for ToT

Attachment 213847 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/3525125</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938203</commentid>
    <comment_count>5</comment_count>
      <attachid>213849</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-09 21:18:44 -0700</bug_when>
    <thetext>Created attachment 213849
Fixed EFL build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938204</commentid>
    <comment_count>6</comment_count>
      <attachid>213849</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-09 21:21:35 -0700</bug_when>
    <thetext>Comment on attachment 213849
Fixed EFL build

Attachment 213849 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/3558123</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938205</commentid>
    <comment_count>7</comment_count>
      <attachid>213849</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-09 21:23:14 -0700</bug_when>
    <thetext>Comment on attachment 213849
Fixed EFL build

Attachment 213849 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/3662030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938207</commentid>
    <comment_count>8</comment_count>
      <attachid>213850</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-09 21:34:44 -0700</bug_when>
    <thetext>Created attachment 213850
Another EFL build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938211</commentid>
    <comment_count>9</comment_count>
      <attachid>213852</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-09 21:53:22 -0700</bug_when>
    <thetext>Created attachment 213852
Yet another EFL build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938244</commentid>
    <comment_count>10</comment_count>
      <attachid>213852</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-10 01:25:58 -0700</bug_when>
    <thetext>Comment on attachment 213852
Yet another EFL build fix

Rejecting attachment 213852 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 213852, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
d at 165 (offset 60 lines).
Hunk #3 succeeded at 175 (offset 60 lines).
Hunk #4 FAILED at 255.
1 out of 4 hunks FAILED -- saving rejects to file Source/WebCore/dom/EventDispatcher.cpp.rej
patching file Source/WebCore/dom/EventDispatcher.h
patching file Source/WebCore/dom/EventRetargeter.cpp
patching file Source/WebCore/dom/EventRetargeter.h

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Andreas Kling&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/3485190</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938493</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-10 12:47:59 -0700</bug_when>
    <thetext>Committed r157242: &lt;http://trac.webkit.org/changeset/157242&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213846</attachid>
            <date>2013-10-09 20:23:32 -0700</date>
            <delta_ts>2013-10-09 20:27:05 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-122586-20131009202332.patch</filename>
            <type>text/plain</type>
            <size>13683</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzIwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEzLTEwLTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgdGhlIHJlc3Qgb2YgRXZl
bnRSZXRhcmdldGVyIGZ1bmN0aW9ucyB0byBFdmVudFBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjU4NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHRoZSByZXN0IG9mIEV2ZW50UmV0YXJn
ZXRlciBmdW5jdGlvc24gZWl0aGVyIHN0YXRpYyBsb2NhbCBvciBFdmVudFBhdGggbWVtYmVyIGZ1
bmN0aW9ucy4KKworICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNjb3BlZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50UG9zdFByb2Nlc3MpOgorICAgICAgICAqIGRv
bS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBkb20vRXZlbnRSZXRhcmdldGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6RXZlbnRQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OmNhbGN1bGF0ZUFkanVzdGVkTm9kZXMpOiBNYWRlIHN0YXRpYyBsb2NhbC4gQWxzbyB0YWtl
cyBjb25zdCBFdmVudFBhdGggYW5kIHJldHVybnMgdGhlIHNpemUKKyAgICAgICAgdG8gd2hpY2gg
RXZlbnRQYXRoIHNob3VsZCBiZSBzaHJ1bms7IHRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSBFdmVu
dFBhdGg6OnNocmluay4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50
UGF0aCk6IE1vdmVkIGFuZCByZW5hbWVkIGZyb20gRXZlbnRSZXRhcmdldGVyOjphZGp1c3RUb3Vj
aExpc3QuCisgICAgICAgIChXZWJDb3JlOjpFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHMpOiBN
b3ZlZCBhbmQgcmVuYW1lZCBmcm9tIEV2ZW50UmV0YXJnZXRlcjo6YWRqdXN0Rm9yVG91Y2hFdmVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6c2V0UmVsYXRlZFRhcmdldCk6IE1vdmVk
LgorICAgICAgICAqIGRvbS9FdmVudFJldGFyZ2V0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmV2
ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKTogUmVuYW1lZCBmcm9tIEV2ZW50UmV0YXJn
ZXRlcjo6ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMuCisKIDIwMTMtMTAtMDkgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVpbGQgZml4IGFmdGVy
IHIxNTcyMDQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2
aXNpb24gMTU3MjA0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcwLDcgKzcwLDcgQEAgRXZlbnREaXNwYXRjaGVyOjpFdmVudERp
c3BhdGNoZXIoTm9kZSogbgogdm9pZCBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2NvcGVkRXZl
bnQoTm9kZSYgbm9kZSwgUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiB7CiAgICAgLy8gV2UgbmVl
ZCB0byBzZXQgdGhlIHRhcmdldCBoZXJlIGJlY2F1c2UgaXQgY2FuIGdvIGF3YXkgYnkgdGhlIHRp
bWUgd2UgYWN0dWFsbHkgZmlyZSB0aGUgZXZlbnQuCi0gICAgZXZlbnQtPnNldFRhcmdldCgmRXZl
bnRSZXRhcmdldGVyOjpldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxlcyhub2RlKSk7Cisg
ICAgZXZlbnQtPnNldFRhcmdldCgmZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMobm9k
ZSkpOwogICAgIFNjb3BlZEV2ZW50UXVldWU6Omluc3RhbmNlKCktPmVucXVldWVFdmVudChldmVu
dCk7CiB9CiAKQEAgLTEwNSw3ICsxMDUsNyBAQCBib29sIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0
Y2goKQogICAgICAgICBtX2V2ZW50UGF0aC5zZXRSZWxhdGVkVGFyZ2V0KCpyZWxhdGVkVGFyZ2V0
KTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGlmIChtX2V2ZW50LT5pc1RvdWNoRXZl
bnQoKSkKLSAgICAgICAgRXZlbnRSZXRhcmdldGVyOjphZGp1c3RGb3JUb3VjaEV2ZW50KG1fbm9k
ZS5nZXQoKSwgKm1fZXZlbnQsIG1fZXZlbnRQYXRoKTsgCisgICAgICAgIEV2ZW50UGF0aDo6dXBk
YXRlVG91Y2hMaXN0cygqbV9ldmVudCk7CiAjZW5kaWYKIAogI2lmbmRlZiBOREVCVUcKQEAgLTEx
NSw3ICsxMTUsNyBAQCBib29sIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2goKQogICAgIENoaWxk
Tm9kZXNMYXp5U25hcHNob3Q6OnRha2VDaGlsZE5vZGVzTGF6eVNuYXBzaG90KCk7CiAKICAgICBB
U1NFUlQobV9ub2RlKTsKLSAgICBtX2V2ZW50LT5zZXRUYXJnZXQoJkV2ZW50UmV0YXJnZXRlcjo6
ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoKm1fbm9kZSkpOworICAgIG1fZXZlbnQt
PnNldFRhcmdldCgmZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoKm1fbm9kZSkpOwog
ICAgIEFTU0VSVCghTm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uOjppc0V2ZW50RGlzcGF0Y2hGb3Ji
aWRkZW4oKSk7CiAgICAgQVNTRVJUKG1fZXZlbnQtPnRhcmdldCgpKTsKICAgICBXaW5kb3dFdmVu
dENvbnRleHQgd2luZG93RXZlbnRDb250ZXh0KG1fZXZlbnQuZ2V0KCksIG1fbm9kZS5nZXQoKSwg
dG9wRXZlbnRDb250ZXh0KCkpOwpAQCAtMTk1LDcgKzE5NSw3IEBAIGlubGluZSB2b2lkIEV2ZW50
RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmUKIGlubGluZSB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlz
cGF0Y2hFdmVudFBvc3RQcm9jZXNzKGNvbnN0IElucHV0RWxlbWVudENsaWNrU3RhdGUmIElucHV0
RWxlbWVudENsaWNrU3RhdGUpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7Ci0gICAgbV9ldmVudC0+
c2V0VGFyZ2V0KCZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1
bGVzKCptX25vZGUpKTsKKyAgICBtX2V2ZW50LT5zZXRUYXJnZXQoJmV2ZW50VGFyZ2V0UmVzcGVj
dGluZ1RhcmdldFJ1bGVzKCptX25vZGUpKTsKICAgICBtX2V2ZW50LT5zZXRDdXJyZW50VGFyZ2V0
KDApOwogICAgIG1fZXZlbnQtPnNldEV2ZW50UGhhc2UoMCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudERpc3BhdGNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnREaXNwYXRjaGVyLmgJKHJldmlzaW9uIDE1NzIwNCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudERpc3BhdGNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTksMTQgKzU5LDE0IEBA
IHB1YmxpYzoKICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aC5zaXplKCk7
IH0KICAgICBjb25zdCBFdmVudENvbnRleHQmIGNvbnRleHRBdChzaXplX3QgaSkgY29uc3QgeyBy
ZXR1cm4gKm1fcGF0aFtpXTsgfQogICAgIEV2ZW50Q29udGV4dCYgY29udGV4dEF0KHNpemVfdCBp
KSB7IHJldHVybiAqbV9wYXRoW2ldOyB9Ci0gICAgCisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQorICAgIHZvaWQgdXBkYXRlVG91Y2hMaXN0cyhjb25zdCBUb3VjaEV2ZW50Jik7CisjZW5kaWYK
ICAgICB2b2lkIHNldFJlbGF0ZWRUYXJnZXQoRXZlbnRUYXJnZXQmKTsKIAogICAgIGJvb2wgaGFz
RXZlbnRMaXN0ZW5lcnMoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpIGNvbnN0OwogCi0g
ICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBleHBvc2UgdGhpcyBmdW5jdGlvbi4KLSAgICB2b2lk
IHNocmluayhzaXplX3QgbmV3U2l6ZSkgeyBtX3BhdGguc2hyaW5rKG5ld1NpemUpOyB9Ci0KICAg
ICBFdmVudENvbnRleHQqIGxhc3RDb250ZXh0SWZFeGlzdHMoKSB7IHJldHVybiBtX3BhdGguaXNF
bXB0eSgpID8gMCA6IG1fcGF0aC5sYXN0KCkuZ2V0KCk7IH0KIAogcHJpdmF0ZToKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFJldGFyZ2V0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFJldGFyZ2V0ZXIuY3BwCShyZXZpc2lvbiAxNTcyMDQpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRSZXRhcmdldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODgsOSArODgsOSBAQCBFdmVudFBhdGg6OkV2ZW50UGF0aChOb2RlJiB0YXJnZXROb2RlLCBFCiAg
ICAgTm9kZSogbm9kZSA9IG5vZGVPckhvc3RJZlBzZXVkb0VsZW1lbnQoJnRhcmdldE5vZGUpOwog
ICAgIHdoaWxlIChub2RlKSB7CiAgICAgICAgIGlmICghdGFyZ2V0IHx8ICFpc1NWR0VsZW1lbnQp
IC8vIEZJWE1FOiBUaGlzIGNvZGUgZG9lc24ndCBtYWtlIHNlbnNlIG9uY2Ugd2UndmUgY2xpbWJl
ZCBvdXQgb2YgdGhlIFNWRyBzdWJ0cmVlIGluIGEgSFRNTCBkb2N1bWVudC4KLSAgICAgICAgICAg
IHRhcmdldCA9ICZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1
bGVzKCpub2RlKTsKKyAgICAgICAgICAgIHRhcmdldCA9ICZldmVudFRhcmdldFJlc3BlY3RpbmdU
YXJnZXRSdWxlcygqbm9kZSk7CiAgICAgICAgIGZvciAoOyBub2RlOyBub2RlID0gbm9kZS0+cGFy
ZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICBFdmVudFRhcmdldCYgY3VycmVudFRhcmdldCA9IEV2
ZW50UmV0YXJnZXRlcjo6ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoKm5vZGUpOwor
ICAgICAgICAgICAgRXZlbnRUYXJnZXQmIGN1cnJlbnRUYXJnZXQgPSBldmVudFRhcmdldFJlc3Bl
Y3RpbmdUYXJnZXRSdWxlcygqbm9kZSk7CiAgICAgICAgICAgICBpZiAoaXNNb3VzZU9yRm9jdXNF
dmVudCkKICAgICAgICAgICAgICAgICBtX3BhdGguYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8TW91
c2VPckZvY3VzRXZlbnRDb250ZXh0Pihub2RlLCAmY3VycmVudFRhcmdldCwgdGFyZ2V0KSk7CiAj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTExMCw1NiArMTEwLDYgQEAgRXZlbnRQYXRoOjpF
dmVudFBhdGgoTm9kZSYgdGFyZ2V0Tm9kZSwgRQogICAgIH0KIH0KIAotI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCi12b2lkIEV2ZW50UmV0YXJnZXRlcjo6YWRqdXN0Rm9yVG91Y2hFdmVudChOb2Rl
KiBub2RlLCBjb25zdCBUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBFdmVudFBhdGgmIGV2ZW50UGF0
aCkKLXsKLSAgICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0aC5zaXplKCk7Ci0KLSAg
ICBFdmVudFBhdGhUb3VjaExpc3RzIGV2ZW50UGF0aFRvdWNoZXMoZXZlbnRQYXRoU2l6ZSk7Ci0g
ICAgRXZlbnRQYXRoVG91Y2hMaXN0cyBldmVudFBhdGhUYXJnZXRUb3VjaGVzKGV2ZW50UGF0aFNp
emUpOwotICAgIEV2ZW50UGF0aFRvdWNoTGlzdHMgZXZlbnRQYXRoQ2hhbmdlZFRvdWNoZXMoZXZl
bnRQYXRoU2l6ZSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7
ICsraSkgewotICAgICAgICBUb3VjaEV2ZW50Q29udGV4dCYgY29udGV4dCA9IHRvVG91Y2hFdmVu
dENvbnRleHQoZXZlbnRQYXRoLmNvbnRleHRBdChpKSk7Ci0gICAgICAgIGV2ZW50UGF0aFRvdWNo
ZXNbaV0gPSBjb250ZXh0LnRvdWNoZXMoKTsKLSAgICAgICAgZXZlbnRQYXRoVGFyZ2V0VG91Y2hl
c1tpXSA9IGNvbnRleHQudGFyZ2V0VG91Y2hlcygpOwotICAgICAgICBldmVudFBhdGhDaGFuZ2Vk
VG91Y2hlc1tpXSA9IGNvbnRleHQuY2hhbmdlZFRvdWNoZXMoKTsKLSAgICB9Ci0KLSAgICBhZGp1
c3RUb3VjaExpc3Qobm9kZSwgdG91Y2hFdmVudC50b3VjaGVzKCksIGV2ZW50UGF0aCwgZXZlbnRQ
YXRoVG91Y2hlcyk7Ci0gICAgYWRqdXN0VG91Y2hMaXN0KG5vZGUsIHRvdWNoRXZlbnQudGFyZ2V0
VG91Y2hlcygpLCBldmVudFBhdGgsIGV2ZW50UGF0aFRhcmdldFRvdWNoZXMpOwotICAgIGFkanVz
dFRvdWNoTGlzdChub2RlLCB0b3VjaEV2ZW50LmNoYW5nZWRUb3VjaGVzKCksIGV2ZW50UGF0aCwg
ZXZlbnRQYXRoQ2hhbmdlZFRvdWNoZXMpOwotfQotCi12b2lkIEV2ZW50UmV0YXJnZXRlcjo6YWRq
dXN0VG91Y2hMaXN0KGNvbnN0IE5vZGUqIG5vZGUsIGNvbnN0IFRvdWNoTGlzdCogdG91Y2hMaXN0
LCBjb25zdCBFdmVudFBhdGgmIGV2ZW50UGF0aCwgRXZlbnRQYXRoVG91Y2hMaXN0cyYgZXZlbnRQ
YXRoVG91Y2hMaXN0cykKLXsKLSAgICBpZiAoIXRvdWNoTGlzdCkKLSAgICAgICAgcmV0dXJuOwot
ICAgIHNpemVfdCBldmVudFBhdGhTaXplID0gZXZlbnRQYXRoLnNpemUoKTsKLSAgICBBU1NFUlQo
ZXZlbnRQYXRoVG91Y2hMaXN0cy5zaXplKCkgPT0gZXZlbnRQYXRoU2l6ZSk7Ci0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCB0b3VjaExpc3QtPmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgY29u
c3QgVG91Y2gmIHRvdWNoID0gKnRvdWNoTGlzdC0+aXRlbShpKTsKLSAgICAgICAgVmVjdG9yPFJl
ZlB0cjxOb2RlPj4gYWRqdXN0ZWROb2RlczsKLSAgICAgICAgY2FsY3VsYXRlQWRqdXN0ZWROb2Rl
cyhub2RlLCB0b3VjaC50YXJnZXQoKS0+dG9Ob2RlKCksIERvZXNOb3RTdG9wQXRCb3VuZGFyeSwg
Y29uc3RfY2FzdDxFdmVudFBhdGgmPihldmVudFBhdGgpLCBhZGp1c3RlZE5vZGVzKTsKLSAgICAg
ICAgQVNTRVJUKGFkanVzdGVkTm9kZXMuc2l6ZSgpID09IGV2ZW50UGF0aFNpemUpOwotICAgICAg
ICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGV2ZW50UGF0aFNpemU7ICsraikKLSAgICAgICAgICAg
IGV2ZW50UGF0aFRvdWNoTGlzdHNbal0tPmFwcGVuZCh0b3VjaC5jbG9uZVdpdGhOZXdUYXJnZXQo
YWRqdXN0ZWROb2Rlc1tqXS5nZXQoKSkpOwotICAgIH0KLX0KLSNlbmRpZgotCi12b2lkIEV2ZW50
UGF0aDo6c2V0UmVsYXRlZFRhcmdldChFdmVudFRhcmdldCYgcmVsYXRlZFRhcmdldCkKLXsKLSAg
ICBOb2RlKiByZWxhdGVkTm9kZSA9IHJlbGF0ZWRUYXJnZXQudG9Ob2RlKCk7Ci0gICAgaWYgKCFy
ZWxhdGVkTm9kZSkKLSAgICAgICAgcmV0dXJuOwotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGFk
anVzdGVkTm9kZXM7Ci0gICAgRXZlbnRSZXRhcmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE5vZGVz
KG1fb3JpZ2luLmdldCgpLCByZWxhdGVkTm9kZSwgRXZlbnRSZXRhcmdldGVyOjpTdG9wQXRCb3Vu
ZGFyeUlmTmVlZGVkLCAqdGhpcywgYWRqdXN0ZWROb2Rlcyk7Ci0gICAgQVNTRVJUKGFkanVzdGVk
Tm9kZXMuc2l6ZSgpIDw9IG1fcGF0aC5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgYWRqdXN0ZWROb2Rlcy5zaXplKCk7ICsraSkKLSAgICAgICAgdG9Nb3VzZU9yRm9jdXNFdmVu
dENvbnRleHQoKm1fcGF0aFtpXSkuc2V0UmVsYXRlZFRhcmdldChhZGp1c3RlZE5vZGVzW2ldKTsK
LX0KLQogc3RhdGljIHZvaWQgYnVpbGRSZWxhdGVkTm9kZU1hcChjb25zdCBOb2RlKiByZWxhdGVk
Tm9kZSwgSGFzaE1hcDxUcmVlU2NvcGUqLCBOb2RlKj4mIHJlbGF0ZWROb2RlTWFwKQogewogICAg
IE5vZGUqIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZSA9IDA7CkBAIC0xOTYsNyArMTQ2LDExIEBA
IHN0YXRpYyBOb2RlKiBhZGRSZWxhdGVkTm9kZUZvclVubWFwZWRUcmUKICAgICByZXR1cm4gcmVs
YXRlZE5vZGU7CiB9CiAKLXZvaWQgRXZlbnRSZXRhcmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE5v
ZGVzKGNvbnN0IE5vZGUqIG5vZGUsIGNvbnN0IE5vZGUqIHJlbGF0ZWROb2RlLCBFdmVudFdpdGhS
ZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlvciBldmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0
Y2hCZWhhdmlvciwgRXZlbnRQYXRoJiBldmVudFBhdGgsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiBh
ZGp1c3RlZE5vZGVzKQorZW51bSBFdmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlv
ciB7CisgICAgU3RvcEF0Qm91bmRhcnlJZk5lZWRlZCwKKyAgICBEb2VzTm90U3RvcEF0Qm91bmRh
cnkKK307CitzdGF0aWMgc2l6ZV90IGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMoY29uc3QgTm9kZSog
bm9kZSwgY29uc3QgTm9kZSogcmVsYXRlZE5vZGUsIEV2ZW50V2l0aFJlbGF0ZWRUYXJnZXREaXNw
YXRjaEJlaGF2aW9yIGV2ZW50V2l0aFJlbGF0ZWRUYXJnZXREaXNwYXRjaEJlaGF2aW9yLCBjb25z
dCBFdmVudFBhdGgmIGV2ZW50UGF0aCwgVmVjdG9yPFJlZlB0cjxOb2RlPj4mIGFkanVzdGVkTm9k
ZXMpCiB7CiAgICAgSGFzaE1hcDxUcmVlU2NvcGUqLCBOb2RlKj4gcmVsYXRlZE5vZGVNYXA7CiAg
ICAgYnVpbGRSZWxhdGVkTm9kZU1hcChyZWxhdGVkTm9kZSwgcmVsYXRlZE5vZGVNYXApOwpAQCAt
MjA4LDcgKzE2Miw3IEBAIHZvaWQgRXZlbnRSZXRhcmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE4K
ICAgICBOb2RlKiBhZGp1c3RlZE5vZGUgPSAwOwogICAgIHNpemVfdCBldmVudFBhdGhTaXplID0g
ZXZlbnRQYXRoLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV2ZW50UGF0aFNp
emU7IGkrKykgewotICAgICAgICBFdmVudENvbnRleHQmIGNvbnRleHQgPSBldmVudFBhdGguY29u
dGV4dEF0KGkpOworICAgICAgICBjb25zdCBFdmVudENvbnRleHQmIGNvbnRleHQgPSBldmVudFBh
dGguY29udGV4dEF0KGkpOwogICAgICAgICBUcmVlU2NvcGUqIHNjb3BlID0gJmNvbnRleHQubm9k
ZSgpLT50cmVlU2NvcGUoKTsKIAogICAgICAgICAvLyBSZS11c2UgdGhlIHByZXZpb3VzIGFkanVz
dGVkUmVsYXRlZFRhcmdldCBpZiB0cmVlU2NvcGUgZG9lcyBub3QgY2hhbmdlLiBKdXN0IGZvciB0
aGUgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLgpAQCAtMjIwLDE3ICsxNzQsNjcgQEAgdm9pZCBF
dmVudFJldGFyZ2V0ZXI6OmNhbGN1bGF0ZUFkanVzdGVkTgogICAgICAgICBpZiAoZXZlbnRXaXRo
UmVsYXRlZFRhcmdldERpc3BhdGNoQmVoYXZpb3IgPT0gRG9lc05vdFN0b3BBdEJvdW5kYXJ5KQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmICh0YXJnZXRJc0lkZW50aWNhbFRvVG9S
ZWxhdGVkVGFyZ2V0KSB7Ci0gICAgICAgICAgICBpZiAobm9kZS0+dHJlZVNjb3BlKCkucm9vdE5v
ZGUoKSA9PSBjb250ZXh0Lm5vZGUoKSkgewotICAgICAgICAgICAgICAgIGV2ZW50UGF0aC5zaHJp
bmsoaSArIDEpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaWYgKG5vZGUtPnRyZWVTY29wZSgpLnJvb3ROb2RlKCkgPT0gY29udGV4dC5ub2RlKCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGkgKyAxOwogICAgICAgICB9IGVsc2UgaWYgKGNvbnRl
eHQudGFyZ2V0KCkgPT0gYWRqdXN0ZWROb2RlKSB7CiAgICAgICAgICAgICAvLyBFdmVudCBkaXNw
YXRjaGluZyBzaG91bGQgYmUgc3RvcHBlZCBoZXJlLgotICAgICAgICAgICAgZXZlbnRQYXRoLnNo
cmluayhpKTsKICAgICAgICAgICAgIGFkanVzdGVkTm9kZXMuc2hyaW5rKGFkanVzdGVkTm9kZXMu
c2l6ZSgpIC0gMSk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiBpOwog
ICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBldmVudFBhdGhTaXplOworfQorCisjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKK3N0YXRpYyB2b2lkIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0
aChWZWN0b3I8UmVmUHRyPFRvdWNoTGlzdD4+JiB0b3VjaExpc3RzSW5FdmVudFBhdGgsIGNvbnN0
IE5vZGUqIG5vZGUsIGNvbnN0IFRvdWNoTGlzdCogdG91Y2hMaXN0LCBjb25zdCBFdmVudFBhdGgm
IGV2ZW50UGF0aCkKK3sKKyAgICBpZiAoIXRvdWNoTGlzdCkKKyAgICAgICAgcmV0dXJuOworICAg
IHNpemVfdCBldmVudFBhdGhTaXplID0gZXZlbnRQYXRoLnNpemUoKTsKKyAgICBBU1NFUlQodG91
Y2hMaXN0c0luRXZlbnRQYXRoLnNpemUoKSA9PSBldmVudFBhdGhTaXplKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHRvdWNoTGlzdC0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBjb25z
dCBUb3VjaCYgdG91Y2ggPSAqdG91Y2hMaXN0LT5pdGVtKGkpOworCisgICAgICAgIFZlY3RvcjxS
ZWZQdHI8Tm9kZT4+IGFkanVzdGVkTm9kZXM7CisgICAgICAgIGNhbGN1bGF0ZUFkanVzdGVkTm9k
ZXMobm9kZSwgdG91Y2gudGFyZ2V0KCktPnRvTm9kZSgpLCBEb2VzTm90U3RvcEF0Qm91bmRhcnks
IGV2ZW50UGF0aCwgYWRqdXN0ZWROb2Rlcyk7CisKKyAgICAgICAgQVNTRVJUKGFkanVzdGVkTm9k
ZXMuc2l6ZSgpID09IGV2ZW50UGF0aFNpemUpOworICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsg
aiA8IGV2ZW50UGF0aFNpemU7ICsraikKKyAgICAgICAgICAgIHRvdWNoTGlzdHNJbkV2ZW50UGF0
aFtqXS0+YXBwZW5kKHRvdWNoLmNsb25lV2l0aE5ld1RhcmdldChhZGp1c3RlZE5vZGVzW2pdLmdl
dCgpKSk7CisgICAgfQorfQorCit2b2lkIEV2ZW50UGF0aDo6dXBkYXRlVG91Y2hMaXN0cyhjb25z
dCBUb3VjaEV2ZW50JiB0b3VjaEV2ZW50KQoreworICAgIHNpemVfdCBldmVudFBhdGhTaXplID0g
ZXZlbnRQYXRoLnNpemUoKTsKKworICAgIFZlY3RvcjxSZWZQdHI8VG91Y2hMaXN0Pj4gdG91Y2hl
c0luRXZlbnRQYXRoKGV2ZW50UGF0aFNpemUpOworICAgIFZlY3RvcjxSZWZQdHI8VG91Y2hMaXN0
Pj4gdGFyZ2V0VG91Y2hlc0luRXZlbnRQYXRoKGV2ZW50UGF0aFNpemUpOworICAgIFZlY3RvcjxS
ZWZQdHI8VG91Y2hMaXN0Pj4gY2hhbmdlZFRvdWNoZXNJbkV2ZW50UGF0aChldmVudFBhdGhTaXpl
KTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXZlbnRQYXRoU2l6ZTsgKytpKSB7Cisg
ICAgICAgIFRvdWNoRXZlbnRDb250ZXh0JiBjb250ZXh0ID0gdG9Ub3VjaEV2ZW50Q29udGV4dChl
dmVudFBhdGguY29udGV4dEF0KGkpKTsKKyAgICAgICAgdG91Y2hlc0luRXZlbnRQYXRoW2ldID0g
Y29udGV4dC50b3VjaGVzKCk7CisgICAgICAgIHRhcmdldFRvdWNoZXNJbkV2ZW50UGF0aFtpXSA9
IGNvbnRleHQudGFyZ2V0VG91Y2hlcygpOworICAgICAgICBjaGFuZ2VkVG91Y2hlc0luRXZlbnRQ
YXRoW2ldID0gY29udGV4dC5jaGFuZ2VkVG91Y2hlcygpOworICAgIH0KKworICAgIHVwZGF0ZVRv
dWNoTGlzdHNJbkV2ZW50UGF0aCh0b3VjaGVzSW5FdmVudFBhdGgsIG1fb3JpZ2luLmdldCgpLCB0
b3VjaEV2ZW50LnRvdWNoZXMoKSwgbV9wYXRoKTsKKyAgICB1cGRhdGVUb3VjaExpc3RzSW5FdmVu
dFBhdGgodGFyZ2V0VG91Y2hlc0luRXZlbnRQYXRoLCBtX29yaWdpbi5nZXQoKSwgdG91Y2hFdmVu
dC50YXJnZXRUb3VjaGVzKCksIG1fcGF0aCk7CisgICAgdXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQ
YXRoKGNoYW5nZWRUb3VjaGVzSW5FdmVudFBhdGgsIG1fb3JpZ2luLmdldCgpLCB0b3VjaEV2ZW50
LmNoYW5nZWRUb3VjaGVzKCksIG1fcGF0aCk7Cit9CisjZW5kaWYKKwordm9pZCBFdmVudFBhdGg6
OnNldFJlbGF0ZWRUYXJnZXQoRXZlbnRUYXJnZXQmIHJlbGF0ZWRUYXJnZXQpCit7CisgICAgTm9k
ZSogcmVsYXRlZE5vZGUgPSByZWxhdGVkVGFyZ2V0LnRvTm9kZSgpOworICAgIGlmICghcmVsYXRl
ZE5vZGUpCisgICAgICAgIHJldHVybjsKKyAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBhZGp1c3Rl
ZE5vZGVzOworICAgIG1fcGF0aC5zaHJpbmsoY2FsY3VsYXRlQWRqdXN0ZWROb2RlcyhtX29yaWdp
bi5nZXQoKSwgcmVsYXRlZE5vZGUsIFN0b3BBdEJvdW5kYXJ5SWZOZWVkZWQsICp0aGlzLCBhZGp1
c3RlZE5vZGVzKSk7CisgICAgQVNTRVJUKGFkanVzdGVkTm9kZXMuc2l6ZSgpIDw9IG1fcGF0aC5z
aXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYWRqdXN0ZWROb2Rlcy5zaXplKCk7
ICsraSkKKyAgICAgICAgdG9Nb3VzZU9yRm9jdXNFdmVudENvbnRleHQoKm1fcGF0aFtpXSkuc2V0
UmVsYXRlZFRhcmdldChhZGp1c3RlZE5vZGVzW2ldKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50UmV0YXJnZXRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFJldGFyZ2V0ZXIuaAkocmV2aXNpb24gMTU3MjA0KQorKysgU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50UmV0YXJnZXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00NiwyOCArNDYsNyBA
QCBjbGFzcyBUb3VjaEV2ZW50OwogI2VuZGlmCiBjbGFzcyBUcmVlU2NvcGU7CiAKLWNsYXNzIEV2
ZW50UmV0YXJnZXRlciB7Ci1wdWJsaWM6Ci0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICB0
eXBlZGVmIFZlY3RvcjxSZWZQdHI8VG91Y2hMaXN0PiA+IEV2ZW50UGF0aFRvdWNoTGlzdHM7Ci0g
ICAgc3RhdGljIHZvaWQgYWRqdXN0Rm9yVG91Y2hFdmVudChOb2RlKiwgY29uc3QgVG91Y2hFdmVu
dCYsIEV2ZW50UGF0aCYpOwotI2VuZGlmCi0gICAgc3RhdGljIEV2ZW50VGFyZ2V0JiBldmVudFRh
cmdldFJlc3BlY3RpbmdUYXJnZXRSdWxlcyhOb2RlJiByZWZlcmVuY2VOb2RlKTsKLQotcHJpdmF0
ZToKLSAgICBlbnVtIEV2ZW50V2l0aFJlbGF0ZWRUYXJnZXREaXNwYXRjaEJlaGF2aW9yIHsKLSAg
ICAgICAgU3RvcEF0Qm91bmRhcnlJZk5lZWRlZCwKLSAgICAgICAgRG9lc05vdFN0b3BBdEJvdW5k
YXJ5Ci0gICAgfTsKLSAgICBzdGF0aWMgdm9pZCBhZGp1c3RGb3JSZWxhdGVkVGFyZ2V0KGNvbnN0
IE5vZGUqLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCwgRXZlbnRQYXRoJik7Ci0gICAgc3Rh
dGljIHZvaWQgY2FsY3VsYXRlQWRqdXN0ZWROb2Rlcyhjb25zdCBOb2RlKiwgY29uc3QgTm9kZSog
cmVsYXRlZE5vZGUsIEV2ZW50V2l0aFJlbGF0ZWRUYXJnZXREaXNwYXRjaEJlaGF2aW9yLCBFdmVu
dFBhdGgmLCBWZWN0b3I8UmVmUHRyPE5vZGU+PiYgYWRqdXN0ZWROb2Rlcyk7Ci0jaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKLSAgICBzdGF0aWMgdm9pZCBhZGp1c3RUb3VjaExpc3QoY29uc3QgTm9k
ZSosIGNvbnN0IFRvdWNoTGlzdCosIGNvbnN0IEV2ZW50UGF0aCYsIEV2ZW50UGF0aFRvdWNoTGlz
dHMmKTsKLSNlbmRpZgotICAgIGZyaWVuZCBjbGFzcyBFdmVudFBhdGg7Ci19OwotCi1pbmxpbmUg
RXZlbnRUYXJnZXQmIEV2ZW50UmV0YXJnZXRlcjo6ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0
UnVsZXMoTm9kZSYgcmVmZXJlbmNlTm9kZSkKK2lubGluZSBFdmVudFRhcmdldCYgZXZlbnRUYXJn
ZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoTm9kZSYgcmVmZXJlbmNlTm9kZSkKIHsKICAgICBpZiAo
cmVmZXJlbmNlTm9kZS5pc1BzZXVkb0VsZW1lbnQoKSkgewogICAgICAgICBFdmVudFRhcmdldCog
aG9zdEVsZW1lbnQgPSB0b1BzZXVkb0VsZW1lbnQocmVmZXJlbmNlTm9kZSkuaG9zdEVsZW1lbnQo
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213847</attachid>
            <date>2013-10-09 20:27:06 -0700</date>
            <delta_ts>2013-10-09 21:18:41 -0700</delta_ts>
            <desc>Updated for ToT</desc>
            <filename>bug-122586-20131009202706.patch</filename>
            <type>text/plain</type>
            <size>13732</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzIwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEzLTEwLTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgdGhlIHJlc3Qgb2YgRXZl
bnRSZXRhcmdldGVyIGZ1bmN0aW9ucyB0byBFdmVudFBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjU4NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHRoZSByZXN0IG9mIEV2ZW50UmV0YXJn
ZXRlciBmdW5jdGlvc24gZWl0aGVyIHN0YXRpYyBsb2NhbCBvciBFdmVudFBhdGggbWVtYmVyIGZ1
bmN0aW9ucy4KKworICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNjb3BlZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50UG9zdFByb2Nlc3MpOgorICAgICAgICAqIGRv
bS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBkb20vRXZlbnRSZXRhcmdldGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6RXZlbnRQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OmNhbGN1bGF0ZUFkanVzdGVkTm9kZXMpOiBNYWRlIHN0YXRpYyBsb2NhbC4gQWxzbyB0YWtl
cyBjb25zdCBFdmVudFBhdGggYW5kIHJldHVybnMgdGhlIHNpemUKKyAgICAgICAgdG8gd2hpY2gg
RXZlbnRQYXRoIHNob3VsZCBiZSBzaHJ1bms7IHRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSBFdmVu
dFBhdGg6OnNocmluay4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50
UGF0aCk6IE1vdmVkIGFuZCByZW5hbWVkIGZyb20gRXZlbnRSZXRhcmdldGVyOjphZGp1c3RUb3Vj
aExpc3QuCisgICAgICAgIChXZWJDb3JlOjpFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHMpOiBN
b3ZlZCBhbmQgcmVuYW1lZCBmcm9tIEV2ZW50UmV0YXJnZXRlcjo6YWRqdXN0Rm9yVG91Y2hFdmVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6c2V0UmVsYXRlZFRhcmdldCk6IE1vdmVk
LgorICAgICAgICAqIGRvbS9FdmVudFJldGFyZ2V0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmV2
ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKTogUmVuYW1lZCBmcm9tIEV2ZW50UmV0YXJn
ZXRlcjo6ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMuCisKIDIwMTMtMTAtMDkgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQW5vdGhlciBidWlsZCBm
aXggYWZ0ZXIgcjE1NzIwNC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNo
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIu
Y3BwCShyZXZpc2lvbiAxNTcyMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRj
aGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNyBAQCBFdmVudERpc3BhdGNoZXI6
OkV2ZW50RGlzcGF0Y2hlcihOb2RlKiBuCiB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hT
Y29wZWRFdmVudChOb2RlJiBub2RlLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsKICAgICAv
LyBXZSBuZWVkIHRvIHNldCB0aGUgdGFyZ2V0IGhlcmUgYmVjYXVzZSBpdCBjYW4gZ28gYXdheSBi
eSB0aGUgdGltZSB3ZSBhY3R1YWxseSBmaXJlIHRoZSBldmVudC4KLSAgICBldmVudC0+c2V0VGFy
Z2V0KCZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKG5v
ZGUpKTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KCZldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRS
dWxlcyhub2RlKSk7CiAgICAgU2NvcGVkRXZlbnRRdWV1ZTo6aW5zdGFuY2UoKS0+ZW5xdWV1ZUV2
ZW50KGV2ZW50KTsKIH0KIApAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wgRXZlbnREaXNwYXRjaGVy
OjpkaXNwYXRjaCgpCiAgICAgICAgIG1fZXZlbnRQYXRoLnNldFJlbGF0ZWRUYXJnZXQoKnJlbGF0
ZWRUYXJnZXQpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgaWYgKG1fZXZlbnQtPmlz
VG91Y2hFdmVudCgpKQotICAgICAgICBFdmVudFJldGFyZ2V0ZXI6OmFkanVzdEZvclRvdWNoRXZl
bnQobV9ub2RlLmdldCgpLCAqdG9Ub3VjaEV2ZW50KG1fZXZlbnQuZ2V0KCkpLCBtX2V2ZW50UGF0
aCk7IAorICAgICAgICBFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHMoKip0b1RvdWNoRXZlbnQo
bV9ldmVudC5nZXQoKSkpOwogI2VuZGlmCiAKICNpZm5kZWYgTkRFQlVHCkBAIC0xMTUsNyArMTE1
LDcgQEAgYm9vbCBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKCkKICAgICBDaGlsZE5vZGVzTGF6
eVNuYXBzaG90Ojp0YWtlQ2hpbGROb2Rlc0xhenlTbmFwc2hvdCgpOwogCiAgICAgQVNTRVJUKG1f
bm9kZSk7Ci0gICAgbV9ldmVudC0+c2V0VGFyZ2V0KCZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFy
Z2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKCptX25vZGUpKTsKKyAgICBtX2V2ZW50LT5zZXRUYXJn
ZXQoJmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKCptX25vZGUpKTsKICAgICBBU1NF
UlQoIU5vRXZlbnREaXNwYXRjaEFzc2VydGlvbjo6aXNFdmVudERpc3BhdGNoRm9yYmlkZGVuKCkp
OwogICAgIEFTU0VSVChtX2V2ZW50LT50YXJnZXQoKSk7CiAgICAgV2luZG93RXZlbnRDb250ZXh0
IHdpbmRvd0V2ZW50Q29udGV4dChtX2V2ZW50LmdldCgpLCBtX25vZGUuZ2V0KCksIHRvcEV2ZW50
Q29udGV4dCgpKTsKQEAgLTE5NSw3ICsxOTUsNyBAQCBpbmxpbmUgdm9pZCBFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoRXZlCiBpbmxpbmUgdm9pZCBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZl
bnRQb3N0UHJvY2Vzcyhjb25zdCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlJiBJbnB1dEVsZW1lbnRD
bGlja1N0YXRlKQogewogICAgIEFTU0VSVChtX25vZGUpOwotICAgIG1fZXZlbnQtPnNldFRhcmdl
dCgmRXZlbnRSZXRhcmdldGVyOjpldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxlcygqbV9u
b2RlKSk7CisgICAgbV9ldmVudC0+c2V0VGFyZ2V0KCZldmVudFRhcmdldFJlc3BlY3RpbmdUYXJn
ZXRSdWxlcygqbV9ub2RlKSk7CiAgICAgbV9ldmVudC0+c2V0Q3VycmVudFRhcmdldCgwKTsKICAg
ICBtX2V2ZW50LT5zZXRFdmVudFBoYXNlKDApOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnREaXNwYXRjaGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
RGlzcGF0Y2hlci5oCShyZXZpc2lvbiAxNTcyMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnREaXNwYXRjaGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDE0ICs1OSwxNCBAQCBwdWJsaWM6
CiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3BhdGguc2l6ZSgpOyB9CiAgICAg
Y29uc3QgRXZlbnRDb250ZXh0JiBjb250ZXh0QXQoc2l6ZV90IGkpIGNvbnN0IHsgcmV0dXJuICpt
X3BhdGhbaV07IH0KICAgICBFdmVudENvbnRleHQmIGNvbnRleHRBdChzaXplX3QgaSkgeyByZXR1
cm4gKm1fcGF0aFtpXTsgfQotICAgIAorCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICB2
b2lkIHVwZGF0ZVRvdWNoTGlzdHMoY29uc3QgVG91Y2hFdmVudCYpOworI2VuZGlmCiAgICAgdm9p
ZCBzZXRSZWxhdGVkVGFyZ2V0KEV2ZW50VGFyZ2V0Jik7CiAKICAgICBib29sIGhhc0V2ZW50TGlz
dGVuZXJzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKSBjb25zdDsKIAotICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGRuJ3QgZXhwb3NlIHRoaXMgZnVuY3Rpb24uCi0gICAgdm9pZCBzaHJpbmso
c2l6ZV90IG5ld1NpemUpIHsgbV9wYXRoLnNocmluayhuZXdTaXplKTsgfQotCiAgICAgRXZlbnRD
b250ZXh0KiBsYXN0Q29udGV4dElmRXhpc3RzKCkgeyByZXR1cm4gbV9wYXRoLmlzRW1wdHkoKSA/
IDAgOiBtX3BhdGgubGFzdCgpLmdldCgpOyB9CiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRSZXRhcmdldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRSZXRhcmdldGVyLmNwcAkocmV2aXNpb24gMTU3MjA3KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50UmV0YXJnZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDkgKzg4
LDkgQEAgRXZlbnRQYXRoOjpFdmVudFBhdGgoTm9kZSYgdGFyZ2V0Tm9kZSwgRQogICAgIE5vZGUq
IG5vZGUgPSBub2RlT3JIb3N0SWZQc2V1ZG9FbGVtZW50KCZ0YXJnZXROb2RlKTsKICAgICB3aGls
ZSAobm9kZSkgewogICAgICAgICBpZiAoIXRhcmdldCB8fCAhaXNTVkdFbGVtZW50KSAvLyBGSVhN
RTogVGhpcyBjb2RlIGRvZXNuJ3QgbWFrZSBzZW5zZSBvbmNlIHdlJ3ZlIGNsaW1iZWQgb3V0IG9m
IHRoZSBTVkcgc3VidHJlZSBpbiBhIEhUTUwgZG9jdW1lbnQuCi0gICAgICAgICAgICB0YXJnZXQg
PSAmRXZlbnRSZXRhcmdldGVyOjpldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxlcygqbm9k
ZSk7CisgICAgICAgICAgICB0YXJnZXQgPSAmZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVs
ZXMoKm5vZGUpOwogICAgICAgICBmb3IgKDsgbm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUo
KSkgewotICAgICAgICAgICAgRXZlbnRUYXJnZXQmIGN1cnJlbnRUYXJnZXQgPSBFdmVudFJldGFy
Z2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKCpub2RlKTsKKyAgICAgICAg
ICAgIEV2ZW50VGFyZ2V0JiBjdXJyZW50VGFyZ2V0ID0gZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFy
Z2V0UnVsZXMoKm5vZGUpOwogICAgICAgICAgICAgaWYgKGlzTW91c2VPckZvY3VzRXZlbnQpCiAg
ICAgICAgICAgICAgICAgbV9wYXRoLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPE1vdXNlT3JGb2N1
c0V2ZW50Q29udGV4dD4obm9kZSwgJmN1cnJlbnRUYXJnZXQsIHRhcmdldCkpOwogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCkBAIC0xMTAsNTYgKzExMCw2IEBAIEV2ZW50UGF0aDo6RXZlbnRQYXRo
KE5vZGUmIHRhcmdldE5vZGUsIEUKICAgICB9CiB9CiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQotdm9pZCBFdmVudFJldGFyZ2V0ZXI6OmFkanVzdEZvclRvdWNoRXZlbnQoTm9kZSogbm9kZSwg
Y29uc3QgVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgRXZlbnRQYXRoJiBldmVudFBhdGgpCi17Ci0g
ICAgc2l6ZV90IGV2ZW50UGF0aFNpemUgPSBldmVudFBhdGguc2l6ZSgpOwotCi0gICAgRXZlbnRQ
YXRoVG91Y2hMaXN0cyBldmVudFBhdGhUb3VjaGVzKGV2ZW50UGF0aFNpemUpOwotICAgIEV2ZW50
UGF0aFRvdWNoTGlzdHMgZXZlbnRQYXRoVGFyZ2V0VG91Y2hlcyhldmVudFBhdGhTaXplKTsKLSAg
ICBFdmVudFBhdGhUb3VjaExpc3RzIGV2ZW50UGF0aENoYW5nZWRUb3VjaGVzKGV2ZW50UGF0aFNp
emUpOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBldmVudFBhdGhTaXplOyArK2kpIHsK
LSAgICAgICAgVG91Y2hFdmVudENvbnRleHQmIGNvbnRleHQgPSB0b1RvdWNoRXZlbnRDb250ZXh0
KGV2ZW50UGF0aC5jb250ZXh0QXQoaSkpOwotICAgICAgICBldmVudFBhdGhUb3VjaGVzW2ldID0g
Y29udGV4dC50b3VjaGVzKCk7Ci0gICAgICAgIGV2ZW50UGF0aFRhcmdldFRvdWNoZXNbaV0gPSBj
b250ZXh0LnRhcmdldFRvdWNoZXMoKTsKLSAgICAgICAgZXZlbnRQYXRoQ2hhbmdlZFRvdWNoZXNb
aV0gPSBjb250ZXh0LmNoYW5nZWRUb3VjaGVzKCk7Ci0gICAgfQotCi0gICAgYWRqdXN0VG91Y2hM
aXN0KG5vZGUsIHRvdWNoRXZlbnQudG91Y2hlcygpLCBldmVudFBhdGgsIGV2ZW50UGF0aFRvdWNo
ZXMpOwotICAgIGFkanVzdFRvdWNoTGlzdChub2RlLCB0b3VjaEV2ZW50LnRhcmdldFRvdWNoZXMo
KSwgZXZlbnRQYXRoLCBldmVudFBhdGhUYXJnZXRUb3VjaGVzKTsKLSAgICBhZGp1c3RUb3VjaExp
c3Qobm9kZSwgdG91Y2hFdmVudC5jaGFuZ2VkVG91Y2hlcygpLCBldmVudFBhdGgsIGV2ZW50UGF0
aENoYW5nZWRUb3VjaGVzKTsKLX0KLQotdm9pZCBFdmVudFJldGFyZ2V0ZXI6OmFkanVzdFRvdWNo
TGlzdChjb25zdCBOb2RlKiBub2RlLCBjb25zdCBUb3VjaExpc3QqIHRvdWNoTGlzdCwgY29uc3Qg
RXZlbnRQYXRoJiBldmVudFBhdGgsIEV2ZW50UGF0aFRvdWNoTGlzdHMmIGV2ZW50UGF0aFRvdWNo
TGlzdHMpCi17Ci0gICAgaWYgKCF0b3VjaExpc3QpCi0gICAgICAgIHJldHVybjsKLSAgICBzaXpl
X3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0aC5zaXplKCk7Ci0gICAgQVNTRVJUKGV2ZW50UGF0
aFRvdWNoTGlzdHMuc2l6ZSgpID09IGV2ZW50UGF0aFNpemUpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgdG91Y2hMaXN0LT5sZW5ndGgoKTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IFRvdWNo
JiB0b3VjaCA9ICp0b3VjaExpc3QtPml0ZW0oaSk7Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8Tm9k
ZT4+IGFkanVzdGVkTm9kZXM7Ci0gICAgICAgIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMobm9kZSwg
dG91Y2gudGFyZ2V0KCktPnRvTm9kZSgpLCBEb2VzTm90U3RvcEF0Qm91bmRhcnksIGNvbnN0X2Nh
c3Q8RXZlbnRQYXRoJj4oZXZlbnRQYXRoKSwgYWRqdXN0ZWROb2Rlcyk7Ci0gICAgICAgIEFTU0VS
VChhZGp1c3RlZE5vZGVzLnNpemUoKSA9PSBldmVudFBhdGhTaXplKTsKLSAgICAgICAgZm9yIChz
aXplX3QgaiA9IDA7IGogPCBldmVudFBhdGhTaXplOyArK2opCi0gICAgICAgICAgICBldmVudFBh
dGhUb3VjaExpc3RzW2pdLT5hcHBlbmQodG91Y2guY2xvbmVXaXRoTmV3VGFyZ2V0KGFkanVzdGVk
Tm9kZXNbal0uZ2V0KCkpKTsKLSAgICB9Ci19Ci0jZW5kaWYKLQotdm9pZCBFdmVudFBhdGg6OnNl
dFJlbGF0ZWRUYXJnZXQoRXZlbnRUYXJnZXQmIHJlbGF0ZWRUYXJnZXQpCi17Ci0gICAgTm9kZSog
cmVsYXRlZE5vZGUgPSByZWxhdGVkVGFyZ2V0LnRvTm9kZSgpOwotICAgIGlmICghcmVsYXRlZE5v
ZGUpCi0gICAgICAgIHJldHVybjsKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBhZGp1c3RlZE5v
ZGVzOwotICAgIEV2ZW50UmV0YXJnZXRlcjo6Y2FsY3VsYXRlQWRqdXN0ZWROb2RlcyhtX29yaWdp
bi5nZXQoKSwgcmVsYXRlZE5vZGUsIEV2ZW50UmV0YXJnZXRlcjo6U3RvcEF0Qm91bmRhcnlJZk5l
ZWRlZCwgKnRoaXMsIGFkanVzdGVkTm9kZXMpOwotICAgIEFTU0VSVChhZGp1c3RlZE5vZGVzLnNp
emUoKSA8PSBtX3BhdGguc2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFkanVz
dGVkTm9kZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIHRvTW91c2VPckZvY3VzRXZlbnRDb250ZXh0
KCptX3BhdGhbaV0pLnNldFJlbGF0ZWRUYXJnZXQoYWRqdXN0ZWROb2Rlc1tpXSk7Ci19Ci0KIHN0
YXRpYyB2b2lkIGJ1aWxkUmVsYXRlZE5vZGVNYXAoY29uc3QgTm9kZSogcmVsYXRlZE5vZGUsIEhh
c2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+JiByZWxhdGVkTm9kZU1hcCkKIHsKICAgICBOb2RlKiBy
ZWxhdGVkTm9kZUluQ3VycmVudFRyZWUgPSAwOwpAQCAtMTk2LDcgKzE0NiwxMSBAQCBzdGF0aWMg
Tm9kZSogYWRkUmVsYXRlZE5vZGVGb3JVbm1hcGVkVHJlCiAgICAgcmV0dXJuIHJlbGF0ZWROb2Rl
OwogfQogCi12b2lkIEV2ZW50UmV0YXJnZXRlcjo6Y2FsY3VsYXRlQWRqdXN0ZWROb2Rlcyhjb25z
dCBOb2RlKiBub2RlLCBjb25zdCBOb2RlKiByZWxhdGVkTm9kZSwgRXZlbnRXaXRoUmVsYXRlZFRh
cmdldERpc3BhdGNoQmVoYXZpb3IgZXZlbnRXaXRoUmVsYXRlZFRhcmdldERpc3BhdGNoQmVoYXZp
b3IsIEV2ZW50UGF0aCYgZXZlbnRQYXRoLCBWZWN0b3I8UmVmUHRyPE5vZGU+PiYgYWRqdXN0ZWRO
b2RlcykKK2VudW0gRXZlbnRXaXRoUmVsYXRlZFRhcmdldERpc3BhdGNoQmVoYXZpb3IgeworICAg
IFN0b3BBdEJvdW5kYXJ5SWZOZWVkZWQsCisgICAgRG9lc05vdFN0b3BBdEJvdW5kYXJ5Cit9Owor
c3RhdGljIHNpemVfdCBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKGNvbnN0IE5vZGUqIG5vZGUsIGNv
bnN0IE5vZGUqIHJlbGF0ZWROb2RlLCBFdmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhh
dmlvciBldmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlvciwgY29uc3QgRXZlbnRQ
YXRoJiBldmVudFBhdGgsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiBhZGp1c3RlZE5vZGVzKQogewog
ICAgIEhhc2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+IHJlbGF0ZWROb2RlTWFwOwogICAgIGJ1aWxk
UmVsYXRlZE5vZGVNYXAocmVsYXRlZE5vZGUsIHJlbGF0ZWROb2RlTWFwKTsKQEAgLTIwOCw3ICsx
NjIsNyBAQCB2b2lkIEV2ZW50UmV0YXJnZXRlcjo6Y2FsY3VsYXRlQWRqdXN0ZWROCiAgICAgTm9k
ZSogYWRqdXN0ZWROb2RlID0gMDsKICAgICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0
aC5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBldmVudFBhdGhTaXplOyBpKysp
IHsKLSAgICAgICAgRXZlbnRDb250ZXh0JiBjb250ZXh0ID0gZXZlbnRQYXRoLmNvbnRleHRBdChp
KTsKKyAgICAgICAgY29uc3QgRXZlbnRDb250ZXh0JiBjb250ZXh0ID0gZXZlbnRQYXRoLmNvbnRl
eHRBdChpKTsKICAgICAgICAgVHJlZVNjb3BlKiBzY29wZSA9ICZjb250ZXh0Lm5vZGUoKS0+dHJl
ZVNjb3BlKCk7CiAKICAgICAgICAgLy8gUmUtdXNlIHRoZSBwcmV2aW91cyBhZGp1c3RlZFJlbGF0
ZWRUYXJnZXQgaWYgdHJlZVNjb3BlIGRvZXMgbm90IGNoYW5nZS4gSnVzdCBmb3IgdGhlIHBlcmZv
cm1hbmNlIG9wdGltaXphdGlvbi4KQEAgLTIyMCwxNyArMTc0LDY3IEBAIHZvaWQgRXZlbnRSZXRh
cmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE4KICAgICAgICAgaWYgKGV2ZW50V2l0aFJlbGF0ZWRU
YXJnZXREaXNwYXRjaEJlaGF2aW9yID09IERvZXNOb3RTdG9wQXRCb3VuZGFyeSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAodGFyZ2V0SXNJZGVudGljYWxUb1RvUmVsYXRlZFRh
cmdldCkgewotICAgICAgICAgICAgaWYgKG5vZGUtPnRyZWVTY29wZSgpLnJvb3ROb2RlKCkgPT0g
Y29udGV4dC5ub2RlKCkpIHsKLSAgICAgICAgICAgICAgICBldmVudFBhdGguc2hyaW5rKGkgKyAx
KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
IChub2RlLT50cmVlU2NvcGUoKS5yb290Tm9kZSgpID09IGNvbnRleHQubm9kZSgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBpICsgMTsKICAgICAgICAgfSBlbHNlIGlmIChjb250ZXh0LnRhcmdl
dCgpID09IGFkanVzdGVkTm9kZSkgewogICAgICAgICAgICAgLy8gRXZlbnQgZGlzcGF0Y2hpbmcg
c2hvdWxkIGJlIHN0b3BwZWQgaGVyZS4KLSAgICAgICAgICAgIGV2ZW50UGF0aC5zaHJpbmsoaSk7
CiAgICAgICAgICAgICBhZGp1c3RlZE5vZGVzLnNocmluayhhZGp1c3RlZE5vZGVzLnNpemUoKSAt
IDEpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAg
fQogICAgIH0KKyAgICByZXR1cm4gZXZlbnRQYXRoU2l6ZTsKK30KKworI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCitzdGF0aWMgdm9pZCB1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgoVmVjdG9y
PFJlZlB0cjxUb3VjaExpc3Q+PiYgdG91Y2hMaXN0c0luRXZlbnRQYXRoLCBjb25zdCBOb2RlKiBu
b2RlLCBjb25zdCBUb3VjaExpc3QqIHRvdWNoTGlzdCwgY29uc3QgRXZlbnRQYXRoJiBldmVudFBh
dGgpCit7CisgICAgaWYgKCF0b3VjaExpc3QpCisgICAgICAgIHJldHVybjsKKyAgICBzaXplX3Qg
ZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0aC5zaXplKCk7CisgICAgQVNTRVJUKHRvdWNoTGlzdHNJ
bkV2ZW50UGF0aC5zaXplKCkgPT0gZXZlbnRQYXRoU2l6ZSk7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB0b3VjaExpc3QtPmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgY29uc3QgVG91Y2gm
IHRvdWNoID0gKnRvdWNoTGlzdC0+aXRlbShpKTsKKworICAgICAgICBWZWN0b3I8UmVmUHRyPE5v
ZGU+PiBhZGp1c3RlZE5vZGVzOworICAgICAgICBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKG5vZGUs
IHRvdWNoLnRhcmdldCgpLT50b05vZGUoKSwgRG9lc05vdFN0b3BBdEJvdW5kYXJ5LCBldmVudFBh
dGgsIGFkanVzdGVkTm9kZXMpOworCisgICAgICAgIEFTU0VSVChhZGp1c3RlZE5vZGVzLnNpemUo
KSA9PSBldmVudFBhdGhTaXplKTsKKyAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBldmVu
dFBhdGhTaXplOyArK2opCisgICAgICAgICAgICB0b3VjaExpc3RzSW5FdmVudFBhdGhbal0tPmFw
cGVuZCh0b3VjaC5jbG9uZVdpdGhOZXdUYXJnZXQoYWRqdXN0ZWROb2Rlc1tqXS5nZXQoKSkpOwor
ICAgIH0KK30KKwordm9pZCBFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHMoY29uc3QgVG91Y2hF
dmVudCYgdG91Y2hFdmVudCkKK3sKKyAgICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0
aC5zaXplKCk7CisKKyAgICBWZWN0b3I8UmVmUHRyPFRvdWNoTGlzdD4+IHRvdWNoZXNJbkV2ZW50
UGF0aChldmVudFBhdGhTaXplKTsKKyAgICBWZWN0b3I8UmVmUHRyPFRvdWNoTGlzdD4+IHRhcmdl
dFRvdWNoZXNJbkV2ZW50UGF0aChldmVudFBhdGhTaXplKTsKKyAgICBWZWN0b3I8UmVmUHRyPFRv
dWNoTGlzdD4+IGNoYW5nZWRUb3VjaGVzSW5FdmVudFBhdGgoZXZlbnRQYXRoU2l6ZSk7CisKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7ICsraSkgeworICAgICAgICBU
b3VjaEV2ZW50Q29udGV4dCYgY29udGV4dCA9IHRvVG91Y2hFdmVudENvbnRleHQoZXZlbnRQYXRo
LmNvbnRleHRBdChpKSk7CisgICAgICAgIHRvdWNoZXNJbkV2ZW50UGF0aFtpXSA9IGNvbnRleHQu
dG91Y2hlcygpOworICAgICAgICB0YXJnZXRUb3VjaGVzSW5FdmVudFBhdGhbaV0gPSBjb250ZXh0
LnRhcmdldFRvdWNoZXMoKTsKKyAgICAgICAgY2hhbmdlZFRvdWNoZXNJbkV2ZW50UGF0aFtpXSA9
IGNvbnRleHQuY2hhbmdlZFRvdWNoZXMoKTsKKyAgICB9CisKKyAgICB1cGRhdGVUb3VjaExpc3Rz
SW5FdmVudFBhdGgodG91Y2hlc0luRXZlbnRQYXRoLCBtX29yaWdpbi5nZXQoKSwgdG91Y2hFdmVu
dC50b3VjaGVzKCksIG1fcGF0aCk7CisgICAgdXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKHRh
cmdldFRvdWNoZXNJbkV2ZW50UGF0aCwgbV9vcmlnaW4uZ2V0KCksIHRvdWNoRXZlbnQudGFyZ2V0
VG91Y2hlcygpLCBtX3BhdGgpOworICAgIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aChjaGFu
Z2VkVG91Y2hlc0luRXZlbnRQYXRoLCBtX29yaWdpbi5nZXQoKSwgdG91Y2hFdmVudC5jaGFuZ2Vk
VG91Y2hlcygpLCBtX3BhdGgpOworfQorI2VuZGlmCisKK3ZvaWQgRXZlbnRQYXRoOjpzZXRSZWxh
dGVkVGFyZ2V0KEV2ZW50VGFyZ2V0JiByZWxhdGVkVGFyZ2V0KQoreworICAgIE5vZGUqIHJlbGF0
ZWROb2RlID0gcmVsYXRlZFRhcmdldC50b05vZGUoKTsKKyAgICBpZiAoIXJlbGF0ZWROb2RlKQor
ICAgICAgICByZXR1cm47CisgICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gYWRqdXN0ZWROb2RlczsK
KyAgICBtX3BhdGguc2hyaW5rKGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMobV9vcmlnaW4uZ2V0KCks
IHJlbGF0ZWROb2RlLCBTdG9wQXRCb3VuZGFyeUlmTmVlZGVkLCAqdGhpcywgYWRqdXN0ZWROb2Rl
cykpOworICAgIEFTU0VSVChhZGp1c3RlZE5vZGVzLnNpemUoKSA8PSBtX3BhdGguc2l6ZSgpKTsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFkanVzdGVkTm9kZXMuc2l6ZSgpOyArK2kpCisg
ICAgICAgIHRvTW91c2VPckZvY3VzRXZlbnRDb250ZXh0KCptX3BhdGhbaV0pLnNldFJlbGF0ZWRU
YXJnZXQoYWRqdXN0ZWROb2Rlc1tpXSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudFJldGFyZ2V0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRSZXRhcmdldGVyLmgJKHJldmlzaW9uIDE1NzIwNykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFJldGFyZ2V0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsMjggKzQ2LDcgQEAgY2xhc3Mg
VG91Y2hFdmVudDsKICNlbmRpZgogY2xhc3MgVHJlZVNjb3BlOwogCi1jbGFzcyBFdmVudFJldGFy
Z2V0ZXIgewotcHVibGljOgotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgdHlwZWRlZiBW
ZWN0b3I8UmVmUHRyPFRvdWNoTGlzdD4gPiBFdmVudFBhdGhUb3VjaExpc3RzOwotICAgIHN0YXRp
YyB2b2lkIGFkanVzdEZvclRvdWNoRXZlbnQoTm9kZSosIGNvbnN0IFRvdWNoRXZlbnQmLCBFdmVu
dFBhdGgmKTsKLSNlbmRpZgotICAgIHN0YXRpYyBFdmVudFRhcmdldCYgZXZlbnRUYXJnZXRSZXNw
ZWN0aW5nVGFyZ2V0UnVsZXMoTm9kZSYgcmVmZXJlbmNlTm9kZSk7Ci0KLXByaXZhdGU6Ci0gICAg
ZW51bSBFdmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlvciB7Ci0gICAgICAgIFN0
b3BBdEJvdW5kYXJ5SWZOZWVkZWQsCi0gICAgICAgIERvZXNOb3RTdG9wQXRCb3VuZGFyeQotICAg
IH07Ci0gICAgc3RhdGljIHZvaWQgYWRqdXN0Rm9yUmVsYXRlZFRhcmdldChjb25zdCBOb2RlKiwg
RXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQsIEV2ZW50UGF0aCYpOwotICAgIHN0YXRpYyB2b2lk
IGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMoY29uc3QgTm9kZSosIGNvbnN0IE5vZGUqIHJlbGF0ZWRO
b2RlLCBFdmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlvciwgRXZlbnRQYXRoJiwg
VmVjdG9yPFJlZlB0cjxOb2RlPj4mIGFkanVzdGVkTm9kZXMpOwotI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCi0gICAgc3RhdGljIHZvaWQgYWRqdXN0VG91Y2hMaXN0KGNvbnN0IE5vZGUqLCBjb25z
dCBUb3VjaExpc3QqLCBjb25zdCBFdmVudFBhdGgmLCBFdmVudFBhdGhUb3VjaExpc3RzJik7Ci0j
ZW5kaWYKLSAgICBmcmllbmQgY2xhc3MgRXZlbnRQYXRoOwotfTsKLQotaW5saW5lIEV2ZW50VGFy
Z2V0JiBFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKE5v
ZGUmIHJlZmVyZW5jZU5vZGUpCitpbmxpbmUgRXZlbnRUYXJnZXQmIGV2ZW50VGFyZ2V0UmVzcGVj
dGluZ1RhcmdldFJ1bGVzKE5vZGUmIHJlZmVyZW5jZU5vZGUpCiB7CiAgICAgaWYgKHJlZmVyZW5j
ZU5vZGUuaXNQc2V1ZG9FbGVtZW50KCkpIHsKICAgICAgICAgRXZlbnRUYXJnZXQqIGhvc3RFbGVt
ZW50ID0gdG9Qc2V1ZG9FbGVtZW50KHJlZmVyZW5jZU5vZGUpLmhvc3RFbGVtZW50KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213849</attachid>
            <date>2013-10-09 21:18:44 -0700</date>
            <delta_ts>2013-10-09 21:34:41 -0700</delta_ts>
            <desc>Fixed EFL build</desc>
            <filename>bug-122586-20131009211843.patch</filename>
            <type>text/plain</type>
            <size>13712</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzIwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEzLTEwLTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgdGhlIHJlc3Qgb2YgRXZl
bnRSZXRhcmdldGVyIGZ1bmN0aW9ucyB0byBFdmVudFBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjU4NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHRoZSByZXN0IG9mIEV2ZW50UmV0YXJn
ZXRlciBmdW5jdGlvc24gZWl0aGVyIHN0YXRpYyBsb2NhbCBvciBFdmVudFBhdGggbWVtYmVyIGZ1
bmN0aW9ucy4KKworICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNjb3BlZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50UG9zdFByb2Nlc3MpOgorICAgICAgICAqIGRv
bS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBkb20vRXZlbnRSZXRhcmdldGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6RXZlbnRQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OmNhbGN1bGF0ZUFkanVzdGVkTm9kZXMpOiBNYWRlIHN0YXRpYyBsb2NhbC4gQWxzbyB0YWtl
cyBjb25zdCBFdmVudFBhdGggYW5kIHJldHVybnMgdGhlIHNpemUKKyAgICAgICAgdG8gd2hpY2gg
RXZlbnRQYXRoIHNob3VsZCBiZSBzaHJ1bms7IHRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSBFdmVu
dFBhdGg6OnNocmluay4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50
UGF0aCk6IE1vdmVkIGFuZCByZW5hbWVkIGZyb20gRXZlbnRSZXRhcmdldGVyOjphZGp1c3RUb3Vj
aExpc3QuCisgICAgICAgIChXZWJDb3JlOjpFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHMpOiBN
b3ZlZCBhbmQgcmVuYW1lZCBmcm9tIEV2ZW50UmV0YXJnZXRlcjo6YWRqdXN0Rm9yVG91Y2hFdmVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6c2V0UmVsYXRlZFRhcmdldCk6IE1vdmVk
LgorICAgICAgICAqIGRvbS9FdmVudFJldGFyZ2V0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmV2
ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKTogUmVuYW1lZCBmcm9tIEV2ZW50UmV0YXJn
ZXRlcjo6ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMuCisKIDIwMTMtMTAtMDkgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQW5vdGhlciBidWlsZCBm
aXggYWZ0ZXIgcjE1NzIwNC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNo
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIu
Y3BwCShyZXZpc2lvbiAxNTcyMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRj
aGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNyBAQCBFdmVudERpc3BhdGNoZXI6
OkV2ZW50RGlzcGF0Y2hlcihOb2RlKiBuCiB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hT
Y29wZWRFdmVudChOb2RlJiBub2RlLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsKICAgICAv
LyBXZSBuZWVkIHRvIHNldCB0aGUgdGFyZ2V0IGhlcmUgYmVjYXVzZSBpdCBjYW4gZ28gYXdheSBi
eSB0aGUgdGltZSB3ZSBhY3R1YWxseSBmaXJlIHRoZSBldmVudC4KLSAgICBldmVudC0+c2V0VGFy
Z2V0KCZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKG5v
ZGUpKTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KCZldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRS
dWxlcyhub2RlKSk7CiAgICAgU2NvcGVkRXZlbnRRdWV1ZTo6aW5zdGFuY2UoKS0+ZW5xdWV1ZUV2
ZW50KGV2ZW50KTsKIH0KIApAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wgRXZlbnREaXNwYXRjaGVy
OjpkaXNwYXRjaCgpCiAgICAgICAgIG1fZXZlbnRQYXRoLnNldFJlbGF0ZWRUYXJnZXQoKnJlbGF0
ZWRUYXJnZXQpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgaWYgKG1fZXZlbnQtPmlz
VG91Y2hFdmVudCgpKQotICAgICAgICBFdmVudFJldGFyZ2V0ZXI6OmFkanVzdEZvclRvdWNoRXZl
bnQobV9ub2RlLmdldCgpLCAqdG9Ub3VjaEV2ZW50KG1fZXZlbnQuZ2V0KCkpLCBtX2V2ZW50UGF0
aCk7IAorICAgICAgICBFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHMoKnRvVG91Y2hFdmVudCht
X2V2ZW50LmdldCgpKSk7CiAjZW5kaWYKIAogI2lmbmRlZiBOREVCVUcKQEAgLTExNSw3ICsxMTUs
NyBAQCBib29sIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2goKQogICAgIENoaWxkTm9kZXNMYXp5
U25hcHNob3Q6OnRha2VDaGlsZE5vZGVzTGF6eVNuYXBzaG90KCk7CiAKICAgICBBU1NFUlQobV9u
b2RlKTsKLSAgICBtX2V2ZW50LT5zZXRUYXJnZXQoJkV2ZW50UmV0YXJnZXRlcjo6ZXZlbnRUYXJn
ZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoKm1fbm9kZSkpOworICAgIG1fZXZlbnQtPnNldFRhcmdl
dCgmZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoKm1fbm9kZSkpOwogICAgIEFTU0VS
VCghTm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uOjppc0V2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7
CiAgICAgQVNTRVJUKG1fZXZlbnQtPnRhcmdldCgpKTsKICAgICBXaW5kb3dFdmVudENvbnRleHQg
d2luZG93RXZlbnRDb250ZXh0KG1fZXZlbnQuZ2V0KCksIG1fbm9kZS5nZXQoKSwgdG9wRXZlbnRD
b250ZXh0KCkpOwpAQCAtMTk1LDcgKzE5NSw3IEBAIGlubGluZSB2b2lkIEV2ZW50RGlzcGF0Y2hl
cjo6ZGlzcGF0Y2hFdmUKIGlubGluZSB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVu
dFBvc3RQcm9jZXNzKGNvbnN0IElucHV0RWxlbWVudENsaWNrU3RhdGUmIElucHV0RWxlbWVudENs
aWNrU3RhdGUpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7Ci0gICAgbV9ldmVudC0+c2V0VGFyZ2V0
KCZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKCptX25v
ZGUpKTsKKyAgICBtX2V2ZW50LT5zZXRUYXJnZXQoJmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1Rhcmdl
dFJ1bGVzKCptX25vZGUpKTsKICAgICBtX2V2ZW50LT5zZXRDdXJyZW50VGFyZ2V0KDApOwogICAg
IG1fZXZlbnQtPnNldEV2ZW50UGhhc2UoMCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudERpc3BhdGNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRE
aXNwYXRjaGVyLmgJKHJldmlzaW9uIDE1NzIwNykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dERpc3BhdGNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTksMTQgKzU5LDE0IEBAIHB1YmxpYzoK
ICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aC5zaXplKCk7IH0KICAgICBj
b25zdCBFdmVudENvbnRleHQmIGNvbnRleHRBdChzaXplX3QgaSkgY29uc3QgeyByZXR1cm4gKm1f
cGF0aFtpXTsgfQogICAgIEV2ZW50Q29udGV4dCYgY29udGV4dEF0KHNpemVfdCBpKSB7IHJldHVy
biAqbV9wYXRoW2ldOyB9Ci0gICAgCisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHZv
aWQgdXBkYXRlVG91Y2hMaXN0cyhjb25zdCBUb3VjaEV2ZW50Jik7CisjZW5kaWYKICAgICB2b2lk
IHNldFJlbGF0ZWRUYXJnZXQoRXZlbnRUYXJnZXQmKTsKIAogICAgIGJvb2wgaGFzRXZlbnRMaXN0
ZW5lcnMoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpIGNvbnN0OwogCi0gICAgLy8gRklY
TUU6IFdlIHNob3VsZG4ndCBleHBvc2UgdGhpcyBmdW5jdGlvbi4KLSAgICB2b2lkIHNocmluayhz
aXplX3QgbmV3U2l6ZSkgeyBtX3BhdGguc2hyaW5rKG5ld1NpemUpOyB9Ci0KICAgICBFdmVudENv
bnRleHQqIGxhc3RDb250ZXh0SWZFeGlzdHMoKSB7IHJldHVybiBtX3BhdGguaXNFbXB0eSgpID8g
MCA6IG1fcGF0aC5sYXN0KCkuZ2V0KCk7IH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFJldGFyZ2V0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFJldGFyZ2V0ZXIuY3BwCShyZXZpc2lvbiAxNTcyMDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRSZXRhcmdldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsOSArODgs
OSBAQCBFdmVudFBhdGg6OkV2ZW50UGF0aChOb2RlJiB0YXJnZXROb2RlLCBFCiAgICAgTm9kZSog
bm9kZSA9IG5vZGVPckhvc3RJZlBzZXVkb0VsZW1lbnQoJnRhcmdldE5vZGUpOwogICAgIHdoaWxl
IChub2RlKSB7CiAgICAgICAgIGlmICghdGFyZ2V0IHx8ICFpc1NWR0VsZW1lbnQpIC8vIEZJWE1F
OiBUaGlzIGNvZGUgZG9lc24ndCBtYWtlIHNlbnNlIG9uY2Ugd2UndmUgY2xpbWJlZCBvdXQgb2Yg
dGhlIFNWRyBzdWJ0cmVlIGluIGEgSFRNTCBkb2N1bWVudC4KLSAgICAgICAgICAgIHRhcmdldCA9
ICZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKCpub2Rl
KTsKKyAgICAgICAgICAgIHRhcmdldCA9ICZldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxl
cygqbm9kZSk7CiAgICAgICAgIGZvciAoOyBub2RlOyBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgp
KSB7Ci0gICAgICAgICAgICBFdmVudFRhcmdldCYgY3VycmVudFRhcmdldCA9IEV2ZW50UmV0YXJn
ZXRlcjo6ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoKm5vZGUpOworICAgICAgICAg
ICAgRXZlbnRUYXJnZXQmIGN1cnJlbnRUYXJnZXQgPSBldmVudFRhcmdldFJlc3BlY3RpbmdUYXJn
ZXRSdWxlcygqbm9kZSk7CiAgICAgICAgICAgICBpZiAoaXNNb3VzZU9yRm9jdXNFdmVudCkKICAg
ICAgICAgICAgICAgICBtX3BhdGguYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8TW91c2VPckZvY3Vz
RXZlbnRDb250ZXh0Pihub2RlLCAmY3VycmVudFRhcmdldCwgdGFyZ2V0KSk7CiAjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKQEAgLTExMCw1NiArMTEwLDYgQEAgRXZlbnRQYXRoOjpFdmVudFBhdGgo
Tm9kZSYgdGFyZ2V0Tm9kZSwgRQogICAgIH0KIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
Ci12b2lkIEV2ZW50UmV0YXJnZXRlcjo6YWRqdXN0Rm9yVG91Y2hFdmVudChOb2RlKiBub2RlLCBj
b25zdCBUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBFdmVudFBhdGgmIGV2ZW50UGF0aCkKLXsKLSAg
ICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0aC5zaXplKCk7Ci0KLSAgICBFdmVudFBh
dGhUb3VjaExpc3RzIGV2ZW50UGF0aFRvdWNoZXMoZXZlbnRQYXRoU2l6ZSk7Ci0gICAgRXZlbnRQ
YXRoVG91Y2hMaXN0cyBldmVudFBhdGhUYXJnZXRUb3VjaGVzKGV2ZW50UGF0aFNpemUpOwotICAg
IEV2ZW50UGF0aFRvdWNoTGlzdHMgZXZlbnRQYXRoQ2hhbmdlZFRvdWNoZXMoZXZlbnRQYXRoU2l6
ZSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7ICsraSkgewot
ICAgICAgICBUb3VjaEV2ZW50Q29udGV4dCYgY29udGV4dCA9IHRvVG91Y2hFdmVudENvbnRleHQo
ZXZlbnRQYXRoLmNvbnRleHRBdChpKSk7Ci0gICAgICAgIGV2ZW50UGF0aFRvdWNoZXNbaV0gPSBj
b250ZXh0LnRvdWNoZXMoKTsKLSAgICAgICAgZXZlbnRQYXRoVGFyZ2V0VG91Y2hlc1tpXSA9IGNv
bnRleHQudGFyZ2V0VG91Y2hlcygpOwotICAgICAgICBldmVudFBhdGhDaGFuZ2VkVG91Y2hlc1tp
XSA9IGNvbnRleHQuY2hhbmdlZFRvdWNoZXMoKTsKLSAgICB9Ci0KLSAgICBhZGp1c3RUb3VjaExp
c3Qobm9kZSwgdG91Y2hFdmVudC50b3VjaGVzKCksIGV2ZW50UGF0aCwgZXZlbnRQYXRoVG91Y2hl
cyk7Ci0gICAgYWRqdXN0VG91Y2hMaXN0KG5vZGUsIHRvdWNoRXZlbnQudGFyZ2V0VG91Y2hlcygp
LCBldmVudFBhdGgsIGV2ZW50UGF0aFRhcmdldFRvdWNoZXMpOwotICAgIGFkanVzdFRvdWNoTGlz
dChub2RlLCB0b3VjaEV2ZW50LmNoYW5nZWRUb3VjaGVzKCksIGV2ZW50UGF0aCwgZXZlbnRQYXRo
Q2hhbmdlZFRvdWNoZXMpOwotfQotCi12b2lkIEV2ZW50UmV0YXJnZXRlcjo6YWRqdXN0VG91Y2hM
aXN0KGNvbnN0IE5vZGUqIG5vZGUsIGNvbnN0IFRvdWNoTGlzdCogdG91Y2hMaXN0LCBjb25zdCBF
dmVudFBhdGgmIGV2ZW50UGF0aCwgRXZlbnRQYXRoVG91Y2hMaXN0cyYgZXZlbnRQYXRoVG91Y2hM
aXN0cykKLXsKLSAgICBpZiAoIXRvdWNoTGlzdCkKLSAgICAgICAgcmV0dXJuOwotICAgIHNpemVf
dCBldmVudFBhdGhTaXplID0gZXZlbnRQYXRoLnNpemUoKTsKLSAgICBBU1NFUlQoZXZlbnRQYXRo
VG91Y2hMaXN0cy5zaXplKCkgPT0gZXZlbnRQYXRoU2l6ZSk7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB0b3VjaExpc3QtPmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgY29uc3QgVG91Y2gm
IHRvdWNoID0gKnRvdWNoTGlzdC0+aXRlbShpKTsKLSAgICAgICAgVmVjdG9yPFJlZlB0cjxOb2Rl
Pj4gYWRqdXN0ZWROb2RlczsKLSAgICAgICAgY2FsY3VsYXRlQWRqdXN0ZWROb2Rlcyhub2RlLCB0
b3VjaC50YXJnZXQoKS0+dG9Ob2RlKCksIERvZXNOb3RTdG9wQXRCb3VuZGFyeSwgY29uc3RfY2Fz
dDxFdmVudFBhdGgmPihldmVudFBhdGgpLCBhZGp1c3RlZE5vZGVzKTsKLSAgICAgICAgQVNTRVJU
KGFkanVzdGVkTm9kZXMuc2l6ZSgpID09IGV2ZW50UGF0aFNpemUpOwotICAgICAgICBmb3IgKHNp
emVfdCBqID0gMDsgaiA8IGV2ZW50UGF0aFNpemU7ICsraikKLSAgICAgICAgICAgIGV2ZW50UGF0
aFRvdWNoTGlzdHNbal0tPmFwcGVuZCh0b3VjaC5jbG9uZVdpdGhOZXdUYXJnZXQoYWRqdXN0ZWRO
b2Rlc1tqXS5nZXQoKSkpOwotICAgIH0KLX0KLSNlbmRpZgotCi12b2lkIEV2ZW50UGF0aDo6c2V0
UmVsYXRlZFRhcmdldChFdmVudFRhcmdldCYgcmVsYXRlZFRhcmdldCkKLXsKLSAgICBOb2RlKiBy
ZWxhdGVkTm9kZSA9IHJlbGF0ZWRUYXJnZXQudG9Ob2RlKCk7Ci0gICAgaWYgKCFyZWxhdGVkTm9k
ZSkKLSAgICAgICAgcmV0dXJuOwotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGFkanVzdGVkTm9k
ZXM7Ci0gICAgRXZlbnRSZXRhcmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKG1fb3JpZ2lu
LmdldCgpLCByZWxhdGVkTm9kZSwgRXZlbnRSZXRhcmdldGVyOjpTdG9wQXRCb3VuZGFyeUlmTmVl
ZGVkLCAqdGhpcywgYWRqdXN0ZWROb2Rlcyk7Ci0gICAgQVNTRVJUKGFkanVzdGVkTm9kZXMuc2l6
ZSgpIDw9IG1fcGF0aC5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYWRqdXN0
ZWROb2Rlcy5zaXplKCk7ICsraSkKLSAgICAgICAgdG9Nb3VzZU9yRm9jdXNFdmVudENvbnRleHQo
Km1fcGF0aFtpXSkuc2V0UmVsYXRlZFRhcmdldChhZGp1c3RlZE5vZGVzW2ldKTsKLX0KLQogc3Rh
dGljIHZvaWQgYnVpbGRSZWxhdGVkTm9kZU1hcChjb25zdCBOb2RlKiByZWxhdGVkTm9kZSwgSGFz
aE1hcDxUcmVlU2NvcGUqLCBOb2RlKj4mIHJlbGF0ZWROb2RlTWFwKQogewogICAgIE5vZGUqIHJl
bGF0ZWROb2RlSW5DdXJyZW50VHJlZSA9IDA7CkBAIC0xOTYsNyArMTQ2LDExIEBAIHN0YXRpYyBO
b2RlKiBhZGRSZWxhdGVkTm9kZUZvclVubWFwZWRUcmUKICAgICByZXR1cm4gcmVsYXRlZE5vZGU7
CiB9CiAKLXZvaWQgRXZlbnRSZXRhcmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKGNvbnN0
IE5vZGUqIG5vZGUsIGNvbnN0IE5vZGUqIHJlbGF0ZWROb2RlLCBFdmVudFdpdGhSZWxhdGVkVGFy
Z2V0RGlzcGF0Y2hCZWhhdmlvciBldmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlv
ciwgRXZlbnRQYXRoJiBldmVudFBhdGgsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiBhZGp1c3RlZE5v
ZGVzKQorZW51bSBFdmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlvciB7CisgICAg
U3RvcEF0Qm91bmRhcnlJZk5lZWRlZCwKKyAgICBEb2VzTm90U3RvcEF0Qm91bmRhcnkKK307Citz
dGF0aWMgc2l6ZV90IGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMoY29uc3QgTm9kZSogbm9kZSwgY29u
c3QgTm9kZSogcmVsYXRlZE5vZGUsIEV2ZW50V2l0aFJlbGF0ZWRUYXJnZXREaXNwYXRjaEJlaGF2
aW9yIGV2ZW50V2l0aFJlbGF0ZWRUYXJnZXREaXNwYXRjaEJlaGF2aW9yLCBjb25zdCBFdmVudFBh
dGgmIGV2ZW50UGF0aCwgVmVjdG9yPFJlZlB0cjxOb2RlPj4mIGFkanVzdGVkTm9kZXMpCiB7CiAg
ICAgSGFzaE1hcDxUcmVlU2NvcGUqLCBOb2RlKj4gcmVsYXRlZE5vZGVNYXA7CiAgICAgYnVpbGRS
ZWxhdGVkTm9kZU1hcChyZWxhdGVkTm9kZSwgcmVsYXRlZE5vZGVNYXApOwpAQCAtMjA4LDcgKzE2
Miw3IEBAIHZvaWQgRXZlbnRSZXRhcmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE4KICAgICBOb2Rl
KiBhZGp1c3RlZE5vZGUgPSAwOwogICAgIHNpemVfdCBldmVudFBhdGhTaXplID0gZXZlbnRQYXRo
LnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7IGkrKykg
ewotICAgICAgICBFdmVudENvbnRleHQmIGNvbnRleHQgPSBldmVudFBhdGguY29udGV4dEF0KGkp
OworICAgICAgICBjb25zdCBFdmVudENvbnRleHQmIGNvbnRleHQgPSBldmVudFBhdGguY29udGV4
dEF0KGkpOwogICAgICAgICBUcmVlU2NvcGUqIHNjb3BlID0gJmNvbnRleHQubm9kZSgpLT50cmVl
U2NvcGUoKTsKIAogICAgICAgICAvLyBSZS11c2UgdGhlIHByZXZpb3VzIGFkanVzdGVkUmVsYXRl
ZFRhcmdldCBpZiB0cmVlU2NvcGUgZG9lcyBub3QgY2hhbmdlLiBKdXN0IGZvciB0aGUgcGVyZm9y
bWFuY2Ugb3B0aW1pemF0aW9uLgpAQCAtMjIwLDE3ICsxNzQsNjcgQEAgdm9pZCBFdmVudFJldGFy
Z2V0ZXI6OmNhbGN1bGF0ZUFkanVzdGVkTgogICAgICAgICBpZiAoZXZlbnRXaXRoUmVsYXRlZFRh
cmdldERpc3BhdGNoQmVoYXZpb3IgPT0gRG9lc05vdFN0b3BBdEJvdW5kYXJ5KQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIGlmICh0YXJnZXRJc0lkZW50aWNhbFRvVG9SZWxhdGVkVGFy
Z2V0KSB7Ci0gICAgICAgICAgICBpZiAobm9kZS0+dHJlZVNjb3BlKCkucm9vdE5vZGUoKSA9PSBj
b250ZXh0Lm5vZGUoKSkgewotICAgICAgICAgICAgICAgIGV2ZW50UGF0aC5zaHJpbmsoaSArIDEp
OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KG5vZGUtPnRyZWVTY29wZSgpLnJvb3ROb2RlKCkgPT0gY29udGV4dC5ub2RlKCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGkgKyAxOwogICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQudGFyZ2V0
KCkgPT0gYWRqdXN0ZWROb2RlKSB7CiAgICAgICAgICAgICAvLyBFdmVudCBkaXNwYXRjaGluZyBz
aG91bGQgYmUgc3RvcHBlZCBoZXJlLgotICAgICAgICAgICAgZXZlbnRQYXRoLnNocmluayhpKTsK
ICAgICAgICAgICAgIGFkanVzdGVkTm9kZXMuc2hyaW5rKGFkanVzdGVkTm9kZXMuc2l6ZSgpIC0g
MSk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9
CiAgICAgfQorICAgIHJldHVybiBldmVudFBhdGhTaXplOworfQorCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKK3N0YXRpYyB2b2lkIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aChWZWN0b3I8
UmVmUHRyPFRvdWNoTGlzdD4+JiB0b3VjaExpc3RzSW5FdmVudFBhdGgsIGNvbnN0IE5vZGUqIG5v
ZGUsIGNvbnN0IFRvdWNoTGlzdCogdG91Y2hMaXN0LCBjb25zdCBFdmVudFBhdGgmIGV2ZW50UGF0
aCkKK3sKKyAgICBpZiAoIXRvdWNoTGlzdCkKKyAgICAgICAgcmV0dXJuOworICAgIHNpemVfdCBl
dmVudFBhdGhTaXplID0gZXZlbnRQYXRoLnNpemUoKTsKKyAgICBBU1NFUlQodG91Y2hMaXN0c0lu
RXZlbnRQYXRoLnNpemUoKSA9PSBldmVudFBhdGhTaXplKTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHRvdWNoTGlzdC0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBjb25zdCBUb3VjaCYg
dG91Y2ggPSAqdG91Y2hMaXN0LT5pdGVtKGkpOworCisgICAgICAgIFZlY3RvcjxSZWZQdHI8Tm9k
ZT4+IGFkanVzdGVkTm9kZXM7CisgICAgICAgIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMobm9kZSwg
dG91Y2gudGFyZ2V0KCktPnRvTm9kZSgpLCBEb2VzTm90U3RvcEF0Qm91bmRhcnksIGV2ZW50UGF0
aCwgYWRqdXN0ZWROb2Rlcyk7CisKKyAgICAgICAgQVNTRVJUKGFkanVzdGVkTm9kZXMuc2l6ZSgp
ID09IGV2ZW50UGF0aFNpemUpOworICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGV2ZW50
UGF0aFNpemU7ICsraikKKyAgICAgICAgICAgIHRvdWNoTGlzdHNJbkV2ZW50UGF0aFtqXS0+YXBw
ZW5kKHRvdWNoLmNsb25lV2l0aE5ld1RhcmdldChhZGp1c3RlZE5vZGVzW2pdLmdldCgpKSk7Cisg
ICAgfQorfQorCit2b2lkIEV2ZW50UGF0aDo6dXBkYXRlVG91Y2hMaXN0cyhjb25zdCBUb3VjaEV2
ZW50JiB0b3VjaEV2ZW50KQoreworICAgIHNpemVfdCBldmVudFBhdGhTaXplID0gbV9wYXRoLnNp
emUoKTsKKworICAgIFZlY3RvcjxSZWZQdHI8VG91Y2hMaXN0Pj4gdG91Y2hlc0luRXZlbnRQYXRo
KGV2ZW50UGF0aFNpemUpOworICAgIFZlY3RvcjxSZWZQdHI8VG91Y2hMaXN0Pj4gdGFyZ2V0VG91
Y2hlc0luRXZlbnRQYXRoKGV2ZW50UGF0aFNpemUpOworICAgIFZlY3RvcjxSZWZQdHI8VG91Y2hM
aXN0Pj4gY2hhbmdlZFRvdWNoZXNJbkV2ZW50UGF0aChldmVudFBhdGhTaXplKTsKKworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgZXZlbnRQYXRoU2l6ZTsgKytpKSB7CisgICAgICAgIFRvdWNo
RXZlbnRDb250ZXh0JiBjb250ZXh0ID0gdG9Ub3VjaEV2ZW50Q29udGV4dChtX3BhdGhbaV0pOwor
ICAgICAgICB0b3VjaGVzSW5FdmVudFBhdGhbaV0gPSBjb250ZXh0LnRvdWNoZXMoKTsKKyAgICAg
ICAgdGFyZ2V0VG91Y2hlc0luRXZlbnRQYXRoW2ldID0gY29udGV4dC50YXJnZXRUb3VjaGVzKCk7
CisgICAgICAgIGNoYW5nZWRUb3VjaGVzSW5FdmVudFBhdGhbaV0gPSBjb250ZXh0LmNoYW5nZWRU
b3VjaGVzKCk7CisgICAgfQorCisgICAgdXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKHRvdWNo
ZXNJbkV2ZW50UGF0aCwgbV9vcmlnaW4uZ2V0KCksIHRvdWNoRXZlbnQudG91Y2hlcygpLCAqdGhp
cyk7CisgICAgdXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKHRhcmdldFRvdWNoZXNJbkV2ZW50
UGF0aCwgbV9vcmlnaW4uZ2V0KCksIHRvdWNoRXZlbnQudGFyZ2V0VG91Y2hlcygpLCAqdGhpcyk7
CisgICAgdXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKGNoYW5nZWRUb3VjaGVzSW5FdmVudFBh
dGgsIG1fb3JpZ2luLmdldCgpLCB0b3VjaEV2ZW50LmNoYW5nZWRUb3VjaGVzKCksICp0aGlzKTsK
K30KKyNlbmRpZgorCit2b2lkIEV2ZW50UGF0aDo6c2V0UmVsYXRlZFRhcmdldChFdmVudFRhcmdl
dCYgcmVsYXRlZFRhcmdldCkKK3sKKyAgICBOb2RlKiByZWxhdGVkTm9kZSA9IHJlbGF0ZWRUYXJn
ZXQudG9Ob2RlKCk7CisgICAgaWYgKCFyZWxhdGVkTm9kZSkKKyAgICAgICAgcmV0dXJuOworICAg
IFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGFkanVzdGVkTm9kZXM7CisgICAgbV9wYXRoLnNocmluayhj
YWxjdWxhdGVBZGp1c3RlZE5vZGVzKG1fb3JpZ2luLmdldCgpLCByZWxhdGVkTm9kZSwgU3RvcEF0
Qm91bmRhcnlJZk5lZWRlZCwgKnRoaXMsIGFkanVzdGVkTm9kZXMpKTsKKyAgICBBU1NFUlQoYWRq
dXN0ZWROb2Rlcy5zaXplKCkgPD0gbV9wYXRoLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBhZGp1c3RlZE5vZGVzLnNpemUoKTsgKytpKQorICAgICAgICB0b01vdXNlT3JGb2N1
c0V2ZW50Q29udGV4dCgqbV9wYXRoW2ldKS5zZXRSZWxhdGVkVGFyZ2V0KGFkanVzdGVkTm9kZXNb
aV0pOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRSZXRhcmdldGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UmV0YXJnZXRlci5oCShyZXZp
c2lvbiAxNTcyMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRSZXRhcmdldGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ2LDI4ICs0Niw3IEBAIGNsYXNzIFRvdWNoRXZlbnQ7CiAjZW5kaWYK
IGNsYXNzIFRyZWVTY29wZTsKIAotY2xhc3MgRXZlbnRSZXRhcmdldGVyIHsKLXB1YmxpYzoKLSNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxUb3VjaExp
c3Q+ID4gRXZlbnRQYXRoVG91Y2hMaXN0czsKLSAgICBzdGF0aWMgdm9pZCBhZGp1c3RGb3JUb3Vj
aEV2ZW50KE5vZGUqLCBjb25zdCBUb3VjaEV2ZW50JiwgRXZlbnRQYXRoJik7Ci0jZW5kaWYKLSAg
ICBzdGF0aWMgRXZlbnRUYXJnZXQmIGV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKE5v
ZGUmIHJlZmVyZW5jZU5vZGUpOwotCi1wcml2YXRlOgotICAgIGVudW0gRXZlbnRXaXRoUmVsYXRl
ZFRhcmdldERpc3BhdGNoQmVoYXZpb3IgewotICAgICAgICBTdG9wQXRCb3VuZGFyeUlmTmVlZGVk
LAotICAgICAgICBEb2VzTm90U3RvcEF0Qm91bmRhcnkKLSAgICB9OwotICAgIHN0YXRpYyB2b2lk
IGFkanVzdEZvclJlbGF0ZWRUYXJnZXQoY29uc3QgTm9kZSosIEV2ZW50VGFyZ2V0KiByZWxhdGVk
VGFyZ2V0LCBFdmVudFBhdGgmKTsKLSAgICBzdGF0aWMgdm9pZCBjYWxjdWxhdGVBZGp1c3RlZE5v
ZGVzKGNvbnN0IE5vZGUqLCBjb25zdCBOb2RlKiByZWxhdGVkTm9kZSwgRXZlbnRXaXRoUmVsYXRl
ZFRhcmdldERpc3BhdGNoQmVoYXZpb3IsIEV2ZW50UGF0aCYsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+
JiBhZGp1c3RlZE5vZGVzKTsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIHN0YXRpYyB2
b2lkIGFkanVzdFRvdWNoTGlzdChjb25zdCBOb2RlKiwgY29uc3QgVG91Y2hMaXN0KiwgY29uc3Qg
RXZlbnRQYXRoJiwgRXZlbnRQYXRoVG91Y2hMaXN0cyYpOwotI2VuZGlmCi0gICAgZnJpZW5kIGNs
YXNzIEV2ZW50UGF0aDsKLX07Ci0KLWlubGluZSBFdmVudFRhcmdldCYgRXZlbnRSZXRhcmdldGVy
OjpldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxlcyhOb2RlJiByZWZlcmVuY2VOb2RlKQor
aW5saW5lIEV2ZW50VGFyZ2V0JiBldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxlcyhOb2Rl
JiByZWZlcmVuY2VOb2RlKQogewogICAgIGlmIChyZWZlcmVuY2VOb2RlLmlzUHNldWRvRWxlbWVu
dCgpKSB7CiAgICAgICAgIEV2ZW50VGFyZ2V0KiBob3N0RWxlbWVudCA9IHRvUHNldWRvRWxlbWVu
dChyZWZlcmVuY2VOb2RlKS5ob3N0RWxlbWVudCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213850</attachid>
            <date>2013-10-09 21:34:44 -0700</date>
            <delta_ts>2013-10-09 21:53:19 -0700</delta_ts>
            <desc>Another EFL build fix</desc>
            <filename>bug-122586-20131009213443.patch</filename>
            <type>text/plain</type>
            <size>13719</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzIwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEzLTEwLTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgdGhlIHJlc3Qgb2YgRXZl
bnRSZXRhcmdldGVyIGZ1bmN0aW9ucyB0byBFdmVudFBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjU4NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHRoZSByZXN0IG9mIEV2ZW50UmV0YXJn
ZXRlciBmdW5jdGlvc24gZWl0aGVyIHN0YXRpYyBsb2NhbCBvciBFdmVudFBhdGggbWVtYmVyIGZ1
bmN0aW9ucy4KKworICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNjb3BlZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50UG9zdFByb2Nlc3MpOgorICAgICAgICAqIGRv
bS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBkb20vRXZlbnRSZXRhcmdldGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6RXZlbnRQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OmNhbGN1bGF0ZUFkanVzdGVkTm9kZXMpOiBNYWRlIHN0YXRpYyBsb2NhbC4gQWxzbyB0YWtl
cyBjb25zdCBFdmVudFBhdGggYW5kIHJldHVybnMgdGhlIHNpemUKKyAgICAgICAgdG8gd2hpY2gg
RXZlbnRQYXRoIHNob3VsZCBiZSBzaHJ1bms7IHRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSBFdmVu
dFBhdGg6OnNocmluay4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50
UGF0aCk6IE1vdmVkIGFuZCByZW5hbWVkIGZyb20gRXZlbnRSZXRhcmdldGVyOjphZGp1c3RUb3Vj
aExpc3QuCisgICAgICAgIChXZWJDb3JlOjpFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHMpOiBN
b3ZlZCBhbmQgcmVuYW1lZCBmcm9tIEV2ZW50UmV0YXJnZXRlcjo6YWRqdXN0Rm9yVG91Y2hFdmVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6c2V0UmVsYXRlZFRhcmdldCk6IE1vdmVk
LgorICAgICAgICAqIGRvbS9FdmVudFJldGFyZ2V0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmV2
ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKTogUmVuYW1lZCBmcm9tIEV2ZW50UmV0YXJn
ZXRlcjo6ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMuCisKIDIwMTMtMTAtMDkgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQW5vdGhlciBidWlsZCBm
aXggYWZ0ZXIgcjE1NzIwNC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNo
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIu
Y3BwCShyZXZpc2lvbiAxNTcyMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRj
aGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNyBAQCBFdmVudERpc3BhdGNoZXI6
OkV2ZW50RGlzcGF0Y2hlcihOb2RlKiBuCiB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hT
Y29wZWRFdmVudChOb2RlJiBub2RlLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsKICAgICAv
LyBXZSBuZWVkIHRvIHNldCB0aGUgdGFyZ2V0IGhlcmUgYmVjYXVzZSBpdCBjYW4gZ28gYXdheSBi
eSB0aGUgdGltZSB3ZSBhY3R1YWxseSBmaXJlIHRoZSBldmVudC4KLSAgICBldmVudC0+c2V0VGFy
Z2V0KCZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKG5v
ZGUpKTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KCZldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRS
dWxlcyhub2RlKSk7CiAgICAgU2NvcGVkRXZlbnRRdWV1ZTo6aW5zdGFuY2UoKS0+ZW5xdWV1ZUV2
ZW50KGV2ZW50KTsKIH0KIApAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wgRXZlbnREaXNwYXRjaGVy
OjpkaXNwYXRjaCgpCiAgICAgICAgIG1fZXZlbnRQYXRoLnNldFJlbGF0ZWRUYXJnZXQoKnJlbGF0
ZWRUYXJnZXQpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgaWYgKG1fZXZlbnQtPmlz
VG91Y2hFdmVudCgpKQotICAgICAgICBFdmVudFJldGFyZ2V0ZXI6OmFkanVzdEZvclRvdWNoRXZl
bnQobV9ub2RlLmdldCgpLCAqdG9Ub3VjaEV2ZW50KG1fZXZlbnQuZ2V0KCkpLCBtX2V2ZW50UGF0
aCk7IAorICAgICAgICBFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHMoKnRvVG91Y2hFdmVudCht
X2V2ZW50LmdldCgpKSk7CiAjZW5kaWYKIAogI2lmbmRlZiBOREVCVUcKQEAgLTExNSw3ICsxMTUs
NyBAQCBib29sIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2goKQogICAgIENoaWxkTm9kZXNMYXp5
U25hcHNob3Q6OnRha2VDaGlsZE5vZGVzTGF6eVNuYXBzaG90KCk7CiAKICAgICBBU1NFUlQobV9u
b2RlKTsKLSAgICBtX2V2ZW50LT5zZXRUYXJnZXQoJkV2ZW50UmV0YXJnZXRlcjo6ZXZlbnRUYXJn
ZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoKm1fbm9kZSkpOworICAgIG1fZXZlbnQtPnNldFRhcmdl
dCgmZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoKm1fbm9kZSkpOwogICAgIEFTU0VS
VCghTm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uOjppc0V2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7
CiAgICAgQVNTRVJUKG1fZXZlbnQtPnRhcmdldCgpKTsKICAgICBXaW5kb3dFdmVudENvbnRleHQg
d2luZG93RXZlbnRDb250ZXh0KG1fZXZlbnQuZ2V0KCksIG1fbm9kZS5nZXQoKSwgdG9wRXZlbnRD
b250ZXh0KCkpOwpAQCAtMTk1LDcgKzE5NSw3IEBAIGlubGluZSB2b2lkIEV2ZW50RGlzcGF0Y2hl
cjo6ZGlzcGF0Y2hFdmUKIGlubGluZSB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVu
dFBvc3RQcm9jZXNzKGNvbnN0IElucHV0RWxlbWVudENsaWNrU3RhdGUmIElucHV0RWxlbWVudENs
aWNrU3RhdGUpCiB7CiAgICAgQVNTRVJUKG1fbm9kZSk7Ci0gICAgbV9ldmVudC0+c2V0VGFyZ2V0
KCZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKCptX25v
ZGUpKTsKKyAgICBtX2V2ZW50LT5zZXRUYXJnZXQoJmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1Rhcmdl
dFJ1bGVzKCptX25vZGUpKTsKICAgICBtX2V2ZW50LT5zZXRDdXJyZW50VGFyZ2V0KDApOwogICAg
IG1fZXZlbnQtPnNldEV2ZW50UGhhc2UoMCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudERpc3BhdGNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRE
aXNwYXRjaGVyLmgJKHJldmlzaW9uIDE1NzIwNykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dERpc3BhdGNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTksMTQgKzU5LDE0IEBAIHB1YmxpYzoK
ICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aC5zaXplKCk7IH0KICAgICBj
b25zdCBFdmVudENvbnRleHQmIGNvbnRleHRBdChzaXplX3QgaSkgY29uc3QgeyByZXR1cm4gKm1f
cGF0aFtpXTsgfQogICAgIEV2ZW50Q29udGV4dCYgY29udGV4dEF0KHNpemVfdCBpKSB7IHJldHVy
biAqbV9wYXRoW2ldOyB9Ci0gICAgCisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHZv
aWQgdXBkYXRlVG91Y2hMaXN0cyhjb25zdCBUb3VjaEV2ZW50Jik7CisjZW5kaWYKICAgICB2b2lk
IHNldFJlbGF0ZWRUYXJnZXQoRXZlbnRUYXJnZXQmKTsKIAogICAgIGJvb2wgaGFzRXZlbnRMaXN0
ZW5lcnMoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpIGNvbnN0OwogCi0gICAgLy8gRklY
TUU6IFdlIHNob3VsZG4ndCBleHBvc2UgdGhpcyBmdW5jdGlvbi4KLSAgICB2b2lkIHNocmluayhz
aXplX3QgbmV3U2l6ZSkgeyBtX3BhdGguc2hyaW5rKG5ld1NpemUpOyB9Ci0KICAgICBFdmVudENv
bnRleHQqIGxhc3RDb250ZXh0SWZFeGlzdHMoKSB7IHJldHVybiBtX3BhdGguaXNFbXB0eSgpID8g
MCA6IG1fcGF0aC5sYXN0KCkuZ2V0KCk7IH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFJldGFyZ2V0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFJldGFyZ2V0ZXIuY3BwCShyZXZpc2lvbiAxNTcyMDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRSZXRhcmdldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsOSArODgs
OSBAQCBFdmVudFBhdGg6OkV2ZW50UGF0aChOb2RlJiB0YXJnZXROb2RlLCBFCiAgICAgTm9kZSog
bm9kZSA9IG5vZGVPckhvc3RJZlBzZXVkb0VsZW1lbnQoJnRhcmdldE5vZGUpOwogICAgIHdoaWxl
IChub2RlKSB7CiAgICAgICAgIGlmICghdGFyZ2V0IHx8ICFpc1NWR0VsZW1lbnQpIC8vIEZJWE1F
OiBUaGlzIGNvZGUgZG9lc24ndCBtYWtlIHNlbnNlIG9uY2Ugd2UndmUgY2xpbWJlZCBvdXQgb2Yg
dGhlIFNWRyBzdWJ0cmVlIGluIGEgSFRNTCBkb2N1bWVudC4KLSAgICAgICAgICAgIHRhcmdldCA9
ICZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKCpub2Rl
KTsKKyAgICAgICAgICAgIHRhcmdldCA9ICZldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxl
cygqbm9kZSk7CiAgICAgICAgIGZvciAoOyBub2RlOyBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgp
KSB7Ci0gICAgICAgICAgICBFdmVudFRhcmdldCYgY3VycmVudFRhcmdldCA9IEV2ZW50UmV0YXJn
ZXRlcjo6ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoKm5vZGUpOworICAgICAgICAg
ICAgRXZlbnRUYXJnZXQmIGN1cnJlbnRUYXJnZXQgPSBldmVudFRhcmdldFJlc3BlY3RpbmdUYXJn
ZXRSdWxlcygqbm9kZSk7CiAgICAgICAgICAgICBpZiAoaXNNb3VzZU9yRm9jdXNFdmVudCkKICAg
ICAgICAgICAgICAgICBtX3BhdGguYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8TW91c2VPckZvY3Vz
RXZlbnRDb250ZXh0Pihub2RlLCAmY3VycmVudFRhcmdldCwgdGFyZ2V0KSk7CiAjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKQEAgLTExMCw1NiArMTEwLDYgQEAgRXZlbnRQYXRoOjpFdmVudFBhdGgo
Tm9kZSYgdGFyZ2V0Tm9kZSwgRQogICAgIH0KIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
Ci12b2lkIEV2ZW50UmV0YXJnZXRlcjo6YWRqdXN0Rm9yVG91Y2hFdmVudChOb2RlKiBub2RlLCBj
b25zdCBUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBFdmVudFBhdGgmIGV2ZW50UGF0aCkKLXsKLSAg
ICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0aC5zaXplKCk7Ci0KLSAgICBFdmVudFBh
dGhUb3VjaExpc3RzIGV2ZW50UGF0aFRvdWNoZXMoZXZlbnRQYXRoU2l6ZSk7Ci0gICAgRXZlbnRQ
YXRoVG91Y2hMaXN0cyBldmVudFBhdGhUYXJnZXRUb3VjaGVzKGV2ZW50UGF0aFNpemUpOwotICAg
IEV2ZW50UGF0aFRvdWNoTGlzdHMgZXZlbnRQYXRoQ2hhbmdlZFRvdWNoZXMoZXZlbnRQYXRoU2l6
ZSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7ICsraSkgewot
ICAgICAgICBUb3VjaEV2ZW50Q29udGV4dCYgY29udGV4dCA9IHRvVG91Y2hFdmVudENvbnRleHQo
ZXZlbnRQYXRoLmNvbnRleHRBdChpKSk7Ci0gICAgICAgIGV2ZW50UGF0aFRvdWNoZXNbaV0gPSBj
b250ZXh0LnRvdWNoZXMoKTsKLSAgICAgICAgZXZlbnRQYXRoVGFyZ2V0VG91Y2hlc1tpXSA9IGNv
bnRleHQudGFyZ2V0VG91Y2hlcygpOwotICAgICAgICBldmVudFBhdGhDaGFuZ2VkVG91Y2hlc1tp
XSA9IGNvbnRleHQuY2hhbmdlZFRvdWNoZXMoKTsKLSAgICB9Ci0KLSAgICBhZGp1c3RUb3VjaExp
c3Qobm9kZSwgdG91Y2hFdmVudC50b3VjaGVzKCksIGV2ZW50UGF0aCwgZXZlbnRQYXRoVG91Y2hl
cyk7Ci0gICAgYWRqdXN0VG91Y2hMaXN0KG5vZGUsIHRvdWNoRXZlbnQudGFyZ2V0VG91Y2hlcygp
LCBldmVudFBhdGgsIGV2ZW50UGF0aFRhcmdldFRvdWNoZXMpOwotICAgIGFkanVzdFRvdWNoTGlz
dChub2RlLCB0b3VjaEV2ZW50LmNoYW5nZWRUb3VjaGVzKCksIGV2ZW50UGF0aCwgZXZlbnRQYXRo
Q2hhbmdlZFRvdWNoZXMpOwotfQotCi12b2lkIEV2ZW50UmV0YXJnZXRlcjo6YWRqdXN0VG91Y2hM
aXN0KGNvbnN0IE5vZGUqIG5vZGUsIGNvbnN0IFRvdWNoTGlzdCogdG91Y2hMaXN0LCBjb25zdCBF
dmVudFBhdGgmIGV2ZW50UGF0aCwgRXZlbnRQYXRoVG91Y2hMaXN0cyYgZXZlbnRQYXRoVG91Y2hM
aXN0cykKLXsKLSAgICBpZiAoIXRvdWNoTGlzdCkKLSAgICAgICAgcmV0dXJuOwotICAgIHNpemVf
dCBldmVudFBhdGhTaXplID0gZXZlbnRQYXRoLnNpemUoKTsKLSAgICBBU1NFUlQoZXZlbnRQYXRo
VG91Y2hMaXN0cy5zaXplKCkgPT0gZXZlbnRQYXRoU2l6ZSk7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB0b3VjaExpc3QtPmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgY29uc3QgVG91Y2gm
IHRvdWNoID0gKnRvdWNoTGlzdC0+aXRlbShpKTsKLSAgICAgICAgVmVjdG9yPFJlZlB0cjxOb2Rl
Pj4gYWRqdXN0ZWROb2RlczsKLSAgICAgICAgY2FsY3VsYXRlQWRqdXN0ZWROb2Rlcyhub2RlLCB0
b3VjaC50YXJnZXQoKS0+dG9Ob2RlKCksIERvZXNOb3RTdG9wQXRCb3VuZGFyeSwgY29uc3RfY2Fz
dDxFdmVudFBhdGgmPihldmVudFBhdGgpLCBhZGp1c3RlZE5vZGVzKTsKLSAgICAgICAgQVNTRVJU
KGFkanVzdGVkTm9kZXMuc2l6ZSgpID09IGV2ZW50UGF0aFNpemUpOwotICAgICAgICBmb3IgKHNp
emVfdCBqID0gMDsgaiA8IGV2ZW50UGF0aFNpemU7ICsraikKLSAgICAgICAgICAgIGV2ZW50UGF0
aFRvdWNoTGlzdHNbal0tPmFwcGVuZCh0b3VjaC5jbG9uZVdpdGhOZXdUYXJnZXQoYWRqdXN0ZWRO
b2Rlc1tqXS5nZXQoKSkpOwotICAgIH0KLX0KLSNlbmRpZgotCi12b2lkIEV2ZW50UGF0aDo6c2V0
UmVsYXRlZFRhcmdldChFdmVudFRhcmdldCYgcmVsYXRlZFRhcmdldCkKLXsKLSAgICBOb2RlKiBy
ZWxhdGVkTm9kZSA9IHJlbGF0ZWRUYXJnZXQudG9Ob2RlKCk7Ci0gICAgaWYgKCFyZWxhdGVkTm9k
ZSkKLSAgICAgICAgcmV0dXJuOwotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGFkanVzdGVkTm9k
ZXM7Ci0gICAgRXZlbnRSZXRhcmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKG1fb3JpZ2lu
LmdldCgpLCByZWxhdGVkTm9kZSwgRXZlbnRSZXRhcmdldGVyOjpTdG9wQXRCb3VuZGFyeUlmTmVl
ZGVkLCAqdGhpcywgYWRqdXN0ZWROb2Rlcyk7Ci0gICAgQVNTRVJUKGFkanVzdGVkTm9kZXMuc2l6
ZSgpIDw9IG1fcGF0aC5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYWRqdXN0
ZWROb2Rlcy5zaXplKCk7ICsraSkKLSAgICAgICAgdG9Nb3VzZU9yRm9jdXNFdmVudENvbnRleHQo
Km1fcGF0aFtpXSkuc2V0UmVsYXRlZFRhcmdldChhZGp1c3RlZE5vZGVzW2ldKTsKLX0KLQogc3Rh
dGljIHZvaWQgYnVpbGRSZWxhdGVkTm9kZU1hcChjb25zdCBOb2RlKiByZWxhdGVkTm9kZSwgSGFz
aE1hcDxUcmVlU2NvcGUqLCBOb2RlKj4mIHJlbGF0ZWROb2RlTWFwKQogewogICAgIE5vZGUqIHJl
bGF0ZWROb2RlSW5DdXJyZW50VHJlZSA9IDA7CkBAIC0xOTYsNyArMTQ2LDExIEBAIHN0YXRpYyBO
b2RlKiBhZGRSZWxhdGVkTm9kZUZvclVubWFwZWRUcmUKICAgICByZXR1cm4gcmVsYXRlZE5vZGU7
CiB9CiAKLXZvaWQgRXZlbnRSZXRhcmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKGNvbnN0
IE5vZGUqIG5vZGUsIGNvbnN0IE5vZGUqIHJlbGF0ZWROb2RlLCBFdmVudFdpdGhSZWxhdGVkVGFy
Z2V0RGlzcGF0Y2hCZWhhdmlvciBldmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlv
ciwgRXZlbnRQYXRoJiBldmVudFBhdGgsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiBhZGp1c3RlZE5v
ZGVzKQorZW51bSBFdmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlvciB7CisgICAg
U3RvcEF0Qm91bmRhcnlJZk5lZWRlZCwKKyAgICBEb2VzTm90U3RvcEF0Qm91bmRhcnkKK307Citz
dGF0aWMgc2l6ZV90IGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMoY29uc3QgTm9kZSogbm9kZSwgY29u
c3QgTm9kZSogcmVsYXRlZE5vZGUsIEV2ZW50V2l0aFJlbGF0ZWRUYXJnZXREaXNwYXRjaEJlaGF2
aW9yIGV2ZW50V2l0aFJlbGF0ZWRUYXJnZXREaXNwYXRjaEJlaGF2aW9yLCBjb25zdCBFdmVudFBh
dGgmIGV2ZW50UGF0aCwgVmVjdG9yPFJlZlB0cjxOb2RlPj4mIGFkanVzdGVkTm9kZXMpCiB7CiAg
ICAgSGFzaE1hcDxUcmVlU2NvcGUqLCBOb2RlKj4gcmVsYXRlZE5vZGVNYXA7CiAgICAgYnVpbGRS
ZWxhdGVkTm9kZU1hcChyZWxhdGVkTm9kZSwgcmVsYXRlZE5vZGVNYXApOwpAQCAtMjA4LDcgKzE2
Miw3IEBAIHZvaWQgRXZlbnRSZXRhcmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE4KICAgICBOb2Rl
KiBhZGp1c3RlZE5vZGUgPSAwOwogICAgIHNpemVfdCBldmVudFBhdGhTaXplID0gZXZlbnRQYXRo
LnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7IGkrKykg
ewotICAgICAgICBFdmVudENvbnRleHQmIGNvbnRleHQgPSBldmVudFBhdGguY29udGV4dEF0KGkp
OworICAgICAgICBjb25zdCBFdmVudENvbnRleHQmIGNvbnRleHQgPSBldmVudFBhdGguY29udGV4
dEF0KGkpOwogICAgICAgICBUcmVlU2NvcGUqIHNjb3BlID0gJmNvbnRleHQubm9kZSgpLT50cmVl
U2NvcGUoKTsKIAogICAgICAgICAvLyBSZS11c2UgdGhlIHByZXZpb3VzIGFkanVzdGVkUmVsYXRl
ZFRhcmdldCBpZiB0cmVlU2NvcGUgZG9lcyBub3QgY2hhbmdlLiBKdXN0IGZvciB0aGUgcGVyZm9y
bWFuY2Ugb3B0aW1pemF0aW9uLgpAQCAtMjIwLDE3ICsxNzQsNjcgQEAgdm9pZCBFdmVudFJldGFy
Z2V0ZXI6OmNhbGN1bGF0ZUFkanVzdGVkTgogICAgICAgICBpZiAoZXZlbnRXaXRoUmVsYXRlZFRh
cmdldERpc3BhdGNoQmVoYXZpb3IgPT0gRG9lc05vdFN0b3BBdEJvdW5kYXJ5KQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIGlmICh0YXJnZXRJc0lkZW50aWNhbFRvVG9SZWxhdGVkVGFy
Z2V0KSB7Ci0gICAgICAgICAgICBpZiAobm9kZS0+dHJlZVNjb3BlKCkucm9vdE5vZGUoKSA9PSBj
b250ZXh0Lm5vZGUoKSkgewotICAgICAgICAgICAgICAgIGV2ZW50UGF0aC5zaHJpbmsoaSArIDEp
OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KG5vZGUtPnRyZWVTY29wZSgpLnJvb3ROb2RlKCkgPT0gY29udGV4dC5ub2RlKCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGkgKyAxOwogICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQudGFyZ2V0
KCkgPT0gYWRqdXN0ZWROb2RlKSB7CiAgICAgICAgICAgICAvLyBFdmVudCBkaXNwYXRjaGluZyBz
aG91bGQgYmUgc3RvcHBlZCBoZXJlLgotICAgICAgICAgICAgZXZlbnRQYXRoLnNocmluayhpKTsK
ICAgICAgICAgICAgIGFkanVzdGVkTm9kZXMuc2hyaW5rKGFkanVzdGVkTm9kZXMuc2l6ZSgpIC0g
MSk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9
CiAgICAgfQorICAgIHJldHVybiBldmVudFBhdGhTaXplOworfQorCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKK3N0YXRpYyB2b2lkIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aChWZWN0b3I8
UmVmUHRyPFRvdWNoTGlzdD4+JiB0b3VjaExpc3RzSW5FdmVudFBhdGgsIGNvbnN0IE5vZGUqIG5v
ZGUsIGNvbnN0IFRvdWNoTGlzdCogdG91Y2hMaXN0LCBjb25zdCBFdmVudFBhdGgmIGV2ZW50UGF0
aCkKK3sKKyAgICBpZiAoIXRvdWNoTGlzdCkKKyAgICAgICAgcmV0dXJuOworICAgIHNpemVfdCBl
dmVudFBhdGhTaXplID0gZXZlbnRQYXRoLnNpemUoKTsKKyAgICBBU1NFUlQodG91Y2hMaXN0c0lu
RXZlbnRQYXRoLnNpemUoKSA9PSBldmVudFBhdGhTaXplKTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHRvdWNoTGlzdC0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBjb25zdCBUb3VjaCYg
dG91Y2ggPSAqdG91Y2hMaXN0LT5pdGVtKGkpOworCisgICAgICAgIFZlY3RvcjxSZWZQdHI8Tm9k
ZT4+IGFkanVzdGVkTm9kZXM7CisgICAgICAgIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMobm9kZSwg
dG91Y2gudGFyZ2V0KCktPnRvTm9kZSgpLCBEb2VzTm90U3RvcEF0Qm91bmRhcnksIGV2ZW50UGF0
aCwgYWRqdXN0ZWROb2Rlcyk7CisKKyAgICAgICAgQVNTRVJUKGFkanVzdGVkTm9kZXMuc2l6ZSgp
ID09IGV2ZW50UGF0aFNpemUpOworICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGV2ZW50
UGF0aFNpemU7ICsraikKKyAgICAgICAgICAgIHRvdWNoTGlzdHNJbkV2ZW50UGF0aFtqXS0+YXBw
ZW5kKHRvdWNoLmNsb25lV2l0aE5ld1RhcmdldChhZGp1c3RlZE5vZGVzW2pdLmdldCgpKSk7Cisg
ICAgfQorfQorCit2b2lkIEV2ZW50UGF0aDo6dXBkYXRlVG91Y2hMaXN0cyhjb25zdCBUb3VjaEV2
ZW50JiB0b3VjaEV2ZW50KQoreworICAgIHNpemVfdCBldmVudFBhdGhTaXplID0gbV9wYXRoLnNp
emUoKTsKKworICAgIFZlY3RvcjxSZWZQdHI8VG91Y2hMaXN0Pj4gdG91Y2hlc0luRXZlbnRQYXRo
KGV2ZW50UGF0aFNpemUpOworICAgIFZlY3RvcjxSZWZQdHI8VG91Y2hMaXN0Pj4gdGFyZ2V0VG91
Y2hlc0luRXZlbnRQYXRoKGV2ZW50UGF0aFNpemUpOworICAgIFZlY3RvcjxSZWZQdHI8VG91Y2hM
aXN0Pj4gY2hhbmdlZFRvdWNoZXNJbkV2ZW50UGF0aChldmVudFBhdGhTaXplKTsKKworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgZXZlbnRQYXRoU2l6ZTsgKytpKSB7CisgICAgICAgIFRvdWNo
RXZlbnRDb250ZXh0JiBjb250ZXh0ID0gKnRvVG91Y2hFdmVudENvbnRleHQobV9wYXRoW2ldLmdl
dCgpKTsKKyAgICAgICAgdG91Y2hlc0luRXZlbnRQYXRoW2ldID0gY29udGV4dC50b3VjaGVzKCk7
CisgICAgICAgIHRhcmdldFRvdWNoZXNJbkV2ZW50UGF0aFtpXSA9IGNvbnRleHQudGFyZ2V0VG91
Y2hlcygpOworICAgICAgICBjaGFuZ2VkVG91Y2hlc0luRXZlbnRQYXRoW2ldID0gY29udGV4dC5j
aGFuZ2VkVG91Y2hlcygpOworICAgIH0KKworICAgIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0
aCh0b3VjaGVzSW5FdmVudFBhdGgsIG1fb3JpZ2luLmdldCgpLCB0b3VjaEV2ZW50LnRvdWNoZXMo
KSwgKnRoaXMpOworICAgIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aCh0YXJnZXRUb3VjaGVz
SW5FdmVudFBhdGgsIG1fb3JpZ2luLmdldCgpLCB0b3VjaEV2ZW50LnRhcmdldFRvdWNoZXMoKSwg
KnRoaXMpOworICAgIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aChjaGFuZ2VkVG91Y2hlc0lu
RXZlbnRQYXRoLCBtX29yaWdpbi5nZXQoKSwgdG91Y2hFdmVudC5jaGFuZ2VkVG91Y2hlcygpLCAq
dGhpcyk7Cit9CisjZW5kaWYKKwordm9pZCBFdmVudFBhdGg6OnNldFJlbGF0ZWRUYXJnZXQoRXZl
bnRUYXJnZXQmIHJlbGF0ZWRUYXJnZXQpCit7CisgICAgTm9kZSogcmVsYXRlZE5vZGUgPSByZWxh
dGVkVGFyZ2V0LnRvTm9kZSgpOworICAgIGlmICghcmVsYXRlZE5vZGUpCisgICAgICAgIHJldHVy
bjsKKyAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBhZGp1c3RlZE5vZGVzOworICAgIG1fcGF0aC5z
aHJpbmsoY2FsY3VsYXRlQWRqdXN0ZWROb2RlcyhtX29yaWdpbi5nZXQoKSwgcmVsYXRlZE5vZGUs
IFN0b3BBdEJvdW5kYXJ5SWZOZWVkZWQsICp0aGlzLCBhZGp1c3RlZE5vZGVzKSk7CisgICAgQVNT
RVJUKGFkanVzdGVkTm9kZXMuc2l6ZSgpIDw9IG1fcGF0aC5zaXplKCkpOworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgYWRqdXN0ZWROb2Rlcy5zaXplKCk7ICsraSkKKyAgICAgICAgdG9Nb3Vz
ZU9yRm9jdXNFdmVudENvbnRleHQoKm1fcGF0aFtpXSkuc2V0UmVsYXRlZFRhcmdldChhZGp1c3Rl
ZE5vZGVzW2ldKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UmV0YXJn
ZXRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFJldGFyZ2V0ZXIu
aAkocmV2aXNpb24gMTU3MjA3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50UmV0YXJnZXRl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC00NiwyOCArNDYsNyBAQCBjbGFzcyBUb3VjaEV2ZW50Owog
I2VuZGlmCiBjbGFzcyBUcmVlU2NvcGU7CiAKLWNsYXNzIEV2ZW50UmV0YXJnZXRlciB7Ci1wdWJs
aWM6Ci0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8
VG91Y2hMaXN0PiA+IEV2ZW50UGF0aFRvdWNoTGlzdHM7Ci0gICAgc3RhdGljIHZvaWQgYWRqdXN0
Rm9yVG91Y2hFdmVudChOb2RlKiwgY29uc3QgVG91Y2hFdmVudCYsIEV2ZW50UGF0aCYpOwotI2Vu
ZGlmCi0gICAgc3RhdGljIEV2ZW50VGFyZ2V0JiBldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRS
dWxlcyhOb2RlJiByZWZlcmVuY2VOb2RlKTsKLQotcHJpdmF0ZToKLSAgICBlbnVtIEV2ZW50V2l0
aFJlbGF0ZWRUYXJnZXREaXNwYXRjaEJlaGF2aW9yIHsKLSAgICAgICAgU3RvcEF0Qm91bmRhcnlJ
Zk5lZWRlZCwKLSAgICAgICAgRG9lc05vdFN0b3BBdEJvdW5kYXJ5Ci0gICAgfTsKLSAgICBzdGF0
aWMgdm9pZCBhZGp1c3RGb3JSZWxhdGVkVGFyZ2V0KGNvbnN0IE5vZGUqLCBFdmVudFRhcmdldCog
cmVsYXRlZFRhcmdldCwgRXZlbnRQYXRoJik7Ci0gICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlQWRq
dXN0ZWROb2Rlcyhjb25zdCBOb2RlKiwgY29uc3QgTm9kZSogcmVsYXRlZE5vZGUsIEV2ZW50V2l0
aFJlbGF0ZWRUYXJnZXREaXNwYXRjaEJlaGF2aW9yLCBFdmVudFBhdGgmLCBWZWN0b3I8UmVmUHRy
PE5vZGU+PiYgYWRqdXN0ZWROb2Rlcyk7Ci0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICBz
dGF0aWMgdm9pZCBhZGp1c3RUb3VjaExpc3QoY29uc3QgTm9kZSosIGNvbnN0IFRvdWNoTGlzdCos
IGNvbnN0IEV2ZW50UGF0aCYsIEV2ZW50UGF0aFRvdWNoTGlzdHMmKTsKLSNlbmRpZgotICAgIGZy
aWVuZCBjbGFzcyBFdmVudFBhdGg7Ci19OwotCi1pbmxpbmUgRXZlbnRUYXJnZXQmIEV2ZW50UmV0
YXJnZXRlcjo6ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMoTm9kZSYgcmVmZXJlbmNl
Tm9kZSkKK2lubGluZSBFdmVudFRhcmdldCYgZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVs
ZXMoTm9kZSYgcmVmZXJlbmNlTm9kZSkKIHsKICAgICBpZiAocmVmZXJlbmNlTm9kZS5pc1BzZXVk
b0VsZW1lbnQoKSkgewogICAgICAgICBFdmVudFRhcmdldCogaG9zdEVsZW1lbnQgPSB0b1BzZXVk
b0VsZW1lbnQocmVmZXJlbmNlTm9kZSkuaG9zdEVsZW1lbnQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213852</attachid>
            <date>2013-10-09 21:53:22 -0700</date>
            <delta_ts>2013-10-10 01:25:58 -0700</delta_ts>
            <desc>Yet another EFL build fix</desc>
            <filename>bug-122586-20131009215321.patch</filename>
            <type>text/plain</type>
            <size>13720</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzIwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEzLTEwLTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgdGhlIHJlc3Qgb2YgRXZl
bnRSZXRhcmdldGVyIGZ1bmN0aW9ucyB0byBFdmVudFBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjU4NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIHRoZSByZXN0IG9mIEV2ZW50UmV0YXJn
ZXRlciBmdW5jdGlvc24gZWl0aGVyIHN0YXRpYyBsb2NhbCBvciBFdmVudFBhdGggbWVtYmVyIGZ1
bmN0aW9ucy4KKworICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNjb3BlZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50UG9zdFByb2Nlc3MpOgorICAgICAgICAqIGRv
bS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBkb20vRXZlbnRSZXRhcmdldGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6RXZlbnRQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OmNhbGN1bGF0ZUFkanVzdGVkTm9kZXMpOiBNYWRlIHN0YXRpYyBsb2NhbC4gQWxzbyB0YWtl
cyBjb25zdCBFdmVudFBhdGggYW5kIHJldHVybnMgdGhlIHNpemUKKyAgICAgICAgdG8gd2hpY2gg
RXZlbnRQYXRoIHNob3VsZCBiZSBzaHJ1bms7IHRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSBFdmVu
dFBhdGg6OnNocmluay4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50
UGF0aCk6IE1vdmVkIGFuZCByZW5hbWVkIGZyb20gRXZlbnRSZXRhcmdldGVyOjphZGp1c3RUb3Vj
aExpc3QuCisgICAgICAgIChXZWJDb3JlOjpFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHMpOiBN
b3ZlZCBhbmQgcmVuYW1lZCBmcm9tIEV2ZW50UmV0YXJnZXRlcjo6YWRqdXN0Rm9yVG91Y2hFdmVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6c2V0UmVsYXRlZFRhcmdldCk6IE1vdmVk
LgorICAgICAgICAqIGRvbS9FdmVudFJldGFyZ2V0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmV2
ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKTogUmVuYW1lZCBmcm9tIEV2ZW50UmV0YXJn
ZXRlcjo6ZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMuCisKIDIwMTMtMTAtMDkgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQW5vdGhlciBidWlsZCBm
aXggYWZ0ZXIgcjE1NzIwNC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNo
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIu
Y3BwCShyZXZpc2lvbiAxNTcyMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRj
aGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNyBAQCBFdmVudERpc3BhdGNoZXI6
OkV2ZW50RGlzcGF0Y2hlcihOb2RlKiBuCiB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hT
Y29wZWRFdmVudChOb2RlJiBub2RlLCBQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsKICAgICAv
LyBXZSBuZWVkIHRvIHNldCB0aGUgdGFyZ2V0IGhlcmUgYmVjYXVzZSBpdCBjYW4gZ28gYXdheSBi
eSB0aGUgdGltZSB3ZSBhY3R1YWxseSBmaXJlIHRoZSBldmVudC4KLSAgICBldmVudC0+c2V0VGFy
Z2V0KCZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKG5v
ZGUpKTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KCZldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRS
dWxlcyhub2RlKSk7CiAgICAgU2NvcGVkRXZlbnRRdWV1ZTo6aW5zdGFuY2UoKS0+ZW5xdWV1ZUV2
ZW50KGV2ZW50KTsKIH0KIApAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wgRXZlbnREaXNwYXRjaGVy
OjpkaXNwYXRjaCgpCiAgICAgICAgIG1fZXZlbnRQYXRoLnNldFJlbGF0ZWRUYXJnZXQoKnJlbGF0
ZWRUYXJnZXQpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgaWYgKG1fZXZlbnQtPmlz
VG91Y2hFdmVudCgpKQotICAgICAgICBFdmVudFJldGFyZ2V0ZXI6OmFkanVzdEZvclRvdWNoRXZl
bnQobV9ub2RlLmdldCgpLCAqdG9Ub3VjaEV2ZW50KG1fZXZlbnQuZ2V0KCkpLCBtX2V2ZW50UGF0
aCk7IAorICAgICAgICBtX2V2ZW50UGF0aC51cGRhdGVUb3VjaExpc3RzKCp0b1RvdWNoRXZlbnQo
bV9ldmVudC5nZXQoKSkpOwogI2VuZGlmCiAKICNpZm5kZWYgTkRFQlVHCkBAIC0xMTUsNyArMTE1
LDcgQEAgYm9vbCBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKCkKICAgICBDaGlsZE5vZGVzTGF6
eVNuYXBzaG90Ojp0YWtlQ2hpbGROb2Rlc0xhenlTbmFwc2hvdCgpOwogCiAgICAgQVNTRVJUKG1f
bm9kZSk7Ci0gICAgbV9ldmVudC0+c2V0VGFyZ2V0KCZFdmVudFJldGFyZ2V0ZXI6OmV2ZW50VGFy
Z2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKCptX25vZGUpKTsKKyAgICBtX2V2ZW50LT5zZXRUYXJn
ZXQoJmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKCptX25vZGUpKTsKICAgICBBU1NF
UlQoIU5vRXZlbnREaXNwYXRjaEFzc2VydGlvbjo6aXNFdmVudERpc3BhdGNoRm9yYmlkZGVuKCkp
OwogICAgIEFTU0VSVChtX2V2ZW50LT50YXJnZXQoKSk7CiAgICAgV2luZG93RXZlbnRDb250ZXh0
IHdpbmRvd0V2ZW50Q29udGV4dChtX2V2ZW50LmdldCgpLCBtX25vZGUuZ2V0KCksIHRvcEV2ZW50
Q29udGV4dCgpKTsKQEAgLTE5NSw3ICsxOTUsNyBAQCBpbmxpbmUgdm9pZCBFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoRXZlCiBpbmxpbmUgdm9pZCBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZl
bnRQb3N0UHJvY2Vzcyhjb25zdCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlJiBJbnB1dEVsZW1lbnRD
bGlja1N0YXRlKQogewogICAgIEFTU0VSVChtX25vZGUpOwotICAgIG1fZXZlbnQtPnNldFRhcmdl
dCgmRXZlbnRSZXRhcmdldGVyOjpldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxlcygqbV9u
b2RlKSk7CisgICAgbV9ldmVudC0+c2V0VGFyZ2V0KCZldmVudFRhcmdldFJlc3BlY3RpbmdUYXJn
ZXRSdWxlcygqbV9ub2RlKSk7CiAgICAgbV9ldmVudC0+c2V0Q3VycmVudFRhcmdldCgwKTsKICAg
ICBtX2V2ZW50LT5zZXRFdmVudFBoYXNlKDApOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnREaXNwYXRjaGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
RGlzcGF0Y2hlci5oCShyZXZpc2lvbiAxNTcyMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnREaXNwYXRjaGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDE0ICs1OSwxNCBAQCBwdWJsaWM6
CiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3BhdGguc2l6ZSgpOyB9CiAgICAg
Y29uc3QgRXZlbnRDb250ZXh0JiBjb250ZXh0QXQoc2l6ZV90IGkpIGNvbnN0IHsgcmV0dXJuICpt
X3BhdGhbaV07IH0KICAgICBFdmVudENvbnRleHQmIGNvbnRleHRBdChzaXplX3QgaSkgeyByZXR1
cm4gKm1fcGF0aFtpXTsgfQotICAgIAorCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICB2
b2lkIHVwZGF0ZVRvdWNoTGlzdHMoY29uc3QgVG91Y2hFdmVudCYpOworI2VuZGlmCiAgICAgdm9p
ZCBzZXRSZWxhdGVkVGFyZ2V0KEV2ZW50VGFyZ2V0Jik7CiAKICAgICBib29sIGhhc0V2ZW50TGlz
dGVuZXJzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKSBjb25zdDsKIAotICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGRuJ3QgZXhwb3NlIHRoaXMgZnVuY3Rpb24uCi0gICAgdm9pZCBzaHJpbmso
c2l6ZV90IG5ld1NpemUpIHsgbV9wYXRoLnNocmluayhuZXdTaXplKTsgfQotCiAgICAgRXZlbnRD
b250ZXh0KiBsYXN0Q29udGV4dElmRXhpc3RzKCkgeyByZXR1cm4gbV9wYXRoLmlzRW1wdHkoKSA/
IDAgOiBtX3BhdGgubGFzdCgpLmdldCgpOyB9CiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRSZXRhcmdldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRSZXRhcmdldGVyLmNwcAkocmV2aXNpb24gMTU3MjA3KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50UmV0YXJnZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDkgKzg4
LDkgQEAgRXZlbnRQYXRoOjpFdmVudFBhdGgoTm9kZSYgdGFyZ2V0Tm9kZSwgRQogICAgIE5vZGUq
IG5vZGUgPSBub2RlT3JIb3N0SWZQc2V1ZG9FbGVtZW50KCZ0YXJnZXROb2RlKTsKICAgICB3aGls
ZSAobm9kZSkgewogICAgICAgICBpZiAoIXRhcmdldCB8fCAhaXNTVkdFbGVtZW50KSAvLyBGSVhN
RTogVGhpcyBjb2RlIGRvZXNuJ3QgbWFrZSBzZW5zZSBvbmNlIHdlJ3ZlIGNsaW1iZWQgb3V0IG9m
IHRoZSBTVkcgc3VidHJlZSBpbiBhIEhUTUwgZG9jdW1lbnQuCi0gICAgICAgICAgICB0YXJnZXQg
PSAmRXZlbnRSZXRhcmdldGVyOjpldmVudFRhcmdldFJlc3BlY3RpbmdUYXJnZXRSdWxlcygqbm9k
ZSk7CisgICAgICAgICAgICB0YXJnZXQgPSAmZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVs
ZXMoKm5vZGUpOwogICAgICAgICBmb3IgKDsgbm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUo
KSkgewotICAgICAgICAgICAgRXZlbnRUYXJnZXQmIGN1cnJlbnRUYXJnZXQgPSBFdmVudFJldGFy
Z2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKCpub2RlKTsKKyAgICAgICAg
ICAgIEV2ZW50VGFyZ2V0JiBjdXJyZW50VGFyZ2V0ID0gZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFy
Z2V0UnVsZXMoKm5vZGUpOwogICAgICAgICAgICAgaWYgKGlzTW91c2VPckZvY3VzRXZlbnQpCiAg
ICAgICAgICAgICAgICAgbV9wYXRoLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPE1vdXNlT3JGb2N1
c0V2ZW50Q29udGV4dD4obm9kZSwgJmN1cnJlbnRUYXJnZXQsIHRhcmdldCkpOwogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCkBAIC0xMTAsNTYgKzExMCw2IEBAIEV2ZW50UGF0aDo6RXZlbnRQYXRo
KE5vZGUmIHRhcmdldE5vZGUsIEUKICAgICB9CiB9CiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQotdm9pZCBFdmVudFJldGFyZ2V0ZXI6OmFkanVzdEZvclRvdWNoRXZlbnQoTm9kZSogbm9kZSwg
Y29uc3QgVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgRXZlbnRQYXRoJiBldmVudFBhdGgpCi17Ci0g
ICAgc2l6ZV90IGV2ZW50UGF0aFNpemUgPSBldmVudFBhdGguc2l6ZSgpOwotCi0gICAgRXZlbnRQ
YXRoVG91Y2hMaXN0cyBldmVudFBhdGhUb3VjaGVzKGV2ZW50UGF0aFNpemUpOwotICAgIEV2ZW50
UGF0aFRvdWNoTGlzdHMgZXZlbnRQYXRoVGFyZ2V0VG91Y2hlcyhldmVudFBhdGhTaXplKTsKLSAg
ICBFdmVudFBhdGhUb3VjaExpc3RzIGV2ZW50UGF0aENoYW5nZWRUb3VjaGVzKGV2ZW50UGF0aFNp
emUpOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBldmVudFBhdGhTaXplOyArK2kpIHsK
LSAgICAgICAgVG91Y2hFdmVudENvbnRleHQmIGNvbnRleHQgPSB0b1RvdWNoRXZlbnRDb250ZXh0
KGV2ZW50UGF0aC5jb250ZXh0QXQoaSkpOwotICAgICAgICBldmVudFBhdGhUb3VjaGVzW2ldID0g
Y29udGV4dC50b3VjaGVzKCk7Ci0gICAgICAgIGV2ZW50UGF0aFRhcmdldFRvdWNoZXNbaV0gPSBj
b250ZXh0LnRhcmdldFRvdWNoZXMoKTsKLSAgICAgICAgZXZlbnRQYXRoQ2hhbmdlZFRvdWNoZXNb
aV0gPSBjb250ZXh0LmNoYW5nZWRUb3VjaGVzKCk7Ci0gICAgfQotCi0gICAgYWRqdXN0VG91Y2hM
aXN0KG5vZGUsIHRvdWNoRXZlbnQudG91Y2hlcygpLCBldmVudFBhdGgsIGV2ZW50UGF0aFRvdWNo
ZXMpOwotICAgIGFkanVzdFRvdWNoTGlzdChub2RlLCB0b3VjaEV2ZW50LnRhcmdldFRvdWNoZXMo
KSwgZXZlbnRQYXRoLCBldmVudFBhdGhUYXJnZXRUb3VjaGVzKTsKLSAgICBhZGp1c3RUb3VjaExp
c3Qobm9kZSwgdG91Y2hFdmVudC5jaGFuZ2VkVG91Y2hlcygpLCBldmVudFBhdGgsIGV2ZW50UGF0
aENoYW5nZWRUb3VjaGVzKTsKLX0KLQotdm9pZCBFdmVudFJldGFyZ2V0ZXI6OmFkanVzdFRvdWNo
TGlzdChjb25zdCBOb2RlKiBub2RlLCBjb25zdCBUb3VjaExpc3QqIHRvdWNoTGlzdCwgY29uc3Qg
RXZlbnRQYXRoJiBldmVudFBhdGgsIEV2ZW50UGF0aFRvdWNoTGlzdHMmIGV2ZW50UGF0aFRvdWNo
TGlzdHMpCi17Ci0gICAgaWYgKCF0b3VjaExpc3QpCi0gICAgICAgIHJldHVybjsKLSAgICBzaXpl
X3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0aC5zaXplKCk7Ci0gICAgQVNTRVJUKGV2ZW50UGF0
aFRvdWNoTGlzdHMuc2l6ZSgpID09IGV2ZW50UGF0aFNpemUpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgdG91Y2hMaXN0LT5sZW5ndGgoKTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IFRvdWNo
JiB0b3VjaCA9ICp0b3VjaExpc3QtPml0ZW0oaSk7Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8Tm9k
ZT4+IGFkanVzdGVkTm9kZXM7Ci0gICAgICAgIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMobm9kZSwg
dG91Y2gudGFyZ2V0KCktPnRvTm9kZSgpLCBEb2VzTm90U3RvcEF0Qm91bmRhcnksIGNvbnN0X2Nh
c3Q8RXZlbnRQYXRoJj4oZXZlbnRQYXRoKSwgYWRqdXN0ZWROb2Rlcyk7Ci0gICAgICAgIEFTU0VS
VChhZGp1c3RlZE5vZGVzLnNpemUoKSA9PSBldmVudFBhdGhTaXplKTsKLSAgICAgICAgZm9yIChz
aXplX3QgaiA9IDA7IGogPCBldmVudFBhdGhTaXplOyArK2opCi0gICAgICAgICAgICBldmVudFBh
dGhUb3VjaExpc3RzW2pdLT5hcHBlbmQodG91Y2guY2xvbmVXaXRoTmV3VGFyZ2V0KGFkanVzdGVk
Tm9kZXNbal0uZ2V0KCkpKTsKLSAgICB9Ci19Ci0jZW5kaWYKLQotdm9pZCBFdmVudFBhdGg6OnNl
dFJlbGF0ZWRUYXJnZXQoRXZlbnRUYXJnZXQmIHJlbGF0ZWRUYXJnZXQpCi17Ci0gICAgTm9kZSog
cmVsYXRlZE5vZGUgPSByZWxhdGVkVGFyZ2V0LnRvTm9kZSgpOwotICAgIGlmICghcmVsYXRlZE5v
ZGUpCi0gICAgICAgIHJldHVybjsKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBhZGp1c3RlZE5v
ZGVzOwotICAgIEV2ZW50UmV0YXJnZXRlcjo6Y2FsY3VsYXRlQWRqdXN0ZWROb2RlcyhtX29yaWdp
bi5nZXQoKSwgcmVsYXRlZE5vZGUsIEV2ZW50UmV0YXJnZXRlcjo6U3RvcEF0Qm91bmRhcnlJZk5l
ZWRlZCwgKnRoaXMsIGFkanVzdGVkTm9kZXMpOwotICAgIEFTU0VSVChhZGp1c3RlZE5vZGVzLnNp
emUoKSA8PSBtX3BhdGguc2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFkanVz
dGVkTm9kZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIHRvTW91c2VPckZvY3VzRXZlbnRDb250ZXh0
KCptX3BhdGhbaV0pLnNldFJlbGF0ZWRUYXJnZXQoYWRqdXN0ZWROb2Rlc1tpXSk7Ci19Ci0KIHN0
YXRpYyB2b2lkIGJ1aWxkUmVsYXRlZE5vZGVNYXAoY29uc3QgTm9kZSogcmVsYXRlZE5vZGUsIEhh
c2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+JiByZWxhdGVkTm9kZU1hcCkKIHsKICAgICBOb2RlKiBy
ZWxhdGVkTm9kZUluQ3VycmVudFRyZWUgPSAwOwpAQCAtMTk2LDcgKzE0NiwxMSBAQCBzdGF0aWMg
Tm9kZSogYWRkUmVsYXRlZE5vZGVGb3JVbm1hcGVkVHJlCiAgICAgcmV0dXJuIHJlbGF0ZWROb2Rl
OwogfQogCi12b2lkIEV2ZW50UmV0YXJnZXRlcjo6Y2FsY3VsYXRlQWRqdXN0ZWROb2Rlcyhjb25z
dCBOb2RlKiBub2RlLCBjb25zdCBOb2RlKiByZWxhdGVkTm9kZSwgRXZlbnRXaXRoUmVsYXRlZFRh
cmdldERpc3BhdGNoQmVoYXZpb3IgZXZlbnRXaXRoUmVsYXRlZFRhcmdldERpc3BhdGNoQmVoYXZp
b3IsIEV2ZW50UGF0aCYgZXZlbnRQYXRoLCBWZWN0b3I8UmVmUHRyPE5vZGU+PiYgYWRqdXN0ZWRO
b2RlcykKK2VudW0gRXZlbnRXaXRoUmVsYXRlZFRhcmdldERpc3BhdGNoQmVoYXZpb3IgeworICAg
IFN0b3BBdEJvdW5kYXJ5SWZOZWVkZWQsCisgICAgRG9lc05vdFN0b3BBdEJvdW5kYXJ5Cit9Owor
c3RhdGljIHNpemVfdCBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKGNvbnN0IE5vZGUqIG5vZGUsIGNv
bnN0IE5vZGUqIHJlbGF0ZWROb2RlLCBFdmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhh
dmlvciBldmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlvciwgY29uc3QgRXZlbnRQ
YXRoJiBldmVudFBhdGgsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiBhZGp1c3RlZE5vZGVzKQogewog
ICAgIEhhc2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+IHJlbGF0ZWROb2RlTWFwOwogICAgIGJ1aWxk
UmVsYXRlZE5vZGVNYXAocmVsYXRlZE5vZGUsIHJlbGF0ZWROb2RlTWFwKTsKQEAgLTIwOCw3ICsx
NjIsNyBAQCB2b2lkIEV2ZW50UmV0YXJnZXRlcjo6Y2FsY3VsYXRlQWRqdXN0ZWROCiAgICAgTm9k
ZSogYWRqdXN0ZWROb2RlID0gMDsKICAgICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0
aC5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBldmVudFBhdGhTaXplOyBpKysp
IHsKLSAgICAgICAgRXZlbnRDb250ZXh0JiBjb250ZXh0ID0gZXZlbnRQYXRoLmNvbnRleHRBdChp
KTsKKyAgICAgICAgY29uc3QgRXZlbnRDb250ZXh0JiBjb250ZXh0ID0gZXZlbnRQYXRoLmNvbnRl
eHRBdChpKTsKICAgICAgICAgVHJlZVNjb3BlKiBzY29wZSA9ICZjb250ZXh0Lm5vZGUoKS0+dHJl
ZVNjb3BlKCk7CiAKICAgICAgICAgLy8gUmUtdXNlIHRoZSBwcmV2aW91cyBhZGp1c3RlZFJlbGF0
ZWRUYXJnZXQgaWYgdHJlZVNjb3BlIGRvZXMgbm90IGNoYW5nZS4gSnVzdCBmb3IgdGhlIHBlcmZv
cm1hbmNlIG9wdGltaXphdGlvbi4KQEAgLTIyMCwxNyArMTc0LDY3IEBAIHZvaWQgRXZlbnRSZXRh
cmdldGVyOjpjYWxjdWxhdGVBZGp1c3RlZE4KICAgICAgICAgaWYgKGV2ZW50V2l0aFJlbGF0ZWRU
YXJnZXREaXNwYXRjaEJlaGF2aW9yID09IERvZXNOb3RTdG9wQXRCb3VuZGFyeSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAodGFyZ2V0SXNJZGVudGljYWxUb1RvUmVsYXRlZFRh
cmdldCkgewotICAgICAgICAgICAgaWYgKG5vZGUtPnRyZWVTY29wZSgpLnJvb3ROb2RlKCkgPT0g
Y29udGV4dC5ub2RlKCkpIHsKLSAgICAgICAgICAgICAgICBldmVudFBhdGguc2hyaW5rKGkgKyAx
KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
IChub2RlLT50cmVlU2NvcGUoKS5yb290Tm9kZSgpID09IGNvbnRleHQubm9kZSgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBpICsgMTsKICAgICAgICAgfSBlbHNlIGlmIChjb250ZXh0LnRhcmdl
dCgpID09IGFkanVzdGVkTm9kZSkgewogICAgICAgICAgICAgLy8gRXZlbnQgZGlzcGF0Y2hpbmcg
c2hvdWxkIGJlIHN0b3BwZWQgaGVyZS4KLSAgICAgICAgICAgIGV2ZW50UGF0aC5zaHJpbmsoaSk7
CiAgICAgICAgICAgICBhZGp1c3RlZE5vZGVzLnNocmluayhhZGp1c3RlZE5vZGVzLnNpemUoKSAt
IDEpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAg
fQogICAgIH0KKyAgICByZXR1cm4gZXZlbnRQYXRoU2l6ZTsKK30KKworI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCitzdGF0aWMgdm9pZCB1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgoVmVjdG9y
PFJlZlB0cjxUb3VjaExpc3Q+PiYgdG91Y2hMaXN0c0luRXZlbnRQYXRoLCBjb25zdCBOb2RlKiBu
b2RlLCBjb25zdCBUb3VjaExpc3QqIHRvdWNoTGlzdCwgY29uc3QgRXZlbnRQYXRoJiBldmVudFBh
dGgpCit7CisgICAgaWYgKCF0b3VjaExpc3QpCisgICAgICAgIHJldHVybjsKKyAgICBzaXplX3Qg
ZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0aC5zaXplKCk7CisgICAgQVNTRVJUKHRvdWNoTGlzdHNJ
bkV2ZW50UGF0aC5zaXplKCkgPT0gZXZlbnRQYXRoU2l6ZSk7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB0b3VjaExpc3QtPmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgY29uc3QgVG91Y2gm
IHRvdWNoID0gKnRvdWNoTGlzdC0+aXRlbShpKTsKKworICAgICAgICBWZWN0b3I8UmVmUHRyPE5v
ZGU+PiBhZGp1c3RlZE5vZGVzOworICAgICAgICBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKG5vZGUs
IHRvdWNoLnRhcmdldCgpLT50b05vZGUoKSwgRG9lc05vdFN0b3BBdEJvdW5kYXJ5LCBldmVudFBh
dGgsIGFkanVzdGVkTm9kZXMpOworCisgICAgICAgIEFTU0VSVChhZGp1c3RlZE5vZGVzLnNpemUo
KSA9PSBldmVudFBhdGhTaXplKTsKKyAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBldmVu
dFBhdGhTaXplOyArK2opCisgICAgICAgICAgICB0b3VjaExpc3RzSW5FdmVudFBhdGhbal0tPmFw
cGVuZCh0b3VjaC5jbG9uZVdpdGhOZXdUYXJnZXQoYWRqdXN0ZWROb2Rlc1tqXS5nZXQoKSkpOwor
ICAgIH0KK30KKwordm9pZCBFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHMoY29uc3QgVG91Y2hF
dmVudCYgdG91Y2hFdmVudCkKK3sKKyAgICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9IG1fcGF0aC5z
aXplKCk7CisKKyAgICBWZWN0b3I8UmVmUHRyPFRvdWNoTGlzdD4+IHRvdWNoZXNJbkV2ZW50UGF0
aChldmVudFBhdGhTaXplKTsKKyAgICBWZWN0b3I8UmVmUHRyPFRvdWNoTGlzdD4+IHRhcmdldFRv
dWNoZXNJbkV2ZW50UGF0aChldmVudFBhdGhTaXplKTsKKyAgICBWZWN0b3I8UmVmUHRyPFRvdWNo
TGlzdD4+IGNoYW5nZWRUb3VjaGVzSW5FdmVudFBhdGgoZXZlbnRQYXRoU2l6ZSk7CisKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGV2ZW50UGF0aFNpemU7ICsraSkgeworICAgICAgICBUb3Vj
aEV2ZW50Q29udGV4dCYgY29udGV4dCA9ICp0b1RvdWNoRXZlbnRDb250ZXh0KG1fcGF0aFtpXS5n
ZXQoKSk7CisgICAgICAgIHRvdWNoZXNJbkV2ZW50UGF0aFtpXSA9IGNvbnRleHQudG91Y2hlcygp
OworICAgICAgICB0YXJnZXRUb3VjaGVzSW5FdmVudFBhdGhbaV0gPSBjb250ZXh0LnRhcmdldFRv
dWNoZXMoKTsKKyAgICAgICAgY2hhbmdlZFRvdWNoZXNJbkV2ZW50UGF0aFtpXSA9IGNvbnRleHQu
Y2hhbmdlZFRvdWNoZXMoKTsKKyAgICB9CisKKyAgICB1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBh
dGgodG91Y2hlc0luRXZlbnRQYXRoLCBtX29yaWdpbi5nZXQoKSwgdG91Y2hFdmVudC50b3VjaGVz
KCksICp0aGlzKTsKKyAgICB1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgodGFyZ2V0VG91Y2hl
c0luRXZlbnRQYXRoLCBtX29yaWdpbi5nZXQoKSwgdG91Y2hFdmVudC50YXJnZXRUb3VjaGVzKCks
ICp0aGlzKTsKKyAgICB1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgoY2hhbmdlZFRvdWNoZXNJ
bkV2ZW50UGF0aCwgbV9vcmlnaW4uZ2V0KCksIHRvdWNoRXZlbnQuY2hhbmdlZFRvdWNoZXMoKSwg
KnRoaXMpOworfQorI2VuZGlmCisKK3ZvaWQgRXZlbnRQYXRoOjpzZXRSZWxhdGVkVGFyZ2V0KEV2
ZW50VGFyZ2V0JiByZWxhdGVkVGFyZ2V0KQoreworICAgIE5vZGUqIHJlbGF0ZWROb2RlID0gcmVs
YXRlZFRhcmdldC50b05vZGUoKTsKKyAgICBpZiAoIXJlbGF0ZWROb2RlKQorICAgICAgICByZXR1
cm47CisgICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gYWRqdXN0ZWROb2RlczsKKyAgICBtX3BhdGgu
c2hyaW5rKGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMobV9vcmlnaW4uZ2V0KCksIHJlbGF0ZWROb2Rl
LCBTdG9wQXRCb3VuZGFyeUlmTmVlZGVkLCAqdGhpcywgYWRqdXN0ZWROb2RlcykpOworICAgIEFT
U0VSVChhZGp1c3RlZE5vZGVzLnNpemUoKSA8PSBtX3BhdGguc2l6ZSgpKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGFkanVzdGVkTm9kZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIHRvTW91
c2VPckZvY3VzRXZlbnRDb250ZXh0KCptX3BhdGhbaV0pLnNldFJlbGF0ZWRUYXJnZXQoYWRqdXN0
ZWROb2Rlc1tpXSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFJldGFy
Z2V0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRSZXRhcmdldGVy
LmgJKHJldmlzaW9uIDE1NzIwNykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFJldGFyZ2V0
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsMjggKzQ2LDcgQEAgY2xhc3MgVG91Y2hFdmVudDsK
ICNlbmRpZgogY2xhc3MgVHJlZVNjb3BlOwogCi1jbGFzcyBFdmVudFJldGFyZ2V0ZXIgewotcHVi
bGljOgotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRy
PFRvdWNoTGlzdD4gPiBFdmVudFBhdGhUb3VjaExpc3RzOwotICAgIHN0YXRpYyB2b2lkIGFkanVz
dEZvclRvdWNoRXZlbnQoTm9kZSosIGNvbnN0IFRvdWNoRXZlbnQmLCBFdmVudFBhdGgmKTsKLSNl
bmRpZgotICAgIHN0YXRpYyBFdmVudFRhcmdldCYgZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0
UnVsZXMoTm9kZSYgcmVmZXJlbmNlTm9kZSk7Ci0KLXByaXZhdGU6Ci0gICAgZW51bSBFdmVudFdp
dGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlvciB7Ci0gICAgICAgIFN0b3BBdEJvdW5kYXJ5
SWZOZWVkZWQsCi0gICAgICAgIERvZXNOb3RTdG9wQXRCb3VuZGFyeQotICAgIH07Ci0gICAgc3Rh
dGljIHZvaWQgYWRqdXN0Rm9yUmVsYXRlZFRhcmdldChjb25zdCBOb2RlKiwgRXZlbnRUYXJnZXQq
IHJlbGF0ZWRUYXJnZXQsIEV2ZW50UGF0aCYpOwotICAgIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZUFk
anVzdGVkTm9kZXMoY29uc3QgTm9kZSosIGNvbnN0IE5vZGUqIHJlbGF0ZWROb2RlLCBFdmVudFdp
dGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlvciwgRXZlbnRQYXRoJiwgVmVjdG9yPFJlZlB0
cjxOb2RlPj4mIGFkanVzdGVkTm9kZXMpOwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAg
c3RhdGljIHZvaWQgYWRqdXN0VG91Y2hMaXN0KGNvbnN0IE5vZGUqLCBjb25zdCBUb3VjaExpc3Qq
LCBjb25zdCBFdmVudFBhdGgmLCBFdmVudFBhdGhUb3VjaExpc3RzJik7Ci0jZW5kaWYKLSAgICBm
cmllbmQgY2xhc3MgRXZlbnRQYXRoOwotfTsKLQotaW5saW5lIEV2ZW50VGFyZ2V0JiBFdmVudFJl
dGFyZ2V0ZXI6OmV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1bGVzKE5vZGUmIHJlZmVyZW5j
ZU5vZGUpCitpbmxpbmUgRXZlbnRUYXJnZXQmIGV2ZW50VGFyZ2V0UmVzcGVjdGluZ1RhcmdldFJ1
bGVzKE5vZGUmIHJlZmVyZW5jZU5vZGUpCiB7CiAgICAgaWYgKHJlZmVyZW5jZU5vZGUuaXNQc2V1
ZG9FbGVtZW50KCkpIHsKICAgICAgICAgRXZlbnRUYXJnZXQqIGhvc3RFbGVtZW50ID0gdG9Qc2V1
ZG9FbGVtZW50KHJlZmVyZW5jZU5vZGUpLmhvc3RFbGVtZW50KCk7Cg==
</data>
<flag name="review"
          id="236283"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="236288"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>