<?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>83771</bug_id>
          
          <creation_ts>2012-04-12 05:00:00 -0700</creation_ts>
          <short_desc>Move viewport meta handling til the web process side</short_desc>
          <delta_ts>2012-04-12 07:43:52 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Kenneth Rohde Christiansen">kenneth</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>gustavo</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zalan</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>601107</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-04-12 05:00:00 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601108</commentid>
    <comment_count>1</comment_count>
      <attachid>136878</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-04-12 05:01:01 -0700</bug_when>
    <thetext>Created attachment 136878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601109</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-12 05:03:45 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601124</commentid>
    <comment_count>3</comment_count>
      <attachid>136878</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-04-12 05:27:08 -0700</bug_when>
    <thetext>Comment on attachment 136878
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:-710
&gt; -    WebCore::restrictMinimumScaleFactorToViewportSize(attr, availableSize);
&gt; -    WebCore::restrictScaleFactorToInitialScaleIfNotUserScalable(attr);

What was the use of those two calls? They disappeared now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601127</commentid>
    <comment_count>4</comment_count>
      <attachid>136878</attachid>
    <who name="alan">zalan</who>
    <bug_when>2012-04-12 05:32:53 -0700</bug_when>
    <thetext>Comment on attachment 136878
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:213
&gt;  }

I&apos;d swap updateViewportSize() and drawingAres()-&gt;setSize(). updateViewportSize() calls _q_contentViewportChanged() which sets the visiblerect on the drawingArea. There could be some side effect to set the visiblerect, when the size is not yet set properly.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:-715
&gt; -

Viewport property change callback is now bundled with TILED_BACKING_STORE. Is it intentional?

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:885
&gt;  }

WebChromeClient::dispatchViewportPropertiesDidChange() and  WebPage::setViewportSize() are very lookalike now. Wouldn&apos;t be better to move the common code to a dedicated function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601129</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-04-12 05:35:06 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 136878 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=136878&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:-710
&gt; &gt; -    WebCore::restrictMinimumScaleFactorToViewportSize(attr, availableSize);
&gt; &gt; -    WebCore::restrictScaleFactorToInitialScaleIfNotUserScalable(attr);
&gt; 
&gt; What was the use of those two calls? They disappeared now.

True and that might need to be revisited later. Currently a lot of additional code in Grob were due to us calling these (the implicit/explicit). That code were related to fit to width.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601150</commentid>
    <comment_count>6</comment_count>
      <attachid>136890</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-04-12 06:07:37 -0700</bug_when>
    <thetext>Created attachment 136890
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601152</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2012-04-12 06:16:00 -0700</bug_when>
    <thetext>lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601188</commentid>
    <comment_count>8</comment_count>
      <attachid>136890</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-04-12 06:59:34 -0700</bug_when>
    <thetext>Comment on attachment 136890
Patch

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

&gt; Source/WebKit2/ChangeLog:9
&gt; +        we now do everything on the web process side, and just sends

sends -&gt; send</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601220</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-04-12 07:43:52 -0700</bug_when>
    <thetext>Landed in 113974</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136878</attachid>
            <date>2012-04-12 05:01:01 -0700</date>
            <delta_ts>2012-04-12 06:07:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83771-20120412135210.patch</filename>
            <type>text/plain</type>
            <size>27091</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2U1NzExMjk4OWU2NDEz
