<?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>15563</bug_id>
          
          <creation_ts>2007-10-19 07:54:22 -0700</creation_ts>
          <short_desc>Fix conflict with X11 Window type in WebCore</short_desc>
          <delta_ts>2007-10-20 03:30: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>Platform</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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="Rodney Dawes">dobey</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>58854</commentid>
    <comment_count>0</comment_count>
    <who name="Rodney Dawes">dobey</who>
    <bug_when>2007-10-19 07:54:22 -0700</bug_when>
    <thetext>X11 has a Window type which causes conflicts when building with #include &lt;X11/Xlib.h&gt;. To resolve this, we must use KJS::Window everywhere, rather than just Window, and avoid &quot;using KJS::Window;&quot;. The attached patch fixes this, so that this conflict is resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58855</commentid>
    <comment_count>1</comment_count>
      <attachid>16731</attachid>
    <who name="Rodney Dawes">dobey</who>
    <bug_when>2007-10-19 07:55:04 -0700</bug_when>
    <thetext>Created attachment 16731
Patch to use KJS::Window instead of just Window where appropriate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58861</commentid>
    <comment_count>2</comment_count>
      <attachid>16731</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-10-19 10:56:21 -0700</bug_when>
    <thetext>Comment on attachment 16731
Patch to use KJS::Window instead of just Window where appropriate

I don&apos;t think the references to Window that are inside the KJS namespace need to change. So that means we don&apos;t need any changes to kjs_window.h, JSXMLHttpRequest.cpp, or kjs_binding.cpp.

Could you try tossing the changes to those files?

Otherwise this looks great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58864</commentid>
    <comment_count>3</comment_count>
      <attachid>16732</attachid>
    <who name="Rodney Dawes">dobey</who>
    <bug_when>2007-10-19 11:26:02 -0700</bug_when>
    <thetext>Created attachment 16732
Updated patch with darin&apos;s suggestions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58865</commentid>
    <comment_count>4</comment_count>
      <attachid>16732</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-10-19 11:27:45 -0700</bug_when>
    <thetext>Comment on attachment 16732
Updated patch with darin&apos;s suggestions

Looks good. Needs ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58866</commentid>
    <comment_count>5</comment_count>
      <attachid>16733</attachid>
    <who name="Rodney Dawes">dobey</who>
    <bug_when>2007-10-19 11:33:58 -0700</bug_when>
    <thetext>Created attachment 16733
Updated patch with ChangeLog entry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58899</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-10-20 03:30:59 -0700</bug_when>
    <thetext>Landed in r26816.  Thanks for the patch!  One minor nit -- you had used tabs in your ChangeLog entry so I had to tweak it before landing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16731</attachid>
            <date>2007-10-19 07:55:04 -0700</date>
            <delta_ts>2007-10-19 11:26:02 -0700</delta_ts>
            <desc>Patch to use KJS::Window instead of just Window where appropriate</desc>
            <filename>webkit-window-fix.patch</filename>
            <type>text/plain</type>
            <size>16353</size>
            <attacher name="Rodney Dawes">dobey</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5oCShyZXZpc2lvbiAyNjc3MCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC03NiwyMCArNzYs
MjAgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgV2ViQ29yZTo6RE9NV2luZG93KiBpbXBsKCkgY29u
c3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9CiAgICAgdm9pZCBkaXNjb25uZWN0RnJhbWUoKTsK
ICAgICAvKioKLSAgICAgKiBSZXR1cm5zIGFuZCByZWdpc3RlcnMgYSB3aW5kb3cgb2JqZWN0LiBJ
biBjYXNlIHRoZXJlJ3MgYWxyZWFkeSBhIFdpbmRvdworICAgICAqIFJldHVybnMgYW5kIHJlZ2lz
dGVycyBhIHdpbmRvdyBvYmplY3QuIEluIGNhc2UgdGhlcmUncyBhbHJlYWR5IGEgS0pTOjpXaW5k
b3cKICAgICAgKiBmb3IgdGhlIHNwZWNpZmllZCBmcmFtZSBwIHRoaXMgd2lsbCBiZSByZXR1cm5l
ZCBpbiBvcmRlciB0byBoYXZlIHVuaXF1ZQogICAgICAqIGJpbmRpbmdzLgogICAgICAqLwogICAg
IHN0YXRpYyBKU1ZhbHVlKiByZXRyaWV2ZShXZWJDb3JlOjpGcmFtZSopOwogICAgIC8qKgotICAg
ICAqIFJldHVybnMgdGhlIFdpbmRvdyBvYmplY3QgZm9yIGEgZ2l2ZW4gSFRNTCBmcmFtZQorICAg
ICAqIFJldHVybnMgdGhlIEtKUzo6V2luZG93IG9iamVjdCBmb3IgYSBnaXZlbiBIVE1MIGZyYW1l
CiAgICAgICovCi0gICAgc3RhdGljIFdpbmRvdyogcmV0cmlldmVXaW5kb3coV2ViQ29yZTo6RnJh
bWUqKTsKKyAgICBzdGF0aWMgS0pTOjpXaW5kb3cqIHJldHJpZXZlV2luZG93KFdlYkNvcmU6OkZy
YW1lKik7CiAgICAgLyoqCi0gICAgICogcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIFdpbmRvdyBv
YmplY3QgdGhpcyBqYXZhc2NyaXB0IGludGVycHJldGluZyBpbnN0YW5jZQorICAgICAqIHJldHVy
bnMgYSBwb2ludGVyIHRvIHRoZSBLSlM6OldpbmRvdyBvYmplY3QgdGhpcyBqYXZhc2NyaXB0IGlu
dGVycHJldGluZyBpbnN0YW5jZQogICAgICAqIHdhcyBjYWxsZWQgZnJvbS4KICAgICAgKi8KLSAg
ICBzdGF0aWMgV2luZG93KiByZXRyaWV2ZUFjdGl2ZShFeGVjU3RhdGUqKTsKKyAgICBzdGF0aWMg
S0pTOjpXaW5kb3cqIHJldHJpZXZlQWN0aXZlKEV4ZWNTdGF0ZSopOwogICAgIHZpcnR1YWwgdm9p
ZCBtYXJrKCk7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgSlNWYWx1ZSAqZ2V0VmFs
dWVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbikgY29uc3Q7CkBAIC0xOTksNyAr
MTk5LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgICAgICA6IG1fZnVuYyhmdW5jKSwgbV9h
cmdzKGFyZ3MpIHsgfQogICAgICAgICBTY2hlZHVsZWRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U3Ry
aW5nJiBjb2RlKQogICAgICAgICAgICAgOiBtX2NvZGUoY29kZSkgeyB9Ci0gICAgICAgIHZvaWQg
ZXhlY3V0ZShXaW5kb3cgKik7CisgICAgICAgIHZvaWQgZXhlY3V0ZShLSlM6OldpbmRvdyAqKTsK
IAogICAgIHByaXZhdGU6CiAgICAgICAgIFByb3RlY3RlZFB0cjxKU1ZhbHVlPiBtX2Z1bmM7CkBA
IC0yMTgsNyArMjE4LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgdmlydHVhbCBjb25zdCBDbGFz
c0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9CiAgICAgc3RhdGljIGNv
bnN0IENsYXNzSW5mbyBpbmZvOwogICBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBXaW5kb3c7
CisgICAgZnJpZW5kIGNsYXNzIEtKUzo6V2luZG93OwogICAgIExvY2F0aW9uKFdlYkNvcmU6OkZy
YW1lKik7CiAgICAgV2ViQ29yZTo6RnJhbWUqIG1fZnJhbWU7CiAgIH07CkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdC5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjMzLDcgKzIzMyw3IEBAIEpTVmFsdWUqIEpTWE1MSHR0cFJlcXVlc3RQcm90b3R5cGVGdW5jdGkK
ICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBTeW50YXhFcnJvciwgIk5v
dCBlbm91Z2ggYXJndW1lbnRzIik7CiAKICAgICAgICAgICAgIFN0cmluZyBtZXRob2QgPSBhcmdz
WzBdLT50b1N0cmluZyhleGVjKTsKLSAgICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IFdpbmRvdzo6
cmV0cmlldmVBY3RpdmUoZXhlYyktPmltcGwoKS0+ZnJhbWUoKTsKKyAgICAgICAgICAgIEZyYW1l
KiBmcmFtZSA9IEtKUzo6V2luZG93OjpyZXRyaWV2ZUFjdGl2ZShleGVjKS0+aW1wbCgpLT5mcmFt
ZSgpOwogICAgICAgICAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKICAgICAgICAgICAgIEtVUkwgdXJsID0gZnJhbWUtPmxvYWRlcigpLT5jb21w
bGV0ZVVSTChEZXByZWNhdGVkU3RyaW5nKGFyZ3NbMV0tPnRvU3RyaW5nKGV4ZWMpKSk7CkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcAkocmV2aXNpb24gMjY3NzApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY3LDE3
ICsyNjcsMTcgQEAgYm9vbCBTY3JpcHRJbnRlcnByZXRlcjo6d2FzUnVuQnlVc2VyR2VzdAogCiBi
b29sIFNjcmlwdEludGVycHJldGVyOjppc0dsb2JhbE9iamVjdChKU1ZhbHVlKiB2KQogewotICAg
IHJldHVybiB2LT5pc09iamVjdCgmV2luZG93OjppbmZvKTsKKyAgICByZXR1cm4gdi0+aXNPYmpl
Y3QoJktKUzo6V2luZG93OjppbmZvKTsKIH0KIAogYm9vbCBTY3JpcHRJbnRlcnByZXRlcjo6aXNT
YWZlU2NyaXB0KGNvbnN0IEludGVycHJldGVyKiB0YXJnZXQpCiB7Ci0gICAgcmV0dXJuIFdpbmRv
dzo6aXNTYWZlU2NyaXB0KHRoaXMsIHN0YXRpY19jYXN0PGNvbnN0IFNjcmlwdEludGVycHJldGVy
Kj4odGFyZ2V0KSk7CisgICAgcmV0dXJuIEtKUzo6V2luZG93Ojppc1NhZmVTY3JpcHQodGhpcywg
c3RhdGljX2Nhc3Q8Y29uc3QgU2NyaXB0SW50ZXJwcmV0ZXIqPih0YXJnZXQpKTsKIH0KIAogSW50
ZXJwcmV0ZXIqIFNjcmlwdEludGVycHJldGVyOjppbnRlcnByZXRlckZvckdsb2JhbE9iamVjdChj
b25zdCBKU1ZhbHVlKiBpbXApCiB7Ci0gICAgY29uc3QgV2luZG93KiB3aW4gPSBzdGF0aWNfY2Fz
dDxjb25zdCBXaW5kb3cqPihpbXApOworICAgIGNvbnN0IEtKUzo6V2luZG93KiB3aW4gPSBzdGF0
aWNfY2FzdDxjb25zdCBLSlM6OldpbmRvdyo+KGltcCk7CiAgICAgcmV0dXJuIHdpbi0+aW50ZXJw
cmV0ZXIoKTsKIH0KIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcAkocmV2aXNpb24g
MjY3NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgxLDcgKzgxLDcgQEAgSlNWYWx1ZSogS0pTUHJveHk6OmV2YWx1YXRlKGNvbnN0IFN0
cmluZwogICAgIC8vIHNvIHdlIHN0YXJ0IHRoZSBrZWVwIGFsaXZlIHRpbWVyIGhlcmUuCiAgICAg
bV9mcmFtZS0+a2VlcEFsaXZlKCk7CiAgICAgCi0gICAgSlNWYWx1ZSogdGhpc05vZGUgPSBXaW5k
b3c6OnJldHJpZXZlKG1fZnJhbWUpOworICAgIEpTVmFsdWUqIHRoaXNOb2RlID0gS0pTOjpXaW5k
b3c6OnJldHJpZXZlKG1fZnJhbWUpOwogICAKICAgICBtX3NjcmlwdC0+c3RhcnRUaW1lb3V0Q2hl
Y2soKTsKICAgICBDb21wbGV0aW9uIGNvbXAgPSBtX3NjcmlwdC0+ZXZhbHVhdGUoZmlsZW5hbWUs
IGJhc2VMaW5lLCByZWludGVycHJldF9jYXN0PGNvbnN0IEtKUzo6VUNoYXIqPihzdHIuY2hhcmFj
dGVycygpKSwgc3RyLmxlbmd0aCgpLCB0aGlzTm9kZSk7CkBAIC0xMDMsMTAgKzEwMywxMCBAQCBK
U1ZhbHVlKiBLSlNQcm94eTo6ZXZhbHVhdGUoY29uc3QgU3RyaW5nCiAKIHZvaWQgS0pTUHJveHk6
OmNsZWFyKCkgewogICAvLyBjbGVhciByZXNvdXJjZXMgYWxsb2NhdGVkIGJ5IHRoZSBpbnRlcnBy
ZXRlciwgYW5kIG1ha2UgaXQgcmVhZHkgdG8gYmUgdXNlZCBieSBhbm90aGVyIHBhZ2UKLSAgLy8g
V2UgaGF2ZSB0byBrZWVwIGl0LCBzbyB0aGF0IHRoZSBXaW5kb3cgb2JqZWN0IGZvciB0aGUgZnJh
bWUgcmVtYWlucyB0aGUgc2FtZS4KKyAgLy8gV2UgaGF2ZSB0byBrZWVwIGl0LCBzbyB0aGF0IHRo
ZSBLSlM6OldpbmRvdyBvYmplY3QgZm9yIHRoZSBmcmFtZSByZW1haW5zIHRoZSBzYW1lLgogICAv
LyAod2UgdXNlZCB0byBkZWxldGUgYW5kIHJlLWNyZWF0ZSBpdCwgcHJldmlvdXNseSkKICAgaWYg
KG1fc2NyaXB0KSB7Ci0gICAgV2luZG93ICp3aW4gPSBXaW5kb3c6OnJldHJpZXZlV2luZG93KG1f
ZnJhbWUpOworICAgIEtKUzo6V2luZG93ICp3aW4gPSBLSlM6OldpbmRvdzo6cmV0cmlldmVXaW5k
b3cobV9mcmFtZSk7CiAgICAgaWYgKHdpbikKICAgICAgICAgd2luLT5jbGVhcigpOwogICB9CkBA
IC0xMTYsNyArMTE2LDcgQEAgRXZlbnRMaXN0ZW5lciogS0pTUHJveHk6OmNyZWF0ZUhUTUxFdmVu
dAogewogICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOwogICAgIEpTTG9jayBsb2NrOwotICAgIHJl
dHVybiBuZXcgSlNMYXp5RXZlbnRMaXN0ZW5lcihmdW5jdGlvbk5hbWUsIGNvZGUsIFdpbmRvdzo6
cmV0cmlldmVXaW5kb3cobV9mcmFtZSksIG5vZGUsIG1faGFuZGxlckxpbmVubyk7CisgICAgcmV0
dXJuIG5ldyBKU0xhenlFdmVudExpc3RlbmVyKGZ1bmN0aW9uTmFtZSwgY29kZSwgS0pTOjpXaW5k
b3c6OnJldHJpZXZlV2luZG93KG1fZnJhbWUpLCBub2RlLCBtX2hhbmRsZXJMaW5lbm8pOwogfQog
CiAjaWYgRU5BQkxFKFNWRykKQEAgLTEyNCw3ICsxMjQsNyBAQCBFdmVudExpc3RlbmVyKiBLSlNQ
cm94eTo6Y3JlYXRlU1ZHRXZlbnRICiB7CiAgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CiAgICAg
SlNMb2NrIGxvY2s7Ci0gICAgcmV0dXJuIG5ldyBKU1NWR0xhenlFdmVudExpc3RlbmVyKGZ1bmN0
aW9uTmFtZSwgY29kZSwgV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhtX2ZyYW1lKSwgbm9kZSwgbV9o
YW5kbGVyTGluZW5vKTsKKyAgICByZXR1cm4gbmV3IEpTU1ZHTGF6eUV2ZW50TGlzdGVuZXIoZnVu
Y3Rpb25OYW1lLCBjb2RlLCBLSlM6OldpbmRvdzo6cmV0cmlldmVXaW5kb3cobV9mcmFtZSksIG5v
ZGUsIG1faGFuZGxlckxpbmVubyk7CiB9CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNIVE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24g
MjY3NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3Rv
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgSlNWYWx1ZSogSlNIVE1MRnJh
bWVTZXRFbGVtZW50OjpuYW1lR2V0dAogCiAgICAgTm9kZSogZnJhbWUgPSBlbGVtZW50LT5jaGls
ZHJlbigpLT5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lKTsKICAgICBpZiAoRG9jdW1lbnQqIGRvYyA9
IHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnQqPihmcmFtZSktPmNvbnRlbnREb2N1bWVudCgp
KSB7Ci0gICAgICAgIGlmIChXaW5kb3cqIHdpbmRvdyA9IFdpbmRvdzo6cmV0cmlldmVXaW5kb3co
ZG9jLT5mcmFtZSgpKSkKKyAgICAgICAgaWYgKEtKUzo6V2luZG93KiB3aW5kb3cgPSBLSlM6Oldp
bmRvdzo6cmV0cmlldmVXaW5kb3coZG9jLT5mcmFtZSgpKSkKICAgICAgICAgICAgIHJldHVybiB3
aW5kb3c7CiAgICAgfQogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19kb20uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2RvbS5jcHAJKHJldmlzaW9uIDI2
NzcwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfZG9tLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjIsNyArNjIsNyBAQCBib29sIGNoZWNrTm9kZVNlY3VyaXR5KEV4ZWNTdGF0ZSogZXhlYywg
CiAgICAgcmV0dXJuIGZhbHNlOwogCiAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgY3VycmVudGx5
IGV4ZWN1dGluZyBpbnRlcnByZXRlciBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgc3BlY2lmaWVk
IG5vZGUKLSAgV2luZG93KiB3aW4gPSBXaW5kb3c6OnJldHJpZXZlV2luZG93KG4tPmRvY3VtZW50
KCktPmZyYW1lKCkpOworICBLSlM6OldpbmRvdyogd2luID0gS0pTOjpXaW5kb3c6OnJldHJpZXZl
V2luZG93KG4tPmRvY3VtZW50KCktPmZyYW1lKCkpOwogICByZXR1cm4gd2luICYmIHdpbi0+aXNT
YWZlU2NyaXB0KGV4ZWMpOwogfQogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1l
bnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVu
dEN1c3RvbS5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rv
Y3VtZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBKU1ZhbHVl
KiBKU0RvY3VtZW50Ojpsb2NhdGlvbihFeGVjU3RhdGUqCiAgICAgaWYgKCFmcmFtZSkKICAgICAg
ICAgcmV0dXJuIGpzTnVsbCgpOwogCi0gICAgV2luZG93KiB3aW4gPSBXaW5kb3c6OnJldHJpZXZl
V2luZG93KGZyYW1lKTsKKyAgICBLSlM6OldpbmRvdyogd2luID0gS0pTOjpXaW5kb3c6OnJldHJp
ZXZlV2luZG93KGZyYW1lKTsKICAgICBBU1NFUlQod2luKTsKICAgICByZXR1cm4gd2luLT5sb2Nh
dGlvbigpOwogfQpAQCAtOTQsNyArOTQsNyBAQCBKU1ZhbHVlKiB0b0pTKEV4ZWNTdGF0ZSogZXhl
YywgRG9jdW1lbnQqCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBkb2N1bWVudCBpcyBrZXB0IGFyb3Vu
ZCBieSB0aGUgd2luZG93IG9iamVjdCwgYW5kIHdvcmtzIHJpZ2h0IHdpdGggdGhlCiAgICAgLy8g
YmFjay9mb3J3YXJkIGNhY2hlLgogICAgIGlmIChkb2MtPmZyYW1lKCkpCi0gICAgICAgIFdpbmRv
dzo6cmV0cmlldmVXaW5kb3coZG9jLT5mcmFtZSgpKS0+cHV0RGlyZWN0KCJkb2N1bWVudCIsIHJl
dCwgRG9udERlbGV0ZXxSZWFkT25seSk7CisgICAgICAgIEtKUzo6V2luZG93OjpyZXRyaWV2ZVdp
bmRvdyhkb2MtPmZyYW1lKCkpLT5wdXREaXJlY3QoImRvY3VtZW50IiwgcmV0LCBEb250RGVsZXRl
fFJlYWRPbmx5KTsKICAgICBlbHNlIHsKICAgICAgICAgc2l6ZV90IG5vZGVDb3VudCA9IDA7CiAg
ICAgICAgIGZvciAoTm9kZSogbiA9IGRvYzsgbjsgbiA9IG4tPnRyYXZlcnNlTmV4dE5vZGUoKSkK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2V2ZW50cy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfZXZlbnRzLmNwcAkocmV2aXNpb24gMjY3NzApCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3
ICs2Niw3IEBAIHZvaWQgSlNBYnN0cmFjdEV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW4KICAgICBp
ZiAoIWxpc3RlbmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBXaW5kb3cqIHdpbmRvdyA9IHdp
bmRvd09iaigpOworICAgIEtKUzo6V2luZG93KiB3aW5kb3cgPSB3aW5kb3dPYmooKTsKICAgICAv
LyBOdWxsIGNoZWNrIGFzIGNsZWFyV2luZG93T2JqKCkgY2FuIGNsZWFyIHRoaXMgYW5kIHdlIHN0
aWxsIGdldCBjYWxsZWQgYmFjayBieQogICAgIC8vIHhtbGh0dHByZXF1ZXN0IG9iamVjdHMuIFNl
ZSBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI3NQogICAgIGlmICgh
d2luZG93KQpAQCAtOTcsNyArOTcsNyBAQCB2b2lkIEpTQWJzdHJhY3RFdmVudExpc3RlbmVyOjpo
YW5kbGVFdmVuCiAgICAgICAgIExpc3QgYXJnczsKICAgICAgICAgYXJncy5hcHBlbmQodG9KUyhl
eGVjLCBldmVudCkpOwogCi0gICAgICAgIC8vIFNldCB0aGUgZXZlbnQgd2UncmUgaGFuZGxpbmcg
aW4gdGhlIFdpbmRvdyBvYmplY3QKKyAgICAgICAgLy8gU2V0IHRoZSBldmVudCB3ZSdyZSBoYW5k
bGluZyBpbiB0aGUgS0pTOjpXaW5kb3cgb2JqZWN0CiAgICAgICAgIHdpbmRvdy0+c2V0Q3VycmVu
dEV2ZW50KGV2ZW50KTsKICAgICAgICAgLy8gLi4uIGFuZCBpbiB0aGUgaW50ZXJwcmV0ZXIKICAg
ICAgICAgaW50ZXJwcmV0ZXItPnNldEN1cnJlbnRFdmVudChldmVudCk7CkBAIC0xNTIsMTMgKzE1
MiwxMyBAQCBib29sIEpTQWJzdHJhY3RFdmVudExpc3RlbmVyOjppc0hUTUxFdmVuCiAKIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAotSlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXI6OkpTVW5wcm90ZWN0
ZWRFdmVudExpc3RlbmVyKEpTT2JqZWN0KiBsaXN0ZW5lciwgV2luZG93KiB3aW4sIGJvb2wgaHRt
bCkKK0pTVW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyOjpKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5l
cihKU09iamVjdCogbGlzdGVuZXIsIEtKUzo6V2luZG93KiB3aW4sIGJvb2wgaHRtbCkKICAgICA6
IEpTQWJzdHJhY3RFdmVudExpc3RlbmVyKGh0bWwpCiAgICAgLCBtX2xpc3RlbmVyKGxpc3RlbmVy
KQogICAgICwgbV93aW4od2luKQogewogICAgIGlmIChtX2xpc3RlbmVyKSB7Ci0gICAgICAgIFdp
bmRvdzo6VW5wcm90ZWN0ZWRMaXN0ZW5lcnNNYXAmIGxpc3RlbmVycyA9IGh0bWwKKyAgICAgICAg
S0pTOjpXaW5kb3c6OlVucHJvdGVjdGVkTGlzdGVuZXJzTWFwJiBsaXN0ZW5lcnMgPSBodG1sCiAg
ICAgICAgICAgICA/IG1fd2luLT5qc1VucHJvdGVjdGVkSFRNTEV2ZW50TGlzdGVuZXJzKCkgOiBt
X3dpbi0+anNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXJzKCk7CiAgICAgICAgIGxpc3RlbmVycy5z
ZXQobV9saXN0ZW5lciwgdGhpcyk7CiAgICAgfQpAQCAtMTY3LDcgKzE2Nyw3IEBAIEpTVW5wcm90
ZWN0ZWRFdmVudExpc3RlbmVyOjpKU1VucHJvdGVjdGUKIEpTVW5wcm90ZWN0ZWRFdmVudExpc3Rl
bmVyOjp+SlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXIoKQogewogICAgIGlmIChtX2xpc3RlbmVy
ICYmIG1fd2luKSB7Ci0gICAgICAgIFdpbmRvdzo6VW5wcm90ZWN0ZWRMaXN0ZW5lcnNNYXAmIGxp
c3RlbmVycyA9IGlzSFRNTEV2ZW50TGlzdGVuZXIoKQorICAgICAgICBLSlM6OldpbmRvdzo6VW5w
cm90ZWN0ZWRMaXN0ZW5lcnNNYXAmIGxpc3RlbmVycyA9IGlzSFRNTEV2ZW50TGlzdGVuZXIoKQog
ICAgICAgICAgICAgPyBtX3dpbi0+anNVbnByb3RlY3RlZEhUTUxFdmVudExpc3RlbmVycygpIDog
bV93aW4tPmpzVW5wcm90ZWN0ZWRFdmVudExpc3RlbmVycygpOwogICAgICAgICBsaXN0ZW5lcnMu
cmVtb3ZlKG1fbGlzdGVuZXIpOwogICAgIH0KQEAgLTE3OCw3ICsxNzgsNyBAQCBKU09iamVjdCog
SlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXI6OmxpCiAgICAgcmV0dXJuIG1fbGlzdGVuZXI7CiB9
CiAKLVdpbmRvdyogSlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXI6OndpbmRvd09iaigpIGNvbnN0
CitLSlM6OldpbmRvdyogSlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXI6OndpbmRvd09iaigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fd2luOwogfQpAQCAtMjE0LDEzICsyMTQsMTMgQEAgc3RhdGlj
IEV2ZW50TGlzdGVuZXJDb3VudGVyIGV2ZW50TGlzdGVuZQogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLUpTRXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyKEpTT2JqZWN0KiBsaXN0ZW5lciwg
V2luZG93KiB3aW4sIGJvb2wgaHRtbCkKK0pTRXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVy
KEpTT2JqZWN0KiBsaXN0ZW5lciwgS0pTOjpXaW5kb3cqIHdpbiwgYm9vbCBodG1sKQogICAgIDog
SlNBYnN0cmFjdEV2ZW50TGlzdGVuZXIoaHRtbCkKICAgICAsIG1fbGlzdGVuZXIobGlzdGVuZXIp
CiAgICAgLCBtX3dpbih3aW4pCiB7CiAgICAgaWYgKG1fbGlzdGVuZXIpIHsKLSAgICAgICAgV2lu
ZG93OjpMaXN0ZW5lcnNNYXAmIGxpc3RlbmVycyA9IGh0bWwKKyAgICAgICAgS0pTOjpXaW5kb3c6
Okxpc3RlbmVyc01hcCYgbGlzdGVuZXJzID0gaHRtbAogICAgICAgICAgICAgPyBtX3dpbi0+anNI
VE1MRXZlbnRMaXN0ZW5lcnMoKSA6IG1fd2luLT5qc0V2ZW50TGlzdGVuZXJzKCk7CiAgICAgICAg
IGxpc3RlbmVycy5zZXQobV9saXN0ZW5lciwgdGhpcyk7CiAgICAgfQpAQCAtMjMyLDcgKzIzMiw3
IEBAIEpTRXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyKEpTT2JqZWMKIEpTRXZlbnRMaXN0
ZW5lcjo6fkpTRXZlbnRMaXN0ZW5lcigpCiB7CiAgICAgaWYgKG1fbGlzdGVuZXIgJiYgbV93aW4p
IHsKLSAgICAgICAgV2luZG93OjpMaXN0ZW5lcnNNYXAmIGxpc3RlbmVycyA9IGlzSFRNTEV2ZW50
TGlzdGVuZXIoKQorICAgICAgICBLSlM6OldpbmRvdzo6TGlzdGVuZXJzTWFwJiBsaXN0ZW5lcnMg
PSBpc0hUTUxFdmVudExpc3RlbmVyKCkKICAgICAgICAgICAgID8gbV93aW4tPmpzSFRNTEV2ZW50
TGlzdGVuZXJzKCkgOiBtX3dpbi0+anNFdmVudExpc3RlbmVycygpOwogICAgICAgICBsaXN0ZW5l
cnMucmVtb3ZlKG1fbGlzdGVuZXIpOwogICAgIH0KQEAgLTI0Niw3ICsyNDYsNyBAQCBKU09iamVj
dCogSlNFdmVudExpc3RlbmVyOjpsaXN0ZW5lck9iaigpCiAgICAgcmV0dXJuIG1fbGlzdGVuZXI7
CiB9CiAKLVdpbmRvdyogSlNFdmVudExpc3RlbmVyOjp3aW5kb3dPYmooKSBjb25zdAorS0pTOjpX
aW5kb3cqIEpTRXZlbnRMaXN0ZW5lcjo6d2luZG93T2JqKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV93aW47CiB9CkBAIC0yNTgsNyArMjU4LDcgQEAgdm9pZCBKU0V2ZW50TGlzdGVuZXI6OmNsZWFy
V2luZG93T2JqKCkKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1KU0xhenlFdmVudExpc3RlbmVy
OjpKU0xhenlFdmVudExpc3RlbmVyKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBjb25zdCBT
dHJpbmcmIGNvZGUsIFdpbmRvdyogd2luLCBOb2RlKiBub2RlLCBpbnQgbGluZU51bWJlcikKK0pT
TGF6eUV2ZW50TGlzdGVuZXI6OkpTTGF6eUV2ZW50TGlzdGVuZXIoY29uc3QgU3RyaW5nJiBmdW5j
dGlvbk5hbWUsIGNvbnN0IFN0cmluZyYgY29kZSwgS0pTOjpXaW5kb3cqIHdpbiwgTm9kZSogbm9k
ZSwgaW50IGxpbmVOdW1iZXIpCiAgICAgOiBKU0V2ZW50TGlzdGVuZXIoMCwgd2luLCB0cnVlKQog
ICAgICwgbV9mdW5jdGlvbk5hbWUoZnVuY3Rpb25OYW1lKQogICAgICwgbV9jb2RlKGNvZGUpCkBA
IC0zMzQsNyArMzM0LDcgQEAgdm9pZCBKU0xhenlFdmVudExpc3RlbmVyOjpwYXJzZUNvZGUoKSBj
bwogICAgIG1fY29kZSA9IFN0cmluZygpOwogCiAgICAgaWYgKG1fbGlzdGVuZXIpIHsKLSAgICAg
ICAgV2luZG93OjpMaXN0ZW5lcnNNYXAmIGxpc3RlbmVycyA9IGlzSFRNTEV2ZW50TGlzdGVuZXIo
KQorICAgICAgICBLSlM6OldpbmRvdzo6TGlzdGVuZXJzTWFwJiBsaXN0ZW5lcnMgPSBpc0hUTUxF
dmVudExpc3RlbmVyKCkKICAgICAgICAgICAgID8gd2luZG93T2JqKCktPmpzSFRNTEV2ZW50TGlz
dGVuZXJzKCkgOiB3aW5kb3dPYmooKS0+anNFdmVudExpc3RlbmVycygpOwogICAgICAgICBsaXN0
ZW5lcnMuc2V0KG1fbGlzdGVuZXIsIGNvbnN0X2Nhc3Q8SlNMYXp5RXZlbnRMaXN0ZW5lcio+KHRo
aXMpKTsKICAgICB9CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50
Q3VzdG9tLmNwcAkocmV2aXNpb24gMjY3NzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRN
TERvY3VtZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBKU1Zh
bHVlKiBKU0hUTUxEb2N1bWVudDo6bmFtZUdldHRlcihFeGVjCiAKICAgICAgICAgRnJhbWUqIGZy
YW1lOwogICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShpZnJhbWVUYWcpICYmIChmcmFtZSA9
IHN0YXRpY19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4obm9kZSktPmNvbnRlbnRGcmFtZSgpKSkK
LSAgICAgICAgICAgIHJldHVybiBXaW5kb3c6OnJldHJpZXZlKGZyYW1lKTsKKyAgICAgICAgICAg
IHJldHVybiBLSlM6OldpbmRvdzo6cmV0cmlldmUoZnJhbWUpOwogCiAgICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIG5vZGUpOwogICAgIH0gCkBAIC05Nyw3ICs5Nyw3IEBAIEpTVmFsdWUqIEpTSFRN
TERvY3VtZW50OjpvcGVuKEV4ZWNTdGF0ZSoKICAgICBpZiAoYXJncy5zaXplKCkgPiAyKSB7CiAg
ICAgICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+KGltcGwoKSkt
PmZyYW1lKCk7CiAgICAgICAgIGlmIChmcmFtZSkgewotICAgICAgICAgICAgV2luZG93KiB3aW5k
b3cgPSBXaW5kb3c6OnJldHJpZXZlV2luZG93KGZyYW1lKTsKKyAgICAgICAgICAgIEtKUzo6V2lu
ZG93KiB3aW5kb3cgPSBLSlM6OldpbmRvdzo6cmV0cmlldmVXaW5kb3coZnJhbWUpOwogICAgICAg
ICAgICAgaWYgKHdpbmRvdykgewogICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBmdW5jdGlvbk9i
amVjdCA9IHdpbmRvdy0+Z2V0KGV4ZWMsICJvcGVuIiktPmdldE9iamVjdCgpOwogICAgICAgICAg
ICAgICAgIGlmICghZnVuY3Rpb25PYmplY3QgfHwgIWZ1bmN0aW9uT2JqZWN0LT5pbXBsZW1lbnRz
Q2FsbCgpKQpJbmRleDogV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcAkocmV2aXNpb24gMjY3NzApCisrKyBX
ZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDcgKzg4
LDcgQEAgQ2FjaGVkUGFnZTo6Q2FjaGVkUGFnZShQYWdlKiBwYWdlKQogICAgIAogICAgIEZyYW1l
KiBtYWluRnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsKICAgICBLSlNQcm94eSogcHJveHkgPSBt
YWluRnJhbWUtPnNjcmlwdFByb3h5KCk7Ci0gICAgV2luZG93KiB3aW5kb3cgPSBXaW5kb3c6OnJl
dHJpZXZlV2luZG93KG1haW5GcmFtZSk7CisgICAgS0pTOjpXaW5kb3cqIHdpbmRvdyA9IEtKUzo6
V2luZG93OjpyZXRyaWV2ZVdpbmRvdyhtYWluRnJhbWUpOwogCiAgICAgbWFpbkZyYW1lLT5jbGVh
clRpbWVycygpOwogCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBDYWNoZWRQYWdlOjpyZXN0b3Jl
KFBhZ2UqIHBhZ2UpCiAKICAgICBGcmFtZSogbWFpbkZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7
CiAgICAgS0pTUHJveHkqIHByb3h5ID0gbWFpbkZyYW1lLT5zY3JpcHRQcm94eSgpOwotICAgIFdp
bmRvdyogd2luZG93ID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhtYWluRnJhbWUpOworICAgIEtK
Uzo6V2luZG93KiB3aW5kb3cgPSBLSlM6OldpbmRvdzo6cmV0cmlldmVXaW5kb3cobWFpbkZyYW1l
KTsKIAogICAgIEpTTG9jayBsb2NrOwogCkluZGV4OiBXZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAkocmV2aXNpb24gMjY3NzApCisr
KyBXZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYzLDcgKzM2Myw3
IEBAIFBhZ2VHcm91cExvYWREZWZlcnJlcjo6UGFnZUdyb3VwTG9hZERlZmUKIAogI2lmICFQTEFU
Rk9STShNQUMpCiAgICAgICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG90aGVyUGFnZS0+bWFp
bkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKFdpbmRvdyogd2luZG93ID0gV2luZG93OjpyZXRyaWV2ZVdp
bmRvdyhmcmFtZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoS0pTOjpXaW5kb3cqIHdpbmRvdyA9
IEtKUzo6V2luZG93OjpyZXRyaWV2ZVdpbmRvdyhmcmFtZSkpIHsKICAgICAgICAgICAgICAgICAg
ICAgUGF1c2VkVGltZW91dHMqIHRpbWVvdXRzID0gd2luZG93LT5wYXVzZVRpbWVvdXRzKCk7CiAK
ICAgICAgICAgICAgICAgICAgICAgbV9wYXVzZWRUaW1lb3V0cy5hcHBlbmQobWFrZV9wYWlyKGZy
YW1lLCB0aW1lb3V0cykpOwpAQCAtMzkwLDcgKzM5MCw3IEBAIFBhZ2VHcm91cExvYWREZWZlcnJl
cjo6flBhZ2VHcm91cExvYWREZWYKICAgICBjb3VudCA9IG1fcGF1c2VkVGltZW91dHMuc2l6ZSgp
OwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Ci0gICAgICAgIFdp
bmRvdyogd2luZG93ID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhtX3BhdXNlZFRpbWVvdXRzW2ld
LmZpcnN0LmdldCgpKTsKKyAgICAgICAgS0pTOjpXaW5kb3cqIHdpbmRvdyA9IEtKUzo6V2luZG93
OjpyZXRyaWV2ZVdpbmRvdyhtX3BhdXNlZFRpbWVvdXRzW2ldLmZpcnN0LmdldCgpKTsKICAgICAg
ICAgaWYgKHdpbmRvdykKICAgICAgICAgICAgIHdpbmRvdy0+cmVzdW1lVGltZW91dHMobV9wYXVz
ZWRUaW1lb3V0c1tpXS5zZWNvbmQpOwogICAgICAgICBkZWxldGUgbV9wYXVzZWRUaW1lb3V0c1tp
XS5zZWNvbmQ7CkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNiBAQAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIAogdXNpbmcgS0pTOjpKU0xvY2s7Ci11c2luZyBLSlM6OldpbmRvdzsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0xOTQsNyArMTkzLDcgQEAgRnJhbWU6On5GcmFtZSgpCiAjZW5k
aWYKIAogICAgIGlmIChkLT5tX2pzY3JpcHQgJiYgZC0+bV9qc2NyaXB0LT5oYXZlSW50ZXJwcmV0
ZXIoKSkKLSAgICAgICAgc3RhdGljX2Nhc3Q8V2luZG93Kj4oZC0+bV9qc2NyaXB0LT5pbnRlcnBy
ZXRlcigpLT5nbG9iYWxPYmplY3QoKSktPmRpc2Nvbm5lY3RGcmFtZSgpOworICAgICAgICBzdGF0
aWNfY2FzdDxLSlM6OldpbmRvdyo+KGQtPm1fanNjcmlwdC0+aW50ZXJwcmV0ZXIoKS0+Z2xvYmFs
T2JqZWN0KCkpLT5kaXNjb25uZWN0RnJhbWUoKTsKIAogICAgIGRpc2Nvbm5lY3RPd25lckVsZW1l
bnQoKTsKICAgICAKQEAgLTE3NjUsNyArMTc2NCw3IEBAIHZvaWQgRnJhbWU6OnBhZ2VEZXN0cm95
ZWQoKQogCiAgICAgLy8gVGhpcyB3aWxsIHN0b3AgYW55IEpTIHRpbWVycwogICAgIGlmIChkLT5t
X2pzY3JpcHQgJiYgZC0+bV9qc2NyaXB0LT5oYXZlSW50ZXJwcmV0ZXIoKSkKLSAgICAgICAgaWYg
KFdpbmRvdyogdyA9IFdpbmRvdzo6cmV0cmlldmVXaW5kb3codGhpcykpCisgICAgICAgIGlmIChL
SlM6OldpbmRvdyogdyA9IEtKUzo6V2luZG93OjpyZXRyaWV2ZVdpbmRvdyh0aGlzKSkKICAgICAg
ICAgICAgIHctPmRpc2Nvbm5lY3RGcmFtZSgpOwogCiAgICAgZC0+bV9wYWdlID0gMDsK
</data>
<flag name="review"
          id="7067"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16732</attachid>
            <date>2007-10-19 11:26:02 -0700</date>
            <delta_ts>2007-10-19 11:33:58 -0700</delta_ts>
            <desc>Updated patch with darin&apos;s suggestions</desc>
            <filename>webkit-window-fix.patch</filename>
            <type>text/plain</type>
            <size>12691</size>
            <attacher name="Rodney Dawes">dobey</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4
