<?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>111751</bug_id>
          
          <creation_ts>2013-03-07 10:03:45 -0800</creation_ts>
          <short_desc>[Qt][WK2] Refactor handling of content suspension to properly cover corner cases</short_desc>
          <delta_ts>2013-03-20 09:47:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>110211</blocked>
    
    <blocked>112679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andras Becsi">abecsi</reporter>
          <assigned_to name="Andras Becsi">abecsi</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>jturcotte</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>850202</commentid>
    <comment_count>0</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-03-07 10:03:45 -0800</bug_when>
    <thetext>[Qt][WK2] Refactor handling of content suspension to properly cover corner cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850216</commentid>
    <comment_count>1</comment_count>
      <attachid>192037</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-03-07 10:12:38 -0800</bug_when>
    <thetext>Created attachment 192037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850225</commentid>
    <comment_count>2</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-03-07 10:14:55 -0800</bug_when>
    <thetext>*** Bug 111081 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852361</commentid>
    <comment_count>3</comment_count>
      <attachid>192037</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-11 08:41:11 -0700</bug_when>
    <thetext>Comment on attachment 192037
Patch

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

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:315
&gt; +void PageViewportController::suspendContent()
&gt; +{
&gt;      m_webPageProxy-&gt;suspendActiveDOMObjectsAndAnimations();
&gt;  }

With those modifications could suspendContent, resumeContent and hasSuspendedContent be removed and directly accessed through WebPageProxy?

&gt; Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp:174
&gt; +        ASSERT(!scrollAnimationActive());

What does this protect, would anything break if this was the case?
There is also already a similar guard in animateContentRectVisible.

&gt; Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp:192
&gt; +    ++m_activeSuspensionCount;

I see this as a violation of the abstraction, it dupplicates logic and this could lead to problems if the code evolves in some wicked way.
How about having some kind of &quot;guardOnly&quot; flag/property in a m_touchSuspensionGuard SuspensionController that would do the same except triggering the call to suspendContent()?

&gt; Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.h:109
&gt; +        SuspensionController(PageViewportControllerClientQt* parent)

&quot;parent&quot; is usually used in a hierarchy, maybe just &quot;client&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854370</commentid>
    <comment_count>4</comment_count>
      <attachid>192939</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-03-13 09:46:47 -0700</bug_when>
    <thetext>Created attachment 192939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857099</commentid>
    <comment_count>5</comment_count>
      <attachid>193559</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-03-18 07:31:06 -0700</bug_when>
    <thetext>Created attachment 193559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857101</commentid>
    <comment_count>6</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-03-18 07:35:15 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=193559) [details]
&gt; Patch
Rebased the original patch and made some renames to better indicate the responsibilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857152</commentid>
    <comment_count>7</comment_count>
      <attachid>193572</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-03-18 08:48:21 -0700</bug_when>
    <thetext>Created attachment 193572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857153</commentid>
    <comment_count>8</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-03-18 08:49:18 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=193572) [details]
&gt; Patch

Stripped out some unrelated changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857156</commentid>
    <comment_count>9</comment_count>
      <attachid>193572</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-18 08:52:51 -0700</bug_when>
    <thetext>Comment on attachment 193572
Patch

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

&gt; Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp:48
&gt; +    , m_touchInteraction(this, false /* shouldSuspend */)

Nit: I think we usually put the comment before the value.

Otherwise it LGTM. You really need owners to look at the WebPageProxy change, in particular.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857157</commentid>
    <comment_count>10</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-18 08:54:29 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Otherwise it LGTM. You really need owners to look at the WebPageProxy change, in particular.

@Benjamin, do you have a minute to check it out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858791</commentid>
    <comment_count>11</comment_count>
      <attachid>193572</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-19 15:18:26 -0700</bug_when>
    <thetext>Comment on attachment 193572
Patch

I don&apos;t really have time to review for correctness. The changes on WebPageProxy are fine. Signed off by me for WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859493</commentid>
    <comment_count>12</comment_count>
      <attachid>193572</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-20 09:36:42 -0700</bug_when>
    <thetext>Comment on attachment 193572
Patch

Thanks, r=me then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859502</commentid>
    <comment_count>13</comment_count>
      <attachid>193572</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-03-20 09:47:38 -0700</bug_when>
    <thetext>Comment on attachment 193572
Patch

Clearing flags on attachment: 193572

Committed r146355: &lt;http://trac.webkit.org/changeset/146355&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859503</commentid>
    <comment_count>14</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2013-03-20 09:47:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192037</attachid>
            <date>2013-03-07 10:12:38 -0800</date>
            <delta_ts>2013-03-13 09:46:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111751-20130307190624.patch</filename>
            <type>text/plain</type>
            <size>16457</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmRmZmQ3NDVhZTM4Zjli