YTI2YmJhZjVmNDRjMjYzMmY3OTFjZGJjMy4uMDYxZTUxM2FlYzNlMjcwNmVjMTYzNDI1MDkzMDkz
ZjI2ZmY3MWUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTA0LTEyICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBN
b3ZlIHZpZXdwb3J0IG1ldGEgaGFuZGxpbmcgdGlsIHRoZSB3ZWIgcHJvY2VzcyBzaWRlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04Mzc3MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3RlYWQgb2YgY29t
cHV0aW5nIHRoZSB2aWV3cG9ydCBhdHRyaWJ1dGVzIG9uIGJvdGggc2lkZXMsCisgICAgICAgIHdl
IG5vdyBkbyBldmVyeXRoaW5nIG9uIHRoZSB3ZWIgcHJvY2VzcyBzaWRlLCBhbmQganVzdCBzZW5k
cworICAgICAgICBvdmVyIHRoZSBjb21wdXRlZCByZXN1bHQuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIChzdHJ1Y3Rfb3JfY2xhc3MpOgorICAgICAg
ICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBDOjo6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBD
Ojo6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVu
dEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlVmll
d3BvcnRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50
SW1wbC5oOgorICAgICAgICAoUGFnZUNsaWVudEltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKFBhZ2VDbGllbnRJbXBsKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAoUGFnZUNs
aWVudEltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9w
ZXJ0aWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgor
ICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmRpZFJlbGF1bmNoUHJvY2Vzcyk6CisgICAg
ICAgIChRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9w
ZXJ0aWVzKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjp1cGRhdGVW
aWV3cG9ydFNpemUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19w
X3AuaDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpkaWRDaGFuZ2VWaWV3cG9ydFBy
b3BlcnRpZXMpOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAgICAoUVF1
aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBhZ2VDbGllbnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJQYWdlUHJv
eHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHA6CisgICAgICAgIChRdFBhZ2VDbGll
bnQ6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyk6CisgICAgICAgICogVUlQcm9jZXNzL3F0
L1F0UGFnZUNsaWVudC5oOgorICAgICAgICAoUXRQYWdlQ2xpZW50KToKKyAgICAgICAgKiBVSVBy
b2Nlc3Mvd2luL1dlYlZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpkaWRDaGFu
Z2VWaWV3cG9ydFByb3BlcnRpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViVmlldy5o
OgorICAgICAgICAoV2ViVmlldyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFZp
ZXdwb3J0U2l6ZSk6CisKIDIwMTItMDQtMTEgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSBhbiBhdXRvcmVsZWFzZSBwb29sIG1hZGUgcmVkdW5kYW50IGJ5
IHIxMTM5MjMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVz
c2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKaW5k
ZXggNDU2Y2IxMDBhZTFmMTZjODE1N2JlYWIxMDYxM2Q3MWM5OTgxZDA0OC4uZWQ4YjUwOGFlMGQ5
MGI5OTkyYTA3NWRiMDk5ODhjM2YxODdlNDk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMv
d2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtMTkxLDcgKzE5MSw3IEBAIGRlZiBzdHJ1Y3Rfb3JfY2xh
c3MobmFtZXNwYWNlLCB0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlv
bicsCiAgICAgICAgICdXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb25zJywKICAgICAgICAgJ1dl
YkNvcmU6OlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbicsCi0gICAgICAgICdXZWJDb3JlOjpW
aWV3cG9ydEFyZ3VtZW50cycsCisgICAgICAgICdXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMn
LAogICAgICAgICAnV2ViQ29yZTo6V2luZG93RmVhdHVyZXMnLAogICAgICAgICAnV2ViS2l0OjpB
dHRyaWJ1dGVkU3RyaW5nJywKICAgICAgICAgJ1dlYktpdDo6Q29udGV4dE1lbnVTdGF0ZScsCkBA
IC0zODYsNiArMzg2LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdX
ZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJzogWyc8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6UGx1Z2luSW5mbyc6IFsnPFdlYkNvcmUvUGx1Z2luRGF0YS5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0JzogWyc8V2ViQ29yZS9U
ZXh0Q2hlY2tlckNsaWVudC5oPiddLAorICAgICAgICAnV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1
dGVzJzogWyc8V2ViQ29yZS9WaWV3cG9ydEFyZ3VtZW50cy5oPiddLAogICAgICAgICAnV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcic6IFtdLAogICAgICAgICAnV2ViS2l0
OjpXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyJzogW10sCiAgICAgICAgICdXZWJLaXQ6Oldl
Ykdlc3R1cmVFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDEwNTA1YzMwZTI2Y2UxNjk5YTVi
MGRhNjUwN2IwNjc5ZTc3OWZkNDAuLmM2YTE2NzNiNGNkNDU0MjQxMzkwZmJhOWU2YjhiNTU3YjJj
MjUwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCkBAIC0xNDIsMTUgKzE0MiwxNCBAQCBib29sIEFyZ3VtZW50Q29kZXI8SW50U2l6ZT46
OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEludFNpemUmIGludFNpemUpCiAgICAg
cmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8SW50U2l6ZT46OmRlY29kZShkZWNvZGVyLCBpbnRT
aXplKTsKIH0KIAotCi12b2lkIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBcmd1bWVudHM+OjplbmNv
ZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgdmll
d3BvcnRBcmd1bWVudHMpCit2b2lkIEFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVz
JiB2aWV3cG9ydEF0dHJpYnV0ZXMpCiB7Ci0gICAgU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9y
dEFyZ3VtZW50cz46OmVuY29kZShlbmNvZGVyLCB2aWV3cG9ydEFyZ3VtZW50cyk7CisgICAgU2lt
cGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjplbmNvZGUoZW5jb2Rlciwgdmll
d3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1l
bnRzPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgVmlld3BvcnRBcmd1bWVudHMm
IHZpZXdwb3J0QXJndW1lbnRzKQorYm9vbCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXR0cmlidXRl
cz46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFZpZXdwb3J0QXR0cmlidXRlcyYg
dmlld3BvcnRBdHRyaWJ1dGVzKQogewotICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFZp
ZXdwb3J0QXJndW1lbnRzPjo6ZGVjb2RlKGRlY29kZXIsIHZpZXdwb3J0QXJndW1lbnRzKTsKKyAg
ICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNvZGUo
ZGVjb2Rlciwgdmlld3BvcnRBdHRyaWJ1dGVzKTsKIH0KIAogdm9pZCBBcmd1bWVudENvZGVyPE1p
bWVDbGFzc0luZm8+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBNaW1l
Q2xhc3NJbmZvJiBtaW1lQ2xhc3NJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCmluZGV4IDZmOTcwMGNjNTAzY2E5N2VlOGI3YWJmMjRlZGVhZTcz
MzgwYmQzNmQuLjAzM2UxNzk0Y2JjMjdkOGNkNzk4OTgwNmJhYzIzYjg4MTkyYjNkZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTU2LDcg
KzU2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHN0cnVjdCBNaW1lQ2xhc3NJbmZvOwog
ICAgIHN0cnVjdCBQbHVnaW5JbmZvOwogICAgIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7Ci0g
ICAgc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOworICAgIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0
ZXM7CiAgICAgc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogfQogCkBAIC0xMjIsOSArMTIyLDkgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbnRTaXplPiB7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6OkludFNpemUmKTsK
IH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmlld3BvcnRB
cmd1bWVudHM+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiwgY29u
c3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsKK3RlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzPiB7Cisg
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciosIGNvbnN0IFdlYkNvcmU6OlZp
ZXdwb3J0QXR0cmlidXRlcyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXIqLCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TWltZUNsYXNzSW5mbz4gewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IGMy
MTE2MjkwM2QzMDJjYThlY2NmMjliOTQ1MGI5ODhjZDRhZDA4YmUuLmNjNDZjZjk4NDMwYmUyZDJl
NWVjNGYzNDQ2NGUyMGU4ODYwMTM4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VW
aWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKQordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNv
cmU6OlZpZXdwb3J0QXR0cmlidWVzJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmgKaW5k
ZXggNDBhZjNiMjNmZmNiMTQ3MGM3MTExNDJkNDg0ZWE5Yjk5OTM3YmY0MS4uMDg1OGZjMzNkMzhk
ODBkMTA5ODVhZTJmMDgyZTRjNDg5MDU4MjUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5oCkBAIC02NSw3ICs2NSw3IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7
Ci0gICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJD
b3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3
cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21t
YW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pOwogICAgIHZpcnR1YWwgdm9pZCBj
bGVhckFsbEVkaXRDb21tYW5kcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDk0ZGEwZGQwNTFhNWFiMjIzN2M2ZjI5
N2E5ZmVlNTc4OGE2M2EwNzIuLjhmYmZlNzNmNjU1ZmRlOWRmNDQxYzBhZjFmNzc1YjgzZWRjMTM5
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGll
bnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xp
ZW50SW1wbC5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRD
dXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCBoaWRkZW5VbnRpbE1vdXNlTW92ZXMpCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdl
Vmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJikKK3Zv
aWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJD
b3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1w
bC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaApp
bmRleCA2YTFjYjI0NTljZjg2ODJmMjNjNjk4MjQ5ODdiZWZiNWNmNjgzMjk2Li41NGFkOTlmOGZh
MDRiZDAyZjBjNTE0OGM0NWE5ZmViN2YyMDVmYThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3QgV1RGOjpTdHJpbmcm
LCBjb25zdCBXVEY6OlN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3Qg
V2ViQ29yZTo6Q3Vyc29yJik7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGls
TW91c2VNb3Zlcyhib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9w
ZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJik7CisgICAgdmlydHVhbCB2
b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0
dHJpYnV0ZXMmKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVm
UHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pOwogICAg
IHZpcnR1YWwgdm9pZCBjbGVhckFsbEVkaXRDb21tYW5kcygpOwogICAgIHZpcnR1YWwgYm9vbCBj
YW5VbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggZjQ3YzU3OWNlYTcz
ZDAyYTJiNjBkZWFmYjBjOTc5N2E4ZTc0YTRiNC4uYTlkN2E5ZmE5NDZjOTdjODM4NzM5Y2IwNmU0
ZDJlMjQ0OGY1MGI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9QYWdlQ2xpZW50SW1wbC5oCkBAIC02Myw3ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYgb2xkVG9vbFRpcCwgY29uc3QgU3Ry
aW5nJiBuZXdUb29sVGlwKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNv
cmU6OkN1cnNvciYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNl
TW92ZXMoYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGll
cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1
dGVzJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRy
PFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pOwogICAgIHZp
cnR1YWwgdm9pZCBjbGVhckFsbEVkaXRDb21tYW5kcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCA4NWQ2NDE3MTEzYzY5
MzQ4NmU4ZGRmMWFmNjFmNGRkZTc5OGFlNDRiLi43MmVhMzQ5M2UxYTY3OTQzZDU2ZTdiNTVlOTQ3
Y2IzMDlkNWMzZjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9QYWdlQ2xpZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9QYWdlQ2xpZW50SW1wbC5tbQpAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgUGFnZUNsaWVudElt
cGw6OnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sIGhpZGRlblVudGlsTW91c2VN
b3ZlcykKICAgICBbTlNDdXJzb3Igc2V0SGlkZGVuVW50aWxNb3VzZU1vdmVzOmhpZGRlblVudGls
TW91c2VNb3Zlc107CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZVZpZXdwb3J0
UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmll
d3BvcnRBdHRyaWJ1dGVzJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggNGIzYWJkMWJmYjZkN2I3MTY0OTliMzJj
OTUyYmE5YmQ5MDFkMjM2Yy4uNjQzZTAzMjhiMjEwMWNmYTNhOWQwMmU0OWFhNWIxZjY5MGU1Yjdh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXcuY3BwCkBAIC0yMDYsMTEgKzIwNiw5IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnBy
b2Nlc3NEaWRDcmFzaCgpCiAKIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmRpZFJlbGF1bmNo
UHJvY2VzcygpCiB7Ci0gICAgUV9RKFFRdWlja1dlYlZpZXcpOwotCiAgICAgcVdhcm5pbmcoIldB
Uk5JTkc6IFRoZSB3ZWIgcHJvY2VzcyBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgcmVzdGFydGVkLiIp
OwogCi0gICAgd2ViUGFnZVByb3h5LT5zZXRWaWV3cG9ydFNpemUocS0+Ym91bmRpbmdSZWN0KCku
c2l6ZSgpLnRvU2l6ZSgpKTsKKyAgICB1cGRhdGVWaWV3cG9ydFNpemUoKTsKICAgICB3ZWJQYWdl
UHJveHktPmRyYXdpbmdBcmVhKCktPnNldFNpemUodmlld1NpemUoKSwgSW50U2l6ZSgpKTsKIH0K
IApAQCAtNjE1LDEyICs2MTMsMjMgQEAgdm9pZCBRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0
ZTo6ZGlkRmluaXNoRmlyc3ROb25FbXB0eUxheW91dCgpCiB7CiB9CiAKLXZvaWQgUVF1aWNrV2Vi
Vmlld0ZsaWNrYWJsZVByaXZhdGU6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYgYXJncykKK3ZvaWQgUVF1aWNrV2ViVmlld0ZsaWNr
YWJsZVByaXZhdGU6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpW
aWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpCiB7Ci0gICAgdmlld3BvcnRBcmd1bWVudHMgPSBhcmdz
OworICAgIFFfUShRUXVpY2tXZWJWaWV3KTsKKworICAgIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVu
Z2luZTo6Q29uc3RyYWludHMgbmV3Q29uc3RyYWludHM7CisKKyAgICBuZXdDb25zdHJhaW50cy5p
bml0aWFsU2NhbGUgPSBhdHRyLmluaXRpYWxTY2FsZTsKKyAgICBuZXdDb25zdHJhaW50cy5taW5p
bXVtU2NhbGUgPSBhdHRyLm1pbmltdW1TY2FsZTsKKyAgICBuZXdDb25zdHJhaW50cy5tYXhpbXVt
U2NhbGUgPSBhdHRyLm1heGltdW1TY2FsZTsKKyAgICBuZXdDb25zdHJhaW50cy5kZXZpY2VQaXhl
bFJhdGlvID0gYXR0ci5kZXZpY2VQaXhlbFJhdGlvOworICAgIG5ld0NvbnN0cmFpbnRzLmlzVXNl
clNjYWxhYmxlID0gISFhdHRyLnVzZXJTY2FsYWJsZTsKKyAgICBuZXdDb25zdHJhaW50cy5sYXlv
dXRTaXplID0gYXR0ci5sYXlvdXRTaXplOworCisgICAgcS0+ZXhwZXJpbWVudGFsKCktPnZpZXdw
b3J0SW5mbygpLT5kaWRVcGRhdGVWaWV3cG9ydENvbnN0cmFpbnRzKCk7CiAKICAgICAvLyBGSVhN
RTogSWYgc3VzcGVuZGVkIHdlIHNob3VsZCBkbyB0aGlzIG9uIHJlc3VtZS4KLSAgICBpbnRlcmFj
dGlvbkVuZ2luZS0+YXBwbHlDb25zdHJhaW50cyhjb21wdXRlVmlld3BvcnRDb25zdHJhaW50cygp
KTsKKyAgICBpbnRlcmFjdGlvbkVuZ2luZS0+YXBwbHlDb25zdHJhaW50cyhuZXdDb25zdHJhaW50
cyk7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGU6OnVwZGF0ZVZpZXdw
b3J0U2l6ZSgpCkBAIC02MzEsMTEgKzY0MCwxOCBAQCB2b2lkIFFRdWlja1dlYlZpZXdGbGlja2Fi
bGVQcml2YXRlOjp1cGRhdGVWaWV3cG9ydFNpemUoKQogICAgIGlmICh2aWV3cG9ydFNpemUuaXNF
bXB0eSgpIHx8ICFpbnRlcmFjdGlvbkVuZ2luZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgV2Vi
UHJlZmVyZW5jZXMqIHdrUHJlZnMgPSB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJl
bmNlcygpOworCisgICAgLy8gRklYTUU6IFJlbW92ZSBsYXRlcjsgSGFyZGNvZGUgYSB2YWx1ZSBm
b3Igbm93IHRvIG1ha2Ugc3VyZSB0aGUgRFBJIGFkanVzdG1lbnQgaXMgYmVpbmcgdGVzdGVkLgor
ICAgIHdrUHJlZnMtPnNldERldmljZURQSSgxNjApOworCisgICAgd2tQcmVmcy0+c2V0RGV2aWNl
V2lkdGgodmlld3BvcnRTaXplLndpZHRoKCkpOworICAgIHdrUHJlZnMtPnNldERldmljZUhlaWdo
dCh2aWV3cG9ydFNpemUuaGVpZ2h0KCkpOworCiAgICAgLy8gTGV0IHRoZSBXZWJQcm9jZXNzIGtu
b3cgYWJvdXQgdGhlIG5ldyB2aWV3cG9ydCBzaXplLCBzbyB0aGF0CiAgICAgLy8gaXQgY2FuIHJl
c2l6ZSB0aGUgY29udGVudCBhY2NvcmRpbmdseS4KICAgICB3ZWJQYWdlUHJveHktPnNldFZpZXdw
b3J0U2l6ZSh2aWV3cG9ydFNpemUpOwogCi0gICAgaW50ZXJhY3Rpb25FbmdpbmUtPmFwcGx5Q29u
c3RyYWludHMoY29tcHV0ZVZpZXdwb3J0Q29uc3RyYWludHMoKSk7CiAgICAgX3FfY29udGVudFZp
ZXdwb3J0Q2hhbmdlZChRUG9pbnRGKCkpOwogfQogCkBAIC02ODQsNDMgKzcwMCw2IEBAIHZvaWQg
UVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGU6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25z
dCBRU2l6ZSYgbmV3U2l6ZSkKICAgICBxLT5leHBlcmltZW50YWwoKS0+dmlld3BvcnRJbmZvKCkt
PmRpZFVwZGF0ZUNvbnRlbnRzU2l6ZSgpOwogfQogCi1RdFZpZXdwb3J0SW50ZXJhY3Rpb25Fbmdp
bmU6OkNvbnN0cmFpbnRzIFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpjb21wdXRlVmll
d3BvcnRDb25zdHJhaW50cygpCi17Ci0gICAgUV9RKFFRdWlja1dlYlZpZXcpOwotCi0gICAgUXRW
aWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpDb25zdHJhaW50cyBuZXdDb25zdHJhaW50czsKLSAg
ICBRU2l6ZSBhdmFpbGFibGVTaXplID0gcS0+Ym91bmRpbmdSZWN0KCkuc2l6ZSgpLnRvU2l6ZSgp
OwotCi0gICAgLy8gUmV0dXJuIGRlZmF1bHQgdmFsdWVzIGZvciB6ZXJvIHNpemVkIHZpZXdwb3J0
LgotICAgIGlmIChhdmFpbGFibGVTaXplLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIG5ld0Nv
bnN0cmFpbnRzOwotCi0gICAgV2ViUHJlZmVyZW5jZXMqIHdrUHJlZnMgPSB3ZWJQYWdlUHJveHkt
PnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpOwotCi0gICAgLy8gRklYTUU6IFJlbW92ZSBsYXRl
cjsgSGFyZGNvZGUgYSB2YWx1ZSBmb3Igbm93IHRvIG1ha2Ugc3VyZSB0aGUgRFBJIGFkanVzdG1l
bnQgaXMgYmVpbmcgdGVzdGVkLgotICAgIHdrUHJlZnMtPnNldERldmljZURQSSgxNjApOwotCi0g
ICAgd2tQcmVmcy0+c2V0RGV2aWNlV2lkdGgoYXZhaWxhYmxlU2l6ZS53aWR0aCgpKTsKLSAgICB3
a1ByZWZzLT5zZXREZXZpY2VIZWlnaHQoYXZhaWxhYmxlU2l6ZS5oZWlnaHQoKSk7Ci0KLSAgICBp
bnQgbWluaW11bUxheW91dEZhbGxiYWNrV2lkdGggPSBxTWF4PGludD4od2tQcmVmcy0+bGF5b3V0
RmFsbGJhY2tXaWR0aCgpLCBhdmFpbGFibGVTaXplLndpZHRoKCkpOwotCi0gICAgV2ViQ29yZTo6
Vmlld3BvcnRBdHRyaWJ1dGVzIGF0dHIgPSBXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRBdHRyaWJ1
dGVzKHZpZXdwb3J0QXJndW1lbnRzLCBtaW5pbXVtTGF5b3V0RmFsbGJhY2tXaWR0aCwgd2tQcmVm
cy0+ZGV2aWNlV2lkdGgoKSwgd2tQcmVmcy0+ZGV2aWNlSGVpZ2h0KCksIHdrUHJlZnMtPmRldmlj
ZURQSSgpLCBhdmFpbGFibGVTaXplKTsKLSAgICBXZWJDb3JlOjpyZXN0cmljdE1pbmltdW1TY2Fs
ZUZhY3RvclRvVmlld3BvcnRTaXplKGF0dHIsIGF2YWlsYWJsZVNpemUpOwotICAgIFdlYkNvcmU6
OnJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKGF0dHIp
OwotCi0gICAgbmV3Q29uc3RyYWludHMuaW5pdGlhbFNjYWxlID0gYXR0ci5pbml0aWFsU2NhbGU7
Ci0gICAgbmV3Q29uc3RyYWludHMubWluaW11bVNjYWxlID0gYXR0ci5taW5pbXVtU2NhbGU7Ci0g
ICAgbmV3Q29uc3RyYWludHMubWF4aW11bVNjYWxlID0gYXR0ci5tYXhpbXVtU2NhbGU7Ci0gICAg
bmV3Q29uc3RyYWludHMuZGV2aWNlUGl4ZWxSYXRpbyA9IGF0dHIuZGV2aWNlUGl4ZWxSYXRpbzsK
LSAgICBuZXdDb25zdHJhaW50cy5pc1VzZXJTY2FsYWJsZSA9ICEhYXR0ci51c2VyU2NhbGFibGU7
Ci0gICAgbmV3Q29uc3RyYWludHMubGF5b3V0U2l6ZSA9IGF0dHIubGF5b3V0U2l6ZTsKLQotICAg
IHEtPmV4cGVyaW1lbnRhbCgpLT52aWV3cG9ydEluZm8oKS0+ZGlkVXBkYXRlVmlld3BvcnRDb25z
dHJhaW50cygpOwotCi0gICAgcmV0dXJuIG5ld0NvbnN0cmFpbnRzOwotfQotCiAvKiEKICAgICBc
cW1sc2lnbmFsIFdlYlZpZXc6Om9uTmF2aWdhdGlvblJlcXVlc3RlZChyZXF1ZXN0KQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9w
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgK
aW5kZXggN2Y0MzA0Zjc1OTMxOWYzOTY2YmVlMzliMDc5YjZhMTdjNTA3ZTkwOS4uMjJjNTk5Njll
NDY5N2E0NGE2OTRjZGE0MjJjOGI5ODFjOTM4YWNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApAQCAtNzUsNyArNzUsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uQ29tcG9uZW50Q29tcGxldGUoKTsKICAgICB2
aXJ0dWFsIHZvaWQgbG9hZERpZENvbW1pdCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hGaXJzdE5vbkVtcHR5TGF5b3V0KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZp
ZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYgYXJncykg
eyB9CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBX
ZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpIHsgfQogICAgIHZvaWQgZGlkQ2hhbmdl
TG9hZGluZ1N0YXRlKFFXZWJMb2FkUmVxdWVzdCogbG9hZFJlcXVlc3QpOwogICAgIHZvaWQgZGlk
Q2hhbmdlQmFja0ZvcndhcmRMaXN0KCk7CiAKQEAgLTE2MCw4ICsxNjAsNiBAQCBwcm90ZWN0ZWQ6
CiAgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50KiBmaWxlUGlja2VyOwogICAgIFFEZWNsYXJhdGl2
ZUNvbXBvbmVudCogZGF0YWJhc2VRdW90YURpYWxvZzsKIAotICAgIFdlYkNvcmU6OlZpZXdwb3J0
QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzOwotCiAgICAgYm9vbCBtX3VzZURlZmF1bHRDb250
ZW50SXRlbVNpemU7CiAgICAgYm9vbCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZDsKICAgICBi
b29sIG1fcmVuZGVyVG9PZmZzY3JlZW5CdWZmZXI7CkBAIC0xOTYsNyArMTk0LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBvbmVudENvbXBsZXRlKCk7CiAgICAgdmlydHVhbCB2
b2lkIGxvYWREaWRDb21taXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoRmlyc3ROb25F
bXB0eUxheW91dCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRp
ZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIGFyZ3MpOworICAgIHZpcnR1YWwg
dm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRB
dHRyaWJ1dGVzJik7CiAgICAgdmlydHVhbCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUqIHZp
ZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUoKSB7IHJldHVybiBpbnRlcmFjdGlvbkVuZ2luZS5kYXRh
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlld3BvcnRTaXplKCk7CiAKQEAgLTIwNyw4
ICsyMDUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xs
KGNvbnN0IFFQb2ludCYgcG9zKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNT
aXplKGNvbnN0IFFTaXplJiBuZXdTaXplKTsKIAotICAgIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVu
Z2luZTo6Q29uc3RyYWludHMgY29tcHV0ZVZpZXdwb3J0Q29uc3RyYWludHMoKTsKLQogcHJpdmF0
ZToKICAgICBRU2NvcGVkUG9pbnRlcjxRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU+IGludGVy
YWN0aW9uRW5naW5lOwogICAgIGJvb2wgcGFnZUlzU3VzcGVuZGVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNDdkNmFmNzI4MDFkNTRjODY4ODM1ZGY0NzVmMmYyZWM1
MzcwZDRkOC4uN2M4MTUxMDFkZmE3MmRkNDkzYTk0MDY5ZWZhNTIyNWRkMWYyNzgzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIE9CSkNfQ0xB
U1MgV0tWaWV3OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ3Vyc29yOwotICAg
IHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50czsKKyAgICBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVz
OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEyMyw3ICsxMjMsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdl
YkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFu
Z2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikg
PSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxX
ZWJFZGl0Q29tbWFuZFByb3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBkMWJkNDBjMTA0OGMyM2I1Y2UxYmU1M2Qz
YzBjZmQzZTEzZDhmNzZhLi5jZGQzOWU1OTA3ZDlhODNjMDA2YWE0OTBkNWM1ODFmNjAyNGEyMjkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjM5NCw5
ICsyMzk0LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0
IEludFBvaW50JiBwb2ludCkKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hh
bmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiBhcmdzKQordm9p
ZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBWaWV3cG9y
dEF0dHJpYnV0ZXMmIGF0dHIpCiB7Ci0gICAgbV9wYWdlQ2xpZW50LT5kaWRDaGFuZ2VWaWV3cG9y
dFByb3BlcnRpZXMoYXJncyk7CisgICAgbV9wYWdlQ2xpZW50LT5kaWRDaGFuZ2VWaWV3cG9ydFBy
b3BlcnRpZXMoYXR0cik7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpwYWdlRGlkU2Nyb2xsKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAzNjQyM2UyYjM0NDBj
MzM2OTMzNWYyZGU4NWY5YTYwMjYxZGZkYjI2Li4xN2RlMTlmOGYxZTdjYTZkYWJlNGIwYmNmNTlj
M2Q0NzEzNTA3YmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC05Miw3ICs5Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBQcm90ZWN0aW9u
U3BhY2U7CiAgICAgc3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7CiAgICAgc3RydWN0IFRleHRD
aGVja2luZ1Jlc3VsdDsKLSAgICBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHM7CisgICAgc3RydWN0
IFZpZXdwb3J0QXR0cmlidXRlczsKICAgICBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiB9CiAKQEAg
LTcyMSw3ICs3MjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2NyZWVuVG9XaW5kb3coY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBvaW50LCBXZWJDb3JlOjpJbnRQb2ludCYgd2luZG93
UG9pbnQpOwogICAgIHZvaWQgd2luZG93VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
dmlld1JlY3QsIFdlYkNvcmU6OkludFJlY3QmIHJlc3VsdCk7CiAgICAgdm9pZCBydW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1aW50NjRfdCBmcmFtZUlE
LCBib29sJiBzaG91bGRDbG9zZSk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRp
ZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsKKyAgICB2b2lkIGRpZENoYW5n
ZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsK
ICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsKICAgICB2b2lkIHJ1bk9wZW5QYW5lbCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CiAgICAgdm9p
ZCBwcmludEZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZTRmN2FhZmRkYTZiY2MxZDQ4
ZDcxZjVkYTAzMTc0ZDE5ZWZiY2JlOC4uMzczZDg0OGRiZWE1ZDQ5Y2RhNGMxMjE4MmFjOWIyM2Iz
MjE0YjAxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0zMSw3ICszMSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7
CiAgICAgU2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpIC0+IChib29sIHNob3VsZEludGVydXB0
KQogICAgIE1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdDo6
RGF0YSBoaXRUZXN0UmVzdWx0RGF0YSwgdWludDMyX3QgbW9kaWZpZXJzLCBXZWJLaXQ6OkluamVj
dGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKTsKICAgICBNaXNzaW5nUGx1Z2lu
QnV0dG9uQ2xpY2tlZChXVEY6OlN0cmluZyBtaW1lVHlwZSwgV1RGOjpTdHJpbmcgdXJsLCBXVEY6
OlN0cmluZyBwbHVnaW5zUGFnZVVSTCkKLSAgICBEaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMo
V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMgYXJndW1lbnRzKQorICAgIERpZENoYW5nZVZpZXdw
b3J0UHJvcGVydGllcyhXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAg
ICBEaWRSZWNlaXZlRXZlbnQodWludDMyX3QgdHlwZSwgYm9vbCBoYW5kbGVkKQogICAgIFN0b3BS
ZXNwb25zaXZlbmVzc1RpbWVyKCkKICAgICBTZXRDdXJzb3IoV2ViQ29yZTo6Q3Vyc29yIGN1cnNv
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAKaW5kZXgg
YTY5Y2EwNmZjNjFmYjFlODQ1MGI4NmEyNDc4M2Y0YjFjNTM1NjgzOS4uOThlYTNiNzZkYzhmZTE2
NzdjMzAxZGU3N2Q1N2FkNWE4YmQ1MTRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0UGFnZUNsaWVudC5jcHAKQEAgLTg2LDkgKzg2LDkgQEAgdm9pZCBRdFBhZ2VDbGllbnQ6
OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJiBuZXdTaXplKQogICAgIFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+ZGlkQ2hhbmdlQ29udGVudHNTaXplKG5l
d1NpemUpOwogfQogCi12b2lkIFF0UGFnZUNsaWVudDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0
aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJiBhcmdzKQordm9pZCBRdFBhZ2VD
bGllbnQ6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9y
dEF0dHJpYnV0ZXMmIGF0dHIpCiB7Ci0gICAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmdldChtX3dl
YlZpZXcpLT5kaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoYXJncyk7CisgICAgUVF1aWNrV2Vi
Vmlld1ByaXZhdGU6OmdldChtX3dlYlZpZXcpLT5kaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMo
YXR0cik7CiB9CiAKIHZvaWQgUXRQYWdlQ2xpZW50OjpzdGFydERyYWcoY29uc3QgV2ViQ29yZTo6
RHJhZ0RhdGEmIGRyYWdEYXRhLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZHJhZ0ltYWdl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oCmluZGV4IDAwY2Fm
OWM3NzUyZmM2OWU5ZjJhNTlhYTJlNTE4MGY4Njk0NzEyOWEuLmE0NTg2MTRkMTg5MTAwN2E3ODE2
YjBjMDJiMjllYjg5YTk0MzhkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdFBhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQ
YWdlQ2xpZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9iamVjdChjb25zdCBTdHJpbmcmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0
aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJik7CisgICAgdmlydHVhbCB2b2lk
IGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJp
YnV0ZXMmKTsKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENyYXNoKCk7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlbGF1bmNoUHJvY2VzcygpOwogICAgIHZpcnR1YWwgUGFzc093blB0cjxEcmF3
aW5nQXJlYVByb3h5PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3dpbi9XZWJWaWV3LmNwcAppbmRleCA5NDMzNGQ4ZmE4MThlMWFjNzQ5ZTExOGYxNmNk
MTYzYTg1ZjAxYjgwLi5mNmU3NWQ2OGFiZTFlYTYxYjRiMjUxY2QxYjIxZGNkN2IyM2VjZThhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKQEAgLTEwODAsNyArMTA4
MCw3IEBAIHZvaWQgV2ViVmlldzo6c2V0U2Nyb2xsT2Zmc2V0T25OZXh0UmVzaXplKGNvbnN0IElu
dFNpemUmIHNjcm9sbE9mZnNldCkKICAgICBtX25leHRSZXNpemVTY3JvbGxPZmZzZXQgPSBzY3Jv
bGxPZmZzZXQ7CiB9CiAKLXZvaWQgV2ViVmlldzo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVz
KGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJikKK3ZvaWQgV2ViVmlldzo6ZGlkQ2hh
bmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmll
dy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgKaW5kZXggZGFhMTNj
MTdiNjI4YmQ3ZGZjMTA4YTAyYWI4ZGMzZDNiMjhmNGIyZS4uZGJhMTU5M2YxMDllMWU5MjBhMDJk
Y2E0OTI2MmU4MGNiNDhiM2JhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3dpbi9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3
LmgKQEAgLTE4NSw3ICsxODUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB0b29sVGlw
Q2hhbmdlZChjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAgdmly
dHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRB
cmd1bWVudHMmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVz
KGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4sIFdlYlBh
Z2VQcm94eTo6VW5kb09yUmVkbyk7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsRWRpdENvbW1h
bmRzKCk7CiAgICAgdmlydHVhbCBib29sIGNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09y
UmVkbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNjlmMTZiMjliZDEzZmNlNTRmYTE5
MmFhM2VjZTIzYzkzZTU1MDdiMS4uOTFlZWQwMTk3Nzg1ZjVkN2E0NThkNDkwZmJjOWY0OWQwNDY2
OTJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNzExLDggKzcxMSw2IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCogZWxlbWVudCkKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpc3BhdGNoVmlld3BvcnRQcm9w
ZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiBhcmdzKSBjb25zdAogewot
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VWaWV3cG9y
dFByb3BlcnRpZXMoYXJncykpOwotCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAg
Ly8gV2hlbiB2aWV3cG9ydCBwcm9wZXJ0aWVzIGNoYW5nZSwgcmVjYWxjdWxhdGUgYW5kIHNldCB0
aGUgbmV3IHJlY29tbWVuZGVkIGxheW91dCBzaXplIGluIGNhc2Ugb2YgZml4ZWQgbGF5b3V0IHJl
bmRlcmluZy4KICAgICAvLyBWaWV3cG9ydCBwcm9wZXJ0aWVzIGhhdmUgbm8gaW1wYWN0IG9uIHpl
cm8gc2l6ZWQgZml4ZWQgdmlld3BvcnRzLgpAQCAtNzIxLDEwICs3MTksMTIgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZp
ZXdwb3J0QXJndW1lbnQKIAogICAgICAgICBpbnQgbWluaW11bUxheW91dEZhbGxiYWNrV2lkdGgg
PSBzdGQ6Om1heChzZXR0aW5ncy0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpLCBtX3BhZ2UtPnZpZXdw
b3J0U2l6ZSgpLndpZHRoKCkpOwogCi0gICAgICAgIEludFNpemUgdGFyZ2V0TGF5b3V0U2l6ZSA9
IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMobV9wYWdlLT5jb3JlUGFnZSgpLT52aWV3cG9ydEFy
Z3VtZW50cygpLAorICAgICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0ciA9IGNvbXB1dGVWaWV3
cG9ydEF0dHJpYnV0ZXMobV9wYWdlLT5jb3JlUGFnZSgpLT52aWV3cG9ydEFyZ3VtZW50cygpLAog
ICAgICAgICAgICAgbWluaW11bUxheW91dEZhbGxiYWNrV2lkdGgsIHNldHRpbmdzLT5kZXZpY2VX
aWR0aCgpLCBzZXR0aW5ncy0+ZGV2aWNlSGVpZ2h0KCksCi0gICAgICAgICAgICBzZXR0aW5ncy0+
ZGV2aWNlRFBJKCksIG1fcGFnZS0+dmlld3BvcnRTaXplKCkpLmxheW91dFNpemU7Ci0gICAgICAg
IG1fcGFnZS0+c2V0UmVzaXplc1RvQ29udGVudHNVc2luZ0xheW91dFNpemUodGFyZ2V0TGF5b3V0
U2l6ZSk7CisgICAgICAgICAgICBzZXR0aW5ncy0+ZGV2aWNlRFBJKCksIG1fcGFnZS0+dmlld3Bv
cnRTaXplKCkpOworCisgICAgICAgIG1fcGFnZS0+c2V0UmVzaXplc1RvQ29udGVudHNVc2luZ0xh
eW91dFNpemUoYXR0ci5sYXlvdXRTaXplKTsKKyAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhhdHRyKSk7CiAgICAg
fQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggODRmNDY3ZTU0Mzc3OTc0MWJjODYwMTJlYzE1NzU3YWFkYjk5MDIxOS4uM2Nl
MDIzNmVhZjdiZGVhNWQyZTY5NjFiMTA0YmZkZDEwYTViZThhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtODc3LDggKzg3NywxMSBAQCB2
b2lkIFdlYlBhZ2U6OnNldFZpZXdwb3J0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogCiAgICAg
aW50IG1pbmltdW1MYXlvdXRGYWxsYmFja1dpZHRoID0gc3RkOjptYXgoc2V0dGluZ3MtPmxheW91
dEZhbGxiYWNrV2lkdGgoKSwgc2l6ZS53aWR0aCgpKTsKIAotICAgIEludFNpemUgdGFyZ2V0TGF5
b3V0U2l6ZSA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMobV9wYWdlLT52aWV3cG9ydEFyZ3Vt
ZW50cygpLCBtaW5pbXVtTGF5b3V0RmFsbGJhY2tXaWR0aCwgc2V0dGluZ3MtPmRldmljZVdpZHRo
KCksIHNldHRpbmdzLT5kZXZpY2VIZWlnaHQoKSwgc2V0dGluZ3MtPmRldmljZURQSSgpLCBzaXpl
KS5sYXlvdXRTaXplOwotICAgIHNldFJlc2l6ZXNUb0NvbnRlbnRzVXNpbmdMYXlvdXRTaXplKHRh
cmdldExheW91dFNpemUpOworICAgIFZpZXdwb3J0QXR0cmlidXRlcyBhdHRyID0gY29tcHV0ZVZp
ZXdwb3J0QXR0cmlidXRlcyhtX3BhZ2UtPnZpZXdwb3J0QXJndW1lbnRzKCksIG1pbmltdW1MYXlv
dXRGYWxsYmFja1dpZHRoLCBzZXR0aW5ncy0+ZGV2aWNlV2lkdGgoKSwgc2V0dGluZ3MtPmRldmlj
ZUhlaWdodCgpLCBzZXR0aW5ncy0+ZGV2aWNlRFBJKCksIHNpemUpOworCisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoYXR0cikpOwor
CisgICAgc2V0UmVzaXplc1RvQ29udGVudHNVc2luZ0xheW91dFNpemUoYXR0ci5sYXlvdXRTaXpl
KTsKIH0KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136890</attachid>
            <date>2012-04-12 06:07:37 -0700</date>
            <delta_ts>2012-04-12 06:59:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83771-20120412145846.patch</filename>
            <type>text/plain</type>
            <size>29261</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2U1NzExMjk4OWU2NDEz
