<?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>21282</bug_id>
          
          <creation_ts>2008-10-01 13:00:29 -0700</creation_ts>
          <short_desc>Make contentsToScreen and screenToContents cross-platform</short_desc>
          <delta_ts>2008-10-01 13:34:56 -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>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>21083</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>93581</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-10-01 13:00:29 -0700</bug_when>
    <thetext>Make contentsToScreen and screenToContents cross-platform</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93583</commentid>
    <comment_count>1</comment_count>
      <attachid>23987</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-10-01 13:03:42 -0700</bug_when>
    <thetext>Created attachment 23987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93584</commentid>
    <comment_count>2</comment_count>
      <attachid>23988</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-10-01 13:08:17 -0700</bug_when>
    <thetext>Created attachment 23988
Patch #2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93593</commentid>
    <comment_count>3</comment_count>
      <attachid>23988</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-10-01 13:26:49 -0700</bug_when>
    <thetext>Comment on attachment 23988
Patch #2

+++ WebKit/gtk/WebCoreSupport/ChromeClientGtk.h	(working copy)
@@ -88,6 +88,8 @@ namespace WebKit {
         virtual void updateBackingStore();
 
         virtual void repaint(const WebCore::IntRect&amp;, bool contentChanged, bool immediate = false);
+        virtual IntPoint screenToWindow(const IntPoint&amp; p) const;
+        virtual IntRect windowToScreen(const IntRect&amp; r) const;

Looks like you&apos;re missing some &quot;WebCore::&quot; on the types. The parameter names aren&apos;t needed here, either.

+++ WebKit/qt/WebCoreSupport/ChromeClientQt.h	(working copy)
@@ -104,7 +104,9 @@ namespace WebCore {
         virtual void updateBackingStore();
 
         virtual void repaint(const IntRect&amp;, bool contentChanged, bool immediate = false);
-
+        virtual IntPoint screenToWindow(const IntPoint&amp; p) const;
+        virtual IntRect windowToScreen(const IntRect&amp; r) const;

Parameter names can be omitted.

+++ WebKit/wx/WebKitSupport/ChromeClientWx.h	(working copy)
@@ -99,6 +99,8 @@ public:
     virtual void updateBackingStore();
     
     virtual void repaint(const IntRect&amp;, bool contentChanged, bool immediate = false);
+    virtual IntPoint screenToWindow(const IntPoint&amp; p) const;
+    virtual IntRect windowToScreen(const IntRect&amp; r) const;

Ditto.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93596</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-10-01 13:34:56 -0700</bug_when>
    <thetext>Fixed in r37153.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23987</attachid>
            <date>2008-10-01 13:03:42 -0700</date>
            <delta_ts>2008-10-01 13:08:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20722</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzE1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDgtMTAtMDEgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI4
MgorICAgICAgICAKKyAgICAgICAgTWFrZSBjb250ZW50c1RvU2NyZWVuL3NjcmVlblRvQ29udGVu
dHMgY3Jvc3MtcGxhdGZvcm0uICBPbmx5IGltcGxlbWVudGVkIGJ5IE1hYy9XaW4gcmlnaHQgbm93
LgorICAgICAgICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9t
ZUNsaWVudDo6c2NyZWVuVG9XaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVD
bGllbnQ6OndpbmRvd1RvU2NyZWVuKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OnNjcmVlblRvV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZTo6d2luZG93VG9TY3JlZW4pOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Ib3N0V2luZG93
Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3Ojpjb250ZW50c1RvU2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OnNjcmVlblRvQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
cGxhdGZvcm1Db250ZW50c1RvU2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6
OnBsYXRmb3JtU2NyZWVuVG9Db250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmll
dy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1Db250ZW50c1RvU2NyZWVuKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtU2NyZWVuVG9Db250ZW50cyk6CisgICAgICAg
ICogcGxhdGZvcm0vd2luL1Njcm9sbFZpZXdXaW4uY3BwOgorCiAyMDA4LTEwLTAxICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHNldEZyYW1lUmVjdCBvbiBT
Y3JvbGxWaWV3IGNyb3NzLXBsYXRmb3JtLgpJbmRleDogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlz
aW9uIDM3MTQ4KQorKysgV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTExNCw2ICsxMTQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJh
Y2tpbmdTdG9yZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVj
dCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UpIHsgfQorICAg
IHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50UG9pbnQmIHApIGNvbnN0
IHsgcmV0dXJuIHA7IH0KKyAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3Qg
SW50UmVjdCYgcikgY29uc3QgeyByZXR1cm4gcjsgfQogCiAgICAgdmlydHVhbCB2b2lkIG1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmll
ckZsYWdzKSB7IH0KIApJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDM3MTQ4KQorKysgV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDE2IEBAIHZvaWQgQ2hy
b21lOjpyZXBhaW50KGNvbnN0IEludFJlY3QmIHdpbmQKICAgICBtX2NsaWVudC0+cmVwYWludCh3
aW5kb3dSZWN0LCBjb250ZW50Q2hhbmdlZCwgaW1tZWRpYXRlKTsKIH0KIAorSW50UG9pbnQgQ2hy
b21lOjpzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fY2xpZW50LT5zY3JlZW5Ub1dpbmRvdyhwb2ludCk7Cit9CisKK0ludFJlY3QgQ2hy
b21lOjp3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAoreworICAgIHJl
dHVybiBtX2NsaWVudC0+d2luZG93VG9TY3JlZW4ocmVjdCk7Cit9CisKIHZvaWQgQ2hyb21lOjpz
ZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkgY29uc3QKIHsKICAgICBtX2NsaWVu
dC0+c2V0V2luZG93UmVjdChyZWN0KTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9DaHJvbWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ2hyb21lLmgJKHJldmlzaW9uIDM3MTQ4KQorKysgV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBIb3N0V2luZG93IG1ldGhvZHMuCiAgICAgICAg
IHZpcnR1YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2Vk
LCBib29sIGltbWVkaWF0ZSA9IGZhbHNlKTsKLQorICAgICAgICB2aXJ0dWFsIEludFBvaW50IHNj
cmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgSW50
UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7CisgICAgCiAgICAgICAg
IHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKICAgICAgICAgRmxv
YXRSZWN0IHdpbmRvd1JlY3QoKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNp
b24gMzcxNDgpCisrKyBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTExNiw3ICsxMTYsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlKCkgPSAwOwogICAgICAgICAvLyBFbmQgZGVwcmVjYXRl
ZCBtZXRob2RzLgogCisgICAgICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBJbnRSZWN0JiwgYm9vbCBjb250ZW50Q2hh
bmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSkgPSAwOworICAgICAgICB2aXJ0dWFsIEludFBv
aW50IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3QgPSAwOworICAgICAgICB2
aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0ID0gMDsK
KyAgICAgICAgLy8gRW5kIG1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0Jiwg
dW5zaWduZWQgbW9kaWZpZXJGbGFncykgPSAwOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0hv
c3RXaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAko
cmV2aXNpb24gMzcxNDgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IEludFBvaW50OwogY2xhc3MgSW50UmVjdDsKIAogY2xhc3MgSG9zdFdpbmRvdyA6IE5vbmNvcHlh
YmxlIHsKQEAgLTQ1LDYgKzQ2LDEwIEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSBwYWludCBtZXRo
b2QganVzdCBjYXVzZXMgYSBzeW5jaHJvbm91cyB1cGRhdGUgb2YgdGhlIHdpbmRvdyB0byBoYXBw
ZW4gZm9yIHBsYXRmb3JtcyB0aGF0IG5lZWQgaXQgKFdpbmRvd3MpLgogICAgIHZvaWQgcGFpbnQo
KSB7IHJlcGFpbnQoSW50UmVjdCgpLCBmYWxzZSwgdHJ1ZSk7IH0KKyAgICAKKyAgICAvLyBNZXRo
b2RzIGZvciBkb2luZyBjb29yZGluYXRlIGNvbnZlcnNpb25zIHRvIGFuZCBmcm9tIHNjcmVlbiBj
b29yZGluYXRlcy4KKyAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IElu
dFBvaW50JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dUb1NjcmVlbihj
b25zdCBJbnRSZWN0JikgY29uc3QgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCShyZXZpc2lvbiAzNzE1MCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMiw2ICsyMjIsMjAg
QEAgSW50UmVjdCBTY3JvbGxWaWV3Ojpjb250ZW50c1RvV2luZG93KGNvbgogICAgIHJldHVybiBj
b252ZXJ0VG9Db250YWluaW5nV2luZG93KHZpZXdSZWN0KTsKIH0KIAorSW50UmVjdCBTY3JvbGxW
aWV3Ojpjb250ZW50c1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0Cit7CisgICAg
aWYgKHBsYXRmb3JtV2lkZ2V0KCkpCisgICAgICAgIHJldHVybiBwbGF0Zm9ybUNvbnRlbnRzVG9T
Y3JlZW4ocmVjdCk7CisgICAgcmV0dXJuIGhvc3RXaW5kb3coKS0+d2luZG93VG9TY3JlZW4oY29u
dGVudHNUb1dpbmRvdyhyZWN0KSk7Cit9CisKK0ludFBvaW50IFNjcm9sbFZpZXc6OnNjcmVlblRv
Q29udGVudHMoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIGlmIChwbGF0Zm9y
bVdpZGdldCgpKQorICAgICAgICByZXR1cm4gcGxhdGZvcm1TY3JlZW5Ub0NvbnRlbnRzKHBvaW50
KTsKKyAgICByZXR1cm4gd2luZG93VG9Db250ZW50cyhob3N0V2luZG93KCktPnNjcmVlblRvV2lu
ZG93KHBvaW50KSk7Cit9CisKIGJvb2wgU2Nyb2xsVmlldzo6Y29udGFpbnNTY3JvbGxiYXJzQXZv
aWRpbmdSZXNpemVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fc2Nyb2xsYmFyc0F2b2lkaW5n
UmVzaXplcjsKQEAgLTQ4MCw2ICs0OTQsMTQgQEAgdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNl
dENvbnRlbnRzU2l6ZQogewogfQogCitJbnRSZWN0IFNjcm9sbFZpZXc6OnBsYXRmb3JtQ29udGVu
dHNUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3QKK3sKK30KKworSW50UG9pbnQgU2Nyb2xs
Vmlldzo6cGxhdGZvcm1TY3JlZW5Ub0NvbnRlbnRzKGNvbnN0IEludFBvaW50JikgY29uc3QKK3sK
K30KKwogdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IElu
dFBvaW50JikKIHsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCShyZXZpc2lvbiAzNzE1MSkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzks
NiArMTM5LDEwIEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IHdpbmRvd1RvQ29udGVudHMoY29uc3Qg
SW50UmVjdCYpIGNvbnN0OwogICAgIEludFJlY3QgY29udGVudHNUb1dpbmRvdyhjb25zdCBJbnRS
ZWN0JikgY29uc3Q7CiAKKyAgICAvLyBNZXRob2QgZm9yIGNvbnZlcnRpbmcgdG8gYW5kIGZyb20g
c2NyZWVuIGNvb3JkaW5hdGVzLgorICAgIEludFJlY3QgY29udGVudHNUb1NjcmVlbihjb25zdCBJ
bnRSZWN0JikgY29uc3Q7CisgICAgSW50UG9pbnQgc2NyZWVuVG9Db250ZW50cyhjb25zdCBJbnRQ
b2ludCYpIGNvbnN0OworCiAgICAgLy8gVGhlIHB1cnBvc2Ugb2YgdGhpcyBtZXRob2QgaXMgdG8g
YW5zd2VyIHdoZXRoZXIgb3Igbm90IHRoZSBzY3JvbGwgdmlldyBpcyBjdXJyZW50bHkgdmlzaWJs
ZS4gIEFuaW1hdGlvbnMgYW5kIHBhaW50aW5nIHVwZGF0ZXMgY2FuIGJlIHN1c3BlbmRlZCBpZgog
ICAgIC8vIHdlIGtub3cgdGhhdCB3ZSBhcmUgZWl0aGVyIG5vdCBpbiBhIHdpbmRvdyByaWdodCBu
b3cgb3IgaWYgdGhhdCB3aW5kb3cgaXMgbm90IHZpc2libGUuCiAgICAgYm9vbCBpc09mZnNjcmVl
bigpIGNvbnN0OwpAQCAtMTgyLDExICsxODYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBu
ZXdQb2ludDsKICAgICB9CiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgSW50UmVjdCBj
b250ZW50c1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdDsKLSAgICBJbnRQb2ludCBzY3Jl
ZW5Ub0NvbnRlbnRzKGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0jZW5kaWYKLQorICAgIC8vIFdp
ZGdldCBvdmVycmlkZS4gIEhhbmRsZXMgcGFpbnRpbmcgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSB2
aWV3IGFzIHdlbGwgYXMgdGhlIHNjcm9sbGJhcnMuCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKTsKIAogcHJvdGVjdGVkOgpAQCAtMjIzLDYg
KzIyMyw4IEBAIHByaXZhdGU6CiAgICAgSW50UmVjdCBwbGF0Zm9ybVZpc2libGVDb250ZW50UmVj
dChib29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdDsKICAgICBJbnRTaXplIHBsYXRmb3JtQ29u
dGVudHNTaXplKCkgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9ybVNldENvbnRlbnRzU2l6ZSgpOwor
ICAgIEludFJlY3QgcGxhdGZvcm1Db250ZW50c1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25z
dDsKKyAgICBJbnRQb2ludCBwbGF0Zm9ybVNjcmVlblRvQ29udGVudHMoY29uc3QgSW50UG9pbnQm
KSBjb25zdDsKICAgICB2b2lkIHBsYXRmb3JtU2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9p
bnQmKTsKICAgICBib29sIHBsYXRmb3JtU2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3Jh
bnVsYXJpdHkpOwogICAgIHZvaWQgcGxhdGZvcm1TZXRTY3JvbGxiYXJzU3VwcHJlc3NlZChib29s
IHJlcGFpbnRPblVuc3VwcHJlc3MpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
Vmlld01hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3
TWFjLm1tCShyZXZpc2lvbiAzNzE0OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZp
ZXdNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE4NCw3ICsxODQsNyBAQCB2b2lkIFNjcm9sbFZp
ZXc6OnBsYXRmb3JtUmVwYWludENvbnRlbnRSCiAKIC8vICJDb250YWluaW5nIFdpbmRvdyIgbWVh
bnMgdGhlIE5TV2luZG93J3MgY29vcmQgc3lzdGVtLCB3aGljaCBpcyBvcmlnaW4gbG93ZXIgbGVm
dAogCi1JbnRSZWN0IFNjcm9sbFZpZXc6OmNvbnRlbnRzVG9TY3JlZW4oY29uc3QgSW50UmVjdCYg
cmVjdCkgY29uc3QKK0ludFJlY3QgU2Nyb2xsVmlldzo6cGxhdGZvcm1Db250ZW50c1RvU2NyZWVu
KGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwogICAgIGlmIChOU1ZpZXcqIGRvY3VtZW50VmlldyA9IHRoaXMtPmRvY3VtZW50Vmll
dygpKSB7CkBAIC0xOTcsNyArMTk3LDcgQEAgSW50UmVjdCBTY3JvbGxWaWV3Ojpjb250ZW50c1Rv
U2NyZWVuKGNvbgogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAKLUludFBvaW50IFNjcm9sbFZp
ZXc6OnNjcmVlblRvQ29udGVudHMoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAorSW50UG9p
bnQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TY3JlZW5Ub0NvbnRlbnRzKGNvbnN0IEludFBvaW50JiBw
b2ludCkgY29uc3QKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgaWYg
KE5TVmlldyogZG9jdW1lbnRWaWV3ID0gdGhpcy0+ZG9jdW1lbnRWaWV3KCkpIHsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vd2luL1Njcm9sbFZpZXdXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vd2luL1Njcm9sbFZpZXdXaW4uY3BwCShyZXZpc2lvbiAzNzE1MCkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vd2luL1Njcm9sbFZpZXdXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MzMsMjYgKzQzMyw0IEBAIGJvb2wgU2Nyb2xsVmlldzo6aXNPZmZzY3JlZW4oKSBjb25zdAogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotSW50UmVjdCBTY3JvbGxWaWV3Ojpjb250ZW50c1RvU2NyZWVu
KGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0Ci17Ci0gICAgSW50UmVjdCByZXN1bHQoY29udGVu
dHNUb1dpbmRvdyhyZWN0KSk7Ci0gICAgUE9JTlQgdG9wTGVmdCA9IHswLCAwfTsKLQotICAgIC8v
IEZpbmQgdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGUgV2lkZ2V0J3MgY29udGFpbmluZyB3aW5k
b3cgaW4gc2NyZWVuIGNvb3JkcywKLSAgICAvLyBhbmQgYWRqdXN0IHRoZSByZXN1bHQgcmVjdCdz
IHBvc2l0aW9uIGJ5IHRoaXMgYW1vdW50LgotICAgIDo6Q2xpZW50VG9TY3JlZW4oY29udGFpbmlu
Z1dpbmRvdygpLCAmdG9wTGVmdCk7Ci0gICAgcmVzdWx0Lm1vdmUodG9wTGVmdC54LCB0b3BMZWZ0
LnkpOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotSW50UG9pbnQgU2Nyb2xsVmlldzo6c2Ny
ZWVuVG9Db250ZW50cyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0Ci17Ci0gICAgUE9JTlQg
cmVzdWx0ID0gcG9pbnQ7Ci0KLSAgICA6OlNjcmVlblRvQ2xpZW50KGNvbnRhaW5pbmdXaW5kb3co
KSwgJnJlc3VsdCk7Ci0KLSAgICByZXR1cm4gd2luZG93VG9Db250ZW50cyhyZXN1bHQpOwotfQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gMzcxNTEpCisrKyBXZWJL
aXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA4LTEw
LTAxICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyODIKKyAgICAgICAgCisgICAgICAgIE1h
a2UgY29udGVudHNUb1NjcmVlbi9zY3JlZW5Ub0NvbnRlbnRzIGNyb3NzLXBsYXRmb3JtLiAgT25s
eSBpbXBsZW1lbnRlZCBieSBNYWMvV2luIHJpZ2h0IG5vdy4KKyAgICAgICAgCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojp3aW5kb3dU
b1NjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2NyZWVuVG9XaW5kb3cp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorCiAyMDA4LTA5
LTMwICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjUwCkluZGV4OiBXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCShyZXZpc2lvbiAzNzE0OCkKKysrIFdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjc2LDYgKzI3NiwxOCBAQCB2b2lkIENocm9tZUNsaWVudDo6cmVwYWludChjb25zdCBX
ZWJDb3JlCiAgICAgfQogfQogCitJbnRSZWN0IENocm9tZUNsaWVudDo6d2luZG93VG9TY3JlZW4o
Y29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiByZWN0OworfQorCitJbnRQb2ludCBDaHJvbWVDbGllbnQ6OnNjcmVlblRvV2luZG93
KGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBwb2ludDsKK30KKwogdm9pZCBDaHJvbWVDbGllbnQ6OmFkZFRvRGlydHlSZWdp
b24oY29uc3QgSW50UmVjdCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5kZXg6IFdlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAkocmV2aXNpb24gMzcxNDgp
CisrKyBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCSh3b3JraW5n
IGNvcHkpCkBAIC04OCw2ICs4OCw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlKCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHJl
cGFpbnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wg
aW1tZWRpYXRlID0gZmFsc2UpOworICAgICAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRvV2lu
ZG93KGNvbnN0IEludFBvaW50JiBwKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdp
bmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHIpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAzNzE1MSkKKysr
IFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MDgtMTAtMDEgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI4MgorICAgICAgICAKKyAgICAg
ICAgTWFrZSBjb250ZW50c1RvU2NyZWVuL3NjcmVlblRvQ29udGVudHMgY3Jvc3MtcGxhdGZvcm0u
ICBPbmx5IGltcGxlbWVudGVkIGJ5IE1hYy9XaW4gcmlnaHQgbm93LgorICAgICAgICAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJlcGFpbnQpOgorICAgICAgICAo
V2ViQ2hyb21lQ2xpZW50OjpzY3JlZW5Ub1dpbmRvdyk6CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OndpbmRvd1RvU2NyZWVuKToKKwogMjAwOC0wOS0zMCAgIERhdmUgSHlhdHQgIDxoeWF0dEBh
cHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMjY5CkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgJKHJldmlzaW9uIDM3MTQ4KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiArOTMsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIAogICAgIHZpcnR1YWwg
dm9pZCByZXBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2Vk
LCBib29sIGltbWVkaWF0ZSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50
IHNjcmVlblRvV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7CisgICAgdmly
dHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFdl
YkNvcmU6OlN0cmluZyYpOwogCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbQkocmV2aXNpb24gMzcxNDgpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDAzLDEwICs0MDMs
MjIgQEAgSW50UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1Jlc2l6ZXJSZQogICAgIHJldHVy
biBlbmNsb3NpbmdJbnRSZWN0KFtbbV93ZWJWaWV3IHdpbmRvd10gX2dyb3dCb3hSZWN0XSk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBib29sLCBib29sKQorLy8gSG9zdCB3aW5kb3cgbWV0aG9kcyBhcmUgcmVhbGx5IG9ubHkgbmVl
ZGVkIG9uY2Ugd2UgaGF2ZSBhIHZpZXdsZXNzIE1hYyBXZWJraXQuCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6cmVwYWludChjb25zdCBJbnRSZWN0JiwgYm9vbCwgYm9vbCkKIHsKIH0KIAorSW50UG9p
bnQgV2ViQ2hyb21lQ2xpZW50OjpzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYgcCkgY29u
c3QKK3sKKyAgICByZXR1cm4gcDsKK30KKworSW50UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRv
d1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHI7Cit9Cisv
LyBFbmQgaG9zdCB3aW5kb3cgbWV0aG9kcy4KKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZFRv
RGlydHlSZWdpb24oY29uc3QgSW50UmVjdCYpCiB7CiB9CkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3MTUxKQor
KysgV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisy
MDA4LTEwLTAxICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKyAgICAgICAgCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI4MgorICAgICAg
ICAKKyAgICAgICAgTWFrZSBjb250ZW50c1RvU2NyZWVuL3NjcmVlblRvQ29udGVudHMgY3Jvc3Mt
cGxhdGZvcm0uICBPbmx5IGltcGxlbWVudGVkIGJ5IE1hYy9XaW4gcmlnaHQgbm93LgorICAgICAg
ICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRRdDo6d2luZG93VG9TY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
UXQ6OnNjcmVlblRvV2luZG93KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5oOgorCiAyMDA4LTA5LTMwICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAg
ICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjUwCkluZGV4
OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAJKHJldmlzaW9u
IDM3MTQ4KQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzE0LDYgKzMxNCwxOCBAQCB2b2lkIENocm9tZUNsaWVudFF0Ojpy
ZXBhaW50KGNvbnN0IFdlYkNvCiAgICAgLy8gaXMgc2V0LgogfQogCitJbnRSZWN0IENocm9tZUNs
aWVudFF0Ojp3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK0ludFBvaW50IENocm9t
ZUNsaWVudFF0OjpzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gcG9pbnQ7Cit9CisKIHZvaWQgQ2hy
b21lQ2xpZW50UXQ6OmFkZFRvRGlydHlSZWdpb24oY29uc3QgSW50UmVjdCYgcikKIHsKICAgICBR
V2lkZ2V0KiB2aWV3ID0gbV93ZWJQYWdlLT52aWV3KCk7CkluZGV4OiBXZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkocmV2aXNpb24gMzcxNDgpCisrKyBXZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcg
KzEwNCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUJhY2tpbmdTdG9yZSgpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KGNvbnN0IElu
dFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlKTsKLQor
ICAgICAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JiBw
KSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IElu
dFJlY3QmIHIpIGNvbnN0OworICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3Mp
OwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYpOwpJbmRl
eDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDM3MTUxKQorKysgV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNiBAQAorMjAwOC0xMC0wMSAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBs
ZS5jb20+CisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjEyODIKKyAgICAgICAgCisgICAgICAgIE1ha2UgY29udGVudHNUb1NjcmVlbi9z
Y3JlZW5Ub0NvbnRlbnRzIGNyb3NzLXBsYXRmb3JtLiAgT25seSBpbXBsZW1lbnRlZCBieSBNYWMv
V2luIHJpZ2h0IG5vdy4KKyAgICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudDo6d2luZG93VG9TY3JlZW4pOgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjpzY3JlZW5Ub1dpbmRvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lmg6CisKIDIwMDgtMDktMzAgICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUu
Y29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTI2OQpJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAkocmV2aXNpb24gMzcxNDgpCisrKyBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMyw2ICs0MjMsMzUgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJlcGFpbnQoY29uc3QgSW50UgogICAgIG1fd2ViVmlldy0+cmVwYWlu
dCh3aW5kb3dSZWN0LCBjb250ZW50Q2hhbmdlZCwgaW1tZWRpYXRlKTsKIH0KIAorSW50UmVjdCBX
ZWJDaHJvbWVDbGllbnQ6OndpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0
Cit7CisgICAgSFdORCB2aWV3V2luZG93OworICAgIGlmIChGQUlMRUQobV93ZWJWaWV3LT52aWV3
V2luZG93KHJlaW50ZXJwcmV0X2Nhc3Q8T0xFX0hBTkRMRSo+KCZ2aWV3V2luZG93KSkpKQorICAg
ICAgICByZXR1cm4gcmVjdDsKKworICAgIC8vIEZpbmQgdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0
aGUgV2lkZ2V0J3MgY29udGFpbmluZyB3aW5kb3cgaW4gc2NyZWVuIGNvb3JkcywKKyAgICAvLyBh
bmQgYWRqdXN0IHRoZSByZXN1bHQgcmVjdCdzIHBvc2l0aW9uIGJ5IHRoaXMgYW1vdW50LgorICAg
IFBPSU5UIHRvcExlZnQgPSB7MCwgMH07CisgICAgSW50UmVjdCByZXN1bHQgPSByZWN0OworICAg
IDo6Q2xpZW50VG9TY3JlZW4odmlld1dpbmRvdywgJnRvcExlZnQpOworICAgIHJlc3VsdC5tb3Zl
KHRvcExlZnQueCwgdG9wTGVmdC55KTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0ludFBv
aW50IFdlYkNocm9tZUNsaWVudDo6c2NyZWVuVG9XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50
KSBjb25zdAoreworICAgIFBPSU5UIHJlc3VsdCA9IHBvaW50OworCisgICAgSFdORCB2aWV3V2lu
ZG93OworICAgIGlmIChGQUlMRUQod2ViVmlldy0+dmlld1dpbmRvdyhyZWludGVycHJldF9jYXN0
PE9MRV9IQU5ETEUqPigmdmlld1dpbmRvdykpKSkKKyAgICAgICAgcmV0dXJuIHBvaW50OworCisg
ICAgOjpTY3JlZW5Ub0NsaWVudCh2aWV3V2luZG93LCAmcmVzdWx0KTsKKworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRUb0RpcnR5UmVnaW9uKGNvbnN0
IEludFJlY3QmIGRpcnR5UmVjdCkKIHsKICAgICBtX3dlYlZpZXctPmFkZFRvRGlydHlSZWdpb24o
ZGlydHlSZWN0KTsKSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAkocmV2aXNpb24gMzcxNDgpCisrKyBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29s
IGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIElu
dFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JiBwKSBjb25zdDsKKyAgICB2aXJ0
dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcikgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgYWRkVG9EaXJ0eVJlZ2lvbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7
CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbEJhY2tpbmdTdG9yZShpbnQgZHgsIGludCBkeSwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsVmlld1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGNsaXBSZWN0KTsKSW5kZXg6IFdlYktpdC93eC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3d4L0NoYW5nZUxvZwkocmV2aXNpb24gMzcxNTEpCisrKyBXZWJLaXQvd3gvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDgtMTAtMDEgIERhdmlkIEh5
YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTI4MgorICAgICAgICAKKyAgICAgICAgTWFrZSBjb250ZW50c1Rv
U2NyZWVuL3NjcmVlblRvQ29udGVudHMgY3Jvc3MtcGxhdGZvcm0uICBPbmx5IGltcGxlbWVudGVk
IGJ5IE1hYy9XaW4gcmlnaHQgbm93LgorICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OndpbmRvd1RvU2NyZWVuKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4OjpzY3JlZW5Ub1dpbmRvdyk6CisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgorCiAyMDA4LTA5LTMwICBEYXZlIEh5YXR0
ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMjUwCkluZGV4OiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVD
bGllbnRXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21l
Q2xpZW50V3guY3BwCShyZXZpc2lvbiAzNzE0OCkKKysrIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0Nocm9tZUNsaWVudFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg4LDYgKzI4OCwxOCBAQCB2
b2lkIENocm9tZUNsaWVudFd4OjpyZXBhaW50KGNvbnN0IFdlYkNvCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAorSW50UmVjdCBDaHJvbWVDbGllbnRXeDo6d2luZG93VG9TY3JlZW4oY29uc3Qg
SW50UmVjdCYgcmVjdCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biByZWN0OworfQorCitJbnRQb2ludCBDaHJvbWVDbGllbnRXeDo6c2NyZWVuVG9XaW5kb3coY29u
c3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIHBvaW50OworfQorCiB2b2lkIENocm9tZUNsaWVudFd4OjphZGRUb0RpcnR5UmVnaW9u
KGNvbnN0IEludFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBXZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgJKHJldmlzaW9uIDM3MTQ4KQorKysgV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAkod29ya2luZyBjb3B5KQpAQCAt
OTksNiArOTksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9y
ZSgpOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29s
IGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIElu
dFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JiBwKSBjb25zdDsKKyAgICB2aXJ0
dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcikgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3Vs
dCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23988</attachid>
            <date>2008-10-01 13:08:17 -0700</date>
            <delta_ts>2008-10-01 13:26:49 -0700</delta_ts>
            <desc>Patch #2</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20771</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzE1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDgtMTAtMDEgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI4
MgorICAgICAgICAKKyAgICAgICAgTWFrZSBjb250ZW50c1RvU2NyZWVuL3NjcmVlblRvQ29udGVu
dHMgY3Jvc3MtcGxhdGZvcm0uICBPbmx5IGltcGxlbWVudGVkIGJ5IE1hYy9XaW4gcmlnaHQgbm93
LgorICAgICAgICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9t
ZUNsaWVudDo6c2NyZWVuVG9XaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVD
bGllbnQ6OndpbmRvd1RvU2NyZWVuKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OnNjcmVlblRvV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZTo6d2luZG93VG9TY3JlZW4pOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Ib3N0V2luZG93
Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3Ojpjb250ZW50c1RvU2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OnNjcmVlblRvQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
cGxhdGZvcm1Db250ZW50c1RvU2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6
OnBsYXRmb3JtU2NyZWVuVG9Db250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmll
dy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1Db250ZW50c1RvU2NyZWVuKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtU2NyZWVuVG9Db250ZW50cyk6CisgICAgICAg
ICogcGxhdGZvcm0vd2luL1Njcm9sbFZpZXdXaW4uY3BwOgorCiAyMDA4LTEwLTAxICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHNldEZyYW1lUmVjdCBvbiBT
Y3JvbGxWaWV3IGNyb3NzLXBsYXRmb3JtLgpJbmRleDogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlz
aW9uIDM3MTQ4KQorKysgV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTExNCw2ICsxMTQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJh
Y2tpbmdTdG9yZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVj
dCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UpIHsgfQorICAg
IHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50UG9pbnQmIHApIGNvbnN0
IHsgcmV0dXJuIHA7IH0KKyAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3Qg
SW50UmVjdCYgcikgY29uc3QgeyByZXR1cm4gcjsgfQogCiAgICAgdmlydHVhbCB2b2lkIG1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmll
ckZsYWdzKSB7IH0KIApJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDM3MTQ4KQorKysgV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDE2IEBAIHZvaWQgQ2hy
b21lOjpyZXBhaW50KGNvbnN0IEludFJlY3QmIHdpbmQKICAgICBtX2NsaWVudC0+cmVwYWludCh3
aW5kb3dSZWN0LCBjb250ZW50Q2hhbmdlZCwgaW1tZWRpYXRlKTsKIH0KIAorSW50UG9pbnQgQ2hy
b21lOjpzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fY2xpZW50LT5zY3JlZW5Ub1dpbmRvdyhwb2ludCk7Cit9CisKK0ludFJlY3QgQ2hy
b21lOjp3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAoreworICAgIHJl
dHVybiBtX2NsaWVudC0+d2luZG93VG9TY3JlZW4ocmVjdCk7Cit9CisKIHZvaWQgQ2hyb21lOjpz
ZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkgY29uc3QKIHsKICAgICBtX2NsaWVu
dC0+c2V0V2luZG93UmVjdChyZWN0KTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9DaHJvbWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ2hyb21lLmgJKHJldmlzaW9uIDM3MTQ4KQorKysgV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBIb3N0V2luZG93IG1ldGhvZHMuCiAgICAgICAg
IHZpcnR1YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2Vk
LCBib29sIGltbWVkaWF0ZSA9IGZhbHNlKTsKLQorICAgICAgICB2aXJ0dWFsIEludFBvaW50IHNj
cmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgSW50
UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7CisgICAgCiAgICAgICAg
IHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKICAgICAgICAgRmxv
YXRSZWN0IHdpbmRvd1JlY3QoKSBjb25zdDsKIApJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNp
b24gMzcxNDgpCisrKyBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTExNiw3ICsxMTYsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlKCkgPSAwOwogICAgICAgICAvLyBFbmQgZGVwcmVjYXRl
ZCBtZXRob2RzLgogCisgICAgICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBJbnRSZWN0JiwgYm9vbCBjb250ZW50Q2hh
bmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSkgPSAwOworICAgICAgICB2aXJ0dWFsIEludFBv
aW50IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3QgPSAwOworICAgICAgICB2
aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0ID0gMDsK
KyAgICAgICAgLy8gRW5kIG1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0Jiwg
dW5zaWduZWQgbW9kaWZpZXJGbGFncykgPSAwOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0hv
c3RXaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAko
cmV2aXNpb24gMzcxNDgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IEludFBvaW50OwogY2xhc3MgSW50UmVjdDsKIAogY2xhc3MgSG9zdFdpbmRvdyA6IE5vbmNvcHlh
YmxlIHsKQEAgLTQ1LDYgKzQ2LDEwIEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSBwYWludCBtZXRo
b2QganVzdCBjYXVzZXMgYSBzeW5jaHJvbm91cyB1cGRhdGUgb2YgdGhlIHdpbmRvdyB0byBoYXBw
ZW4gZm9yIHBsYXRmb3JtcyB0aGF0IG5lZWQgaXQgKFdpbmRvd3MpLgogICAgIHZvaWQgcGFpbnQo
KSB7IHJlcGFpbnQoSW50UmVjdCgpLCBmYWxzZSwgdHJ1ZSk7IH0KKyAgICAKKyAgICAvLyBNZXRo
b2RzIGZvciBkb2luZyBjb29yZGluYXRlIGNvbnZlcnNpb25zIHRvIGFuZCBmcm9tIHNjcmVlbiBj
b29yZGluYXRlcy4KKyAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IElu
dFBvaW50JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dUb1NjcmVlbihj
b25zdCBJbnRSZWN0JikgY29uc3QgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCShyZXZpc2lvbiAzNzE1MCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMiw2ICsyMjIsMjAg
QEAgSW50UmVjdCBTY3JvbGxWaWV3Ojpjb250ZW50c1RvV2luZG93KGNvbgogICAgIHJldHVybiBj
b252ZXJ0VG9Db250YWluaW5nV2luZG93KHZpZXdSZWN0KTsKIH0KIAorSW50UmVjdCBTY3JvbGxW
aWV3Ojpjb250ZW50c1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0Cit7CisgICAg
aWYgKHBsYXRmb3JtV2lkZ2V0KCkpCisgICAgICAgIHJldHVybiBwbGF0Zm9ybUNvbnRlbnRzVG9T
Y3JlZW4ocmVjdCk7CisgICAgcmV0dXJuIGhvc3RXaW5kb3coKS0+d2luZG93VG9TY3JlZW4oY29u
dGVudHNUb1dpbmRvdyhyZWN0KSk7Cit9CisKK0ludFBvaW50IFNjcm9sbFZpZXc6OnNjcmVlblRv
Q29udGVudHMoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIGlmIChwbGF0Zm9y
bVdpZGdldCgpKQorICAgICAgICByZXR1cm4gcGxhdGZvcm1TY3JlZW5Ub0NvbnRlbnRzKHBvaW50
KTsKKyAgICByZXR1cm4gd2luZG93VG9Db250ZW50cyhob3N0V2luZG93KCktPnNjcmVlblRvV2lu
ZG93KHBvaW50KSk7Cit9CisKIGJvb2wgU2Nyb2xsVmlldzo6Y29udGFpbnNTY3JvbGxiYXJzQXZv
aWRpbmdSZXNpemVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fc2Nyb2xsYmFyc0F2b2lkaW5n
UmVzaXplcjsKQEAgLTQ4MCw2ICs0OTQsMTYgQEAgdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNl
dENvbnRlbnRzU2l6ZQogewogfQogCitJbnRSZWN0IFNjcm9sbFZpZXc6OnBsYXRmb3JtQ29udGVu
dHNUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAoreworICAgIHJldHVybiByZWN0
OworfQorCitJbnRQb2ludCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNjcmVlblRvQ29udGVudHMoY29u
c3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIHJldHVybiBwb2ludDsKK30KKwogdm9p
ZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JikK
IHsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCShyZXZpc2lvbiAzNzE1MSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksNiArMTM5LDEw
IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IHdpbmRvd1RvQ29udGVudHMoY29uc3QgSW50UmVjdCYp
IGNvbnN0OwogICAgIEludFJlY3QgY29udGVudHNUb1dpbmRvdyhjb25zdCBJbnRSZWN0JikgY29u
c3Q7CiAKKyAgICAvLyBNZXRob2RzIGZvciBjb252ZXJ0aW5nIHRvIGFuZCBmcm9tIHNjcmVlbiBj
b29yZGluYXRlcy4KKyAgICBJbnRSZWN0IGNvbnRlbnRzVG9TY3JlZW4oY29uc3QgSW50UmVjdCYp
IGNvbnN0OworICAgIEludFBvaW50IHNjcmVlblRvQ29udGVudHMoY29uc3QgSW50UG9pbnQmKSBj
b25zdDsKKwogICAgIC8vIFRoZSBwdXJwb3NlIG9mIHRoaXMgbWV0aG9kIGlzIHRvIGFuc3dlciB3
aGV0aGVyIG9yIG5vdCB0aGUgc2Nyb2xsIHZpZXcgaXMgY3VycmVudGx5IHZpc2libGUuICBBbmlt
YXRpb25zIGFuZCBwYWludGluZyB1cGRhdGVzIGNhbiBiZSBzdXNwZW5kZWQgaWYKICAgICAvLyB3
ZSBrbm93IHRoYXQgd2UgYXJlIGVpdGhlciBub3QgaW4gYSB3aW5kb3cgcmlnaHQgbm93IG9yIGlm
IHRoYXQgd2luZG93IGlzIG5vdCB2aXNpYmxlLgogICAgIGJvb2wgaXNPZmZzY3JlZW4oKSBjb25z
dDsKQEAgLTE4MiwxMSArMTg2LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbmV3UG9pbnQ7
CiAgICAgfQogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIEludFJlY3QgY29udGVudHNU
b1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7Ci0gICAgSW50UG9pbnQgc2NyZWVuVG9Db250
ZW50cyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwotI2VuZGlmCi0KKyAgICAvLyBXaWRnZXQgb3Zl
cnJpZGUuICBIYW5kbGVzIHBhaW50aW5nIG9mIHRoZSBjb250ZW50cyBvZiB0aGUgdmlldyBhcyB3
ZWxsIGFzIHRoZSBzY3JvbGxiYXJzLgogICAgIHZpcnR1YWwgdm9pZCBwYWludChHcmFwaGljc0Nv
bnRleHQqLCBjb25zdCBJbnRSZWN0Jik7CiAKIHByb3RlY3RlZDoKQEAgLTIyMyw2ICsyMjMsOCBA
QCBwcml2YXRlOgogICAgIEludFJlY3QgcGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3QoYm9vbCBp
bmNsdWRlU2Nyb2xsYmFycykgY29uc3Q7CiAgICAgSW50U2l6ZSBwbGF0Zm9ybUNvbnRlbnRzU2l6
ZSgpIGNvbnN0OwogICAgIHZvaWQgcGxhdGZvcm1TZXRDb250ZW50c1NpemUoKTsKKyAgICBJbnRS
ZWN0IHBsYXRmb3JtQ29udGVudHNUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7CisgICAg
SW50UG9pbnQgcGxhdGZvcm1TY3JlZW5Ub0NvbnRlbnRzKGNvbnN0IEludFBvaW50JikgY29uc3Q7
CiAgICAgdm9pZCBwbGF0Zm9ybVNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50Jik7CiAg
ICAgYm9vbCBwbGF0Zm9ybVNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5
KTsKICAgICB2b2lkIHBsYXRmb3JtU2V0U2Nyb2xsYmFyc1N1cHByZXNzZWQoYm9vbCByZXBhaW50
T25VbnN1cHByZXNzKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbQko
cmV2aXNpb24gMzcxNDgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xODQsNyArMTg0LDcgQEAgdm9pZCBTY3JvbGxWaWV3OjpwbGF0
Zm9ybVJlcGFpbnRDb250ZW50UgogCiAvLyAiQ29udGFpbmluZyBXaW5kb3ciIG1lYW5zIHRoZSBO
U1dpbmRvdydzIGNvb3JkIHN5c3RlbSwgd2hpY2ggaXMgb3JpZ2luIGxvd2VyIGxlZnQKIAotSW50
UmVjdCBTY3JvbGxWaWV3Ojpjb250ZW50c1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNv
bnN0CitJbnRSZWN0IFNjcm9sbFZpZXc6OnBsYXRmb3JtQ29udGVudHNUb1NjcmVlbihjb25zdCBJ
bnRSZWN0JiByZWN0KSBjb25zdAogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
ICAgICBpZiAoTlNWaWV3KiBkb2N1bWVudFZpZXcgPSB0aGlzLT5kb2N1bWVudFZpZXcoKSkgewpA
QCAtMTk3LDcgKzE5Nyw3IEBAIEludFJlY3QgU2Nyb2xsVmlldzo6Y29udGVudHNUb1NjcmVlbihj
b24KICAgICByZXR1cm4gSW50UmVjdCgpOwogfQogCi1JbnRQb2ludCBTY3JvbGxWaWV3OjpzY3Jl
ZW5Ub0NvbnRlbnRzKGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKK0ludFBvaW50IFNjcm9s
bFZpZXc6OnBsYXRmb3JtU2NyZWVuVG9Db250ZW50cyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNv
bnN0CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIGlmIChOU1ZpZXcq
IGRvY3VtZW50VmlldyA9IHRoaXMtPmRvY3VtZW50VmlldygpKSB7CkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL3dpbi9TY3JvbGxWaWV3V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL3dpbi9TY3JvbGxWaWV3V2luLmNwcAkocmV2aXNpb24gMzcxNTApCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL3dpbi9TY3JvbGxWaWV3V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMzLDI2ICs0
MzMsNCBAQCBib29sIFNjcm9sbFZpZXc6OmlzT2Zmc2NyZWVuKCkgY29uc3QKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLUludFJlY3QgU2Nyb2xsVmlldzo6Y29udGVudHNUb1NjcmVlbihjb25zdCBJ
bnRSZWN0JiByZWN0KSBjb25zdAotewotICAgIEludFJlY3QgcmVzdWx0KGNvbnRlbnRzVG9XaW5k
b3cocmVjdCkpOwotICAgIFBPSU5UIHRvcExlZnQgPSB7MCwgMH07Ci0KLSAgICAvLyBGaW5kIHRo
ZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIFdpZGdldCdzIGNvbnRhaW5pbmcgd2luZG93IGluIHNj
cmVlbiBjb29yZHMsCi0gICAgLy8gYW5kIGFkanVzdCB0aGUgcmVzdWx0IHJlY3QncyBwb3NpdGlv
biBieSB0aGlzIGFtb3VudC4KLSAgICA6OkNsaWVudFRvU2NyZWVuKGNvbnRhaW5pbmdXaW5kb3co
KSwgJnRvcExlZnQpOwotICAgIHJlc3VsdC5tb3ZlKHRvcExlZnQueCwgdG9wTGVmdC55KTsKLQot
ICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLUludFBvaW50IFNjcm9sbFZpZXc6OnNjcmVlblRvQ29u
dGVudHMoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAotewotICAgIFBPSU5UIHJlc3VsdCA9
IHBvaW50OwotCi0gICAgOjpTY3JlZW5Ub0NsaWVudChjb250YWluaW5nV2luZG93KCksICZyZXN1
bHQpOwotCi0gICAgcmV0dXJuIHdpbmRvd1RvQ29udGVudHMocmVzdWx0KTsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3MTUxKQorKysgV2ViS2l0L2d0ay9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAwOC0xMC0wMSAgRGF2
aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjgyCisgICAgICAgIAorICAgICAgICBNYWtlIGNvbnRl
bnRzVG9TY3JlZW4vc2NyZWVuVG9Db250ZW50cyBjcm9zcy1wbGF0Zm9ybS4gIE9ubHkgaW1wbGVt
ZW50ZWQgYnkgTWFjL1dpbiByaWdodCBub3cuCisgICAgICAgIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6d2luZG93VG9TY3JlZW4p
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNjcmVlblRvV2luZG93KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKwogMjAwOC0wOS0zMCAgRGF2
ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI1MApJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gMzcxNDgpCisrKyBXZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3
Niw2ICsyNzYsMTggQEAgdm9pZCBDaHJvbWVDbGllbnQ6OnJlcGFpbnQoY29uc3QgV2ViQ29yZQog
ICAgIH0KIH0KIAorSW50UmVjdCBDaHJvbWVDbGllbnQ6OndpbmRvd1RvU2NyZWVuKGNvbnN0IElu
dFJlY3QmIHJlY3QpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
cmVjdDsKK30KKworSW50UG9pbnQgQ2hyb21lQ2xpZW50OjpzY3JlZW5Ub1dpbmRvdyhjb25zdCBJ
bnRQb2ludCYgcG9pbnQpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gcG9pbnQ7Cit9CisKIHZvaWQgQ2hyb21lQ2xpZW50OjphZGRUb0RpcnR5UmVnaW9uKGNvbnN0
IEludFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBXZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgJKHJldmlzaW9uIDM3MTQ4KQorKysgV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAkod29ya2luZyBjb3B5KQpA
QCAtODgsNiArODgsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0
ZSA9IGZhbHNlKTsKKyAgICAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25z
dCBJbnRQb2ludCYgcCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dUb1Nj
cmVlbihjb25zdCBJbnRSZWN0JiByKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgbW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2ln
bmVkIG1vZGlmaWVyRmxhZ3MpOwogCkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMzcxNTEpCisrKyBXZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDA4LTEwLTAx
ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyODIKKyAgICAgICAgCisgICAgICAgIE1ha2Ug
Y29udGVudHNUb1NjcmVlbi9zY3JlZW5Ub0NvbnRlbnRzIGNyb3NzLXBsYXRmb3JtLiAgT25seSBp
bXBsZW1lbnRlZCBieSBNYWMvV2luIHJpZ2h0IG5vdy4KKyAgICAgICAgCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
OgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpyZXBhaW50KToKKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudDo6c2NyZWVuVG9XaW5kb3cpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojp3aW5k
b3dUb1NjcmVlbik6CisKIDIwMDgtMDktMzAgICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI2
OQpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShy
ZXZpc2lvbiAzNzE0OCkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmUoKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcmVw
YWludChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBp
bW1lZGlhdGUgPSBmYWxzZSk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5U
b1dpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6SW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29u
c3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXZWJDb3JlOjpT
dHJpbmcmKTsKIApJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0JKHJldmlzaW9uIDM3MTQ4KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwMywxMCArNDAzLDIyIEBAIElu
dFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZXNpemVyUmUKICAgICByZXR1cm4gZW5jbG9z
aW5nSW50UmVjdChbW21fd2ViVmlldyB3aW5kb3ddIF9ncm93Qm94UmVjdF0pOwogfQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6cmVwYWludChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCwg
Ym9vbCkKKy8vIEhvc3Qgd2luZG93IG1ldGhvZHMgYXJlIHJlYWxseSBvbmx5IG5lZWRlZCBvbmNl
IHdlIGhhdmUgYSB2aWV3bGVzcyBNYWMgV2Via2l0Lgordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJl
cGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wsIGJvb2wpCiB7CiB9CiAKK0ludFBvaW50IFdlYkNo
cm9tZUNsaWVudDo6c2NyZWVuVG9XaW5kb3coY29uc3QgSW50UG9pbnQmIHApIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHA7Cit9CisKK0ludFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dUb1NjcmVl
bihjb25zdCBJbnRSZWN0JiByKSBjb25zdAoreworICAgIHJldHVybiByOworfQorLy8gRW5kIGhv
c3Qgd2luZG93IG1ldGhvZHMuCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRUb0RpcnR5UmVn
aW9uKGNvbnN0IEludFJlY3QmKQogewogfQpJbmRleDogV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAzNzE1MSkKKysrIFdlYktp
dC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAwOC0xMC0w
MSAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CisgICAgICAgIAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyODIKKyAgICAgICAgCisgICAg
ICAgIE1ha2UgY29udGVudHNUb1NjcmVlbi9zY3JlZW5Ub0NvbnRlbnRzIGNyb3NzLXBsYXRmb3Jt
LiAgT25seSBpbXBsZW1lbnRlZCBieSBNYWMvV2luIHJpZ2h0IG5vdy4KKyAgICAgICAgCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6
OndpbmRvd1RvU2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzY3Jl
ZW5Ub1dpbmRvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoK
KwogMjAwOC0wOS0zMCAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI1MApJbmRleDogV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCShyZXZpc2lvbiAzNzE0OCkK
KysrIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMxNCw2ICszMTQsMTggQEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6cmVwYWludChj
b25zdCBXZWJDbwogICAgIC8vIGlzIHNldC4KIH0KIAorSW50UmVjdCBDaHJvbWVDbGllbnRRdDo6
d2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiByZWN0OworfQorCitJbnRQb2ludCBDaHJvbWVDbGllbnRR
dDo6c2NyZWVuVG9XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHBvaW50OworfQorCiB2b2lkIENocm9tZUNsaWVu
dFF0OjphZGRUb0RpcnR5UmVnaW9uKGNvbnN0IEludFJlY3QmIHIpCiB7CiAgICAgUVdpZGdldCog
dmlldyA9IG1fd2ViUGFnZS0+dmlldygpOwpJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmgJKHJldmlzaW9uIDM3MTQ4KQorKysgV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5n
U3RvcmUoKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBJbnRSZWN0Jiwg
Ym9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSk7Ci0KKyAgICAgICAg
dmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYgcCkgY29uc3Q7
CisgICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JiBy
KSBjb25zdDsKKyAgICAKICAgICAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFdlYktp
dC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZp
c2lvbiAzNzE1MSkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMDgtMTAtMDEgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgor
ICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMjgyCisgICAgICAgIAorICAgICAgICBNYWtlIGNvbnRlbnRzVG9TY3JlZW4vc2NyZWVuVG9D
b250ZW50cyBjcm9zcy1wbGF0Zm9ybS4gIE9ubHkgaW1wbGVtZW50ZWQgYnkgTWFjL1dpbiByaWdo
dCBub3cuCisgICAgICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJDaHJvbWVDbGllbnQ6OndpbmRvd1RvU2NyZWVuKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6c2NyZWVuVG9XaW5kb3cpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oOgorCiAyMDA4LTA5LTMwICAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjkKSW5k
ZXg6IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJl
dmlzaW9uIDM3MTQ4KQorKysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjMsNiArNDIzLDM1IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpyZXBhaW50KGNvbnN0IEludFIKICAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93
UmVjdCwgY29udGVudENoYW5nZWQsIGltbWVkaWF0ZSk7CiB9CiAKK0ludFJlY3QgV2ViQ2hyb21l
Q2xpZW50Ojp3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAoreworICAg
IEhXTkQgdmlld1dpbmRvdzsKKyAgICBpZiAoRkFJTEVEKG1fd2ViVmlldy0+dmlld1dpbmRvdyhy
ZWludGVycHJldF9jYXN0PE9MRV9IQU5ETEUqPigmdmlld1dpbmRvdykpKSkKKyAgICAgICAgcmV0
dXJuIHJlY3Q7CisKKyAgICAvLyBGaW5kIHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIFdpZGdl
dCdzIGNvbnRhaW5pbmcgd2luZG93IGluIHNjcmVlbiBjb29yZHMsCisgICAgLy8gYW5kIGFkanVz
dCB0aGUgcmVzdWx0IHJlY3QncyBwb3NpdGlvbiBieSB0aGlzIGFtb3VudC4KKyAgICBQT0lOVCB0
b3BMZWZ0ID0gezAsIDB9OworICAgIEludFJlY3QgcmVzdWx0ID0gcmVjdDsKKyAgICA6OkNsaWVu
dFRvU2NyZWVuKHZpZXdXaW5kb3csICZ0b3BMZWZ0KTsKKyAgICByZXN1bHQubW92ZSh0b3BMZWZ0
LngsIHRvcExlZnQueSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitJbnRQb2ludCBXZWJD
aHJvbWVDbGllbnQ6OnNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QK
K3sKKyAgICBQT0lOVCByZXN1bHQgPSBwb2ludDsKKworICAgIEhXTkQgdmlld1dpbmRvdzsKKyAg
ICBpZiAoRkFJTEVEKHdlYlZpZXctPnZpZXdXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxPTEVfSEFO
RExFKj4oJnZpZXdXaW5kb3cpKSkpCisgICAgICAgIHJldHVybiBwb2ludDsKKworICAgIDo6U2Ny
ZWVuVG9DbGllbnQodmlld1dpbmRvdywgJnJlc3VsdCk7CisKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6YWRkVG9EaXJ0eVJlZ2lvbihjb25zdCBJbnRSZWN0
JiBkaXJ0eVJlY3QpCiB7CiAgICAgbV93ZWJWaWV3LT5hZGRUb0RpcnR5UmVnaW9uKGRpcnR5UmVj
dCk7CkluZGV4OiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJ
KHJldmlzaW9uIDM3MTQ4KQorKysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiArOTMsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKICAgICB2
aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCBjb250ZW50
Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSk7CisgICAgdmlydHVhbCBJbnRQb2ludCBz
Y3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYgcCkgY29uc3Q7CisgICAgdmlydHVhbCBJbnRS
ZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHIpIGNvbnN0OwogCiAgICAgdmlydHVh
bCB2b2lkIGFkZFRvRGlydHlSZWdpb24oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxCYWNraW5nU3RvcmUoaW50IGR4LCBpbnQgZHksIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHNjcm9sbFZpZXdSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlw
UmVjdCk7CkluZGV4OiBXZWJLaXQvd3gvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93
eC9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3MTUxKQorKysgV2ViS2l0L3d4L0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA4LTEwLTAxICBEYXZpZCBIeWF0dCAgPGh5
YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjEyODIKKyAgICAgICAgCisgICAgICAgIE1ha2UgY29udGVudHNUb1NjcmVlbi9z
Y3JlZW5Ub0NvbnRlbnRzIGNyb3NzLXBsYXRmb3JtLiAgT25seSBpbXBsZW1lbnRlZCBieSBNYWMv
V2luIHJpZ2h0IG5vdy4KKyAgICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudFd4Ojp3aW5kb3dUb1NjcmVlbik6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRXeDo6c2NyZWVuVG9XaW5kb3cpOgorICAgICAgICAqIFdlYktpdFN1
cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKwogMjAwOC0wOS0zMCAgRGF2ZSBIeWF0dCAgPGh5YXR0
QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTI1MApJbmRleDogV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3gu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4
LmNwcAkocmV2aXNpb24gMzcxNDgpCisrKyBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVD
bGllbnRXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4OCw2ICsyODgsMTggQEAgdm9pZCBDaHJv
bWVDbGllbnRXeDo6cmVwYWludChjb25zdCBXZWJDbwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKK0ludFJlY3QgQ2hyb21lQ2xpZW50V3g6OndpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3Qm
IHJlY3QpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gcmVjdDsK
K30KKworSW50UG9pbnQgQ2hyb21lQ2xpZW50V3g6OnNjcmVlblRvV2luZG93KGNvbnN0IEludFBv
aW50JiBwb2ludCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBw
b2ludDsKK30KKwogdm9pZCBDaHJvbWVDbGllbnRXeDo6YWRkVG9EaXJ0eVJlZ2lvbihjb25zdCBJ
bnRSZWN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogV2ViS2l0L3d4L1dlYktp
dFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCShyZXZpc2lvbiAzNzE0OCkKKysrIFdlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgJKHdvcmtpbmcgY29weSkKQEAgLTk5LDYgKzk5
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmUoKTsKICAg
ICAKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBJbnRSZWN0JiwgYm9vbCBjb250ZW50
Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSk7CisgICAgdmlydHVhbCBJbnRQb2ludCBz
Y3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYgcCkgY29uc3Q7CisgICAgdmlydHVhbCBJbnRS
ZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHIpIGNvbnN0OwogCiAgICAgdmlydHVh
bCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNp
Z25lZCBtb2RpZmllckZsYWdzKTsKIAo=
</data>
<flag name="review"
          id="10842"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>