<?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>72959</bug_id>
          
          <creation_ts>2011-11-22 08:01:11 -0800</creation_ts>
          <short_desc>[Qt] [WK2] Move PagePolicyClient related code to QtWebPagePolicyClient</short_desc>
          <delta_ts>2011-11-23 05:21:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>72943</blocked>
    
    <blocked>72976</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Caio Marcelo de Oliveira Filho">cmarcelo</reporter>
          <assigned_to name="Caio Marcelo de Oliveira Filho">cmarcelo</assigned_to>
          <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>507615</commentid>
    <comment_count>0</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-22 08:01:11 -0800</bug_when>
    <thetext>[Qt] [WK2] Move PagePolicyClient related code to QtWebPagePolicyClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507616</commentid>
    <comment_count>1</comment_count>
      <attachid>116228</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-22 08:03:34 -0800</bug_when>
    <thetext>Created attachment 116228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508073</commentid>
    <comment_count>2</comment_count>
      <attachid>116228</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-23 04:53:45 -0800</bug_when>
    <thetext>Comment on attachment 116228
Patch

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

r=me with some nits that you don&apos;t need to fix in this patch, but may want to consider in the future. :)

&gt; Source/WebKit2/UIProcess/qt/QtWebPagePolicyClient.cpp:64
&gt; +static Qt::MouseButton toQtMouseButton(WKEventMouseButton button)
&gt; +{
&gt; +    switch (button) {
&gt; +    case kWKEventMouseButtonLeftButton:
&gt; +        return Qt::LeftButton;
&gt; +    case kWKEventMouseButtonMiddleButton:
&gt; +        return Qt::MiddleButton;
&gt; +    case kWKEventMouseButtonRightButton:
&gt; +        return Qt::RightButton;
&gt; +    }
&gt; +    return Qt::NoButton;
&gt; +}

In this kind of method, we should have a case for kWKEventMouseButtonNoButton (returning Qt::NoButton) and then putting an ASSERT_NOT_REACHED() after the switch.

&gt; Source/WebKit2/UIProcess/qt/QtWebPagePolicyClient.cpp:97
&gt; +    switch (action) {
&gt; +    case Use:
&gt; +        WKFramePolicyListenerUse(listener);
&gt; +        break;
&gt; +    case Download:
&gt; +        WKFramePolicyListenerDownload(listener);
&gt; +        break;
&gt; +    case Ignore:
&gt; +        WKFramePolicyListenerIgnore(listener);
&gt; +        break;
&gt; +    }

Similar situation here, we could replace the breaks by returns and put an ASSERT_NOT_REACHED() after the switch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508083</commentid>
    <comment_count>3</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-23 05:21:11 -0800</bug_when>
    <thetext>Committed r101071: &lt;http://trac.webkit.org/changeset/101071&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116228</attachid>
            <date>2011-11-22 08:03:34 -0800</date>
            <delta_ts>2011-11-23 04:53:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72959-20111122130413.patch</filename>
            <type>text/plain</type>
            <size>27083</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGU5MzZhMDQxYjAyZWUy