ODNlZjM0NGRmYjAxOTg1YjFkZTc4NGM1NC4uMWYzYjY4ZDVkY2ZhZDI5OTZhYWM2ZWZlZDI2NTJl
NTU2ZjJhMGEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAzLTA3ICBBbmRy
YXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAZGlnaWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBS
ZWZhY3RvciBoYW5kbGluZyBvZiBjb250ZW50IHN1c3BlbnNpb24gdG8gcHJvcGVybHkgY292ZXIg
Y29ybmVyIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTE3NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgY3VycmVudCBzdXNwZW5kIC8gcmVzdW1lIGluZnJhc3RydWN0dXJlIHR1cm5lZCBv
dXQgdG8gYmUgaW5zdWZmaWNpZW50IHRvIGNvdmVyCisgICAgICAgIGFsbCBjb3JuZXIgY2FzZXMg
ZHVyaW5nIHRyYW5zaXRpb25zIGJldHdlZW4gZ2VzdHVyZXMgb2YgY29tcGxleCBnZXN0dXJlIGNo
YWlucy4KKworICAgICAgICBUaGUgcmVxdWlyZW1lbnRzIGZvciByb2J1c3Qgc3VzcGVuZCAvIHJl
c3VtZSBoYW5kbGluZyBhcmU6CisgICAgICAgICAgICAtIEtlZXAgdGhlIGNvbnRlbnQgc3VzcGVu
ZGVkIHdoaWxlIHRoZSB1c2VyIGlzIGNvbnRpbnVvdXNseSBpbnRlcmFjdGluZywKKyAgICAgICAg
ZWcuIGRvZXMgbm90IGxpZnQgdGhlIGZpbmdlciBiZXR3ZWVuIHRyYW5zaXRpb24gZnJvbSBhIHBh
biB0byBhIHBpbmNoIGdlc3R1cmUKKyAgICAgICAgYW5kIHZpY2UgdmVyc2EuCisgICAgICAgICAg
ICAtIFRoZSBjb250ZW50IHNob3VsZCBub3QgYmUgc3VzcGVuZGVkIHVubmVjZXNzYXJpbHkgKGxp
a2UgZm9yIGEgdGFwIGdlc3R1cmUpLAorICAgICAgICBvbmx5IGR1cmluZyBwYW5uaW5nIGFuZCBz
Y3JvbGwgYW5pbWF0aW9uIChmbGljayksIGFzIHdlbGwgYXMgcGluY2ggem9vbSBhbmQgc2NhbGUK
KyAgICAgICAgYW5pbWF0aW9uIChhbHNvIGluY2x1ZGVzIGRvdWJsZS10YXAtdG8tem9vbSkuCisg
ICAgICAgICAgICAtIFRoZSBjb250ZW50IHNob3VsZCBuZXZlciBlbmQgdXAgc3R1Y2sgaW4gc3Vz
cGVuZGVkIHN0YXRlIGFmdGVyIGxvbmcgZ2VzdHVyZQorICAgICAgICBjaGFpbnMgYW5kIGNvbnRp
bnVvdXMgaW50ZXJhY3Rpb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCByZWludHJvZHVjZXMgcmVm
ZXJlbmNlIGNvdW50aW5nIGJhc2VkIHN1c3BlbnNpb24gaW4gZm9ybSBvZiBhIG5ldworICAgICAg
ICBTdXNwZW5zaW9uQ29udHJvbGxlciBtZW1iZXIgY2xhc3MgdG8gbWFrZSBpdCBwb3NzaWJsZSB0
byByZWxpYWJseSBjb250cm9sIHRoZQorICAgICAgICBzdXNwZW5kIC8gcmVzdW1lIGN5Y2xlcyBk
dXJpbmcgc2Nyb2xsaW5nIGFuZCBzY2FsaW5nLgorICAgICAgICBEdXJpbmcgY29udGludW91cyBn
ZXN0dXJlcywgd2hpbGUgdGhlIHVzZXIgaXMgaW50ZXJhY3RpbmcsIHRoZSByZWZlcmVuY2UgY291
bnQgaXMKKyAgICAgICAgaW5jcmVhc2VkIHdpdGhvdXQgYWN0dWFsbHkgc3VzcGVuZGluZyB0aGUg
Y29udGVudCB0byBwcmV2ZW50IHJlc3VtaW5nIHVubmVjZXNzYXJpbHkKKyAgICAgICAgZHVyaW5n
IGNvbnRpbnVvdXMgaW50ZXJhY3Rpb24uIEF0IHRoZSBzYW1lIHRpbWUgdGhpcyBhbHNvIGFzc3Vy
ZXMgdGhhdCB0aGUgcGFnZSBpcworICAgICAgICBub3Qgc3VzcGVuZGVkIGZvciBzaW1wbGUgdGFw
IGdlc3R1cmVzLCB3aGljaCB3YXMgYSBzaWRlLWVmZmVjdCBvZiB0aGUgcHJldmlvdXMKKyAgICAg
ICAgYXBwcm9hY2ggYmFzZWQgb24gdXBkYXRlIGRlZmVycmVycy4KKyAgICAgICAgVGhlIG5ld2x5
IGFkZGVkIGZ1bmN0aW9uYWxpdHkgcmVwbGFjZXMgYm9vbGVhbiBtZW1iZXJzIHRoYXQgdHJpZWQg
dG8gYWNoaXZlIHRoZQorICAgICAgICBhYm92ZSByZXF1aXJlbWVudHMuCisgICAgICAgIEFkZGl0
aW9uYWxseSB0aGlzIHBhdGNoIGFsc28gcmVtb3ZlcyB0aGUgcmVkdW5kYW50IG1faGFzU3VzcGVu
ZGVkQ29udGVudCBtZW1iZXIKKyAgICAgICAgZnJvbSB0aGUgUGFnZVZpZXdwb3J0Q29udHJvbGxl
ciBzaW5jZSBXZWJQYWdlUHJveHkgYWxyZWFkeSBrZWVwcyB0aGlzIGluZm9ybWF0aW9uLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6cGFnZURpZFJlcXVlc3RT
Y3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjpoYXNTdXNw
ZW5kZWRDb250ZW50KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6
c3VzcGVuZENvbnRlbnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVy
OjpyZXN1bWVDb250ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJv
bGxlci5oOgorCisgICAgICAgICAgICBSZW1vdmUgc3VwZXJmbHVvdXMgVVNFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpIGd1YXJkIGZyb20gaGVhZGVyIGZpbGUuCisKKyAgICAgICAgKFBhZ2VWaWV3cG9y
dENvbnRyb2xsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphcmVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9u
c1N1c3BlbmRlZCk6CisKKyAgICAgICAgICAgIEFkZCBnZXR0ZXIgZnVuY3Rpb24gZm9yIHRoZSBj
dXJyZW50IHN1c3BlbnNpb24gc3RhdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdw
b3J0Q29udHJvbGxlckNsaWVudFF0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OlN1c3BlbnNp
b25Db250cm9sbGVyOjplbmFibGUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250
cm9sbGVyQ2xpZW50UXQ6OlN1c3BlbnNpb25Db250cm9sbGVyOjpkaXNhYmxlKToKKyAgICAgICAg
KFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjphbmltYXRlQ29udGVudFJl
Y3RWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dFF0OjpmbGlja01vdmVTdGFydGVkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudFF0OjpmbGlja01vdmVFbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGFnZUl0ZW1Qb3NpdGlvbkNoYW5nZWQpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnNjYWxlQW5pbWF0
aW9uU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxl
ckNsaWVudFF0Ojp0b3VjaEJlZ2luKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudFF0Ojp0b3VjaEVuZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRRdDo6Y2FuY2VsU2Nyb2xsQW5pbWF0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpwaW5jaEdlc3R1cmVTdGFydGVk
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpwaW5j
aEdlc3R1cmVSZXF1ZXN0VXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudFF0OjpwaW5jaEdlc3R1cmVFbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGluY2hHZXN0dXJlQ2FuY2VsbGVkKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0Lmg6Cisg
ICAgICAgIChTdXNwZW5zaW9uQ29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3
cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6U3VzcGVuc2lvbkNvbnRyb2xsZXI6OlN1c3BlbnNpb25D
b250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dFF0OjpTdXNwZW5zaW9uQ29udHJvbGxlcjo6aXNBY3RpdmUpOgorICAgICAgICAoUGFnZVZpZXdw
b3J0Q29udHJvbGxlckNsaWVudFF0KToKKwogMjAxMy0wMy0wNSAgR3VzdGF2byBOb3JvbmhhIFNp
bHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBbR1RLXSBFbmFibGUgdHJhbnNsYXRpb25z
IGZvciBXZWJLaXQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZp
ZXdwb3J0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdw
b3J0Q29udHJvbGxlci5jcHAKaW5kZXggMzFkMGM3YzFmMDM3ZjY4ZTM2ODgxZTczYmQ4N2RhMzc2
OGY2OGQzYi4uYjczMjRhZWJmZmQzZDE5YjJhZTM1OWM5MTlkMmI5NDc0YjQ4OWZlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNw
cApAQCAtNDUsNyArNDUsNiBAQCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRD
b250cm9sbGVyKFdlYktpdDo6V2ViUGFnZVByb3h5KiBwcm94eSwgUGFnZQogICAgICwgbV9hbGxv
d3NVc2VyU2NhbGluZyhmYWxzZSkKICAgICAsIG1fbWluaW11bVNjYWxlVG9GaXQoMSkKICAgICAs
IG1faW5pdGlhbGx5Rml0VG9WaWV3cG9ydCh0cnVlKQotICAgICwgbV9oYXNTdXNwZW5kZWRDb250
ZW50KGZhbHNlKQogICAgICwgbV9oYWRVc2VySW50ZXJhY3Rpb24oZmFsc2UpCiAgICAgLCBtX3Bh
Z2VTY2FsZUZhY3RvcigxKQogICAgICwgbV9wZW5kaW5nUG9zaXRpb25DaGFuZ2UoZmFsc2UpCkBA
IC0yMjYsNyArMjI1LDcgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpwYWdlVHJhbnNp
dGlvblZpZXdwb3J0UmVhZHkoKQogdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpwYWdlRGlk
UmVxdWVzdFNjcm9sbChjb25zdCBJbnRQb2ludCYgY3NzUG9zaXRpb24pCiB7CiAgICAgLy8gSWdu
b3JlIHRoZSByZXF1ZXN0IGlmIHN1c3BlbmRlZC4gQ2FuIG9ubHkgaGFwcGVuIGR1ZSB0byBkZWxh
eSBpbiBldmVudCBkZWxpdmVyeS4KLSAgICBpZiAobV9oYXNTdXNwZW5kZWRDb250ZW50KQorICAg
IGlmIChoYXNTdXNwZW5kZWRDb250ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEZsb2F0
UG9pbnQgYm91bmRQb3NpdGlvbiA9IGJvdW5kQ29udGVudHNQb3NpdGlvbihGbG9hdFBvaW50KGNz
c1Bvc2l0aW9uKSk7CkBAIC0zMDUsMjEgKzMwNCwxOCBAQCBGbG9hdFNpemUgUGFnZVZpZXdwb3J0
Q29udHJvbGxlcjo6dmlzaWJsZUNvbnRlbnRzU2l6ZSgpIGNvbnN0CiAgICAgcmV0dXJuIEZsb2F0
U2l6ZShtX3ZpZXdwb3J0U2l6ZS53aWR0aCgpIC8gbV9wYWdlU2NhbGVGYWN0b3IsIG1fdmlld3Bv
cnRTaXplLmhlaWdodCgpIC8gbV9wYWdlU2NhbGVGYWN0b3IpOwogfQogCi12b2lkIFBhZ2VWaWV3
cG9ydENvbnRyb2xsZXI6OnN1c3BlbmRDb250ZW50KCkKK2Jvb2wgUGFnZVZpZXdwb3J0Q29udHJv
bGxlcjo6aGFzU3VzcGVuZGVkQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKG1faGFzU3VzcGVu
ZGVkQ29udGVudCkKLSAgICAgICAgcmV0dXJuOworICAgIHJldHVybiBtX3dlYlBhZ2VQcm94eS0+
YXJlQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnNTdXNwZW5kZWQoKTsKK30KIAotICAgIG1f
aGFzU3VzcGVuZGVkQ29udGVudCA9IHRydWU7Cit2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6
OnN1c3BlbmRDb250ZW50KCkKK3sKICAgICBtX3dlYlBhZ2VQcm94eS0+c3VzcGVuZEFjdGl2ZURP
TU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiB9CiAKIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxl
cjo6cmVzdW1lQ29udGVudCgpCiB7Ci0gICAgaWYgKCFtX2hhc1N1c3BlbmRlZENvbnRlbnQpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIG1faGFzU3VzcGVuZGVkQ29udGVudCA9IGZhbHNlOwogICAg
IG1fd2ViUGFnZVByb3h5LT5yZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xs
ZXIuaAppbmRleCAzNWQ0YjUzM2QyMDcwMmViMjlhMmMyMmQ3MzQyOTBiZDI0YmJkNjAzLi5jZmFj
OTQzYTA4ODdiOGVlMzMzY2U2NmRiYmI5ZmEyOWMzYmEyMjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKQEAgLTIyLDggKzIyLDYg
QEAKICNpZm5kZWYgUGFnZVZpZXdwb3J0Q29udHJvbGxlcl9oCiAjZGVmaW5lIFBhZ2VWaWV3cG9y
dENvbnRyb2xsZXJfaAogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0KICNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+CkBAIC02MCw3ICs1OCw3IEBAIHB1YmxpYzoK
IAogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSB2aXNpYmxlQ29udGVudHNTaXplKCkgY29uc3Q7CiAK
LSAgICBib29sIGhhc1N1c3BlbmRlZENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1N1c3Bl
bmRlZENvbnRlbnQ7IH0KKyAgICBib29sIGhhc1N1c3BlbmRlZENvbnRlbnQoKSBjb25zdDsKICAg
ICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faGFkVXNlckludGVy
YWN0aW9uOyB9CiAgICAgYm9vbCBhbGxvd3NVc2VyU2NhbGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
YWxsb3dzVXNlclNjYWxpbmc7IH0KIApAQCAtMTE3LDYgKzExNSw0IEBAIGJvb2wgZnV6enlDb21w
YXJlKGZsb2F0LCBmbG9hdCwgZmxvYXQgZXBzaWxvbik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCi0jZW5kaWYKLQogI2VuZGlmIC8vIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGQ4NTMxZTIyNmVlMTcxMmRlY2E4
M2M5YjZhNTcwODQ4YWFjZjI5OTAuLmY3ZjQ1ZGYwMzM3YjdjMzQ5MmUxYzQ0MDJiN2ZlNTE0YTZj
MTYzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQ1Niw2
ICs0NTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKGNv
bnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBjdXN0b21UZXh0RW5jb2RpbmdOYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9jdXN0b21UZXh0RW5jb2RpbmdOYW1lOyB9CiAKKyAgICBib29sIGFyZUFjdGl2
ZURPTU9iamVjdHNBbmRBbmltYXRpb25zU3VzcGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1Bh
Z2VTdXNwZW5kZWQ7IH0KICAgICB2b2lkIHJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRp
b25zKCk7CiAgICAgdm9pZCBzdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmNwcAppbmRleCBkN2UxY2QxMWE2YjIyMzU3ZDkxOTAz
ODllY2IzNTQyMTM2ZTRhYzUyLi5jNjQyNjAzZTYzMTc1ZDZmOTVjNjJkY2FjNjRjYzIwMjQ2Yzhh
ZTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmNwcApAQCAtNDEsMTIgKzQxLDEzIEBAIHN0
YXRpYyBjb25zdCBpbnQga1NjYWxlQW5pbWF0aW9uRHVyYXRpb25NaWxsaXMgPSAyNTA7CiBQYWdl
Vmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRR
dChRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydEl0ZW0sIFFRdWlja1dlYlBhZ2UqIHBhZ2VJdGVtKQog
ICAgIDogbV92aWV3cG9ydEl0ZW0odmlld3BvcnRJdGVtKQogICAgICwgbV9wYWdlSXRlbShwYWdl
SXRlbSkKKyAgICAsIG1fc2NhbGVTdXNwZW5zaW9uKHRoaXMpCisgICAgLCBtX3Njcm9sbFN1c3Bl
bnNpb24odGhpcykKICAgICAsIG1fc2NhbGVBbmltYXRpb24obmV3IFNjYWxlQW5pbWF0aW9uKHRo
aXMpKQorICAgICwgbV9hY3RpdmVTdXNwZW5zaW9uQ291bnQoMCkKICAgICAsIG1fcGluY2hTdGFy
dFNjYWxlKC0xKQogICAgICwgbV9sYXN0Q29tbWl0dGVkU2NhbGUoLTEpCiAgICAgLCBtX3pvb21P
dXRTY2FsZSgwKQotICAgICwgbV9pc1VzZXJJbnRlcmFjdGluZyhmYWxzZSkKLSAgICAsIG1faWdu
b3JlVmlld3BvcnRDaGFuZ2VzKGZhbHNlKQogewogICAgIG1fc2NhbGVBbmltYXRpb24tPnNldER1
cmF0aW9uKGtTY2FsZUFuaW1hdGlvbkR1cmF0aW9uTWlsbGlzKTsKICAgICBtX3NjYWxlQW5pbWF0
aW9uLT5zZXRFYXNpbmdDdXJ2ZShRRWFzaW5nQ3VydmU6Ok91dEN1YmljKTsKQEAgLTc2LDYgKzc3
LDI3IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpTY2FsZUFuaW1hdGlv
bjo6dXBkYXRlQ3VycmVudFZhbHVlKGNvbnN0IFFWCiAgICAgbV9jb250cm9sbGVyQ2xpZW50LT5z
ZXRDb250ZW50UmVjdFZpc2libGVQb3NpdGlvbkF0U2NhbGUoaXRlbVJlY3QudG9wTGVmdCgpLCBp
dGVtU2NhbGUpOwogfQogCit2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6U3Vz
cGVuc2lvbkNvbnRyb2xsZXI6OmVuYWJsZSgpCit7CisgICAgaWYgKG1faXNBY3RpdmUpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1faXNBY3RpdmUgPSB0cnVlOworICAgIG1fY29udHJvbGxlckNs
aWVudC0+bV9jb250cm9sbGVyLT5zdXNwZW5kQ29udGVudCgpOworICAgICsrKG1fY29udHJvbGxl
ckNsaWVudC0+bV9hY3RpdmVTdXNwZW5zaW9uQ291bnQpOworfQorCit2b2lkIFBhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRRdDo6U3VzcGVuc2lvbkNvbnRyb2xsZXI6OmRpc2FibGUoKQorewor
ICAgIGlmICghbV9pc0FjdGl2ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pc0FjdGl2ZSA9
IGZhbHNlOworICAgIEFTU0VSVChtX2NvbnRyb2xsZXJDbGllbnQtPm1fYWN0aXZlU3VzcGVuc2lv
bkNvdW50ID4gMCk7CisgICAgaWYgKCEoLS0obV9jb250cm9sbGVyQ2xpZW50LT5tX2FjdGl2ZVN1
c3BlbnNpb25Db3VudCkpKQorICAgICAgICBtX2NvbnRyb2xsZXJDbGllbnQtPm1fY29udHJvbGxl
ci0+cmVzdW1lQ29udGVudCgpOworfQorCiBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6
On5QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQoKQogewogfQpAQCAtMTAzLDcgKzEyNSw4
IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjphbmltYXRlQ29udGVudFJl
Y3RWaXNpYmxlKGNvbnN0IFFSZWN0RiYgY29uCiAKICAgICBRUmVjdEYgdmlld3BvcnRSZWN0SW5D
b250ZW50Q29vcmRzID0gbV92aWV3cG9ydEl0ZW0tPm1hcFJlY3RUb1dlYkNvbnRlbnQobV92aWV3
cG9ydEl0ZW0tPmJvdW5kaW5nUmVjdCgpKTsKICAgICBpZiAoY29udGVudFJlY3QgPT0gdmlld3Bv
cnRSZWN0SW5Db250ZW50Q29vcmRzKSB7Ci0gICAgICAgIHJlc3VtZUFuZFVwZGF0ZUNvbnRlbnQo
KTsKKyAgICAgICAgbV9zY2FsZVN1c3BlbnNpb24uZGlzYWJsZSgpOworICAgICAgICB1cGRhdGVW
aWV3cG9ydENvbnRyb2xsZXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTIxLDIy
ICsxNDQsMjAgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OmFuaW1hdGVD
b250ZW50UmVjdFZpc2libGUoY29uc3QgUVJlY3RGJiBjb24KIAogdm9pZCBQYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50UXQ6OmZsaWNrTW92ZVN0YXJ0ZWQoKQogewotICAgIG1fY29udHJvbGxl
ci0+c3VzcGVuZENvbnRlbnQoKTsKLQorICAgIG1fc2Nyb2xsU3VzcGVuc2lvbi5lbmFibGUoKTsK
ICAgICBtX2xhc3RTY3JvbGxQb3NpdGlvbiA9IG1fdmlld3BvcnRJdGVtLT5jb250ZW50UG9zKCk7
CiB9CiAKIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpmbGlja01vdmVFbmRl
ZCgpCiB7CiAgICAgLy8gVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRoZSBlbmQgb2YgdGhlIHBh
biBvciBwYW4ga2luZXRpYyBhbmltYXRpb24uCi0KLSAgICBpZiAoIW1faXNVc2VySW50ZXJhY3Rp
bmcpCi0gICAgICAgIHJlc3VtZUFuZFVwZGF0ZUNvbnRlbnQoKTsKKyAgICBtX3Njcm9sbFN1c3Bl
bnNpb24uZGlzYWJsZSgpOworICAgIHVwZGF0ZVZpZXdwb3J0Q29udHJvbGxlcigpOwogfQogCiB2
b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGFnZUl0ZW1Qb3NpdGlvbkNoYW5n
ZWQoKQogewotICAgIGlmIChtX2lnbm9yZVZpZXdwb3J0Q2hhbmdlcykKKyAgICBpZiAobV9zY2Fs
ZVN1c3BlbnNpb24uaXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUVBvaW50RiBu
ZXdQb3NpdGlvbiA9IG1fdmlld3BvcnRJdGVtLT5jb250ZW50UG9zKCk7CkBAIC0xNTAsMTMgKzE3
MSwxMiBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6c2NhbGVBbmltYXRp
b25TdGF0ZUNoYW5nZWQoUUFic3RyYWN0QW5pbWF0aQogewogICAgIHN3aXRjaCAobmV3U3RhdGUp
IHsKICAgICBjYXNlIFFBYnN0cmFjdEFuaW1hdGlvbjo6UnVubmluZzoKLSAgICAgICAgbV9pZ25v
cmVWaWV3cG9ydENoYW5nZXMgPSB0cnVlOwotICAgICAgICBtX3ZpZXdwb3J0SXRlbS0+Y2FuY2Vs
RmxpY2soKTsKLSAgICAgICAgbV9jb250cm9sbGVyLT5zdXNwZW5kQ29udGVudCgpOworICAgICAg
ICBBU1NFUlQoIXNjcm9sbEFuaW1hdGlvbkFjdGl2ZSgpKTsKKyAgICAgICAgbV9zY2FsZVN1c3Bl
bnNpb24uZW5hYmxlKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUUFic3RyYWN0QW5pbWF0
aW9uOjpTdG9wcGVkOgotICAgICAgICBtX2lnbm9yZVZpZXdwb3J0Q2hhbmdlcyA9IGZhbHNlOwot
ICAgICAgICByZXN1bWVBbmRVcGRhdGVDb250ZW50KCk7CisgICAgICAgIG1fc2NhbGVTdXNwZW5z
aW9uLmRpc2FibGUoKTsKKyAgICAgICAgdXBkYXRlVmlld3BvcnRDb250cm9sbGVyKCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtMTY3LDEzICsxODcs
MTggQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnRvdWNoQmVnaW4oKQog
ewogICAgIG1fY29udHJvbGxlci0+c2V0SGFkVXNlckludGVyYWN0aW9uKHRydWUpOwogCi0gICAg
Ly8gUHJldmVudHMgcmVzdW1pbmcgdGhlIHBhZ2UgYmV0d2VlbiB0aGUgdXNlcidzIGZsaWNrcyBv
ZiB0aGUgcGFnZS4KLSAgICBtX2lzVXNlckludGVyYWN0aW5nID0gdHJ1ZTsKKyAgICAvLyBQcmV2
ZW50IHJlc3VtaW5nIHRoZSBwYWdlIGR1cmluZyB0cmFuc2l0aW9uIGJldHdlZW4gZ2VzdHVyZXMg
d2hpbGUgdGhlIHVzZXIgaXMgaW50ZXJhY3RpbmcuCisgICAgLy8gVGhlIGNvbnRlbnQgaXMgc3Vz
cGVuZGVkIGFzIHNvb24gYXMgYSBwYW4gb3IgcGluY2ggZ2VzdHVyZSBvciBhbiBhbmltYXRpb24g
aXMgc3RhcnRlZC4KKyAgICArK21fYWN0aXZlU3VzcGVuc2lvbkNvdW50OwogfQogCiB2b2lkIFBh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6dG91Y2hFbmQoKQogewotICAgIG1faXNVc2Vy
SW50ZXJhY3RpbmcgPSBmYWxzZTsKKyAgICBBU1NFUlQobV9hY3RpdmVTdXNwZW5zaW9uQ291bnQg
PiAwKTsKKworICAgIC8vIFJlc3VtZSBpZiB0aGUgaW50ZXJhY3Rpb24gcHJldmVudGVkIHJlc3Vt
aW5nLgorICAgIGlmICghKC0tbV9hY3RpdmVTdXNwZW5zaW9uQ291bnQpKQorICAgICAgICBtX2Nv
bnRyb2xsZXItPnJlc3VtZUNvbnRlbnQoKTsKIH0KIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50UXQ6OmZvY3VzRWRpdGFibGVBcmVhKGNvbnN0IFFSZWN0RiYgY2FyZXRBcmVhLCBj
b25zdCBRUmVjdEYmIHRhcmdldEFyZWEpCkBAIC0zMzMsMTMgKzM1OCw2IEBAIHZvaWQgUGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpzZXRDb250ZW50c1JlY3RUb05lYXJlc3RWYWxpZEJv
dW5kcygpCiAgICAgdXBkYXRlVmlld3BvcnRDb250cm9sbGVyKCk7CiB9CiAKLXZvaWQgUGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpyZXN1bWVBbmRVcGRhdGVDb250ZW50KCkKLXsKLSAg
ICBtX2NvbnRyb2xsZXItPnJlc3VtZUNvbnRlbnQoKTsKLSAgICAvLyBNYWtlIHN1cmUgdGhhdCB0
aWxlcyBhbGwgYXJvdW5kIHRoZSB2aWV3cG9ydCB3aWxsIGJlIHJlcXVlc3RlZC4KLSAgICB1cGRh
dGVWaWV3cG9ydENvbnRyb2xsZXIoKTsKLX0KLQogYm9vbCBQYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50UXQ6OnNjcm9sbEFuaW1hdGlvbkFjdGl2ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
dmlld3BvcnRJdGVtLT5pc0ZsaWNraW5nKCk7CkBAIC00MjIsOSArNDQwLDcgQEAgdm9pZCBQYWdl
Vmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBpbmNoR2VzdHVyZVN0YXJ0ZWQoY29uc3QgUVBv
aW50RiYgcGluY2hDZW4KICAgICAgICAgcmV0dXJuOwogCiAgICAgY2xlYXJSZWxhdGl2ZVpvb21T
dGF0ZSgpOwotCi0gICAgbV9pZ25vcmVWaWV3cG9ydENoYW5nZXMgPSB0cnVlOwotICAgIG1fY29u
dHJvbGxlci0+c3VzcGVuZENvbnRlbnQoKTsKKyAgICBtX3NjYWxlU3VzcGVuc2lvbi5lbmFibGUo
KTsKIAogICAgIG1fbGFzdFBpbmNoQ2VudGVySW5WaWV3cG9ydENvb3JkaW5hdGVzID0gcGluY2hD
ZW50ZXJJblZpZXdwb3J0Q29vcmRpbmF0ZXM7CiAgICAgbV9waW5jaFN0YXJ0U2NhbGUgPSBtX3Bh
Z2VJdGVtLT5jb250ZW50c1NjYWxlKCk7CkBAIC00MzcsNiArNDUzLDcgQEAgdm9pZCBQYWdlVmll
d3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBpbmNoR2VzdHVyZVJlcXVlc3RVcGRhdGUoY29uc3Qg
UVBvaW50RiYgcGkKICAgICBpZiAoIW1fY29udHJvbGxlci0+YWxsb3dzVXNlclNjYWxpbmcoKSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgQVNTRVJUKG1fcGluY2hTdGFydFNjYWxlID4gMCk7CiAg
ICAgLy8gIENoYW5nZXMgb2YgdGhlIGNlbnRlciBwb3NpdGlvbiBzaG91bGQgbW92ZSB0aGUgcGFn
ZSBldmVuIGlmIHRoZSB6b29tIGZhY3RvciBkb2VzIG5vdCBjaGFuZ2UuCiAgICAgY29uc3QgcXJl
YWwgcGluY2hTY2FsZSA9IG1fcGluY2hTdGFydFNjYWxlICogdG90YWxTY2FsZUZhY3RvcjsKIApA
QCAtNDU4LDcgKzQ3NSw2IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0Ojpw
aW5jaEdlc3R1cmVFbmRlZCgpCiAgICAgaWYgKCFtX2NvbnRyb2xsZXItPmFsbG93c1VzZXJTY2Fs
aW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faWdub3JlVmlld3BvcnRDaGFuZ2VzID0g
ZmFsc2U7CiAgICAgbV9waW5jaFN0YXJ0U2NhbGUgPSAtMTsKIAogICAgIC8vIFRoaXMgd2lsbCB0
YWtlIGNhcmUgb2YgcmVzdW1pbmcgdGhlIGNvbnRlbnQsIGV2ZW4gaWYgbm8gYW5pbWF0aW9uIHdh
cyBwZXJmb3JtZWQuCkBAIC00NjgsNyArNDg0LDggQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50UXQ6OnBpbmNoR2VzdHVyZUVuZGVkKCkKIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OjpwaW5jaEdlc3R1cmVDYW5jZWxsZWQoKQogewogICAgIG1fcGluY2hTdGFy
dFNjYWxlID0gLTE7Ci0gICAgcmVzdW1lQW5kVXBkYXRlQ29udGVudCgpOworICAgIG1fc2NhbGVT
dXNwZW5zaW9uLmRpc2FibGUoKTsKKyAgICB1cGRhdGVWaWV3cG9ydENvbnRyb2xsZXIoKTsKIH0K
IAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OmRpZENoYW5nZUNvbnRlbnRz
U2l6ZShjb25zdCBJbnRTaXplJiBuZXdTaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5oCmluZGV4
IGY4NWU5YmQwMDMwYmUzOTA5NjRjMDExOTlhYjMyNjMyODNjOTU3NTYuLjk0YmFmODMxNjk1MDIy
OTEyMzliZWM1OGJiMDI5ZDViY2QwZTA4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmgKQEAg
LTEwMiw2ICsxMDIsMjAgQEAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1
cnJlbnRWYWx1ZShjb25zdCBRVmFyaWFudCYpOwogICAgIH07CiAKKyAgICBjbGFzcyBTdXNwZW5z
aW9uQ29udHJvbGxlciB7CisgICAgICAgIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdCog
bV9jb250cm9sbGVyQ2xpZW50OworICAgICAgICBib29sIG1faXNBY3RpdmU7CisgICAgcHVibGlj
OgorICAgICAgICBTdXNwZW5zaW9uQ29udHJvbGxlcihQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50UXQqIHBhcmVudCkKKyAgICAgICAgICAgIDogbV9jb250cm9sbGVyQ2xpZW50KHBhcmVudCkK
KyAgICAgICAgICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKKyAgICAgICAgeyB9CisKKyAgICAgICAg
dm9pZCBlbmFibGUoKTsKKyAgICAgICAgdm9pZCBkaXNhYmxlKCk7CisgICAgICAgIGJvb2wgaXNB
Y3RpdmUoKSB7IHJldHVybiBtX2lzQWN0aXZlOyB9CisgICAgfTsKKwogICAgIHN0cnVjdCBTY2Fs
ZVN0YWNrSXRlbSB7CiAgICAgICAgIFNjYWxlU3RhY2tJdGVtKHFyZWFsIHNjYWxlLCBxcmVhbCB4
UG9zaXRpb24pCiAgICAgICAgICAgICA6IHNjYWxlKHNjYWxlKQpAQCAtMTEyLDYgKzEyNiw3IEBA
IHByaXZhdGU6CiAgICAgICAgIHFyZWFsIHhQb3NpdGlvbjsKICAgICB9OwogCisgICAgZnJpZW5k
IGNsYXNzIFN1c3BlbnNpb25Db250cm9sbGVyOwogICAgIGZyaWVuZCBjbGFzcyBTY2FsZUFuaW1h
dGlvbjsKICAgICBmcmllbmQgY2xhc3MgOjpRV2ViS2l0VGVzdDsKIApAQCAtMTI4LDE3ICsxNDMs
MTggQEAgcHJpdmF0ZToKICAgICB2b2lkIGFuaW1hdGVDb250ZW50UmVjdFZpc2libGUoY29uc3Qg
UVJlY3RGJiBjb250ZW50UmVjdCk7CiAgICAgdm9pZCBzY2FsZUNvbnRlbnQocXJlYWwgaXRlbVNj
YWxlLCBjb25zdCBRUG9pbnRGJiBjZW50ZXJJbkNTU0Nvb3JkaW5hdGVzID0gUVBvaW50RigpKTsK
ICAgICB2b2lkIGNsZWFyUmVsYXRpdmVab29tU3RhdGUoKTsKLSAgICB2b2lkIHJlc3VtZUFuZFVw
ZGF0ZUNvbnRlbnQoKTsKKworICAgIFN1c3BlbnNpb25Db250cm9sbGVyIG1fc2NhbGVTdXNwZW5z
aW9uOworICAgIFN1c3BlbnNpb25Db250cm9sbGVyIG1fc2Nyb2xsU3VzcGVuc2lvbjsKIAogICAg
IFNjYWxlQW5pbWF0aW9uKiBtX3NjYWxlQW5pbWF0aW9uOwogICAgIFFQb2ludEYgbV9sYXN0UGlu
Y2hDZW50ZXJJblZpZXdwb3J0Q29vcmRpbmF0ZXM7CiAgICAgUVBvaW50RiBtX2xhc3RTY3JvbGxQ
b3NpdGlvbjsKKyAgICBpbnQgbV9hY3RpdmVTdXNwZW5zaW9uQ291bnQ7CiAgICAgcXJlYWwgbV9w
aW5jaFN0YXJ0U2NhbGU7CiAgICAgcXJlYWwgbV9sYXN0Q29tbWl0dGVkU2NhbGU7CiAgICAgcXJl
YWwgbV96b29tT3V0U2NhbGU7CiAgICAgUUxpc3Q8U2NhbGVTdGFja0l0ZW0+IG1fc2NhbGVTdGFj
azsKLSAgICBib29sIG1faXNVc2VySW50ZXJhY3Rpbmc7Ci0gICAgYm9vbCBtX2lnbm9yZVZpZXdw
b3J0Q2hhbmdlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192939</attachid>
            <date>2013-03-13 09:46:47 -0700</date>
            <delta_ts>2013-03-18 07:31:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111751-20130313174044.patch</filename>
            <type>text/plain</type>
            <size>19822</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjNlNjk5Y2Q3ZWU1N2U0