MSw3IEBAIEpTVmFsdWUqIEtKU1Byb3h5OjpldmFsdWF0ZShjb25zdCBTdHJpbmcKICAgICAvLyBz
byB3ZSBzdGFydCB0aGUga2VlcCBhbGl2ZSB0aW1lciBoZXJlLgogICAgIG1fZnJhbWUtPmtlZXBB
bGl2ZSgpOwogICAgIAotICAgIEpTVmFsdWUqIHRoaXNOb2RlID0gV2luZG93OjpyZXRyaWV2ZSht
X2ZyYW1lKTsKKyAgICBKU1ZhbHVlKiB0aGlzTm9kZSA9IEtKUzo6V2luZG93OjpyZXRyaWV2ZSht
X2ZyYW1lKTsKICAgCiAgICAgbV9zY3JpcHQtPnN0YXJ0VGltZW91dENoZWNrKCk7CiAgICAgQ29t
cGxldGlvbiBjb21wID0gbV9zY3JpcHQtPmV2YWx1YXRlKGZpbGVuYW1lLCBiYXNlTGluZSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBLSlM6OlVDaGFyKj4oc3RyLmNoYXJhY3RlcnMoKSksIHN0ci5s
ZW5ndGgoKSwgdGhpc05vZGUpOwpAQCAtMTAzLDEwICsxMDMsMTAgQEAgSlNWYWx1ZSogS0pTUHJv
eHk6OmV2YWx1YXRlKGNvbnN0IFN0cmluZwogCiB2b2lkIEtKU1Byb3h5OjpjbGVhcigpIHsKICAg
Ly8gY2xlYXIgcmVzb3VyY2VzIGFsbG9jYXRlZCBieSB0aGUgaW50ZXJwcmV0ZXIsIGFuZCBtYWtl
IGl0IHJlYWR5IHRvIGJlIHVzZWQgYnkgYW5vdGhlciBwYWdlCi0gIC8vIFdlIGhhdmUgdG8ga2Vl
cCBpdCwgc28gdGhhdCB0aGUgV2luZG93IG9iamVjdCBmb3IgdGhlIGZyYW1lIHJlbWFpbnMgdGhl
IHNhbWUuCisgIC8vIFdlIGhhdmUgdG8ga2VlcCBpdCwgc28gdGhhdCB0aGUgS0pTOjpXaW5kb3cg
b2JqZWN0IGZvciB0aGUgZnJhbWUgcmVtYWlucyB0aGUgc2FtZS4KICAgLy8gKHdlIHVzZWQgdG8g
ZGVsZXRlIGFuZCByZS1jcmVhdGUgaXQsIHByZXZpb3VzbHkpCiAgIGlmIChtX3NjcmlwdCkgewot
ICAgIFdpbmRvdyAqd2luID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhtX2ZyYW1lKTsKKyAgICBL
SlM6OldpbmRvdyAqd2luID0gS0pTOjpXaW5kb3c6OnJldHJpZXZlV2luZG93KG1fZnJhbWUpOwog
ICAgIGlmICh3aW4pCiAgICAgICAgIHdpbi0+Y2xlYXIoKTsKICAgfQpAQCAtMTE2LDcgKzExNiw3
IEBAIEV2ZW50TGlzdGVuZXIqIEtKU1Byb3h5OjpjcmVhdGVIVE1MRXZlbnQKIHsKICAgICBpbml0
U2NyaXB0SWZOZWVkZWQoKTsKICAgICBKU0xvY2sgbG9jazsKLSAgICByZXR1cm4gbmV3IEpTTGF6
eUV2ZW50TGlzdGVuZXIoZnVuY3Rpb25OYW1lLCBjb2RlLCBXaW5kb3c6OnJldHJpZXZlV2luZG93
KG1fZnJhbWUpLCBub2RlLCBtX2hhbmRsZXJMaW5lbm8pOworICAgIHJldHVybiBuZXcgSlNMYXp5
RXZlbnRMaXN0ZW5lcihmdW5jdGlvbk5hbWUsIGNvZGUsIEtKUzo6V2luZG93OjpyZXRyaWV2ZVdp
bmRvdyhtX2ZyYW1lKSwgbm9kZSwgbV9oYW5kbGVyTGluZW5vKTsKIH0KIAogI2lmIEVOQUJMRShT
VkcpCkBAIC0xMjQsNyArMTI0LDcgQEAgRXZlbnRMaXN0ZW5lciogS0pTUHJveHk6OmNyZWF0ZVNW
R0V2ZW50SAogewogICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOwogICAgIEpTTG9jayBsb2NrOwot
ICAgIHJldHVybiBuZXcgSlNTVkdMYXp5RXZlbnRMaXN0ZW5lcihmdW5jdGlvbk5hbWUsIGNvZGUs
IFdpbmRvdzo6cmV0cmlldmVXaW5kb3cobV9mcmFtZSksIG5vZGUsIG1faGFuZGxlckxpbmVubyk7
CisgICAgcmV0dXJuIG5ldyBKU1NWR0xhenlFdmVudExpc3RlbmVyKGZ1bmN0aW9uTmFtZSwgY29k
ZSwgS0pTOjpXaW5kb3c6OnJldHJpZXZlV2luZG93KG1fZnJhbWUpLCBub2RlLCBtX2hhbmRsZXJM
aW5lbm8pOwogfQogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRnJh
bWVTZXRFbGVtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIEpTVmFsdWUqIEpTSFRNTEZyYW1lU2V0RWxlbWVudDo6
bmFtZUdldHQKIAogICAgIE5vZGUqIGZyYW1lID0gZWxlbWVudC0+Y2hpbGRyZW4oKS0+bmFtZWRJ
dGVtKHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKERvY3VtZW50KiBkb2MgPSBzdGF0aWNfY2FzdDxI
VE1MRnJhbWVFbGVtZW50Kj4oZnJhbWUpLT5jb250ZW50RG9jdW1lbnQoKSkgewotICAgICAgICBp
ZiAoV2luZG93KiB3aW5kb3cgPSBXaW5kb3c6OnJldHJpZXZlV2luZG93KGRvYy0+ZnJhbWUoKSkp
CisgICAgICAgIGlmIChLSlM6OldpbmRvdyogd2luZG93ID0gS0pTOjpXaW5kb3c6OnJldHJpZXZl
V2luZG93KGRvYy0+ZnJhbWUoKSkpCiAgICAgICAgICAgICByZXR1cm4gd2luZG93OwogICAgIH0K
IApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfZG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19kb20uY3BwCShyZXZpc2lvbiAyNjc3MCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvanMva2pzX2RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcg
QEAgYm9vbCBjaGVja05vZGVTZWN1cml0eShFeGVjU3RhdGUqIGV4ZWMsIAogICAgIHJldHVybiBm
YWxzZTsKIAogICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIGN1cnJlbnRseSBleGVjdXRpbmcgaW50
ZXJwcmV0ZXIgaXMgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHNwZWNpZmllZCBub2RlCi0gIFdpbmRv
dyogd2luID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhuLT5kb2N1bWVudCgpLT5mcmFtZSgpKTsK
KyAgS0pTOjpXaW5kb3cqIHdpbiA9IEtKUzo6V2luZG93OjpyZXRyaWV2ZVdpbmRvdyhuLT5kb2N1
bWVudCgpLT5mcmFtZSgpKTsKICAgcmV0dXJuIHdpbiAmJiB3aW4tPmlzU2FmZVNjcmlwdChleGVj
KTsKIH0KIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCShy
ZXZpc2lvbiAyNjc3MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgSlNWYWx1ZSogSlNEb2N1bWVudDo6
bG9jYXRpb24oRXhlY1N0YXRlKgogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBqc051
bGwoKTsKIAotICAgIFdpbmRvdyogd2luID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhmcmFtZSk7
CisgICAgS0pTOjpXaW5kb3cqIHdpbiA9IEtKUzo6V2luZG93OjpyZXRyaWV2ZVdpbmRvdyhmcmFt
ZSk7CiAgICAgQVNTRVJUKHdpbik7CiAgICAgcmV0dXJuIHdpbi0+bG9jYXRpb24oKTsKIH0KQEAg
LTk0LDcgKzk0LDcgQEAgSlNWYWx1ZSogdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIERvY3VtZW50Kgog
ICAgIC8vIE1ha2Ugc3VyZSB0aGUgZG9jdW1lbnQgaXMga2VwdCBhcm91bmQgYnkgdGhlIHdpbmRv
dyBvYmplY3QsIGFuZCB3b3JrcyByaWdodCB3aXRoIHRoZQogICAgIC8vIGJhY2svZm9yd2FyZCBj
YWNoZS4KICAgICBpZiAoZG9jLT5mcmFtZSgpKQotICAgICAgICBXaW5kb3c6OnJldHJpZXZlV2lu
ZG93KGRvYy0+ZnJhbWUoKSktPnB1dERpcmVjdCgiZG9jdW1lbnQiLCByZXQsIERvbnREZWxldGV8
UmVhZE9ubHkpOworICAgICAgICBLSlM6OldpbmRvdzo6cmV0cmlldmVXaW5kb3coZG9jLT5mcmFt
ZSgpKS0+cHV0RGlyZWN0KCJkb2N1bWVudCIsIHJldCwgRG9udERlbGV0ZXxSZWFkT25seSk7CiAg
ICAgZWxzZSB7CiAgICAgICAgIHNpemVfdCBub2RlQ291bnQgPSAwOwogICAgICAgICBmb3IgKE5v
ZGUqIG4gPSBkb2M7IG47IG4gPSBuLT50cmF2ZXJzZU5leHROb2RlKCkpCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvanMva2pzX2V2ZW50cy5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9qcy9ranNfZXZlbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQCB2b2lk
IEpTQWJzdHJhY3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVuCiAgICAgaWYgKCFsaXN0ZW5lcikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgV2luZG93KiB3aW5kb3cgPSB3aW5kb3dPYmooKTsKKyAg
ICBLSlM6OldpbmRvdyogd2luZG93ID0gd2luZG93T2JqKCk7CiAgICAgLy8gTnVsbCBjaGVjayBh
cyBjbGVhcldpbmRvd09iaigpIGNhbiBjbGVhciB0aGlzIGFuZCB3ZSBzdGlsbCBnZXQgY2FsbGVk
IGJhY2sgYnkKICAgICAvLyB4bWxodHRwcmVxdWVzdCBvYmplY3RzLiBTZWUgaHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNzUKICAgICBpZiAoIXdpbmRvdykKQEAgLTk3
LDcgKzk3LDcgQEAgdm9pZCBKU0Fic3RyYWN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbgogICAg
ICAgICBMaXN0IGFyZ3M7CiAgICAgICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZXZlbnQpKTsK
IAotICAgICAgICAvLyBTZXQgdGhlIGV2ZW50IHdlJ3JlIGhhbmRsaW5nIGluIHRoZSBXaW5kb3cg
b2JqZWN0CisgICAgICAgIC8vIFNldCB0aGUgZXZlbnQgd2UncmUgaGFuZGxpbmcgaW4gdGhlIEtK
Uzo6V2luZG93IG9iamVjdAogICAgICAgICB3aW5kb3ctPnNldEN1cnJlbnRFdmVudChldmVudCk7
CiAgICAgICAgIC8vIC4uLiBhbmQgaW4gdGhlIGludGVycHJldGVyCiAgICAgICAgIGludGVycHJl
dGVyLT5zZXRDdXJyZW50RXZlbnQoZXZlbnQpOwpAQCAtMTUyLDEzICsxNTIsMTMgQEAgYm9vbCBK
U0Fic3RyYWN0RXZlbnRMaXN0ZW5lcjo6aXNIVE1MRXZlbgogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLUpTVW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyOjpKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5l
cihKU09iamVjdCogbGlzdGVuZXIsIFdpbmRvdyogd2luLCBib29sIGh0bWwpCitKU1VucHJvdGVj
dGVkRXZlbnRMaXN0ZW5lcjo6SlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXIoSlNPYmplY3QqIGxp
c3RlbmVyLCBLSlM6OldpbmRvdyogd2luLCBib29sIGh0bWwpCiAgICAgOiBKU0Fic3RyYWN0RXZl
bnRMaXN0ZW5lcihodG1sKQogICAgICwgbV9saXN0ZW5lcihsaXN0ZW5lcikKICAgICAsIG1fd2lu
KHdpbikKIHsKICAgICBpZiAobV9saXN0ZW5lcikgewotICAgICAgICBXaW5kb3c6OlVucHJvdGVj
dGVkTGlzdGVuZXJzTWFwJiBsaXN0ZW5lcnMgPSBodG1sCisgICAgICAgIEtKUzo6V2luZG93OjpV
bnByb3RlY3RlZExpc3RlbmVyc01hcCYgbGlzdGVuZXJzID0gaHRtbAogICAgICAgICAgICAgPyBt
X3dpbi0+anNVbnByb3RlY3RlZEhUTUxFdmVudExpc3RlbmVycygpIDogbV93aW4tPmpzVW5wcm90
ZWN0ZWRFdmVudExpc3RlbmVycygpOwogICAgICAgICBsaXN0ZW5lcnMuc2V0KG1fbGlzdGVuZXIs
IHRoaXMpOwogICAgIH0KQEAgLTE2Nyw3ICsxNjcsNyBAQCBKU1VucHJvdGVjdGVkRXZlbnRMaXN0
ZW5lcjo6SlNVbnByb3RlY3RlCiBKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5lcjo6fkpTVW5wcm90
ZWN0ZWRFdmVudExpc3RlbmVyKCkKIHsKICAgICBpZiAobV9saXN0ZW5lciAmJiBtX3dpbikgewot
ICAgICAgICBXaW5kb3c6OlVucHJvdGVjdGVkTGlzdGVuZXJzTWFwJiBsaXN0ZW5lcnMgPSBpc0hU
TUxFdmVudExpc3RlbmVyKCkKKyAgICAgICAgS0pTOjpXaW5kb3c6OlVucHJvdGVjdGVkTGlzdGVu
ZXJzTWFwJiBsaXN0ZW5lcnMgPSBpc0hUTUxFdmVudExpc3RlbmVyKCkKICAgICAgICAgICAgID8g
bV93aW4tPmpzVW5wcm90ZWN0ZWRIVE1MRXZlbnRMaXN0ZW5lcnMoKSA6IG1fd2luLT5qc1VucHJv
dGVjdGVkRXZlbnRMaXN0ZW5lcnMoKTsKICAgICAgICAgbGlzdGVuZXJzLnJlbW92ZShtX2xpc3Rl
bmVyKTsKICAgICB9CkBAIC0xNzgsNyArMTc4LDcgQEAgSlNPYmplY3QqIEpTVW5wcm90ZWN0ZWRF
dmVudExpc3RlbmVyOjpsaQogICAgIHJldHVybiBtX2xpc3RlbmVyOwogfQogCi1XaW5kb3cqIEpT
VW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyOjp3aW5kb3dPYmooKSBjb25zdAorS0pTOjpXaW5kb3cq
IEpTVW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyOjp3aW5kb3dPYmooKSBjb25zdAogewogICAgIHJl
dHVybiBtX3dpbjsKIH0KQEAgLTIxNCwxMyArMjE0LDEzIEBAIHN0YXRpYyBFdmVudExpc3RlbmVy
Q291bnRlciBldmVudExpc3RlbmUKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1KU0V2ZW50TGlz
dGVuZXI6OkpTRXZlbnRMaXN0ZW5lcihKU09iamVjdCogbGlzdGVuZXIsIFdpbmRvdyogd2luLCBi
b29sIGh0bWwpCitKU0V2ZW50TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5lcihKU09iamVjdCogbGlz
dGVuZXIsIEtKUzo6V2luZG93KiB3aW4sIGJvb2wgaHRtbCkKICAgICA6IEpTQWJzdHJhY3RFdmVu
dExpc3RlbmVyKGh0bWwpCiAgICAgLCBtX2xpc3RlbmVyKGxpc3RlbmVyKQogICAgICwgbV93aW4o
d2luKQogewogICAgIGlmIChtX2xpc3RlbmVyKSB7Ci0gICAgICAgIFdpbmRvdzo6TGlzdGVuZXJz
TWFwJiBsaXN0ZW5lcnMgPSBodG1sCisgICAgICAgIEtKUzo6V2luZG93OjpMaXN0ZW5lcnNNYXAm
IGxpc3RlbmVycyA9IGh0bWwKICAgICAgICAgICAgID8gbV93aW4tPmpzSFRNTEV2ZW50TGlzdGVu
ZXJzKCkgOiBtX3dpbi0+anNFdmVudExpc3RlbmVycygpOwogICAgICAgICBsaXN0ZW5lcnMuc2V0
KG1fbGlzdGVuZXIsIHRoaXMpOwogICAgIH0KQEAgLTIzMiw3ICsyMzIsNyBAQCBKU0V2ZW50TGlz
dGVuZXI6OkpTRXZlbnRMaXN0ZW5lcihKU09iamVjCiBKU0V2ZW50TGlzdGVuZXI6On5KU0V2ZW50
TGlzdGVuZXIoKQogewogICAgIGlmIChtX2xpc3RlbmVyICYmIG1fd2luKSB7Ci0gICAgICAgIFdp
bmRvdzo6TGlzdGVuZXJzTWFwJiBsaXN0ZW5lcnMgPSBpc0hUTUxFdmVudExpc3RlbmVyKCkKKyAg
ICAgICAgS0pTOjpXaW5kb3c6Okxpc3RlbmVyc01hcCYgbGlzdGVuZXJzID0gaXNIVE1MRXZlbnRM
aXN0ZW5lcigpCiAgICAgICAgICAgICA/IG1fd2luLT5qc0hUTUxFdmVudExpc3RlbmVycygpIDog
bV93aW4tPmpzRXZlbnRMaXN0ZW5lcnMoKTsKICAgICAgICAgbGlzdGVuZXJzLnJlbW92ZShtX2xp
c3RlbmVyKTsKICAgICB9CkBAIC0yNDYsNyArMjQ2LDcgQEAgSlNPYmplY3QqIEpTRXZlbnRMaXN0
ZW5lcjo6bGlzdGVuZXJPYmooKQogICAgIHJldHVybiBtX2xpc3RlbmVyOwogfQogCi1XaW5kb3cq
IEpTRXZlbnRMaXN0ZW5lcjo6d2luZG93T2JqKCkgY29uc3QKK0tKUzo6V2luZG93KiBKU0V2ZW50
TGlzdGVuZXI6OndpbmRvd09iaigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fd2luOwogfQpAQCAt
MjU4LDcgKzI1OCw3IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpjbGVhcldpbmRvd09iaigpCiAK
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotSlNMYXp5RXZlbnRMaXN0ZW5lcjo6SlNMYXp5RXZlbnRM
aXN0ZW5lcihjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSwgY29uc3QgU3RyaW5nJiBjb2RlLCBX
aW5kb3cqIHdpbiwgTm9kZSogbm9kZSwgaW50IGxpbmVOdW1iZXIpCitKU0xhenlFdmVudExpc3Rl
bmVyOjpKU0xhenlFdmVudExpc3RlbmVyKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBjb25z
dCBTdHJpbmcmIGNvZGUsIEtKUzo6V2luZG93KiB3aW4sIE5vZGUqIG5vZGUsIGludCBsaW5lTnVt
YmVyKQogICAgIDogSlNFdmVudExpc3RlbmVyKDAsIHdpbiwgdHJ1ZSkKICAgICAsIG1fZnVuY3Rp
b25OYW1lKGZ1bmN0aW9uTmFtZSkKICAgICAsIG1fY29kZShjb2RlKQpAQCAtMzM0LDcgKzMzNCw3
IEBAIHZvaWQgSlNMYXp5RXZlbnRMaXN0ZW5lcjo6cGFyc2VDb2RlKCkgY28KICAgICBtX2NvZGUg
PSBTdHJpbmcoKTsKIAogICAgIGlmIChtX2xpc3RlbmVyKSB7Ci0gICAgICAgIFdpbmRvdzo6TGlz
dGVuZXJzTWFwJiBsaXN0ZW5lcnMgPSBpc0hUTUxFdmVudExpc3RlbmVyKCkKKyAgICAgICAgS0pT
OjpXaW5kb3c6Okxpc3RlbmVyc01hcCYgbGlzdGVuZXJzID0gaXNIVE1MRXZlbnRMaXN0ZW5lcigp
CiAgICAgICAgICAgICA/IHdpbmRvd09iaigpLT5qc0hUTUxFdmVudExpc3RlbmVycygpIDogd2lu
ZG93T2JqKCktPmpzRXZlbnRMaXN0ZW5lcnMoKTsKICAgICAgICAgbGlzdGVuZXJzLnNldChtX2xp
c3RlbmVyLCBjb25zdF9jYXN0PEpTTGF6eUV2ZW50TGlzdGVuZXIqPih0aGlzKSk7CiAgICAgfQpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAJKHJl
dmlzaW9uIDI2NzcwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3Rv
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgSlNWYWx1ZSogSlNIVE1MRG9j
dW1lbnQ6Om5hbWVHZXR0ZXIoRXhlYwogCiAgICAgICAgIEZyYW1lKiBmcmFtZTsKICAgICAgICAg
aWYgKG5vZGUtPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSAmJiAoZnJhbWUgPSBzdGF0aWNfY2FzdDxI
VE1MSUZyYW1lRWxlbWVudCo+KG5vZGUpLT5jb250ZW50RnJhbWUoKSkpCi0gICAgICAgICAgICBy
ZXR1cm4gV2luZG93OjpyZXRyaWV2ZShmcmFtZSk7CisgICAgICAgICAgICByZXR1cm4gS0pTOjpX
aW5kb3c6OnJldHJpZXZlKGZyYW1lKTsKIAogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBub2Rl
KTsKICAgICB9IApAQCAtOTcsNyArOTcsNyBAQCBKU1ZhbHVlKiBKU0hUTUxEb2N1bWVudDo6b3Bl
bihFeGVjU3RhdGUqCiAgICAgaWYgKGFyZ3Muc2l6ZSgpID4gMikgewogICAgICAgICBGcmFtZSog
ZnJhbWUgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihpbXBsKCkpLT5mcmFtZSgpOwogICAg
ICAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgICAgIFdpbmRvdyogd2luZG93ID0gV2luZG93Ojpy
ZXRyaWV2ZVdpbmRvdyhmcmFtZSk7CisgICAgICAgICAgICBLSlM6OldpbmRvdyogd2luZG93ID0g
S0pTOjpXaW5kb3c6OnJldHJpZXZlV2luZG93KGZyYW1lKTsKICAgICAgICAgICAgIGlmICh3aW5k
b3cpIHsKICAgICAgICAgICAgICAgICBKU09iamVjdCogZnVuY3Rpb25PYmplY3QgPSB3aW5kb3ct
PmdldChleGVjLCAib3BlbiIpLT5nZXRPYmplY3QoKTsKICAgICAgICAgICAgICAgICBpZiAoIWZ1
bmN0aW9uT2JqZWN0IHx8ICFmdW5jdGlvbk9iamVjdC0+aW1wbGVtZW50c0NhbGwoKSkKSW5kZXg6
IFdlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2hp
c3RvcnkvQ2FjaGVkUGFnZS5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2ViQ29yZS9oaXN0b3J5
L0NhY2hlZFBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIENhY2hlZFBh
Z2U6OkNhY2hlZFBhZ2UoUGFnZSogcGFnZSkKICAgICAKICAgICBGcmFtZSogbWFpbkZyYW1lID0g
cGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgS0pTUHJveHkqIHByb3h5ID0gbWFpbkZyYW1lLT5zY3Jp
cHRQcm94eSgpOwotICAgIFdpbmRvdyogd2luZG93ID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyht
YWluRnJhbWUpOworICAgIEtKUzo6V2luZG93KiB3aW5kb3cgPSBLSlM6OldpbmRvdzo6cmV0cmll
dmVXaW5kb3cobWFpbkZyYW1lKTsKIAogICAgIG1haW5GcmFtZS0+Y2xlYXJUaW1lcnMoKTsKIApA
QCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgQ2FjaGVkUGFnZTo6cmVzdG9yZShQYWdlKiBwYWdlKQog
CiAgICAgRnJhbWUqIG1haW5GcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwogICAgIEtKU1Byb3h5
KiBwcm94eSA9IG1haW5GcmFtZS0+c2NyaXB0UHJveHkoKTsKLSAgICBXaW5kb3cqIHdpbmRvdyA9
IFdpbmRvdzo6cmV0cmlldmVXaW5kb3cobWFpbkZyYW1lKTsKKyAgICBLSlM6OldpbmRvdyogd2lu
ZG93ID0gS0pTOjpXaW5kb3c6OnJldHJpZXZlV2luZG93KG1haW5GcmFtZSk7CiAKICAgICBKU0xv
Y2sgbG9jazsKIApJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2Myw3ICszNjMsNyBAQCBQYWdlR3JvdXBM
b2FkRGVmZXJyZXI6OlBhZ2VHcm91cExvYWREZWZlCiAKICNpZiAhUExBVEZPUk0oTUFDKQogICAg
ICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBvdGhlclBhZ2UtPm1haW5GcmFtZSgpOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewotICAgICAgICAgICAg
ICAgIGlmIChXaW5kb3cqIHdpbmRvdyA9IFdpbmRvdzo6cmV0cmlldmVXaW5kb3coZnJhbWUpKSB7
CisgICAgICAgICAgICAgICAgaWYgKEtKUzo6V2luZG93KiB3aW5kb3cgPSBLSlM6OldpbmRvdzo6
cmV0cmlldmVXaW5kb3coZnJhbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgIFBhdXNlZFRpbWVv
dXRzKiB0aW1lb3V0cyA9IHdpbmRvdy0+cGF1c2VUaW1lb3V0cygpOwogCiAgICAgICAgICAgICAg
ICAgICAgIG1fcGF1c2VkVGltZW91dHMuYXBwZW5kKG1ha2VfcGFpcihmcmFtZSwgdGltZW91dHMp
KTsKQEAgLTM5MCw3ICszOTAsNyBAQCBQYWdlR3JvdXBMb2FkRGVmZXJyZXI6On5QYWdlR3JvdXBM
b2FkRGVmCiAgICAgY291bnQgPSBtX3BhdXNlZFRpbWVvdXRzLnNpemUoKTsKIAogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICBXaW5kb3cqIHdpbmRvdyA9
IFdpbmRvdzo6cmV0cmlldmVXaW5kb3cobV9wYXVzZWRUaW1lb3V0c1tpXS5maXJzdC5nZXQoKSk7
CisgICAgICAgIEtKUzo6V2luZG93KiB3aW5kb3cgPSBLSlM6OldpbmRvdzo6cmV0cmlldmVXaW5k
b3cobV9wYXVzZWRUaW1lb3V0c1tpXS5maXJzdC5nZXQoKSk7CiAgICAgICAgIGlmICh3aW5kb3cp
CiAgICAgICAgICAgICB3aW5kb3ctPnJlc3VtZVRpbWVvdXRzKG1fcGF1c2VkVGltZW91dHNbaV0u
c2Vjb25kKTsKICAgICAgICAgZGVsZXRlIG1fcGF1c2VkVGltZW91dHNbaV0uc2Vjb25kOwpJbmRl
eDogV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCShyZXZpc2lvbiAyNjc3MCkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTg0LDcgKzg0LDYgQEAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIHVzaW5n
IEtKUzo6SlNMb2NrOwotdXNpbmcgS0pTOjpXaW5kb3c7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMTk0LDcgKzE5Myw3IEBAIEZyYW1lOjp+RnJhbWUoKQogI2VuZGlmCiAKICAgICBpZiAo
ZC0+bV9qc2NyaXB0ICYmIGQtPm1fanNjcmlwdC0+aGF2ZUludGVycHJldGVyKCkpCi0gICAgICAg
IHN0YXRpY19jYXN0PFdpbmRvdyo+KGQtPm1fanNjcmlwdC0+aW50ZXJwcmV0ZXIoKS0+Z2xvYmFs
T2JqZWN0KCkpLT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8S0pTOjpX
aW5kb3cqPihkLT5tX2pzY3JpcHQtPmludGVycHJldGVyKCktPmdsb2JhbE9iamVjdCgpKS0+ZGlz
Y29ubmVjdEZyYW1lKCk7CiAKICAgICBkaXNjb25uZWN0T3duZXJFbGVtZW50KCk7CiAgICAgCkBA
IC0xNzY1LDcgKzE3NjQsNyBAQCB2b2lkIEZyYW1lOjpwYWdlRGVzdHJveWVkKCkKIAogICAgIC8v
IFRoaXMgd2lsbCBzdG9wIGFueSBKUyB0aW1lcnMKICAgICBpZiAoZC0+bV9qc2NyaXB0ICYmIGQt
Pm1fanNjcmlwdC0+aGF2ZUludGVycHJldGVyKCkpCi0gICAgICAgIGlmIChXaW5kb3cqIHcgPSBX
aW5kb3c6OnJldHJpZXZlV2luZG93KHRoaXMpKQorICAgICAgICBpZiAoS0pTOjpXaW5kb3cqIHcg
PSBLSlM6OldpbmRvdzo6cmV0cmlldmVXaW5kb3codGhpcykpCiAgICAgICAgICAgICB3LT5kaXNj
b25uZWN0RnJhbWUoKTsKIAogICAgIGQtPm1fcGFnZSA9IDA7Cg==
</data>
<flag name="review"
          id="7068"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16733</attachid>
            <date>2007-10-19 11:33:58 -0700</date>
            <delta_ts>2007-10-19 11:35:50 -0700</delta_ts>
            <desc>Updated patch with ChangeLog entry</desc>
            <filename>webkit-window-fix.patch</filename>
            <type>text/plain</type>
            <size>13492</size>
            <attacher name="Rodney Dawes">dobey</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19wcm94eS5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9qcy9ranNfcHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4