YmNiYzlmODA3YzdmN2M5OGU2MGNmMTk0OC4uNTQ2ZWI3OWI2NTA1OWZkYzI3NmQwZTkxZjllMzg2
NGZiMDc4MTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTExLTIyICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgW1F0XSBbV0syXSBNb3ZlIFBhZ2VQb2xpY3lDbGllbnQgcmVsYXRlZCBjb2Rl
IHRvIFF0V2ViUGFnZVBvbGljeUNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTcGxpdCBQYWdlUG9saWN5Q2xpZW50IHJlbGF0ZWQgY29kZSBmcm9t
IFF0V2ViUGFnZVByb3h5L0NsaWVudEltcGwuIFRoZSBuZXcKKyAgICAgICAgUXRXZWJQYWdlUG9s
aWN5Q2xpZW50IHJlZ2lzdGVycyBpdHNlbGYgd2l0aCBXS1BhZ2VSZWYgYW5kIGl0J3Mgb3duZWQg
YnkgdGhlCisgICAgICAgIFFRdWlja1dlYlZpZXdQcml2YXRlLiBUaGlzIGlzIGEgbW92ZSB0byBj
bGVhbiB1cCBRdFdlYlBhZ2VQcm94eSBvYmplY3QuCisKKyAgICAgICAgUXRQb2xpY3lJbnRlcmZh
Y2UgYWJzdHJhY3Rpb24gd2FzIG5vdCBoZWxwaW5nIHVzIGFzIG11Y2ggYXMgdGhlIHNlcGFyYXRp
b24gb2YKKyAgICAgICAgdGhlIGNsaWVudCBjb2RlIHdpbGwuIEl0IHdhcyBtb3JlIHVzZWZ1bCB3
aGVuIHdlIGhhZCBtdWx0aXBsZSBXZWJWaWV3cy4KKworICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFR
dWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgICh0b1Bv
bGljeUFjdGlvbik6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6bmF2aWdhdGlvblBv
bGljeUZvclVSTCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3Au
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9x
dC9DbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVBvbGljeUNs
aWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoUXRXZWJQYWdlUG9saWN5Q2xpZW50OjpRdFdlYlBh
Z2VQb2xpY3lDbGllbnQpOgorICAgICAgICAoUXRXZWJQYWdlUG9saWN5Q2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKHRvUXRXZWJQYWdlUG9saWN5Q2xp
ZW50KToKKyAgICAgICAgKHRvUXRNb3VzZUJ1dHRvbik6CisgICAgICAgICh0b1F0S2V5Ym9hcmRN
b2RpZmllcnMpOgorICAgICAgICAoUXRXZWJQYWdlUG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVBvbGljeUNsaWVu
dC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UG9saWN5SW50
ZXJmYWNlLmguCisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFF0V2ViUGFnZVByb3h5OjpRdFdlYlBhZ2VQcm94eSk6CisgICAgICAgIChRdFdlYlBh
Z2VQcm94eTo6aW5pdCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5Lmg6
CisKIDIwMTEtMTEtMjIgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBv
cGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBGaXggYW5kIHVuc2tpcCBsb2FkSHRt
bCBhcGkgdGVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggYTU1MmQ1NWQ4ZGZhYTVjMmExZjVhMGMyMzBkZjUz
ZjUzNzA5NzFkMy4uMTRjOWMwYzEwM2U3NDNmNDNmM2ZhZTY5MDA5ZmIzMTA3YTIxYjUzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9U
YXJnZXQucHJpCkBAIC0zMTQsNyArMzE0LDYgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZENsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBc
CiAgICAgVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuaCBcCi0gICAgVUlQcm9jZXNzL3F0L1F0UG9s
aWN5SW50ZXJmYWNlLmggXAogICAgIFVJUHJvY2Vzcy9xdC9RdEdlc3R1cmVSZWNvZ25pemVyLmgg
XAogICAgIFVJUHJvY2Vzcy9xdC9RdFBhbkdlc3R1cmVSZWNvZ25pemVyLmggXAogICAgIFVJUHJv
Y2Vzcy9xdC9RdFBpbmNoR2VzdHVyZVJlY29nbml6ZXIuaCBcCkBAIC0zMjMsNiArMzIyLDcgQEAg
SEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmggXAogICAgIFVJ
UHJvY2Vzcy9xdC9RdERvd25sb2FkTWFuYWdlci5oIFwKICAgICBVSVByb2Nlc3MvcXQvUXRXZWJQ
YWdlTG9hZENsaWVudC5oIFwKKyAgICBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlUG9saWN5Q2xpZW50
LmggXAogICAgIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oIFwKICAgICBVSVByb2Nlc3Mv
cXQvUXRXZWJQYWdlVUlDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL3F0L3F3a2hpc3RvcnkuaCBc
CkBAIC02MzAsNiArNjMwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL3F0L1F0RGlh
bG9nUnVubmVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2VyLmNwcCBc
CiAgICAgVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUxvYWRDbGllbnQuY3BwIFwKKyAgICBVSVByb2Nl
c3MvcXQvUXRXZWJQYWdlUG9saWN5Q2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0V2Vi
UGFnZVByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVVJQ2xpZW50LmNwcCBc
CiAgICAgVUlQcm9jZXNzL3F0L3F3a2hpc3RvcnkuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IDRiMmYyZjNjYzNkOTRk
NDkzYzI3MTJiZDM1Y2IxNGJlNjU3NDU0ZjQuLjUxM2U5OGU0OGJlMWViYzc3NmZmMDc1NWMwNGZh
MjQ0OWFmYTc2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3LmNwcApAQCAtNTEsMTQgKzUxLDE1IEBAIFFRdWlja1dlYlZpZXdQcml2YXRl
OjpRUXVpY2tXZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCwgV0tDb250ZXh0
UmVmCiAgICAgcGFnZVZpZXcucmVzZXQobmV3IFFRdWlja1dlYlBhZ2Uodmlld3BvcnQpKTsKIAog
ICAgIFFRdWlja1dlYlBhZ2VQcml2YXRlKiBjb25zdCBwYWdlVmlld1ByaXZhdGUgPSBwYWdlVmll
dy5kYXRhKCktPmQ7Ci0gICAgc2V0UGFnZVByb3h5KG5ldyBRdFdlYlBhZ2VQcm94eShwYWdlVmll
dy5kYXRhKCksIHFfcHRyLCAwLCB0aGlzLCBjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYpKTsKKyAg
ICBzZXRQYWdlUHJveHkobmV3IFF0V2ViUGFnZVByb3h5KHBhZ2VWaWV3LmRhdGEoKSwgcV9wdHIs
IC8qIGludGVyYWN0aW9uRW5naW5lICovIDAsIGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZikpOwog
ICAgIHBhZ2VWaWV3UHJpdmF0ZS0+c2V0UGFnZVByb3h5KHBhZ2VQcm94eS5kYXRhKCkpOwogCiAg
ICAgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Z2V0KHBhZ2VQcm94eS0+cHJlZmVyZW5jZXMoKSkt
PnNldEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZCwgdHJ1ZSk7CiAgICAgcGFnZVByb3h5LT5pbml0KCk7CiAKLSAgICBwYWdlVUlD
bGllbnQucmVzZXQobmV3IFF0V2ViUGFnZVVJQ2xpZW50KHBhZ2VQcm94eS0+cGFnZVJlZigpLCBx
X3B0cikpOwogICAgIHBhZ2VMb2FkQ2xpZW50LnJlc2V0KG5ldyBRdFdlYlBhZ2VMb2FkQ2xpZW50
KHBhZ2VQcm94eS0+cGFnZVJlZigpLCBxX3B0cikpOworICAgIHBhZ2VQb2xpY3lDbGllbnQucmVz
ZXQobmV3IFF0V2ViUGFnZVBvbGljeUNsaWVudChwYWdlUHJveHktPnBhZ2VSZWYoKSwgcV9wdHIp
KTsKKyAgICBwYWdlVUlDbGllbnQucmVzZXQobmV3IFF0V2ViUGFnZVVJQ2xpZW50KHBhZ2VQcm94
eS0+cGFnZVJlZigpLCBxX3B0cikpOwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpl
bmFibGVNb3VzZUV2ZW50cygpCkBAIC0zNDMsMTggKzM0NCwxOCBAQCB2b2lkIFFRdWlja1dlYlZp
ZXdQcml2YXRlOjpzZXRWaWV3SW5BdHRhY2hlZFByb3BlcnRpZXMoUU9iamVjdCogb2JqZWN0KQog
ICAgIGF0dGFjaGVkLT5zZXRWaWV3KHEpOwogfQogCi1zdGF0aWMgUXRQb2xpY3lJbnRlcmZhY2U6
OlBvbGljeUFjdGlvbiB0b1BvbGljeUFjdGlvbihRUXVpY2tXZWJWaWV3OjpOYXZpZ2F0aW9uUG9s
aWN5IHBvbGljeSkKK3N0YXRpYyBRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OlBvbGljeUFjdGlvbiB0
b1BvbGljeUFjdGlvbihRUXVpY2tXZWJWaWV3OjpOYXZpZ2F0aW9uUG9saWN5IHBvbGljeSkKIHsK
ICAgICBzd2l0Y2ggKHBvbGljeSkgewogICAgIGNhc2UgUVF1aWNrV2ViVmlldzo6VXNlUG9saWN5
OgotICAgICAgICByZXR1cm4gUXRQb2xpY3lJbnRlcmZhY2U6OlVzZTsKKyAgICAgICAgcmV0dXJu
IFF0V2ViUGFnZVBvbGljeUNsaWVudDo6VXNlOwogICAgIGNhc2UgUVF1aWNrV2ViVmlldzo6RG93
bmxvYWRQb2xpY3k6Ci0gICAgICAgIHJldHVybiBRdFBvbGljeUludGVyZmFjZTo6RG93bmxvYWQ7
CisgICAgICAgIHJldHVybiBRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OkRvd25sb2FkOwogICAgIGNh
c2UgUVF1aWNrV2ViVmlldzo6SWdub3JlUG9saWN5OgotICAgICAgICByZXR1cm4gUXRQb2xpY3lJ
bnRlcmZhY2U6Oklnbm9yZTsKKyAgICAgICAgcmV0dXJuIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6
SWdub3JlOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gUXRQ
b2xpY3lJbnRlcmZhY2U6Oklnbm9yZTsKKyAgICByZXR1cm4gUXRXZWJQYWdlUG9saWN5Q2xpZW50
OjpJZ25vcmU7CiB9CiAKIHN0YXRpYyBib29sIGhhc01ldGFNZXRob2QoUU9iamVjdCogb2JqZWN0
LCBjb25zdCBjaGFyKiBtZXRob2ROYW1lKQpAQCAtMzcxLDE3ICszNzIsMTcgQEAgc3RhdGljIGJv
b2wgaGFzTWV0YU1ldGhvZChRT2JqZWN0KiBvYmplY3QsIGNvbnN0IGNoYXIqIG1ldGhvZE5hbWUp
CiAgICAgSXQgd2lsbCBiZSBjYWxsZWQgdG8gZGVjaWRlIHRoZSBwb2xpY3kgZm9yIGEgbmF2aWdh
dGlvbjogd2hldGhlciB0aGUgV2ViVmlldyBzaG91bGQgaWdub3JlIHRoZSBuYXZpZ2F0aW9uLAog
ICAgIGNvbnRpbnVlIGl0IG9yIHN0YXJ0IGEgZG93bmxvYWQuIFRoZSByZXR1cm4gdmFsdWUgbXVz
dCBiZSBvbmUgb2YgdGhlIHBvbGljaWVzIGluIHRoZSBOYXZpZ2F0aW9uUG9saWN5IGVudW1lcmF0
aW9uLgogKi8KLVF0UG9saWN5SW50ZXJmYWNlOjpQb2xpY3lBY3Rpb24gUVF1aWNrV2ViVmlld1By
aXZhdGU6Om5hdmlnYXRpb25Qb2xpY3lGb3JVUkwoY29uc3QgUVVybCYgdXJsLCBRdDo6TW91c2VC
dXR0b24gYnV0dG9uLCBRdDo6S2V5Ym9hcmRNb2RpZmllcnMgbW9kaWZpZXJzKQorUXRXZWJQYWdl
UG9saWN5Q2xpZW50OjpQb2xpY3lBY3Rpb24gUVF1aWNrV2ViVmlld1ByaXZhdGU6Om5hdmlnYXRp
b25Qb2xpY3lGb3JVUkwoY29uc3QgUVVybCYgdXJsLCBRdDo6TW91c2VCdXR0b24gYnV0dG9uLCBR
dDo6S2V5Ym9hcmRNb2RpZmllcnMgbW9kaWZpZXJzKQogewogICAgIFFfUShRUXVpY2tXZWJWaWV3
KTsKICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHRoaXMgZmlyc3QgYmVjYXVzZSBpbnZva2VNZXRo
b2QoKSB3YXJucyBpZiB0aGUgbWV0aG9kIGRvZXNuJ3QgZXhpc3QgZm9yIHRoZSBvYmplY3QuCiAg
ICAgaWYgKCFoYXNNZXRhTWV0aG9kKHEsICJuYXZpZ2F0aW9uUG9saWN5Rm9yVXJsKFFWYXJpYW50
LFFWYXJpYW50LFFWYXJpYW50KSIpKQotICAgICAgICByZXR1cm4gUXRQb2xpY3lJbnRlcmZhY2U6
OlVzZTsKKyAgICAgICAgcmV0dXJuIFF0V2ViUGFnZVBvbGljeUNsaWVudDo6VXNlOwogCiAgICAg
UVZhcmlhbnQgcmV0OwogICAgIGlmIChRTWV0YU9iamVjdDo6aW52b2tlTWV0aG9kKHEsICJuYXZp
Z2F0aW9uUG9saWN5Rm9yVXJsIiwgUV9SRVRVUk5fQVJHKFFWYXJpYW50LCByZXQpLCBRX0FSRyhR
VmFyaWFudCwgdXJsKSwgUV9BUkcoUVZhcmlhbnQsIGJ1dHRvbiksIFFfQVJHKFFWYXJpYW50LCBR
VmFyaWFudChtb2RpZmllcnMpKSkpCiAgICAgICAgIHJldHVybiB0b1BvbGljeUFjdGlvbihzdGF0
aWNfY2FzdDxRUXVpY2tXZWJWaWV3OjpOYXZpZ2F0aW9uUG9saWN5PihyZXQudG9JbnQoKSkpOwot
ICAgIHJldHVybiBRdFBvbGljeUludGVyZmFjZTo6VXNlOworICAgIHJldHVybiBRdFdlYlBhZ2VQ
b2xpY3lDbGllbnQ6OlVzZTsKIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0UGFn
ZVByb3h5KFF0V2ViUGFnZVByb3h5KiBwYWdlUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCAyZDEwN2Y2MTgxYmNiMThk
YmIwYTQxYmM2MDBjYjRlODAzY2ViNjNhLi43YmUyYTg5OTU4ZjFjZGEyODA0Nzk3ODllZmVjODcw
YTJmOTdlMjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXdfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlld19wLmgKQEAgLTEzNSw2ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIFFRdWlja1dl
YlZpZXdFeHBlcmltZW50YWwqIG1fZXhwZXJpbWVudGFsOwogCiAgICAgZnJpZW5kIGNsYXNzIFF0
V2ViUGFnZUxvYWRDbGllbnQ7CisgICAgZnJpZW5kIGNsYXNzIFF0V2ViUGFnZVBvbGljeUNsaWVu
dDsKICAgICBmcmllbmQgY2xhc3MgUXRXZWJQYWdlUHJveHk7CiAgICAgZnJpZW5kIGNsYXNzIFF0
V2ViUGFnZVVJQ2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXVFI6OlBsYXRmb3JtV2ViVmlldzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
d19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19w
X3AuaAppbmRleCAxZTFlY2JiNGU1OTViYzkyNTNiNTdiYmFmYjAzYTFkZmY0MTc1MzU1Li5lMzIw
YjM4YThkYTRhZDFkMDc1NTE4MzNiMWE5MTM4NzNhMjFiZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCkBAIC0yMSw5ICsy
MSw5IEBACiAjaWZuZGVmIHFxdWlja3dlYnZpZXdfcF9wX2gKICNkZWZpbmUgcXF1aWNrd2Vidmll
d19wX3BfaAogCi0jaW5jbHVkZSAiUXRQb2xpY3lJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJRdFZp
ZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaCIKICNpbmNsdWRlICJRdFdlYlBhZ2VMb2FkQ2xpZW50
LmgiCisjaW5jbHVkZSAiUXRXZWJQYWdlUG9saWN5Q2xpZW50LmgiCiAjaW5jbHVkZSAiUXRXZWJQ
YWdlUHJveHkuaCIKICNpbmNsdWRlICJRdFdlYlBhZ2VVSUNsaWVudC5oIgogCkBAIC00MSw4ICs0
MSw3IEBAIGNsYXNzIFFEZWNsYXJhdGl2ZUNvbXBvbmVudDsKIGNsYXNzIFFGaWxlRGlhbG9nOwog
UVRfRU5EX05BTUVTUEFDRQogCi1jbGFzcyBRUXVpY2tXZWJWaWV3UHJpdmF0ZSA6IHB1YmxpYyBX
ZWJLaXQ6OlF0UG9saWN5SW50ZXJmYWNlIHsKLQorY2xhc3MgUVF1aWNrV2ViVmlld1ByaXZhdGUg
ewogICAgIFFfREVDTEFSRV9QVUJMSUMoUVF1aWNrV2ViVmlldykKICAgICBmcmllbmQgY2xhc3Mg
UVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDsKIApAQCAtNzEsOCArNzAsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBfcV9vbk9wZW5QYW5lbEZpbmlzaGVkKGludCByZXN1bHQpOwogICAgIHZvaWQgX3Ff
b25WaXNpYmxlQ2hhbmdlZCgpOwogCi0gICAgLy8gUXRQb2xpY3lJbnRlcmZhY2UuCi0gICAgdmly
dHVhbCBRdFBvbGljeUludGVyZmFjZTo6UG9saWN5QWN0aW9uIG5hdmlnYXRpb25Qb2xpY3lGb3JV
UkwoY29uc3QgUVVybCYsIFF0OjpNb3VzZUJ1dHRvbiwgUXQ6OktleWJvYXJkTW9kaWZpZXJzKTsK
KyAgICBRdFdlYlBhZ2VQb2xpY3lDbGllbnQ6OlBvbGljeUFjdGlvbiBuYXZpZ2F0aW9uUG9saWN5
Rm9yVVJMKGNvbnN0IFFVcmwmLCBRdDo6TW91c2VCdXR0b24sIFF0OjpLZXlib2FyZE1vZGlmaWVy
cyk7CiAKICAgICB2b2lkIGNob29zZUZpbGVzKFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYs
IGNvbnN0IFFTdHJpbmdMaXN0JiBzZWxlY3RlZEZpbGVOYW1lcywgUXRXZWJQYWdlVUlDbGllbnQ6
OkZpbGVDaG9vc2VyVHlwZSk7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoY29uc3QgUVN0
cmluZyYpOwpAQCAtMTEyLDggKzExMCw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldFZpZXdJ
bkF0dGFjaGVkUHJvcGVydGllcyhRT2JqZWN0Kik7CiAKLSAgICBRU2NvcGVkUG9pbnRlcjxRdFdl
YlBhZ2VVSUNsaWVudD4gcGFnZVVJQ2xpZW50OwogICAgIFFTY29wZWRQb2ludGVyPFF0V2ViUGFn
ZUxvYWRDbGllbnQ+IHBhZ2VMb2FkQ2xpZW50OworICAgIFFTY29wZWRQb2ludGVyPFF0V2ViUGFn
ZVBvbGljeUNsaWVudD4gcGFnZVBvbGljeUNsaWVudDsKKyAgICBRU2NvcGVkUG9pbnRlcjxRdFdl
YlBhZ2VVSUNsaWVudD4gcGFnZVVJQ2xpZW50OwogCiAgICAgUVNjb3BlZFBvaW50ZXI8UVF1aWNr
V2ViUGFnZT4gcGFnZVZpZXc7CiAgICAgUVNjb3BlZFBvaW50ZXI8UXRWaWV3cG9ydEludGVyYWN0
aW9uRW5naW5lPiBpbnRlcmFjdGlvbkVuZ2luZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9DbGllbnRJbXBsLmNwcAppbmRleCA1Yzc1ZDg5OGI0MzU2YTAyMTE3ZTBlZGIyMGQ4MzcyZjk3
M2JiMGVhLi5mZDI2MWM4OWUyZDAwMjQwNGQ3ZTFjZTc2NWM3NTczNmU1NzU1YmNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwCkBAIC0yMiw5OSArMjIsMTMg
QEAKIAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgot
I2luY2x1ZGUgIldLVVJMUXQuaCIKLSNpbmNsdWRlIDxRdFBvbGljeUludGVyZmFjZS5oPgogI2lu
Y2x1ZGUgPFdLQXJyYXkuaD4KLSNpbmNsdWRlIDxXS0ZyYW1lLmg+Ci0jaW5jbHVkZSA8V0tGcmFt
ZVBvbGljeUxpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V0tQYWdlLmg+CiAjaW5jbHVkZSA8V0tTdHJp
bmcuaD4KICNpbmNsdWRlIDxXS1R5cGUuaD4KLSNpbmNsdWRlIDxXS1VSTFJlcXVlc3QuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotc3RhdGljIGlubGluZSBRdFBvbGljeUludGVyZmFj
ZSogdG9RdFBvbGljeUludGVyZmFjZShjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIEFT
U0VSVChjbGllbnRJbmZvKTsKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxRdFBvbGljeUlu
dGVyZmFjZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKLX0KLQotc3RhdGljIFF0
OjpNb3VzZUJ1dHRvbiB0b1F0TW91c2VCdXR0b24oV0tFdmVudE1vdXNlQnV0dG9uIGJ1dHRvbikK
LXsKLSAgICBzd2l0Y2ggKGJ1dHRvbikgewotICAgIGNhc2Uga1dLRXZlbnRNb3VzZUJ1dHRvbkxl
ZnRCdXR0b246Ci0gICAgICAgIHJldHVybiBRdDo6TGVmdEJ1dHRvbjsKLSAgICBjYXNlIGtXS0V2
ZW50TW91c2VCdXR0b25NaWRkbGVCdXR0b246Ci0gICAgICAgIHJldHVybiBRdDo6TWlkZGxlQnV0
dG9uOwotICAgIGNhc2Uga1dLRXZlbnRNb3VzZUJ1dHRvblJpZ2h0QnV0dG9uOgotICAgICAgICBy
ZXR1cm4gUXQ6OlJpZ2h0QnV0dG9uOwotICAgIH0KLSAgICByZXR1cm4gUXQ6Ok5vQnV0dG9uOwot
fQotCi1zdGF0aWMgUXQ6OktleWJvYXJkTW9kaWZpZXJzIHRvUXRLZXlib2FyZE1vZGlmaWVycyhX
S0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycykKLXsKLSAgICBRdDo6S2V5Ym9hcmRNb2RpZmllcnMg
cXRNb2RpZmllcnMgPSBRdDo6Tm9Nb2RpZmllcjsKLSAgICBpZiAobW9kaWZpZXJzICYga1dLRXZl
bnRNb2RpZmllcnNTaGlmdEtleSkKLSAgICAgICAgcXRNb2RpZmllcnMgfD0gUXQ6OlNoaWZ0TW9k
aWZpZXI7Ci0gICAgaWYgKG1vZGlmaWVycyAmIGtXS0V2ZW50TW9kaWZpZXJzQ29udHJvbEtleSkK
LSAgICAgICAgcXRNb2RpZmllcnMgfD0gUXQ6OkNvbnRyb2xNb2RpZmllcjsKLSAgICBpZiAobW9k
aWZpZXJzICYga1dLRXZlbnRNb2RpZmllcnNBbHRLZXkpCi0gICAgICAgIHF0TW9kaWZpZXJzIHw9
IFF0OjpBbHRNb2RpZmllcjsKLSAgICBpZiAobW9kaWZpZXJzICYga1dLRXZlbnRNb2RpZmllcnNN
ZXRhS2V5KQotICAgICAgICBxdE1vZGlmaWVycyB8PSBRdDo6TWV0YU1vZGlmaWVyOwotICAgIHJl
dHVybiBxdE1vZGlmaWVyczsKLX0KLQotc3RhdGljIHZvaWQgcXRfd2tfZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFt
ZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVy
cywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVz
dCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgUXRQb2xpY3lJbnRlcmZhY2UqIHBvbGlj
eUludGVyZmFjZSA9IHRvUXRQb2xpY3lJbnRlcmZhY2UoY2xpZW50SW5mbyk7Ci0gICAgV0tVUkxS
ZWYgcmVxdWVzdFVSTCA9IFdLVVJMUmVxdWVzdENvcHlVUkwocmVxdWVzdCk7Ci0gICAgUVVybCBx
VXJsID0gV0tVUkxDb3B5UVVybChyZXF1ZXN0VVJMKTsKLSAgICBXS1JlbGVhc2UocmVxdWVzdFVS
TCk7Ci0KLSAgICBRdFBvbGljeUludGVyZmFjZTo6UG9saWN5QWN0aW9uIGFjdGlvbiA9IHBvbGlj
eUludGVyZmFjZS0+bmF2aWdhdGlvblBvbGljeUZvclVSTChxVXJsLCB0b1F0TW91c2VCdXR0b24o
bW91c2VCdXR0b24pLCB0b1F0S2V5Ym9hcmRNb2RpZmllcnMobW9kaWZpZXJzKSk7Ci0gICAgc3dp
dGNoIChhY3Rpb24pIHsKLSAgICBjYXNlIFF0UG9saWN5SW50ZXJmYWNlOjpVc2U6Ci0gICAgICAg
IFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lcik7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUXRQb2xpY3lJbnRlcmZhY2U6OkRvd25sb2FkOgotICAgICAgICBXS0ZyYW1lUG9saWN5
TGlzdGVuZXJEb3dubG9hZChsaXN0ZW5lcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUXRQ
b2xpY3lJbnRlcmZhY2U6Oklnbm9yZToKLSAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVySWdu
b3JlKGxpc3RlbmVyKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZCBx
dF93a19kZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tVUkxSZXNwb25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3Qs
IFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFN0cmluZyB0eXBlID0gdG9JbXBsKHJlc3Bv
bnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpLm1pbWVUeXBlKCk7Ci0gICAgdHlwZS5tYWtlTG93ZXIo
KTsKLSAgICBib29sIGNhblNob3dNSU1FVHlwZSA9IHRvSW1wbChmcmFtZSktPmNhblNob3dNSU1F
VHlwZSh0eXBlKTsKLQotICAgIGlmIChXS1BhZ2VHZXRNYWluRnJhbWUocGFnZSkgPT0gZnJhbWUp
IHsKLSAgICAgICAgaWYgKGNhblNob3dNSU1FVHlwZSkgewotICAgICAgICAgICAgV0tGcmFtZVBv
bGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotCi0gICAgICAgIC8vIElmIHdlIGNhbid0IHVzZSAoc2hvdykgaXQgdGhlbiB3ZSBzaG91bGQg
ZG93bmxvYWQgaXQuCi0gICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lckRvd25sb2FkKGxpc3Rl
bmVyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIFdlIHNob3VsZCBpZ25vcmUg
ZG93bmxvYWRhYmxlIHRvcC1sZXZlbCBjb250ZW50IGZvciBzdWJmcmFtZXMsIHdpdGggYW4gZXhj
ZXB0aW9uIGZvciB0ZXh0L3htbCBhbmQgYXBwbGljYXRpb24veG1sIHNvIHdlIGNhbiBzdGlsbCBz
dXBwb3J0IEFjaWQzIHRlc3QuCi0gICAgLy8gSXQgbWFrZXMgdGhlIGJyb3dzZXIgaW50ZW50aW9u
YWxseSBiZWhhdmUgZGlmZmVyZW50bHkgd2hlbiBpdCBjb21lcyB0byB0ZXh0KGFwcGxpY2F0aW9u
KS94bWwgY29udGVudCBpbiBzdWJmcmFtZXMgdnMuIG1haW5mcmFtZS4KLSAgICBpZiAoIWNhblNo
b3dNSU1FVHlwZSAmJiAhKHR5cGUgPT0gInRleHQveG1sIiB8fCB0eXBlID09ICJhcHBsaWNhdGlv
bi94bWwiKSkgewotICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJJZ25vcmUobGlzdGVuZXIp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNl
KGxpc3RlbmVyKTsKLX0KLQogdm9pZCBxdF93a19kaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYg
bWVzc2FnZUJvZHksIGNvbnN0IHZvaWQqKQogewogICAgIGlmICghV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIk1lc3NhZ2VGcm9tTmF2aWdhdG9yUXRPYmplY3QiKSkK
QEAgLTEzNCwxNyArNDgsNiBAQCB2b2lkIHF0X3drX2RpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZQogICAgIHRvSW1wbChw
YWdlKS0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tTmF2aWdhdG9yUXRPYmplY3QodG9JbXBsKHN0cikt
PnN0cmluZygpKTsKIH0KIAotdm9pZCBzZXR1cFBhZ2VQb2xpY3lDbGllbnQoUXRQb2xpY3lJbnRl
cmZhY2UqIHBvbGljeUludGVyZmFjZSwgV2ViUGFnZVByb3h5KiB3ZWJQYWdlUHJveHkpCi17Ci0g
ICAgV0tQYWdlUG9saWN5Q2xpZW50IHBvbGljeUNsaWVudDsKLSAgICBtZW1zZXQoJnBvbGljeUNs
aWVudCwgMCwgc2l6ZW9mKFdLUGFnZVBvbGljeUNsaWVudCkpOwotICAgIHBvbGljeUNsaWVudC52
ZXJzaW9uID0ga1dLUGFnZVBvbGljeUNsaWVudEN1cnJlbnRWZXJzaW9uOwotICAgIHBvbGljeUNs
aWVudC5jbGllbnRJbmZvID0gcG9saWN5SW50ZXJmYWNlOwotICAgIHBvbGljeUNsaWVudC5kZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gcXRfd2tfZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbjsKLSAgICBwb2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UgPSBx
dF93a19kZWNpZGVQb2xpY3lGb3JSZXNwb25zZTsKLSAgICBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xp
ZW50KHRvQVBJKHdlYlBhZ2VQcm94eSksICZwb2xpY3lDbGllbnQpOwotfQotCiB2b2lkIHNldHVw
Q29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50KFdLQ29udGV4dFJlZiBjb250ZXh0KQogewogICAg
IFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50IGluamVjdGVkQnVuZGxlQ2xpZW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0NsaWVudEltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmgKaW5kZXggZDc3YWFiYWFkMmE5MGM3
ZjFlMzY3NmZhMDY3YWRlNzEzYjg4OWUyZC4uNWIyZjQzODI4ZGVlZTRhYmVhOTU4NjQyNjQ3ZDYy
YzEzZTE2OWQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0NsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5oCkBA
IC0yMiwxMyArMjIsNiBAQAogCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0NvbnRleHQuaD4KIAotbmFt
ZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBRdFBvbGljeUludGVyZmFjZTsKLWNsYXNzIFdlYlBhZ2VQ
cm94eTsKLX0KLQotdm9pZCBzZXR1cFBhZ2VQb2xpY3lDbGllbnQoV2ViS2l0OjpRdFBvbGljeUlu
dGVyZmFjZSosIFdlYktpdDo6V2ViUGFnZVByb3h5Kik7Ci0KIHZvaWQgc2V0dXBDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQoV0tDb250ZXh0UmVmKTsKIAogI2VuZGlmIC8qIENsaWVudEltcGxf
aCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UG9saWN5SW50
ZXJmYWNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQb2xpY3lJbnRlcmZhY2Uu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWE4YjEzZTIyOTNhMTk0NzI3Y2E0YzA0
OTAwMDFiN2RmNDQ5NTc2OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQb2xpY3lJbnRlcmZhY2UuaAor
KysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh
bTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwotCi0jaWZuZGVm
IFF0UG9saWN5SW50ZXJmYWNlX2gKLSNkZWZpbmUgUXRQb2xpY3lJbnRlcmZhY2VfaAotCi0jaW5j
bHVkZSA8UXRDb3JlL1FVcmw+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBRdFBvbGlj
eUludGVyZmFjZSB7Ci1wdWJsaWM6Ci0gICAgZW51bSBQb2xpY3lBY3Rpb24gewotICAgICAgICBV
c2UsCi0gICAgICAgIERvd25sb2FkLAotICAgICAgICBJZ25vcmUKLSAgICB9OwotCi0gICAgdmly
dHVhbCBQb2xpY3lBY3Rpb24gbmF2aWdhdGlvblBvbGljeUZvclVSTChjb25zdCBRVXJsJiwgUXQ6
Ok1vdXNlQnV0dG9uLCBRdDo6S2V5Ym9hcmRNb2RpZmllcnMpID0gMDsKLX07Ci0KLX0KLQotI2Vu
ZGlmIC8vIFF0UG9saWN5SW50ZXJmYWNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0V2ViUGFnZVBvbGljeUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWNmODM0ZWI5
YTdmNzAwOGM4YmExZjhhMzZlZTZiZjQ2OWJjMjExMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQuY3BwCkBAIC0wLDAg
KzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlF0V2ViUGFnZVBvbGljeUNsaWVudC5oIgorCisjaW5jbHVkZSAiV0tVUkxRdC5oIgorI2lu
Y2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgorI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcF9wLmgi
CisjaW5jbHVkZSA8V0tGcmFtZVBvbGljeUxpc3RlbmVyLmg+CisjaW5jbHVkZSA8V0tVUkxSZXF1
ZXN0Lmg+CisKK1F0V2ViUGFnZVBvbGljeUNsaWVudDo6UXRXZWJQYWdlUG9saWN5Q2xpZW50KFdL
UGFnZVJlZiBwYWdlUmVmLCBRUXVpY2tXZWJWaWV3KiB3ZWJWaWV3KQorICAgIDogbV93ZWJWaWV3
KHdlYlZpZXcpCit7CisgICAgV0tQYWdlUG9saWN5Q2xpZW50IHBvbGljeUNsaWVudDsKKyAgICBt
ZW1zZXQoJnBvbGljeUNsaWVudCwgMCwgc2l6ZW9mKFdLUGFnZVBvbGljeUNsaWVudCkpOworICAg
IHBvbGljeUNsaWVudC52ZXJzaW9uID0ga1dLUGFnZVBvbGljeUNsaWVudEN1cnJlbnRWZXJzaW9u
OworICAgIHBvbGljeUNsaWVudC5jbGllbnRJbmZvID0gdGhpczsKKyAgICBwb2xpY3lDbGllbnQu
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IGRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb247CisgICAgcG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvclJlc3BvbnNlID0gZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2U7CisgICAgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudChwYWdl
UmVmLCAmcG9saWN5Q2xpZW50KTsKK30KKworUXRXZWJQYWdlUG9saWN5Q2xpZW50OjpQb2xpY3lB
Y3Rpb24gUXRXZWJQYWdlUG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKGNvbnN0IFFVcmwmIHVybCwgUXQ6Ok1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBRdDo6S2V5
Ym9hcmRNb2RpZmllcnMga2V5Ym9hcmRNb2RpZmllcnMpCit7CisgICAgcmV0dXJuIG1fd2ViVmll
dy0+ZF9mdW5jKCktPm5hdmlnYXRpb25Qb2xpY3lGb3JVUkwodXJsLCBtb3VzZUJ1dHRvbiwga2V5
Ym9hcmRNb2RpZmllcnMpOworfQorCitzdGF0aWMgaW5saW5lIFF0V2ViUGFnZVBvbGljeUNsaWVu
dCogdG9RdFdlYlBhZ2VQb2xpY3lDbGllbnQoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAg
ICBBU1NFUlQoY2xpZW50SW5mbyk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXRXZWJQ
YWdlUG9saWN5Q2xpZW50Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworfQorCitz
dGF0aWMgUXQ6Ok1vdXNlQnV0dG9uIHRvUXRNb3VzZUJ1dHRvbihXS0V2ZW50TW91c2VCdXR0b24g
YnV0dG9uKQoreworICAgIHN3aXRjaCAoYnV0dG9uKSB7CisgICAgY2FzZSBrV0tFdmVudE1vdXNl
QnV0dG9uTGVmdEJ1dHRvbjoKKyAgICAgICAgcmV0dXJuIFF0OjpMZWZ0QnV0dG9uOworICAgIGNh
c2Uga1dLRXZlbnRNb3VzZUJ1dHRvbk1pZGRsZUJ1dHRvbjoKKyAgICAgICAgcmV0dXJuIFF0OjpN
aWRkbGVCdXR0b247CisgICAgY2FzZSBrV0tFdmVudE1vdXNlQnV0dG9uUmlnaHRCdXR0b246Cisg
ICAgICAgIHJldHVybiBRdDo6UmlnaHRCdXR0b247CisgICAgfQorICAgIHJldHVybiBRdDo6Tm9C
dXR0b247Cit9CisKK3N0YXRpYyBRdDo6S2V5Ym9hcmRNb2RpZmllcnMgdG9RdEtleWJvYXJkTW9k
aWZpZXJzKFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzKQoreworICAgIFF0OjpLZXlib2FyZE1v
ZGlmaWVycyBxdE1vZGlmaWVycyA9IFF0OjpOb01vZGlmaWVyOworICAgIGlmIChtb2RpZmllcnMg
JiBrV0tFdmVudE1vZGlmaWVyc1NoaWZ0S2V5KQorICAgICAgICBxdE1vZGlmaWVycyB8PSBRdDo6
U2hpZnRNb2RpZmllcjsKKyAgICBpZiAobW9kaWZpZXJzICYga1dLRXZlbnRNb2RpZmllcnNDb250
cm9sS2V5KQorICAgICAgICBxdE1vZGlmaWVycyB8PSBRdDo6Q29udHJvbE1vZGlmaWVyOworICAg
IGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1vZGlmaWVyc0FsdEtleSkKKyAgICAgICAgcXRNb2Rp
ZmllcnMgfD0gUXQ6OkFsdE1vZGlmaWVyOworICAgIGlmIChtb2RpZmllcnMgJiBrV0tFdmVudE1v
ZGlmaWVyc01ldGFLZXkpCisgICAgICAgIHF0TW9kaWZpZXJzIHw9IFF0OjpNZXRhTW9kaWZpZXI7
CisgICAgcmV0dXJuIHF0TW9kaWZpZXJzOworfQorCit2b2lkIFF0V2ViUGFnZVBvbGljeUNsaWVu
dDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYs
IFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZl
bnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQoreworICAgIFdLVVJMUmVmIHJlcXVlc3RVUkwgPSBXS1VSTFJlcXVlc3RDb3B5VVJM
KHJlcXVlc3QpOworICAgIFFVcmwgcVVybCA9IFdLVVJMQ29weVFVcmwocmVxdWVzdFVSTCk7Cisg
ICAgV0tSZWxlYXNlKHJlcXVlc3RVUkwpOworCisgICAgUG9saWN5QWN0aW9uIGFjdGlvbiA9IHRv
UXRXZWJQYWdlUG9saWN5Q2xpZW50KGNsaWVudEluZm8pLT5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKHFVcmwsIHRvUXRNb3VzZUJ1dHRvbihtb3VzZUJ1dHRvbiksIHRvUXRLZXlib2Fy
ZE1vZGlmaWVycyhtb2RpZmllcnMpKTsKKyAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgIGNhc2Ug
VXNlOgorICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIERvd25sb2FkOgorICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVu
ZXJEb3dubG9hZChsaXN0ZW5lcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSWdub3JlOgor
ICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJJZ25vcmUobGlzdGVuZXIpOworICAgICAgICBi
cmVhazsKKyAgICB9Cit9CisKK3ZvaWQgUXRXZWJQYWdlUG9saWN5Q2xpZW50OjpkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUkxSZXNw
b25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJS
ZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgU3RyaW5nIHR5cGUg
PSB0b0ltcGwocmVzcG9uc2UpLT5yZXNvdXJjZVJlc3BvbnNlKCkubWltZVR5cGUoKTsKKyAgICB0
eXBlLm1ha2VMb3dlcigpOworICAgIGJvb2wgY2FuU2hvd01JTUVUeXBlID0gdG9JbXBsKGZyYW1l
KS0+Y2FuU2hvd01JTUVUeXBlKHR5cGUpOworCisgICAgaWYgKFdLUGFnZUdldE1haW5GcmFtZShw
YWdlKSA9PSBmcmFtZSkgeworICAgICAgICBpZiAoY2FuU2hvd01JTUVUeXBlKSB7CisgICAgICAg
ICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgd2UgY2FuJ3QgdXNlIChzaG93KSBpdCB0
aGVuIHdlIHNob3VsZCBkb3dubG9hZCBpdC4KKyAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVy
RG93bmxvYWQobGlzdGVuZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gV2Ug
c2hvdWxkIGlnbm9yZSBkb3dubG9hZGFibGUgdG9wLWxldmVsIGNvbnRlbnQgZm9yIHN1YmZyYW1l
cywgd2l0aCBhbiBleGNlcHRpb24gZm9yIHRleHQveG1sIGFuZCBhcHBsaWNhdGlvbi94bWwgc28g
d2UgY2FuIHN0aWxsIHN1cHBvcnQgQWNpZDMgdGVzdC4KKyAgICAvLyBJdCBtYWtlcyB0aGUgYnJv
d3NlciBpbnRlbnRpb25hbGx5IGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIGl0IGNvbWVzIHRvIHRl
eHQoYXBwbGljYXRpb24pL3htbCBjb250ZW50IGluIHN1YmZyYW1lcyB2cy4gbWFpbmZyYW1lLgor
ICAgIGlmICghY2FuU2hvd01JTUVUeXBlICYmICEodHlwZSA9PSAidGV4dC94bWwiIHx8IHR5cGUg
PT0gImFwcGxpY2F0aW9uL3htbCIpKSB7CisgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lckln
bm9yZShsaXN0ZW5lcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBXS0ZyYW1lUG9s
aWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUG9saWN5Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXRXZWJQYWdlUG9saWN5Q2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQxMWJmNmYz
ODI5OWZkZjA1ODhmYzRjNTQ2YzdhOWYzOTIzYjgxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQb2xpY3lDbGllbnQuaApAQCAtMCwwICsx
LDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBRdFdlYlBhZ2VQb2xpY3lDbGllbnRf
aAorI2RlZmluZSBRdFdlYlBhZ2VQb2xpY3lDbGllbnRfaAorCisjaW5jbHVkZSA8UXRDb3JlL1FV
cmw+CisjaW5jbHVkZSA8V0tQYWdlLmg+CisKK2NsYXNzIFFRdWlja1dlYlZpZXc7CisKK2NsYXNz
IFF0V2ViUGFnZVBvbGljeUNsaWVudCB7CitwdWJsaWM6CisgICAgUXRXZWJQYWdlUG9saWN5Q2xp
ZW50KFdLUGFnZVJlZiwgUVF1aWNrV2ViVmlldyopOworCisgICAgZW51bSBQb2xpY3lBY3Rpb24g
eworICAgICAgICBVc2UsCisgICAgICAgIERvd25sb2FkLAorICAgICAgICBJZ25vcmUKKyAgICB9
OworCitwcml2YXRlOgorICAgIFBvbGljeUFjdGlvbiBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uKGNvbnN0IFFVcmwmLCBRdDo6TW91c2VCdXR0b24sIFF0OjpLZXlib2FyZE1vZGlmaWVy
cyk7CisKKyAgICAvLyBXS1BhZ2VQb2xpY3lDbGllbnQgY2FsbGJhY2tzLgorICAgIHN0YXRpYyB2
b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmLCBXS0ZyYW1lUmVm
LCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1
dHRvbiwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYsIFdLVHlwZVJl
ZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1VSTFJlc3BvbnNl
UmVmLCBXS1VSTFJlcXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiwgV0tUeXBlUmVm
IHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKworICAgIFFRdWlja1dlYlZpZXcq
IG1fd2ViVmlldzsKK307CisKKyNlbmRpZiAvLyBRdFdlYlBhZ2VQb2xpY3lDbGllbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAKaW5kZXggYzEw
NzczYmE5NDU0MGNjZTcyZjM5YmQzMzdkNmJmMGZhYThhZGNlZS4uZDJhNmQxY2E3ZjM3MjExNGFk
MDJlOTc5MjZiMzI2OWRjZTZjOWZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRXZWJQYWdlUHJveHkuY3BwCkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAiTmF0aXZl
V2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlF0UG9saWN5SW50ZXJmYWNlLmgiCiAj
aW5jbHVkZSAiUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmgiCiAjaW5jbHVkZSAiUXRXZWJV
bmRvQ29tbWFuZC5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgpAQCAtMTMzLDE0
ICsxMzIsMTMgQEAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbiBkcm9wQWN0aW9uVG9EcmFnT3BlcmF0
aW9uKFF0OjpEcm9wQWN0aW9ucyBhY3Rpb25zKQogICAgIHJldHVybiAoRHJhZ09wZXJhdGlvbily
ZXN1bHQ7CiB9CiAKLVF0V2ViUGFnZVByb3h5OjpRdFdlYlBhZ2VQcm94eShRUXVpY2tXZWJQYWdl
KiBxbWxXZWJQYWdlLCBRUXVpY2tXZWJWaWV3KiBxbWxXZWJWaWV3LCBRdFZpZXdwb3J0SW50ZXJh
Y3Rpb25FbmdpbmUqIHZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUsIFF0UG9saWN5SW50ZXJmYWNl
KiBwb2xpY3lJbnRlcmZhY2UsIFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJl
ZiBwYWdlR3JvdXBSZWYpCitRdFdlYlBhZ2VQcm94eTo6UXRXZWJQYWdlUHJveHkoUVF1aWNrV2Vi
UGFnZSogcW1sV2ViUGFnZSwgUVF1aWNrV2ViVmlldyogcW1sV2ViVmlldywgUXRWaWV3cG9ydElu
dGVyYWN0aW9uRW5naW5lKiB2aWV3cG9ydEludGVyYWN0aW9uRW5naW5lLCBXS0NvbnRleHRSZWYg
Y29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQogICAgIDogbV9xbWxXZWJQ
YWdlKHFtbFdlYlBhZ2UpCiAgICAgLCBtX3FtbFdlYlZpZXcocW1sV2ViVmlldykKICAgICAsIG1f
aW50ZXJhY3Rpb25FbmdpbmUodmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZSkKICAgICAsIG1fcGFu
R2VzdHVyZVJlY29nbml6ZXIodmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZSkKICAgICAsIG1fcGlu
Y2hHZXN0dXJlUmVjb2duaXplcih2aWV3cG9ydEludGVyYWN0aW9uRW5naW5lKQogICAgICwgbV90
YXBHZXN0dXJlUmVjb2duaXplcih2aWV3cG9ydEludGVyYWN0aW9uRW5naW5lLCB0aGlzKQotICAg
ICwgbV9wb2xpY3lJbnRlcmZhY2UocG9saWN5SW50ZXJmYWNlKQogICAgICwgbV9jb250ZXh0KGNv
bnRleHRSZWYgPyB0b0ltcGwoY29udGV4dFJlZikgOiBkZWZhdWx0V0tDb250ZXh0KCkpCiAgICAg
LCBtX3VuZG9TdGFjayhhZG9wdFB0cihuZXcgUVVuZG9TdGFjayh0aGlzKSkpCiAgICAgLCBtX25h
dmlnYXRvclF0T2JqZWN0RW5hYmxlZChmYWxzZSkKQEAgLTE1NCw4ICsxNTIsNiBAQCBRdFdlYlBh
Z2VQcm94eTo6UXRXZWJQYWdlUHJveHkoUVF1aWNrV2ViUGFnZSogcW1sV2ViUGFnZSwgUVF1aWNr
V2ViVmlldyogcW1sV2ViVgogdm9pZCBRdFdlYlBhZ2VQcm94eTo6aW5pdCgpCiB7CiAgICAgbV93
ZWJQYWdlUHJveHktPmluaXRpYWxpemVXZWJQYWdlKCk7Ci0gICAgaWYgKG1fcG9saWN5SW50ZXJm
YWNlKQotICAgICAgICBzZXR1cFBhZ2VQb2xpY3lDbGllbnQobV9wb2xpY3lJbnRlcmZhY2UsIG1f
d2ViUGFnZVByb3h5LmdldCgpKTsKIH0KIAogUXRXZWJQYWdlUHJveHk6On5RdFdlYlBhZ2VQcm94
eSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oCmluZGV4
IGNhMzY4MjAwZTgyODE5NDkwMThkN2NlNDIwODlmMjU4ODUxNzgzMjEuLmIwNGVlMGViM2Q1MTBh
MmEyOTRhMzlkNTA2OWY4M2FmMmM5ZWE3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdFdlYlBhZ2VQcm94eS5oCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiUXREb3du
bG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJRdFBhbkdlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW5j
bHVkZSAiUXRQaW5jaEdlc3R1cmVSZWNvZ25pemVyLmgiCi0jaW5jbHVkZSAiUXRQb2xpY3lJbnRl
cmZhY2UuaCIKICNpbmNsdWRlICJRdFRhcEdlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW5jbHVkZSAi
U2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKQEAgLTc0
LDcgKzczLDcgQEAgcHVibGljOgogICAgICAgICBXZWJBY3Rpb25Db3VudAogICAgIH07CiAKLSAg
ICBRdFdlYlBhZ2VQcm94eShRUXVpY2tXZWJQYWdlKiwgUVF1aWNrV2ViVmlldyosIFdlYktpdDo6
UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKiA9IDAsIFdlYktpdDo6UXRQb2xpY3lJbnRlcmZh
Y2UqID0gMCwgV0tDb250ZXh0UmVmID0gMCwgV0tQYWdlR3JvdXBSZWYgPSAwKTsKKyAgICBRdFdl
YlBhZ2VQcm94eShRUXVpY2tXZWJQYWdlKiwgUVF1aWNrV2ViVmlldyosIFdlYktpdDo6UXRWaWV3
cG9ydEludGVyYWN0aW9uRW5naW5lKiA9IDAsIFdLQ29udGV4dFJlZiA9IDAsIFdLUGFnZUdyb3Vw
UmVmID0gMCk7CiAgICAgflF0V2ViUGFnZVByb3h5KCk7CiAKICAgICB2aXJ0dWFsIFBhc3NPd25Q
dHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpOwpAQCAtMjEzLDcg
KzIxMiw2IEBAIHByb3RlY3RlZDoKICAgICBRdFBhbkdlc3R1cmVSZWNvZ25pemVyIG1fcGFuR2Vz
dHVyZVJlY29nbml6ZXI7CiAgICAgUXRQaW5jaEdlc3R1cmVSZWNvZ25pemVyIG1fcGluY2hHZXN0
dXJlUmVjb2duaXplcjsKICAgICBRdFRhcEdlc3R1cmVSZWNvZ25pemVyIG1fdGFwR2VzdHVyZVJl
Y29nbml6ZXI7Ci0gICAgV2ViS2l0OjpRdFBvbGljeUludGVyZmFjZSogY29uc3QgbV9wb2xpY3lJ
bnRlcmZhY2U7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBoYW5kbGVLZXlQcmVzc0V2ZW50KFFLZXlF
dmVudCopOwo=
</data>
<flag name="review"
          id="115354"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>