YTI2YmJhZjVmNDRjMjYzMmY3OTFjZGJjMy4uZDdiZDViNjlkMzk4YjNlNTdkZjJmNTVmODA4ZDQ2
ZTliOTUxM2E4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDEyLTA0LTEyICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBN
b3ZlIHZpZXdwb3J0IG1ldGEgaGFuZGxpbmcgdG8gdGhlIHdlYiBwcm9jZXNzIHNpZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNzcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBjb21w
dXRpbmcgdGhlIHZpZXdwb3J0IGF0dHJpYnV0ZXMgb24gYm90aCBzaWRlcywKKyAgICAgICAgd2Ug
bm93IGRvIGV2ZXJ5dGhpbmcgb24gdGhlIHdlYiBwcm9jZXNzIHNpZGUsIGFuZCBqdXN0IHNlbmRz
CisgICAgICAgIG92ZXIgdGhlIGNvbXB1dGVkIHJlc3VsdC4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0Mi9tZXNzYWdlcy5weToKKyAgICAgICAgKHN0cnVjdF9vcl9jbGFzcyk6CisgICAgICAg
IChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcDoKKyAgICAgICAgKENvcmVJUEM6Ojo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6
Ojo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3
cG9ydFByb3BlcnRpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJ
bXBsLmg6CisgICAgICAgIChQYWdlQ2xpZW50SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAoUGFnZUNsaWVudEltcGwpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgIChQYWdlQ2xp
ZW50SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW06
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3Bl
cnRpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6Cisg
ICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZGlkUmVsYXVuY2hQcm9jZXNzKToKKyAgICAg
ICAgKFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3Bl
cnRpZXMpOgorICAgICAgICAoUVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGU6OnVwZGF0ZVZp
ZXdwb3J0U2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3Bf
cC5oOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmRpZENoYW5nZVZpZXdwb3J0UHJv
cGVydGllcyk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgIChRUXVp
Y2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUGFnZUNsaWVudCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYlBhZ2VQcm94
eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNwcDoKKyAgICAgICAgKFF0UGFnZUNsaWVu
dDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQv
UXRQYWdlQ2xpZW50Lmg6CisgICAgICAgIChRdFBhZ2VDbGllbnQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy93aW4vV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmRpZENoYW5n
ZVZpZXdwb3J0UHJvcGVydGllcyk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3Lmg6
CisgICAgICAgIChXZWJWaWV3KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnNlbmRWaWV3cG9ydEF0dHJpYnV0ZXNDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFZpZXdwb3J0U2l6ZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYlBhZ2UpOgor
CiAyMDEyLTA0LTExICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgYW4gYXV0b3JlbGVhc2UgcG9vbCBtYWRlIHJlZHVuZGFudCBieSByMTEzOTIzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDQ1NmNiMTAwYWUx
ZjE2YzgxNTdiZWFiMTA2MTNkNzFjOTk4MWQwNDguLmVkOGI1MDhhZTBkOTBiOTk5MmEwNzVkYjA5
OTg4YzNmMTg3ZTQ5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0
Mi9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2Fn
ZXMucHkKQEAgLTE5MSw3ICsxOTEsNyBAQCBkZWYgc3RydWN0X29yX2NsYXNzKG5hbWVzcGFjZSwg
dHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb24nLAogICAgICAgICAn
V2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9ucycsCiAgICAgICAgICdXZWJDb3JlOjpUcmFuc2xh
dGVUcmFuc2Zvcm1PcGVyYXRpb24nLAotICAgICAgICAnV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVu
dHMnLAorICAgICAgICAnV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJywKICAgICAgICAgJ1dl
YkNvcmU6OldpbmRvd0ZlYXR1cmVzJywKICAgICAgICAgJ1dlYktpdDo6QXR0cmlidXRlZFN0cmlu
ZycsCiAgICAgICAgICdXZWJLaXQ6OkNvbnRleHRNZW51U3RhdGUnLApAQCAtMzg2LDYgKzM4Niw3
IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6RmlsZUNo
b29zZXJTZXR0aW5ncyc6IFsnPFdlYkNvcmUvRmlsZUNob29zZXIuaD4nXSwKICAgICAgICAgJ1dl
YkNvcmU6OlBsdWdpbkluZm8nOiBbJzxXZWJDb3JlL1BsdWdpbkRhdGEuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGll
bnQuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyc6IFsnPFdlYkNv
cmUvVmlld3BvcnRBcmd1bWVudHMuaD4nXSwKICAgICAgICAgJ1dlYktpdDo6SW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZUVuY29kZXInOiBbXSwKICAgICAgICAgJ1dlYktpdDo6V2ViQ29udGV4dFVz
ZXJNZXNzYWdlRW5jb2Rlcic6IFtdLAogICAgICAgICAnV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQn
OiBbJyJXZWJFdmVudC5oIiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAppbmRleCAxMDUwNWMzMGUyNmNlMTY5OWE1YjBkYTY1MDdiMDY3OWU3
NzlmZDQwLi5jNmExNjczYjRjZDQ1NDI0MTM5MGZiYTllNmI4YjU1N2IyYzI1MGQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMTQy
LDE1ICsxNDIsMTQgQEAgYm9vbCBBcmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoQXJndW1l
bnREZWNvZGVyKiBkZWNvZGVyLCBJbnRTaXplJiBpbnRTaXplKQogICAgIHJldHVybiBTaW1wbGVB
cmd1bWVudENvZGVyPEludFNpemU+OjpkZWNvZGUoZGVjb2RlciwgaW50U2l6ZSk7CiB9CiAKLQot
dm9pZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXJndW1lbnRzPjo6ZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciogZW5jb2RlciwgY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRz
KQordm9pZCBBcmd1bWVudENvZGVyPFZpZXdwb3J0QXR0cmlidXRlcz46OmVuY29kZShBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFZpZXdwb3J0QXR0cmlidXRlcyYgdmlld3BvcnRBdHRy
aWJ1dGVzKQogewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBcmd1bWVudHM+Ojpl
bmNvZGUoZW5jb2Rlciwgdmlld3BvcnRBcmd1bWVudHMpOworICAgIFNpbXBsZUFyZ3VtZW50Q29k
ZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZW5jb2RlKGVuY29kZXIsIHZpZXdwb3J0QXR0cmlidXRl
cyk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxWaWV3cG9ydEFyZ3VtZW50cz46OmRlY29kZShB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFyZ3Vt
ZW50cykKK2Jvb2wgQXJndW1lbnRDb2RlcjxWaWV3cG9ydEF0dHJpYnV0ZXM+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyKiBkZWNvZGVyLCBWaWV3cG9ydEF0dHJpYnV0ZXMmIHZpZXdwb3J0QXR0cmli
dXRlcykKIHsKLSAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxWaWV3cG9ydEFyZ3VtZW50
cz46OmRlY29kZShkZWNvZGVyLCB2aWV3cG9ydEFyZ3VtZW50cyk7CisgICAgcmV0dXJuIFNpbXBs
ZUFyZ3VtZW50Q29kZXI8Vmlld3BvcnRBdHRyaWJ1dGVzPjo6ZGVjb2RlKGRlY29kZXIsIHZpZXdw
b3J0QXR0cmlidXRlcyk7CiB9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxNaW1lQ2xhc3NJbmZvPjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgTWltZUNsYXNzSW5mbyYgbWlt
ZUNsYXNzSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaAppbmRleCA2Zjk3MDBjYzUwM2NhOTdlZThiN2FiZjI0ZWRlYWU3MzM4MGJkMzZkLi4wMzNl
MTc5NGNiYzI3ZDhjZDc5ODk4MDZiYWMyM2I4ODE5MmIzZGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC01Niw3ICs1Niw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBzdHJ1Y3QgTWltZUNsYXNzSW5mbzsKICAgICBzdHJ1Y3QgUGx1
Z2luSW5mbzsKICAgICBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0OwotICAgIHN0cnVjdCBWaWV3
cG9ydEFyZ3VtZW50czsKKyAgICBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogICAgIHN0cnVj
dCBXaW5kb3dGZWF0dXJlczsKIH0KIApAQCAtMTIyLDkgKzEyMiw5IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SW50U2l6ZT4gewogICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpJbnRTaXplJik7CiB9OwogCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciosIGNvbnN0IFdlYkNvcmU6OlZp
ZXdwb3J0QXJndW1lbnRzJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciosIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcz4geworICAgIHN0YXRpYyB2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0
ZXMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6
Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6Ok1pbWVDbGFzc0luZm8+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCBjMjExNjI5MDNkMzAyY2E4
ZWNjZjI5Yjk0NTBiOTg4Y2Q0YWQwOGJlLi5jYzQ2Y2Y5ODQzMGJlMmQyZTVlYzRmMzQ0NjRlMjBl
ODg2MDEzODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Q
YWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
UGFnZUNsaWVudEltcGwuY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1w
bDo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0
aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJikKK3ZvaWQgUGFnZUNsaWVudElt
cGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0
dHJpYnVlcyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDQwYWYzYjIzZmZj
YjE0NzBjNzExMTQyZDQ4NGVhOWI5OTkzN2JmNDEuLjA4NThmYzMzZDM4ZDgwZDEwOTg1YWUyZjA4
MmU0YzQ4OTA1ODI1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvUGFnZUNsaWVudEltcGwuaApAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRB
cmd1bWVudHMmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVz
KGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogCiAgICAgdmlydHVhbCB2b2lk
IHJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiwgV2Vi
UGFnZVByb3h5OjpVbmRvT3JSZWRvKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBbGxFZGl0Q29t
bWFuZHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1Bh
Z2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VD
bGllbnRJbXBsLmNwcAppbmRleCA5NGRhMGRkMDUxYTVhYjIyMzdjNmYyOTdhOWZlZTU3ODhhNjNh
MDcyLi44ZmJmZTczZjY1NWZkZTlkZjQ0MWMwYWYxZjc3NWI4M2VkYzEzOTU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCkBA
IC0xNTgsNyArMTU4LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29ySGlkZGVuVW50
aWxNb3VzZU1vdmVzKGJvb2wgaGlkZGVuVW50aWxNb3VzZU1vdmVzKQogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVy
dGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRB
dHRyaWJ1dGVzJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggNmExY2IyNDU5
Y2Y4NjgyZjIzYzY5ODI0OTg3YmVmYjVjZjY4MzI5Ni4uNTRhZDk5ZjhmYTA0YmQwMmYwYzUxNDhj
NDVhOWZlYjdmMjA1ZmE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9QYWdlQ2xpZW50SW1wbC5oCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIHRvb2xUaXBDaGFuZ2VkKGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgV1RGOjpT
dHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNv
ciYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9v
bCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VW
aWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiAg
ICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29t
bWFuZFByb3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKTsKICAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJBbGxFZGl0Q29tbWFuZHMoKTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuVW5kb1JlZG8oV2Vi
UGFnZVByb3h5OjpVbmRvT3JSZWRvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IGY0N2M1NzljZWE3M2QwMmEyYjYwZGVhZmIw
Yzk3OTdhOGU3NGE0YjQuLmE5ZDdhOWZhOTQ2Yzk3YzgzODczOWNiMDZlNGQyZTI0NDhmNTBiNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudElt
cGwuaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB0b29sVGlw
Q2hhbmdlZChjb25zdCBTdHJpbmcmIG9sZFRvb2xUaXAsIGNvbnN0IFN0cmluZyYgbmV3VG9vbFRp
cCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29y
ZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3Bv
cnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogCiAgICAg
dmlydHVhbCB2b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFu
ZFByb3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xl
YXJBbGxFZGl0Q29tbWFuZHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggODVkNjQxNzExM2M2OTM0ODZlOGRkZjFhZjYx
ZjRkZGU3OThhZTQ0Yi4uNzJlYTM0OTNlMWE2Nzk0M2Q1NmU3YjU1ZTk0N2NiMzA5ZDVjM2Y4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudElt
cGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudElt
cGwubW0KQEAgLTIzNiw3ICsyMzYsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3JI
aWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCBoaWRkZW5VbnRpbE1vdXNlTW92ZXMpCiAgICAgW05T
Q3Vyc29yIHNldEhpZGRlblVudGlsTW91c2VNb3ZlczpoaWRkZW5VbnRpbE1vdXNlTW92ZXNdOwog
fQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29u
c3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlk
Q2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRl
cyYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXcuY3BwCmluZGV4IDRiM2FiZDFiZmI2ZDdiNzE2NDk5YjMyYzk1MmJhOWJkOTAxZDIz
NmMuLjAxZjhkYTRjYzJhYTVlMWI5ODA5NWZlNWVmY2JjOWY5YmY3Y2JhMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtMjA2
LDEyICsyMDYsMTAgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6cHJvY2Vzc0RpZENyYXNo
KCkKIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZGlkUmVsYXVuY2hQcm9jZXNzKCkKIHsK
LSAgICBRX1EoUVF1aWNrV2ViVmlldyk7Ci0KICAgICBxV2FybmluZygiV0FSTklORzogVGhlIHdl
YiBwcm9jZXNzIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSByZXN0YXJ0ZWQuIik7CiAKLSAgICB3ZWJQ
YWdlUHJveHktPnNldFZpZXdwb3J0U2l6ZShxLT5ib3VuZGluZ1JlY3QoKS5zaXplKCkudG9TaXpl
KCkpOwogICAgIHdlYlBhZ2VQcm94eS0+ZHJhd2luZ0FyZWEoKS0+c2V0U2l6ZSh2aWV3U2l6ZSgp
LCBJbnRTaXplKCkpOworICAgIHVwZGF0ZVZpZXdwb3J0U2l6ZSgpOwogfQogCiBQYXNzT3duUHRy
PERyYXdpbmdBcmVhUHJveHk+IFFRdWlja1dlYlZpZXdQcml2YXRlOjpjcmVhdGVEcmF3aW5nQXJl
YVByb3h5KCkKQEAgLTYxNSwxMiArNjEzLDI5IEBAIHZvaWQgUVF1aWNrV2ViVmlld0ZsaWNrYWJs
ZVByaXZhdGU6OmRpZEZpbmlzaEZpcnN0Tm9uRW1wdHlMYXlvdXQoKQogewogfQogCi12b2lkIFFR
dWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMo
Y29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIGFyZ3MpCit2b2lkIFFRdWlja1dlYlZp
ZXdGbGlja2FibGVQcml2YXRlOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2Vi
Q29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzKQogewotICAgIHZpZXdwb3J0QXJn
dW1lbnRzID0gYXJnczsKKyAgICBRX1EoUVF1aWNrV2ViVmlldyk7CisKKyAgICBRU2l6ZSB2aWV3
cG9ydFNpemUgPSBxLT5ib3VuZGluZ1JlY3QoKS5zaXplKCkudG9TaXplKCk7CisKKyAgICAvLyBG
SVhNRTogUmV2aXNlIHRoZXNlIHdoZW4gaW1wbGVtZW50aW5nIGZpdC10by13aWR0aC4KKyAgICBX
ZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0ciA9IGF0dHJpYnV0ZXM7CisgICAgV2ViQ29y
ZTo6cmVzdHJpY3RNaW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShhdHRyLCB2aWV3cG9y
dFNpemUpOworICAgIFdlYkNvcmU6OnJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlm
Tm90VXNlclNjYWxhYmxlKGF0dHIpOworCisgICAgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5l
OjpDb25zdHJhaW50cyBuZXdDb25zdHJhaW50czsKKyAgICBuZXdDb25zdHJhaW50cy5pbml0aWFs
U2NhbGUgPSBhdHRyLmluaXRpYWxTY2FsZTsKKyAgICBuZXdDb25zdHJhaW50cy5taW5pbXVtU2Nh
bGUgPSBhdHRyLm1pbmltdW1TY2FsZTsKKyAgICBuZXdDb25zdHJhaW50cy5tYXhpbXVtU2NhbGUg
PSBhdHRyLm1heGltdW1TY2FsZTsKKyAgICBuZXdDb25zdHJhaW50cy5kZXZpY2VQaXhlbFJhdGlv
ID0gYXR0ci5kZXZpY2VQaXhlbFJhdGlvOworICAgIG5ld0NvbnN0cmFpbnRzLmlzVXNlclNjYWxh
YmxlID0gISFhdHRyLnVzZXJTY2FsYWJsZTsKKyAgICBuZXdDb25zdHJhaW50cy5sYXlvdXRTaXpl
ID0gYXR0ci5sYXlvdXRTaXplOworCisgICAgcS0+ZXhwZXJpbWVudGFsKCktPnZpZXdwb3J0SW5m
bygpLT5kaWRVcGRhdGVWaWV3cG9ydENvbnN0cmFpbnRzKCk7CiAKICAgICAvLyBGSVhNRTogSWYg
c3VzcGVuZGVkIHdlIHNob3VsZCBkbyB0aGlzIG9uIHJlc3VtZS4KLSAgICBpbnRlcmFjdGlvbkVu
Z2luZS0+YXBwbHlDb25zdHJhaW50cyhjb21wdXRlVmlld3BvcnRDb25zdHJhaW50cygpKTsKKyAg
ICBpbnRlcmFjdGlvbkVuZ2luZS0+YXBwbHlDb25zdHJhaW50cyhuZXdDb25zdHJhaW50cyk7CiB9
CiAKIHZvaWQgUVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGU6OnVwZGF0ZVZpZXdwb3J0U2l6
ZSgpCkBAIC02MzEsMTEgKzY0NiwxOCBAQCB2b2lkIFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2
YXRlOjp1cGRhdGVWaWV3cG9ydFNpemUoKQogICAgIGlmICh2aWV3cG9ydFNpemUuaXNFbXB0eSgp
IHx8ICFpbnRlcmFjdGlvbkVuZ2luZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgV2ViUHJlZmVy
ZW5jZXMqIHdrUHJlZnMgPSB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygp
OworCisgICAgLy8gRklYTUU6IFJlbW92ZSBsYXRlcjsgSGFyZGNvZGUgYSB2YWx1ZSBmb3Igbm93
IHRvIG1ha2Ugc3VyZSB0aGUgRFBJIGFkanVzdG1lbnQgaXMgYmVpbmcgdGVzdGVkLgorICAgIHdr
UHJlZnMtPnNldERldmljZURQSSgxNjApOworCisgICAgd2tQcmVmcy0+c2V0RGV2aWNlV2lkdGgo
dmlld3BvcnRTaXplLndpZHRoKCkpOworICAgIHdrUHJlZnMtPnNldERldmljZUhlaWdodCh2aWV3
cG9ydFNpemUuaGVpZ2h0KCkpOworCiAgICAgLy8gTGV0IHRoZSBXZWJQcm9jZXNzIGtub3cgYWJv
dXQgdGhlIG5ldyB2aWV3cG9ydCBzaXplLCBzbyB0aGF0CiAgICAgLy8gaXQgY2FuIHJlc2l6ZSB0
aGUgY29udGVudCBhY2NvcmRpbmdseS4KICAgICB3ZWJQYWdlUHJveHktPnNldFZpZXdwb3J0U2l6
ZSh2aWV3cG9ydFNpemUpOwogCi0gICAgaW50ZXJhY3Rpb25FbmdpbmUtPmFwcGx5Q29uc3RyYWlu
dHMoY29tcHV0ZVZpZXdwb3J0Q29uc3RyYWludHMoKSk7CiAgICAgX3FfY29udGVudFZpZXdwb3J0
Q2hhbmdlZChRUG9pbnRGKCkpOwogfQogCkBAIC02ODQsNDMgKzcwNiw2IEBAIHZvaWQgUVF1aWNr
V2ViVmlld0ZsaWNrYWJsZVByaXZhdGU6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBRU2l6
ZSYgbmV3U2l6ZSkKICAgICBxLT5leHBlcmltZW50YWwoKS0+dmlld3BvcnRJbmZvKCktPmRpZFVw
ZGF0ZUNvbnRlbnRzU2l6ZSgpOwogfQogCi1RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6OkNv
bnN0cmFpbnRzIFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpjb21wdXRlVmlld3BvcnRD
b25zdHJhaW50cygpCi17Ci0gICAgUV9RKFFRdWlja1dlYlZpZXcpOwotCi0gICAgUXRWaWV3cG9y
dEludGVyYWN0aW9uRW5naW5lOjpDb25zdHJhaW50cyBuZXdDb25zdHJhaW50czsKLSAgICBRU2l6
ZSBhdmFpbGFibGVTaXplID0gcS0+Ym91bmRpbmdSZWN0KCkuc2l6ZSgpLnRvU2l6ZSgpOwotCi0g
ICAgLy8gUmV0dXJuIGRlZmF1bHQgdmFsdWVzIGZvciB6ZXJvIHNpemVkIHZpZXdwb3J0LgotICAg
IGlmIChhdmFpbGFibGVTaXplLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIG5ld0NvbnN0cmFp
bnRzOwotCi0gICAgV2ViUHJlZmVyZW5jZXMqIHdrUHJlZnMgPSB3ZWJQYWdlUHJveHktPnBhZ2VH
cm91cCgpLT5wcmVmZXJlbmNlcygpOwotCi0gICAgLy8gRklYTUU6IFJlbW92ZSBsYXRlcjsgSGFy
ZGNvZGUgYSB2YWx1ZSBmb3Igbm93IHRvIG1ha2Ugc3VyZSB0aGUgRFBJIGFkanVzdG1lbnQgaXMg
YmVpbmcgdGVzdGVkLgotICAgIHdrUHJlZnMtPnNldERldmljZURQSSgxNjApOwotCi0gICAgd2tQ
cmVmcy0+c2V0RGV2aWNlV2lkdGgoYXZhaWxhYmxlU2l6ZS53aWR0aCgpKTsKLSAgICB3a1ByZWZz
LT5zZXREZXZpY2VIZWlnaHQoYXZhaWxhYmxlU2l6ZS5oZWlnaHQoKSk7Ci0KLSAgICBpbnQgbWlu
aW11bUxheW91dEZhbGxiYWNrV2lkdGggPSBxTWF4PGludD4od2tQcmVmcy0+bGF5b3V0RmFsbGJh
Y2tXaWR0aCgpLCBhdmFpbGFibGVTaXplLndpZHRoKCkpOwotCi0gICAgV2ViQ29yZTo6Vmlld3Bv
cnRBdHRyaWJ1dGVzIGF0dHIgPSBXZWJDb3JlOjpjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKHZp
ZXdwb3J0QXJndW1lbnRzLCBtaW5pbXVtTGF5b3V0RmFsbGJhY2tXaWR0aCwgd2tQcmVmcy0+ZGV2
aWNlV2lkdGgoKSwgd2tQcmVmcy0+ZGV2aWNlSGVpZ2h0KCksIHdrUHJlZnMtPmRldmljZURQSSgp
LCBhdmFpbGFibGVTaXplKTsKLSAgICBXZWJDb3JlOjpyZXN0cmljdE1pbmltdW1TY2FsZUZhY3Rv
clRvVmlld3BvcnRTaXplKGF0dHIsIGF2YWlsYWJsZVNpemUpOwotICAgIFdlYkNvcmU6OnJlc3Ry
aWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKGF0dHIpOwotCi0g
ICAgbmV3Q29uc3RyYWludHMuaW5pdGlhbFNjYWxlID0gYXR0ci5pbml0aWFsU2NhbGU7Ci0gICAg
bmV3Q29uc3RyYWludHMubWluaW11bVNjYWxlID0gYXR0ci5taW5pbXVtU2NhbGU7Ci0gICAgbmV3
Q29uc3RyYWludHMubWF4aW11bVNjYWxlID0gYXR0ci5tYXhpbXVtU2NhbGU7Ci0gICAgbmV3Q29u
c3RyYWludHMuZGV2aWNlUGl4ZWxSYXRpbyA9IGF0dHIuZGV2aWNlUGl4ZWxSYXRpbzsKLSAgICBu
ZXdDb25zdHJhaW50cy5pc1VzZXJTY2FsYWJsZSA9ICEhYXR0ci51c2VyU2NhbGFibGU7Ci0gICAg
bmV3Q29uc3RyYWludHMubGF5b3V0U2l6ZSA9IGF0dHIubGF5b3V0U2l6ZTsKLQotICAgIHEtPmV4
cGVyaW1lbnRhbCgpLT52aWV3cG9ydEluZm8oKS0+ZGlkVXBkYXRlVmlld3BvcnRDb25zdHJhaW50
cygpOwotCi0gICAgcmV0dXJuIG5ld0NvbnN0cmFpbnRzOwotfQotCiAvKiEKICAgICBccW1sc2ln
bmFsIFdlYlZpZXc6Om9uTmF2aWdhdGlvblJlcXVlc3RlZChyZXF1ZXN0KQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXgg
N2Y0MzA0Zjc1OTMxOWYzOTY2YmVlMzliMDc5YjZhMTdjNTA3ZTkwOS4uMjJjNTk5NjllNDY5N2E0
NGE2OTRjZGE0MjJjOGI5ODFjOTM4YWNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApAQCAtNzUsNyArNzUsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIG9uQ29tcG9uZW50Q29tcGxldGUoKTsKICAgICB2aXJ0dWFs
IHZvaWQgbG9hZERpZENvbW1pdCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hGaXJz
dE5vbkVtcHR5TGF5b3V0KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0
UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYgYXJncykgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3Jl
OjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpIHsgfQogICAgIHZvaWQgZGlkQ2hhbmdlTG9hZGlu
Z1N0YXRlKFFXZWJMb2FkUmVxdWVzdCogbG9hZFJlcXVlc3QpOwogICAgIHZvaWQgZGlkQ2hhbmdl
QmFja0ZvcndhcmRMaXN0KCk7CiAKQEAgLTE2MCw4ICsxNjAsNiBAQCBwcm90ZWN0ZWQ6CiAgICAg
UURlY2xhcmF0aXZlQ29tcG9uZW50KiBmaWxlUGlja2VyOwogICAgIFFEZWNsYXJhdGl2ZUNvbXBv
bmVudCogZGF0YWJhc2VRdW90YURpYWxvZzsKIAotICAgIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1l
bnRzIHZpZXdwb3J0QXJndW1lbnRzOwotCiAgICAgYm9vbCBtX3VzZURlZmF1bHRDb250ZW50SXRl
bVNpemU7CiAgICAgYm9vbCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZDsKICAgICBib29sIG1f
cmVuZGVyVG9PZmZzY3JlZW5CdWZmZXI7CkBAIC0xOTYsNyArMTk0LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBvbkNvbXBvbmVudENvbXBsZXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIGxv
YWREaWRDb21taXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoRmlyc3ROb25FbXB0eUxh
eW91dCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29u
c3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIGFyZ3MpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1
dGVzJik7CiAgICAgdmlydHVhbCBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUqIHZpZXdwb3J0
SW50ZXJhY3Rpb25FbmdpbmUoKSB7IHJldHVybiBpbnRlcmFjdGlvbkVuZ2luZS5kYXRhKCk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlld3BvcnRTaXplKCk7CiAKQEAgLTIwNyw4ICsyMDUs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0
IFFQb2ludCYgcG9zKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNTaXplKGNv
bnN0IFFTaXplJiBuZXdTaXplKTsKIAotICAgIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6
Q29uc3RyYWludHMgY29tcHV0ZVZpZXdwb3J0Q29uc3RyYWludHMoKTsKLQogcHJpdmF0ZToKICAg
ICBRU2NvcGVkUG9pbnRlcjxRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU+IGludGVyYWN0aW9u
RW5naW5lOwogICAgIGJvb2wgcGFnZUlzU3VzcGVuZGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmgKaW5kZXggNDdkNmFmNzI4MDFkNTRjODY4ODM1ZGY0NzVmMmYyZWM1MzcwZDRk
OC4uN2M4MTUxMDFkZmE3MmRkNDkzYTk0MDY5ZWZhNTIyNWRkMWYyNzgzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIE9CSkNfQ0xBU1MgV0tW
aWV3OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ3Vyc29yOwotICAgIHN0cnVj
dCBWaWV3cG9ydEFyZ3VtZW50czsKKyAgICBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOwogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEyMyw3ICsxMjMsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6
OlZpZXdwb3J0QXJndW1lbnRzJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3
cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikgPSAwOwog
CiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0
Q29tbWFuZFByb3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBkMWJkNDBjMTA0OGMyM2I1Y2UxYmU1M2QzYzBjZmQz
ZTEzZDhmNzZhLi5jZGQzOWU1OTA3ZDlhODNjMDA2YWE0OTBkNWM1ODFmNjAyNGEyMjkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjM5NCw5ICsyMzk0
LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IEludFBv
aW50JiBwb2ludCkKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlVmll
d3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiBhcmdzKQordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBWaWV3cG9ydEF0dHJp
YnV0ZXMmIGF0dHIpCiB7Ci0gICAgbV9wYWdlQ2xpZW50LT5kaWRDaGFuZ2VWaWV3cG9ydFByb3Bl
cnRpZXMoYXJncyk7CisgICAgbV9wYWdlQ2xpZW50LT5kaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRp
ZXMoYXR0cik7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpwYWdlRGlkU2Nyb2xsKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAzNjQyM2UyYjM0NDBjMzM2OTMz
NWYyZGU4NWY5YTYwMjYxZGZkYjI2Li4xN2RlMTlmOGYxZTdjYTZkYWJlNGIwYmNmNTljM2Q0NzEz
NTA3YmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC05Miw3
ICs5Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7
CiAgICAgc3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7CiAgICAgc3RydWN0IFRleHRDaGVja2lu
Z1Jlc3VsdDsKLSAgICBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHM7CisgICAgc3RydWN0IFZpZXdw
b3J0QXR0cmlidXRlczsKICAgICBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiB9CiAKQEAgLTcyMSw3
ICs3MjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2NyZWVuVG9XaW5kb3coY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHNjcmVlblBvaW50LCBXZWJDb3JlOjpJbnRQb2ludCYgd2luZG93UG9pbnQp
OwogICAgIHZvaWQgd2luZG93VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1Jl
Y3QsIFdlYkNvcmU6OkludFJlY3QmIHJlc3VsdCk7CiAgICAgdm9pZCBydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1aW50NjRfdCBmcmFtZUlELCBib29s
JiBzaG91bGRDbG9zZSk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29u
c3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsKKyAgICB2b2lkIGRpZENoYW5nZVZpZXdw
b3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsKICAgICB2
b2lkIHBhZ2VEaWRTY3JvbGwoKTsKICAgICB2b2lkIHJ1bk9wZW5QYW5lbCh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CiAgICAgdm9pZCBwcmlu
dEZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZTRmN2FhZmRkYTZiY2MxZDQ4ZDcxZjVk
YTAzMTc0ZDE5ZWZiY2JlOC4uMzczZDg0OGRiZWE1ZDQ5Y2RhNGMxMjE4MmFjOWIyM2IzMjE0YjAx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0zMSw3ICszMSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAg
U2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpIC0+IChib29sIHNob3VsZEludGVydXB0KQogICAg
IE1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdDo6RGF0YSBo
aXRUZXN0UmVzdWx0RGF0YSwgdWludDMyX3QgbW9kaWZpZXJzLCBXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKTsKICAgICBNaXNzaW5nUGx1Z2luQnV0dG9u
Q2xpY2tlZChXVEY6OlN0cmluZyBtaW1lVHlwZSwgV1RGOjpTdHJpbmcgdXJsLCBXVEY6OlN0cmlu
ZyBwbHVnaW5zUGFnZVVSTCkKLSAgICBEaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoV2ViQ29y
ZTo6Vmlld3BvcnRBcmd1bWVudHMgYXJndW1lbnRzKQorICAgIERpZENoYW5nZVZpZXdwb3J0UHJv
cGVydGllcyhXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICBEaWRS
ZWNlaXZlRXZlbnQodWludDMyX3QgdHlwZSwgYm9vbCBoYW5kbGVkKQogICAgIFN0b3BSZXNwb25z
aXZlbmVzc1RpbWVyKCkKICAgICBTZXRDdXJzb3IoV2ViQ29yZTo6Q3Vyc29yIGN1cnNvcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAKaW5kZXggYTY5Y2Ew
NmZjNjFmYjFlODQ1MGI4NmEyNDc4M2Y0YjFjNTM1NjgzOS4uOThlYTNiNzZkYzhmZTE2NzdjMzAx
ZGU3N2Q1N2FkNWE4YmQ1MTRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1F0UGFnZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
UGFnZUNsaWVudC5jcHAKQEAgLTg2LDkgKzg2LDkgQEAgdm9pZCBRdFBhZ2VDbGllbnQ6OmRpZENo
YW5nZUNvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJiBuZXdTaXplKQogICAgIFFRdWlja1dlYlZp
ZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+ZGlkQ2hhbmdlQ29udGVudHNTaXplKG5ld1NpemUp
OwogfQogCi12b2lkIFF0UGFnZUNsaWVudDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNv
bnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJiBhcmdzKQordm9pZCBRdFBhZ2VDbGllbnQ6
OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJp
YnV0ZXMmIGF0dHIpCiB7Ci0gICAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmdldChtX3dlYlZpZXcp
LT5kaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoYXJncyk7CisgICAgUVF1aWNrV2ViVmlld1By
aXZhdGU6OmdldChtX3dlYlZpZXcpLT5kaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoYXR0cik7
CiB9CiAKIHZvaWQgUXRQYWdlQ2xpZW50OjpzdGFydERyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0Rh
dGEmIGRyYWdEYXRhLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZHJhZ0ltYWdlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oCmluZGV4IDAwY2FmOWM3NzUy
ZmM2OWU5ZjJhNTlhYTJlNTE4MGY4Njk0NzEyOWEuLmE0NTg2MTRkMTg5MTAwN2E3ODE2YjBjMDJi
MjllYjg5YTk0MzhkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFBhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xp
ZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9iamVjdChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0
dWFsIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNv
bnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJik7CisgICAgdmlydHVhbCB2b2lkIGRpZENo
YW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMm
KTsKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENyYXNoKCk7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlbGF1bmNoUHJvY2VzcygpOwogICAgIHZpcnR1YWwgUGFzc093blB0cjxEcmF3aW5nQXJl
YVByb3h5PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3dpbi9XZWJWaWV3LmNwcAppbmRleCA5NDMzNGQ4ZmE4MThlMWFjNzQ5ZTExOGYxNmNkMTYzYTg1
ZjAxYjgwLi5mNmU3NWQ2OGFiZTFlYTYxYjRiMjUxY2QxYjIxZGNkN2IyM2VjZThhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKQEAgLTEwODAsNyArMTA4MCw3IEBA
IHZvaWQgV2ViVmlldzo6c2V0U2Nyb2xsT2Zmc2V0T25OZXh0UmVzaXplKGNvbnN0IEludFNpemUm
IHNjcm9sbE9mZnNldCkKICAgICBtX25leHRSZXNpemVTY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZz
ZXQ7CiB9CiAKLXZvaWQgV2ViVmlldzo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0
IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJikKK3ZvaWQgV2ViVmlldzo6ZGlkQ2hhbmdlVmll
d3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgKaW5kZXggZGFhMTNjMTdiNjI4
YmQ3ZGZjMTA4YTAyYWI4ZGMzZDNiMjhmNGIyZS4uZGJhMTU5M2YxMDllMWU5MjBhMDJkY2E0OTI2
MmU4MGNiNDhiM2JhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9X
ZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgKQEAg
LTE4NSw3ICsxODUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB0b29sVGlwQ2hhbmdl
ZChjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAgdmlydHVhbCB2
b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVu
dHMmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0
IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogICAgIHZpcnR1YWwgdm9pZCByZWdpc3Rl
ckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4sIFdlYlBhZ2VQcm94
eTo6VW5kb09yUmVkbyk7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCk7
CiAgICAgdmlydHVhbCBib29sIGNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNjlmMTZiMjliZDEzZmNlNTRmYTE5MmFhM2Vj
ZTIzYzkzZTU1MDdiMS4uNWQzYWZlNjhhMjllYWE0ZWM1ZDhkNWFhY2I0Y2E3ZGVjM2I5NTNmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNzA5LDI2ICs3MDksMTYgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBl
bGVtZW50KQogfQogI2VuZGlmCiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaXNwYXRjaFZpZXdw
b3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgYXJncykgY29u
c3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENo
YW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0CiB7Ci0gICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhhcmdz
KSk7Ci0KICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKLSAgICAvLyBXaGVuIHZpZXdwb3J0
IHByb3BlcnRpZXMgY2hhbmdlLCByZWNhbGN1bGF0ZSBhbmQgc2V0IHRoZSBuZXcgcmVjb21tZW5k
ZWQgbGF5b3V0IHNpemUgaW4gY2FzZSBvZiBmaXhlZCBsYXlvdXQgcmVuZGVyaW5nLgotICAgIC8v
IFZpZXdwb3J0IHByb3BlcnRpZXMgaGF2ZSBubyBpbXBhY3Qgb24gemVybyBzaXplZCBmaXhlZCB2
aWV3cG9ydHMuCi0gICAgaWYgKG1fcGFnZS0+dXNlRml4ZWRMYXlvdXQoKSAmJiAhbV9wYWdlLT52
aWV3cG9ydFNpemUoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0g
bV9wYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpOwotCi0gICAgICAgIGludCBtaW5pbXVtTGF5
b3V0RmFsbGJhY2tXaWR0aCA9IHN0ZDo6bWF4KHNldHRpbmdzLT5sYXlvdXRGYWxsYmFja1dpZHRo
KCksIG1fcGFnZS0+dmlld3BvcnRTaXplKCkud2lkdGgoKSk7CisgICAgaWYgKCFtX3BhZ2UtPnVz
ZUZpeGVkTGF5b3V0KCkpCisgICAgICAgIHJldHVybjsKIAotICAgICAgICBJbnRTaXplIHRhcmdl
dExheW91dFNpemUgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKG1fcGFnZS0+Y29yZVBhZ2Uo
KS0+dmlld3BvcnRBcmd1bWVudHMoKSwKLSAgICAgICAgICAgIG1pbmltdW1MYXlvdXRGYWxsYmFj
a1dpZHRoLCBzZXR0aW5ncy0+ZGV2aWNlV2lkdGgoKSwgc2V0dGluZ3MtPmRldmljZUhlaWdodCgp
LAotICAgICAgICAgICAgc2V0dGluZ3MtPmRldmljZURQSSgpLCBtX3BhZ2UtPnZpZXdwb3J0U2l6
ZSgpKS5sYXlvdXRTaXplOwotICAgICAgICBtX3BhZ2UtPnNldFJlc2l6ZXNUb0NvbnRlbnRzVXNp
bmdMYXlvdXRTaXplKHRhcmdldExheW91dFNpemUpOwotICAgIH0KKyAgICBtX3BhZ2UtPnNlbmRW
aWV3cG9ydEF0dHJpYnV0ZXNDaGFuZ2VkKCk7CiAjZW5kaWYKIH0KLSAgICAKKwogdm9pZCBXZWJD
aHJvbWVDbGllbnQ6Om5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgSW50
UmVjdCYgc2Nyb2xsZXJUaHVtYikKIHsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6Tm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChzY3JvbGxlclRodW1i
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggODRmNDY3ZTU0Mzc3OTc0MWJjODYwMTJlYzE1NzU3YWFkYjk5MDIxOS4uODBiZTg4Y2QzMTgz
OTc1YTY3MjY0OTQwOWYwNzNmMTc5MDcyNTdjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtODYzLDIyICs4NjMsMzUgQEAgdm9pZCBXZWJQ
YWdlOjpyZXNpemVUb0NvbnRlbnRzSWZOZWVkZWQoKQogICAgIHZpZXctPnNldE5lZWRzTGF5b3V0
KCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2V0Vmlld3BvcnRTaXplKGNvbnN0IEludFNpemUmIHNp
emUpCit2b2lkIFdlYlBhZ2U6OnNlbmRWaWV3cG9ydEF0dHJpYnV0ZXNDaGFuZ2VkKCkKIHsKICAg
ICBBU1NFUlQobV91c2VGaXhlZExheW91dCk7CiAKLSAgICBpZiAobV92aWV3cG9ydFNpemUgPT0g
c2l6ZSkKKyAgICAvLyBWaWV3cG9ydCBwcm9wZXJ0aWVzIGhhdmUgbm8gaW1wYWN0IG9uIHplcm8g
c2l6ZWQgZml4ZWQgdmlld3BvcnRzLgorICAgIGlmIChtX3ZpZXdwb3J0U2l6ZS5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgICBtX3ZpZXdwb3J0U2l6ZSA9IHNpemU7Ci0KICAgICAv
LyBSZWNhbGN1bGF0ZSB0aGUgcmVjb21tZW5kZWQgbGF5b3V0IHNpemUsIHdoZW4gdGhlIGF2YWls
YWJsZSBzaXplIChkZXZpY2UgcGl4ZWwpIGNoYW5nZXMuCiAgICAgU2V0dGluZ3MqIHNldHRpbmdz
ID0gbV9wYWdlLT5zZXR0aW5ncygpOwogCi0gICAgaW50IG1pbmltdW1MYXlvdXRGYWxsYmFja1dp
ZHRoID0gc3RkOjptYXgoc2V0dGluZ3MtPmxheW91dEZhbGxiYWNrV2lkdGgoKSwgc2l6ZS53aWR0
aCgpKTsKKyAgICBpbnQgbWluaW11bUxheW91dEZhbGxiYWNrV2lkdGggPSBzdGQ6Om1heChzZXR0
aW5ncy0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpLCBtX3ZpZXdwb3J0U2l6ZS53aWR0aCgpKTsKKwor
ICAgIFZpZXdwb3J0QXR0cmlidXRlcyBhdHRyID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyht
X3BhZ2UtPnZpZXdwb3J0QXJndW1lbnRzKCksIG1pbmltdW1MYXlvdXRGYWxsYmFja1dpZHRoLCBz
ZXR0aW5ncy0+ZGV2aWNlV2lkdGgoKSwgc2V0dGluZ3MtPmRldmljZUhlaWdodCgpLCBzZXR0aW5n
cy0+ZGV2aWNlRFBJKCksIG1fdmlld3BvcnRTaXplKTsKKworICAgIHNldFJlc2l6ZXNUb0NvbnRl
bnRzVXNpbmdMYXlvdXRTaXplKGF0dHIubGF5b3V0U2l6ZSk7CisgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoYXR0cikpOworfQorCit2
b2lkIFdlYlBhZ2U6OnNldFZpZXdwb3J0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAg
IEFTU0VSVChtX3VzZUZpeGVkTGF5b3V0KTsKKworICAgIGlmIChtX3ZpZXdwb3J0U2l6ZSA9PSBz
aXplKQorICAgICAgICByZXR1cm47CisKKyAgICAgbV92aWV3cG9ydFNpemUgPSBzaXplOwogCi0g
ICAgSW50U2l6ZSB0YXJnZXRMYXlvdXRTaXplID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyht
X3BhZ2UtPnZpZXdwb3J0QXJndW1lbnRzKCksIG1pbmltdW1MYXlvdXRGYWxsYmFja1dpZHRoLCBz
ZXR0aW5ncy0+ZGV2aWNlV2lkdGgoKSwgc2V0dGluZ3MtPmRldmljZUhlaWdodCgpLCBzZXR0aW5n
cy0+ZGV2aWNlRFBJKCksIHNpemUpLmxheW91dFNpemU7Ci0gICAgc2V0UmVzaXplc1RvQ29udGVu
dHNVc2luZ0xheW91dFNpemUodGFyZ2V0TGF5b3V0U2l6ZSk7CisgICAgc2VuZFZpZXdwb3J0QXR0
cmlidXRlc0NoYW5nZWQoKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAzYTMwM2JmZTI3OTk5NmI3MWRjMjNkMjQ1NWZkNTIx
ZjM0MjBmYzRhLi43ZDUyZDRjZmVmOTE2ZGI2ZmM1NzIzMmQ2MGVjMDRkNjBhNzZjZDY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTM0Miw2ICsz
NDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChjb25z
dCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdm9pZCBzZXRSZXNpemVzVG9Db250ZW50c1VzaW5n
TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdm9pZCByZXNpemVUb0Nv
bnRlbnRzSWZOZWVkZWQoKTsKKyAgICB2b2lkIHNlbmRWaWV3cG9ydEF0dHJpYnV0ZXNDaGFuZ2Vk
KCk7CiAgICAgdm9pZCBzZXRWaWV3cG9ydFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwog
ICAgIFdlYkNvcmU6OkludFNpemUgdmlld3BvcnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV92aWV3
cG9ydFNpemU7IH0KICNlbmRpZgo=
</data>
<flag name="review"
          id="141811"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>