MSw3IEBAIEpTVmFsdWUqIEtKU1Byb3h5OjpldmFsdWF0ZShjb25zdCBTdHJpbmcKICAgICAvLyBz
byB3ZSBzdGFydCB0aGUga2VlcCBhbGl2ZSB0aW1lciBoZXJlLgogICAgIG1fZnJhbWUtPmtlZXBB
bGl2ZSgpOwogICAgIAotICAgIEpTVmFsdWUqIHRoaXNOb2RlID0gV2luZG93OjpyZXRyaWV2ZSht
X2ZyYW1lKTsKKyAgICBKU1ZhbHVlKiB0aGlzTm9kZSA9IEtKUzo6V2luZG93OjpyZXRyaWV2ZSht
X2ZyYW1lKTsKICAgCiAgICAgbV9zY3JpcHQtPnN0YXJ0VGltZW91dENoZWNrKCk7CiAgICAgQ29t
cGxldGlvbiBjb21wID0gbV9zY3JpcHQtPmV2YWx1YXRlKGZpbGVuYW1lLCBiYXNlTGluZSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBLSlM6OlVDaGFyKj4oc3RyLmNoYXJhY3RlcnMoKSksIHN0ci5s
ZW5ndGgoKSwgdGhpc05vZGUpOwpAQCAtMTAzLDEwICsxMDMsMTAgQEAgSlNWYWx1ZSogS0pTUHJv
eHk6OmV2YWx1YXRlKGNvbnN0IFN0cmluZwogCiB2b2lkIEtKU1Byb3h5OjpjbGVhcigpIHsKICAg
Ly8gY2xlYXIgcmVzb3VyY2VzIGFsbG9jYXRlZCBieSB0aGUgaW50ZXJwcmV0ZXIsIGFuZCBtYWtl
IGl0IHJlYWR5IHRvIGJlIHVzZWQgYnkgYW5vdGhlciBwYWdlCi0gIC8vIFdlIGhhdmUgdG8ga2Vl
cCBpdCwgc28gdGhhdCB0aGUgV2luZG93IG9iamVjdCBmb3IgdGhlIGZyYW1lIHJlbWFpbnMgdGhl
IHNhbWUuCisgIC8vIFdlIGhhdmUgdG8ga2VlcCBpdCwgc28gdGhhdCB0aGUgS0pTOjpXaW5kb3cg
b2JqZWN0IGZvciB0aGUgZnJhbWUgcmVtYWlucyB0aGUgc2FtZS4KICAgLy8gKHdlIHVzZWQgdG8g
ZGVsZXRlIGFuZCByZS1jcmVhdGUgaXQsIHByZXZpb3VzbHkpCiAgIGlmIChtX3NjcmlwdCkgewot
ICAgIFdpbmRvdyAqd2luID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhtX2ZyYW1lKTsKKyAgICBL
SlM6OldpbmRvdyAqd2luID0gS0pTOjpXaW5kb3c6OnJldHJpZXZlV2luZG93KG1fZnJhbWUpOwog
ICAgIGlmICh3aW4pCiAgICAgICAgIHdpbi0+Y2xlYXIoKTsKICAgfQpAQCAtMTE2LDcgKzExNiw3
IEBAIEV2ZW50TGlzdGVuZXIqIEtKU1Byb3h5OjpjcmVhdGVIVE1MRXZlbnQKIHsKICAgICBpbml0
U2NyaXB0SWZOZWVkZWQoKTsKICAgICBKU0xvY2sgbG9jazsKLSAgICByZXR1cm4gbmV3IEpTTGF6
eUV2ZW50TGlzdGVuZXIoZnVuY3Rpb25OYW1lLCBjb2RlLCBXaW5kb3c6OnJldHJpZXZlV2luZG93
KG1fZnJhbWUpLCBub2RlLCBtX2hhbmRsZXJMaW5lbm8pOworICAgIHJldHVybiBuZXcgSlNMYXp5
RXZlbnRMaXN0ZW5lcihmdW5jdGlvbk5hbWUsIGNvZGUsIEtKUzo6V2luZG93OjpyZXRyaWV2ZVdp
bmRvdyhtX2ZyYW1lKSwgbm9kZSwgbV9oYW5kbGVyTGluZW5vKTsKIH0KIAogI2lmIEVOQUJMRShT
VkcpCkBAIC0xMjQsNyArMTI0LDcgQEAgRXZlbnRMaXN0ZW5lciogS0pTUHJveHk6OmNyZWF0ZVNW
R0V2ZW50SAogewogICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOwogICAgIEpTTG9jayBsb2NrOwot
ICAgIHJldHVybiBuZXcgSlNTVkdMYXp5RXZlbnRMaXN0ZW5lcihmdW5jdGlvbk5hbWUsIGNvZGUs
IFdpbmRvdzo6cmV0cmlldmVXaW5kb3cobV9mcmFtZSksIG5vZGUsIG1faGFuZGxlckxpbmVubyk7
CisgICAgcmV0dXJuIG5ldyBKU1NWR0xhenlFdmVudExpc3RlbmVyKGZ1bmN0aW9uTmFtZSwgY29k
ZSwgS0pTOjpXaW5kb3c6OnJldHJpZXZlV2luZG93KG1fZnJhbWUpLCBub2RlLCBtX2hhbmRsZXJM
aW5lbm8pOwogfQogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRnJh
bWVTZXRFbGVtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIEpTVmFsdWUqIEpTSFRNTEZyYW1lU2V0RWxlbWVudDo6
bmFtZUdldHQKIAogICAgIE5vZGUqIGZyYW1lID0gZWxlbWVudC0+Y2hpbGRyZW4oKS0+bmFtZWRJ
dGVtKHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKERvY3VtZW50KiBkb2MgPSBzdGF0aWNfY2FzdDxI
VE1MRnJhbWVFbGVtZW50Kj4oZnJhbWUpLT5jb250ZW50RG9jdW1lbnQoKSkgewotICAgICAgICBp
ZiAoV2luZG93KiB3aW5kb3cgPSBXaW5kb3c6OnJldHJpZXZlV2luZG93KGRvYy0+ZnJhbWUoKSkp
CisgICAgICAgIGlmIChLSlM6OldpbmRvdyogd2luZG93ID0gS0pTOjpXaW5kb3c6OnJldHJpZXZl
V2luZG93KGRvYy0+ZnJhbWUoKSkpCiAgICAgICAgICAgICByZXR1cm4gd2luZG93OwogICAgIH0K
IApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfZG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19kb20uY3BwCShyZXZpc2lvbiAyNjc3MCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvanMva2pzX2RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcg
QEAgYm9vbCBjaGVja05vZGVTZWN1cml0eShFeGVjU3RhdGUqIGV4ZWMsIAogICAgIHJldHVybiBm
YWxzZTsKIAogICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIGN1cnJlbnRseSBleGVjdXRpbmcgaW50
ZXJwcmV0ZXIgaXMgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHNwZWNpZmllZCBub2RlCi0gIFdpbmRv
dyogd2luID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhuLT5kb2N1bWVudCgpLT5mcmFtZSgpKTsK
KyAgS0pTOjpXaW5kb3cqIHdpbiA9IEtKUzo6V2luZG93OjpyZXRyaWV2ZVdpbmRvdyhuLT5kb2N1
bWVudCgpLT5mcmFtZSgpKTsKICAgcmV0dXJuIHdpbiAmJiB3aW4tPmlzU2FmZVNjcmlwdChleGVj
KTsKIH0KIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCShy
ZXZpc2lvbiAyNjc3MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgSlNWYWx1ZSogSlNEb2N1bWVudDo6
bG9jYXRpb24oRXhlY1N0YXRlKgogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBqc051
bGwoKTsKIAotICAgIFdpbmRvdyogd2luID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhmcmFtZSk7
CisgICAgS0pTOjpXaW5kb3cqIHdpbiA9IEtKUzo6V2luZG93OjpyZXRyaWV2ZVdpbmRvdyhmcmFt
ZSk7CiAgICAgQVNTRVJUKHdpbik7CiAgICAgcmV0dXJuIHdpbi0+bG9jYXRpb24oKTsKIH0KQEAg
LTk0LDcgKzk0LDcgQEAgSlNWYWx1ZSogdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIERvY3VtZW50Kgog
ICAgIC8vIE1ha2Ugc3VyZSB0aGUgZG9jdW1lbnQgaXMga2VwdCBhcm91bmQgYnkgdGhlIHdpbmRv
dyBvYmplY3QsIGFuZCB3b3JrcyByaWdodCB3aXRoIHRoZQogICAgIC8vIGJhY2svZm9yd2FyZCBj
YWNoZS4KICAgICBpZiAoZG9jLT5mcmFtZSgpKQotICAgICAgICBXaW5kb3c6OnJldHJpZXZlV2lu
ZG93KGRvYy0+ZnJhbWUoKSktPnB1dERpcmVjdCgiZG9jdW1lbnQiLCByZXQsIERvbnREZWxldGV8
UmVhZE9ubHkpOworICAgICAgICBLSlM6OldpbmRvdzo6cmV0cmlldmVXaW5kb3coZG9jLT5mcmFt
ZSgpKS0+cHV0RGlyZWN0KCJkb2N1bWVudCIsIHJldCwgRG9udERlbGV0ZXxSZWFkT25seSk7CiAg
ICAgZWxzZSB7CiAgICAgICAgIHNpemVfdCBub2RlQ291bnQgPSAwOwogICAgICAgICBmb3IgKE5v
ZGUqIG4gPSBkb2M7IG47IG4gPSBuLT50cmF2ZXJzZU5leHROb2RlKCkpCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2pzL2tqc19ldmVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvanMva2pzX2V2ZW50cy5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9qcy9ranNfZXZlbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQCB2b2lk
IEpTQWJzdHJhY3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVuCiAgICAgaWYgKCFsaXN0ZW5lcikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgV2luZG93KiB3aW5kb3cgPSB3aW5kb3dPYmooKTsKKyAg
ICBLSlM6OldpbmRvdyogd2luZG93ID0gd2luZG93T2JqKCk7CiAgICAgLy8gTnVsbCBjaGVjayBh
cyBjbGVhcldpbmRvd09iaigpIGNhbiBjbGVhciB0aGlzIGFuZCB3ZSBzdGlsbCBnZXQgY2FsbGVk
IGJhY2sgYnkKICAgICAvLyB4bWxodHRwcmVxdWVzdCBvYmplY3RzLiBTZWUgaHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNzUKICAgICBpZiAoIXdpbmRvdykKQEAgLTk3
LDcgKzk3LDcgQEAgdm9pZCBKU0Fic3RyYWN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbgogICAg
ICAgICBMaXN0IGFyZ3M7CiAgICAgICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgZXZlbnQpKTsK
IAotICAgICAgICAvLyBTZXQgdGhlIGV2ZW50IHdlJ3JlIGhhbmRsaW5nIGluIHRoZSBXaW5kb3cg
b2JqZWN0CisgICAgICAgIC8vIFNldCB0aGUgZXZlbnQgd2UncmUgaGFuZGxpbmcgaW4gdGhlIEtK
Uzo6V2luZG93IG9iamVjdAogICAgICAgICB3aW5kb3ctPnNldEN1cnJlbnRFdmVudChldmVudCk7
CiAgICAgICAgIC8vIC4uLiBhbmQgaW4gdGhlIGludGVycHJldGVyCiAgICAgICAgIGludGVycHJl
dGVyLT5zZXRDdXJyZW50RXZlbnQoZXZlbnQpOwpAQCAtMTUyLDEzICsxNTIsMTMgQEAgYm9vbCBK
U0Fic3RyYWN0RXZlbnRMaXN0ZW5lcjo6aXNIVE1MRXZlbgogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLUpTVW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyOjpKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5l
cihKU09iamVjdCogbGlzdGVuZXIsIFdpbmRvdyogd2luLCBib29sIGh0bWwpCitKU1VucHJvdGVj
dGVkRXZlbnRMaXN0ZW5lcjo6SlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXIoSlNPYmplY3QqIGxp
c3RlbmVyLCBLSlM6OldpbmRvdyogd2luLCBib29sIGh0bWwpCiAgICAgOiBKU0Fic3RyYWN0RXZl
bnRMaXN0ZW5lcihodG1sKQogICAgICwgbV9saXN0ZW5lcihsaXN0ZW5lcikKICAgICAsIG1fd2lu
KHdpbikKIHsKICAgICBpZiAobV9saXN0ZW5lcikgewotICAgICAgICBXaW5kb3c6OlVucHJvdGVj
dGVkTGlzdGVuZXJzTWFwJiBsaXN0ZW5lcnMgPSBodG1sCisgICAgICAgIEtKUzo6V2luZG93OjpV
bnByb3RlY3RlZExpc3RlbmVyc01hcCYgbGlzdGVuZXJzID0gaHRtbAogICAgICAgICAgICAgPyBt
X3dpbi0+anNVbnByb3RlY3RlZEhUTUxFdmVudExpc3RlbmVycygpIDogbV93aW4tPmpzVW5wcm90
ZWN0ZWRFdmVudExpc3RlbmVycygpOwogICAgICAgICBsaXN0ZW5lcnMuc2V0KG1fbGlzdGVuZXIs
IHRoaXMpOwogICAgIH0KQEAgLTE2Nyw3ICsxNjcsNyBAQCBKU1VucHJvdGVjdGVkRXZlbnRMaXN0
ZW5lcjo6SlNVbnByb3RlY3RlCiBKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5lcjo6fkpTVW5wcm90
ZWN0ZWRFdmVudExpc3RlbmVyKCkKIHsKICAgICBpZiAobV9saXN0ZW5lciAmJiBtX3dpbikgewot
ICAgICAgICBXaW5kb3c6OlVucHJvdGVjdGVkTGlzdGVuZXJzTWFwJiBsaXN0ZW5lcnMgPSBpc0hU
TUxFdmVudExpc3RlbmVyKCkKKyAgICAgICAgS0pTOjpXaW5kb3c6OlVucHJvdGVjdGVkTGlzdGVu
ZXJzTWFwJiBsaXN0ZW5lcnMgPSBpc0hUTUxFdmVudExpc3RlbmVyKCkKICAgICAgICAgICAgID8g
bV93aW4tPmpzVW5wcm90ZWN0ZWRIVE1MRXZlbnRMaXN0ZW5lcnMoKSA6IG1fd2luLT5qc1VucHJv
dGVjdGVkRXZlbnRMaXN0ZW5lcnMoKTsKICAgICAgICAgbGlzdGVuZXJzLnJlbW92ZShtX2xpc3Rl
bmVyKTsKICAgICB9CkBAIC0xNzgsNyArMTc4LDcgQEAgSlNPYmplY3QqIEpTVW5wcm90ZWN0ZWRF
dmVudExpc3RlbmVyOjpsaQogICAgIHJldHVybiBtX2xpc3RlbmVyOwogfQogCi1XaW5kb3cqIEpT
VW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyOjp3aW5kb3dPYmooKSBjb25zdAorS0pTOjpXaW5kb3cq
IEpTVW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyOjp3aW5kb3dPYmooKSBjb25zdAogewogICAgIHJl
dHVybiBtX3dpbjsKIH0KQEAgLTIxNCwxMyArMjE0LDEzIEBAIHN0YXRpYyBFdmVudExpc3RlbmVy
Q291bnRlciBldmVudExpc3RlbmUKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1KU0V2ZW50TGlz
dGVuZXI6OkpTRXZlbnRMaXN0ZW5lcihKU09iamVjdCogbGlzdGVuZXIsIFdpbmRvdyogd2luLCBi
b29sIGh0bWwpCitKU0V2ZW50TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5lcihKU09iamVjdCogbGlz
dGVuZXIsIEtKUzo6V2luZG93KiB3aW4sIGJvb2wgaHRtbCkKICAgICA6IEpTQWJzdHJhY3RFdmVu
dExpc3RlbmVyKGh0bWwpCiAgICAgLCBtX2xpc3RlbmVyKGxpc3RlbmVyKQogICAgICwgbV93aW4o
d2luKQogewogICAgIGlmIChtX2xpc3RlbmVyKSB7Ci0gICAgICAgIFdpbmRvdzo6TGlzdGVuZXJz
TWFwJiBsaXN0ZW5lcnMgPSBodG1sCisgICAgICAgIEtKUzo6V2luZG93OjpMaXN0ZW5lcnNNYXAm
IGxpc3RlbmVycyA9IGh0bWwKICAgICAgICAgICAgID8gbV93aW4tPmpzSFRNTEV2ZW50TGlzdGVu
ZXJzKCkgOiBtX3dpbi0+anNFdmVudExpc3RlbmVycygpOwogICAgICAgICBsaXN0ZW5lcnMuc2V0
KG1fbGlzdGVuZXIsIHRoaXMpOwogICAgIH0KQEAgLTIzMiw3ICsyMzIsNyBAQCBKU0V2ZW50TGlz
dGVuZXI6OkpTRXZlbnRMaXN0ZW5lcihKU09iamVjCiBKU0V2ZW50TGlzdGVuZXI6On5KU0V2ZW50
TGlzdGVuZXIoKQogewogICAgIGlmIChtX2xpc3RlbmVyICYmIG1fd2luKSB7Ci0gICAgICAgIFdp
bmRvdzo6TGlzdGVuZXJzTWFwJiBsaXN0ZW5lcnMgPSBpc0hUTUxFdmVudExpc3RlbmVyKCkKKyAg
ICAgICAgS0pTOjpXaW5kb3c6Okxpc3RlbmVyc01hcCYgbGlzdGVuZXJzID0gaXNIVE1MRXZlbnRM
aXN0ZW5lcigpCiAgICAgICAgICAgICA/IG1fd2luLT5qc0hUTUxFdmVudExpc3RlbmVycygpIDog
bV93aW4tPmpzRXZlbnRMaXN0ZW5lcnMoKTsKICAgICAgICAgbGlzdGVuZXJzLnJlbW92ZShtX2xp
c3RlbmVyKTsKICAgICB9CkBAIC0yNDYsNyArMjQ2LDcgQEAgSlNPYmplY3QqIEpTRXZlbnRMaXN0
ZW5lcjo6bGlzdGVuZXJPYmooKQogICAgIHJldHVybiBtX2xpc3RlbmVyOwogfQogCi1XaW5kb3cq
IEpTRXZlbnRMaXN0ZW5lcjo6d2luZG93T2JqKCkgY29uc3QKK0tKUzo6V2luZG93KiBKU0V2ZW50
TGlzdGVuZXI6OndpbmRvd09iaigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fd2luOwogfQpAQCAt
MjU4LDcgKzI1OCw3IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpjbGVhcldpbmRvd09iaigpCiAK
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotSlNMYXp5RXZlbnRMaXN0ZW5lcjo6SlNMYXp5RXZlbnRM
aXN0ZW5lcihjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSwgY29uc3QgU3RyaW5nJiBjb2RlLCBX
aW5kb3cqIHdpbiwgTm9kZSogbm9kZSwgaW50IGxpbmVOdW1iZXIpCitKU0xhenlFdmVudExpc3Rl
bmVyOjpKU0xhenlFdmVudExpc3RlbmVyKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBjb25z
dCBTdHJpbmcmIGNvZGUsIEtKUzo6V2luZG93KiB3aW4sIE5vZGUqIG5vZGUsIGludCBsaW5lTnVt
YmVyKQogICAgIDogSlNFdmVudExpc3RlbmVyKDAsIHdpbiwgdHJ1ZSkKICAgICAsIG1fZnVuY3Rp
b25OYW1lKGZ1bmN0aW9uTmFtZSkKICAgICAsIG1fY29kZShjb2RlKQpAQCAtMzM0LDcgKzMzNCw3
IEBAIHZvaWQgSlNMYXp5RXZlbnRMaXN0ZW5lcjo6cGFyc2VDb2RlKCkgY28KICAgICBtX2NvZGUg
PSBTdHJpbmcoKTsKIAogICAgIGlmIChtX2xpc3RlbmVyKSB7Ci0gICAgICAgIFdpbmRvdzo6TGlz
dGVuZXJzTWFwJiBsaXN0ZW5lcnMgPSBpc0hUTUxFdmVudExpc3RlbmVyKCkKKyAgICAgICAgS0pT
OjpXaW5kb3c6Okxpc3RlbmVyc01hcCYgbGlzdGVuZXJzID0gaXNIVE1MRXZlbnRMaXN0ZW5lcigp
CiAgICAgICAgICAgICA/IHdpbmRvd09iaigpLT5qc0hUTUxFdmVudExpc3RlbmVycygpIDogd2lu
ZG93T2JqKCktPmpzRXZlbnRMaXN0ZW5lcnMoKTsKICAgICAgICAgbGlzdGVuZXJzLnNldChtX2xp
c3RlbmVyLCBjb25zdF9jYXN0PEpTTGF6eUV2ZW50TGlzdGVuZXIqPih0aGlzKSk7CiAgICAgfQpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAJKHJl
dmlzaW9uIDI2NzcwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3Rv
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgSlNWYWx1ZSogSlNIVE1MRG9j
dW1lbnQ6Om5hbWVHZXR0ZXIoRXhlYwogCiAgICAgICAgIEZyYW1lKiBmcmFtZTsKICAgICAgICAg
aWYgKG5vZGUtPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSAmJiAoZnJhbWUgPSBzdGF0aWNfY2FzdDxI
VE1MSUZyYW1lRWxlbWVudCo+KG5vZGUpLT5jb250ZW50RnJhbWUoKSkpCi0gICAgICAgICAgICBy
ZXR1cm4gV2luZG93OjpyZXRyaWV2ZShmcmFtZSk7CisgICAgICAgICAgICByZXR1cm4gS0pTOjpX
aW5kb3c6OnJldHJpZXZlKGZyYW1lKTsKIAogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBub2Rl
KTsKICAgICB9IApAQCAtOTcsNyArOTcsNyBAQCBKU1ZhbHVlKiBKU0hUTUxEb2N1bWVudDo6b3Bl
bihFeGVjU3RhdGUqCiAgICAgaWYgKGFyZ3Muc2l6ZSgpID4gMikgewogICAgICAgICBGcmFtZSog
ZnJhbWUgPSBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihpbXBsKCkpLT5mcmFtZSgpOwogICAg
ICAgICBpZiAoZnJhbWUpIHsKLSAgICAgICAgICAgIFdpbmRvdyogd2luZG93ID0gV2luZG93Ojpy
ZXRyaWV2ZVdpbmRvdyhmcmFtZSk7CisgICAgICAgICAgICBLSlM6OldpbmRvdyogd2luZG93ID0g
S0pTOjpXaW5kb3c6OnJldHJpZXZlV2luZG93KGZyYW1lKTsKICAgICAgICAgICAgIGlmICh3aW5k
b3cpIHsKICAgICAgICAgICAgICAgICBKU09iamVjdCogZnVuY3Rpb25PYmplY3QgPSB3aW5kb3ct
PmdldChleGVjLCAib3BlbiIpLT5nZXRPYmplY3QoKTsKICAgICAgICAgICAgICAgICBpZiAoIWZ1
bmN0aW9uT2JqZWN0IHx8ICFmdW5jdGlvbk9iamVjdC0+aW1wbGVtZW50c0NhbGwoKSkKSW5kZXg6
IFdlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2hp
c3RvcnkvQ2FjaGVkUGFnZS5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2ViQ29yZS9oaXN0b3J5
L0NhY2hlZFBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIENhY2hlZFBh
Z2U6OkNhY2hlZFBhZ2UoUGFnZSogcGFnZSkKICAgICAKICAgICBGcmFtZSogbWFpbkZyYW1lID0g
cGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgS0pTUHJveHkqIHByb3h5ID0gbWFpbkZyYW1lLT5zY3Jp
cHRQcm94eSgpOwotICAgIFdpbmRvdyogd2luZG93ID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyht
YWluRnJhbWUpOworICAgIEtKUzo6V2luZG93KiB3aW5kb3cgPSBLSlM6OldpbmRvdzo6cmV0cmll
dmVXaW5kb3cobWFpbkZyYW1lKTsKIAogICAgIG1haW5GcmFtZS0+Y2xlYXJUaW1lcnMoKTsKIApA
QCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgQ2FjaGVkUGFnZTo6cmVzdG9yZShQYWdlKiBwYWdlKQog
CiAgICAgRnJhbWUqIG1haW5GcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwogICAgIEtKU1Byb3h5
KiBwcm94eSA9IG1haW5GcmFtZS0+c2NyaXB0UHJveHkoKTsKLSAgICBXaW5kb3cqIHdpbmRvdyA9
IFdpbmRvdzo6cmV0cmlldmVXaW5kb3cobWFpbkZyYW1lKTsKKyAgICBLSlM6OldpbmRvdyogd2lu
ZG93ID0gS0pTOjpXaW5kb3c6OnJldHJpZXZlV2luZG93KG1haW5GcmFtZSk7CiAKICAgICBKU0xv
Y2sgbG9jazsKIApJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDI2NzcwKQorKysgV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2Myw3ICszNjMsNyBAQCBQYWdlR3JvdXBM
b2FkRGVmZXJyZXI6OlBhZ2VHcm91cExvYWREZWZlCiAKICNpZiAhUExBVEZPUk0oTUFDKQogICAg
ICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBvdGhlclBhZ2UtPm1haW5GcmFtZSgpOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewotICAgICAgICAgICAg
ICAgIGlmIChXaW5kb3cqIHdpbmRvdyA9IFdpbmRvdzo6cmV0cmlldmVXaW5kb3coZnJhbWUpKSB7
CisgICAgICAgICAgICAgICAgaWYgKEtKUzo6V2luZG93KiB3aW5kb3cgPSBLSlM6OldpbmRvdzo6
cmV0cmlldmVXaW5kb3coZnJhbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgIFBhdXNlZFRpbWVv
dXRzKiB0aW1lb3V0cyA9IHdpbmRvdy0+cGF1c2VUaW1lb3V0cygpOwogCiAgICAgICAgICAgICAg
ICAgICAgIG1fcGF1c2VkVGltZW91dHMuYXBwZW5kKG1ha2VfcGFpcihmcmFtZSwgdGltZW91dHMp
KTsKQEAgLTM5MCw3ICszOTAsNyBAQCBQYWdlR3JvdXBMb2FkRGVmZXJyZXI6On5QYWdlR3JvdXBM
b2FkRGVmCiAgICAgY291bnQgPSBtX3BhdXNlZFRpbWVvdXRzLnNpemUoKTsKIAogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICBXaW5kb3cqIHdpbmRvdyA9
IFdpbmRvdzo6cmV0cmlldmVXaW5kb3cobV9wYXVzZWRUaW1lb3V0c1tpXS5maXJzdC5nZXQoKSk7
CisgICAgICAgIEtKUzo6V2luZG93KiB3aW5kb3cgPSBLSlM6OldpbmRvdzo6cmV0cmlldmVXaW5k
b3cobV9wYXVzZWRUaW1lb3V0c1tpXS5maXJzdC5nZXQoKSk7CiAgICAgICAgIGlmICh3aW5kb3cp
CiAgICAgICAgICAgICB3aW5kb3ctPnJlc3VtZVRpbWVvdXRzKG1fcGF1c2VkVGltZW91dHNbaV0u
c2Vjb25kKTsKICAgICAgICAgZGVsZXRlIG1fcGF1c2VkVGltZW91dHNbaV0uc2Vjb25kOwpJbmRl
eDogV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCShyZXZpc2lvbiAyNjc3MCkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTg0LDcgKzg0LDYgQEAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIHVzaW5n
IEtKUzo6SlNMb2NrOwotdXNpbmcgS0pTOjpXaW5kb3c7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtMTk0LDcgKzE5Myw3IEBAIEZyYW1lOjp+RnJhbWUoKQogI2VuZGlmCiAKICAgICBpZiAo
ZC0+bV9qc2NyaXB0ICYmIGQtPm1fanNjcmlwdC0+aGF2ZUludGVycHJldGVyKCkpCi0gICAgICAg
IHN0YXRpY19jYXN0PFdpbmRvdyo+KGQtPm1fanNjcmlwdC0+aW50ZXJwcmV0ZXIoKS0+Z2xvYmFs
T2JqZWN0KCkpLT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8S0pTOjpX
aW5kb3cqPihkLT5tX2pzY3JpcHQtPmludGVycHJldGVyKCktPmdsb2JhbE9iamVjdCgpKS0+ZGlz
Y29ubmVjdEZyYW1lKCk7CiAKICAgICBkaXNjb25uZWN0T3duZXJFbGVtZW50KCk7CiAgICAgCkBA
IC0xNzY1LDcgKzE3NjQsNyBAQCB2b2lkIEZyYW1lOjpwYWdlRGVzdHJveWVkKCkKIAogICAgIC8v
IFRoaXMgd2lsbCBzdG9wIGFueSBKUyB0aW1lcnMKICAgICBpZiAoZC0+bV9qc2NyaXB0ICYmIGQt
Pm1fanNjcmlwdC0+aGF2ZUludGVycHJldGVyKCkpCi0gICAgICAgIGlmIChXaW5kb3cqIHcgPSBX
aW5kb3c6OnJldHJpZXZlV2luZG93KHRoaXMpKQorICAgICAgICBpZiAoS0pTOjpXaW5kb3cqIHcg
PSBLSlM6OldpbmRvdzo6cmV0cmlldmVXaW5kb3codGhpcykpCiAgICAgICAgICAgICB3LT5kaXNj
b25uZWN0RnJhbWUoKTsKIAogICAgIGQtPm1fcGFnZSA9IDA7CkluZGV4OiBXZWJDb3JlL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjY3NzApCisr
KyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDA3
LTEwLTE5ICBSb2RuZXkgRGF3ZXMgIDxkb2JleUB3YXlvZnRoZW1vbmtleS5jb20+CisKKwlSZXZp
ZXdkIGJ5IERhcmluLgorCisJaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU1NjMKKwlGaXggY29uZmxpY3Qgd2l0aCBYMTEgV2luZG93IHR5cGUgaW4gV2ViQ29yZQorCisJ
KiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwOgorCSogV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHA6CisJKiBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHA6CisJKiBXZWJDb3JlL2JpbmRpbmdz
L2pzL2tqc19kb20uY3BwOgorCSogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfZXZlbnRzLmNwcDoK
KwkqIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3Byb3h5LmNwcDoKKwkqIFdlYkNvcmUvaGlzdG9y
eS9DYWNoZWRQYWdlLmNwcDoKKwkqIFdlYkNvcmUvcGFnZS9DaHJvbWUuY3BwOgorCSogV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcDoKKwogMjAwNy0xMC0xOSAgU2ltb24gSGF1c21hbm4gIDxoYXVzbWFu
bkBrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IExhcnMuCg==
</data>
<flag name="review"
          id="7069"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>