M2UxZTdlODQyODdkNGY1OGQ3NTA3ODRhZS4uMTViMGU3NjEyOGZjMTkyYzA0MGM3NmE5MWZhZTAy
YWI2NTU1ZjA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEzLTAzLTEzICBBbmRy
YXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAZGlnaWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBS
ZWZhY3RvciBoYW5kbGluZyBvZiBjb250ZW50IHN1c3BlbnNpb24gdG8gcHJvcGVybHkgY292ZXIg
Y29ybmVyIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTE3NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgY3VycmVudCBzdXNwZW5kIC8gcmVzdW1lIGluZnJhc3RydWN0dXJlIHR1cm5lZCBv
dXQgdG8gYmUgaW5zdWZmaWNpZW50IHRvIGNvdmVyCisgICAgICAgIGFsbCBjb3JuZXIgY2FzZXMg
ZHVyaW5nIHRyYW5zaXRpb25zIGJldHdlZW4gZ2VzdHVyZXMgb2YgY29tcGxleCBnZXN0dXJlIGNo
YWlucy4KKworICAgICAgICBUaGUgcmVxdWlyZW1lbnRzIGZvciByb2J1c3Qgc3VzcGVuZCAvIHJl
c3VtZSBoYW5kbGluZyBhcmU6CisgICAgICAgICAgICAtIEtlZXAgdGhlIGNvbnRlbnQgc3VzcGVu
ZGVkIHdoaWxlIHRoZSB1c2VyIGlzIGNvbnRpbnVvdXNseSBpbnRlcmFjdGluZywKKyAgICAgICAg
ZWcuIGRvZXMgbm90IGxpZnQgdGhlIGZpbmdlciBiZXR3ZWVuIHRyYW5zaXRpb24gZnJvbSBhIHBh
biB0byBhIHBpbmNoIGdlc3R1cmUKKyAgICAgICAgYW5kIHZpY2UgdmVyc2EuCisgICAgICAgICAg
ICAtIFRoZSBjb250ZW50IHNob3VsZCBub3QgYmUgc3VzcGVuZGVkIHVubmVjZXNzYXJpbHkgKGxp
a2UgZm9yIGEgdGFwIGdlc3R1cmUpLAorICAgICAgICBvbmx5IGR1cmluZyBwYW5uaW5nIGFuZCBz
Y3JvbGwgYW5pbWF0aW9uIChmbGljayksIGFzIHdlbGwgYXMgcGluY2ggem9vbSBhbmQgc2NhbGUK
KyAgICAgICAgYW5pbWF0aW9uIChhbHNvIGluY2x1ZGVzIGRvdWJsZS10YXAtdG8tem9vbSkuCisg
ICAgICAgICAgICAtIFRoZSBjb250ZW50IHNob3VsZCBuZXZlciBlbmQgdXAgc3R1Y2sgaW4gc3Vz
cGVuZGVkIHN0YXRlIGFmdGVyIGxvbmcgZ2VzdHVyZQorICAgICAgICBjaGFpbnMgYW5kIGNvbnRp
bnVvdXMgaW50ZXJhY3Rpb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCByZWludHJvZHVjZXMgcmVm
ZXJlbmNlIGNvdW50aW5nIGJhc2VkIHN1c3BlbnNpb24gaW4gZm9ybSBvZiBhIG5ldworICAgICAg
ICBTdXNwZW5zaW9uQ29udHJvbGxlciBtZW1iZXIgY2xhc3MgdG8gbWFrZSBpdCBwb3NzaWJsZSB0
byByZWxpYWJseSBjb250cm9sIHRoZQorICAgICAgICBzdXNwZW5kIC8gcmVzdW1lIGN5Y2xlcyBk
dXJpbmcgc2Nyb2xsaW5nIGFuZCBzY2FsaW5nLgorICAgICAgICBEdXJpbmcgY29udGludW91cyBn
ZXN0dXJlcywgd2hpbGUgdGhlIHVzZXIgaXMgaW50ZXJhY3RpbmcsIHRoZSByZWZlcmVuY2UgY291
bnQgaXMKKyAgICAgICAgaW5jcmVhc2VkIHdpdGhvdXQgYWN0dWFsbHkgc3VzcGVuZGluZyB0aGUg
Y29udGVudCB0byBwcmV2ZW50IHJlc3VtaW5nIHVubmVjZXNzYXJpbHkKKyAgICAgICAgZHVyaW5n
IGNvbnRpbnVvdXMgaW50ZXJhY3Rpb24uIEF0IHRoZSBzYW1lIHRpbWUgdGhpcyBhbHNvIGFzc3Vy
ZXMgdGhhdCB0aGUgcGFnZSBpcworICAgICAgICBub3Qgc3VzcGVuZGVkIGZvciBzaW1wbGUgdGFw
IGdlc3R1cmVzLCB3aGljaCB3YXMgYSBzaWRlLWVmZmVjdCBvZiB0aGUgcHJldmlvdXMKKyAgICAg
ICAgYXBwcm9hY2ggYmFzZWQgb24gdXBkYXRlIGRlZmVycmVycy4KKyAgICAgICAgVGhlIG5ld2x5
IGFkZGVkIGZ1bmN0aW9uYWxpdHkgcmVwbGFjZXMgYm9vbGVhbiBtZW1iZXJzIHRoYXQgdHJpZWQg
dG8gYWNoaXZlIHRoZQorICAgICAgICBhYm92ZSByZXF1aXJlbWVudHMuCisgICAgICAgIEFkZGl0
aW9uYWxseSB0aGlzIHBhdGNoIGFsc28gcmVtb3ZlcyB0aGUgcmVkdW5kYW50IG1faGFzU3VzcGVu
ZGVkQ29udGVudCBtZW1iZXIKKyAgICAgICAgZnJvbSB0aGUgUGFnZVZpZXdwb3J0Q29udHJvbGxl
ciBzaW5jZSBXZWJQYWdlUHJveHkgYWxyZWFkeSBrZWVwcyB0aGlzIGluZm9ybWF0aW9uLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6cGFnZURpZFJlcXVlc3RT
Y3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRhdGVN
aW5pbXVtU2NhbGVUb0ZpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRy
b2xsZXIuaDoKKyAgICAgICAgKFBhZ2VWaWV3cG9ydENvbnRyb2xsZXIpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojph
cmVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc1N1c3BlbmRlZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6UGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudFF0OjpTdXNwZW5zaW9uQ29udHJvbGxlcjo6ZW5hYmxlKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpTdXNwZW5zaW9uQ29udHJvbGxlcjo6ZGlz
YWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6
YW5pbWF0ZUNvbnRlbnRSZWN0VmlzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRRdDo6ZmxpY2tNb3ZlU3RhcnRlZCk6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6ZmxpY2tNb3ZlRW5kZWQpOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBhZ2VJdGVtUG9zaXRp
b25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dFF0OjpzY2FsZUFuaW1hdGlvblN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6dG91Y2hCZWdpbik6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6dG91Y2hFbmQpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6Onpvb21Ub0FyZWFHZXN0dXJlRW5k
ZWQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBp
bmNoR2VzdHVyZVN0YXJ0ZWQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50UXQ6OnBpbmNoR2VzdHVyZVJlcXVlc3RVcGRhdGUpOgorICAgICAgICAoV2ViS2l0
OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBpbmNoR2VzdHVyZUVuZGVkKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpwaW5jaEdlc3R1
cmVDYW5jZWxsZWQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50UXQ6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1Bh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5oOgorICAgICAgICAoU3VzcGVuc2lvbkNvbnRy
b2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6
OlN1c3BlbnNpb25Db250cm9sbGVyOjpTdXNwZW5zaW9uQ29udHJvbGxlcik6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6U3VzcGVuc2lvbkNvbnRyb2xs
ZXI6OmlzQWN0aXZlKToKKyAgICAgICAgKFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdCk6
CisKIDIwMTMtMDMtMTMgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRlQGRpZ2lh
LmNvbT4KIAogICAgICAgICBbV0syXVtRdF0gUmVncmVzc2lvbigxNDU1MTcpIFdlYlByb2Nlc3Mg
YXNzZXJ0cyBpbiBkZWJ1ZyBidWlsZCBvbiBXZWJLaXRUZXN0UnVubmVyIHN0YXJ0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKaW5k
ZXggMzFkMGM3YzFmMDM3ZjY4ZTM2ODgxZTczYmQ4N2RhMzc2OGY2OGQzYi4uZTExNTZhYmQyNGEy
NzU3ZGM3NDc2YjBjYTRjYWZlMDI5ZjExOTNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcApAQCAtNDUsNyArNDUsNiBAQCBQ
YWdlVmlld3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRDb250cm9sbGVyKFdlYktpdDo6V2Vi
UGFnZVByb3h5KiBwcm94eSwgUGFnZQogICAgICwgbV9hbGxvd3NVc2VyU2NhbGluZyhmYWxzZSkK
ICAgICAsIG1fbWluaW11bVNjYWxlVG9GaXQoMSkKICAgICAsIG1faW5pdGlhbGx5Rml0VG9WaWV3
cG9ydCh0cnVlKQotICAgICwgbV9oYXNTdXNwZW5kZWRDb250ZW50KGZhbHNlKQogICAgICwgbV9o
YWRVc2VySW50ZXJhY3Rpb24oZmFsc2UpCiAgICAgLCBtX3BhZ2VTY2FsZUZhY3RvcigxKQogICAg
ICwgbV9wZW5kaW5nUG9zaXRpb25DaGFuZ2UoZmFsc2UpCkBAIC0yMjYsNyArMjI1LDcgQEAgdm9p
ZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpwYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKQog
dm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBJ
bnRQb2ludCYgY3NzUG9zaXRpb24pCiB7CiAgICAgLy8gSWdub3JlIHRoZSByZXF1ZXN0IGlmIHN1
c3BlbmRlZC4gQ2FuIG9ubHkgaGFwcGVuIGR1ZSB0byBkZWxheSBpbiBldmVudCBkZWxpdmVyeS4K
LSAgICBpZiAobV9oYXNTdXNwZW5kZWRDb250ZW50KQorICAgIGlmIChtX3dlYlBhZ2VQcm94eS0+
YXJlQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnNTdXNwZW5kZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgRmxvYXRQb2ludCBib3VuZFBvc2l0aW9uID0gYm91bmRDb250ZW50c1Bvc2l0
aW9uKEZsb2F0UG9pbnQoY3NzUG9zaXRpb24pKTsKQEAgLTMwNSwyNCArMzA0LDYgQEAgRmxvYXRT
aXplIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnZpc2libGVDb250ZW50c1NpemUoKSBjb25zdAog
ICAgIHJldHVybiBGbG9hdFNpemUobV92aWV3cG9ydFNpemUud2lkdGgoKSAvIG1fcGFnZVNjYWxl
RmFjdG9yLCBtX3ZpZXdwb3J0U2l6ZS5oZWlnaHQoKSAvIG1fcGFnZVNjYWxlRmFjdG9yKTsKIH0K
IAotdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpzdXNwZW5kQ29udGVudCgpCi17Ci0gICAg
aWYgKG1faGFzU3VzcGVuZGVkQ29udGVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9oYXNT
dXNwZW5kZWRDb250ZW50ID0gdHJ1ZTsKLSAgICBtX3dlYlBhZ2VQcm94eS0+c3VzcGVuZEFjdGl2
ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7Ci19Ci0KLXZvaWQgUGFnZVZpZXdwb3J0Q29udHJv
bGxlcjo6cmVzdW1lQ29udGVudCgpCi17Ci0gICAgaWYgKCFtX2hhc1N1c3BlbmRlZENvbnRlbnQp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIG1faGFzU3VzcGVuZGVkQ29udGVudCA9IGZhbHNlOwot
ICAgIG1fd2ViUGFnZVByb3h5LT5yZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygp
OwotfQotCiB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OmFwcGx5U2NhbGVBZnRlclJlbmRl
cmluZ0NvbnRlbnRzKGZsb2F0IHNjYWxlKQogewogICAgIGlmIChtX3BhZ2VTY2FsZUZhY3RvciA9
PSBzY2FsZSkKQEAgLTM1OCw3ICszMzksNyBAQCBib29sIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6
OnVwZGF0ZU1pbmltdW1TY2FsZVRvRml0KGJvb2wgdXNlckluaXRpYXRlZFVwZGF0ZSkKICAgICBp
ZiAoIWZ1enp5Q29tcGFyZShtaW5pbXVtU2NhbGUsIG1fbWluaW11bVNjYWxlVG9GaXQsIDAuMDAw
MSkpIHsKICAgICAgICAgbV9taW5pbXVtU2NhbGVUb0ZpdCA9IG1pbmltdW1TY2FsZTsKIAotICAg
ICAgICBpZiAoIWhhc1N1c3BlbmRlZENvbnRlbnQoKSkgeworICAgICAgICBpZiAoIW1fd2ViUGFn
ZVByb3h5LT5hcmVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc1N1c3BlbmRlZCgpKSB7CiAg
ICAgICAgICAgICBpZiAoIW1faGFkVXNlckludGVyYWN0aW9uIHx8ICh1c2VySW5pdGlhdGVkVXBk
YXRlICYmIGN1cnJlbnRseVNjYWxlZFRvRml0KSkKICAgICAgICAgICAgICAgICBhcHBseVNjYWxl
QWZ0ZXJSZW5kZXJpbmdDb250ZW50cyhtX21pbmltdW1TY2FsZVRvRml0KTsKICAgICAgICAgICAg
IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9y
dENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250
cm9sbGVyLmgKaW5kZXggMzVkNGI1MzNkMjA3MDJlYjI5YTJjMjJkNzM0MjkwYmQyNGJiZDYwMy4u
MzE2NGVmZGE3YjdhNGExYjA3ODVkOTViZDE0NGViMWNkN2I5YzRlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCkBAIC0yMiw4ICsy
Miw2IEBACiAjaWZuZGVmIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJfaAogI2RlZmluZSBQYWdlVmll
d3BvcnRDb250cm9sbGVyX2gKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotCiAjaW5j
bHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgpAQCAtNDcsOSArNDUsNiBAQCBwdWJs
aWM6CiAgICAgUGFnZVZpZXdwb3J0Q29udHJvbGxlcihXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFBh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQqKTsKICAgICB2aXJ0dWFsIH5QYWdlVmlld3BvcnRD
b250cm9sbGVyKCkgeyB9CiAKLSAgICB2b2lkIHN1c3BlbmRDb250ZW50KCk7Ci0gICAgdm9pZCBy
ZXN1bWVDb250ZW50KCk7Ci0KICAgICBmbG9hdCBpbm5lckJvdW5kZWRWaWV3cG9ydFNjYWxlKGZs
b2F0KSBjb25zdDsKICAgICBmbG9hdCBvdXRlckJvdW5kZWRWaWV3cG9ydFNjYWxlKGZsb2F0KSBj
b25zdDsKIApAQCAtNjAsNyArNTUsNiBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3JlOjpGbG9hdFNp
emUgdmlzaWJsZUNvbnRlbnRzU2l6ZSgpIGNvbnN0OwogCi0gICAgYm9vbCBoYXNTdXNwZW5kZWRD
b250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNTdXNwZW5kZWRDb250ZW50OyB9CiAgICAgYm9v
bCBoYWRVc2VySW50ZXJhY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2hhZFVzZXJJbnRlcmFjdGlv
bjsgfQogICAgIGJvb2wgYWxsb3dzVXNlclNjYWxpbmcoKSBjb25zdCB7IHJldHVybiBtX2FsbG93
c1VzZXJTY2FsaW5nOyB9CiAKQEAgLTk5LDcgKzkzLDYgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBt
X21pbmltdW1TY2FsZVRvRml0OwogICAgIGJvb2wgbV9pbml0aWFsbHlGaXRUb1ZpZXdwb3J0Owog
Ci0gICAgYm9vbCBtX2hhc1N1c3BlbmRlZENvbnRlbnQ7CiAgICAgYm9vbCBtX2hhZFVzZXJJbnRl
cmFjdGlvbjsKIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgbV9jb250ZW50c1Bvc2l0aW9uOwpA
QCAtMTE3LDYgKzExMCw0IEBAIGJvb2wgZnV6enlDb21wYXJlKGZsb2F0LCBmbG9hdCwgZmxvYXQg
ZXBzaWxvbik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYKLQogI2VuZGlmIC8v
IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IDYwYWE5ZjY2ZmMzYWJhNmI1NGE3NTdmYzJlZDFjZGNiZTk2ZWU2M2UuLjNj
ZmVmMDM0MDIxNTVjYTgzMjY3M2E1ZDJiYmViOTNjYTU0MTVlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQ1Nyw2ICs0NTcsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmlu
ZyBjdXN0b21UZXh0RW5jb2RpbmdOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21UZXh0RW5j
b2RpbmdOYW1lOyB9CiAKKyAgICBib29sIGFyZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25z
U3VzcGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1BhZ2VTdXNwZW5kZWQ7IH0KICAgICB2b2lk
IHJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAgICAgdm9pZCBzdXNwZW5k
QWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0
LmNwcAppbmRleCBkN2UxY2QxMWE2YjIyMzU3ZDkxOTAzODllY2IzNTQyMTM2ZTRhYzUyLi4xMjYz
NmNkNGY1NzhmOTRmMzk4ZjkxYTVkNzdlNjQ1ZmE5ZGI4ZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudFF0LmNwcApAQCAtMjMsMTIgKzIzLDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmgiCiAKKyNpbmNsdWRlICJXZWJQ
YWdlUHJveHkuaCIKICNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKICNpbmNsdWRlICJxcXVp
Y2t3ZWJ2aWV3X3AuaCIKICNpbmNsdWRlICJxd2Via2l0dGVzdF9wLmgiCiAjaW5jbHVkZSA8UVBv
aW50Rj4KICNpbmNsdWRlIDxRVHJhbnNmb3JtPgogI2luY2x1ZGUgPFF0UXVpY2svcXF1aWNraXRl
bS5oPgorI2luY2x1ZGUgPFdLQVBJQ2FzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KIApAQCAtNDEsMTIgKzQzLDE0IEBA
IHN0YXRpYyBjb25zdCBpbnQga1NjYWxlQW5pbWF0aW9uRHVyYXRpb25NaWxsaXMgPSAyNTA7CiBQ
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnRRdChRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydEl0ZW0sIFFRdWlja1dlYlBhZ2UqIHBhZ2VJdGVt
KQogICAgIDogbV92aWV3cG9ydEl0ZW0odmlld3BvcnRJdGVtKQogICAgICwgbV9wYWdlSXRlbShw
YWdlSXRlbSkKKyAgICAsIG1fc2NhbGVTdXNwZW5zaW9uKHRoaXMpCisgICAgLCBtX3Njcm9sbFN1
c3BlbnNpb24odGhpcykKKyAgICAsIG1faW50ZXJhY3Rpb25HdWFyZCh0aGlzLCB0cnVlIC8qIGlz
UmVzdW1lR3VhcmQgKi8pCiAgICAgLCBtX3NjYWxlQW5pbWF0aW9uKG5ldyBTY2FsZUFuaW1hdGlv
bih0aGlzKSkKKyAgICAsIG1fYWN0aXZlU3VzcGVuc2lvbkNvdW50KDApCiAgICAgLCBtX3BpbmNo
U3RhcnRTY2FsZSgtMSkKICAgICAsIG1fbGFzdENvbW1pdHRlZFNjYWxlKC0xKQogICAgICwgbV96
b29tT3V0U2NhbGUoMCkKLSAgICAsIG1faXNVc2VySW50ZXJhY3RpbmcoZmFsc2UpCi0gICAgLCBt
X2lnbm9yZVZpZXdwb3J0Q2hhbmdlcyhmYWxzZSkKIHsKICAgICBtX3NjYWxlQW5pbWF0aW9uLT5z
ZXREdXJhdGlvbihrU2NhbGVBbmltYXRpb25EdXJhdGlvbk1pbGxpcyk7CiAgICAgbV9zY2FsZUFu
aW1hdGlvbi0+c2V0RWFzaW5nQ3VydmUoUUVhc2luZ0N1cnZlOjpPdXRDdWJpYyk7CkBAIC03Niw2
ICs4MCwzMiBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6U2NhbGVBbmlt
YXRpb246OnVwZGF0ZUN1cnJlbnRWYWx1ZShjb25zdCBRVgogICAgIG1fY29udHJvbGxlckNsaWVu
dC0+c2V0Q29udGVudFJlY3RWaXNpYmxlUG9zaXRpb25BdFNjYWxlKGl0ZW1SZWN0LnRvcExlZnQo
KSwgaXRlbVNjYWxlKTsKIH0KIAordm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6
OlN1c3BlbnNpb25Db250cm9sbGVyOjplbmFibGUoKQoreworICAgIGlmIChtX2lzQWN0aXZlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2lzQWN0aXZlID0gdHJ1ZTsKKworICAgIGlmICghbV9p
c1Jlc3VtZUd1YXJkKQorICAgICAgICB0b0ltcGwobV9jb250cm9sbGVyQ2xpZW50LT5tX3ZpZXdw
b3J0SXRlbS0+cGFnZVJlZigpKS0+c3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25z
KCk7CisKKyAgICArKyhtX2NvbnRyb2xsZXJDbGllbnQtPm1fYWN0aXZlU3VzcGVuc2lvbkNvdW50
KTsKK30KKwordm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OlN1c3BlbnNpb25D
b250cm9sbGVyOjpkaXNhYmxlKCkKK3sKKyAgICBpZiAoIW1faXNBY3RpdmUpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1faXNBY3RpdmUgPSBmYWxzZTsKKworICAgIEFTU0VSVChtX2NvbnRyb2xs
ZXJDbGllbnQtPm1fYWN0aXZlU3VzcGVuc2lvbkNvdW50ID4gMCk7CisKKyAgICBpZiAoISgtLSht
X2NvbnRyb2xsZXJDbGllbnQtPm1fYWN0aXZlU3VzcGVuc2lvbkNvdW50KSkpCisgICAgICAgIHRv
SW1wbChtX2NvbnRyb2xsZXJDbGllbnQtPm1fdmlld3BvcnRJdGVtLT5wYWdlUmVmKCkpLT5yZXN1
bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOworfQorCiBQYWdlVmlld3BvcnRDb250
cm9sbGVyQ2xpZW50UXQ6On5QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQoKQogewogfQpA
QCAtMTAzLDcgKzEzMyw4IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0Ojph
bmltYXRlQ29udGVudFJlY3RWaXNpYmxlKGNvbnN0IFFSZWN0RiYgY29uCiAKICAgICBRUmVjdEYg
dmlld3BvcnRSZWN0SW5Db250ZW50Q29vcmRzID0gbV92aWV3cG9ydEl0ZW0tPm1hcFJlY3RUb1dl
YkNvbnRlbnQobV92aWV3cG9ydEl0ZW0tPmJvdW5kaW5nUmVjdCgpKTsKICAgICBpZiAoY29udGVu
dFJlY3QgPT0gdmlld3BvcnRSZWN0SW5Db250ZW50Q29vcmRzKSB7Ci0gICAgICAgIHJlc3VtZUFu
ZFVwZGF0ZUNvbnRlbnQoKTsKKyAgICAgICAgbV9zY2FsZVN1c3BlbnNpb24uZGlzYWJsZSgpOwor
ICAgICAgICB1cGRhdGVWaWV3cG9ydENvbnRyb2xsZXIoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtMTIxLDIyICsxNTIsMjAgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50UXQ6OmFuaW1hdGVDb250ZW50UmVjdFZpc2libGUoY29uc3QgUVJlY3RGJiBjb24KIAogdm9p
ZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OmZsaWNrTW92ZVN0YXJ0ZWQoKQogewot
ICAgIG1fY29udHJvbGxlci0+c3VzcGVuZENvbnRlbnQoKTsKLQorICAgIG1fc2Nyb2xsU3VzcGVu
c2lvbi5lbmFibGUoKTsKICAgICBtX2xhc3RTY3JvbGxQb3NpdGlvbiA9IG1fdmlld3BvcnRJdGVt
LT5jb250ZW50UG9zKCk7CiB9CiAKIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0
OjpmbGlja01vdmVFbmRlZCgpCiB7CiAgICAgLy8gVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRo
ZSBlbmQgb2YgdGhlIHBhbiBvciBwYW4ga2luZXRpYyBhbmltYXRpb24uCi0KLSAgICBpZiAoIW1f
aXNVc2VySW50ZXJhY3RpbmcpCi0gICAgICAgIHJlc3VtZUFuZFVwZGF0ZUNvbnRlbnQoKTsKKyAg
ICBtX3Njcm9sbFN1c3BlbnNpb24uZGlzYWJsZSgpOworICAgIHVwZGF0ZVZpZXdwb3J0Q29udHJv
bGxlcigpOwogfQogCiB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGFnZUl0
ZW1Qb3NpdGlvbkNoYW5nZWQoKQogewotICAgIGlmIChtX2lnbm9yZVZpZXdwb3J0Q2hhbmdlcykK
KyAgICBpZiAobV9zY2FsZVN1c3BlbnNpb24uaXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgUVBvaW50RiBuZXdQb3NpdGlvbiA9IG1fdmlld3BvcnRJdGVtLT5jb250ZW50UG9zKCk7
CkBAIC0xNTAsMTMgKzE3OSwxMSBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRR
dDo6c2NhbGVBbmltYXRpb25TdGF0ZUNoYW5nZWQoUUFic3RyYWN0QW5pbWF0aQogewogICAgIHN3
aXRjaCAobmV3U3RhdGUpIHsKICAgICBjYXNlIFFBYnN0cmFjdEFuaW1hdGlvbjo6UnVubmluZzoK
LSAgICAgICAgbV9pZ25vcmVWaWV3cG9ydENoYW5nZXMgPSB0cnVlOwotICAgICAgICBtX3ZpZXdw
b3J0SXRlbS0+Y2FuY2VsRmxpY2soKTsKLSAgICAgICAgbV9jb250cm9sbGVyLT5zdXNwZW5kQ29u
dGVudCgpOworICAgICAgICBtX3NjYWxlU3VzcGVuc2lvbi5lbmFibGUoKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBRQWJzdHJhY3RBbmltYXRpb246OlN0b3BwZWQ6Ci0gICAgICAgIG1faWdu
b3JlVmlld3BvcnRDaGFuZ2VzID0gZmFsc2U7Ci0gICAgICAgIHJlc3VtZUFuZFVwZGF0ZUNvbnRl
bnQoKTsKKyAgICAgICAgbV9zY2FsZVN1c3BlbnNpb24uZGlzYWJsZSgpOworICAgICAgICB1cGRh
dGVWaWV3cG9ydENvbnRyb2xsZXIoKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgYnJlYWs7CkBAIC0xNjcsMTMgKzE5NCwxNCBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRRdDo6dG91Y2hCZWdpbigpCiB7CiAgICAgbV9jb250cm9sbGVyLT5zZXRIYWRV
c2VySW50ZXJhY3Rpb24odHJ1ZSk7CiAKLSAgICAvLyBQcmV2ZW50cyByZXN1bWluZyB0aGUgcGFn
ZSBiZXR3ZWVuIHRoZSB1c2VyJ3MgZmxpY2tzIG9mIHRoZSBwYWdlLgotICAgIG1faXNVc2VySW50
ZXJhY3RpbmcgPSB0cnVlOworICAgIC8vIFByZXZlbnQgcmVzdW1pbmcgdGhlIHBhZ2UgZHVyaW5n
IHRyYW5zaXRpb24gYmV0d2VlbiBnZXN0dXJlcyB3aGlsZSB0aGUgdXNlciBpcyBpbnRlcmFjdGlu
Zy4KKyAgICAvLyBUaGUgY29udGVudCBpcyBzdXNwZW5kZWQgYXMgc29vbiBhcyBhIHBhbiBvciBw
aW5jaCBnZXN0dXJlIG9yIGFuIGFuaW1hdGlvbiBpcyBzdGFydGVkLgorICAgIG1faW50ZXJhY3Rp
b25HdWFyZC5lbmFibGUoKTsKIH0KIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
UXQ6OnRvdWNoRW5kKCkKIHsKLSAgICBtX2lzVXNlckludGVyYWN0aW5nID0gZmFsc2U7CisgICAg
bV9pbnRlcmFjdGlvbkd1YXJkLmRpc2FibGUoKTsKIH0KIAogdm9pZCBQYWdlVmlld3BvcnRDb250
cm9sbGVyQ2xpZW50UXQ6OmZvY3VzRWRpdGFibGVBcmVhKGNvbnN0IFFSZWN0RiYgY2FyZXRBcmVh
LCBjb25zdCBRUmVjdEYmIHRhcmdldEFyZWEpCkBAIC0yMTcsNyArMjQ1LDcgQEAgdm9pZCBQYWdl
Vmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6Onpvb21Ub0FyZWFHZXN0dXJlRW5kZWQoY29uc3Qg
UVBvaW50RiYgdG91Y2gKICAgICBpZiAoIXRhcmdldEFyZWEuaXNWYWxpZCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAobV9jb250cm9sbGVyLT5oYXNTdXNwZW5kZWRDb250ZW50KCkpCisg
ICAgaWYgKG1fc2Nyb2xsU3VzcGVuc2lvbi5pc0FjdGl2ZSgpIHx8IG1fc2NhbGVTdXNwZW5zaW9u
LmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGZsb2F0IG1hcmdpbiA9
IDEwOyAvLyBXZSB3YW50IGF0IGxlYXN0IGEgbGl0dGxlIGJpdCBvZiBtYXJnaW4uCkBAIC0zMTYs
NiArMzQ0LDkgQEAgUVJlY3RGIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6bmVhcmVz
dFZhbGlkVmlzaWJsZUNvbnRlbnRzUmVjdCgpIGNvbnN0CiAKIHZvaWQgUGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudFF0OjpzZXRWaWV3cG9ydFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIGNv
bnRlbnRzUG9pbnQpCiB7CisgICAgaWYgKG1fc2NhbGVTdXNwZW5zaW9uLmlzQWN0aXZlKCkpCisg
ICAgICAgIHJldHVybjsKKwogICAgIFFQb2ludEYgbmV3UG9zaXRpb24oKG1fcGFnZUl0ZW0tPnBv
c2l0aW9uKCkgKyBRUG9pbnRGKGNvbnRlbnRzUG9pbnQpKSAqIG1fcGFnZUl0ZW0tPmNvbnRlbnRz
U2NhbGUoKSk7CiAgICAgLy8gVGhlIGNvbnRlbnRYIGFuZCBjb250ZW50WSBwcm9wZXJ0eSBjaGFu
Z2VzIHRyaWdnZXIgYSB2aXNpYmxlIHJlY3QgdXBkYXRlLgogICAgIG1fdmlld3BvcnRJdGVtLT5z
ZXRDb250ZW50UG9zKG5ld1Bvc2l0aW9uKTsKQEAgLTMyMyw3ICszNTQsOCBAQCB2b2lkIFBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6c2V0Vmlld3BvcnRQb3NpdGlvbihjb25zdCBGbG9h
dFBvaW50JiBjb250ZQogCiB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6c2V0
UGFnZVNjYWxlRmFjdG9yKGZsb2F0IGxvY2FsU2NhbGUpCiB7Ci0gICAgc2NhbGVDb250ZW50KGxv
Y2FsU2NhbGUpOworICAgIGlmICghbV9zY2FsZVN1c3BlbnNpb24uaXNBY3RpdmUoKSkKKyAgICAg
ICAgc2NhbGVDb250ZW50KGxvY2FsU2NhbGUpOwogfQogCiB2b2lkIFBhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRRdDo6c2V0Q29udGVudHNSZWN0VG9OZWFyZXN0VmFsaWRCb3VuZHMoKQpAQCAt
MzMzLDEzICszNjUsNiBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6c2V0
Q29udGVudHNSZWN0VG9OZWFyZXN0VmFsaWRCb3VuZHMoKQogICAgIHVwZGF0ZVZpZXdwb3J0Q29u
dHJvbGxlcigpOwogfQogCi12b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cmVz
dW1lQW5kVXBkYXRlQ29udGVudCgpCi17Ci0gICAgbV9jb250cm9sbGVyLT5yZXN1bWVDb250ZW50
KCk7Ci0gICAgLy8gTWFrZSBzdXJlIHRoYXQgdGlsZXMgYWxsIGFyb3VuZCB0aGUgdmlld3BvcnQg
d2lsbCBiZSByZXF1ZXN0ZWQuCi0gICAgdXBkYXRlVmlld3BvcnRDb250cm9sbGVyKCk7Ci19Ci0K
IGJvb2wgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpzY3JvbGxBbmltYXRpb25BY3Rp
dmUoKSBjb25zdAogewogICAgIHJldHVybiBtX3ZpZXdwb3J0SXRlbS0+aXNGbGlja2luZygpOwpA
QCAtNDIyLDkgKzQ0Nyw3IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0Ojpw
aW5jaEdlc3R1cmVTdGFydGVkKGNvbnN0IFFQb2ludEYmIHBpbmNoQ2VuCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGNsZWFyUmVsYXRpdmVab29tU3RhdGUoKTsKLQotICAgIG1faWdub3JlVmlld3Bv
cnRDaGFuZ2VzID0gdHJ1ZTsKLSAgICBtX2NvbnRyb2xsZXItPnN1c3BlbmRDb250ZW50KCk7Cisg
ICAgbV9zY2FsZVN1c3BlbnNpb24uZW5hYmxlKCk7CiAKICAgICBtX2xhc3RQaW5jaENlbnRlcklu
Vmlld3BvcnRDb29yZGluYXRlcyA9IHBpbmNoQ2VudGVySW5WaWV3cG9ydENvb3JkaW5hdGVzOwog
ICAgIG1fcGluY2hTdGFydFNjYWxlID0gbV9wYWdlSXRlbS0+Y29udGVudHNTY2FsZSgpOwpAQCAt
NDMyLDExICs0NTUsMTIgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBp
bmNoR2VzdHVyZVN0YXJ0ZWQoY29uc3QgUVBvaW50RiYgcGluY2hDZW4KIAogdm9pZCBQYWdlVmll
d3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBpbmNoR2VzdHVyZVJlcXVlc3RVcGRhdGUoY29uc3Qg
UVBvaW50RiYgcGluY2hDZW50ZXJJblZpZXdwb3J0Q29vcmRpbmF0ZXMsIHFyZWFsIHRvdGFsU2Nh
bGVGYWN0b3IpCiB7Ci0gICAgQVNTRVJUKG1fY29udHJvbGxlci0+aGFzU3VzcGVuZGVkQ29udGVu
dCgpKTsKKyAgICBBU1NFUlQobV9zY2FsZVN1c3BlbnNpb24uaXNBY3RpdmUoKSk7CiAKICAgICBp
ZiAoIW1fY29udHJvbGxlci0+YWxsb3dzVXNlclNjYWxpbmcoKSkKICAgICAgICAgcmV0dXJuOwog
CisgICAgQVNTRVJUKG1fcGluY2hTdGFydFNjYWxlID4gMCk7CiAgICAgLy8gIENoYW5nZXMgb2Yg
dGhlIGNlbnRlciBwb3NpdGlvbiBzaG91bGQgbW92ZSB0aGUgcGFnZSBldmVuIGlmIHRoZSB6b29t
IGZhY3RvciBkb2VzIG5vdCBjaGFuZ2UuCiAgICAgY29uc3QgcXJlYWwgcGluY2hTY2FsZSA9IG1f
cGluY2hTdGFydFNjYWxlICogdG90YWxTY2FsZUZhY3RvcjsKIApAQCAtNDUzLDEyICs0NzcsMTEg
QEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBpbmNoR2VzdHVyZVJlcXVl
c3RVcGRhdGUoY29uc3QgUVBvaW50RiYgcGkKIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50UXQ6OnBpbmNoR2VzdHVyZUVuZGVkKCkKIHsKLSAgICBBU1NFUlQobV9jb250cm9sbGVy
LT5oYXNTdXNwZW5kZWRDb250ZW50KCkpOworICAgIEFTU0VSVChtX3NjYWxlU3VzcGVuc2lvbi5p
c0FjdGl2ZSgpKTsKIAogICAgIGlmICghbV9jb250cm9sbGVyLT5hbGxvd3NVc2VyU2NhbGluZygp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2lnbm9yZVZpZXdwb3J0Q2hhbmdlcyA9IGZhbHNl
OwogICAgIG1fcGluY2hTdGFydFNjYWxlID0gLTE7CiAKICAgICAvLyBUaGlzIHdpbGwgdGFrZSBj
YXJlIG9mIHJlc3VtaW5nIHRoZSBjb250ZW50LCBldmVuIGlmIG5vIGFuaW1hdGlvbiB3YXMgcGVy
Zm9ybWVkLgpAQCAtNDY4LDcgKzQ5MSw4IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudFF0OjpwaW5jaEdlc3R1cmVFbmRlZCgpCiB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRRdDo6cGluY2hHZXN0dXJlQ2FuY2VsbGVkKCkKIHsKICAgICBtX3BpbmNoU3RhcnRTY2Fs
ZSA9IC0xOwotICAgIHJlc3VtZUFuZFVwZGF0ZUNvbnRlbnQoKTsKKyAgICBtX3NjYWxlU3VzcGVu
c2lvbi5kaXNhYmxlKCk7CisgICAgdXBkYXRlVmlld3BvcnRDb250cm9sbGVyKCk7CiB9CiAKIHZv
aWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpkaWRDaGFuZ2VDb250ZW50c1NpemUo
Y29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKQEAgLTQ3OSw3ICs1MDMsNyBAQCB2b2lkIFBhZ2VWaWV3
cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IEludFNp
emUmIG5ld1NpegogICAgIC8vIHdlIGRpZG4ndCBkbyBzY2FsZSBhZGp1c3RtZW50LgogICAgIGVt
aXQgbV92aWV3cG9ydEl0ZW0tPmV4cGVyaW1lbnRhbCgpLT50ZXN0KCktPmNvbnRlbnRzU2NhbGVD
b21taXR0ZWQoKTsKIAotICAgIGlmICghbV9jb250cm9sbGVyLT5oYXNTdXNwZW5kZWRDb250ZW50
KCkpCisgICAgaWYgKCFtX2FjdGl2ZVN1c3BlbnNpb25Db3VudCkKICAgICAgICAgc2V0Q29udGVu
dHNSZWN0VG9OZWFyZXN0VmFsaWRCb3VuZHMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5o
CmluZGV4IGY4NWU5YmQwMDMwYmUzOTA5NjRjMDExOTlhYjMyNjMyODNjOTU3NTYuLjMyNzUwMmU2
N2NiODI4YmI4NmNhMGM5ZjNkMzczN2ExZTJhMDgwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0
LmgKQEAgLTEwMiw2ICsxMDIsMjQgQEAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUN1cnJlbnRWYWx1ZShjb25zdCBRVmFyaWFudCYpOwogICAgIH07CiAKKyAgICBjbGFzcyBT
dXNwZW5zaW9uQ29udHJvbGxlciB7CisgICAgcHVibGljOgorICAgICAgICBTdXNwZW5zaW9uQ29u
dHJvbGxlcihQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQqIGNsaWVudCwgYm9vbCBpc1Jl
c3VtZUd1YXJkID0gZmFsc2UpCisgICAgICAgICAgICA6IG1fY29udHJvbGxlckNsaWVudChjbGll
bnQpCisgICAgICAgICAgICAsIG1faXNSZXN1bWVHdWFyZChpc1Jlc3VtZUd1YXJkKQorICAgICAg
ICAgICAgLCBtX2lzQWN0aXZlKGZhbHNlKQorICAgICAgICB7IH0KKworICAgICAgICB2b2lkIGVu
YWJsZSgpOworICAgICAgICB2b2lkIGRpc2FibGUoKTsKKyAgICAgICAgYm9vbCBpc0FjdGl2ZSgp
IHsgcmV0dXJuIG1faXNBY3RpdmU7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFBhZ2VWaWV3
cG9ydENvbnRyb2xsZXJDbGllbnRRdCogbV9jb250cm9sbGVyQ2xpZW50OworICAgICAgICBib29s
IG1faXNSZXN1bWVHdWFyZDsKKyAgICAgICAgYm9vbCBtX2lzQWN0aXZlOworICAgIH07CisKICAg
ICBzdHJ1Y3QgU2NhbGVTdGFja0l0ZW0gewogICAgICAgICBTY2FsZVN0YWNrSXRlbShxcmVhbCBz
Y2FsZSwgcXJlYWwgeFBvc2l0aW9uKQogICAgICAgICAgICAgOiBzY2FsZShzY2FsZSkKQEAgLTEx
Miw2ICsxMzAsNyBAQCBwcml2YXRlOgogICAgICAgICBxcmVhbCB4UG9zaXRpb247CiAgICAgfTsK
IAorICAgIGZyaWVuZCBjbGFzcyBTdXNwZW5zaW9uQ29udHJvbGxlcjsKICAgICBmcmllbmQgY2xh
c3MgU2NhbGVBbmltYXRpb247CiAgICAgZnJpZW5kIGNsYXNzIDo6UVdlYktpdFRlc3Q7CiAKQEAg
LTEyOCwxNyArMTQ3LDE5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhbmltYXRlQ29udGVudFJlY3RW
aXNpYmxlKGNvbnN0IFFSZWN0RiYgY29udGVudFJlY3QpOwogICAgIHZvaWQgc2NhbGVDb250ZW50
KHFyZWFsIGl0ZW1TY2FsZSwgY29uc3QgUVBvaW50RiYgY2VudGVySW5DU1NDb29yZGluYXRlcyA9
IFFQb2ludEYoKSk7CiAgICAgdm9pZCBjbGVhclJlbGF0aXZlWm9vbVN0YXRlKCk7Ci0gICAgdm9p
ZCByZXN1bWVBbmRVcGRhdGVDb250ZW50KCk7CisKKyAgICBTdXNwZW5zaW9uQ29udHJvbGxlciBt
X3NjYWxlU3VzcGVuc2lvbjsKKyAgICBTdXNwZW5zaW9uQ29udHJvbGxlciBtX3Njcm9sbFN1c3Bl
bnNpb247CisgICAgU3VzcGVuc2lvbkNvbnRyb2xsZXIgbV9pbnRlcmFjdGlvbkd1YXJkOwogCiAg
ICAgU2NhbGVBbmltYXRpb24qIG1fc2NhbGVBbmltYXRpb247CiAgICAgUVBvaW50RiBtX2xhc3RQ
aW5jaENlbnRlckluVmlld3BvcnRDb29yZGluYXRlczsKICAgICBRUG9pbnRGIG1fbGFzdFNjcm9s
bFBvc2l0aW9uOworICAgIGludCBtX2FjdGl2ZVN1c3BlbnNpb25Db3VudDsKICAgICBxcmVhbCBt
X3BpbmNoU3RhcnRTY2FsZTsKICAgICBxcmVhbCBtX2xhc3RDb21taXR0ZWRTY2FsZTsKICAgICBx
cmVhbCBtX3pvb21PdXRTY2FsZTsKICAgICBRTGlzdDxTY2FsZVN0YWNrSXRlbT4gbV9zY2FsZVN0
YWNrOwotICAgIGJvb2wgbV9pc1VzZXJJbnRlcmFjdGluZzsKLSAgICBib29sIG1faWdub3JlVmll
d3BvcnRDaGFuZ2VzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193559</attachid>
            <date>2013-03-18 07:31:06 -0700</date>
            <delta_ts>2013-03-18 08:48:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111751-20130318152513.patch</filename>
            <type>text/plain</type>
            <size>20489</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjRkMjFjMGVjZmZhZjEx
MDYwZjk3MmU3NjI0YWMzNmQxMjQ3YTcwNy4uNDE4NWQ5YjNhZDNjNjU4YzNkZjZjNDY1YjY1Zjdm
NjA1OGY3Mzg0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEzLTAzLTE4ICBBbmRy
YXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAZGlnaWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBS
ZWZhY3RvciBoYW5kbGluZyBvZiBjb250ZW50IHN1c3BlbnNpb24gdG8gcHJvcGVybHkgY292ZXIg
Y29ybmVyIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTE3NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgY3VycmVudCBzdXNwZW5kIC8gcmVzdW1lIGluZnJhc3RydWN0dXJlIHR1cm5lZCBv
dXQgdG8gYmUgaW5zdWZmaWNpZW50IHRvIGNvdmVyCisgICAgICAgIGFsbCBjb3JuZXIgY2FzZXMg
ZHVyaW5nIHRyYW5zaXRpb25zIGJldHdlZW4gZ2VzdHVyZXMgb2YgY29tcGxleCBnZXN0dXJlIGNo
YWlucy4KKworICAgICAgICBUaGUgcmVxdWlyZW1lbnRzIGZvciByb2J1c3Qgc3VzcGVuZCAvIHJl
c3VtZSBoYW5kbGluZyBhcmU6CisgICAgICAgICAgICAtIEtlZXAgdGhlIGNvbnRlbnQgc3VzcGVu
ZGVkIHdoaWxlIHRoZSB1c2VyIGlzIGNvbnRpbnVvdXNseSBpbnRlcmFjdGluZywKKyAgICAgICAg
ZWcuIGRvZXMgbm90IGxpZnQgdGhlIGZpbmdlciBiZXR3ZWVuIHRyYW5zaXRpb24gZnJvbSBhIHBh
biB0byBhIHBpbmNoIGdlc3R1cmUKKyAgICAgICAgYW5kIHZpY2UgdmVyc2EuCisgICAgICAgICAg
ICAtIFRoZSBjb250ZW50IHNob3VsZCBub3QgYmUgc3VzcGVuZGVkIHVubmVjZXNzYXJpbHkgKGxp
a2UgZm9yIGEgdGFwIGdlc3R1cmUpLAorICAgICAgICBvbmx5IGR1cmluZyBwYW5uaW5nIGFuZCBz
Y3JvbGwgYW5pbWF0aW9uIChmbGljayksIGFzIHdlbGwgYXMgcGluY2ggem9vbSBhbmQgc2NhbGUK
KyAgICAgICAgYW5pbWF0aW9uIChhbHNvIGluY2x1ZGVzIGRvdWJsZS10YXAtdG8tem9vbSkuCisg
ICAgICAgICAgICAtIFRoZSBjb250ZW50IHNob3VsZCBuZXZlciBlbmQgdXAgc3R1Y2sgaW4gc3Vz
cGVuZGVkIHN0YXRlIGFmdGVyIGxvbmcgZ2VzdHVyZQorICAgICAgICBjaGFpbnMgYW5kIGNvbnRp
bnVvdXMgaW50ZXJhY3Rpb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCByZWludHJvZHVjZXMgcmVm
ZXJlbmNlIGNvdW50aW5nIGJhc2VkIHN1c3BlbnNpb24gaW4gZm9ybSBvZiBhIG5ldworICAgICAg
ICBWaWV3cG9ydEludGVyYWN0aW9uVHJhY2tlciBtZW1iZXIgY2xhc3MgdG8gbWFrZSBpdCBwb3Nz
aWJsZSB0byByZWxpYWJseSBjb250cm9sIHRoZQorICAgICAgICBzdXNwZW5kIC8gcmVzdW1lIGN5
Y2xlcyBkdXJpbmcgc2Nyb2xsaW5nIGFuZCBzY2FsaW5nLgorICAgICAgICBEdXJpbmcgY29udGlu
dW91cyBnZXN0dXJlcywgd2hpbGUgdGhlIHVzZXIgaXMgaW50ZXJhY3RpbmcsIHRoZSByZWZlcmVu
Y2UgY291bnQgaXMKKyAgICAgICAgaW5jcmVhc2VkIHdpdGhvdXQgYWN0dWFsbHkgc3VzcGVuZGlu
ZyB0aGUgY29udGVudCB0byBwcmV2ZW50IHJlc3VtaW5nIHVubmVjZXNzYXJpbHkKKyAgICAgICAg
ZHVyaW5nIGNvbnRpbnVvdXMgaW50ZXJhY3Rpb24uIEF0IHRoZSBzYW1lIHRpbWUgdGhpcyBhbHNv
IGFzc3VyZXMgdGhhdCB0aGUgcGFnZSBpcworICAgICAgICBub3Qgc3VzcGVuZGVkIGZvciBzaW1w
bGUgdGFwIGdlc3R1cmVzLCB3aGljaCB3YXMgYSBzaWRlLWVmZmVjdCBvZiB0aGUgcHJldmlvdXMK
KyAgICAgICAgYXBwcm9hY2ggYmFzZWQgb24gdXBkYXRlIGRlZmVycmVycy4KKyAgICAgICAgVGhl
IG5ld2x5IGFkZGVkIGZ1bmN0aW9uYWxpdHkgcmVwbGFjZXMgYm9vbGVhbiBtZW1iZXJzIHRoYXQg
dHJpZWQgdG8gYWNoaXZlIHRoZQorICAgICAgICBhYm92ZSByZXF1aXJlbWVudHMuCisgICAgICAg
IEFkZGl0aW9uYWxseSB0aGlzIHBhdGNoIGFsc28gcmVtb3ZlcyB0aGUgcmVkdW5kYW50IG1faGFz
U3VzcGVuZGVkQ29udGVudCBtZW1iZXIKKyAgICAgICAgZnJvbSB0aGUgUGFnZVZpZXdwb3J0Q29u
dHJvbGxlciBzaW5jZSBXZWJQYWdlUHJveHkgYWxyZWFkeSBrZWVwcyB0aGlzIGluZm9ybWF0aW9u
LgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRDb250cm9s
bGVyKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6cGFnZURpZFJl
cXVlc3RTY3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1
cGRhdGVNaW5pbXVtU2NhbGVUb0ZpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9y
dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFBhZ2VWaWV3cG9ydENvbnRyb2xsZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjphcmVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc1N1c3BlbmRlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6UGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudFF0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OjpWaWV3cG9ydEludGVyYWN0aW9uVHJhY2tlcjo6YmVnaW4pOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dFF0OjpWaWV3cG9ydEludGVyYWN0aW9uVHJhY2tlcjo6ZW5kKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjphbmltYXRlQ29udGVudFJlY3RWaXNpYmxl
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpmbGlj
a01vdmVTdGFydGVkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudFF0OjpmbGlja01vdmVFbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRRdDo6cGFnZUl0ZW1Qb3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnNjYWxlQW5pbWF0aW9uU3RhdGVD
aGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0
Ojp0b3VjaEJlZ2luKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudFF0Ojp0b3VjaEVuZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXJDbGllbnRRdDo6em9vbVRvQXJlYUdlc3R1cmVFbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGFuR2VzdHVyZUFjdGl2ZSk6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGFuR2VzdHVyZVN0YXJ0
ZWQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBp
bmNoR2VzdHVyZUFjdGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXJDbGllbnRRdDo6cGluY2hHZXN0dXJlU3RhcnRlZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGluY2hHZXN0dXJlUmVxdWVzdFVwZGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGluY2hHZXN0
dXJlRW5kZWQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
UXQ6OnBpbmNoR2VzdHVyZUNhbmNlbGxlZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRRdDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0Lmg6CisgICAgICAgIChW
aWV3cG9ydEludGVyYWN0aW9uVHJhY2tlcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRRdDo6Vmlld3BvcnRJbnRlcmFjdGlvblRyYWNrZXI6OlZpZXdwb3J0
SW50ZXJhY3Rpb25UcmFja2VyKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OjpWaWV3cG9ydEludGVyYWN0aW9uVHJhY2tlcjo6aW5Qcm9ncmVzcyk6Cisg
ICAgICAgIChQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQpOgorCiAyMDEzLTAzLTE3ICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBJbnZhbGlkIGNoYXJzZXQgZW5jb2RpbmcgdXNpbmcgd2hlbiBzdWJzdGl0dXRpbmcgYSBtaXNz
cGVsbGVkIHdvcmQgaW4gV2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCmluZGV4IDMxZDBjN2MxZjAzN2Y2OGUzNjg4MWU3
M2JkODdkYTM3NjhmNjhkM2IuLmUxMTU2YWJkMjRhMjc1N2RjNzQ3NmIwY2E0Y2FmZTAyOWYxMTkz
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlci5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6UGFn
ZVZpZXdwb3J0Q29udHJvbGxlcihXZWJLaXQ6OldlYlBhZ2VQcm94eSogcHJveHksIFBhZ2UKICAg
ICAsIG1fYWxsb3dzVXNlclNjYWxpbmcoZmFsc2UpCiAgICAgLCBtX21pbmltdW1TY2FsZVRvRml0
KDEpCiAgICAgLCBtX2luaXRpYWxseUZpdFRvVmlld3BvcnQodHJ1ZSkKLSAgICAsIG1faGFzU3Vz
cGVuZGVkQ29udGVudChmYWxzZSkKICAgICAsIG1faGFkVXNlckludGVyYWN0aW9uKGZhbHNlKQog
ICAgICwgbV9wYWdlU2NhbGVGYWN0b3IoMSkKICAgICAsIG1fcGVuZGluZ1Bvc2l0aW9uQ2hhbmdl
KGZhbHNlKQpAQCAtMjI2LDcgKzIyNSw3IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6
cGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCkKIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxl
cjo6cGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgSW50UG9pbnQmIGNzc1Bvc2l0aW9uKQogewog
ICAgIC8vIElnbm9yZSB0aGUgcmVxdWVzdCBpZiBzdXNwZW5kZWQuIENhbiBvbmx5IGhhcHBlbiBk
dWUgdG8gZGVsYXkgaW4gZXZlbnQgZGVsaXZlcnkuCi0gICAgaWYgKG1faGFzU3VzcGVuZGVkQ29u
dGVudCkKKyAgICBpZiAobV93ZWJQYWdlUHJveHktPmFyZUFjdGl2ZURPTU9iamVjdHNBbmRBbmlt
YXRpb25zU3VzcGVuZGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEZsb2F0UG9pbnQgYm91
bmRQb3NpdGlvbiA9IGJvdW5kQ29udGVudHNQb3NpdGlvbihGbG9hdFBvaW50KGNzc1Bvc2l0aW9u
KSk7CkBAIC0zMDUsMjQgKzMwNCw2IEBAIEZsb2F0U2l6ZSBQYWdlVmlld3BvcnRDb250cm9sbGVy
Ojp2aXNpYmxlQ29udGVudHNTaXplKCkgY29uc3QKICAgICByZXR1cm4gRmxvYXRTaXplKG1fdmll
d3BvcnRTaXplLndpZHRoKCkgLyBtX3BhZ2VTY2FsZUZhY3RvciwgbV92aWV3cG9ydFNpemUuaGVp
Z2h0KCkgLyBtX3BhZ2VTY2FsZUZhY3Rvcik7CiB9CiAKLXZvaWQgUGFnZVZpZXdwb3J0Q29udHJv
bGxlcjo6c3VzcGVuZENvbnRlbnQoKQotewotICAgIGlmIChtX2hhc1N1c3BlbmRlZENvbnRlbnQp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIG1faGFzU3VzcGVuZGVkQ29udGVudCA9IHRydWU7Ci0g
ICAgbV93ZWJQYWdlUHJveHktPnN1c3BlbmRBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygp
OwotfQotCi12b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnJlc3VtZUNvbnRlbnQoKQotewot
ICAgIGlmICghbV9oYXNTdXNwZW5kZWRDb250ZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X2hhc1N1c3BlbmRlZENvbnRlbnQgPSBmYWxzZTsKLSAgICBtX3dlYlBhZ2VQcm94eS0+cmVzdW1l
QWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKLX0KLQogdm9pZCBQYWdlVmlld3BvcnRD
b250cm9sbGVyOjphcHBseVNjYWxlQWZ0ZXJSZW5kZXJpbmdDb250ZW50cyhmbG9hdCBzY2FsZSkK
IHsKICAgICBpZiAobV9wYWdlU2NhbGVGYWN0b3IgPT0gc2NhbGUpCkBAIC0zNTgsNyArMzM5LDcg
QEAgYm9vbCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRhdGVNaW5pbXVtU2NhbGVUb0ZpdChi
b29sIHVzZXJJbml0aWF0ZWRVcGRhdGUpCiAgICAgaWYgKCFmdXp6eUNvbXBhcmUobWluaW11bVNj
YWxlLCBtX21pbmltdW1TY2FsZVRvRml0LCAwLjAwMDEpKSB7CiAgICAgICAgIG1fbWluaW11bVNj
YWxlVG9GaXQgPSBtaW5pbXVtU2NhbGU7CiAKLSAgICAgICAgaWYgKCFoYXNTdXNwZW5kZWRDb250
ZW50KCkpIHsKKyAgICAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS0+YXJlQWN0aXZlRE9NT2JqZWN0
c0FuZEFuaW1hdGlvbnNTdXNwZW5kZWQoKSkgewogICAgICAgICAgICAgaWYgKCFtX2hhZFVzZXJJ
bnRlcmFjdGlvbiB8fCAodXNlckluaXRpYXRlZFVwZGF0ZSAmJiBjdXJyZW50bHlTY2FsZWRUb0Zp
dCkpCiAgICAgICAgICAgICAgICAgYXBwbHlTY2FsZUFmdGVyUmVuZGVyaW5nQ29udGVudHMobV9t
aW5pbXVtU2NhbGVUb0ZpdCk7CiAgICAgICAgICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCmluZGV4IDM1ZDRiNTMzZDIw
NzAyZWIyOWEyYzIyZDczNDI5MGJkMjRiYmQ2MDMuLjMxNjRlZmRhN2I3YTRhMWIwNzg1ZDk1YmQx
NDRlYjFjZDdiOWM0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdl
Vmlld3BvcnRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VW
aWV3cG9ydENvbnRyb2xsZXIuaApAQCAtMjIsOCArMjIsNiBAQAogI2lmbmRlZiBQYWdlVmlld3Bv
cnRDb250cm9sbGVyX2gKICNkZWZpbmUgUGFnZVZpZXdwb3J0Q29udHJvbGxlcl9oCiAKLSNpZiBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkKLQogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9h
dFNpemUuaD4KQEAgLTQ3LDkgKzQ1LDYgQEAgcHVibGljOgogICAgIFBhZ2VWaWV3cG9ydENvbnRy
b2xsZXIoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
Kik7CiAgICAgdmlydHVhbCB+UGFnZVZpZXdwb3J0Q29udHJvbGxlcigpIHsgfQogCi0gICAgdm9p
ZCBzdXNwZW5kQ29udGVudCgpOwotICAgIHZvaWQgcmVzdW1lQ29udGVudCgpOwotCiAgICAgZmxv
YXQgaW5uZXJCb3VuZGVkVmlld3BvcnRTY2FsZShmbG9hdCkgY29uc3Q7CiAgICAgZmxvYXQgb3V0
ZXJCb3VuZGVkVmlld3BvcnRTY2FsZShmbG9hdCkgY29uc3Q7CiAKQEAgLTYwLDcgKzU1LDYgQEAg
cHVibGljOgogCiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHZpc2libGVDb250ZW50c1NpemUoKSBj
b25zdDsKIAotICAgIGJvb2wgaGFzU3VzcGVuZGVkQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
aGFzU3VzcGVuZGVkQ29udGVudDsgfQogICAgIGJvb2wgaGFkVXNlckludGVyYWN0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9oYWRVc2VySW50ZXJhY3Rpb247IH0KICAgICBib29sIGFsbG93c1VzZXJT
Y2FsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NVc2VyU2NhbGluZzsgfQogCkBAIC05OSw3
ICs5Myw2IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9taW5pbXVtU2NhbGVUb0ZpdDsKICAgICBi
b29sIG1faW5pdGlhbGx5Rml0VG9WaWV3cG9ydDsKIAotICAgIGJvb2wgbV9oYXNTdXNwZW5kZWRD
b250ZW50OwogICAgIGJvb2wgbV9oYWRVc2VySW50ZXJhY3Rpb247CiAKICAgICBXZWJDb3JlOjpG
bG9hdFBvaW50IG1fY29udGVudHNQb3NpdGlvbjsKQEAgLTExNyw2ICsxMTAsNCBAQCBib29sIGZ1
enp5Q29tcGFyZShmbG9hdCwgZmxvYXQsIGZsb2F0IGVwc2lsb24pOwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAotI2VuZGlmCi0KICNlbmRpZiAvLyBQYWdlVmlld3BvcnRDb250cm9sbGVyX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5MzIyM2M1YWI5Y2Mw
MGViOWI4N2M1ZTllYTU5YjNhOWEyMzEwNTE3Li4zYjMyZWVmODQxODIxZGVlZTNhZGU3NGY0N2Q5
MjA0Zjc4NzZkZmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC00NTUsNiArNDU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3VzdG9tVGV4dEVuY29kaW5n
TmFtZShjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgY3VzdG9tVGV4dEVuY29kaW5nTmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tVGV4dEVuY29kaW5nTmFtZTsgfQogCisgICAgYm9vbCBh
cmVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc1N1c3BlbmRlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNQYWdlU3VzcGVuZGVkOyB9CiAgICAgdm9pZCByZXN1bWVBY3RpdmVET01PYmplY3RzQW5k
QW5pbWF0aW9ucygpOwogICAgIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRp
b25zKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmll
d3BvcnRDb250cm9sbGVyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5jcHAKaW5kZXggZDdlMWNkMTFhNmIyMjM1
N2Q5MTkwMzg5ZWNiMzU0MjEzNmU0YWM1Mi4uYTM2ZDZiZjM1MDNjZWM2ZDFjOGJmZWQ0ZTkxMzll
OTE1YTFjODNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5jcHAKQEAgLTIzLDEyICsyMywx
NCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXJDbGllbnRRdC5oIgogCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAicXF1
aWNrd2VicGFnZV9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCiAjaW5jbHVkZSAi
cXdlYmtpdHRlc3RfcC5oIgogI2luY2x1ZGUgPFFQb2ludEY+CiAjaW5jbHVkZSA8UVRyYW5zZm9y
bT4KICNpbmNsdWRlIDxRdFF1aWNrL3FxdWlja2l0ZW0uaD4KKyNpbmNsdWRlIDxXS0FQSUNhc3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxv
YXRTaXplLmg+CiAKQEAgLTQxLDEyICs0MywxNCBAQCBzdGF0aWMgY29uc3QgaW50IGtTY2FsZUFu
aW1hdGlvbkR1cmF0aW9uTWlsbGlzID0gMjUwOwogUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dFF0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQoUVF1aWNrV2ViVmlldyogdmlld3Bv
cnRJdGVtLCBRUXVpY2tXZWJQYWdlKiBwYWdlSXRlbSkKICAgICA6IG1fdmlld3BvcnRJdGVtKHZp
ZXdwb3J0SXRlbSkKICAgICAsIG1fcGFnZUl0ZW0ocGFnZUl0ZW0pCisgICAgLCBtX3NjYWxlQ2hh
bmdlKHRoaXMpCisgICAgLCBtX3Njcm9sbENoYW5nZSh0aGlzKQorICAgICwgbV90b3VjaEludGVy
YWN0aW9uKHRoaXMsIGZhbHNlIC8qIHNob3VsZFN1c3BlbmQgKi8pCiAgICAgLCBtX3NjYWxlQW5p
bWF0aW9uKG5ldyBTY2FsZUFuaW1hdGlvbih0aGlzKSkKKyAgICAsIG1fYWN0aXZlU3VzcGVuc2lv
bkNvdW50KDApCiAgICAgLCBtX3BpbmNoU3RhcnRTY2FsZSgtMSkKICAgICAsIG1fbGFzdENvbW1p
dHRlZFNjYWxlKC0xKQogICAgICwgbV96b29tT3V0U2NhbGUoMCkKLSAgICAsIG1faXNVc2VySW50
ZXJhY3RpbmcoZmFsc2UpCi0gICAgLCBtX2lnbm9yZVZpZXdwb3J0Q2hhbmdlcyhmYWxzZSkKIHsK
ICAgICBtX3NjYWxlQW5pbWF0aW9uLT5zZXREdXJhdGlvbihrU2NhbGVBbmltYXRpb25EdXJhdGlv
bk1pbGxpcyk7CiAgICAgbV9zY2FsZUFuaW1hdGlvbi0+c2V0RWFzaW5nQ3VydmUoUUVhc2luZ0N1
cnZlOjpPdXRDdWJpYyk7CkBAIC03Niw2ICs4MCwzMiBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRRdDo6U2NhbGVBbmltYXRpb246OnVwZGF0ZUN1cnJlbnRWYWx1ZShjb25zdCBR
VgogICAgIG1fY29udHJvbGxlckNsaWVudC0+c2V0Q29udGVudFJlY3RWaXNpYmxlUG9zaXRpb25B
dFNjYWxlKGl0ZW1SZWN0LnRvcExlZnQoKSwgaXRlbVNjYWxlKTsKIH0KIAordm9pZCBQYWdlVmll
d3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OlZpZXdwb3J0SW50ZXJhY3Rpb25UcmFja2VyOjpiZWdp
bigpCit7CisgICAgaWYgKG1faW5Qcm9ncmVzcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9p
blByb2dyZXNzID0gdHJ1ZTsKKworICAgIGlmIChtX3Nob3VsZFN1c3BlbmQpCisgICAgICAgIHRv
SW1wbChtX2NvbnRyb2xsZXJDbGllbnQtPm1fdmlld3BvcnRJdGVtLT5wYWdlUmVmKCkpLT5zdXNw
ZW5kQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKKworICAgICsrKG1fY29udHJvbGxl
ckNsaWVudC0+bV9hY3RpdmVTdXNwZW5zaW9uQ291bnQpOworfQorCit2b2lkIFBhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRRdDo6Vmlld3BvcnRJbnRlcmFjdGlvblRyYWNrZXI6OmVuZCgpCit7
CisgICAgaWYgKCFtX2luUHJvZ3Jlc3MpCisgICAgICAgIHJldHVybjsKKworICAgIG1faW5Qcm9n
cmVzcyA9IGZhbHNlOworCisgICAgQVNTRVJUKG1fY29udHJvbGxlckNsaWVudC0+bV9hY3RpdmVT
dXNwZW5zaW9uQ291bnQgPiAwKTsKKworICAgIGlmICghKC0tKG1fY29udHJvbGxlckNsaWVudC0+
bV9hY3RpdmVTdXNwZW5zaW9uQ291bnQpKSkKKyAgICAgICAgdG9JbXBsKG1fY29udHJvbGxlckNs
aWVudC0+bV92aWV3cG9ydEl0ZW0tPnBhZ2VSZWYoKSktPnJlc3VtZUFjdGl2ZURPTU9iamVjdHNB
bmRBbmltYXRpb25zKCk7Cit9CisKIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6flBh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdCgpCiB7CiB9CkBAIC0xMDMsNyArMTMzLDggQEAg
dm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OmFuaW1hdGVDb250ZW50UmVjdFZp
c2libGUoY29uc3QgUVJlY3RGJiBjb24KIAogICAgIFFSZWN0RiB2aWV3cG9ydFJlY3RJbkNvbnRl
bnRDb29yZHMgPSBtX3ZpZXdwb3J0SXRlbS0+bWFwUmVjdFRvV2ViQ29udGVudChtX3ZpZXdwb3J0
SXRlbS0+Ym91bmRpbmdSZWN0KCkpOwogICAgIGlmIChjb250ZW50UmVjdCA9PSB2aWV3cG9ydFJl
Y3RJbkNvbnRlbnRDb29yZHMpIHsKLSAgICAgICAgcmVzdW1lQW5kVXBkYXRlQ29udGVudCgpOwor
ICAgICAgICBtX3NjYWxlQ2hhbmdlLmVuZCgpOworICAgICAgICB1cGRhdGVWaWV3cG9ydENvbnRy
b2xsZXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTIxLDIyICsxNTIsMjAgQEAg
dm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OmFuaW1hdGVDb250ZW50UmVjdFZp
c2libGUoY29uc3QgUVJlY3RGJiBjb24KIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50UXQ6OmZsaWNrTW92ZVN0YXJ0ZWQoKQogewotICAgIG1fY29udHJvbGxlci0+c3VzcGVuZENv
bnRlbnQoKTsKLQorICAgIG1fc2Nyb2xsQ2hhbmdlLmJlZ2luKCk7CiAgICAgbV9sYXN0U2Nyb2xs
UG9zaXRpb24gPSBtX3ZpZXdwb3J0SXRlbS0+Y29udGVudFBvcygpOwogfQogCiB2b2lkIFBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6ZmxpY2tNb3ZlRW5kZWQoKQogewogICAgIC8vIFRo
aXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgZW5kIG9mIHRoZSBwYW4gb3IgcGFuIGtpbmV0aWMg
YW5pbWF0aW9uLgotCi0gICAgaWYgKCFtX2lzVXNlckludGVyYWN0aW5nKQotICAgICAgICByZXN1
bWVBbmRVcGRhdGVDb250ZW50KCk7CisgICAgbV9zY3JvbGxDaGFuZ2UuZW5kKCk7CisgICAgdXBk
YXRlVmlld3BvcnRDb250cm9sbGVyKCk7CiB9CiAKIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxl
ckNsaWVudFF0OjpwYWdlSXRlbVBvc2l0aW9uQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKG1faWdub3Jl
Vmlld3BvcnRDaGFuZ2VzKQorICAgIGlmIChtX3NjYWxlQ2hhbmdlLmluUHJvZ3Jlc3MoKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgUVBvaW50RiBuZXdQb3NpdGlvbiA9IG1fdmlld3BvcnRJdGVt
LT5jb250ZW50UG9zKCk7CkBAIC0xNTAsMTMgKzE3OSwxMSBAQCB2b2lkIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRRdDo6c2NhbGVBbmltYXRpb25TdGF0ZUNoYW5nZWQoUUFic3RyYWN0QW5p
bWF0aQogewogICAgIHN3aXRjaCAobmV3U3RhdGUpIHsKICAgICBjYXNlIFFBYnN0cmFjdEFuaW1h
dGlvbjo6UnVubmluZzoKLSAgICAgICAgbV9pZ25vcmVWaWV3cG9ydENoYW5nZXMgPSB0cnVlOwot
ICAgICAgICBtX3ZpZXdwb3J0SXRlbS0+Y2FuY2VsRmxpY2soKTsKLSAgICAgICAgbV9jb250cm9s
bGVyLT5zdXNwZW5kQ29udGVudCgpOworICAgICAgICBtX3NjYWxlQ2hhbmdlLmJlZ2luKCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUUFic3RyYWN0QW5pbWF0aW9uOjpTdG9wcGVkOgotICAg
ICAgICBtX2lnbm9yZVZpZXdwb3J0Q2hhbmdlcyA9IGZhbHNlOwotICAgICAgICByZXN1bWVBbmRV
cGRhdGVDb250ZW50KCk7CisgICAgICAgIG1fc2NhbGVDaGFuZ2UuZW5kKCk7CisgICAgICAgIHVw
ZGF0ZVZpZXdwb3J0Q29udHJvbGxlcigpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBicmVhazsKQEAgLTE2NywxMyArMTk0LDE0IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudFF0Ojp0b3VjaEJlZ2luKCkKIHsKICAgICBtX2NvbnRyb2xsZXItPnNldEhh
ZFVzZXJJbnRlcmFjdGlvbih0cnVlKTsKIAotICAgIC8vIFByZXZlbnRzIHJlc3VtaW5nIHRoZSBw
YWdlIGJldHdlZW4gdGhlIHVzZXIncyBmbGlja3Mgb2YgdGhlIHBhZ2UuCi0gICAgbV9pc1VzZXJJ
bnRlcmFjdGluZyA9IHRydWU7CisgICAgLy8gUHJldmVudCByZXN1bWluZyB0aGUgcGFnZSBkdXJp
bmcgdHJhbnNpdGlvbiBiZXR3ZWVuIGdlc3R1cmVzIHdoaWxlIHRoZSB1c2VyIGlzIGludGVyYWN0
aW5nLgorICAgIC8vIFRoZSBjb250ZW50IGlzIHN1c3BlbmRlZCBhcyBzb29uIGFzIGEgcGFuIG9y
IHBpbmNoIGdlc3R1cmUgb3IgYW4gYW5pbWF0aW9uIGlzIHN0YXJ0ZWQuCisgICAgbV90b3VjaElu
dGVyYWN0aW9uLmJlZ2luKCk7CiB9CiAKIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dFF0Ojp0b3VjaEVuZCgpCiB7Ci0gICAgbV9pc1VzZXJJbnRlcmFjdGluZyA9IGZhbHNlOworICAg
IG1fdG91Y2hJbnRlcmFjdGlvbi5lbmQoKTsKIH0KIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50UXQ6OmZvY3VzRWRpdGFibGVBcmVhKGNvbnN0IFFSZWN0RiYgY2FyZXRBcmVhLCBj
b25zdCBRUmVjdEYmIHRhcmdldEFyZWEpCkBAIC0yMTcsNyArMjQ1LDcgQEAgdm9pZCBQYWdlVmll
d3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6Onpvb21Ub0FyZWFHZXN0dXJlRW5kZWQoY29uc3QgUVBv
aW50RiYgdG91Y2gKICAgICBpZiAoIXRhcmdldEFyZWEuaXNWYWxpZCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAobV9jb250cm9sbGVyLT5oYXNTdXNwZW5kZWRDb250ZW50KCkpCisgICAg
aWYgKG1fc2Nyb2xsQ2hhbmdlLmluUHJvZ3Jlc3MoKSB8fCBtX3NjYWxlQ2hhbmdlLmluUHJvZ3Jl
c3MoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgY29uc3QgZmxvYXQgbWFyZ2luID0gMTA7IC8v
IFdlIHdhbnQgYXQgbGVhc3QgYSBsaXR0bGUgYml0IG9mIG1hcmdpbi4KQEAgLTMzMywxMyArMzYx
LDYgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnNldENvbnRlbnRzUmVj
dFRvTmVhcmVzdFZhbGlkQm91bmRzKCkKICAgICB1cGRhdGVWaWV3cG9ydENvbnRyb2xsZXIoKTsK
IH0KIAotdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnJlc3VtZUFuZFVwZGF0
ZUNvbnRlbnQoKQotewotICAgIG1fY29udHJvbGxlci0+cmVzdW1lQ29udGVudCgpOwotICAgIC8v
IE1ha2Ugc3VyZSB0aGF0IHRpbGVzIGFsbCBhcm91bmQgdGhlIHZpZXdwb3J0IHdpbGwgYmUgcmVx
dWVzdGVkLgotICAgIHVwZGF0ZVZpZXdwb3J0Q29udHJvbGxlcigpOwotfQotCiBib29sIFBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6c2Nyb2xsQW5pbWF0aW9uQWN0aXZlKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV92aWV3cG9ydEl0ZW0tPmlzRmxpY2tpbmcoKTsKQEAgLTM0NywxMyAr
MzY4LDEzIEBAIGJvb2wgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpzY3JvbGxBbmlt
YXRpb25BY3RpdmUoKSBjb25zdAogCiBib29sIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRR
dDo6cGFuR2VzdHVyZUFjdGl2ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fY29udHJvbGxlci0+
aGFkVXNlckludGVyYWN0aW9uKCkgJiYgbV92aWV3cG9ydEl0ZW0tPmlzRHJhZ2dpbmcoKTsKKyAg
ICByZXR1cm4gbV90b3VjaEludGVyYWN0aW9uLmluUHJvZ3Jlc3MoKSAmJiBtX3ZpZXdwb3J0SXRl
bS0+aXNEcmFnZ2luZygpOwogfQogCiB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRR
dDo6cGFuR2VzdHVyZVN0YXJ0ZWQoY29uc3QgUVBvaW50RiYgcG9zaXRpb24sIHFpbnQ2NCBldmVu
dFRpbWVzdGFtcE1pbGxpcykKIHsKICAgICAvLyBUaGlzIGNhbiBvbmx5IGhhcHBlbiBhcyBhIHJl
c3VsdCBvZiBhIHVzZXIgaW50ZXJhY3Rpb24uCi0gICAgQVNTRVJUKG1fY29udHJvbGxlci0+aGFk
VXNlckludGVyYWN0aW9uKCkpOworICAgIEFTU0VSVChtX3RvdWNoSW50ZXJhY3Rpb24uaW5Qcm9n
cmVzcygpKTsKIAogICAgIG1fdmlld3BvcnRJdGVtLT5oYW5kbGVGbGlja2FibGVNb3VzZVByZXNz
KHBvc2l0aW9uLCBldmVudFRpbWVzdGFtcE1pbGxpcyk7CiAgICAgbV9sYXN0UGluY2hDZW50ZXJJ
blZpZXdwb3J0Q29vcmRpbmF0ZXMgPSBwb3NpdGlvbjsKQEAgLTQxMCwyMSArNDMxLDE5IEBAIHZv
aWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjppbnRlcnJ1cHRTY2FsZUFuaW1hdGlv
bigpCiAKIGJvb2wgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpwaW5jaEdlc3R1cmVB
Y3RpdmUoKSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnRyb2xsZXItPmhhZFVzZXJJbnRlcmFj
dGlvbigpICYmIChtX3BpbmNoU3RhcnRTY2FsZSA+IDApOworICAgIHJldHVybiBtX3RvdWNoSW50
ZXJhY3Rpb24uaW5Qcm9ncmVzcygpICYmIChtX3BpbmNoU3RhcnRTY2FsZSA+IDApOwogfQogCiB2
b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGluY2hHZXN0dXJlU3RhcnRlZChj
b25zdCBRUG9pbnRGJiBwaW5jaENlbnRlckluVmlld3BvcnRDb29yZGluYXRlcykKIHsKICAgICAv
LyBUaGlzIGNhbiBvbmx5IGhhcHBlbiBhcyBhIHJlc3VsdCBvZiBhIHVzZXIgaW50ZXJhY3Rpb24u
Ci0gICAgQVNTRVJUKG1fY29udHJvbGxlci0+aGFkVXNlckludGVyYWN0aW9uKCkpOworICAgIEFT
U0VSVChtX3RvdWNoSW50ZXJhY3Rpb24uaW5Qcm9ncmVzcygpKTsKIAogICAgIGlmICghbV9jb250
cm9sbGVyLT5hbGxvd3NVc2VyU2NhbGluZygpKQogICAgICAgICByZXR1cm47CiAKICAgICBjbGVh
clJlbGF0aXZlWm9vbVN0YXRlKCk7Ci0KLSAgICBtX2lnbm9yZVZpZXdwb3J0Q2hhbmdlcyA9IHRy
dWU7Ci0gICAgbV9jb250cm9sbGVyLT5zdXNwZW5kQ29udGVudCgpOworICAgIG1fc2NhbGVDaGFu
Z2UuYmVnaW4oKTsKIAogICAgIG1fbGFzdFBpbmNoQ2VudGVySW5WaWV3cG9ydENvb3JkaW5hdGVz
ID0gcGluY2hDZW50ZXJJblZpZXdwb3J0Q29vcmRpbmF0ZXM7CiAgICAgbV9waW5jaFN0YXJ0U2Nh
bGUgPSBtX3BhZ2VJdGVtLT5jb250ZW50c1NjYWxlKCk7CkBAIC00MzIsMTEgKzQ1MSwxMiBAQCB2
b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGluY2hHZXN0dXJlU3RhcnRlZChj
b25zdCBRUG9pbnRGJiBwaW5jaENlbgogCiB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnRRdDo6cGluY2hHZXN0dXJlUmVxdWVzdFVwZGF0ZShjb25zdCBRUG9pbnRGJiBwaW5jaENlbnRl
ckluVmlld3BvcnRDb29yZGluYXRlcywgcXJlYWwgdG90YWxTY2FsZUZhY3RvcikKIHsKLSAgICBB
U1NFUlQobV9jb250cm9sbGVyLT5oYXNTdXNwZW5kZWRDb250ZW50KCkpOworICAgIEFTU0VSVCht
X3NjYWxlQ2hhbmdlLmluUHJvZ3Jlc3MoKSk7CiAKICAgICBpZiAoIW1fY29udHJvbGxlci0+YWxs
b3dzVXNlclNjYWxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgQVNTRVJUKG1fcGluY2hT
dGFydFNjYWxlID4gMCk7CiAgICAgLy8gIENoYW5nZXMgb2YgdGhlIGNlbnRlciBwb3NpdGlvbiBz
aG91bGQgbW92ZSB0aGUgcGFnZSBldmVuIGlmIHRoZSB6b29tIGZhY3RvciBkb2VzIG5vdCBjaGFu
Z2UuCiAgICAgY29uc3QgcXJlYWwgcGluY2hTY2FsZSA9IG1fcGluY2hTdGFydFNjYWxlICogdG90
YWxTY2FsZUZhY3RvcjsKIApAQCAtNDUzLDEyICs0NzMsMTEgQEAgdm9pZCBQYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50UXQ6OnBpbmNoR2VzdHVyZVJlcXVlc3RVcGRhdGUoY29uc3QgUVBvaW50
RiYgcGkKIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBpbmNoR2VzdHVy
ZUVuZGVkKCkKIHsKLSAgICBBU1NFUlQobV9jb250cm9sbGVyLT5oYXNTdXNwZW5kZWRDb250ZW50
KCkpOworICAgIEFTU0VSVChtX3NjYWxlQ2hhbmdlLmluUHJvZ3Jlc3MoKSk7CiAKICAgICBpZiAo
IW1fY29udHJvbGxlci0+YWxsb3dzVXNlclNjYWxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9pZ25vcmVWaWV3cG9ydENoYW5nZXMgPSBmYWxzZTsKICAgICBtX3BpbmNoU3RhcnRTY2Fs
ZSA9IC0xOwogCiAgICAgLy8gVGhpcyB3aWxsIHRha2UgY2FyZSBvZiByZXN1bWluZyB0aGUgY29u
dGVudCwgZXZlbiBpZiBubyBhbmltYXRpb24gd2FzIHBlcmZvcm1lZC4KQEAgLTQ2OCw3ICs0ODcs
OCBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGluY2hHZXN0dXJlRW5k
ZWQoKQogdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBpbmNoR2VzdHVyZUNh
bmNlbGxlZCgpCiB7CiAgICAgbV9waW5jaFN0YXJ0U2NhbGUgPSAtMTsKLSAgICByZXN1bWVBbmRV
cGRhdGVDb250ZW50KCk7CisgICAgbV9zY2FsZUNoYW5nZS5lbmQoKTsKKyAgICB1cGRhdGVWaWV3
cG9ydENvbnRyb2xsZXIoKTsKIH0KIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
UXQ6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJiBuZXdTaXplKQpAQCAtNDc5
LDcgKzQ5OSw3IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpkaWRDaGFu
Z2VDb250ZW50c1NpemUoY29uc3QgSW50U2l6ZSYgbmV3U2l6CiAgICAgLy8gd2UgZGlkbid0IGRv
IHNjYWxlIGFkanVzdG1lbnQuCiAgICAgZW1pdCBtX3ZpZXdwb3J0SXRlbS0+ZXhwZXJpbWVudGFs
KCktPnRlc3QoKS0+Y29udGVudHNTY2FsZUNvbW1pdHRlZCgpOwogCi0gICAgaWYgKCFtX2NvbnRy
b2xsZXItPmhhc1N1c3BlbmRlZENvbnRlbnQoKSkKKyAgICBpZiAoIW1fc2NhbGVDaGFuZ2UuaW5Q
cm9ncmVzcygpICYmICFtX3Njcm9sbENoYW5nZS5pblByb2dyZXNzKCkpCiAgICAgICAgIHNldENv
bnRlbnRzUmVjdFRvTmVhcmVzdFZhbGlkQm91bmRzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
UXQuaAppbmRleCBmODVlOWJkMDAzMGJlMzkwOTY0YzAxMTk5YWIzMjYzMjgzYzk1NzU2Li5mMTNj
OGQ3OTc5OTRhMzFmM2Y2NmYyZGQ3OTRiYWZkNDgwMTk0OWFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnRRdC5oCkBAIC0xMDIsNiArMTAyLDI0IEBAIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVDdXJyZW50VmFsdWUoY29uc3QgUVZhcmlhbnQmKTsKICAgICB9OwogCisgICAgY2xh
c3MgVmlld3BvcnRJbnRlcmFjdGlvblRyYWNrZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgVmll
d3BvcnRJbnRlcmFjdGlvblRyYWNrZXIoUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0KiBj
bGllbnQsIGJvb2wgc2hvdWxkU3VzcGVuZCA9IHRydWUpCisgICAgICAgICAgICA6IG1fY29udHJv
bGxlckNsaWVudChjbGllbnQpCisgICAgICAgICAgICAsIG1fc2hvdWxkU3VzcGVuZChzaG91bGRT
dXNwZW5kKQorICAgICAgICAgICAgLCBtX2luUHJvZ3Jlc3MoZmFsc2UpCisgICAgICAgIHsgfQor
CisgICAgICAgIHZvaWQgYmVnaW4oKTsKKyAgICAgICAgdm9pZCBlbmQoKTsKKyAgICAgICAgYm9v
bCBpblByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gbV9pblByb2dyZXNzOyB9CisKKyAgICBwcml2
YXRlOgorICAgICAgICBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQqIG1fY29udHJvbGxl
ckNsaWVudDsKKyAgICAgICAgYm9vbCBtX3Nob3VsZFN1c3BlbmQ7CisgICAgICAgIGJvb2wgbV9p
blByb2dyZXNzOworICAgIH07CisKICAgICBzdHJ1Y3QgU2NhbGVTdGFja0l0ZW0gewogICAgICAg
ICBTY2FsZVN0YWNrSXRlbShxcmVhbCBzY2FsZSwgcXJlYWwgeFBvc2l0aW9uKQogICAgICAgICAg
ICAgOiBzY2FsZShzY2FsZSkKQEAgLTExMiw2ICsxMzAsNyBAQCBwcml2YXRlOgogICAgICAgICBx
cmVhbCB4UG9zaXRpb247CiAgICAgfTsKIAorICAgIGZyaWVuZCBjbGFzcyBWaWV3cG9ydEludGVy
YWN0aW9uVHJhY2tlcjsKICAgICBmcmllbmQgY2xhc3MgU2NhbGVBbmltYXRpb247CiAgICAgZnJp
ZW5kIGNsYXNzIDo6UVdlYktpdFRlc3Q7CiAKQEAgLTEyOCwxNyArMTQ3LDE5IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBhbmltYXRlQ29udGVudFJlY3RWaXNpYmxlKGNvbnN0IFFSZWN0RiYgY29udGVu
dFJlY3QpOwogICAgIHZvaWQgc2NhbGVDb250ZW50KHFyZWFsIGl0ZW1TY2FsZSwgY29uc3QgUVBv
aW50RiYgY2VudGVySW5DU1NDb29yZGluYXRlcyA9IFFQb2ludEYoKSk7CiAgICAgdm9pZCBjbGVh
clJlbGF0aXZlWm9vbVN0YXRlKCk7Ci0gICAgdm9pZCByZXN1bWVBbmRVcGRhdGVDb250ZW50KCk7
CisKKyAgICBWaWV3cG9ydEludGVyYWN0aW9uVHJhY2tlciBtX3NjYWxlQ2hhbmdlOworICAgIFZp
ZXdwb3J0SW50ZXJhY3Rpb25UcmFja2VyIG1fc2Nyb2xsQ2hhbmdlOworICAgIFZpZXdwb3J0SW50
ZXJhY3Rpb25UcmFja2VyIG1fdG91Y2hJbnRlcmFjdGlvbjsKIAogICAgIFNjYWxlQW5pbWF0aW9u
KiBtX3NjYWxlQW5pbWF0aW9uOwogICAgIFFQb2ludEYgbV9sYXN0UGluY2hDZW50ZXJJblZpZXdw
b3J0Q29vcmRpbmF0ZXM7CiAgICAgUVBvaW50RiBtX2xhc3RTY3JvbGxQb3NpdGlvbjsKKyAgICBp
bnQgbV9hY3RpdmVTdXNwZW5zaW9uQ291bnQ7CiAgICAgcXJlYWwgbV9waW5jaFN0YXJ0U2NhbGU7
CiAgICAgcXJlYWwgbV9sYXN0Q29tbWl0dGVkU2NhbGU7CiAgICAgcXJlYWwgbV96b29tT3V0U2Nh
bGU7CiAgICAgUUxpc3Q8U2NhbGVTdGFja0l0ZW0+IG1fc2NhbGVTdGFjazsKLSAgICBib29sIG1f
aXNVc2VySW50ZXJhY3Rpbmc7Ci0gICAgYm9vbCBtX2lnbm9yZVZpZXdwb3J0Q2hhbmdlczsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193572</attachid>
            <date>2013-03-18 08:48:21 -0700</date>
            <delta_ts>2013-03-20 09:47:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111751-20130318164228.patch</filename>
            <type>text/plain</type>
            <size>19033</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjRkMjFjMGVjZmZhZjEx
MDYwZjk3MmU3NjI0YWMzNmQxMjQ3YTcwNy4uMTI1ZWZhYzE4NTFjYzQ4YTRhMGM5NjQ0MTMyOGI4
YzZmNDgzYzZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEzLTAzLTE4ICBBbmRy
YXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAZGlnaWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBS
ZWZhY3RvciBoYW5kbGluZyBvZiBjb250ZW50IHN1c3BlbnNpb24gdG8gcHJvcGVybHkgY292ZXIg
Y29ybmVyIGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTE3NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGUgY3VycmVudCBzdXNwZW5kIC8gcmVzdW1lIGluZnJhc3RydWN0dXJlIHR1cm5lZCBv
dXQgdG8gYmUgaW5zdWZmaWNpZW50IHRvIGNvdmVyCisgICAgICAgIGFsbCBjb3JuZXIgY2FzZXMg
ZHVyaW5nIHRyYW5zaXRpb25zIGJldHdlZW4gZ2VzdHVyZXMgb2YgY29tcGxleCBnZXN0dXJlIGNo
YWlucy4KKworICAgICAgICBUaGUgcmVxdWlyZW1lbnRzIGZvciByb2J1c3Qgc3VzcGVuZCAvIHJl
c3VtZSBoYW5kbGluZyBhcmU6CisgICAgICAgICAgICAtIEtlZXAgdGhlIGNvbnRlbnQgc3VzcGVu
ZGVkIHdoaWxlIHRoZSB1c2VyIGlzIGNvbnRpbnVvdXNseSBpbnRlcmFjdGluZywKKyAgICAgICAg
ZWcuIGRvZXMgbm90IGxpZnQgdGhlIGZpbmdlciBiZXR3ZWVuIHRyYW5zaXRpb24gZnJvbSBhIHBh
biB0byBhIHBpbmNoIGdlc3R1cmUKKyAgICAgICAgYW5kIHZpY2UgdmVyc2EuCisgICAgICAgICAg
ICAtIFRoZSBjb250ZW50IHNob3VsZCBub3QgYmUgc3VzcGVuZGVkIHVubmVjZXNzYXJpbHkgKGxp
a2UgZm9yIGEgdGFwIGdlc3R1cmUpLAorICAgICAgICBvbmx5IGR1cmluZyBwYW5uaW5nIGFuZCBz
Y3JvbGwgYW5pbWF0aW9uIChmbGljayksIGFzIHdlbGwgYXMgcGluY2ggem9vbSBhbmQgc2NhbGUK
KyAgICAgICAgYW5pbWF0aW9uIChhbHNvIGluY2x1ZGVzIGRvdWJsZS10YXAtdG8tem9vbSkuCisg
ICAgICAgICAgICAtIFRoZSBjb250ZW50IHNob3VsZCBuZXZlciBlbmQgdXAgc3R1Y2sgaW4gc3Vz
cGVuZGVkIHN0YXRlIGFmdGVyIGxvbmcgZ2VzdHVyZQorICAgICAgICBjaGFpbnMgYW5kIGNvbnRp
bnVvdXMgaW50ZXJhY3Rpb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCByZWludHJvZHVjZXMgcmVm
ZXJlbmNlIGNvdW50aW5nIGJhc2VkIHN1c3BlbnNpb24gaW4gZm9ybSBvZiBhIG5ldworICAgICAg
ICBWaWV3cG9ydEludGVyYWN0aW9uVHJhY2tlciBtZW1iZXIgY2xhc3MgdG8gbWFrZSBpdCBwb3Nz
aWJsZSB0byByZWxpYWJseSBjb250cm9sIHRoZQorICAgICAgICBzdXNwZW5kIC8gcmVzdW1lIGN5
Y2xlcyBkdXJpbmcgc2Nyb2xsaW5nIGFuZCBzY2FsaW5nLgorICAgICAgICBEdXJpbmcgY29udGlu
dW91cyBnZXN0dXJlcywgd2hpbGUgdGhlIHVzZXIgaXMgaW50ZXJhY3RpbmcsIHRoZSByZWZlcmVu
Y2UgY291bnQgaXMKKyAgICAgICAgaW5jcmVhc2VkIHdpdGhvdXQgYWN0dWFsbHkgc3VzcGVuZGlu
ZyB0aGUgY29udGVudCB0byBwcmV2ZW50IHJlc3VtaW5nIHVubmVjZXNzYXJpbHkKKyAgICAgICAg
ZHVyaW5nIGNvbnRpbnVvdXMgaW50ZXJhY3Rpb24uIEF0IHRoZSBzYW1lIHRpbWUgdGhpcyBhbHNv
IGFzc3VyZXMgdGhhdCB0aGUgcGFnZSBpcworICAgICAgICBub3Qgc3VzcGVuZGVkIGZvciBzaW1w
bGUgdGFwIGdlc3R1cmVzLCB3aGljaCB3YXMgYSBzaWRlLWVmZmVjdCBvZiB0aGUgcHJldmlvdXMK
KyAgICAgICAgYXBwcm9hY2ggYmFzZWQgb24gdXBkYXRlIGRlZmVycmVycy4KKyAgICAgICAgVGhl
IG5ld2x5IGFkZGVkIGZ1bmN0aW9uYWxpdHkgcmVwbGFjZXMgYm9vbGVhbiBtZW1iZXJzIHRoYXQg
dHJpZWQgdG8gYWNoaXZlIHRoZQorICAgICAgICBhYm92ZSByZXF1aXJlbWVudHMuCisgICAgICAg
IEFkZGl0aW9uYWxseSB0aGlzIHBhdGNoIGFsc28gcmVtb3ZlcyB0aGUgcmVkdW5kYW50IG1faGFz
U3VzcGVuZGVkQ29udGVudCBtZW1iZXIKKyAgICAgICAgZnJvbSB0aGUgUGFnZVZpZXdwb3J0Q29u
dHJvbGxlciBzaW5jZSBXZWJQYWdlUHJveHkgYWxyZWFkeSBrZWVwcyB0aGlzIGluZm9ybWF0aW9u
LgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRDb250cm9s
bGVyKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6cGFnZURpZFJl
cXVlc3RTY3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1
cGRhdGVNaW5pbXVtU2NhbGVUb0ZpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9y
dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFBhZ2VWaWV3cG9ydENvbnRyb2xsZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjphcmVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc1N1c3BlbmRlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6UGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudFF0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OjpWaWV3cG9ydEludGVyYWN0aW9uVHJhY2tlcjo6YmVnaW4pOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dFF0OjpWaWV3cG9ydEludGVyYWN0aW9uVHJhY2tlcjo6ZW5kKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjphbmltYXRlQ29udGVudFJlY3RWaXNpYmxl
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpmbGlj
a01vdmVTdGFydGVkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudFF0OjpmbGlja01vdmVFbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRRdDo6cGFnZUl0ZW1Qb3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnNjYWxlQW5pbWF0aW9uU3RhdGVD
aGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0
Ojp0b3VjaEJlZ2luKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudFF0Ojp0b3VjaEVuZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXJDbGllbnRRdDo6em9vbVRvQXJlYUdlc3R1cmVFbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGluY2hHZXN0dXJlU3RhcnRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGluY2hHZXN0dXJl
UmVxdWVzdFVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRRdDo6cGluY2hHZXN0dXJlRW5kZWQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50UXQ6OnBpbmNoR2VzdHVyZUNhbmNlbGxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6ZGlkQ2hhbmdlQ29udGVudHNT
aXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dFF0Lmg6CisgICAgICAgIChWaWV3cG9ydEludGVyYWN0aW9uVHJhY2tlcik6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6Vmlld3BvcnRJbnRlcmFjdGlv
blRyYWNrZXI6OlZpZXdwb3J0SW50ZXJhY3Rpb25UcmFja2VyKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpWaWV3cG9ydEludGVyYWN0aW9uVHJhY2tl
cjo6aW5Qcm9ncmVzcyk6CisgICAgICAgIChQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQp
OgorCiAyMDEzLTAzLTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXSBJbnZhbGlkIGNoYXJzZXQgZW5jb2RpbmcgdXNpbmcgd2hlbiBz
dWJzdGl0dXRpbmcgYSBtaXNzcGVsbGVkIHdvcmQgaW4gV2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCmluZGV4IDMxZDBj
N2MxZjAzN2Y2OGUzNjg4MWU3M2JkODdkYTM3NjhmNjhkM2IuLmUxMTU2YWJkMjRhMjc1N2RjNzQ3
NmIwY2E0Y2FmZTAyOWYxMTkzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAgUGFnZVZpZXdw
b3J0Q29udHJvbGxlcjo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcihXZWJLaXQ6OldlYlBhZ2VQcm94
eSogcHJveHksIFBhZ2UKICAgICAsIG1fYWxsb3dzVXNlclNjYWxpbmcoZmFsc2UpCiAgICAgLCBt
X21pbmltdW1TY2FsZVRvRml0KDEpCiAgICAgLCBtX2luaXRpYWxseUZpdFRvVmlld3BvcnQodHJ1
ZSkKLSAgICAsIG1faGFzU3VzcGVuZGVkQ29udGVudChmYWxzZSkKICAgICAsIG1faGFkVXNlcklu
dGVyYWN0aW9uKGZhbHNlKQogICAgICwgbV9wYWdlU2NhbGVGYWN0b3IoMSkKICAgICAsIG1fcGVu
ZGluZ1Bvc2l0aW9uQ2hhbmdlKGZhbHNlKQpAQCAtMjI2LDcgKzIyNSw3IEBAIHZvaWQgUGFnZVZp
ZXdwb3J0Q29udHJvbGxlcjo6cGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCkKIHZvaWQgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlcjo6cGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgSW50UG9pbnQm
IGNzc1Bvc2l0aW9uKQogewogICAgIC8vIElnbm9yZSB0aGUgcmVxdWVzdCBpZiBzdXNwZW5kZWQu
IENhbiBvbmx5IGhhcHBlbiBkdWUgdG8gZGVsYXkgaW4gZXZlbnQgZGVsaXZlcnkuCi0gICAgaWYg
KG1faGFzU3VzcGVuZGVkQ29udGVudCkKKyAgICBpZiAobV93ZWJQYWdlUHJveHktPmFyZUFjdGl2
ZURPTU9iamVjdHNBbmRBbmltYXRpb25zU3VzcGVuZGVkKCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIEZsb2F0UG9pbnQgYm91bmRQb3NpdGlvbiA9IGJvdW5kQ29udGVudHNQb3NpdGlvbihGbG9h
dFBvaW50KGNzc1Bvc2l0aW9uKSk7CkBAIC0zMDUsMjQgKzMwNCw2IEBAIEZsb2F0U2l6ZSBQYWdl
Vmlld3BvcnRDb250cm9sbGVyOjp2aXNpYmxlQ29udGVudHNTaXplKCkgY29uc3QKICAgICByZXR1
cm4gRmxvYXRTaXplKG1fdmlld3BvcnRTaXplLndpZHRoKCkgLyBtX3BhZ2VTY2FsZUZhY3Rvciwg
bV92aWV3cG9ydFNpemUuaGVpZ2h0KCkgLyBtX3BhZ2VTY2FsZUZhY3Rvcik7CiB9CiAKLXZvaWQg
UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6c3VzcGVuZENvbnRlbnQoKQotewotICAgIGlmIChtX2hh
c1N1c3BlbmRlZENvbnRlbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faGFzU3VzcGVuZGVk
Q29udGVudCA9IHRydWU7Ci0gICAgbV93ZWJQYWdlUHJveHktPnN1c3BlbmRBY3RpdmVET01PYmpl
Y3RzQW5kQW5pbWF0aW9ucygpOwotfQotCi12b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnJl
c3VtZUNvbnRlbnQoKQotewotICAgIGlmICghbV9oYXNTdXNwZW5kZWRDb250ZW50KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBtX2hhc1N1c3BlbmRlZENvbnRlbnQgPSBmYWxzZTsKLSAgICBtX3dl
YlBhZ2VQcm94eS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKLX0KLQog
dm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjphcHBseVNjYWxlQWZ0ZXJSZW5kZXJpbmdDb250
ZW50cyhmbG9hdCBzY2FsZSkKIHsKICAgICBpZiAobV9wYWdlU2NhbGVGYWN0b3IgPT0gc2NhbGUp
CkBAIC0zNTgsNyArMzM5LDcgQEAgYm9vbCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRhdGVN
aW5pbXVtU2NhbGVUb0ZpdChib29sIHVzZXJJbml0aWF0ZWRVcGRhdGUpCiAgICAgaWYgKCFmdXp6
eUNvbXBhcmUobWluaW11bVNjYWxlLCBtX21pbmltdW1TY2FsZVRvRml0LCAwLjAwMDEpKSB7CiAg
ICAgICAgIG1fbWluaW11bVNjYWxlVG9GaXQgPSBtaW5pbXVtU2NhbGU7CiAKLSAgICAgICAgaWYg
KCFoYXNTdXNwZW5kZWRDb250ZW50KCkpIHsKKyAgICAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS0+
YXJlQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnNTdXNwZW5kZWQoKSkgewogICAgICAgICAg
ICAgaWYgKCFtX2hhZFVzZXJJbnRlcmFjdGlvbiB8fCAodXNlckluaXRpYXRlZFVwZGF0ZSAmJiBj
dXJyZW50bHlTY2FsZWRUb0ZpdCkpCiAgICAgICAgICAgICAgICAgYXBwbHlTY2FsZUFmdGVyUmVu
ZGVyaW5nQ29udGVudHMobV9taW5pbXVtU2NhbGVUb0ZpdCk7CiAgICAgICAgICAgICBlbHNlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5o
CmluZGV4IDM1ZDRiNTMzZDIwNzAyZWIyOWEyYzIyZDczNDI5MGJkMjRiYmQ2MDMuLjMxNjRlZmRh
N2I3YTRhMWIwNzg1ZDk1YmQxNDRlYjFjZDdiOWM0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaApAQCAtMjIsOCArMjIsNiBAQAog
I2lmbmRlZiBQYWdlVmlld3BvcnRDb250cm9sbGVyX2gKICNkZWZpbmUgUGFnZVZpZXdwb3J0Q29u
dHJvbGxlcl9oCiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKLQogI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRQb2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KQEAgLTQ3LDkgKzQ1LDYgQEAgcHVibGljOgogICAg
IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXIoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50Kik7CiAgICAgdmlydHVhbCB+UGFnZVZpZXdwb3J0Q29udHJvbGxl
cigpIHsgfQogCi0gICAgdm9pZCBzdXNwZW5kQ29udGVudCgpOwotICAgIHZvaWQgcmVzdW1lQ29u
dGVudCgpOwotCiAgICAgZmxvYXQgaW5uZXJCb3VuZGVkVmlld3BvcnRTY2FsZShmbG9hdCkgY29u
c3Q7CiAgICAgZmxvYXQgb3V0ZXJCb3VuZGVkVmlld3BvcnRTY2FsZShmbG9hdCkgY29uc3Q7CiAK
QEAgLTYwLDcgKzU1LDYgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHZpc2li
bGVDb250ZW50c1NpemUoKSBjb25zdDsKIAotICAgIGJvb2wgaGFzU3VzcGVuZGVkQ29udGVudCgp
IGNvbnN0IHsgcmV0dXJuIG1faGFzU3VzcGVuZGVkQ29udGVudDsgfQogICAgIGJvb2wgaGFkVXNl
ckludGVyYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9oYWRVc2VySW50ZXJhY3Rpb247IH0KICAg
ICBib29sIGFsbG93c1VzZXJTY2FsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NVc2VyU2Nh
bGluZzsgfQogCkBAIC05OSw3ICs5Myw2IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9taW5pbXVt
U2NhbGVUb0ZpdDsKICAgICBib29sIG1faW5pdGlhbGx5Rml0VG9WaWV3cG9ydDsKIAotICAgIGJv
b2wgbV9oYXNTdXNwZW5kZWRDb250ZW50OwogICAgIGJvb2wgbV9oYWRVc2VySW50ZXJhY3Rpb247
CiAKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IG1fY29udGVudHNQb3NpdGlvbjsKQEAgLTExNyw2
ICsxMTAsNCBAQCBib29sIGZ1enp5Q29tcGFyZShmbG9hdCwgZmxvYXQsIGZsb2F0IGVwc2lsb24p
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmCi0KICNlbmRpZiAvLyBQYWdlVmll
d3BvcnRDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCA5MzIyM2M1YWI5Y2MwMGViOWI4N2M1ZTllYTU5YjNhOWEyMzEwNTE3Li4zYjMyZWVmODQx
ODIxZGVlZTNhZGU3NGY0N2Q5MjA0Zjc4NzZkZmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC00NTUsNiArNDU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
Q3VzdG9tVGV4dEVuY29kaW5nTmFtZShjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgY3VzdG9t
VGV4dEVuY29kaW5nTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tVGV4dEVuY29kaW5nTmFt
ZTsgfQogCisgICAgYm9vbCBhcmVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc1N1c3BlbmRl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQYWdlU3VzcGVuZGVkOyB9CiAgICAgdm9pZCByZXN1bWVB
Y3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwogICAgIHZvaWQgc3VzcGVuZEFjdGl2ZURP
TU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5jcHAKaW5k
ZXggZDdlMWNkMTFhNmIyMjM1N2Q5MTkwMzg5ZWNiMzU0MjEzNmU0YWM1Mi4uOTg2YjFmY2M3YjVm
NjIyYWEwYzYyMGE2NmM3MThhNWZjMTdiYjc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5j
cHAKQEAgLTIzLDEyICsyMywxNCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5oIgogCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5
LmgiCiAjaW5jbHVkZSAicXF1aWNrd2VicGFnZV9wLmgiCiAjaW5jbHVkZSAicXF1aWNrd2Vidmll
d19wLmgiCiAjaW5jbHVkZSAicXdlYmtpdHRlc3RfcC5oIgogI2luY2x1ZGUgPFFQb2ludEY+CiAj
aW5jbHVkZSA8UVRyYW5zZm9ybT4KICNpbmNsdWRlIDxRdFF1aWNrL3FxdWlja2l0ZW0uaD4KKyNp
bmNsdWRlIDxXS0FQSUNhc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+CiAKQEAgLTQxLDEyICs0MywxNCBAQCBzdGF0aWMg
Y29uc3QgaW50IGtTY2FsZUFuaW1hdGlvbkR1cmF0aW9uTWlsbGlzID0gMjUwOwogUGFnZVZpZXdw
b3J0Q29udHJvbGxlckNsaWVudFF0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQoUVF1
aWNrV2ViVmlldyogdmlld3BvcnRJdGVtLCBRUXVpY2tXZWJQYWdlKiBwYWdlSXRlbSkKICAgICA6
IG1fdmlld3BvcnRJdGVtKHZpZXdwb3J0SXRlbSkKICAgICAsIG1fcGFnZUl0ZW0ocGFnZUl0ZW0p
CisgICAgLCBtX3NjYWxlQ2hhbmdlKHRoaXMpCisgICAgLCBtX3Njcm9sbENoYW5nZSh0aGlzKQor
ICAgICwgbV90b3VjaEludGVyYWN0aW9uKHRoaXMsIGZhbHNlIC8qIHNob3VsZFN1c3BlbmQgKi8p
CiAgICAgLCBtX3NjYWxlQW5pbWF0aW9uKG5ldyBTY2FsZUFuaW1hdGlvbih0aGlzKSkKKyAgICAs
IG1fYWN0aXZlSW50ZXJhY3Rpb25Db3VudCgwKQogICAgICwgbV9waW5jaFN0YXJ0U2NhbGUoLTEp
CiAgICAgLCBtX2xhc3RDb21taXR0ZWRTY2FsZSgtMSkKICAgICAsIG1fem9vbU91dFNjYWxlKDAp
Ci0gICAgLCBtX2lzVXNlckludGVyYWN0aW5nKGZhbHNlKQotICAgICwgbV9pZ25vcmVWaWV3cG9y
dENoYW5nZXMoZmFsc2UpCiB7CiAgICAgbV9zY2FsZUFuaW1hdGlvbi0+c2V0RHVyYXRpb24oa1Nj
YWxlQW5pbWF0aW9uRHVyYXRpb25NaWxsaXMpOwogICAgIG1fc2NhbGVBbmltYXRpb24tPnNldEVh
c2luZ0N1cnZlKFFFYXNpbmdDdXJ2ZTo6T3V0Q3ViaWMpOwpAQCAtNzYsNiArODAsMzIgQEAgdm9p
ZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OlNjYWxlQW5pbWF0aW9uOjp1cGRhdGVD
dXJyZW50VmFsdWUoY29uc3QgUVYKICAgICBtX2NvbnRyb2xsZXJDbGllbnQtPnNldENvbnRlbnRS
ZWN0VmlzaWJsZVBvc2l0aW9uQXRTY2FsZShpdGVtUmVjdC50b3BMZWZ0KCksIGl0ZW1TY2FsZSk7
CiB9CiAKK3ZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpWaWV3cG9ydEludGVy
YWN0aW9uVHJhY2tlcjo6YmVnaW4oKQoreworICAgIGlmIChtX2luUHJvZ3Jlc3MpCisgICAgICAg
IHJldHVybjsKKworICAgIG1faW5Qcm9ncmVzcyA9IHRydWU7CisKKyAgICBpZiAobV9zaG91bGRT
dXNwZW5kKQorICAgICAgICB0b0ltcGwobV9jb250cm9sbGVyQ2xpZW50LT5tX3ZpZXdwb3J0SXRl
bS0+cGFnZVJlZigpKS0+c3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CisK
KyAgICArKyhtX2NvbnRyb2xsZXJDbGllbnQtPm1fYWN0aXZlSW50ZXJhY3Rpb25Db3VudCk7Cit9
CisKK3ZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpWaWV3cG9ydEludGVyYWN0
aW9uVHJhY2tlcjo6ZW5kKCkKK3sKKyAgICBpZiAoIW1faW5Qcm9ncmVzcykKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9pblByb2dyZXNzID0gZmFsc2U7CisKKyAgICBBU1NFUlQobV9jb250cm9s
bGVyQ2xpZW50LT5tX2FjdGl2ZUludGVyYWN0aW9uQ291bnQgPiAwKTsKKworICAgIGlmICghKC0t
KG1fY29udHJvbGxlckNsaWVudC0+bV9hY3RpdmVJbnRlcmFjdGlvbkNvdW50KSkpCisgICAgICAg
IHRvSW1wbChtX2NvbnRyb2xsZXJDbGllbnQtPm1fdmlld3BvcnRJdGVtLT5wYWdlUmVmKCkpLT5y
ZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOworfQorCiBQYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50UXQ6On5QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQoKQogewog
fQpAQCAtMTAzLDcgKzEzMyw4IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0
OjphbmltYXRlQ29udGVudFJlY3RWaXNpYmxlKGNvbnN0IFFSZWN0RiYgY29uCiAKICAgICBRUmVj
dEYgdmlld3BvcnRSZWN0SW5Db250ZW50Q29vcmRzID0gbV92aWV3cG9ydEl0ZW0tPm1hcFJlY3RU
b1dlYkNvbnRlbnQobV92aWV3cG9ydEl0ZW0tPmJvdW5kaW5nUmVjdCgpKTsKICAgICBpZiAoY29u
dGVudFJlY3QgPT0gdmlld3BvcnRSZWN0SW5Db250ZW50Q29vcmRzKSB7Ci0gICAgICAgIHJlc3Vt
ZUFuZFVwZGF0ZUNvbnRlbnQoKTsKKyAgICAgICAgbV9zY2FsZUNoYW5nZS5lbmQoKTsKKyAgICAg
ICAgdXBkYXRlVmlld3BvcnRDb250cm9sbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTEyMSwyMiArMTUyLDIwIEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0
OjphbmltYXRlQ29udGVudFJlY3RWaXNpYmxlKGNvbnN0IFFSZWN0RiYgY29uCiAKIHZvaWQgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpmbGlja01vdmVTdGFydGVkKCkKIHsKLSAgICBt
X2NvbnRyb2xsZXItPnN1c3BlbmRDb250ZW50KCk7Ci0KKyAgICBtX3Njcm9sbENoYW5nZS5iZWdp
bigpOwogICAgIG1fbGFzdFNjcm9sbFBvc2l0aW9uID0gbV92aWV3cG9ydEl0ZW0tPmNvbnRlbnRQ
b3MoKTsKIH0KIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OmZsaWNrTW92
ZUVuZGVkKCkKIHsKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGVuZCBvZiB0
aGUgcGFuIG9yIHBhbiBraW5ldGljIGFuaW1hdGlvbi4KLQotICAgIGlmICghbV9pc1VzZXJJbnRl
cmFjdGluZykKLSAgICAgICAgcmVzdW1lQW5kVXBkYXRlQ29udGVudCgpOworICAgIG1fc2Nyb2xs
Q2hhbmdlLmVuZCgpOworICAgIHVwZGF0ZVZpZXdwb3J0Q29udHJvbGxlcigpOwogfQogCiB2b2lk
IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6cGFnZUl0ZW1Qb3NpdGlvbkNoYW5nZWQo
KQogewotICAgIGlmIChtX2lnbm9yZVZpZXdwb3J0Q2hhbmdlcykKKyAgICBpZiAobV9zY2FsZUNo
YW5nZS5pblByb2dyZXNzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFFQb2ludEYgbmV3UG9z
aXRpb24gPSBtX3ZpZXdwb3J0SXRlbS0+Y29udGVudFBvcygpOwpAQCAtMTUwLDEzICsxNzksMTEg
QEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnNjYWxlQW5pbWF0aW9uU3Rh
dGVDaGFuZ2VkKFFBYnN0cmFjdEFuaW1hdGkKIHsKICAgICBzd2l0Y2ggKG5ld1N0YXRlKSB7CiAg
ICAgY2FzZSBRQWJzdHJhY3RBbmltYXRpb246OlJ1bm5pbmc6Ci0gICAgICAgIG1faWdub3JlVmll
d3BvcnRDaGFuZ2VzID0gdHJ1ZTsKLSAgICAgICAgbV92aWV3cG9ydEl0ZW0tPmNhbmNlbEZsaWNr
KCk7Ci0gICAgICAgIG1fY29udHJvbGxlci0+c3VzcGVuZENvbnRlbnQoKTsKKyAgICAgICAgbV9z
Y2FsZUNoYW5nZS5iZWdpbigpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFFBYnN0cmFjdEFu
aW1hdGlvbjo6U3RvcHBlZDoKLSAgICAgICAgbV9pZ25vcmVWaWV3cG9ydENoYW5nZXMgPSBmYWxz
ZTsKLSAgICAgICAgcmVzdW1lQW5kVXBkYXRlQ29udGVudCgpOworICAgICAgICBtX3NjYWxlQ2hh
bmdlLmVuZCgpOworICAgICAgICB1cGRhdGVWaWV3cG9ydENvbnRyb2xsZXIoKTsKICAgICAgICAg
YnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC0xNjcsMTMgKzE5NCwxNCBA
QCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6dG91Y2hCZWdpbigpCiB7CiAg
ICAgbV9jb250cm9sbGVyLT5zZXRIYWRVc2VySW50ZXJhY3Rpb24odHJ1ZSk7CiAKLSAgICAvLyBQ
cmV2ZW50cyByZXN1bWluZyB0aGUgcGFnZSBiZXR3ZWVuIHRoZSB1c2VyJ3MgZmxpY2tzIG9mIHRo
ZSBwYWdlLgotICAgIG1faXNVc2VySW50ZXJhY3RpbmcgPSB0cnVlOworICAgIC8vIFByZXZlbnQg
cmVzdW1pbmcgdGhlIHBhZ2UgZHVyaW5nIHRyYW5zaXRpb24gYmV0d2VlbiBnZXN0dXJlcyB3aGls
ZSB0aGUgdXNlciBpcyBpbnRlcmFjdGluZy4KKyAgICAvLyBUaGUgY29udGVudCBpcyBzdXNwZW5k
ZWQgYXMgc29vbiBhcyBhIHBhbiBvciBwaW5jaCBnZXN0dXJlIG9yIGFuIGFuaW1hdGlvbiBpcyBz
dGFydGVkLgorICAgIG1fdG91Y2hJbnRlcmFjdGlvbi5iZWdpbigpOwogfQogCiB2b2lkIFBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6dG91Y2hFbmQoKQogewotICAgIG1faXNVc2VySW50
ZXJhY3RpbmcgPSBmYWxzZTsKKyAgICBtX3RvdWNoSW50ZXJhY3Rpb24uZW5kKCk7CiB9CiAKIHZv
aWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0Ojpmb2N1c0VkaXRhYmxlQXJlYShjb25z
dCBRUmVjdEYmIGNhcmV0QXJlYSwgY29uc3QgUVJlY3RGJiB0YXJnZXRBcmVhKQpAQCAtMjE3LDcg
KzI0NSw3IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0Ojp6b29tVG9BcmVh
R2VzdHVyZUVuZGVkKGNvbnN0IFFQb2ludEYmIHRvdWNoCiAgICAgaWYgKCF0YXJnZXRBcmVhLmlz
VmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fY29udHJvbGxlci0+aGFzU3Vz
cGVuZGVkQ29udGVudCgpKQorICAgIGlmIChtX3Njcm9sbENoYW5nZS5pblByb2dyZXNzKCkgfHwg
bV9zY2FsZUNoYW5nZS5pblByb2dyZXNzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0
IGZsb2F0IG1hcmdpbiA9IDEwOyAvLyBXZSB3YW50IGF0IGxlYXN0IGEgbGl0dGxlIGJpdCBvZiBt
YXJnaW4uCkBAIC0zMzMsMTMgKzM2MSw2IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudFF0OjpzZXRDb250ZW50c1JlY3RUb05lYXJlc3RWYWxpZEJvdW5kcygpCiAgICAgdXBkYXRl
Vmlld3BvcnRDb250cm9sbGVyKCk7CiB9CiAKLXZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudFF0OjpyZXN1bWVBbmRVcGRhdGVDb250ZW50KCkKLXsKLSAgICBtX2NvbnRyb2xsZXItPnJl
c3VtZUNvbnRlbnQoKTsKLSAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aWxlcyBhbGwgYXJvdW5kIHRo
ZSB2aWV3cG9ydCB3aWxsIGJlIHJlcXVlc3RlZC4KLSAgICB1cGRhdGVWaWV3cG9ydENvbnRyb2xs
ZXIoKTsKLX0KLQogYm9vbCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnNjcm9sbEFu
aW1hdGlvbkFjdGl2ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdmlld3BvcnRJdGVtLT5pc0Zs
aWNraW5nKCk7CkBAIC00MjIsOSArNDQzLDcgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50UXQ6OnBpbmNoR2VzdHVyZVN0YXJ0ZWQoY29uc3QgUVBvaW50RiYgcGluY2hDZW4KICAg
ICAgICAgcmV0dXJuOwogCiAgICAgY2xlYXJSZWxhdGl2ZVpvb21TdGF0ZSgpOwotCi0gICAgbV9p
Z25vcmVWaWV3cG9ydENoYW5nZXMgPSB0cnVlOwotICAgIG1fY29udHJvbGxlci0+c3VzcGVuZENv
bnRlbnQoKTsKKyAgICBtX3NjYWxlQ2hhbmdlLmJlZ2luKCk7CiAKICAgICBtX2xhc3RQaW5jaENl
bnRlckluVmlld3BvcnRDb29yZGluYXRlcyA9IHBpbmNoQ2VudGVySW5WaWV3cG9ydENvb3JkaW5h
dGVzOwogICAgIG1fcGluY2hTdGFydFNjYWxlID0gbV9wYWdlSXRlbS0+Y29udGVudHNTY2FsZSgp
OwpAQCAtNDMyLDExICs0NTEsMTIgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
UXQ6OnBpbmNoR2VzdHVyZVN0YXJ0ZWQoY29uc3QgUVBvaW50RiYgcGluY2hDZW4KIAogdm9pZCBQ
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBpbmNoR2VzdHVyZVJlcXVlc3RVcGRhdGUo
Y29uc3QgUVBvaW50RiYgcGluY2hDZW50ZXJJblZpZXdwb3J0Q29vcmRpbmF0ZXMsIHFyZWFsIHRv
dGFsU2NhbGVGYWN0b3IpCiB7Ci0gICAgQVNTRVJUKG1fY29udHJvbGxlci0+aGFzU3VzcGVuZGVk
Q29udGVudCgpKTsKKyAgICBBU1NFUlQobV9zY2FsZUNoYW5nZS5pblByb2dyZXNzKCkpOwogCiAg
ICAgaWYgKCFtX2NvbnRyb2xsZXItPmFsbG93c1VzZXJTY2FsaW5nKCkpCiAgICAgICAgIHJldHVy
bjsKIAorICAgIEFTU0VSVChtX3BpbmNoU3RhcnRTY2FsZSA+IDApOwogICAgIC8vICBDaGFuZ2Vz
IG9mIHRoZSBjZW50ZXIgcG9zaXRpb24gc2hvdWxkIG1vdmUgdGhlIHBhZ2UgZXZlbiBpZiB0aGUg
em9vbSBmYWN0b3IgZG9lcyBub3QgY2hhbmdlLgogICAgIGNvbnN0IHFyZWFsIHBpbmNoU2NhbGUg
PSBtX3BpbmNoU3RhcnRTY2FsZSAqIHRvdGFsU2NhbGVGYWN0b3I7CiAKQEAgLTQ1MywxMiArNDcz
LDExIEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpwaW5jaEdlc3R1cmVS
ZXF1ZXN0VXBkYXRlKGNvbnN0IFFQb2ludEYmIHBpCiAKIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OjpwaW5jaEdlc3R1cmVFbmRlZCgpCiB7Ci0gICAgQVNTRVJUKG1fY29udHJv
bGxlci0+aGFzU3VzcGVuZGVkQ29udGVudCgpKTsKKyAgICBBU1NFUlQobV9zY2FsZUNoYW5nZS5p
blByb2dyZXNzKCkpOwogCiAgICAgaWYgKCFtX2NvbnRyb2xsZXItPmFsbG93c1VzZXJTY2FsaW5n
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faWdub3JlVmlld3BvcnRDaGFuZ2VzID0gZmFs
c2U7CiAgICAgbV9waW5jaFN0YXJ0U2NhbGUgPSAtMTsKIAogICAgIC8vIFRoaXMgd2lsbCB0YWtl
IGNhcmUgb2YgcmVzdW1pbmcgdGhlIGNvbnRlbnQsIGV2ZW4gaWYgbm8gYW5pbWF0aW9uIHdhcyBw
ZXJmb3JtZWQuCkBAIC00NjgsNyArNDg3LDggQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50UXQ6OnBpbmNoR2VzdHVyZUVuZGVkKCkKIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxl
ckNsaWVudFF0OjpwaW5jaEdlc3R1cmVDYW5jZWxsZWQoKQogewogICAgIG1fcGluY2hTdGFydFNj
YWxlID0gLTE7Ci0gICAgcmVzdW1lQW5kVXBkYXRlQ29udGVudCgpOworICAgIG1fc2NhbGVDaGFu
Z2UuZW5kKCk7CisgICAgdXBkYXRlVmlld3BvcnRDb250cm9sbGVyKCk7CiB9CiAKIHZvaWQgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3Qg
SW50U2l6ZSYgbmV3U2l6ZSkKQEAgLTQ3OSw3ICs0OTksNyBAQCB2b2lkIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRRdDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IEludFNpemUmIG5l
d1NpegogICAgIC8vIHdlIGRpZG4ndCBkbyBzY2FsZSBhZGp1c3RtZW50LgogICAgIGVtaXQgbV92
aWV3cG9ydEl0ZW0tPmV4cGVyaW1lbnRhbCgpLT50ZXN0KCktPmNvbnRlbnRzU2NhbGVDb21taXR0
ZWQoKTsKIAotICAgIGlmICghbV9jb250cm9sbGVyLT5oYXNTdXNwZW5kZWRDb250ZW50KCkpCisg
ICAgaWYgKCFtX3NjYWxlQ2hhbmdlLmluUHJvZ3Jlc3MoKSAmJiAhbV9zY3JvbGxDaGFuZ2UuaW5Q
cm9ncmVzcygpKQogICAgICAgICBzZXRDb250ZW50c1JlY3RUb05lYXJlc3RWYWxpZEJvdW5kcygp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdw
b3J0Q29udHJvbGxlckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmgKaW5kZXggZjg1ZTliZDAwMzBiZTM5MDk2NGMw
MTE5OWFiMzI2MzI4M2M5NTc1Ni4uMzg5ZDM5MmQ2MDYyZjMzMTI5YWQwN2UwY2ZkMzI0ZmVmNWJi
OTY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9Q
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQuaApAQCAtMTAyLDYgKzEwMiwyNCBAQCBwcml2
YXRlOgogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ3VycmVudFZhbHVlKGNvbnN0IFFWYXJp
YW50Jik7CiAgICAgfTsKIAorICAgIGNsYXNzIFZpZXdwb3J0SW50ZXJhY3Rpb25UcmFja2VyIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIFZpZXdwb3J0SW50ZXJhY3Rpb25UcmFja2VyKFBhZ2VWaWV3
cG9ydENvbnRyb2xsZXJDbGllbnRRdCogY2xpZW50LCBib29sIHNob3VsZFN1c3BlbmQgPSB0cnVl
KQorICAgICAgICAgICAgOiBtX2NvbnRyb2xsZXJDbGllbnQoY2xpZW50KQorICAgICAgICAgICAg
LCBtX3Nob3VsZFN1c3BlbmQoc2hvdWxkU3VzcGVuZCkKKyAgICAgICAgICAgICwgbV9pblByb2dy
ZXNzKGZhbHNlKQorICAgICAgICB7IH0KKworICAgICAgICB2b2lkIGJlZ2luKCk7CisgICAgICAg
IHZvaWQgZW5kKCk7CisgICAgICAgIGJvb2wgaW5Qcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIG1f
aW5Qcm9ncmVzczsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0KiBtX2NvbnRyb2xsZXJDbGllbnQ7CisgICAgICAgIGJvb2wgbV9zaG91bGRT
dXNwZW5kOworICAgICAgICBib29sIG1faW5Qcm9ncmVzczsKKyAgICB9OworCiAgICAgc3RydWN0
IFNjYWxlU3RhY2tJdGVtIHsKICAgICAgICAgU2NhbGVTdGFja0l0ZW0ocXJlYWwgc2NhbGUsIHFy
ZWFsIHhQb3NpdGlvbikKICAgICAgICAgICAgIDogc2NhbGUoc2NhbGUpCkBAIC0xMTIsNiArMTMw
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgcXJlYWwgeFBvc2l0aW9uOwogICAgIH07CiAKKyAgICBm
cmllbmQgY2xhc3MgVmlld3BvcnRJbnRlcmFjdGlvblRyYWNrZXI7CiAgICAgZnJpZW5kIGNsYXNz
IFNjYWxlQW5pbWF0aW9uOwogICAgIGZyaWVuZCBjbGFzcyA6OlFXZWJLaXRUZXN0OwogCkBAIC0x
MjgsMTcgKzE0NywxOSBAQCBwcml2YXRlOgogICAgIHZvaWQgYW5pbWF0ZUNvbnRlbnRSZWN0Vmlz
aWJsZShjb25zdCBRUmVjdEYmIGNvbnRlbnRSZWN0KTsKICAgICB2b2lkIHNjYWxlQ29udGVudChx
cmVhbCBpdGVtU2NhbGUsIGNvbnN0IFFQb2ludEYmIGNlbnRlckluQ1NTQ29vcmRpbmF0ZXMgPSBR
UG9pbnRGKCkpOwogICAgIHZvaWQgY2xlYXJSZWxhdGl2ZVpvb21TdGF0ZSgpOwotICAgIHZvaWQg
cmVzdW1lQW5kVXBkYXRlQ29udGVudCgpOworCisgICAgVmlld3BvcnRJbnRlcmFjdGlvblRyYWNr
ZXIgbV9zY2FsZUNoYW5nZTsKKyAgICBWaWV3cG9ydEludGVyYWN0aW9uVHJhY2tlciBtX3Njcm9s
bENoYW5nZTsKKyAgICBWaWV3cG9ydEludGVyYWN0aW9uVHJhY2tlciBtX3RvdWNoSW50ZXJhY3Rp
b247CiAKICAgICBTY2FsZUFuaW1hdGlvbiogbV9zY2FsZUFuaW1hdGlvbjsKICAgICBRUG9pbnRG
IG1fbGFzdFBpbmNoQ2VudGVySW5WaWV3cG9ydENvb3JkaW5hdGVzOwogICAgIFFQb2ludEYgbV9s
YXN0U2Nyb2xsUG9zaXRpb247CisgICAgaW50IG1fYWN0aXZlSW50ZXJhY3Rpb25Db3VudDsKICAg
ICBxcmVhbCBtX3BpbmNoU3RhcnRTY2FsZTsKICAgICBxcmVhbCBtX2xhc3RDb21taXR0ZWRTY2Fs
ZTsKICAgICBxcmVhbCBtX3pvb21PdXRTY2FsZTsKICAgICBRTGlzdDxTY2FsZVN0YWNrSXRlbT4g
bV9zY2FsZVN0YWNrOwotICAgIGJvb2wgbV9pc1VzZXJJbnRlcmFjdGluZzsKLSAgICBib29sIG1f
aWdub3JlVmlld3BvcnRDaGFuZ2VzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>