<?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>106601</bug_id>
          
          <creation_ts>2013-01-10 14:11:50 -0800</creation_ts>
          <short_desc>Clamp TileCache visibleRect to WKView&apos;s visibleRect</short_desc>
          <delta_ts>2013-01-15 18:53:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>804714</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-01-10 14:11:50 -0800</bug_when>
    <thetext>In the case where we have a very large WKView which is mostly clipped, we create tons of tiles (covering the whole view!). We should only make tiles in the visible area.

Part of &lt;rdar://problem/12843164&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807575</commentid>
    <comment_count>1</comment_count>
      <attachid>182827</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-01-15 12:40:03 -0800</bug_when>
    <thetext>Created attachment 182827
take one</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807580</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-15 12:42:37 -0800</bug_when>
    <thetext>Attachment 182827 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebKit2/WebProcess/WebPage/WebPage.h:723:  The parameter name &quot;isScrollable&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/WebPageProxy.h:392:  The parameter name &quot;isScrollable&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807581</commentid>
    <comment_count>3</comment_count>
      <attachid>182828</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-01-15 12:42:39 -0800</bug_when>
    <thetext>Created attachment 182828
preemptive style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807603</commentid>
    <comment_count>4</comment_count>
      <attachid>182828</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-15 12:53:15 -0800</bug_when>
    <thetext>Comment on attachment 182828
preemptive style fix

Attachment 182828 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15908017</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807639</commentid>
    <comment_count>5</comment_count>
      <attachid>182840</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-01-15 13:33:56 -0800</bug_when>
    <thetext>Created attachment 182840
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807837</commentid>
    <comment_count>6</comment_count>
      <attachid>182880</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-01-15 17:13:16 -0800</bug_when>
    <thetext>Created attachment 182880
patch after talking to smfr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807840</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-15 17:16:30 -0800</bug_when>
    <thetext>Attachment 182880 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebKit2/UIProcess/API/mac/WKViewPrivate.h:54:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807846</commentid>
    <comment_count>8</comment_count>
      <attachid>182880</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-15 17:28:43 -0800</bug_when>
    <thetext>Comment on attachment 182880
patch after talking to smfr

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

&gt; Source/WebCore/platform/graphics/ca/mac/TileCache.h:173
&gt; +    IntRect m_exposedRect;

A comment to say what this is would be nice.

&gt; Source/WebCore/platform/graphics/ca/mac/TileCache.mm:418
&gt; +    IntRect intersectedVisibleRect = m_visibleRect;

I think it would be fine to call this visibleRect.

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:213
&gt; +    BOOL _expandsToFitContent;

Maybe this should contain &apos;autoLayout&apos; in the words.

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:3100
&gt; +    _data-&gt;_page-&gt;setMinimumLayoutWidth(expandsToFit ? minimumLayoutWidth : 0);

Isn&apos;t this the same as _data-&gt;_page-&gt;setMinimumLayoutWidth(minimumLayoutWidth); ?

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:607
&gt; +    bool mainFrameIsScrollable() { return m_mainFrameIsScrollable; }

const

&gt; Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:347
&gt; +    m_exposedRect = exposedRect;
&gt; +    mainFrameTiledBacking()-&gt;setExposedRect(exposedRect);

Shouldn&apos;t this map through the scroll offset?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807923</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-01-15 18:53:12 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/139822</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182827</attachid>
            <date>2013-01-15 12:40:03 -0800</date>
            <delta_ts>2013-01-15 12:42:39 -0800</delta_ts>
            <desc>take one</desc>
            <filename>setMainFrameIsScrollable.diff</filename>
            <type>text/plain</type>
            <size>29232</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiY2I0YzMwLi43MmJmNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTMtMDEtMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgQ2xhbXAgVGlsZUNhY2hlIHZpc2libGVSZWN0IHRvIFdLVmlldydzIHZpc2libGVS
ZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY2
MDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODQzMTY0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRC
YWNraW5nLmg6CisgICAgICAgIChUaWxlZEJhY2tpbmcpOiBBZGQgc2V0RXhwb3NlZFJlY3QgYW5k
IHNldENsaXBzVG9FeHBvc2VkUmVjdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvVGlsZUNhY2hlLmg6CisgICAgICAgIChUaWxlQ2FjaGUpOiBBZGQgc2V0RXhwb3NlZFJlY3Qs
IHNldENsaXBzVG9FeHBvc2VkUmVjdCwgYW5kIHN0b3JhZ2UgZm9yIHRoZWlyIHJlc3BlY3RpdmUg
dmFsdWVzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW06
CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ2FjaGU6OlRpbGVDYWNoZSk6IEluaXRpYWxpemUgbV9j
bGlwc1RvRXhwb3NlZFJlY3QgdG8gZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpUaWxlQ2FjaGU6
OnNldEV4cG9zZWRSZWN0KTogVXBkYXRlIGV4cG9zZWRSZWN0IGFuZCByZXZhbGlkYXRlIHRpbGVz
LgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNhY2hlOjpzZXRDbGlwc1RvRXhwb3NlZFJlY3QpOiBV
cGRhdGUgY2xpcHNUb0V4cG9zZWRSZWN0IGFuZCByZXZhbGlkYXRlIHRpbGVzOworICAgICAgICBp
ZiB3ZSdyZSBnb2luZyBmcm9tIHVuY2xpcHBlZCB0byBjbGlwcGVkLCB3ZSBhbHJlYWR5IGhhdmUg
dGlsZXMsIHNvIHdlIGNhbiBza2lwIHRpbGUgcmV2YWxpZGF0aW9uLgorICAgICAgICAoV2ViQ29y
ZTo6VGlsZUNhY2hlOjpjb21wdXRlVGlsZUNvdmVyYWdlUmVjdCk6IEludGVyc2VjdCBleGlzaXRp
bmcgdmlzaWJsZSByZWN0IHdpdGgKKyAgICAgICAgZXhwb3NlZCByZWN0IHRvIGdldCB0aGUgdmlz
aWJsZSByZWN0IHdlIGFjdHVhbGx5IGNhcmUgYWJvdXQuCisgICAgICAgIChXZWJDb3JlOjpUaWxl
Q2FjaGU6OnJldmFsaWRhdGVUaWxlcyk6IERpdHRvLgorCiAyMDEzLTAxLTE1ICBaYW4gRG9iZXJz
ZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS10gRW5hYmxlIFBlcmZv
cm1hbmNlIFRpbWVsaW5lLCBSZXNvdXJjZSBUaW1pbmcsIE5hdmlnYXRpb24gVGltaW5nIGZlYXR1
cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJh
Y2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5o
CmluZGV4IDQxYjMzNmUuLmEwMGQwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCkBAIC00Nyw2ICs0Nyw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZVJlY3QoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0
dWFsIEludFJlY3QgdmlzaWJsZVJlY3QoKSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0RXhwb3NlZFJlY3QoY29uc3QgSW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
Q2xpcHNUb0V4cG9zZWRSZWN0KGJvb2wpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBwcmVwb3B1
bGF0ZVJlY3QoY29uc3QgSW50UmVjdCYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0lu
V2luZG93KGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9UaWxlQ2FjaGUuaAppbmRleCBhZTA0N2UyLi4xZGZjOGZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5oCkBA
IC0xMDYsNiArMTA2LDggQEAgcHJpdmF0ZToKIAogICAgIC8vIFRpbGVkQmFja2luZyBtZW1iZXIg
ZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlUmVjdChjb25zdCBJbnRSZWN0
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IEludFJl
Y3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpcHNUb0V4cG9zZWRSZWN0KGJv
b2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwcmVwb3B1bGF0ZVJlY3QoY29uc3QgSW50
UmVjdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0luV2luZG93KGJvb2wpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUaWxlQ292ZXJhZ2UoVGlsZUNvdmVyYWdlKSBP
VkVSUklERTsKQEAgLTE2OCw2ICsxNzAsNyBAQCBwcml2YXRlOgogICAgIEludFNpemUgbV90aWxl
U2l6ZTsKICAgICBJbnRSZWN0IG1fdmlzaWJsZVJlY3Q7CiAgICAgSW50UmVjdCBtX3Zpc2libGVS
ZWN0QXRMYXN0UmV2YWxpZGF0ZTsKKyAgICBJbnRSZWN0IG1fZXhwb3NlZFJlY3Q7CiAKICAgICB0
eXBlZGVmIEhhc2hNYXA8VGlsZUluZGV4LCBUaWxlSW5mbz4gVGlsZU1hcDsKICAgICBUaWxlTWFw
IG1fdGlsZXM7CkBAIC0xOTcsNiArMjAwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdW5wYXJl
bnRzT2Zmc2NyZWVuVGlsZXM7CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVzRHJhd2luZzsKICAgICBi
b29sIG1fdGlsZXNBcmVPcGFxdWU7CisgICAgYm9vbCBtX2NsaXBzVG9FeHBvc2VkUmVjdDsKIAog
ICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBtX3RpbGVEZWJ1Z0JvcmRlckNvbG9yOwogICAgIGZs
b2F0IG1fdGlsZURlYnVnQm9yZGVyV2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbQppbmRleCBhNmQzZTI3Li5kNmVjMjg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGls
ZUNhY2hlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9U
aWxlQ2FjaGUubW0KQEAgLTEwOSw2ICsxMDksNyBAQCBUaWxlQ2FjaGU6OlRpbGVDYWNoZShXZWJU
aWxlQ2FjaGVMYXllciogdGlsZUNhY2hlTGF5ZXIpCiAgICAgLCBtX3VucGFyZW50c09mZnNjcmVl
blRpbGVzKGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlc0RyYXdpbmcoZmFsc2UpCiAgICAgLCBt
X3RpbGVzQXJlT3BhcXVlKGZhbHNlKQorICAgICwgbV9jbGlwc1RvRXhwb3NlZFJlY3QoZmFsc2Up
CiAgICAgLCBtX3RpbGVEZWJ1Z0JvcmRlcldpZHRoKDApCiAgICAgLCBtX2luZGljYXRvck1vZGUo
VGhyZWFkZWRTY3JvbGxpbmdJbmRpY2F0aW9uKQogewpAQCAtMzA1LDYgKzMwNiwyNyBAQCB2b2lk
IFRpbGVDYWNoZTo6c2V0VmlzaWJsZVJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpCiAg
ICAgcmV2YWxpZGF0ZVRpbGVzKCk7CiB9CiAKK3ZvaWQgVGlsZUNhY2hlOjpzZXRFeHBvc2VkUmVj
dChjb25zdCBJbnRSZWN0JiBleHBvc2VkUmVjdCkKK3sKKyAgICBpZiAobV9leHBvc2VkUmVjdCA9
PSBleHBvc2VkUmVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9leHBvc2VkUmVjdCA9IGV4
cG9zZWRSZWN0OworICAgIHJldmFsaWRhdGVUaWxlcygpOworfQorCit2b2lkIFRpbGVDYWNoZTo6
c2V0Q2xpcHNUb0V4cG9zZWRSZWN0KGJvb2wgY2xpcHNUb0V4cG9zZWRSZWN0KQoreworICAgIGlm
IChtX2NsaXBzVG9FeHBvc2VkUmVjdCA9PSBjbGlwc1RvRXhwb3NlZFJlY3QpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fY2xpcHNUb0V4cG9zZWRSZWN0ID0gY2xpcHNUb0V4cG9zZWRSZWN0Owor
CisgICAgLy8gR29pbmcgZnJvbSBub3QgY2xpcHBpbmcgdG8gY2xpcHBpbmcsIHdlIGRvbid0IG5l
ZWQgdG8gcmV2YWxpZGF0ZSByaWdodCBhd2F5LgorICAgIGlmIChjbGlwc1RvRXhwb3NlZFJlY3Qp
CisgICAgICAgIHJldmFsaWRhdGVUaWxlcygpOworfQorCiB2b2lkIFRpbGVDYWNoZTo6cHJlcG9w
dWxhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgZW5zdXJlVGlsZXNGb3JSZWN0
KHJlY3QpOwpAQCAtMzkzLDE3ICs0MTUsMjIgQEAgdm9pZCBUaWxlQ2FjaGU6OmdldFRpbGVJbmRl
eFJhbmdlRm9yUmVjdChjb25zdCBJbnRSZWN0JiByZWN0LCBUaWxlSW5kZXgmIHRvcExlZnQKIAog
SW50UmVjdCBUaWxlQ2FjaGU6OmNvbXB1dGVUaWxlQ292ZXJhZ2VSZWN0KGNvbnN0IEludFJlY3Qm
IHByZXZpb3VzVmlzaWJsZVJlY3QpIGNvbnN0CiB7CisgICAgSW50UmVjdCBpbnRlcnNlY3RlZFZp
c2libGVSZWN0ID0gbV92aXNpYmxlUmVjdDsKKworICAgIGlmIChtX2NsaXBzVG9FeHBvc2VkUmVj
dCkKKyAgICAgICAgaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC5pbnRlcnNlY3QobV9leHBvc2VkUmVj
dCk7CisKICAgICAvLyBJZiB0aGUgcGFnZSBpcyBub3QgaW4gYSB3aW5kb3cgKGZvciBleGFtcGxl
IGlmIGl0J3MgaW4gYSBiYWNrZ3JvdW5kIHRhYiksIHdlIGxpbWl0IHRoZSB0aWxlIGNvdmVyYWdl
IHJlY3QgdG8gdGhlIHZpc2libGUgcmVjdC4KICAgICAvLyBGdXJ0aGVybW9yZSwgaWYgdGhlIHBh
Z2UgY2FuJ3QgaGF2ZSBzY3JvbGxiYXJzIChmb3IgZXhhbXBsZSBpZiBpdHMgYm9keSBlbGVtZW50
IGhhcyBvdmVyZmxvdzpoaWRkZW4pIGl0J3MgdmVyeSB1bmxpa2VseSB0aGF0IHRoZQogICAgIC8v
IHBhZ2Ugd2lsbCBldmVyIGJlIHNjcm9sbGVkIHNvIHdlIGxpbWl0IHRoZSB0aWxlIGNvdmVyYWdl
IHJlY3QgYXMgd2VsbC4KICAgICBpZiAoIW1faXNJbldpbmRvdyB8fCBtX3RpbGVDb3ZlcmFnZSAm
IENvdmVyYWdlRm9yU2xvd1Njcm9sbGluZykKLSAgICAgICAgcmV0dXJuIG1fdmlzaWJsZVJlY3Q7
CisgICAgICAgIHJldHVybiBpbnRlcnNlY3RlZFZpc2libGVSZWN0OwogCi0gICAgYm9vbCBsYXJn
ZVZpc2libGVSZWN0Q2hhbmdlID0gIXByZXZpb3VzVmlzaWJsZVJlY3QuaXNFbXB0eSgpICYmICFt
X3Zpc2libGVSZWN0LmludGVyc2VjdHMocHJldmlvdXNWaXNpYmxlUmVjdCk7CisgICAgYm9vbCBs
YXJnZVZpc2libGVSZWN0Q2hhbmdlID0gIXByZXZpb3VzVmlzaWJsZVJlY3QuaXNFbXB0eSgpICYm
ICFpbnRlcnNlY3RlZFZpc2libGVSZWN0LmludGVyc2VjdHMocHJldmlvdXNWaXNpYmxlUmVjdCk7
CiAgICAgCiAgICAgLy8gRklYTUU6IGxvb2sgYXQgaG93IGZhciB0aGUgZG9jdW1lbnQgY2FuIHNj
cm9sbCBpbiBlYWNoIGRpbWVuc2lvbi4KLSAgICBpbnQgY292ZXJhZ2VIb3Jpem9udGFsU2l6ZSA9
IG1fdmlzaWJsZVJlY3Qud2lkdGgoKTsKLSAgICBpbnQgY292ZXJhZ2VWZXJ0aWNhbFNpemUgPSBt
X3Zpc2libGVSZWN0LmhlaWdodCgpOworICAgIGludCBjb3ZlcmFnZUhvcml6b250YWxTaXplID0g
aW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC53aWR0aCgpOworICAgIGludCBjb3ZlcmFnZVZlcnRpY2Fs
U2l6ZSA9IGludGVyc2VjdGVkVmlzaWJsZVJlY3QuaGVpZ2h0KCk7CiAgICAgCiAgICAgLy8gSW5m
bGF0ZSB0aGUgY292ZXJhZ2UgcmVjdCBzbyB0aGF0IGl0IGNvdmVycyAyeCBvZiB0aGUgdmlzaWJs
ZSB3aWR0aCBhbmQgM3ggb2YgdGhlIHZpc2libGUgaGVpZ2h0LgogICAgIC8vIFRoZXNlIHZhbHVl
cyB3ZXJlIGNob3NlbiBiZWNhdXNlIGl0J3MgbW9yZSBjb21tb24gdG8gaGF2ZSB0YWxsIHBhZ2Vz
IGFuZCB0byBzY3JvbGwgdmVydGljYWxseSwKQEAgLTQxNiwxMSArNDQzLDExIEBAIEludFJlY3Qg
VGlsZUNhY2hlOjpjb21wdXRlVGlsZUNvdmVyYWdlUmVjdChjb25zdCBJbnRSZWN0JiBwcmV2aW91
c1Zpc2libGVSZWN0KSBjCiAKICAgICAvLyBEb24ndCBleHRlbmQgY292ZXJhZ2UgYmVmb3JlIDAg
b3IgYWZ0ZXIgdGhlIGVuZC4KICAgICBJbnRSZWN0IGNvdmVyYWdlQm91bmRzID0gYm91bmRzKCk7
Ci0gICAgaW50IGNvdmVyYWdlTGVmdCA9IG1fdmlzaWJsZVJlY3QueCgpIC0gKGNvdmVyYWdlSG9y
aXpvbnRhbFNpemUgLSBtX3Zpc2libGVSZWN0LndpZHRoKCkpIC8gMjsKKyAgICBpbnQgY292ZXJh
Z2VMZWZ0ID0gaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC54KCkgLSAoY292ZXJhZ2VIb3Jpem9udGFs
U2l6ZSAtIGludGVyc2VjdGVkVmlzaWJsZVJlY3Qud2lkdGgoKSkgLyAyOwogICAgIGNvdmVyYWdl
TGVmdCA9IG1pbihjb3ZlcmFnZUxlZnQsIGNvdmVyYWdlQm91bmRzLm1heFgoKSAtIGNvdmVyYWdl
SG9yaXpvbnRhbFNpemUpOwogICAgIGNvdmVyYWdlTGVmdCA9IG1heChjb3ZlcmFnZUxlZnQsIGNv
dmVyYWdlQm91bmRzLngoKSk7CiAKLSAgICBpbnQgY292ZXJhZ2VUb3AgPSBtX3Zpc2libGVSZWN0
LnkoKSAtIChjb3ZlcmFnZVZlcnRpY2FsU2l6ZSAtIG1fdmlzaWJsZVJlY3QuaGVpZ2h0KCkpIC8g
MjsKKyAgICBpbnQgY292ZXJhZ2VUb3AgPSBpbnRlcnNlY3RlZFZpc2libGVSZWN0LnkoKSAtIChj
b3ZlcmFnZVZlcnRpY2FsU2l6ZSAtIGludGVyc2VjdGVkVmlzaWJsZVJlY3QuaGVpZ2h0KCkpIC8g
MjsKICAgICBjb3ZlcmFnZVRvcCA9IG1pbihjb3ZlcmFnZVRvcCwgY292ZXJhZ2VCb3VuZHMubWF4
WSgpIC0gY292ZXJhZ2VWZXJ0aWNhbFNpemUpOwogICAgIGNvdmVyYWdlVG9wID0gbWF4KGNvdmVy
YWdlVG9wLCBjb3ZlcmFnZUJvdW5kcy55KCkpOwogCkBAIC01NDcsNyArNTc0LDEyIEBAIHZvaWQg
VGlsZUNhY2hlOjpyZXZhbGlkYXRlVGlsZXMoVGlsZVZhbGlkYXRpb25Qb2xpY3lGbGFncyBmb3Jl
Z3JvdW5kVmFsaWRhdGlvblBvCiAgICAgaWYgKCFwbGF0Zm9ybUxheWVyKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAobV92aXNpYmxlUmVjdC5pc0VtcHR5KCkgfHwgYm91bmRzKCkuaXNFbXB0
eSgpKQorICAgIEludFJlY3QgaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdCA9IG1fdmlzaWJsZVJlY3Q7
CisKKyAgICBpZiAobV9jbGlwc1RvRXhwb3NlZFJlY3QpCisgICAgICAgIGludGVyc2VjdGVkVmlz
aWJsZVJlY3QuaW50ZXJzZWN0KG1fZXhwb3NlZFJlY3QpOworCisgICAgaWYgKGludGVyc2VjdGVk
VmlzaWJsZVJlY3QuaXNFbXB0eSgpIHx8IGJvdW5kcygpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIAogICAgIFRpbGVWYWxpZGF0aW9uUG9saWN5RmxhZ3MgdmFsaWRhdGlvblBvbGlj
eSA9IG1faXNJbldpbmRvdyA/IGZvcmVncm91bmRWYWxpZGF0aW9uUG9saWN5IDogYmFja2dyb3Vu
ZFZhbGlkYXRpb25Qb2xpY3k7CkBAIC02NTMsNyArNjg1LDcgQEAgdm9pZCBUaWxlQ2FjaGU6OnJl
dmFsaWRhdGVUaWxlcyhUaWxlVmFsaWRhdGlvblBvbGljeUZsYWdzIGZvcmVncm91bmRWYWxpZGF0
aW9uUG8KICAgICBpZiAobV90aWxlZFNjcm9sbGluZ0luZGljYXRvckxheWVyKQogICAgICAgICB1
cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKIAotICAgIG1fdmlzaWJsZVJlY3RBdExhc3RSZXZhbGlk
YXRlID0gbV92aXNpYmxlUmVjdDsKKyAgICBtX3Zpc2libGVSZWN0QXRMYXN0UmV2YWxpZGF0ZSA9
IGludGVyc2VjdGVkVmlzaWJsZVJlY3Q7CiAKICAgICBpZiAoZGlydHlSZWN0cy5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2NGYwMTliLi44MzQ5ODNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTMtMDEtMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xhbXAgVGlsZUNhY2hlIHZpc2libGVSZWN0IHRv
IFdLVmlldydzIHZpc2libGVSZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDY2MDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODQzMTY0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgY2xp
ZW50cyBleHBhbmQgdGhlIFdLVmlldyB0byBiZSBtdWNoIGxhcmdlciB0aGFuIHdoYXQgaXMgdmlz
aWJsZSBvbiBzY3JlZW4sIGFuZAorICAgICAgICBjb250cm9sIHNjcm9sbGluZyB3aXRoIHRoZWly
IG93biB2aWV3LiBDdXJyZW50bHksIHdlIHdpbGwgY3JlYXRlIHRpbGVzIGZvciB0aGUgZW50aXJl
CisgICAgICAgIHZpZXcsIGNvbnN1bWluZyBhIGdyZWF0IGRlYWwgb2YgbWVtb3J5LCBhbmQgY2Fu
IHNvbWV0aW1lcyBmYWN0b3Igc2Nyb2xsYmFycyB3aGljaCBjYW4KKyAgICAgICAgbmV2ZXIgZXhp
c3QgaW50byBsYXlvdXQuIFByb3ZpZGUgV0tWaWV3IFNQSSAoc2V0TWFpbkZyYW1lSXNTY3JvbGxh
YmxlOikgdG8gZHJvcCBpbnRvCisgICAgICAgIGEgbW9kZSB3aGVyZSB3ZSBkaXNhYmxlIG1haW4g
ZnJhbWUgc2Nyb2xsaW5nIGFuZCByZXNwZWN0IHRoZSBXS1ZpZXcncyB2aXNpYmxlUmVjdCB3aGVu
CisgICAgICAgIGNyZWF0aW5nIHRpbGVzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgc2V0RnJhbWVTaXplOl0pOiBVcGRhdGUgdGhl
IHBhZ2UncyB2aWV3RXhwb3NlZFJlY3QgZnJvbSBvdXIgdmlzaWJsZVJlY3QuCisgICAgICAgICgt
W1dLVmlldyBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc10pOiBVcGRhdGUgdGhlIHBhZ2UncyB2
aWV3RXhwb3NlZFJlY3QgZnJvbSBvdXIgdmlzaWJsZVJlY3QuCisgICAgICAgICgtW1dLVmlldyBp
bml0V2l0aEZyYW1lOmNvbnRleHRSZWY6cGFnZUdyb3VwUmVmOnJlbGF0ZWRUb1BhZ2U6XSk6IFRo
ZSBtYWluIGZyYW1lIGlzIHNjcm9sbGFibGUgYnkgZGVmYXVsdC4KKyAgICAgICAgKC1bV0tWaWV3
IGVuYWJsZUZyYW1lU2l6ZVVwZGF0ZXNdKTogSWYgZnJhbWUgc2l6ZSB1cGRhdGVzIGJlY29tZSBl
bmFibGVkLCB1cGRhdGUgdGhlCisgICAgICAgIHBhZ2UncyB2aWV3RXhwb3NlZFJlY3QgZnJvbSBv
dXIgdmlzaWJsZVJlY3QuCisgICAgICAgICgtW1dLVmlldyBzZXRNYWluRnJhbWVJc1Njcm9sbGFi
bGU6XSk6IEFkanVzdCB3aGV0aGVyIHRoZSBtYWluIGZyYW1lIGlzIHNjcm9sbGFibGUsIGFuZCB1
cGRhdGUKKyAgICAgICAgdGhlIHBhZ2UncyB2aWV3RXhwb3NlZFJlY3QgaWYgbmVlZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld1ByaXZhdGUuaDogQWRkZWQgc2V0TWFpbkZy
YW1lSXNTY3JvbGxhYmxlOi4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgIChXZWJQYWdlUHJveHkpOiBBZGQgdmlld0V4cG9zZWRSZWN0Q2hhbmdlZC9zZXRNYWlu
RnJhbWVJc1Njcm9sbGFibGUuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlN
YWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld0V4cG9zZWRSZWN0Q2hh
bmdlZCk6IEZvcndhcmQgdmlld0V4cG9zZWRSZWN0Q2hhbmdlZCB0byBXZWJQYWdlLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZSk6IEZvcndh
cmQgc2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlIHRvIFdlYlBhZ2UuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQ
YWdlKTogRGlzYWJsZSBzY3JvbGxiYXJzIGFuZCBzY3JvbGxpbmcgaWYKKyAgICAgICAgbWFpbiBm
cmFtZSBzY3JvbGxhYmlsaXR5IGlzIGRpc2FibGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6c2V0RXhw
b3NlZFJlY3QpOiBBZGRlZCBlbXB0eSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYTo6bWFpbkZyYW1lU2Nyb2xsYWJpbGl0eUNoYW5nZWQpOiBBZGRl
ZCBlbXB0eSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoRHJhd2luZ0FyZWEpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQpOiBEb24ndCBuZWVkIFdlYkNv
cmU6OiBuYW1lc3BhY2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnZpZXdFeHBvc2VkUmVj
dENoYW5nZWQpOiBGb3J3YXJkIGV4cG9zZWQgcmVjdCBjaGFuZ2VzIHRvIERyYXdpbmdBcmVhIChv
bmx5IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhIGNhcmVzLCBmb3Igbm93KS4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKTogRm9yd2FyZCBz
Y3JvbGxhYmlsaXR5IGNoYW5nZXMgdG8gRHJhd2luZ0FyZWEgYW5kIHRoZSBtYWluIEZyYW1lVmll
dy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKTogRG9uJ3QgbmVl
ZCBXZWJDb3JlOjogbmFtZXNwYWNlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgIChXZWJQYWdlKTogQWRkIG1haW5GcmFtZUlzU2Nyb2xsYWJsZSwgdmll
d0V4cG9zZWRSZWN0Q2hhbmdlZCwgc2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlLCBhbmQgc3RvcmFn
ZSBmb3IgbV9tYWluRnJhbWVJc1Njcm9sbGFibGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
Om1haW5GcmFtZUlzU2Nyb2xsYWJsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW46IEFkZCBWaWV3RXhwb3NlZFJlY3RDaGFuZ2VkIGFuZCBTZXRNYWlu
RnJhbWVJc1Njcm9sbGFibGUgbWVzc2FnZXMuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAgICAgICAoVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRFeHBvc2VkUmVjdCk6IEZvcndhcmQgbmV3IGV4
cG9zZWQgcmVjdCB0byBUaWxlZEJhY2tpbmcgKG9ubHkgVGlsZUNhY2hlIGNhcmVzLCBmb3Igbm93
KS4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6Om1haW5G
cmFtZVNjcm9sbGFiaWxpdHlDaGFuZ2VkKTogQXNrIFRpbGVkQmFja2luZyB0byBjbGlwIHRvIHRo
ZSBleHBvc2VkUmVjdCBpZiBtYWluIGZyYW1lIHNjcm9sbGluZyBpcyBkaXNhYmxlZC4KKyAgICAg
ICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5
KTogVXNlIHNpemUgaW5zdGVhZCBvZiB2aWV3U2l6ZSBpbiBjYXNlIHdlJ3ZlIGNoYW5nZWQgaXQg
YmVjYXVzZSBvZiBtX21pbmltdW1MYXlvdXRXaWR0aC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKTogVXBkYXRl
IGV4cG9zZWRSZWN0IGFuZCBjbGlwc1RvRXhwb3NlZFJlY3QuCisKKzIwMTMtMDEtMTAgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnZpZXdFeHBv
c2VkUmVjdENoYW5nZWQpOiAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OiBBZGQgdmlld0V4cG9zZWRSZWN0Q2hhbmdlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkIFZpZXdFeHBvc2VkUmVjdENoYW5nZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YS5oOgorICAgICAgICAoVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEpOiBBZGQgc2V0RXhw
b3NlZFJlY3QuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnNldEV4cG9zZWRSZWN0KTogCisKIDIwMTMtMDEtMTUgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgdGlsZWQgV0tWaWV3
cyB0byBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggYWQ1OThmYy4uNThjYTY2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMjEwLDYgKzIxMCw3IEBAIHN0
cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKICAgICBTdHJpbmcgX3By
b21pc2VkVVJMOwogCiAgICAgTlNTaXplIF9pbnRyaW5zaWNDb250ZW50U2l6ZTsKKyAgICBCT09M
IF9tYWluRnJhbWVJc1Njcm9sbGFibGU7CiB9CiAKIEBlbmQKQEAgLTM2Miw5ICszNjMsMTIgQEAg
c3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAgICAgICBfZGF0
YS0+X3dpbmRvd0hhc1ZhbGlkQmFja2luZ1N0b3JlID0gTk87CiAKICAgICBbc3VwZXIgc2V0RnJh
bWVTaXplOnNpemVdOwotICAgIAotICAgIGlmICghW3NlbGYgZnJhbWVTaXplVXBkYXRlc0Rpc2Fi
bGVkXSkKKworICAgIGlmICghW3NlbGYgZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVkXSkgeworICAg
ICAgICBpZiAoIV9kYXRhLT5fbWFpbkZyYW1lSXNTY3JvbGxhYmxlKQorICAgICAgICAgICAgX2Rh
dGEtPl9wYWdlLT52aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGVuY2xvc2luZ0ludFJlY3QoW3NlbGYg
dmlzaWJsZVJlY3RdKSk7CiAgICAgICAgIFtzZWxmIF9zZXREcmF3aW5nQXJlYVNpemU6c2l6ZV07
CisgICAgfQogfQogCiAtICh2b2lkKV91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzCkBAIC0zNzcs
NiArMzgxLDggQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewog
ICAgIE5TUG9pbnQgYWNjZXNzaWJpbGl0eVBvc2l0aW9uID0gW1tzZWxmIGFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlQb3NpdGlvbkF0dHJpYnV0ZV0gcG9pbnRWYWx1
ZV07CiAgICAgCiAgICAgX2RhdGEtPl9wYWdlLT53aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChl
bmNsb3NpbmdJbnRSZWN0KHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcyksIGVuY2xvc2lu
Z0ludFJlY3Qodmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyksIEludFBvaW50KGFjY2Vzc2li
aWxpdHlQb3NpdGlvbikpOworICAgIGlmICghX2RhdGEtPl9tYWluRnJhbWVJc1Njcm9sbGFibGUp
CisgICAgICAgIF9kYXRhLT5fcGFnZS0+dmlld0V4cG9zZWRSZWN0Q2hhbmdlZChlbmNsb3NpbmdJ
bnRSZWN0KFtzZWxmIHZpc2libGVSZWN0XSkpOwogfQogCiAtICh2b2lkKXJlbmV3R1N0YXRlCkBA
IC0yOTQ0LDYgKzI5NTAsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5h
bWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogI2VuZGlmCiAgICAgX2RhdGEtPl9tb3VzZURvd25F
dmVudCA9IG5pbDsKICAgICBfZGF0YS0+X2lnbm9yaW5nTW91c2VEcmFnZ2VkRXZlbnRzID0gTk87
CisgICAgX2RhdGEtPl9tYWluRnJhbWVJc1Njcm9sbGFibGUgPSBZRVM7CiAKICAgICBfZGF0YS0+
X2ludHJpbnNpY0NvbnRlbnRTaXplID0gTlNNYWtlU2l6ZShOU1ZpZXdOb0luc3RyaW5zaWNNZXRy
aWMsIE5TVmlld05vSW5zdHJpbnNpY01ldHJpYyk7CiAKQEAgLTMwMzAsOCArMzAzNywxMSBAQCBz
dGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpw
YXRoKQogICAgIGlmICghX2RhdGEtPl9mcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRDb3VudCkKICAg
ICAgICAgcmV0dXJuOwogICAgIAotICAgIGlmICghKC0tX2RhdGEtPl9mcmFtZVNpemVVcGRhdGVz
RGlzYWJsZWRDb3VudCkpCisgICAgaWYgKCEoLS1fZGF0YS0+X2ZyYW1lU2l6ZVVwZGF0ZXNEaXNh
YmxlZENvdW50KSkgeworICAgICAgICBpZiAoIV9kYXRhLT5fbWFpbkZyYW1lSXNTY3JvbGxhYmxl
KQorICAgICAgICAgICAgX2RhdGEtPl9wYWdlLT52aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGVuY2xv
c2luZ0ludFJlY3QoW3NlbGYgdmlzaWJsZVJlY3RdKSk7CiAgICAgICAgIFtzZWxmIF9zZXREcmF3
aW5nQXJlYVNpemU6W3NlbGYgZnJhbWVdLnNpemVdOworICAgIH0KIH0KIAogLSAoQk9PTClmcmFt
ZVNpemVVcGRhdGVzRGlzYWJsZWQKQEAgLTMwNTMsNiArMzA2MywxNiBAQCBzdGF0aWMgTlNTdHJp
bmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIFdL
SGlkZVdvcmREZWZpbml0aW9uV2luZG93KCk7CiB9CiAKKy0gKHZvaWQpc2V0TWFpbkZyYW1lSXNT
Y3JvbGxhYmxlOihib29sKWlzU2Nyb2xsYWJsZQoreworICAgIF9kYXRhLT5fbWFpbkZyYW1lSXNT
Y3JvbGxhYmxlID0gaXNTY3JvbGxhYmxlOworCisgICAgaWYgKCFpc1Njcm9sbGFibGUpCisgICAg
ICAgIF9kYXRhLT5fcGFnZS0+dmlld0V4cG9zZWRSZWN0Q2hhbmdlZChlbmNsb3NpbmdJbnRSZWN0
KFtzZWxmIHZpc2libGVSZWN0XSkpOworCisgICAgX2RhdGEtPl9wYWdlLT5zZXRNYWluRnJhbWVJ
c1Njcm9sbGFibGUoaXNTY3JvbGxhYmxlKTsKK30KKwogLSAoQ0dGbG9hdCltaW5pbXVtTGF5b3V0
V2lkdGgKIHsKICAgICByZXR1cm4gX2RhdGEtPl9wYWdlLT5taW5pbXVtTGF5b3V0V2lkdGgoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld1ByaXZhdGUuaApp
bmRleCAyMTYxZWI3Li5iODQwNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3UHJpdmF0ZS5oCkBAIC01MCw2ICs1MCw4IEBACiAtICh2b2lkKXBlcmZv
cm1EaWN0aW9uYXJ5TG9va3VwQXRDdXJyZW50TW91c2VMb2NhdGlvbjsKICsgKHZvaWQpaGlkZVdv
cmREZWZpbml0aW9uV2luZG93OwogCistICh2b2lkKXNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZToo
Ym9vbClpc1Njcm9sbGFibGU7CisKIEBwcm9wZXJ0eSAocmVhZHdyaXRlKSBDR0Zsb2F0IG1pbmlt
dW1MYXlvdXRXaWR0aDsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IDZlYWYyZmYuLjU1MmRmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTM4OCw2ICszODgsOCBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIHZvaWQgdXBkYXRlV2luZG93SXNWaXNpYmxlKGJvb2wgd2luZG93SXNWaXNpYmxlKTsK
ICAgICB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpOworICAgIHZvaWQgdmlld0V4cG9zZWRSZWN0
Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBleHBvc2VkUmVjdCk7CisgICAgdm9pZCBz
ZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoYm9vbCBpc1Njcm9sbGFibGUpOwogCiAgICAgdm9pZCBz
ZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIFZlY3RvcjxXZWJDb3JlOjpDb21wb3Np
dGlvblVuZGVybGluZT4gdW5kZXJsaW5lcywgdWludDY0X3Qgc2VsZWN0aW9uU3RhcnQsIHVpbnQ2
NF90IHNlbGVjdGlvbkVuZCwgdWludDY0X3QgcmVwbGFjZW1lbnRSYW5nZVN0YXJ0LCB1aW50NjRf
dCByZXBsYWNlbWVudFJhbmdlRW5kKTsKICAgICB2b2lkIGNvbmZpcm1Db21wb3NpdGlvbigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRl
eCAxNWM1MGY3Li5hZjkzNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtMTM3LDYgKzEzNywyMiBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgSW50UmVjdCYgd2luZG93RnJhbWVJ
blNjcmVlbgogICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6V2luZG93QW5k
Vmlld0ZyYW1lc0NoYW5nZWQod2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCB2aWV3RnJh
bWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVzKSwgbV9w
YWdlSUQpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6dmlld0V4cG9zZWRSZWN0Q2hhbmdlZChj
b25zdCBJbnRSZWN0JiBleHBvc2VkUmVjdCkKK3sKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpWaWV3
RXhwb3NlZFJlY3RDaGFuZ2VkKGV4cG9zZWRSZWN0KSwgbV9wYWdlSUQpOworfQorCit2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKGJvb2wgaXNTY3JvbGxhYmxlKQor
eworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwcm9jZXNzKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZShpc1Njcm9s
bGFibGUpLCBtX3BhZ2VJRCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRDb21wb3NpdGlv
bihjb25zdCBTdHJpbmcmIHRleHQsIFZlY3RvcjxDb21wb3NpdGlvblVuZGVybGluZT4gdW5kZXJs
aW5lcywgdWludDY0X3Qgc2VsZWN0aW9uU3RhcnQsIHVpbnQ2NF90IHNlbGVjdGlvbkVuZCwgdWlu
dDY0X3QgcmVwbGFjZW1lbnRSYW5nZVN0YXJ0LCB1aW50NjRfdCByZXBsYWNlbWVudFJhbmdlRW5k
KQogewogICAgIGlmICghaXNWYWxpZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCmluZGV4IGY3NDU0NzMuLmJjNjg5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCkBAIC0xMjI4LDI2ICsxMjI4LDI5IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgIGJvb2wgaXNNYWluRnJhbWUg
PSB3ZWJQYWdlLT5tYWluV2ViRnJhbWUoKSA9PSBtX2ZyYW1lOwogICAgIGJvb2wgaXNUcmFuc3Bh
cmVudCA9ICF3ZWJQYWdlLT5kcmF3c0JhY2tncm91bmQoKTsKICAgICBib29sIHNob3VsZFVzZUZp
eGVkTGF5b3V0ID0gaXNNYWluRnJhbWUgJiYgd2ViUGFnZS0+dXNlRml4ZWRMYXlvdXQoKTsKKyAg
ICBib29sIHNob3VsZERpc2FibGVTY3JvbGxpbmcgPSBpc01haW5GcmFtZSAmJiAhd2ViUGFnZS0+
bWFpbkZyYW1lSXNTY3JvbGxhYmxlKCk7CisgICAgYm9vbCBzaG91bGRIaWRlU2Nyb2xsYmFycyA9
IHNob3VsZFVzZUZpeGVkTGF5b3V0IHx8IHNob3VsZERpc2FibGVTY3JvbGxpbmc7CiAgICAgSW50
UmVjdCBjdXJyZW50Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QgPSBtX2ZyYW1lLT5jb3JlRnJhbWUo
KS0+dmlldygpID8gbV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+Zml4ZWRWaXNpYmxlQ29u
dGVudFJlY3QoKSA6IEludFJlY3QoKTsKIAogICAgIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlID0gbV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigp
LT5yZXNwb25zZSgpOwogICAgIG1fZnJhbWVIYXNDdXN0b21SZXByZXNlbnRhdGlvbiA9IGlzTWFp
bkZyYW1lICYmIHdlYlBhZ2UtPnNob3VsZFVzZUN1c3RvbVJlcHJlc2VudGF0aW9uRm9yUmVzcG9u
c2UocmVzcG9uc2UpOwogICAgIG1fZnJhbWVDYW1lRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOwogCisg
ICAgU2Nyb2xsYmFyTW9kZSBkZWZhdWx0U2Nyb2xsYmFyTW9kZSA9IHNob3VsZEhpZGVTY3JvbGxi
YXJzID8gU2Nyb2xsYmFyQWx3YXlzT2ZmIDogU2Nyb2xsYmFyQXV0bzsKKworICAgIG1fZnJhbWUt
PmNvcmVGcmFtZSgpLT5jcmVhdGVWaWV3KHdlYlBhZ2UtPnNpemUoKSwgYmFja2dyb3VuZENvbG9y
LCBpc1RyYW5zcGFyZW50LAorICAgICAgICBJbnRTaXplKCksIGN1cnJlbnRGaXhlZFZpc2libGVD
b250ZW50UmVjdCwgc2hvdWxkVXNlRml4ZWRMYXlvdXQsCisgICAgICAgIGRlZmF1bHRTY3JvbGxi
YXJNb2RlLCAvKiBsb2NrICovIHNob3VsZEhpZGVTY3JvbGxiYXJzLCBkZWZhdWx0U2Nyb2xsYmFy
TW9kZSwgLyogbG9jayAqLyBzaG91bGRIaWRlU2Nyb2xsYmFycyk7CisKKyAgICBtX2ZyYW1lLT5j
b3JlRnJhbWUoKS0+dmlldygpLT5zZXRQcm9oaWJpdHNTY3JvbGxpbmcoc2hvdWxkRGlzYWJsZVNj
cm9sbGluZyk7CisKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBpZiAoc2hvdWxk
VXNlRml4ZWRMYXlvdXQpIHsKLSAgICAgICAgbV9mcmFtZS0+Y29yZUZyYW1lKCktPmNyZWF0ZVZp
ZXcod2ViUGFnZS0+c2l6ZSgpLCBiYWNrZ3JvdW5kQ29sb3IsIGlzVHJhbnNwYXJlbnQsCi0gICAg
ICAgICAgICBJbnRTaXplKCksIGN1cnJlbnRGaXhlZFZpc2libGVDb250ZW50UmVjdCwgc2hvdWxk
VXNlRml4ZWRMYXlvdXQsCi0gICAgICAgICAgICBTY3JvbGxiYXJBbHdheXNPZmYsIC8qIGxvY2sg
Ki8gdHJ1ZSwgU2Nyb2xsYmFyQWx3YXlzT2ZmLCAvKiBsb2NrICovIHRydWUpOwotCiAgICAgICAg
IG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCktPnNldERlbGVnYXRlc1Njcm9sbGluZyhzaG91
bGRVc2VGaXhlZExheW91dCk7CiAgICAgICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCkt
PnNldFBhaW50c0VudGlyZUNvbnRlbnRzKHNob3VsZFVzZUZpeGVkTGF5b3V0KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICNlbmRpZgotCi0gICAgbV9mcmFtZS0+Y29yZUZyYW1lKCktPmNyZWF0
ZVZpZXcod2ViUGFnZS0+c2l6ZSgpLCBiYWNrZ3JvdW5kQ29sb3IsIGlzVHJhbnNwYXJlbnQsCi0g
ICAgICAgIEludFNpemUoKSwgY3VycmVudEZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0LCBzaG91bGRV
c2VGaXhlZExheW91dCk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFNhdmVU
b1BhZ2VDYWNoZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5oCmluZGV4IGEwNWQwMDMuLjhjZmUyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC04NCw2ICs4NCw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5n
ZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIHsgfQogCisgICAgdmlydHVhbCB2b2lkIHNldEV4
cG9zZWRSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
bWFpbkZyYW1lU2Nyb2xsYWJpbGl0eUNoYW5nZWQoYm9vbCkgeyB9CisKICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFj
dG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
MjU5MDNhOC4uYjE2ZjExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtMjg5OSw3ICsyODk5LDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRXaW5k
b3dJc1Zpc2libGUoYm9vbCB3aW5kb3dJc1Zpc2libGUpCiAgICAgICAgICgqaXQpLT5zZXRXaW5k
b3dJc1Zpc2libGUod2luZG93SXNWaXNpYmxlKTsKIH0KIAotdm9pZCBXZWJQYWdlOjp3aW5kb3dB
bmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dGcmFtZUlu
U2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdGcmFtZUluV2lu
ZG93Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBhY2Nlc3NpYmlsaXR5Vmll
d0Nvb3JkaW5hdGVzKQordm9pZCBXZWJQYWdlOjp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChj
b25zdCBJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IEludFJl
Y3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGNvbnN0IEludFBvaW50JiBhY2Nlc3Np
YmlsaXR5Vmlld0Nvb3JkaW5hdGVzKQogewogICAgIG1fd2luZG93RnJhbWVJblNjcmVlbkNvb3Jk
aW5hdGVzID0gd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzOwogICAgIG1fdmlld0ZyYW1l
SW5XaW5kb3dDb29yZGluYXRlcyA9IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXM7CkBAIC0y
OTA5LDYgKzI5MDksMjIgQEAgdm9pZCBXZWJQYWdlOjp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdl
ZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2MKICAgICBmb3IgKEhhc2hT
ZXQ8UGx1Z2luVmlldyo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGx1Z2luVmlld3MuYmVnaW4o
KSwgZW5kID0gbV9wbHVnaW5WaWV3cy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICAo
Kml0KS0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93RnJhbWVJblNjcmVlbkNvb3Jk
aW5hdGVzLCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKIH0KKwordm9pZCBXZWJQYWdl
Ojp2aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGNvbnN0IEludFJlY3QmIGV4cG9zZWRSZWN0KQorewor
ICAgIG1fZHJhd2luZ0FyZWEtPnNldEV4cG9zZWRSZWN0KGV4cG9zZWRSZWN0KTsKK30KKwordm9p
ZCBXZWJQYWdlOjpzZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoYm9vbCBpc1Njcm9sbGFibGUpCit7
CisgICAgbV9tYWluRnJhbWVJc1Njcm9sbGFibGUgPSBpc1Njcm9sbGFibGU7CisgICAgbV9kcmF3
aW5nQXJlYS0+bWFpbkZyYW1lU2Nyb2xsYWJpbGl0eUNoYW5nZWQoaXNTY3JvbGxhYmxlKTsKKwor
ICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+
dmlldygpKSB7CisgICAgICAgIGZyYW1lVmlldy0+c2V0Q2FuSGF2ZVNjcm9sbGJhcnMoaXNTY3Jv
bGxhYmxlKTsKKyAgICAgICAgZnJhbWVWaWV3LT5zZXRQcm9oaWJpdHNTY3JvbGxpbmcoIWlzU2Ny
b2xsYWJsZSk7CisgICAgfQorfQogI2VuZGlmCiAKIGJvb2wgV2ViUGFnZTo6d2luZG93SXNGb2N1
c2VkKCkgY29uc3QKQEAgLTMyODMsNyArMzI5OSw3IEBAIHZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBh
Z2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludElu
CiB9CiAKICNpZiBQTEFURk9STShNQUMpCi12b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCB1aW50
NjRfdCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpkcmF3UmVjdFRvSW1hZ2UodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdlU2l6ZSwgdWludDY0X3QgY2FsbGJhY2tJRCkK
IHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS53ZWJGcmFtZShm
cmFtZUlEKTsKICAgICBGcmFtZSogY29yZUZyYW1lID0gZnJhbWUgPyBmcmFtZS0+Y29yZUZyYW1l
KCkgOiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggMWViNjMzMi4uMjc2YjZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC02MDIsNiArNjAyLDggQEAgcHVibGljOgogICAgIHZvaWQgc2F2ZVBE
RlRvRmlsZUluRG93bmxvYWRzRm9sZGVyKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUs
IGNvbnN0IFN0cmluZyYgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIGNvbnN0IHVpbnQ4X3QqIGRhdGEs
IHVuc2lnbmVkIGxvbmcgc2l6ZSk7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2F2ZVBE
RlRvVGVtcG9yYXJ5Rm9sZGVyQW5kT3BlbldpdGhOYXRpdmVBcHBsaWNhdGlvbihjb25zdCBTdHJp
bmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIG9yaWdpbmF0aW5nVVJMU3RyaW5n
LCBjb25zdCB1aW50OF90KiBkYXRhLCB1bnNpZ25lZCBsb25nIHNpemUsIGNvbnN0IFN0cmluZyYg
cGRmVVVJRCk7CisKKyAgICBib29sIG1haW5GcmFtZUlzU2Nyb2xsYWJsZSgpIHsgcmV0dXJuIG1f
bWFpbkZyYW1lSXNTY3JvbGxhYmxlOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTcxNyw2ICs3
MTksOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRXaW5kb3dJc1Zpc2libGUoYm9vbCB3aW5k
b3dJc1Zpc2libGUpOwogICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcyk7CisgICAgdm9pZCB2
aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGV4cG9zZWRSZWN0
KTsKKyAgICB2b2lkIHNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZShib29sIGlzU2Nyb2xsYWJsZSk7
CiAKICAgICBSZXRhaW5QdHI8UERGRG9jdW1lbnQ+IHBkZkRvY3VtZW50Rm9yUHJpbnRpbmdGcmFt
ZShXZWJDb3JlOjpGcmFtZSopOwogICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZE
b2N1bWVudCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8V2ViQ29y
ZTo6SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cyk7CkBAIC04MTQsNiArODE4LDggQEAgcHJpdmF0
ZToKICNpZiBQTEFURk9STShNQUMpCiAgICAgYm9vbCBtX3BkZlBsdWdpbkVuYWJsZWQ7CiAKKyAg
ICBib29sIG1fbWFpbkZyYW1lSXNTY3JvbGxhYmxlOworCiAgICAgLy8gV2hldGhlciB0aGUgY29u
dGFpbmluZyB3aW5kb3cgaXMgdmlzaWJsZSBvciBub3QuCiAgICAgYm9vbCBtX3dpbmRvd0lzVmlz
aWJsZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgppbmRleCAwMGNkZGRkLi45ODYxYjA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAt
MjU5LDYgKzI1OSw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgewogCiAgICAgU2V0V2luZG93SXNW
aXNpYmxlKGJvb2wgd2luZG93SXNWaXNpYmxlKQogICAgIFdpbmRvd0FuZFZpZXdGcmFtZXNDaGFu
Z2VkKFdlYkNvcmU6OkludFJlY3Qgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBXZWJD
b3JlOjpJbnRSZWN0IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OkludFBv
aW50IGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpCisgICAgVmlld0V4cG9zZWRSZWN0Q2hh
bmdlZChXZWJDb3JlOjpJbnRSZWN0IGV4cG9zZWRSZWN0KQorICAgIFNldE1haW5GcmFtZUlzU2Ny
b2xsYWJsZShib29sIGlzU2Nyb2xsYWJsZSkKICAgICBSZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2li
aWxpdHlUb2tlbnMoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSBlbGVtZW5Ub2tlbiwgQ29yZUlQQzo6
RGF0YVJlZmVyZW5jZSB3aW5kb3dUb2tlbikKICAgICBHZXRTdHJpbmdTZWxlY3Rpb25Gb3JQYXN0
ZWJvYXJkKCkgLT4gKFdURjo6U3RyaW5nIHN0cmluZ1ZhbHVlKQogICAgIEdldERhdGFTZWxlY3Rp
b25Gb3JQYXN0ZWJvYXJkKFdURjo6U3RyaW5nIHBhc3RlYm9hcmRUeXBlKSAtPiAoV2ViS2l0OjpT
aGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUsIHVpbnQ2NF90IHNpemUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKaW5kZXggYjY5YWY1Ny4uYmM1NzE2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaApAQCAtNzEsNiArNzEsOSBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVm
ZXJlbmNlc1N0b3JlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG1haW5GcmFtZUNvbnRl
bnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgT1ZFUlJJREU7CiAKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0RXhwb3NlZFJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBtYWluRnJhbWVTY3JvbGxhYmlsaXR5Q2hhbmdlZChib29s
KSBPVkVSUklERTsKKwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdVcGRh
dGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRnVuY3Rpb248dm9pZCAoKT4mKSBPVkVSUklERTsKIAog
ICAgIC8vIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQKQEAgLTExMyw2ICsxMTYsOCBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBtX2lzUGFpbnRpbmdTdXNwZW5kZWQ7CiAKKyAgICBXZWJDb3Jl
OjpJbnRSZWN0IG1fZXhwb3NlZFJlY3Q7CisKICAgICBkb3VibGUgbV9taW5pbXVtTGF5b3V0V2lk
dGg7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50SW50cmluc2ljQ29udGVudFNpemU7
CiAgICAgYm9vbCBtX2luVXBkYXRlR2VvbWV0cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYS5tbQppbmRleCBmMDI2NGY4Li5kZmFhMzE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTM0MSw2ICszNDEsMTcgQEAgdm9pZCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cmVzdW1lUGFpbnRpbmcoKQogICAgICAgICBt
X3dlYlBhZ2UtPmNvcmVQYWdlKCktPnJlc3VtZVNjcmlwdGVkQW5pbWF0aW9ucygpOwogfQogCit2
b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRFeHBvc2VkUmVjdChjb25zdCBJ
bnRSZWN0JiBleHBvc2VkUmVjdCkKK3sKKyAgICBtX2V4cG9zZWRSZWN0ID0gZXhwb3NlZFJlY3Q7
CisgICAgbWFpbkZyYW1lVGlsZWRCYWNraW5nKCktPnNldEV4cG9zZWRSZWN0KGV4cG9zZWRSZWN0
KTsKK30KKwordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6bWFpbkZyYW1lU2Ny
b2xsYWJpbGl0eUNoYW5nZWQoYm9vbCBpc1Njcm9sbGFibGUpCit7CisgICAgbWFpbkZyYW1lVGls
ZWRCYWNraW5nKCktPnNldENsaXBzVG9FeHBvc2VkUmVjdCghaXNTY3JvbGxhYmxlKTsKK30KKwog
dm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3Qg
SW50U2l6ZSYgdmlld1NpemUsIGRvdWJsZSBtaW5pbXVtTGF5b3V0V2lkdGgpCiB7CiAgICAgbV9p
blVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTsKQEAgLTM2Miw3ICszNzMsNyBAQCB2b2lkIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3
U2l6ZSwgZG91YgogICAgIG1fd2ViUGFnZS0+bGF5b3V0SWZOZWVkZWQoKTsKIAogICAgIGlmICht
X3BhZ2VPdmVybGF5TGF5ZXIpCi0gICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c2V0U2l6ZSh2
aWV3U2l6ZSk7CisgICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c2V0U2l6ZShzaXplKTsKIAog
ICAgIGlmICghbV9sYXllclRyZWVTdGF0ZUlzRnJvemVuKQogICAgICAgICBmbHVzaExheWVycygp
OwpAQCAtMzcwLDcgKzM4MSw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBkb3ViCiAgICAgW0NBVHJh
bnNhY3Rpb24gYmVnaW5dOwogICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllF
U107CiAKLSAgICBtX3Jvb3RMYXllci5nZXQoKS5mcmFtZSA9IENHUmVjdE1ha2UoMCwgMCwgdmll
d1NpemUud2lkdGgoKSwgdmlld1NpemUuaGVpZ2h0KCkpOworICAgIG1fcm9vdExheWVyLmdldCgp
LmZyYW1lID0gQ0dSZWN0TWFrZSgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOwog
CiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKICAgICAKQEAgLTQ1MCw4ICs0NjEsMTEgQEAg
dm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5
ZXIoQ0FMYXllciAqbGF5ZXIpCiAgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikKICAgICAgICAg
W21fcm9vdExheWVyLmdldCgpIGFkZFN1YmxheWVyOm1fcGFnZU92ZXJsYXlMYXllci0+cGxhdGZv
cm1MYXllcigpXTsKIAotICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IG1haW5G
cmFtZVRpbGVkQmFja2luZygpKQorICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9
IG1haW5GcmFtZVRpbGVkQmFja2luZygpKSB7CiAgICAgICAgIHRpbGVkQmFja2luZy0+c2V0QWdn
cmVzc2l2ZWx5UmV0YWluc1RpbGVzKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+
YWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVkKCkpOworICAgICAgICB0aWxlZEJhY2tpbmct
PnNldEV4cG9zZWRSZWN0KG1fZXhwb3NlZFJlY3QpOworICAgICAgICB0aWxlZEJhY2tpbmctPnNl
dENsaXBzVG9FeHBvc2VkUmVjdCghbV93ZWJQYWdlLT5tYWluRnJhbWVJc1Njcm9sbGFibGUoKSk7
CisgICAgfQogCiAgICAgdXBkYXRlRGVidWdJbmZvTGF5ZXIobV93ZWJQYWdlLT5jb3JlUGFnZSgp
LT5zZXR0aW5ncygpLT5zaG93VGlsZWRTY3JvbGxpbmdJbmRpY2F0b3IoKSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182828</attachid>
            <date>2013-01-15 12:42:39 -0800</date>
            <delta_ts>2013-01-15 13:33:56 -0800</delta_ts>
            <desc>preemptive style fix</desc>
            <filename>setMainFrameIsScrollable.diff</filename>
            <type>text/plain</type>
            <size>29206</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiY2I0YzMwLi43MmJmNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTMtMDEtMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgQ2xhbXAgVGlsZUNhY2hlIHZpc2libGVSZWN0IHRvIFdLVmlldydzIHZpc2libGVS
ZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY2
MDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODQzMTY0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRC
YWNraW5nLmg6CisgICAgICAgIChUaWxlZEJhY2tpbmcpOiBBZGQgc2V0RXhwb3NlZFJlY3QgYW5k
IHNldENsaXBzVG9FeHBvc2VkUmVjdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvVGlsZUNhY2hlLmg6CisgICAgICAgIChUaWxlQ2FjaGUpOiBBZGQgc2V0RXhwb3NlZFJlY3Qs
IHNldENsaXBzVG9FeHBvc2VkUmVjdCwgYW5kIHN0b3JhZ2UgZm9yIHRoZWlyIHJlc3BlY3RpdmUg
dmFsdWVzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW06
CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ2FjaGU6OlRpbGVDYWNoZSk6IEluaXRpYWxpemUgbV9j
bGlwc1RvRXhwb3NlZFJlY3QgdG8gZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpUaWxlQ2FjaGU6
OnNldEV4cG9zZWRSZWN0KTogVXBkYXRlIGV4cG9zZWRSZWN0IGFuZCByZXZhbGlkYXRlIHRpbGVz
LgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNhY2hlOjpzZXRDbGlwc1RvRXhwb3NlZFJlY3QpOiBV
cGRhdGUgY2xpcHNUb0V4cG9zZWRSZWN0IGFuZCByZXZhbGlkYXRlIHRpbGVzOworICAgICAgICBp
ZiB3ZSdyZSBnb2luZyBmcm9tIHVuY2xpcHBlZCB0byBjbGlwcGVkLCB3ZSBhbHJlYWR5IGhhdmUg
dGlsZXMsIHNvIHdlIGNhbiBza2lwIHRpbGUgcmV2YWxpZGF0aW9uLgorICAgICAgICAoV2ViQ29y
ZTo6VGlsZUNhY2hlOjpjb21wdXRlVGlsZUNvdmVyYWdlUmVjdCk6IEludGVyc2VjdCBleGlzaXRp
bmcgdmlzaWJsZSByZWN0IHdpdGgKKyAgICAgICAgZXhwb3NlZCByZWN0IHRvIGdldCB0aGUgdmlz
aWJsZSByZWN0IHdlIGFjdHVhbGx5IGNhcmUgYWJvdXQuCisgICAgICAgIChXZWJDb3JlOjpUaWxl
Q2FjaGU6OnJldmFsaWRhdGVUaWxlcyk6IERpdHRvLgorCiAyMDEzLTAxLTE1ICBaYW4gRG9iZXJz
ZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS10gRW5hYmxlIFBlcmZv
cm1hbmNlIFRpbWVsaW5lLCBSZXNvdXJjZSBUaW1pbmcsIE5hdmlnYXRpb24gVGltaW5nIGZlYXR1
cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJh
Y2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5o
CmluZGV4IDQxYjMzNmUuLmEwMGQwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCkBAIC00Nyw2ICs0Nyw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZVJlY3QoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0
dWFsIEludFJlY3QgdmlzaWJsZVJlY3QoKSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0RXhwb3NlZFJlY3QoY29uc3QgSW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
Q2xpcHNUb0V4cG9zZWRSZWN0KGJvb2wpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBwcmVwb3B1
bGF0ZVJlY3QoY29uc3QgSW50UmVjdCYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0lu
V2luZG93KGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9UaWxlQ2FjaGUuaAppbmRleCBhZTA0N2UyLi4xZGZjOGZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5oCkBA
IC0xMDYsNiArMTA2LDggQEAgcHJpdmF0ZToKIAogICAgIC8vIFRpbGVkQmFja2luZyBtZW1iZXIg
ZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlUmVjdChjb25zdCBJbnRSZWN0
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IEludFJl
Y3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpcHNUb0V4cG9zZWRSZWN0KGJv
b2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwcmVwb3B1bGF0ZVJlY3QoY29uc3QgSW50
UmVjdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0luV2luZG93KGJvb2wpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUaWxlQ292ZXJhZ2UoVGlsZUNvdmVyYWdlKSBP
VkVSUklERTsKQEAgLTE2OCw2ICsxNzAsNyBAQCBwcml2YXRlOgogICAgIEludFNpemUgbV90aWxl
U2l6ZTsKICAgICBJbnRSZWN0IG1fdmlzaWJsZVJlY3Q7CiAgICAgSW50UmVjdCBtX3Zpc2libGVS
ZWN0QXRMYXN0UmV2YWxpZGF0ZTsKKyAgICBJbnRSZWN0IG1fZXhwb3NlZFJlY3Q7CiAKICAgICB0
eXBlZGVmIEhhc2hNYXA8VGlsZUluZGV4LCBUaWxlSW5mbz4gVGlsZU1hcDsKICAgICBUaWxlTWFw
IG1fdGlsZXM7CkBAIC0xOTcsNiArMjAwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdW5wYXJl
bnRzT2Zmc2NyZWVuVGlsZXM7CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVzRHJhd2luZzsKICAgICBi
b29sIG1fdGlsZXNBcmVPcGFxdWU7CisgICAgYm9vbCBtX2NsaXBzVG9FeHBvc2VkUmVjdDsKIAog
ICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBtX3RpbGVEZWJ1Z0JvcmRlckNvbG9yOwogICAgIGZs
b2F0IG1fdGlsZURlYnVnQm9yZGVyV2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbQppbmRleCBhNmQzZTI3Li5kNmVjMjg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGls
ZUNhY2hlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9U
aWxlQ2FjaGUubW0KQEAgLTEwOSw2ICsxMDksNyBAQCBUaWxlQ2FjaGU6OlRpbGVDYWNoZShXZWJU
aWxlQ2FjaGVMYXllciogdGlsZUNhY2hlTGF5ZXIpCiAgICAgLCBtX3VucGFyZW50c09mZnNjcmVl
blRpbGVzKGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlc0RyYXdpbmcoZmFsc2UpCiAgICAgLCBt
X3RpbGVzQXJlT3BhcXVlKGZhbHNlKQorICAgICwgbV9jbGlwc1RvRXhwb3NlZFJlY3QoZmFsc2Up
CiAgICAgLCBtX3RpbGVEZWJ1Z0JvcmRlcldpZHRoKDApCiAgICAgLCBtX2luZGljYXRvck1vZGUo
VGhyZWFkZWRTY3JvbGxpbmdJbmRpY2F0aW9uKQogewpAQCAtMzA1LDYgKzMwNiwyNyBAQCB2b2lk
IFRpbGVDYWNoZTo6c2V0VmlzaWJsZVJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpCiAg
ICAgcmV2YWxpZGF0ZVRpbGVzKCk7CiB9CiAKK3ZvaWQgVGlsZUNhY2hlOjpzZXRFeHBvc2VkUmVj
dChjb25zdCBJbnRSZWN0JiBleHBvc2VkUmVjdCkKK3sKKyAgICBpZiAobV9leHBvc2VkUmVjdCA9
PSBleHBvc2VkUmVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9leHBvc2VkUmVjdCA9IGV4
cG9zZWRSZWN0OworICAgIHJldmFsaWRhdGVUaWxlcygpOworfQorCit2b2lkIFRpbGVDYWNoZTo6
c2V0Q2xpcHNUb0V4cG9zZWRSZWN0KGJvb2wgY2xpcHNUb0V4cG9zZWRSZWN0KQoreworICAgIGlm
IChtX2NsaXBzVG9FeHBvc2VkUmVjdCA9PSBjbGlwc1RvRXhwb3NlZFJlY3QpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fY2xpcHNUb0V4cG9zZWRSZWN0ID0gY2xpcHNUb0V4cG9zZWRSZWN0Owor
CisgICAgLy8gR29pbmcgZnJvbSBub3QgY2xpcHBpbmcgdG8gY2xpcHBpbmcsIHdlIGRvbid0IG5l
ZWQgdG8gcmV2YWxpZGF0ZSByaWdodCBhd2F5LgorICAgIGlmIChjbGlwc1RvRXhwb3NlZFJlY3Qp
CisgICAgICAgIHJldmFsaWRhdGVUaWxlcygpOworfQorCiB2b2lkIFRpbGVDYWNoZTo6cHJlcG9w
dWxhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgZW5zdXJlVGlsZXNGb3JSZWN0
KHJlY3QpOwpAQCAtMzkzLDE3ICs0MTUsMjIgQEAgdm9pZCBUaWxlQ2FjaGU6OmdldFRpbGVJbmRl
eFJhbmdlRm9yUmVjdChjb25zdCBJbnRSZWN0JiByZWN0LCBUaWxlSW5kZXgmIHRvcExlZnQKIAog
SW50UmVjdCBUaWxlQ2FjaGU6OmNvbXB1dGVUaWxlQ292ZXJhZ2VSZWN0KGNvbnN0IEludFJlY3Qm
IHByZXZpb3VzVmlzaWJsZVJlY3QpIGNvbnN0CiB7CisgICAgSW50UmVjdCBpbnRlcnNlY3RlZFZp
c2libGVSZWN0ID0gbV92aXNpYmxlUmVjdDsKKworICAgIGlmIChtX2NsaXBzVG9FeHBvc2VkUmVj
dCkKKyAgICAgICAgaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC5pbnRlcnNlY3QobV9leHBvc2VkUmVj
dCk7CisKICAgICAvLyBJZiB0aGUgcGFnZSBpcyBub3QgaW4gYSB3aW5kb3cgKGZvciBleGFtcGxl
IGlmIGl0J3MgaW4gYSBiYWNrZ3JvdW5kIHRhYiksIHdlIGxpbWl0IHRoZSB0aWxlIGNvdmVyYWdl
IHJlY3QgdG8gdGhlIHZpc2libGUgcmVjdC4KICAgICAvLyBGdXJ0aGVybW9yZSwgaWYgdGhlIHBh
Z2UgY2FuJ3QgaGF2ZSBzY3JvbGxiYXJzIChmb3IgZXhhbXBsZSBpZiBpdHMgYm9keSBlbGVtZW50
IGhhcyBvdmVyZmxvdzpoaWRkZW4pIGl0J3MgdmVyeSB1bmxpa2VseSB0aGF0IHRoZQogICAgIC8v
IHBhZ2Ugd2lsbCBldmVyIGJlIHNjcm9sbGVkIHNvIHdlIGxpbWl0IHRoZSB0aWxlIGNvdmVyYWdl
IHJlY3QgYXMgd2VsbC4KICAgICBpZiAoIW1faXNJbldpbmRvdyB8fCBtX3RpbGVDb3ZlcmFnZSAm
IENvdmVyYWdlRm9yU2xvd1Njcm9sbGluZykKLSAgICAgICAgcmV0dXJuIG1fdmlzaWJsZVJlY3Q7
CisgICAgICAgIHJldHVybiBpbnRlcnNlY3RlZFZpc2libGVSZWN0OwogCi0gICAgYm9vbCBsYXJn
ZVZpc2libGVSZWN0Q2hhbmdlID0gIXByZXZpb3VzVmlzaWJsZVJlY3QuaXNFbXB0eSgpICYmICFt
X3Zpc2libGVSZWN0LmludGVyc2VjdHMocHJldmlvdXNWaXNpYmxlUmVjdCk7CisgICAgYm9vbCBs
YXJnZVZpc2libGVSZWN0Q2hhbmdlID0gIXByZXZpb3VzVmlzaWJsZVJlY3QuaXNFbXB0eSgpICYm
ICFpbnRlcnNlY3RlZFZpc2libGVSZWN0LmludGVyc2VjdHMocHJldmlvdXNWaXNpYmxlUmVjdCk7
CiAgICAgCiAgICAgLy8gRklYTUU6IGxvb2sgYXQgaG93IGZhciB0aGUgZG9jdW1lbnQgY2FuIHNj
cm9sbCBpbiBlYWNoIGRpbWVuc2lvbi4KLSAgICBpbnQgY292ZXJhZ2VIb3Jpem9udGFsU2l6ZSA9
IG1fdmlzaWJsZVJlY3Qud2lkdGgoKTsKLSAgICBpbnQgY292ZXJhZ2VWZXJ0aWNhbFNpemUgPSBt
X3Zpc2libGVSZWN0LmhlaWdodCgpOworICAgIGludCBjb3ZlcmFnZUhvcml6b250YWxTaXplID0g
aW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC53aWR0aCgpOworICAgIGludCBjb3ZlcmFnZVZlcnRpY2Fs
U2l6ZSA9IGludGVyc2VjdGVkVmlzaWJsZVJlY3QuaGVpZ2h0KCk7CiAgICAgCiAgICAgLy8gSW5m
bGF0ZSB0aGUgY292ZXJhZ2UgcmVjdCBzbyB0aGF0IGl0IGNvdmVycyAyeCBvZiB0aGUgdmlzaWJs
ZSB3aWR0aCBhbmQgM3ggb2YgdGhlIHZpc2libGUgaGVpZ2h0LgogICAgIC8vIFRoZXNlIHZhbHVl
cyB3ZXJlIGNob3NlbiBiZWNhdXNlIGl0J3MgbW9yZSBjb21tb24gdG8gaGF2ZSB0YWxsIHBhZ2Vz
IGFuZCB0byBzY3JvbGwgdmVydGljYWxseSwKQEAgLTQxNiwxMSArNDQzLDExIEBAIEludFJlY3Qg
VGlsZUNhY2hlOjpjb21wdXRlVGlsZUNvdmVyYWdlUmVjdChjb25zdCBJbnRSZWN0JiBwcmV2aW91
c1Zpc2libGVSZWN0KSBjCiAKICAgICAvLyBEb24ndCBleHRlbmQgY292ZXJhZ2UgYmVmb3JlIDAg
b3IgYWZ0ZXIgdGhlIGVuZC4KICAgICBJbnRSZWN0IGNvdmVyYWdlQm91bmRzID0gYm91bmRzKCk7
Ci0gICAgaW50IGNvdmVyYWdlTGVmdCA9IG1fdmlzaWJsZVJlY3QueCgpIC0gKGNvdmVyYWdlSG9y
aXpvbnRhbFNpemUgLSBtX3Zpc2libGVSZWN0LndpZHRoKCkpIC8gMjsKKyAgICBpbnQgY292ZXJh
Z2VMZWZ0ID0gaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC54KCkgLSAoY292ZXJhZ2VIb3Jpem9udGFs
U2l6ZSAtIGludGVyc2VjdGVkVmlzaWJsZVJlY3Qud2lkdGgoKSkgLyAyOwogICAgIGNvdmVyYWdl
TGVmdCA9IG1pbihjb3ZlcmFnZUxlZnQsIGNvdmVyYWdlQm91bmRzLm1heFgoKSAtIGNvdmVyYWdl
SG9yaXpvbnRhbFNpemUpOwogICAgIGNvdmVyYWdlTGVmdCA9IG1heChjb3ZlcmFnZUxlZnQsIGNv
dmVyYWdlQm91bmRzLngoKSk7CiAKLSAgICBpbnQgY292ZXJhZ2VUb3AgPSBtX3Zpc2libGVSZWN0
LnkoKSAtIChjb3ZlcmFnZVZlcnRpY2FsU2l6ZSAtIG1fdmlzaWJsZVJlY3QuaGVpZ2h0KCkpIC8g
MjsKKyAgICBpbnQgY292ZXJhZ2VUb3AgPSBpbnRlcnNlY3RlZFZpc2libGVSZWN0LnkoKSAtIChj
b3ZlcmFnZVZlcnRpY2FsU2l6ZSAtIGludGVyc2VjdGVkVmlzaWJsZVJlY3QuaGVpZ2h0KCkpIC8g
MjsKICAgICBjb3ZlcmFnZVRvcCA9IG1pbihjb3ZlcmFnZVRvcCwgY292ZXJhZ2VCb3VuZHMubWF4
WSgpIC0gY292ZXJhZ2VWZXJ0aWNhbFNpemUpOwogICAgIGNvdmVyYWdlVG9wID0gbWF4KGNvdmVy
YWdlVG9wLCBjb3ZlcmFnZUJvdW5kcy55KCkpOwogCkBAIC01NDcsNyArNTc0LDEyIEBAIHZvaWQg
VGlsZUNhY2hlOjpyZXZhbGlkYXRlVGlsZXMoVGlsZVZhbGlkYXRpb25Qb2xpY3lGbGFncyBmb3Jl
Z3JvdW5kVmFsaWRhdGlvblBvCiAgICAgaWYgKCFwbGF0Zm9ybUxheWVyKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAobV92aXNpYmxlUmVjdC5pc0VtcHR5KCkgfHwgYm91bmRzKCkuaXNFbXB0
eSgpKQorICAgIEludFJlY3QgaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdCA9IG1fdmlzaWJsZVJlY3Q7
CisKKyAgICBpZiAobV9jbGlwc1RvRXhwb3NlZFJlY3QpCisgICAgICAgIGludGVyc2VjdGVkVmlz
aWJsZVJlY3QuaW50ZXJzZWN0KG1fZXhwb3NlZFJlY3QpOworCisgICAgaWYgKGludGVyc2VjdGVk
VmlzaWJsZVJlY3QuaXNFbXB0eSgpIHx8IGJvdW5kcygpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIAogICAgIFRpbGVWYWxpZGF0aW9uUG9saWN5RmxhZ3MgdmFsaWRhdGlvblBvbGlj
eSA9IG1faXNJbldpbmRvdyA/IGZvcmVncm91bmRWYWxpZGF0aW9uUG9saWN5IDogYmFja2dyb3Vu
ZFZhbGlkYXRpb25Qb2xpY3k7CkBAIC02NTMsNyArNjg1LDcgQEAgdm9pZCBUaWxlQ2FjaGU6OnJl
dmFsaWRhdGVUaWxlcyhUaWxlVmFsaWRhdGlvblBvbGljeUZsYWdzIGZvcmVncm91bmRWYWxpZGF0
aW9uUG8KICAgICBpZiAobV90aWxlZFNjcm9sbGluZ0luZGljYXRvckxheWVyKQogICAgICAgICB1
cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKIAotICAgIG1fdmlzaWJsZVJlY3RBdExhc3RSZXZhbGlk
YXRlID0gbV92aXNpYmxlUmVjdDsKKyAgICBtX3Zpc2libGVSZWN0QXRMYXN0UmV2YWxpZGF0ZSA9
IGludGVyc2VjdGVkVmlzaWJsZVJlY3Q7CiAKICAgICBpZiAoZGlydHlSZWN0cy5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2NGYwMTliLi44MzQ5ODNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTMtMDEtMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xhbXAgVGlsZUNhY2hlIHZpc2libGVSZWN0IHRv
IFdLVmlldydzIHZpc2libGVSZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDY2MDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODQzMTY0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgY2xp
ZW50cyBleHBhbmQgdGhlIFdLVmlldyB0byBiZSBtdWNoIGxhcmdlciB0aGFuIHdoYXQgaXMgdmlz
aWJsZSBvbiBzY3JlZW4sIGFuZAorICAgICAgICBjb250cm9sIHNjcm9sbGluZyB3aXRoIHRoZWly
IG93biB2aWV3LiBDdXJyZW50bHksIHdlIHdpbGwgY3JlYXRlIHRpbGVzIGZvciB0aGUgZW50aXJl
CisgICAgICAgIHZpZXcsIGNvbnN1bWluZyBhIGdyZWF0IGRlYWwgb2YgbWVtb3J5LCBhbmQgY2Fu
IHNvbWV0aW1lcyBmYWN0b3Igc2Nyb2xsYmFycyB3aGljaCBjYW4KKyAgICAgICAgbmV2ZXIgZXhp
c3QgaW50byBsYXlvdXQuIFByb3ZpZGUgV0tWaWV3IFNQSSAoc2V0TWFpbkZyYW1lSXNTY3JvbGxh
YmxlOikgdG8gZHJvcCBpbnRvCisgICAgICAgIGEgbW9kZSB3aGVyZSB3ZSBkaXNhYmxlIG1haW4g
ZnJhbWUgc2Nyb2xsaW5nIGFuZCByZXNwZWN0IHRoZSBXS1ZpZXcncyB2aXNpYmxlUmVjdCB3aGVu
CisgICAgICAgIGNyZWF0aW5nIHRpbGVzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgc2V0RnJhbWVTaXplOl0pOiBVcGRhdGUgdGhl
IHBhZ2UncyB2aWV3RXhwb3NlZFJlY3QgZnJvbSBvdXIgdmlzaWJsZVJlY3QuCisgICAgICAgICgt
W1dLVmlldyBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc10pOiBVcGRhdGUgdGhlIHBhZ2UncyB2
aWV3RXhwb3NlZFJlY3QgZnJvbSBvdXIgdmlzaWJsZVJlY3QuCisgICAgICAgICgtW1dLVmlldyBp
bml0V2l0aEZyYW1lOmNvbnRleHRSZWY6cGFnZUdyb3VwUmVmOnJlbGF0ZWRUb1BhZ2U6XSk6IFRo
ZSBtYWluIGZyYW1lIGlzIHNjcm9sbGFibGUgYnkgZGVmYXVsdC4KKyAgICAgICAgKC1bV0tWaWV3
IGVuYWJsZUZyYW1lU2l6ZVVwZGF0ZXNdKTogSWYgZnJhbWUgc2l6ZSB1cGRhdGVzIGJlY29tZSBl
bmFibGVkLCB1cGRhdGUgdGhlCisgICAgICAgIHBhZ2UncyB2aWV3RXhwb3NlZFJlY3QgZnJvbSBv
dXIgdmlzaWJsZVJlY3QuCisgICAgICAgICgtW1dLVmlldyBzZXRNYWluRnJhbWVJc1Njcm9sbGFi
bGU6XSk6IEFkanVzdCB3aGV0aGVyIHRoZSBtYWluIGZyYW1lIGlzIHNjcm9sbGFibGUsIGFuZCB1
cGRhdGUKKyAgICAgICAgdGhlIHBhZ2UncyB2aWV3RXhwb3NlZFJlY3QgaWYgbmVlZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld1ByaXZhdGUuaDogQWRkZWQgc2V0TWFpbkZy
YW1lSXNTY3JvbGxhYmxlOi4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgIChXZWJQYWdlUHJveHkpOiBBZGQgdmlld0V4cG9zZWRSZWN0Q2hhbmdlZC9zZXRNYWlu
RnJhbWVJc1Njcm9sbGFibGUuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlN
YWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld0V4cG9zZWRSZWN0Q2hh
bmdlZCk6IEZvcndhcmQgdmlld0V4cG9zZWRSZWN0Q2hhbmdlZCB0byBXZWJQYWdlLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZSk6IEZvcndh
cmQgc2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlIHRvIFdlYlBhZ2UuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQ
YWdlKTogRGlzYWJsZSBzY3JvbGxiYXJzIGFuZCBzY3JvbGxpbmcgaWYKKyAgICAgICAgbWFpbiBm
cmFtZSBzY3JvbGxhYmlsaXR5IGlzIGRpc2FibGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6c2V0RXhw
b3NlZFJlY3QpOiBBZGRlZCBlbXB0eSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYTo6bWFpbkZyYW1lU2Nyb2xsYWJpbGl0eUNoYW5nZWQpOiBBZGRl
ZCBlbXB0eSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoRHJhd2luZ0FyZWEpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQpOiBEb24ndCBuZWVkIFdlYkNv
cmU6OiBuYW1lc3BhY2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnZpZXdFeHBvc2VkUmVj
dENoYW5nZWQpOiBGb3J3YXJkIGV4cG9zZWQgcmVjdCBjaGFuZ2VzIHRvIERyYXdpbmdBcmVhIChv
bmx5IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhIGNhcmVzLCBmb3Igbm93KS4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKTogRm9yd2FyZCBz
Y3JvbGxhYmlsaXR5IGNoYW5nZXMgdG8gRHJhd2luZ0FyZWEgYW5kIHRoZSBtYWluIEZyYW1lVmll
dy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKTogRG9uJ3QgbmVl
ZCBXZWJDb3JlOjogbmFtZXNwYWNlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgIChXZWJQYWdlKTogQWRkIG1haW5GcmFtZUlzU2Nyb2xsYWJsZSwgdmll
d0V4cG9zZWRSZWN0Q2hhbmdlZCwgc2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlLCBhbmQgc3RvcmFn
ZSBmb3IgbV9tYWluRnJhbWVJc1Njcm9sbGFibGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
Om1haW5GcmFtZUlzU2Nyb2xsYWJsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW46IEFkZCBWaWV3RXhwb3NlZFJlY3RDaGFuZ2VkIGFuZCBTZXRNYWlu
RnJhbWVJc1Njcm9sbGFibGUgbWVzc2FnZXMuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAgICAgICAoVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRFeHBvc2VkUmVjdCk6IEZvcndhcmQgbmV3IGV4
cG9zZWQgcmVjdCB0byBUaWxlZEJhY2tpbmcgKG9ubHkgVGlsZUNhY2hlIGNhcmVzLCBmb3Igbm93
KS4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6Om1haW5G
cmFtZVNjcm9sbGFiaWxpdHlDaGFuZ2VkKTogQXNrIFRpbGVkQmFja2luZyB0byBjbGlwIHRvIHRo
ZSBleHBvc2VkUmVjdCBpZiBtYWluIGZyYW1lIHNjcm9sbGluZyBpcyBkaXNhYmxlZC4KKyAgICAg
ICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5
KTogVXNlIHNpemUgaW5zdGVhZCBvZiB2aWV3U2l6ZSBpbiBjYXNlIHdlJ3ZlIGNoYW5nZWQgaXQg
YmVjYXVzZSBvZiBtX21pbmltdW1MYXlvdXRXaWR0aC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKTogVXBkYXRl
IGV4cG9zZWRSZWN0IGFuZCBjbGlwc1RvRXhwb3NlZFJlY3QuCisKKzIwMTMtMDEtMTAgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnZpZXdFeHBv
c2VkUmVjdENoYW5nZWQpOiAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OiBBZGQgdmlld0V4cG9zZWRSZWN0Q2hhbmdlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkIFZpZXdFeHBvc2VkUmVjdENoYW5nZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YS5oOgorICAgICAgICAoVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEpOiBBZGQgc2V0RXhw
b3NlZFJlY3QuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnNldEV4cG9zZWRSZWN0KTogCisKIDIwMTMtMDEtMTUgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgdGlsZWQgV0tWaWV3
cyB0byBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggYWQ1OThmYy4uNThjYTY2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMjEwLDYgKzIxMCw3IEBAIHN0
cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKICAgICBTdHJpbmcgX3By
b21pc2VkVVJMOwogCiAgICAgTlNTaXplIF9pbnRyaW5zaWNDb250ZW50U2l6ZTsKKyAgICBCT09M
IF9tYWluRnJhbWVJc1Njcm9sbGFibGU7CiB9CiAKIEBlbmQKQEAgLTM2Miw5ICszNjMsMTIgQEAg
c3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAgICAgICBfZGF0
YS0+X3dpbmRvd0hhc1ZhbGlkQmFja2luZ1N0b3JlID0gTk87CiAKICAgICBbc3VwZXIgc2V0RnJh
bWVTaXplOnNpemVdOwotICAgIAotICAgIGlmICghW3NlbGYgZnJhbWVTaXplVXBkYXRlc0Rpc2Fi
bGVkXSkKKworICAgIGlmICghW3NlbGYgZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVkXSkgeworICAg
ICAgICBpZiAoIV9kYXRhLT5fbWFpbkZyYW1lSXNTY3JvbGxhYmxlKQorICAgICAgICAgICAgX2Rh
dGEtPl9wYWdlLT52aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGVuY2xvc2luZ0ludFJlY3QoW3NlbGYg
dmlzaWJsZVJlY3RdKSk7CiAgICAgICAgIFtzZWxmIF9zZXREcmF3aW5nQXJlYVNpemU6c2l6ZV07
CisgICAgfQogfQogCiAtICh2b2lkKV91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzCkBAIC0zNzcs
NiArMzgxLDggQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewog
ICAgIE5TUG9pbnQgYWNjZXNzaWJpbGl0eVBvc2l0aW9uID0gW1tzZWxmIGFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlQb3NpdGlvbkF0dHJpYnV0ZV0gcG9pbnRWYWx1
ZV07CiAgICAgCiAgICAgX2RhdGEtPl9wYWdlLT53aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChl
bmNsb3NpbmdJbnRSZWN0KHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcyksIGVuY2xvc2lu
Z0ludFJlY3Qodmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyksIEludFBvaW50KGFjY2Vzc2li
aWxpdHlQb3NpdGlvbikpOworICAgIGlmICghX2RhdGEtPl9tYWluRnJhbWVJc1Njcm9sbGFibGUp
CisgICAgICAgIF9kYXRhLT5fcGFnZS0+dmlld0V4cG9zZWRSZWN0Q2hhbmdlZChlbmNsb3NpbmdJ
bnRSZWN0KFtzZWxmIHZpc2libGVSZWN0XSkpOwogfQogCiAtICh2b2lkKXJlbmV3R1N0YXRlCkBA
IC0yOTQ0LDYgKzI5NTAsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5h
bWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogI2VuZGlmCiAgICAgX2RhdGEtPl9tb3VzZURvd25F
dmVudCA9IG5pbDsKICAgICBfZGF0YS0+X2lnbm9yaW5nTW91c2VEcmFnZ2VkRXZlbnRzID0gTk87
CisgICAgX2RhdGEtPl9tYWluRnJhbWVJc1Njcm9sbGFibGUgPSBZRVM7CiAKICAgICBfZGF0YS0+
X2ludHJpbnNpY0NvbnRlbnRTaXplID0gTlNNYWtlU2l6ZShOU1ZpZXdOb0luc3RyaW5zaWNNZXRy
aWMsIE5TVmlld05vSW5zdHJpbnNpY01ldHJpYyk7CiAKQEAgLTMwMzAsOCArMzAzNywxMSBAQCBz
dGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpw
YXRoKQogICAgIGlmICghX2RhdGEtPl9mcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRDb3VudCkKICAg
ICAgICAgcmV0dXJuOwogICAgIAotICAgIGlmICghKC0tX2RhdGEtPl9mcmFtZVNpemVVcGRhdGVz
RGlzYWJsZWRDb3VudCkpCisgICAgaWYgKCEoLS1fZGF0YS0+X2ZyYW1lU2l6ZVVwZGF0ZXNEaXNh
YmxlZENvdW50KSkgeworICAgICAgICBpZiAoIV9kYXRhLT5fbWFpbkZyYW1lSXNTY3JvbGxhYmxl
KQorICAgICAgICAgICAgX2RhdGEtPl9wYWdlLT52aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGVuY2xv
c2luZ0ludFJlY3QoW3NlbGYgdmlzaWJsZVJlY3RdKSk7CiAgICAgICAgIFtzZWxmIF9zZXREcmF3
aW5nQXJlYVNpemU6W3NlbGYgZnJhbWVdLnNpemVdOworICAgIH0KIH0KIAogLSAoQk9PTClmcmFt
ZVNpemVVcGRhdGVzRGlzYWJsZWQKQEAgLTMwNTMsNiArMzA2MywxNiBAQCBzdGF0aWMgTlNTdHJp
bmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIFdL
SGlkZVdvcmREZWZpbml0aW9uV2luZG93KCk7CiB9CiAKKy0gKHZvaWQpc2V0TWFpbkZyYW1lSXNT
Y3JvbGxhYmxlOihib29sKWlzU2Nyb2xsYWJsZQoreworICAgIF9kYXRhLT5fbWFpbkZyYW1lSXNT
Y3JvbGxhYmxlID0gaXNTY3JvbGxhYmxlOworCisgICAgaWYgKCFpc1Njcm9sbGFibGUpCisgICAg
ICAgIF9kYXRhLT5fcGFnZS0+dmlld0V4cG9zZWRSZWN0Q2hhbmdlZChlbmNsb3NpbmdJbnRSZWN0
KFtzZWxmIHZpc2libGVSZWN0XSkpOworCisgICAgX2RhdGEtPl9wYWdlLT5zZXRNYWluRnJhbWVJ
c1Njcm9sbGFibGUoaXNTY3JvbGxhYmxlKTsKK30KKwogLSAoQ0dGbG9hdCltaW5pbXVtTGF5b3V0
V2lkdGgKIHsKICAgICByZXR1cm4gX2RhdGEtPl9wYWdlLT5taW5pbXVtTGF5b3V0V2lkdGgoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld1ByaXZhdGUuaApp
bmRleCAyMTYxZWI3Li5iODQwNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3UHJpdmF0ZS5oCkBAIC01MCw2ICs1MCw4IEBACiAtICh2b2lkKXBlcmZv
cm1EaWN0aW9uYXJ5TG9va3VwQXRDdXJyZW50TW91c2VMb2NhdGlvbjsKICsgKHZvaWQpaGlkZVdv
cmREZWZpbml0aW9uV2luZG93OwogCistICh2b2lkKXNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZToo
Ym9vbClpc1Njcm9sbGFibGU7CisKIEBwcm9wZXJ0eSAocmVhZHdyaXRlKSBDR0Zsb2F0IG1pbmlt
dW1MYXlvdXRXaWR0aDsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IDZlYWYyZmYuLjdmOGI1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTM4OCw2ICszODgsOCBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIHZvaWQgdXBkYXRlV2luZG93SXNWaXNpYmxlKGJvb2wgd2luZG93SXNWaXNpYmxlKTsK
ICAgICB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpOworICAgIHZvaWQgdmlld0V4cG9zZWRSZWN0
Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBleHBvc2VkUmVjdCk7CisgICAgdm9pZCBz
ZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoYm9vbCk7CiAKICAgICB2b2lkIHNldENvbXBvc2l0aW9u
KGNvbnN0IFN0cmluZyYgdGV4dCwgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5l
PiB1bmRlcmxpbmVzLCB1aW50NjRfdCBzZWxlY3Rpb25TdGFydCwgdWludDY0X3Qgc2VsZWN0aW9u
RW5kLCB1aW50NjRfdCByZXBsYWNlbWVudFJhbmdlU3RhcnQsIHVpbnQ2NF90IHJlcGxhY2VtZW50
UmFuZ2VFbmQpOwogICAgIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IDE1YzUwZjcuLmFm
OTM2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVBy
b3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5
TWFjLm1tCkBAIC0xMzcsNiArMTM3LDIyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aW5kb3dBbmRW
aWV3RnJhbWVzQ2hhbmdlZChjb25zdCBJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuCiAgICAg
cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpXaW5kb3dBbmRWaWV3RnJhbWVzQ2hh
bmdlZCh3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIHZpZXdGcmFtZUluV2luZG93Q29v
cmRpbmF0ZXMsIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpLCBtX3BhZ2VJRCk7CiB9CiAK
K3ZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGNvbnN0IEludFJlY3Qm
IGV4cG9zZWRSZWN0KQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlZpZXdFeHBvc2VkUmVjdENo
YW5nZWQoZXhwb3NlZFJlY3QpLCBtX3BhZ2VJRCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoYm9vbCBpc1Njcm9sbGFibGUpCit7CisgICAgaWYgKCFp
c1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6U2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKGlzU2Nyb2xsYWJsZSksIG1fcGFn
ZUlEKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmlu
ZyYgdGV4dCwgVmVjdG9yPENvbXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzLCB1aW50NjRf
dCBzZWxlY3Rpb25TdGFydCwgdWludDY0X3Qgc2VsZWN0aW9uRW5kLCB1aW50NjRfdCByZXBsYWNl
bWVudFJhbmdlU3RhcnQsIHVpbnQ2NF90IHJlcGxhY2VtZW50UmFuZ2VFbmQpCiB7CiAgICAgaWYg
KCFpc1ZhbGlkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZjc0
NTQ3My4uYmM2ODk1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTEy
MjgsMjYgKzEyMjgsMjkgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRv
Q29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgYm9vbCBpc01haW5GcmFtZSA9IHdlYlBhZ2UtPm1h
aW5XZWJGcmFtZSgpID09IG1fZnJhbWU7CiAgICAgYm9vbCBpc1RyYW5zcGFyZW50ID0gIXdlYlBh
Z2UtPmRyYXdzQmFja2dyb3VuZCgpOwogICAgIGJvb2wgc2hvdWxkVXNlRml4ZWRMYXlvdXQgPSBp
c01haW5GcmFtZSAmJiB3ZWJQYWdlLT51c2VGaXhlZExheW91dCgpOworICAgIGJvb2wgc2hvdWxk
RGlzYWJsZVNjcm9sbGluZyA9IGlzTWFpbkZyYW1lICYmICF3ZWJQYWdlLT5tYWluRnJhbWVJc1Nj
cm9sbGFibGUoKTsKKyAgICBib29sIHNob3VsZEhpZGVTY3JvbGxiYXJzID0gc2hvdWxkVXNlRml4
ZWRMYXlvdXQgfHwgc2hvdWxkRGlzYWJsZVNjcm9sbGluZzsKICAgICBJbnRSZWN0IGN1cnJlbnRG
aXhlZFZpc2libGVDb250ZW50UmVjdCA9IG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCkgPyBt
X2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5maXhlZFZpc2libGVDb250ZW50UmVjdCgpIDog
SW50UmVjdCgpOwogCiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBtX2Zy
YW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCk7
CiAgICAgbV9mcmFtZUhhc0N1c3RvbVJlcHJlc2VudGF0aW9uID0gaXNNYWluRnJhbWUgJiYgd2Vi
UGFnZS0+c2hvdWxkVXNlQ3VzdG9tUmVwcmVzZW50YXRpb25Gb3JSZXNwb25zZShyZXNwb25zZSk7
CiAgICAgbV9mcmFtZUNhbWVGcm9tUGFnZUNhY2hlID0gZmFsc2U7CiAKKyAgICBTY3JvbGxiYXJN
b2RlIGRlZmF1bHRTY3JvbGxiYXJNb2RlID0gc2hvdWxkSGlkZVNjcm9sbGJhcnMgPyBTY3JvbGxi
YXJBbHdheXNPZmYgOiBTY3JvbGxiYXJBdXRvOworCisgICAgbV9mcmFtZS0+Y29yZUZyYW1lKCkt
PmNyZWF0ZVZpZXcod2ViUGFnZS0+c2l6ZSgpLCBiYWNrZ3JvdW5kQ29sb3IsIGlzVHJhbnNwYXJl
bnQsCisgICAgICAgIEludFNpemUoKSwgY3VycmVudEZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0LCBz
aG91bGRVc2VGaXhlZExheW91dCwKKyAgICAgICAgZGVmYXVsdFNjcm9sbGJhck1vZGUsIC8qIGxv
Y2sgKi8gc2hvdWxkSGlkZVNjcm9sbGJhcnMsIGRlZmF1bHRTY3JvbGxiYXJNb2RlLCAvKiBsb2Nr
ICovIHNob3VsZEhpZGVTY3JvbGxiYXJzKTsKKworICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52
aWV3KCktPnNldFByb2hpYml0c1Njcm9sbGluZyhzaG91bGREaXNhYmxlU2Nyb2xsaW5nKTsKKwog
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlmIChzaG91bGRVc2VGaXhlZExheW91
dCkgewotICAgICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+Y3JlYXRlVmlldyh3ZWJQYWdlLT5z
aXplKCksIGJhY2tncm91bmRDb2xvciwgaXNUcmFuc3BhcmVudCwKLSAgICAgICAgICAgIEludFNp
emUoKSwgY3VycmVudEZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0LCBzaG91bGRVc2VGaXhlZExheW91
dCwKLSAgICAgICAgICAgIFNjcm9sbGJhckFsd2F5c09mZiwgLyogbG9jayAqLyB0cnVlLCBTY3Jv
bGxiYXJBbHdheXNPZmYsIC8qIGxvY2sgKi8gdHJ1ZSk7Ci0KICAgICAgICAgbV9mcmFtZS0+Y29y
ZUZyYW1lKCktPnZpZXcoKS0+c2V0RGVsZWdhdGVzU2Nyb2xsaW5nKHNob3VsZFVzZUZpeGVkTGF5
b3V0KTsKICAgICAgICAgbV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+c2V0UGFpbnRzRW50
aXJlQ29udGVudHMoc2hvdWxkVXNlRml4ZWRMYXlvdXQpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogI2VuZGlmCi0KLSAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+Y3JlYXRlVmlldyh3ZWJQYWdl
LT5zaXplKCksIGJhY2tncm91bmRDb2xvciwgaXNUcmFuc3BhcmVudCwKLSAgICAgICAgSW50U2l6
ZSgpLCBjdXJyZW50Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QsIHNob3VsZFVzZUZpeGVkTGF5b3V0
KTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkU2F2ZVRvUGFnZUNhY2hlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5k
ZXggYTA1ZDAwMy4uOGNmZTI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTg0LDYgKzg0LDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIG1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBXZWJD
b3JlOjpJbnRTaXplJikgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RXhwb3NlZFJlY3QoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBtYWluRnJhbWVTY3Jv
bGxhYmlsaXR5Q2hhbmdlZChib29sKSB7IH0KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGlj
c0xheWVyRmFjdG9yeSgpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENv
bXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAyNTkwM2E4Li5iMTZm
MTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC0yODk5LDcgKzI4OTksNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFdpbmRvd0lzVmlzaWJsZShi
b29sIHdpbmRvd0lzVmlzaWJsZSkKICAgICAgICAgKCppdCktPnNldFdpbmRvd0lzVmlzaWJsZSh3
aW5kb3dJc1Zpc2libGUpOwogfQogCi12b2lkIFdlYlBhZ2U6OndpbmRvd0FuZFZpZXdGcmFtZXND
aGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGlu
YXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRl
cywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMp
Cit2b2lkIFdlYlBhZ2U6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IEludFJlY3Qm
IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgSW50UmVjdCYgdmlld0ZyYW1l
SW5XaW5kb3dDb29yZGluYXRlcywgY29uc3QgSW50UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29v
cmRpbmF0ZXMpCiB7CiAgICAgbV93aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMgPSB3aW5k
b3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7CiAgICAgbV92aWV3RnJhbWVJbldpbmRvd0Nvb3Jk
aW5hdGVzID0gdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlczsKQEAgLTI5MDksNiArMjkwOSwy
MiBAQCB2b2lkIFdlYlBhZ2U6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TYwogICAgIGZvciAoSGFzaFNldDxQbHVnaW5WaWV3
Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wbHVnaW5WaWV3cy5iZWdpbigpLCBlbmQgPSBtX3Bs
dWdpblZpZXdzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICgqaXQpLT53aW5kb3dB
bmRWaWV3RnJhbWVzQ2hhbmdlZCh3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIHZpZXdG
cmFtZUluV2luZG93Q29vcmRpbmF0ZXMpOwogfQorCit2b2lkIFdlYlBhZ2U6OnZpZXdFeHBvc2Vk
UmVjdENoYW5nZWQoY29uc3QgSW50UmVjdCYgZXhwb3NlZFJlY3QpCit7CisgICAgbV9kcmF3aW5n
QXJlYS0+c2V0RXhwb3NlZFJlY3QoZXhwb3NlZFJlY3QpOworfQorCit2b2lkIFdlYlBhZ2U6OnNl
dE1haW5GcmFtZUlzU2Nyb2xsYWJsZShib29sIGlzU2Nyb2xsYWJsZSkKK3sKKyAgICBtX21haW5G
cmFtZUlzU2Nyb2xsYWJsZSA9IGlzU2Nyb2xsYWJsZTsKKyAgICBtX2RyYXdpbmdBcmVhLT5tYWlu
RnJhbWVTY3JvbGxhYmlsaXR5Q2hhbmdlZChpc1Njcm9sbGFibGUpOworCisgICAgaWYgKEZyYW1l
VmlldyogZnJhbWVWaWV3ID0gbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCkpIHsKKyAg
ICAgICAgZnJhbWVWaWV3LT5zZXRDYW5IYXZlU2Nyb2xsYmFycyhpc1Njcm9sbGFibGUpOworICAg
ICAgICBmcmFtZVZpZXctPnNldFByb2hpYml0c1Njcm9sbGluZyghaXNTY3JvbGxhYmxlKTsKKyAg
ICB9Cit9CiAjZW5kaWYKIAogYm9vbCBXZWJQYWdlOjp3aW5kb3dJc0ZvY3VzZWQoKSBjb25zdApA
QCAtMzI4Myw3ICszMjk5LDcgQEAgdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGlu
Zyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW4KIH0KIAogI2lmIFBM
QVRGT1JNKE1BQykKLXZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBy
ZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNpemUsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCit2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mIHByaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFdlYkZy
YW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLndlYkZyYW1lKGZyYW1lSUQpOwogICAg
IEZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZSA/IGZyYW1lLT5jb3JlRnJhbWUoKSA6IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxZWI2MzMyLi42
ZTYzMjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
QEAgLTYwMiw2ICs2MDIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzYXZlUERGVG9GaWxlSW5Eb3du
bG9hZHNGb2xkZXIoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgU3RyaW5n
JiBvcmlnaW5hdGluZ1VSTFN0cmluZywgY29uc3QgdWludDhfdCogZGF0YSwgdW5zaWduZWQgbG9u
ZyBzaXplKTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzYXZlUERGVG9UZW1wb3JhcnlG
b2xkZXJBbmRPcGVuV2l0aE5hdGl2ZUFwcGxpY2F0aW9uKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVk
RmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIGNvbnN0IHVpbnQ4
X3QqIGRhdGEsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgY29uc3QgU3RyaW5nJiBwZGZVVUlEKTsKKwor
ICAgIGJvb2wgbWFpbkZyYW1lSXNTY3JvbGxhYmxlKCkgeyByZXR1cm4gbV9tYWluRnJhbWVJc1Nj
cm9sbGFibGU7IH0KICNlbmRpZgogCiBwcml2YXRlOgpAQCAtNzE3LDYgKzcxOSw4IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHNldFdpbmRvd0lzVmlzaWJsZShib29sIHdpbmRvd0lzVmlzaWJsZSk7
CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVzKTsKKyAgICB2b2lkIHZpZXdFeHBvc2VkUmVj
dENoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZXhwb3NlZFJlY3QpOworICAgIHZvaWQg
c2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKGJvb2wpOwogCiAgICAgUmV0YWluUHRyPFBERkRvY3Vt
ZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUqKTsKICAgICB2
b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVj
dHMpOwpAQCAtODE0LDYgKzgxOCw4IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IGJvb2wgbV9wZGZQbHVnaW5FbmFibGVkOwogCisgICAgYm9vbCBtX21haW5GcmFtZUlzU2Nyb2xs
YWJsZTsKKwogICAgIC8vIFdoZXRoZXIgdGhlIGNvbnRhaW5pbmcgd2luZG93IGlzIHZpc2libGUg
b3Igbm90LgogICAgIGJvb2wgbV93aW5kb3dJc1Zpc2libGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMDBj
ZGRkZC4uOTg2MWIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTI1OSw2ICsyNTksOCBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlIHsKIAogICAgIFNldFdpbmRvd0lzVmlzaWJsZShib29sIHdpbmRvd0lzVmlzaWJs
ZSkKICAgICBXaW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChXZWJDb3JlOjpJbnRSZWN0IHdpbmRv
d0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgV2ViQ29yZTo6SW50UmVjdCB2aWV3RnJhbWVJbldp
bmRvd0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpJbnRQb2ludCBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3Jk
aW5hdGVzKQorICAgIFZpZXdFeHBvc2VkUmVjdENoYW5nZWQoV2ViQ29yZTo6SW50UmVjdCBleHBv
c2VkUmVjdCkKKyAgICBTZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoYm9vbCBpc1Njcm9sbGFibGUp
CiAgICAgUmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKENvcmVJUEM6OkRhdGFS
ZWZlcmVuY2UgZWxlbWVuVG9rZW4sIENvcmVJUEM6OkRhdGFSZWZlcmVuY2Ugd2luZG93VG9rZW4p
CiAgICAgR2V0U3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCgpIC0+IChXVEY6OlN0cmluZyBz
dHJpbmdWYWx1ZSkKICAgICBHZXREYXRhU2VsZWN0aW9uRm9yUGFzdGVib2FyZChXVEY6OlN0cmlu
ZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxl
LCB1aW50NjRfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5o
CmluZGV4IGI2OWFmNTcuLmJjNTcxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLmgKQEAgLTcxLDYgKzcxLDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpIE9WRVJSSURFOwogCisgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFp
bkZyYW1lU2Nyb2xsYWJpbGl0eUNoYW5nZWQoYm9vbCkgT1ZFUlJJREU7CisKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZ1
bmN0aW9uPHZvaWQgKCk+JikgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ2xpZW50CkBAIC0xMTMsNiArMTE2LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pc1Bh
aW50aW5nU3VzcGVuZGVkOwogCisgICAgV2ViQ29yZTo6SW50UmVjdCBtX2V4cG9zZWRSZWN0Owor
CiAgICAgZG91YmxlIG1fbWluaW11bUxheW91dFdpZHRoOwogICAgIFdlYkNvcmU6OkludFNpemUg
bV9sYXN0U2VudEludHJpbnNpY0NvbnRlbnRTaXplOwogICAgIGJvb2wgbV9pblVwZGF0ZUdlb21l
dHJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggZjAy
NjRmOC4uZGZhYTMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tCkBAIC0zNDEsNiArMzQxLDE3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OnJlc3VtZVBhaW50aW5nKCkKICAgICAgICAgbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5yZXN1
bWVTY3JpcHRlZEFuaW1hdGlvbnMoKTsKIH0KIAordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYTo6c2V0RXhwb3NlZFJlY3QoY29uc3QgSW50UmVjdCYgZXhwb3NlZFJlY3QpCit7Cisg
ICAgbV9leHBvc2VkUmVjdCA9IGV4cG9zZWRSZWN0OworICAgIG1haW5GcmFtZVRpbGVkQmFja2lu
ZygpLT5zZXRFeHBvc2VkUmVjdChleHBvc2VkUmVjdCk7Cit9CisKK3ZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6Om1haW5GcmFtZVNjcm9sbGFiaWxpdHlDaGFuZ2VkKGJvb2wgaXNT
Y3JvbGxhYmxlKQoreworICAgIG1haW5GcmFtZVRpbGVkQmFja2luZygpLT5zZXRDbGlwc1RvRXhw
b3NlZFJlY3QoIWlzU2Nyb2xsYWJsZSk7Cit9CisKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBkb3VibGUg
bWluaW11bUxheW91dFdpZHRoKQogewogICAgIG1faW5VcGRhdGVHZW9tZXRyeSA9IHRydWU7CkBA
IC0zNjIsNyArMzczLDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBk
YXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGRvdWIKICAgICBtX3dlYlBhZ2Ut
PmxheW91dElmTmVlZGVkKCk7CiAKICAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQotICAgICAg
ICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldFNpemUodmlld1NpemUpOworICAgICAgICBtX3BhZ2VP
dmVybGF5TGF5ZXItPnNldFNpemUoc2l6ZSk7CiAKICAgICBpZiAoIW1fbGF5ZXJUcmVlU3RhdGVJ
c0Zyb3plbikKICAgICAgICAgZmx1c2hMYXllcnMoKTsKQEAgLTM3MCw3ICszODEsNyBAQCB2b2lk
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJbnRT
aXplJiB2aWV3U2l6ZSwgZG91YgogICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKICAgICBbQ0FU
cmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwogCi0gICAgbV9yb290TGF5ZXIuZ2V0
KCkuZnJhbWUgPSBDR1JlY3RNYWtlKDAsIDAsIHZpZXdTaXplLndpZHRoKCksIHZpZXdTaXplLmhl
aWdodCgpKTsKKyAgICBtX3Jvb3RMYXllci5nZXQoKS5mcmFtZSA9IENHUmVjdE1ha2UoMCwgMCwg
c2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKIAogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1p
dF07CiAgICAgCkBAIC00NTAsOCArNDYxLDExIEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWE6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKENBTGF5ZXIgKmxheWVyKQogICAgIGlm
IChtX3BhZ2VPdmVybGF5TGF5ZXIpCiAgICAgICAgIFttX3Jvb3RMYXllci5nZXQoKSBhZGRTdWJs
YXllcjptX3BhZ2VPdmVybGF5TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKV07CiAKLSAgICBpZiAoVGls
ZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcgPSBtYWluRnJhbWVUaWxlZEJhY2tpbmcoKSkKKyAgICBp
ZiAoVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcgPSBtYWluRnJhbWVUaWxlZEJhY2tpbmcoKSkg
ewogICAgICAgICB0aWxlZEJhY2tpbmctPnNldEFnZ3Jlc3NpdmVseVJldGFpbnNUaWxlcyhtX3dl
YlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPmFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5h
YmxlZCgpKTsKKyAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRFeHBvc2VkUmVjdChtX2V4cG9zZWRS
ZWN0KTsKKyAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRDbGlwc1RvRXhwb3NlZFJlY3QoIW1fd2Vi
UGFnZS0+bWFpbkZyYW1lSXNTY3JvbGxhYmxlKCkpOworICAgIH0KIAogICAgIHVwZGF0ZURlYnVn
SW5mb0xheWVyKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd1RpbGVkU2Ny
b2xsaW5nSW5kaWNhdG9yKCkpOwogCg==
</data>
<flag name="commit-queue"
          id="200987"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182840</attachid>
            <date>2013-01-15 13:33:56 -0800</date>
            <delta_ts>2013-01-15 17:13:16 -0800</delta_ts>
            <desc>patch</desc>
            <filename>setMainFrameIsScrollable.diff</filename>
            <type>text/plain</type>
            <size>28721</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiY2I0YzMwLi43MmJmNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTMtMDEtMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgQ2xhbXAgVGlsZUNhY2hlIHZpc2libGVSZWN0IHRvIFdLVmlldydzIHZpc2libGVS
ZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY2
MDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODQzMTY0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRC
YWNraW5nLmg6CisgICAgICAgIChUaWxlZEJhY2tpbmcpOiBBZGQgc2V0RXhwb3NlZFJlY3QgYW5k
IHNldENsaXBzVG9FeHBvc2VkUmVjdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvVGlsZUNhY2hlLmg6CisgICAgICAgIChUaWxlQ2FjaGUpOiBBZGQgc2V0RXhwb3NlZFJlY3Qs
IHNldENsaXBzVG9FeHBvc2VkUmVjdCwgYW5kIHN0b3JhZ2UgZm9yIHRoZWlyIHJlc3BlY3RpdmUg
dmFsdWVzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW06
CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ2FjaGU6OlRpbGVDYWNoZSk6IEluaXRpYWxpemUgbV9j
bGlwc1RvRXhwb3NlZFJlY3QgdG8gZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpUaWxlQ2FjaGU6
OnNldEV4cG9zZWRSZWN0KTogVXBkYXRlIGV4cG9zZWRSZWN0IGFuZCByZXZhbGlkYXRlIHRpbGVz
LgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNhY2hlOjpzZXRDbGlwc1RvRXhwb3NlZFJlY3QpOiBV
cGRhdGUgY2xpcHNUb0V4cG9zZWRSZWN0IGFuZCByZXZhbGlkYXRlIHRpbGVzOworICAgICAgICBp
ZiB3ZSdyZSBnb2luZyBmcm9tIHVuY2xpcHBlZCB0byBjbGlwcGVkLCB3ZSBhbHJlYWR5IGhhdmUg
dGlsZXMsIHNvIHdlIGNhbiBza2lwIHRpbGUgcmV2YWxpZGF0aW9uLgorICAgICAgICAoV2ViQ29y
ZTo6VGlsZUNhY2hlOjpjb21wdXRlVGlsZUNvdmVyYWdlUmVjdCk6IEludGVyc2VjdCBleGlzaXRp
bmcgdmlzaWJsZSByZWN0IHdpdGgKKyAgICAgICAgZXhwb3NlZCByZWN0IHRvIGdldCB0aGUgdmlz
aWJsZSByZWN0IHdlIGFjdHVhbGx5IGNhcmUgYWJvdXQuCisgICAgICAgIChXZWJDb3JlOjpUaWxl
Q2FjaGU6OnJldmFsaWRhdGVUaWxlcyk6IERpdHRvLgorCiAyMDEzLTAxLTE1ICBaYW4gRG9iZXJz
ZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS10gRW5hYmxlIFBlcmZv
cm1hbmNlIFRpbWVsaW5lLCBSZXNvdXJjZSBUaW1pbmcsIE5hdmlnYXRpb24gVGltaW5nIGZlYXR1
cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJh
Y2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5o
CmluZGV4IDQxYjMzNmUuLmEwMGQwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCkBAIC00Nyw2ICs0Nyw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZVJlY3QoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0
dWFsIEludFJlY3QgdmlzaWJsZVJlY3QoKSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0RXhwb3NlZFJlY3QoY29uc3QgSW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
Q2xpcHNUb0V4cG9zZWRSZWN0KGJvb2wpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBwcmVwb3B1
bGF0ZVJlY3QoY29uc3QgSW50UmVjdCYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0lu
V2luZG93KGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9UaWxlQ2FjaGUuaAppbmRleCBhZTA0N2UyLi4xZGZjOGZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5oCkBA
IC0xMDYsNiArMTA2LDggQEAgcHJpdmF0ZToKIAogICAgIC8vIFRpbGVkQmFja2luZyBtZW1iZXIg
ZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlUmVjdChjb25zdCBJbnRSZWN0
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IEludFJl
Y3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpcHNUb0V4cG9zZWRSZWN0KGJv
b2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwcmVwb3B1bGF0ZVJlY3QoY29uc3QgSW50
UmVjdCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0luV2luZG93KGJvb2wpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUaWxlQ292ZXJhZ2UoVGlsZUNvdmVyYWdlKSBP
VkVSUklERTsKQEAgLTE2OCw2ICsxNzAsNyBAQCBwcml2YXRlOgogICAgIEludFNpemUgbV90aWxl
U2l6ZTsKICAgICBJbnRSZWN0IG1fdmlzaWJsZVJlY3Q7CiAgICAgSW50UmVjdCBtX3Zpc2libGVS
ZWN0QXRMYXN0UmV2YWxpZGF0ZTsKKyAgICBJbnRSZWN0IG1fZXhwb3NlZFJlY3Q7CiAKICAgICB0
eXBlZGVmIEhhc2hNYXA8VGlsZUluZGV4LCBUaWxlSW5mbz4gVGlsZU1hcDsKICAgICBUaWxlTWFw
IG1fdGlsZXM7CkBAIC0xOTcsNiArMjAwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdW5wYXJl
bnRzT2Zmc2NyZWVuVGlsZXM7CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVzRHJhd2luZzsKICAgICBi
b29sIG1fdGlsZXNBcmVPcGFxdWU7CisgICAgYm9vbCBtX2NsaXBzVG9FeHBvc2VkUmVjdDsKIAog
ICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBtX3RpbGVEZWJ1Z0JvcmRlckNvbG9yOwogICAgIGZs
b2F0IG1fdGlsZURlYnVnQm9yZGVyV2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbQppbmRleCBhNmQzZTI3Li5kNmVjMjg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGls
ZUNhY2hlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9U
aWxlQ2FjaGUubW0KQEAgLTEwOSw2ICsxMDksNyBAQCBUaWxlQ2FjaGU6OlRpbGVDYWNoZShXZWJU
aWxlQ2FjaGVMYXllciogdGlsZUNhY2hlTGF5ZXIpCiAgICAgLCBtX3VucGFyZW50c09mZnNjcmVl
blRpbGVzKGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlc0RyYXdpbmcoZmFsc2UpCiAgICAgLCBt
X3RpbGVzQXJlT3BhcXVlKGZhbHNlKQorICAgICwgbV9jbGlwc1RvRXhwb3NlZFJlY3QoZmFsc2Up
CiAgICAgLCBtX3RpbGVEZWJ1Z0JvcmRlcldpZHRoKDApCiAgICAgLCBtX2luZGljYXRvck1vZGUo
VGhyZWFkZWRTY3JvbGxpbmdJbmRpY2F0aW9uKQogewpAQCAtMzA1LDYgKzMwNiwyNyBAQCB2b2lk
IFRpbGVDYWNoZTo6c2V0VmlzaWJsZVJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpCiAg
ICAgcmV2YWxpZGF0ZVRpbGVzKCk7CiB9CiAKK3ZvaWQgVGlsZUNhY2hlOjpzZXRFeHBvc2VkUmVj
dChjb25zdCBJbnRSZWN0JiBleHBvc2VkUmVjdCkKK3sKKyAgICBpZiAobV9leHBvc2VkUmVjdCA9
PSBleHBvc2VkUmVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9leHBvc2VkUmVjdCA9IGV4
cG9zZWRSZWN0OworICAgIHJldmFsaWRhdGVUaWxlcygpOworfQorCit2b2lkIFRpbGVDYWNoZTo6
c2V0Q2xpcHNUb0V4cG9zZWRSZWN0KGJvb2wgY2xpcHNUb0V4cG9zZWRSZWN0KQoreworICAgIGlm
IChtX2NsaXBzVG9FeHBvc2VkUmVjdCA9PSBjbGlwc1RvRXhwb3NlZFJlY3QpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fY2xpcHNUb0V4cG9zZWRSZWN0ID0gY2xpcHNUb0V4cG9zZWRSZWN0Owor
CisgICAgLy8gR29pbmcgZnJvbSBub3QgY2xpcHBpbmcgdG8gY2xpcHBpbmcsIHdlIGRvbid0IG5l
ZWQgdG8gcmV2YWxpZGF0ZSByaWdodCBhd2F5LgorICAgIGlmIChjbGlwc1RvRXhwb3NlZFJlY3Qp
CisgICAgICAgIHJldmFsaWRhdGVUaWxlcygpOworfQorCiB2b2lkIFRpbGVDYWNoZTo6cHJlcG9w
dWxhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgZW5zdXJlVGlsZXNGb3JSZWN0
KHJlY3QpOwpAQCAtMzkzLDE3ICs0MTUsMjIgQEAgdm9pZCBUaWxlQ2FjaGU6OmdldFRpbGVJbmRl
eFJhbmdlRm9yUmVjdChjb25zdCBJbnRSZWN0JiByZWN0LCBUaWxlSW5kZXgmIHRvcExlZnQKIAog
SW50UmVjdCBUaWxlQ2FjaGU6OmNvbXB1dGVUaWxlQ292ZXJhZ2VSZWN0KGNvbnN0IEludFJlY3Qm
IHByZXZpb3VzVmlzaWJsZVJlY3QpIGNvbnN0CiB7CisgICAgSW50UmVjdCBpbnRlcnNlY3RlZFZp
c2libGVSZWN0ID0gbV92aXNpYmxlUmVjdDsKKworICAgIGlmIChtX2NsaXBzVG9FeHBvc2VkUmVj
dCkKKyAgICAgICAgaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC5pbnRlcnNlY3QobV9leHBvc2VkUmVj
dCk7CisKICAgICAvLyBJZiB0aGUgcGFnZSBpcyBub3QgaW4gYSB3aW5kb3cgKGZvciBleGFtcGxl
IGlmIGl0J3MgaW4gYSBiYWNrZ3JvdW5kIHRhYiksIHdlIGxpbWl0IHRoZSB0aWxlIGNvdmVyYWdl
IHJlY3QgdG8gdGhlIHZpc2libGUgcmVjdC4KICAgICAvLyBGdXJ0aGVybW9yZSwgaWYgdGhlIHBh
Z2UgY2FuJ3QgaGF2ZSBzY3JvbGxiYXJzIChmb3IgZXhhbXBsZSBpZiBpdHMgYm9keSBlbGVtZW50
IGhhcyBvdmVyZmxvdzpoaWRkZW4pIGl0J3MgdmVyeSB1bmxpa2VseSB0aGF0IHRoZQogICAgIC8v
IHBhZ2Ugd2lsbCBldmVyIGJlIHNjcm9sbGVkIHNvIHdlIGxpbWl0IHRoZSB0aWxlIGNvdmVyYWdl
IHJlY3QgYXMgd2VsbC4KICAgICBpZiAoIW1faXNJbldpbmRvdyB8fCBtX3RpbGVDb3ZlcmFnZSAm
IENvdmVyYWdlRm9yU2xvd1Njcm9sbGluZykKLSAgICAgICAgcmV0dXJuIG1fdmlzaWJsZVJlY3Q7
CisgICAgICAgIHJldHVybiBpbnRlcnNlY3RlZFZpc2libGVSZWN0OwogCi0gICAgYm9vbCBsYXJn
ZVZpc2libGVSZWN0Q2hhbmdlID0gIXByZXZpb3VzVmlzaWJsZVJlY3QuaXNFbXB0eSgpICYmICFt
X3Zpc2libGVSZWN0LmludGVyc2VjdHMocHJldmlvdXNWaXNpYmxlUmVjdCk7CisgICAgYm9vbCBs
YXJnZVZpc2libGVSZWN0Q2hhbmdlID0gIXByZXZpb3VzVmlzaWJsZVJlY3QuaXNFbXB0eSgpICYm
ICFpbnRlcnNlY3RlZFZpc2libGVSZWN0LmludGVyc2VjdHMocHJldmlvdXNWaXNpYmxlUmVjdCk7
CiAgICAgCiAgICAgLy8gRklYTUU6IGxvb2sgYXQgaG93IGZhciB0aGUgZG9jdW1lbnQgY2FuIHNj
cm9sbCBpbiBlYWNoIGRpbWVuc2lvbi4KLSAgICBpbnQgY292ZXJhZ2VIb3Jpem9udGFsU2l6ZSA9
IG1fdmlzaWJsZVJlY3Qud2lkdGgoKTsKLSAgICBpbnQgY292ZXJhZ2VWZXJ0aWNhbFNpemUgPSBt
X3Zpc2libGVSZWN0LmhlaWdodCgpOworICAgIGludCBjb3ZlcmFnZUhvcml6b250YWxTaXplID0g
aW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC53aWR0aCgpOworICAgIGludCBjb3ZlcmFnZVZlcnRpY2Fs
U2l6ZSA9IGludGVyc2VjdGVkVmlzaWJsZVJlY3QuaGVpZ2h0KCk7CiAgICAgCiAgICAgLy8gSW5m
bGF0ZSB0aGUgY292ZXJhZ2UgcmVjdCBzbyB0aGF0IGl0IGNvdmVycyAyeCBvZiB0aGUgdmlzaWJs
ZSB3aWR0aCBhbmQgM3ggb2YgdGhlIHZpc2libGUgaGVpZ2h0LgogICAgIC8vIFRoZXNlIHZhbHVl
cyB3ZXJlIGNob3NlbiBiZWNhdXNlIGl0J3MgbW9yZSBjb21tb24gdG8gaGF2ZSB0YWxsIHBhZ2Vz
IGFuZCB0byBzY3JvbGwgdmVydGljYWxseSwKQEAgLTQxNiwxMSArNDQzLDExIEBAIEludFJlY3Qg
VGlsZUNhY2hlOjpjb21wdXRlVGlsZUNvdmVyYWdlUmVjdChjb25zdCBJbnRSZWN0JiBwcmV2aW91
c1Zpc2libGVSZWN0KSBjCiAKICAgICAvLyBEb24ndCBleHRlbmQgY292ZXJhZ2UgYmVmb3JlIDAg
b3IgYWZ0ZXIgdGhlIGVuZC4KICAgICBJbnRSZWN0IGNvdmVyYWdlQm91bmRzID0gYm91bmRzKCk7
Ci0gICAgaW50IGNvdmVyYWdlTGVmdCA9IG1fdmlzaWJsZVJlY3QueCgpIC0gKGNvdmVyYWdlSG9y
aXpvbnRhbFNpemUgLSBtX3Zpc2libGVSZWN0LndpZHRoKCkpIC8gMjsKKyAgICBpbnQgY292ZXJh
Z2VMZWZ0ID0gaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC54KCkgLSAoY292ZXJhZ2VIb3Jpem9udGFs
U2l6ZSAtIGludGVyc2VjdGVkVmlzaWJsZVJlY3Qud2lkdGgoKSkgLyAyOwogICAgIGNvdmVyYWdl
TGVmdCA9IG1pbihjb3ZlcmFnZUxlZnQsIGNvdmVyYWdlQm91bmRzLm1heFgoKSAtIGNvdmVyYWdl
SG9yaXpvbnRhbFNpemUpOwogICAgIGNvdmVyYWdlTGVmdCA9IG1heChjb3ZlcmFnZUxlZnQsIGNv
dmVyYWdlQm91bmRzLngoKSk7CiAKLSAgICBpbnQgY292ZXJhZ2VUb3AgPSBtX3Zpc2libGVSZWN0
LnkoKSAtIChjb3ZlcmFnZVZlcnRpY2FsU2l6ZSAtIG1fdmlzaWJsZVJlY3QuaGVpZ2h0KCkpIC8g
MjsKKyAgICBpbnQgY292ZXJhZ2VUb3AgPSBpbnRlcnNlY3RlZFZpc2libGVSZWN0LnkoKSAtIChj
b3ZlcmFnZVZlcnRpY2FsU2l6ZSAtIGludGVyc2VjdGVkVmlzaWJsZVJlY3QuaGVpZ2h0KCkpIC8g
MjsKICAgICBjb3ZlcmFnZVRvcCA9IG1pbihjb3ZlcmFnZVRvcCwgY292ZXJhZ2VCb3VuZHMubWF4
WSgpIC0gY292ZXJhZ2VWZXJ0aWNhbFNpemUpOwogICAgIGNvdmVyYWdlVG9wID0gbWF4KGNvdmVy
YWdlVG9wLCBjb3ZlcmFnZUJvdW5kcy55KCkpOwogCkBAIC01NDcsNyArNTc0LDEyIEBAIHZvaWQg
VGlsZUNhY2hlOjpyZXZhbGlkYXRlVGlsZXMoVGlsZVZhbGlkYXRpb25Qb2xpY3lGbGFncyBmb3Jl
Z3JvdW5kVmFsaWRhdGlvblBvCiAgICAgaWYgKCFwbGF0Zm9ybUxheWVyKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAobV92aXNpYmxlUmVjdC5pc0VtcHR5KCkgfHwgYm91bmRzKCkuaXNFbXB0
eSgpKQorICAgIEludFJlY3QgaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdCA9IG1fdmlzaWJsZVJlY3Q7
CisKKyAgICBpZiAobV9jbGlwc1RvRXhwb3NlZFJlY3QpCisgICAgICAgIGludGVyc2VjdGVkVmlz
aWJsZVJlY3QuaW50ZXJzZWN0KG1fZXhwb3NlZFJlY3QpOworCisgICAgaWYgKGludGVyc2VjdGVk
VmlzaWJsZVJlY3QuaXNFbXB0eSgpIHx8IGJvdW5kcygpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIAogICAgIFRpbGVWYWxpZGF0aW9uUG9saWN5RmxhZ3MgdmFsaWRhdGlvblBvbGlj
eSA9IG1faXNJbldpbmRvdyA/IGZvcmVncm91bmRWYWxpZGF0aW9uUG9saWN5IDogYmFja2dyb3Vu
ZFZhbGlkYXRpb25Qb2xpY3k7CkBAIC02NTMsNyArNjg1LDcgQEAgdm9pZCBUaWxlQ2FjaGU6OnJl
dmFsaWRhdGVUaWxlcyhUaWxlVmFsaWRhdGlvblBvbGljeUZsYWdzIGZvcmVncm91bmRWYWxpZGF0
aW9uUG8KICAgICBpZiAobV90aWxlZFNjcm9sbGluZ0luZGljYXRvckxheWVyKQogICAgICAgICB1
cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKIAotICAgIG1fdmlzaWJsZVJlY3RBdExhc3RSZXZhbGlk
YXRlID0gbV92aXNpYmxlUmVjdDsKKyAgICBtX3Zpc2libGVSZWN0QXRMYXN0UmV2YWxpZGF0ZSA9
IGludGVyc2VjdGVkVmlzaWJsZVJlY3Q7CiAKICAgICBpZiAoZGlydHlSZWN0cy5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2NGYwMTliLi44MzQ5ODNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTMtMDEtMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xhbXAgVGlsZUNhY2hlIHZpc2libGVSZWN0IHRv
IFdLVmlldydzIHZpc2libGVSZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDY2MDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODQzMTY0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgY2xp
ZW50cyBleHBhbmQgdGhlIFdLVmlldyB0byBiZSBtdWNoIGxhcmdlciB0aGFuIHdoYXQgaXMgdmlz
aWJsZSBvbiBzY3JlZW4sIGFuZAorICAgICAgICBjb250cm9sIHNjcm9sbGluZyB3aXRoIHRoZWly
IG93biB2aWV3LiBDdXJyZW50bHksIHdlIHdpbGwgY3JlYXRlIHRpbGVzIGZvciB0aGUgZW50aXJl
CisgICAgICAgIHZpZXcsIGNvbnN1bWluZyBhIGdyZWF0IGRlYWwgb2YgbWVtb3J5LCBhbmQgY2Fu
IHNvbWV0aW1lcyBmYWN0b3Igc2Nyb2xsYmFycyB3aGljaCBjYW4KKyAgICAgICAgbmV2ZXIgZXhp
c3QgaW50byBsYXlvdXQuIFByb3ZpZGUgV0tWaWV3IFNQSSAoc2V0TWFpbkZyYW1lSXNTY3JvbGxh
YmxlOikgdG8gZHJvcCBpbnRvCisgICAgICAgIGEgbW9kZSB3aGVyZSB3ZSBkaXNhYmxlIG1haW4g
ZnJhbWUgc2Nyb2xsaW5nIGFuZCByZXNwZWN0IHRoZSBXS1ZpZXcncyB2aXNpYmxlUmVjdCB3aGVu
CisgICAgICAgIGNyZWF0aW5nIHRpbGVzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgc2V0RnJhbWVTaXplOl0pOiBVcGRhdGUgdGhl
IHBhZ2UncyB2aWV3RXhwb3NlZFJlY3QgZnJvbSBvdXIgdmlzaWJsZVJlY3QuCisgICAgICAgICgt
W1dLVmlldyBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc10pOiBVcGRhdGUgdGhlIHBhZ2UncyB2
aWV3RXhwb3NlZFJlY3QgZnJvbSBvdXIgdmlzaWJsZVJlY3QuCisgICAgICAgICgtW1dLVmlldyBp
bml0V2l0aEZyYW1lOmNvbnRleHRSZWY6cGFnZUdyb3VwUmVmOnJlbGF0ZWRUb1BhZ2U6XSk6IFRo
ZSBtYWluIGZyYW1lIGlzIHNjcm9sbGFibGUgYnkgZGVmYXVsdC4KKyAgICAgICAgKC1bV0tWaWV3
IGVuYWJsZUZyYW1lU2l6ZVVwZGF0ZXNdKTogSWYgZnJhbWUgc2l6ZSB1cGRhdGVzIGJlY29tZSBl
bmFibGVkLCB1cGRhdGUgdGhlCisgICAgICAgIHBhZ2UncyB2aWV3RXhwb3NlZFJlY3QgZnJvbSBv
dXIgdmlzaWJsZVJlY3QuCisgICAgICAgICgtW1dLVmlldyBzZXRNYWluRnJhbWVJc1Njcm9sbGFi
bGU6XSk6IEFkanVzdCB3aGV0aGVyIHRoZSBtYWluIGZyYW1lIGlzIHNjcm9sbGFibGUsIGFuZCB1
cGRhdGUKKyAgICAgICAgdGhlIHBhZ2UncyB2aWV3RXhwb3NlZFJlY3QgaWYgbmVlZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld1ByaXZhdGUuaDogQWRkZWQgc2V0TWFpbkZy
YW1lSXNTY3JvbGxhYmxlOi4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgIChXZWJQYWdlUHJveHkpOiBBZGQgdmlld0V4cG9zZWRSZWN0Q2hhbmdlZC9zZXRNYWlu
RnJhbWVJc1Njcm9sbGFibGUuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlN
YWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld0V4cG9zZWRSZWN0Q2hh
bmdlZCk6IEZvcndhcmQgdmlld0V4cG9zZWRSZWN0Q2hhbmdlZCB0byBXZWJQYWdlLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZSk6IEZvcndh
cmQgc2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlIHRvIFdlYlBhZ2UuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQ
YWdlKTogRGlzYWJsZSBzY3JvbGxiYXJzIGFuZCBzY3JvbGxpbmcgaWYKKyAgICAgICAgbWFpbiBm
cmFtZSBzY3JvbGxhYmlsaXR5IGlzIGRpc2FibGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6c2V0RXhw
b3NlZFJlY3QpOiBBZGRlZCBlbXB0eSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYTo6bWFpbkZyYW1lU2Nyb2xsYWJpbGl0eUNoYW5nZWQpOiBBZGRl
ZCBlbXB0eSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoRHJhd2luZ0FyZWEpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQpOiBEb24ndCBuZWVkIFdlYkNv
cmU6OiBuYW1lc3BhY2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnZpZXdFeHBvc2VkUmVj
dENoYW5nZWQpOiBGb3J3YXJkIGV4cG9zZWQgcmVjdCBjaGFuZ2VzIHRvIERyYXdpbmdBcmVhIChv
bmx5IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhIGNhcmVzLCBmb3Igbm93KS4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKTogRm9yd2FyZCBz
Y3JvbGxhYmlsaXR5IGNoYW5nZXMgdG8gRHJhd2luZ0FyZWEgYW5kIHRoZSBtYWluIEZyYW1lVmll
dy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKTogRG9uJ3QgbmVl
ZCBXZWJDb3JlOjogbmFtZXNwYWNlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgIChXZWJQYWdlKTogQWRkIG1haW5GcmFtZUlzU2Nyb2xsYWJsZSwgdmll
d0V4cG9zZWRSZWN0Q2hhbmdlZCwgc2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlLCBhbmQgc3RvcmFn
ZSBmb3IgbV9tYWluRnJhbWVJc1Njcm9sbGFibGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
Om1haW5GcmFtZUlzU2Nyb2xsYWJsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW46IEFkZCBWaWV3RXhwb3NlZFJlY3RDaGFuZ2VkIGFuZCBTZXRNYWlu
RnJhbWVJc1Njcm9sbGFibGUgbWVzc2FnZXMuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAgICAgICAoVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRFeHBvc2VkUmVjdCk6IEZvcndhcmQgbmV3IGV4
cG9zZWQgcmVjdCB0byBUaWxlZEJhY2tpbmcgKG9ubHkgVGlsZUNhY2hlIGNhcmVzLCBmb3Igbm93
KS4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6Om1haW5G
cmFtZVNjcm9sbGFiaWxpdHlDaGFuZ2VkKTogQXNrIFRpbGVkQmFja2luZyB0byBjbGlwIHRvIHRo
ZSBleHBvc2VkUmVjdCBpZiBtYWluIGZyYW1lIHNjcm9sbGluZyBpcyBkaXNhYmxlZC4KKyAgICAg
ICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5
KTogVXNlIHNpemUgaW5zdGVhZCBvZiB2aWV3U2l6ZSBpbiBjYXNlIHdlJ3ZlIGNoYW5nZWQgaXQg
YmVjYXVzZSBvZiBtX21pbmltdW1MYXlvdXRXaWR0aC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKTogVXBkYXRl
IGV4cG9zZWRSZWN0IGFuZCBjbGlwc1RvRXhwb3NlZFJlY3QuCisKKzIwMTMtMDEtMTAgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnZpZXdFeHBv
c2VkUmVjdENoYW5nZWQpOiAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OiBBZGQgdmlld0V4cG9zZWRSZWN0Q2hhbmdlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkIFZpZXdFeHBvc2VkUmVjdENoYW5nZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YS5oOgorICAgICAgICAoVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEpOiBBZGQgc2V0RXhw
b3NlZFJlY3QuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnNldEV4cG9zZWRSZWN0KTogCisKIDIwMTMtMDEtMTUgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgdGlsZWQgV0tWaWV3
cyB0byBoYXZlIHRyYW5zcGFyZW50IGJhY2tncm91bmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggYWQ1OThmYy4uNThjYTY2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMjEwLDYgKzIxMCw3IEBAIHN0
cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKICAgICBTdHJpbmcgX3By
b21pc2VkVVJMOwogCiAgICAgTlNTaXplIF9pbnRyaW5zaWNDb250ZW50U2l6ZTsKKyAgICBCT09M
IF9tYWluRnJhbWVJc1Njcm9sbGFibGU7CiB9CiAKIEBlbmQKQEAgLTM2Miw5ICszNjMsMTIgQEAg
c3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAgICAgICBfZGF0
YS0+X3dpbmRvd0hhc1ZhbGlkQmFja2luZ1N0b3JlID0gTk87CiAKICAgICBbc3VwZXIgc2V0RnJh
bWVTaXplOnNpemVdOwotICAgIAotICAgIGlmICghW3NlbGYgZnJhbWVTaXplVXBkYXRlc0Rpc2Fi
bGVkXSkKKworICAgIGlmICghW3NlbGYgZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVkXSkgeworICAg
ICAgICBpZiAoIV9kYXRhLT5fbWFpbkZyYW1lSXNTY3JvbGxhYmxlKQorICAgICAgICAgICAgX2Rh
dGEtPl9wYWdlLT52aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGVuY2xvc2luZ0ludFJlY3QoW3NlbGYg
dmlzaWJsZVJlY3RdKSk7CiAgICAgICAgIFtzZWxmIF9zZXREcmF3aW5nQXJlYVNpemU6c2l6ZV07
CisgICAgfQogfQogCiAtICh2b2lkKV91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzCkBAIC0zNzcs
NiArMzgxLDggQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewog
ICAgIE5TUG9pbnQgYWNjZXNzaWJpbGl0eVBvc2l0aW9uID0gW1tzZWxmIGFjY2Vzc2liaWxpdHlB
dHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlQb3NpdGlvbkF0dHJpYnV0ZV0gcG9pbnRWYWx1
ZV07CiAgICAgCiAgICAgX2RhdGEtPl9wYWdlLT53aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChl
bmNsb3NpbmdJbnRSZWN0KHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcyksIGVuY2xvc2lu
Z0ludFJlY3Qodmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyksIEludFBvaW50KGFjY2Vzc2li
aWxpdHlQb3NpdGlvbikpOworICAgIGlmICghX2RhdGEtPl9tYWluRnJhbWVJc1Njcm9sbGFibGUp
CisgICAgICAgIF9kYXRhLT5fcGFnZS0+dmlld0V4cG9zZWRSZWN0Q2hhbmdlZChlbmNsb3NpbmdJ
bnRSZWN0KFtzZWxmIHZpc2libGVSZWN0XSkpOwogfQogCiAtICh2b2lkKXJlbmV3R1N0YXRlCkBA
IC0yOTQ0LDYgKzI5NTAsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5h
bWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogI2VuZGlmCiAgICAgX2RhdGEtPl9tb3VzZURvd25F
dmVudCA9IG5pbDsKICAgICBfZGF0YS0+X2lnbm9yaW5nTW91c2VEcmFnZ2VkRXZlbnRzID0gTk87
CisgICAgX2RhdGEtPl9tYWluRnJhbWVJc1Njcm9sbGFibGUgPSBZRVM7CiAKICAgICBfZGF0YS0+
X2ludHJpbnNpY0NvbnRlbnRTaXplID0gTlNNYWtlU2l6ZShOU1ZpZXdOb0luc3RyaW5zaWNNZXRy
aWMsIE5TVmlld05vSW5zdHJpbnNpY01ldHJpYyk7CiAKQEAgLTMwMzAsOCArMzAzNywxMSBAQCBz
dGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpw
YXRoKQogICAgIGlmICghX2RhdGEtPl9mcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRDb3VudCkKICAg
ICAgICAgcmV0dXJuOwogICAgIAotICAgIGlmICghKC0tX2RhdGEtPl9mcmFtZVNpemVVcGRhdGVz
RGlzYWJsZWRDb3VudCkpCisgICAgaWYgKCEoLS1fZGF0YS0+X2ZyYW1lU2l6ZVVwZGF0ZXNEaXNh
YmxlZENvdW50KSkgeworICAgICAgICBpZiAoIV9kYXRhLT5fbWFpbkZyYW1lSXNTY3JvbGxhYmxl
KQorICAgICAgICAgICAgX2RhdGEtPl9wYWdlLT52aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGVuY2xv
c2luZ0ludFJlY3QoW3NlbGYgdmlzaWJsZVJlY3RdKSk7CiAgICAgICAgIFtzZWxmIF9zZXREcmF3
aW5nQXJlYVNpemU6W3NlbGYgZnJhbWVdLnNpemVdOworICAgIH0KIH0KIAogLSAoQk9PTClmcmFt
ZVNpemVVcGRhdGVzRGlzYWJsZWQKQEAgLTMwNTMsNiArMzA2MywxNiBAQCBzdGF0aWMgTlNTdHJp
bmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIFdL
SGlkZVdvcmREZWZpbml0aW9uV2luZG93KCk7CiB9CiAKKy0gKHZvaWQpc2V0TWFpbkZyYW1lSXNT
Y3JvbGxhYmxlOihib29sKWlzU2Nyb2xsYWJsZQoreworICAgIF9kYXRhLT5fbWFpbkZyYW1lSXNT
Y3JvbGxhYmxlID0gaXNTY3JvbGxhYmxlOworCisgICAgaWYgKCFpc1Njcm9sbGFibGUpCisgICAg
ICAgIF9kYXRhLT5fcGFnZS0+dmlld0V4cG9zZWRSZWN0Q2hhbmdlZChlbmNsb3NpbmdJbnRSZWN0
KFtzZWxmIHZpc2libGVSZWN0XSkpOworCisgICAgX2RhdGEtPl9wYWdlLT5zZXRNYWluRnJhbWVJ
c1Njcm9sbGFibGUoaXNTY3JvbGxhYmxlKTsKK30KKwogLSAoQ0dGbG9hdCltaW5pbXVtTGF5b3V0
V2lkdGgKIHsKICAgICByZXR1cm4gX2RhdGEtPl9wYWdlLT5taW5pbXVtTGF5b3V0V2lkdGgoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld1ByaXZhdGUuaApp
bmRleCAyMTYxZWI3Li5iODQwNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3UHJpdmF0ZS5oCkBAIC01MCw2ICs1MCw4IEBACiAtICh2b2lkKXBlcmZv
cm1EaWN0aW9uYXJ5TG9va3VwQXRDdXJyZW50TW91c2VMb2NhdGlvbjsKICsgKHZvaWQpaGlkZVdv
cmREZWZpbml0aW9uV2luZG93OwogCistICh2b2lkKXNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZToo
Ym9vbClpc1Njcm9sbGFibGU7CisKIEBwcm9wZXJ0eSAocmVhZHdyaXRlKSBDR0Zsb2F0IG1pbmlt
dW1MYXlvdXRXaWR0aDsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IDZlYWYyZmYuLjdmOGI1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTM4OCw2ICszODgsOCBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIHZvaWQgdXBkYXRlV2luZG93SXNWaXNpYmxlKGJvb2wgd2luZG93SXNWaXNpYmxlKTsK
ICAgICB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpOworICAgIHZvaWQgdmlld0V4cG9zZWRSZWN0
Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBleHBvc2VkUmVjdCk7CisgICAgdm9pZCBz
ZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoYm9vbCk7CiAKICAgICB2b2lkIHNldENvbXBvc2l0aW9u
KGNvbnN0IFN0cmluZyYgdGV4dCwgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5l
PiB1bmRlcmxpbmVzLCB1aW50NjRfdCBzZWxlY3Rpb25TdGFydCwgdWludDY0X3Qgc2VsZWN0aW9u
RW5kLCB1aW50NjRfdCByZXBsYWNlbWVudFJhbmdlU3RhcnQsIHVpbnQ2NF90IHJlcGxhY2VtZW50
UmFuZ2VFbmQpOwogICAgIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IDE1YzUwZjcuLmFm
OTM2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVBy
b3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5
TWFjLm1tCkBAIC0xMzcsNiArMTM3LDIyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aW5kb3dBbmRW
aWV3RnJhbWVzQ2hhbmdlZChjb25zdCBJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuCiAgICAg
cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpXaW5kb3dBbmRWaWV3RnJhbWVzQ2hh
bmdlZCh3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIHZpZXdGcmFtZUluV2luZG93Q29v
cmRpbmF0ZXMsIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpLCBtX3BhZ2VJRCk7CiB9CiAK
K3ZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGNvbnN0IEludFJlY3Qm
IGV4cG9zZWRSZWN0KQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlZpZXdFeHBvc2VkUmVjdENo
YW5nZWQoZXhwb3NlZFJlY3QpLCBtX3BhZ2VJRCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoYm9vbCBpc1Njcm9sbGFibGUpCit7CisgICAgaWYgKCFp
c1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6U2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKGlzU2Nyb2xsYWJsZSksIG1fcGFn
ZUlEKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmlu
ZyYgdGV4dCwgVmVjdG9yPENvbXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzLCB1aW50NjRf
dCBzZWxlY3Rpb25TdGFydCwgdWludDY0X3Qgc2VsZWN0aW9uRW5kLCB1aW50NjRfdCByZXBsYWNl
bWVudFJhbmdlU3RhcnQsIHVpbnQ2NF90IHJlcGxhY2VtZW50UmFuZ2VFbmQpCiB7CiAgICAgaWYg
KCFpc1ZhbGlkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZjc0
NTQ3My4uYmM2ODk1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTEy
MjgsMjYgKzEyMjgsMjkgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRv
Q29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgYm9vbCBpc01haW5GcmFtZSA9IHdlYlBhZ2UtPm1h
aW5XZWJGcmFtZSgpID09IG1fZnJhbWU7CiAgICAgYm9vbCBpc1RyYW5zcGFyZW50ID0gIXdlYlBh
Z2UtPmRyYXdzQmFja2dyb3VuZCgpOwogICAgIGJvb2wgc2hvdWxkVXNlRml4ZWRMYXlvdXQgPSBp
c01haW5GcmFtZSAmJiB3ZWJQYWdlLT51c2VGaXhlZExheW91dCgpOworICAgIGJvb2wgc2hvdWxk
RGlzYWJsZVNjcm9sbGluZyA9IGlzTWFpbkZyYW1lICYmICF3ZWJQYWdlLT5tYWluRnJhbWVJc1Nj
cm9sbGFibGUoKTsKKyAgICBib29sIHNob3VsZEhpZGVTY3JvbGxiYXJzID0gc2hvdWxkVXNlRml4
ZWRMYXlvdXQgfHwgc2hvdWxkRGlzYWJsZVNjcm9sbGluZzsKICAgICBJbnRSZWN0IGN1cnJlbnRG
aXhlZFZpc2libGVDb250ZW50UmVjdCA9IG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCkgPyBt
X2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5maXhlZFZpc2libGVDb250ZW50UmVjdCgpIDog
SW50UmVjdCgpOwogCiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBtX2Zy
YW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCk7
CiAgICAgbV9mcmFtZUhhc0N1c3RvbVJlcHJlc2VudGF0aW9uID0gaXNNYWluRnJhbWUgJiYgd2Vi
UGFnZS0+c2hvdWxkVXNlQ3VzdG9tUmVwcmVzZW50YXRpb25Gb3JSZXNwb25zZShyZXNwb25zZSk7
CiAgICAgbV9mcmFtZUNhbWVGcm9tUGFnZUNhY2hlID0gZmFsc2U7CiAKKyAgICBTY3JvbGxiYXJN
b2RlIGRlZmF1bHRTY3JvbGxiYXJNb2RlID0gc2hvdWxkSGlkZVNjcm9sbGJhcnMgPyBTY3JvbGxi
YXJBbHdheXNPZmYgOiBTY3JvbGxiYXJBdXRvOworCisgICAgbV9mcmFtZS0+Y29yZUZyYW1lKCkt
PmNyZWF0ZVZpZXcod2ViUGFnZS0+c2l6ZSgpLCBiYWNrZ3JvdW5kQ29sb3IsIGlzVHJhbnNwYXJl
bnQsCisgICAgICAgIEludFNpemUoKSwgY3VycmVudEZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0LCBz
aG91bGRVc2VGaXhlZExheW91dCwKKyAgICAgICAgZGVmYXVsdFNjcm9sbGJhck1vZGUsIC8qIGxv
Y2sgKi8gc2hvdWxkSGlkZVNjcm9sbGJhcnMsIGRlZmF1bHRTY3JvbGxiYXJNb2RlLCAvKiBsb2Nr
ICovIHNob3VsZEhpZGVTY3JvbGxiYXJzKTsKKworICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52
aWV3KCktPnNldFByb2hpYml0c1Njcm9sbGluZyhzaG91bGREaXNhYmxlU2Nyb2xsaW5nKTsKKwog
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlmIChzaG91bGRVc2VGaXhlZExheW91
dCkgewotICAgICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+Y3JlYXRlVmlldyh3ZWJQYWdlLT5z
aXplKCksIGJhY2tncm91bmRDb2xvciwgaXNUcmFuc3BhcmVudCwKLSAgICAgICAgICAgIEludFNp
emUoKSwgY3VycmVudEZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0LCBzaG91bGRVc2VGaXhlZExheW91
dCwKLSAgICAgICAgICAgIFNjcm9sbGJhckFsd2F5c09mZiwgLyogbG9jayAqLyB0cnVlLCBTY3Jv
bGxiYXJBbHdheXNPZmYsIC8qIGxvY2sgKi8gdHJ1ZSk7Ci0KICAgICAgICAgbV9mcmFtZS0+Y29y
ZUZyYW1lKCktPnZpZXcoKS0+c2V0RGVsZWdhdGVzU2Nyb2xsaW5nKHNob3VsZFVzZUZpeGVkTGF5
b3V0KTsKICAgICAgICAgbV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+c2V0UGFpbnRzRW50
aXJlQ29udGVudHMoc2hvdWxkVXNlRml4ZWRMYXlvdXQpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogI2VuZGlmCi0KLSAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+Y3JlYXRlVmlldyh3ZWJQYWdl
LT5zaXplKCksIGJhY2tncm91bmRDb2xvciwgaXNUcmFuc3BhcmVudCwKLSAgICAgICAgSW50U2l6
ZSgpLCBjdXJyZW50Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QsIHNob3VsZFVzZUZpeGVkTGF5b3V0
KTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkU2F2ZVRvUGFnZUNhY2hlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5k
ZXggYTA1ZDAwMy4uOGNmZTI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTg0LDYgKzg0LDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIG1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBXZWJD
b3JlOjpJbnRTaXplJikgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RXhwb3NlZFJlY3QoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBtYWluRnJhbWVTY3Jv
bGxhYmlsaXR5Q2hhbmdlZChib29sKSB7IH0KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGlj
c0xheWVyRmFjdG9yeSgpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENv
bXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAyNTkwM2E4Li5hNWY4
OWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC0yODk5LDcgKzI4OTksNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFdpbmRvd0lzVmlzaWJsZShi
b29sIHdpbmRvd0lzVmlzaWJsZSkKICAgICAgICAgKCppdCktPnNldFdpbmRvd0lzVmlzaWJsZSh3
aW5kb3dJc1Zpc2libGUpOwogfQogCi12b2lkIFdlYlBhZ2U6OndpbmRvd0FuZFZpZXdGcmFtZXND
aGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGlu
YXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRl
cywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMp
Cit2b2lkIFdlYlBhZ2U6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IEludFJlY3Qm
IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgSW50UmVjdCYgdmlld0ZyYW1l
SW5XaW5kb3dDb29yZGluYXRlcywgY29uc3QgSW50UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29v
cmRpbmF0ZXMpCiB7CiAgICAgbV93aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMgPSB3aW5k
b3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7CiAgICAgbV92aWV3RnJhbWVJbldpbmRvd0Nvb3Jk
aW5hdGVzID0gdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlczsKQEAgLTI5MTEsNiArMjkxMSwy
MiBAQCB2b2lkIFdlYlBhZ2U6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TYwogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUGFnZTo6
dmlld0V4cG9zZWRSZWN0Q2hhbmdlZChjb25zdCBJbnRSZWN0JiBleHBvc2VkUmVjdCkKK3sKKyAg
ICBtX2RyYXdpbmdBcmVhLT5zZXRFeHBvc2VkUmVjdChleHBvc2VkUmVjdCk7Cit9CisKK3ZvaWQg
V2ViUGFnZTo6c2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKGJvb2wgaXNTY3JvbGxhYmxlKQorewor
ICAgIG1fbWFpbkZyYW1lSXNTY3JvbGxhYmxlID0gaXNTY3JvbGxhYmxlOworICAgIG1fZHJhd2lu
Z0FyZWEtPm1haW5GcmFtZVNjcm9sbGFiaWxpdHlDaGFuZ2VkKGlzU2Nyb2xsYWJsZSk7CisKKyAg
ICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPnZp
ZXcoKSkgeworICAgICAgICBmcmFtZVZpZXctPnNldENhbkhhdmVTY3JvbGxiYXJzKGlzU2Nyb2xs
YWJsZSk7CisgICAgICAgIGZyYW1lVmlldy0+c2V0UHJvaGliaXRzU2Nyb2xsaW5nKCFpc1Njcm9s
bGFibGUpOworICAgIH0KK30KKwogYm9vbCBXZWJQYWdlOjp3aW5kb3dJc0ZvY3VzZWQoKSBjb25z
dAogewogICAgIHJldHVybiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgpOwpA
QCAtMzI4Myw3ICszMjk5LDcgQEAgdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGlu
Zyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW4KIH0KIAogI2lmIFBM
QVRGT1JNKE1BQykKLXZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBy
ZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNpemUsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCit2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mIHByaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFdlYkZy
YW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLndlYkZyYW1lKGZyYW1lSUQpOwogICAg
IEZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZSA/IGZyYW1lLT5jb3JlRnJhbWUoKSA6IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxZWI2MzMyLi41
OTIwMzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
QEAgLTYwNCw2ICs2MDQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzYXZlUERGVG9UZW1wb3JhcnlG
b2xkZXJBbmRPcGVuV2l0aE5hdGl2ZUFwcGxpY2F0aW9uKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVk
RmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIGNvbnN0IHVpbnQ4
X3QqIGRhdGEsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgY29uc3QgU3RyaW5nJiBwZGZVVUlEKTsKICNl
bmRpZgogCisgICAgYm9vbCBtYWluRnJhbWVJc1Njcm9sbGFibGUoKSB7IHJldHVybiBtX21haW5G
cmFtZUlzU2Nyb2xsYWJsZTsgfQorCiBwcml2YXRlOgogICAgIFdlYlBhZ2UodWludDY0X3QgcGFn
ZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKQEAgLTcyNCw2ICs3MjYs
OSBAQCBwcml2YXRlOgogICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZGcm9tUERGRG9jdW1lbnQoQ0dD
b250ZXh0UmVmLCBQREZEb2N1bWVudCAqLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJz
dCwgdWludDMyX3QgY291bnQpOwogI2VuZGlmCiAKKyAgICB2b2lkIHZpZXdFeHBvc2VkUmVjdENo
YW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZXhwb3NlZFJlY3QpOworICAgIHZvaWQgc2V0
TWFpbkZyYW1lSXNTY3JvbGxhYmxlKGJvb2wpOworCiAgICAgdm9pZCB1bmFwcGx5RWRpdENvbW1h
bmQodWludDY0X3QgY29tbWFuZElEKTsKICAgICB2b2lkIHJlYXBwbHlFZGl0Q29tbWFuZCh1aW50
NjRfdCBjb21tYW5kSUQpOwogICAgIHZvaWQgZGlkUmVtb3ZlRWRpdENvbW1hbmQodWludDY0X3Qg
Y29tbWFuZElEKTsKQEAgLTgxMSw2ICs4MTYsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3Nj
cm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQ7CiAKKyAgICBib29sIG1fbWFpbkZyYW1l
SXNTY3JvbGxhYmxlOworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGJvb2wgbV9wZGZQbHVnaW5F
bmFibGVkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDAwY2RkZGQuLjk4NjFiMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBA
IC0yNTksNiArMjU5LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSB7CiAKICAgICBTZXRXaW5kb3dJ
c1Zpc2libGUoYm9vbCB3aW5kb3dJc1Zpc2libGUpCiAgICAgV2luZG93QW5kVmlld0ZyYW1lc0No
YW5nZWQoV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIFdl
YkNvcmU6OkludFJlY3Qgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgV2ViQ29yZTo6SW50
UG9pbnQgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcykKKyAgICBWaWV3RXhwb3NlZFJlY3RD
aGFuZ2VkKFdlYkNvcmU6OkludFJlY3QgZXhwb3NlZFJlY3QpCisgICAgU2V0TWFpbkZyYW1lSXNT
Y3JvbGxhYmxlKGJvb2wgaXNTY3JvbGxhYmxlKQogICAgIFJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNz
aWJpbGl0eVRva2VucyhDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIGVsZW1lblRva2VuLCBDb3JlSVBD
OjpEYXRhUmVmZXJlbmNlIHdpbmRvd1Rva2VuKQogICAgIEdldFN0cmluZ1NlbGVjdGlvbkZvclBh
c3RlYm9hcmQoKSAtPiAoV1RGOjpTdHJpbmcgc3RyaW5nVmFsdWUpCiAgICAgR2V0RGF0YVNlbGVj
dGlvbkZvclBhc3RlYm9hcmQoV1RGOjpTdHJpbmcgcGFzdGVib2FyZFR5cGUpIC0+IChXZWJLaXQ6
OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAppbmRleCBiNjlhZjU3Li5iYzU3MTY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCkBAIC03MSw2ICs3MSw5IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlBy
ZWZlcmVuY2VzU3RvcmUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lQ29u
dGVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBPVkVSUklERTsKIAorICAg
IHZpcnR1YWwgdm9pZCBzZXRFeHBvc2VkUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1haW5GcmFtZVNjcm9sbGFiaWxpdHlDaGFuZ2VkKGJv
b2wpIE9WRVJSSURFOworCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ1Vw
ZGF0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGdW5jdGlvbjx2b2lkICgpPiYpIE9WRVJSSURFOwog
CiAgICAgLy8gV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudApAQCAtMTEzLDYgKzExNiw4IEBA
IHByaXZhdGU6CiAKICAgICBib29sIG1faXNQYWludGluZ1N1c3BlbmRlZDsKIAorICAgIFdlYkNv
cmU6OkludFJlY3QgbV9leHBvc2VkUmVjdDsKKwogICAgIGRvdWJsZSBtX21pbmltdW1MYXlvdXRX
aWR0aDsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGFzdFNlbnRJbnRyaW5zaWNDb250ZW50U2l6
ZTsKICAgICBib29sIG1faW5VcGRhdGVHZW9tZXRyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IGYwMjY0ZjguLmRmYWEzMTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtMzQxLDYgKzM0MSwxNyBAQCB2b2lk
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpyZXN1bWVQYWludGluZygpCiAgICAgICAg
IG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+cmVzdW1lU2NyaXB0ZWRBbmltYXRpb25zKCk7CiB9CiAK
K3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldEV4cG9zZWRSZWN0KGNvbnN0
IEludFJlY3QmIGV4cG9zZWRSZWN0KQoreworICAgIG1fZXhwb3NlZFJlY3QgPSBleHBvc2VkUmVj
dDsKKyAgICBtYWluRnJhbWVUaWxlZEJhY2tpbmcoKS0+c2V0RXhwb3NlZFJlY3QoZXhwb3NlZFJl
Y3QpOworfQorCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjptYWluRnJhbWVT
Y3JvbGxhYmlsaXR5Q2hhbmdlZChib29sIGlzU2Nyb2xsYWJsZSkKK3sKKyAgICBtYWluRnJhbWVU
aWxlZEJhY2tpbmcoKS0+c2V0Q2xpcHNUb0V4cG9zZWRSZWN0KCFpc1Njcm9sbGFibGUpOworfQor
CiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25z
dCBJbnRTaXplJiB2aWV3U2l6ZSwgZG91YmxlIG1pbmltdW1MYXlvdXRXaWR0aCkKIHsKICAgICBt
X2luVXBkYXRlR2VvbWV0cnkgPSB0cnVlOwpAQCAtMzYyLDcgKzM3Myw3IEBAIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IEludFNpemUmIHZp
ZXdTaXplLCBkb3ViCiAgICAgbV93ZWJQYWdlLT5sYXlvdXRJZk5lZWRlZCgpOwogCiAgICAgaWYg
KG1fcGFnZU92ZXJsYXlMYXllcikKLSAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXRTaXpl
KHZpZXdTaXplKTsKKyAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXRTaXplKHNpemUpOwog
CiAgICAgaWYgKCFtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4pCiAgICAgICAgIGZsdXNoTGF5ZXJz
KCk7CkBAIC0zNzAsNyArMzgxLDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGRvdWIKICAgICBbQ0FU
cmFuc2FjdGlvbiBiZWdpbl07CiAgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6
WUVTXTsKIAotICAgIG1fcm9vdExheWVyLmdldCgpLmZyYW1lID0gQ0dSZWN0TWFrZSgwLCAwLCB2
aWV3U2l6ZS53aWR0aCgpLCB2aWV3U2l6ZS5oZWlnaHQoKSk7CisgICAgbV9yb290TGF5ZXIuZ2V0
KCkuZnJhbWUgPSBDR1JlY3RNYWtlKDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7
CiAKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwogICAgIApAQCAtNDUwLDggKzQ2MSwxMSBA
QCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRSb290Q29tcG9zaXRpbmdM
YXllcihDQUxheWVyICpsYXllcikKICAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQogICAgICAg
ICBbbV9yb290TGF5ZXIuZ2V0KCkgYWRkU3VibGF5ZXI6bV9wYWdlT3ZlcmxheUxheWVyLT5wbGF0
Zm9ybUxheWVyKCldOwogCi0gICAgaWYgKFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nID0gbWFp
bkZyYW1lVGlsZWRCYWNraW5nKCkpCisgICAgaWYgKFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5n
ID0gbWFpbkZyYW1lVGlsZWRCYWNraW5nKCkpIHsKICAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRB
Z2dyZXNzaXZlbHlSZXRhaW5zVGlsZXMobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygp
LT5hZ2dyZXNzaXZlVGlsZVJldGVudGlvbkVuYWJsZWQoKSk7CisgICAgICAgIHRpbGVkQmFja2lu
Zy0+c2V0RXhwb3NlZFJlY3QobV9leHBvc2VkUmVjdCk7CisgICAgICAgIHRpbGVkQmFja2luZy0+
c2V0Q2xpcHNUb0V4cG9zZWRSZWN0KCFtX3dlYlBhZ2UtPm1haW5GcmFtZUlzU2Nyb2xsYWJsZSgp
KTsKKyAgICB9CiAKICAgICB1cGRhdGVEZWJ1Z0luZm9MYXllcihtX3dlYlBhZ2UtPmNvcmVQYWdl
KCktPnNldHRpbmdzKCktPnNob3dUaWxlZFNjcm9sbGluZ0luZGljYXRvcigpKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182880</attachid>
            <date>2013-01-15 17:13:16 -0800</date>
            <delta_ts>2013-01-15 17:28:42 -0800</delta_ts>
            <desc>patch after talking to smfr</desc>
            <filename>setMainFrameIsScrollable.diff</filename>
            <type>text/plain</type>
            <size>31265</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiY2I0YzMwLi4zNzUxYjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTMtMDEtMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgQ2xhbXAgVGlsZUNhY2hlIHZpc2libGVSZWN0IHRvIFdLVmlldydzIHZpc2libGVS
ZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY2
MDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODQzMTY0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRC
YWNraW5nLmg6CisgICAgICAgIChUaWxlZEJhY2tpbmcpOiBBZGQgc2V0RXhwb3NlZFJlY3QgYW5k
IHNldENsaXBzVG9FeHBvc2VkUmVjdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvVGlsZUNhY2hlLmg6CisgICAgICAgIChUaWxlQ2FjaGUpOiBBZGQgc2V0RXhwb3NlZFJlY3Qs
IHNldENsaXBzVG9FeHBvc2VkUmVjdCwgYW5kIHN0b3JhZ2UgZm9yIHRoZWlyIHJlc3BlY3RpdmUg
dmFsdWVzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW06
CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ2FjaGU6OlRpbGVDYWNoZSk6IEluaXRpYWxpemUgbV9j
bGlwc1RvRXhwb3NlZFJlY3QgdG8gZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpUaWxlQ2FjaGU6
OnNldEV4cG9zZWRSZWN0KTogVXBkYXRlIGV4cG9zZWRSZWN0IGFuZCByZXZhbGlkYXRlIHRpbGVz
LgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNhY2hlOjpzZXRDbGlwc1RvRXhwb3NlZFJlY3QpOiBV
cGRhdGUgY2xpcHNUb0V4cG9zZWRSZWN0IGFuZCByZXZhbGlkYXRlIHRpbGVzOworICAgICAgICBp
ZiB3ZSdyZSBnb2luZyBmcm9tIHVuY2xpcHBlZCB0byBjbGlwcGVkLCB3ZSBhbHJlYWR5IGhhdmUg
dGlsZXMsIHNvIHdlIGNhbiBza2lwIHRpbGUgcmV2YWxpZGF0aW9uLgorICAgICAgICAoV2ViQ29y
ZTo6VGlsZUNhY2hlOjpjb21wdXRlVGlsZUNvdmVyYWdlUmVjdCk6IEludGVyc2VjdCBleGlzaXRp
bmcgdmlzaWJsZSByZWN0IHdpdGgKKyAgICAgICAgZXhwb3NlZCByZWN0IHRvIGdldCB0aGUgdmlz
aWJsZSByZWN0IHdlIGFjdHVhbGx5IGNhcmUgYWJvdXQuCisgICAgICAgIChXZWJDb3JlOjpUaWxl
Q2FjaGU6OnJldmFsaWRhdGVUaWxlcyk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpyZXF1aXJlc092ZXJoYW5nQXJlYXNMYXllcik6IERvbid0IGNyZWF0ZSBhbiBvdmVy
aGFuZyBsYXllciBpZiB0aGUgZnJhbWUgaXNuJ3Qgc2Nyb2xsYWJsZS4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb250ZW50U2hhZG93TGF5ZXIpOiBE
b24ndCBjcmVhdGUgYSBzaGFkb3cgbGF5ZXIgaWYgdGhlIGZyYW1lIGlzbid0IHNjcm9sbGFibGUu
CisKIDIwMTMtMDEtMTUgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAog
ICAgICAgICBbR1RLXSBFbmFibGUgUGVyZm9ybWFuY2UgVGltZWxpbmUsIFJlc291cmNlIFRpbWlu
ZywgTmF2aWdhdGlvbiBUaW1pbmcgZmVhdHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmgKaW5kZXggNDFiMzM2ZS4uYTAwZDAyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmgKQEAgLTQ3
LDYgKzQ3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlUmVjdChjb25z
dCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgSW50UmVjdCB2aXNpYmxlUmVjdCgpIGNvbnN0
ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBvc2VkUmVjdChjb25zdCBJbnRSZWN0Jikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRDbGlwc1RvRXhwb3NlZFJlY3QoYm9vbCkgPSAwOwor
CiAgICAgdmlydHVhbCB2b2lkIHByZXBvcHVsYXRlUmVjdChjb25zdCBJbnRSZWN0JikgPSAwOwog
CiAgICAgdmlydHVhbCB2b2lkIHNldElzSW5XaW5kb3coYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5oCmluZGV4IGFl
MDQ3ZTIuLjFkZmM4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9UaWxlQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvVGlsZUNhY2hlLmgKQEAgLTEwNiw2ICsxMDYsOCBAQCBwcml2YXRlOgogCiAg
ICAgLy8gVGlsZWRCYWNraW5nIG1lbWJlciBmdW5jdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIHNl
dFZpc2libGVSZWN0KGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0RXhwb3NlZFJlY3QoY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRDbGlwc1RvRXhwb3NlZFJlY3QoYm9vbCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHByZXBvcHVsYXRlUmVjdChjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHNldElzSW5XaW5kb3coYm9vbCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFRp
bGVDb3ZlcmFnZShUaWxlQ292ZXJhZ2UpIE9WRVJSSURFOwpAQCAtMTY4LDYgKzE3MCw3IEBAIHBy
aXZhdGU6CiAgICAgSW50U2l6ZSBtX3RpbGVTaXplOwogICAgIEludFJlY3QgbV92aXNpYmxlUmVj
dDsKICAgICBJbnRSZWN0IG1fdmlzaWJsZVJlY3RBdExhc3RSZXZhbGlkYXRlOworICAgIEludFJl
Y3QgbV9leHBvc2VkUmVjdDsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxUaWxlSW5kZXgsIFRpbGVJ
bmZvPiBUaWxlTWFwOwogICAgIFRpbGVNYXAgbV90aWxlczsKQEAgLTE5Nyw2ICsyMDAsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV91bnBhcmVudHNPZmZzY3JlZW5UaWxlczsKICAgICBib29sIG1f
YWNjZWxlcmF0ZXNEcmF3aW5nOwogICAgIGJvb2wgbV90aWxlc0FyZU9wYXF1ZTsKKyAgICBib29s
IG1fY2xpcHNUb0V4cG9zZWRSZWN0OwogCiAgICAgUmV0YWluUHRyPENHQ29sb3JSZWY+IG1fdGls
ZURlYnVnQm9yZGVyQ29sb3I7CiAgICAgZmxvYXQgbV90aWxlRGVidWdCb3JkZXJXaWR0aDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2Fj
aGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hl
Lm1tCmluZGV4IGE2ZDNlMjcuLmQ2ZWMyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbQpAQCAtMTA5LDYgKzEwOSw3IEBA
IFRpbGVDYWNoZTo6VGlsZUNhY2hlKFdlYlRpbGVDYWNoZUxheWVyKiB0aWxlQ2FjaGVMYXllcikK
ICAgICAsIG1fdW5wYXJlbnRzT2Zmc2NyZWVuVGlsZXMoZmFsc2UpCiAgICAgLCBtX2FjY2VsZXJh
dGVzRHJhd2luZyhmYWxzZSkKICAgICAsIG1fdGlsZXNBcmVPcGFxdWUoZmFsc2UpCisgICAgLCBt
X2NsaXBzVG9FeHBvc2VkUmVjdChmYWxzZSkKICAgICAsIG1fdGlsZURlYnVnQm9yZGVyV2lkdGgo
MCkKICAgICAsIG1faW5kaWNhdG9yTW9kZShUaHJlYWRlZFNjcm9sbGluZ0luZGljYXRpb24pCiB7
CkBAIC0zMDUsNiArMzA2LDI3IEBAIHZvaWQgVGlsZUNhY2hlOjpzZXRWaXNpYmxlUmVjdChjb25z
dCBJbnRSZWN0JiB2aXNpYmxlUmVjdCkKICAgICByZXZhbGlkYXRlVGlsZXMoKTsKIH0KIAordm9p
ZCBUaWxlQ2FjaGU6OnNldEV4cG9zZWRSZWN0KGNvbnN0IEludFJlY3QmIGV4cG9zZWRSZWN0KQor
eworICAgIGlmIChtX2V4cG9zZWRSZWN0ID09IGV4cG9zZWRSZWN0KQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2V4cG9zZWRSZWN0ID0gZXhwb3NlZFJlY3Q7CisgICAgcmV2YWxpZGF0ZVRpbGVz
KCk7Cit9CisKK3ZvaWQgVGlsZUNhY2hlOjpzZXRDbGlwc1RvRXhwb3NlZFJlY3QoYm9vbCBjbGlw
c1RvRXhwb3NlZFJlY3QpCit7CisgICAgaWYgKG1fY2xpcHNUb0V4cG9zZWRSZWN0ID09IGNsaXBz
VG9FeHBvc2VkUmVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGlwc1RvRXhwb3NlZFJl
Y3QgPSBjbGlwc1RvRXhwb3NlZFJlY3Q7CisKKyAgICAvLyBHb2luZyBmcm9tIG5vdCBjbGlwcGlu
ZyB0byBjbGlwcGluZywgd2UgZG9uJ3QgbmVlZCB0byByZXZhbGlkYXRlIHJpZ2h0IGF3YXkuCisg
ICAgaWYgKGNsaXBzVG9FeHBvc2VkUmVjdCkKKyAgICAgICAgcmV2YWxpZGF0ZVRpbGVzKCk7Cit9
CisKIHZvaWQgVGlsZUNhY2hlOjpwcmVwb3B1bGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkK
IHsKICAgICBlbnN1cmVUaWxlc0ZvclJlY3QocmVjdCk7CkBAIC0zOTMsMTcgKzQxNSwyMiBAQCB2
b2lkIFRpbGVDYWNoZTo6Z2V0VGlsZUluZGV4UmFuZ2VGb3JSZWN0KGNvbnN0IEludFJlY3QmIHJl
Y3QsIFRpbGVJbmRleCYgdG9wTGVmdAogCiBJbnRSZWN0IFRpbGVDYWNoZTo6Y29tcHV0ZVRpbGVD
b3ZlcmFnZVJlY3QoY29uc3QgSW50UmVjdCYgcHJldmlvdXNWaXNpYmxlUmVjdCkgY29uc3QKIHsK
KyAgICBJbnRSZWN0IGludGVyc2VjdGVkVmlzaWJsZVJlY3QgPSBtX3Zpc2libGVSZWN0OworCisg
ICAgaWYgKG1fY2xpcHNUb0V4cG9zZWRSZWN0KQorICAgICAgICBpbnRlcnNlY3RlZFZpc2libGVS
ZWN0LmludGVyc2VjdChtX2V4cG9zZWRSZWN0KTsKKwogICAgIC8vIElmIHRoZSBwYWdlIGlzIG5v
dCBpbiBhIHdpbmRvdyAoZm9yIGV4YW1wbGUgaWYgaXQncyBpbiBhIGJhY2tncm91bmQgdGFiKSwg
d2UgbGltaXQgdGhlIHRpbGUgY292ZXJhZ2UgcmVjdCB0byB0aGUgdmlzaWJsZSByZWN0LgogICAg
IC8vIEZ1cnRoZXJtb3JlLCBpZiB0aGUgcGFnZSBjYW4ndCBoYXZlIHNjcm9sbGJhcnMgKGZvciBl
eGFtcGxlIGlmIGl0cyBib2R5IGVsZW1lbnQgaGFzIG92ZXJmbG93OmhpZGRlbikgaXQncyB2ZXJ5
IHVubGlrZWx5IHRoYXQgdGhlCiAgICAgLy8gcGFnZSB3aWxsIGV2ZXIgYmUgc2Nyb2xsZWQgc28g
d2UgbGltaXQgdGhlIHRpbGUgY292ZXJhZ2UgcmVjdCBhcyB3ZWxsLgogICAgIGlmICghbV9pc0lu
V2luZG93IHx8IG1fdGlsZUNvdmVyYWdlICYgQ292ZXJhZ2VGb3JTbG93U2Nyb2xsaW5nKQotICAg
ICAgICByZXR1cm4gbV92aXNpYmxlUmVjdDsKKyAgICAgICAgcmV0dXJuIGludGVyc2VjdGVkVmlz
aWJsZVJlY3Q7CiAKLSAgICBib29sIGxhcmdlVmlzaWJsZVJlY3RDaGFuZ2UgPSAhcHJldmlvdXNW
aXNpYmxlUmVjdC5pc0VtcHR5KCkgJiYgIW1fdmlzaWJsZVJlY3QuaW50ZXJzZWN0cyhwcmV2aW91
c1Zpc2libGVSZWN0KTsKKyAgICBib29sIGxhcmdlVmlzaWJsZVJlY3RDaGFuZ2UgPSAhcHJldmlv
dXNWaXNpYmxlUmVjdC5pc0VtcHR5KCkgJiYgIWludGVyc2VjdGVkVmlzaWJsZVJlY3QuaW50ZXJz
ZWN0cyhwcmV2aW91c1Zpc2libGVSZWN0KTsKICAgICAKICAgICAvLyBGSVhNRTogbG9vayBhdCBo
b3cgZmFyIHRoZSBkb2N1bWVudCBjYW4gc2Nyb2xsIGluIGVhY2ggZGltZW5zaW9uLgotICAgIGlu
dCBjb3ZlcmFnZUhvcml6b250YWxTaXplID0gbV92aXNpYmxlUmVjdC53aWR0aCgpOwotICAgIGlu
dCBjb3ZlcmFnZVZlcnRpY2FsU2l6ZSA9IG1fdmlzaWJsZVJlY3QuaGVpZ2h0KCk7CisgICAgaW50
IGNvdmVyYWdlSG9yaXpvbnRhbFNpemUgPSBpbnRlcnNlY3RlZFZpc2libGVSZWN0LndpZHRoKCk7
CisgICAgaW50IGNvdmVyYWdlVmVydGljYWxTaXplID0gaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC5o
ZWlnaHQoKTsKICAgICAKICAgICAvLyBJbmZsYXRlIHRoZSBjb3ZlcmFnZSByZWN0IHNvIHRoYXQg
aXQgY292ZXJzIDJ4IG9mIHRoZSB2aXNpYmxlIHdpZHRoIGFuZCAzeCBvZiB0aGUgdmlzaWJsZSBo
ZWlnaHQuCiAgICAgLy8gVGhlc2UgdmFsdWVzIHdlcmUgY2hvc2VuIGJlY2F1c2UgaXQncyBtb3Jl
IGNvbW1vbiB0byBoYXZlIHRhbGwgcGFnZXMgYW5kIHRvIHNjcm9sbCB2ZXJ0aWNhbGx5LApAQCAt
NDE2LDExICs0NDMsMTEgQEAgSW50UmVjdCBUaWxlQ2FjaGU6OmNvbXB1dGVUaWxlQ292ZXJhZ2VS
ZWN0KGNvbnN0IEludFJlY3QmIHByZXZpb3VzVmlzaWJsZVJlY3QpIGMKIAogICAgIC8vIERvbid0
IGV4dGVuZCBjb3ZlcmFnZSBiZWZvcmUgMCBvciBhZnRlciB0aGUgZW5kLgogICAgIEludFJlY3Qg
Y292ZXJhZ2VCb3VuZHMgPSBib3VuZHMoKTsKLSAgICBpbnQgY292ZXJhZ2VMZWZ0ID0gbV92aXNp
YmxlUmVjdC54KCkgLSAoY292ZXJhZ2VIb3Jpem9udGFsU2l6ZSAtIG1fdmlzaWJsZVJlY3Qud2lk
dGgoKSkgLyAyOworICAgIGludCBjb3ZlcmFnZUxlZnQgPSBpbnRlcnNlY3RlZFZpc2libGVSZWN0
LngoKSAtIChjb3ZlcmFnZUhvcml6b250YWxTaXplIC0gaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC53
aWR0aCgpKSAvIDI7CiAgICAgY292ZXJhZ2VMZWZ0ID0gbWluKGNvdmVyYWdlTGVmdCwgY292ZXJh
Z2VCb3VuZHMubWF4WCgpIC0gY292ZXJhZ2VIb3Jpem9udGFsU2l6ZSk7CiAgICAgY292ZXJhZ2VM
ZWZ0ID0gbWF4KGNvdmVyYWdlTGVmdCwgY292ZXJhZ2VCb3VuZHMueCgpKTsKIAotICAgIGludCBj
b3ZlcmFnZVRvcCA9IG1fdmlzaWJsZVJlY3QueSgpIC0gKGNvdmVyYWdlVmVydGljYWxTaXplIC0g
bV92aXNpYmxlUmVjdC5oZWlnaHQoKSkgLyAyOworICAgIGludCBjb3ZlcmFnZVRvcCA9IGludGVy
c2VjdGVkVmlzaWJsZVJlY3QueSgpIC0gKGNvdmVyYWdlVmVydGljYWxTaXplIC0gaW50ZXJzZWN0
ZWRWaXNpYmxlUmVjdC5oZWlnaHQoKSkgLyAyOwogICAgIGNvdmVyYWdlVG9wID0gbWluKGNvdmVy
YWdlVG9wLCBjb3ZlcmFnZUJvdW5kcy5tYXhZKCkgLSBjb3ZlcmFnZVZlcnRpY2FsU2l6ZSk7CiAg
ICAgY292ZXJhZ2VUb3AgPSBtYXgoY292ZXJhZ2VUb3AsIGNvdmVyYWdlQm91bmRzLnkoKSk7CiAK
QEAgLTU0Nyw3ICs1NzQsMTIgQEAgdm9pZCBUaWxlQ2FjaGU6OnJldmFsaWRhdGVUaWxlcyhUaWxl
VmFsaWRhdGlvblBvbGljeUZsYWdzIGZvcmVncm91bmRWYWxpZGF0aW9uUG8KICAgICBpZiAoIXBs
YXRmb3JtTGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3Zpc2libGVSZWN0Lmlz
RW1wdHkoKSB8fCBib3VuZHMoKS5pc0VtcHR5KCkpCisgICAgSW50UmVjdCBpbnRlcnNlY3RlZFZp
c2libGVSZWN0ID0gbV92aXNpYmxlUmVjdDsKKworICAgIGlmIChtX2NsaXBzVG9FeHBvc2VkUmVj
dCkKKyAgICAgICAgaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC5pbnRlcnNlY3QobV9leHBvc2VkUmVj
dCk7CisKKyAgICBpZiAoaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdC5pc0VtcHR5KCkgfHwgYm91bmRz
KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgVGlsZVZhbGlkYXRpb25Q
b2xpY3lGbGFncyB2YWxpZGF0aW9uUG9saWN5ID0gbV9pc0luV2luZG93ID8gZm9yZWdyb3VuZFZh
bGlkYXRpb25Qb2xpY3kgOiBiYWNrZ3JvdW5kVmFsaWRhdGlvblBvbGljeTsKQEAgLTY1Myw3ICs2
ODUsNyBAQCB2b2lkIFRpbGVDYWNoZTo6cmV2YWxpZGF0ZVRpbGVzKFRpbGVWYWxpZGF0aW9uUG9s
aWN5RmxhZ3MgZm9yZWdyb3VuZFZhbGlkYXRpb25QbwogICAgIGlmIChtX3RpbGVkU2Nyb2xsaW5n
SW5kaWNhdG9yTGF5ZXIpCiAgICAgICAgIHVwZGF0ZVRpbGVDb3ZlcmFnZU1hcCgpOwogCi0gICAg
bV92aXNpYmxlUmVjdEF0TGFzdFJldmFsaWRhdGUgPSBtX3Zpc2libGVSZWN0OworICAgIG1fdmlz
aWJsZVJlY3RBdExhc3RSZXZhbGlkYXRlID0gaW50ZXJzZWN0ZWRWaXNpYmxlUmVjdDsKIAogICAg
IGlmIChkaXJ0eVJlY3RzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAwMDhl
NDc4Li5hYzkyNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjIyMiw4ICsyMjIyLDggQEAgYm9vbCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnJlcXVpcmVzT3ZlcmhhbmdBcmVhc0xheWVyKCkgY29uc3QKICAgICBpZiAo
bV9yZW5kZXJWaWV3LT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgLy8gV2UgZG8gd2FudCBhIGxheWVyIGlmIHdlIGhhdmUgYSBzY3JvbGxp
bmcgY29vcmRpbmF0b3IuCi0gICAgaWYgKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkgJiYgbV9yZW5k
ZXJWaWV3LT5mcmFtZVZpZXcoKS0+aGFzT3BhcXVlQmFja2dyb3VuZCgpKQorICAgIC8vIFdlIGRv
IHdhbnQgYSBsYXllciBpZiB3ZSBoYXZlIGEgc2Nyb2xsaW5nIGNvb3JkaW5hdG9yIGFuZCBjYW4g
c2Nyb2xsLgorICAgIGlmIChzY3JvbGxpbmdDb29yZGluYXRvcigpICYmIG1fcmVuZGVyVmlldy0+
ZnJhbWVWaWV3KCktPmhhc09wYXF1ZUJhY2tncm91bmQoKSAmJiAhbV9yZW5kZXJWaWV3LT5mcmFt
ZVZpZXcoKS0+cHJvaGliaXRzU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgLy8gQ2hyb21pdW0gYWx3YXlzIHdhbnRzIGEgbGF5ZXIuCkBAIC0yMjQxLDggKzIyNDEsOCBA
QCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb250ZW50U2hhZG93TGF5ZXIo
KSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAg
Ly8gT24gTWFjLCB3ZSB3YW50IGEgY29udGVudCBzaGFkb3cgbGF5ZXIgaWYgd2UgaGF2ZSBhIHNj
cm9sbGluZyBjb29yZGluYXRvci4KLSAgICBpZiAoc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAg
ICAvLyBPbiBNYWMsIHdlIHdhbnQgYSBjb250ZW50IHNoYWRvdyBsYXllciBpZiB3ZSBoYXZlIGEg
c2Nyb2xsaW5nIGNvb3JkaW5hdG9yIGFuZCBjYW4gc2Nyb2xsLgorICAgIGlmIChzY3JvbGxpbmdD
b29yZGluYXRvcigpICYmICFtX3JlbmRlclZpZXctPmZyYW1lVmlldygpLT5wcm9oaWJpdHNTY3Jv
bGxpbmcoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDY0
ZjAxOWIuLjMxYjUzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxMy0wMS0xNSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBDbGFtcCBU
aWxlQ2FjaGUgdmlzaWJsZVJlY3QgdG8gV0tWaWV3J3MgdmlzaWJsZVJlY3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjYwMQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTI4NDMxNjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU29tZSBjbGllbnRzIGV4cGFuZCB0aGUgV0tWaWV3IHRvIGJlIG11Y2gg
bGFyZ2VyIHRoYW4gd2hhdCBpcyB2aXNpYmxlIG9uIHNjcmVlbiwgYW5kCisgICAgICAgIGNvbnRy
b2wgc2Nyb2xsaW5nIHdpdGggdGhlaXIgb3duIHZpZXcuIEN1cnJlbnRseSwgd2Ugd2lsbCBjcmVh
dGUgdGlsZXMgZm9yIHRoZSBlbnRpcmUKKyAgICAgICAgdmlldywgY29uc3VtaW5nIGEgZ3JlYXQg
ZGVhbCBvZiBtZW1vcnksIGFuZCBjYW4gc29tZXRpbWVzIGZhY3RvciBzY3JvbGxiYXJzIHdoaWNo
IGNhbgorICAgICAgICBuZXZlciBleGlzdCBpbnRvIGxheW91dC4gUGlnZ3liYWNrIG9uIFdLVmll
dyBTUEkgKHRoZSBwcm9wZXJ0eSBtaW5pbXVtV2lkdGhGb3JBdXRvTGF5b3V0LAorICAgICAgICBy
ZW5hbWVkIGZyb20gbWluaW11bUxheW91dFdpZHRoKSB0byBkcm9wIGludG8gYSBtb2RlIHdoZXJl
IHdlIGRpc2FibGUgbWFpbiBmcmFtZSBzY3JvbGxpbmcKKyAgICAgICAgYW5kIHJlc3BlY3QgdGhl
IFdLVmlldydzIHZpc2libGVSZWN0IHdoZW4gY3JlYXRpbmcgdGlsZXMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBzZXRGcmFtZVNp
emU6XSk6IFVwZGF0ZSB0aGUgcGFnZSdzIHZpZXdFeHBvc2VkUmVjdCBmcm9tIG91ciB2aXNpYmxl
UmVjdC4KKyAgICAgICAgKC1bV0tWaWV3IF91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzXSk6IFVw
ZGF0ZSB0aGUgcGFnZSdzIHZpZXdFeHBvc2VkUmVjdCBmcm9tIG91ciB2aXNpYmxlUmVjdC4KKyAg
ICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29udGV4dFJlZjpwYWdlR3JvdXBSZWY6cmVs
YXRlZFRvUGFnZTpdKTogVGhlIG1haW4gZnJhbWUgaXMgc2Nyb2xsYWJsZSBieSBkZWZhdWx0Lgor
ICAgICAgICAoLVtXS1ZpZXcgZW5hYmxlRnJhbWVTaXplVXBkYXRlc10pOiBJZiBmcmFtZSBzaXpl
IHVwZGF0ZXMgYmVjb21lIGVuYWJsZWQsIHVwZGF0ZSB0aGUKKyAgICAgICAgcGFnZSdzIHZpZXdF
eHBvc2VkUmVjdCBmcm9tIG91ciB2aXNpYmxlUmVjdC4KKyAgICAgICAgKC1bV0tWaWV3IHNldE1p
bmltdW1MYXlvdXRXaWR0aDpdKTogUmVuYW1lIG1pbmltdW1MYXlvdXRXaWR0aCBwcm9wZXJ0eSB0
byBtaW5pbXVtV2lkdGhGb3JBdXRvTGF5b3V0LgorICAgICAgICBXYXJuIG9uY2UgaWYgdGhlIG9s
ZCBvbmUgaXMgdXNlZC4KKyAgICAgICAgKC1bV0tWaWV3IG1pbmltdW1XaWR0aEZvckF1dG9MYXlv
dXRdKToKKyAgICAgICAgKC1bV0tWaWV3IHNldE1pbmltdW1XaWR0aEZvckF1dG9MYXlvdXQ6XSk6
IEFkanVzdCB0aGUgbWluaW11bSBsYXlvdXQgd2lkdGgsIHdoZXRoZXIgdGhlIG1haW4gZnJhbWUK
KyAgICAgICAgaXMgc2Nyb2xsYWJsZSwgYW5kIHVwZGF0ZSB0aGUgcGFnZSdzIHZpZXdFeHBvc2Vk
UmVjdCBpZiBuZWVkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3UHJpdmF0
ZS5oOiBBZGRlZCBtaW5pbXVtV2lkdGhGb3JBdXRvTGF5b3V0IHByb3BlcnR5LgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6IEFkZCB2
aWV3RXhwb3NlZFJlY3RDaGFuZ2VkL3NldE1haW5GcmFtZUlzU2Nyb2xsYWJsZS4KKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5Ojp2aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKTogRm9yd2FyZCB2aWV3RXhwb3NlZFJl
Y3RDaGFuZ2VkIHRvIFdlYlBhZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0
TWFpbkZyYW1lSXNTY3JvbGxhYmxlKTogRm9yd2FyZCBzZXRNYWluRnJhbWVJc1Njcm9sbGFibGUg
dG8gV2ViUGFnZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOiBEaXNhYmxlIHNjcm9sbGJhcnMgYW5k
IHNjcm9sbGluZyBpZgorICAgICAgICBtYWluIGZyYW1lIHNjcm9sbGFiaWxpdHkgaXMgZGlzYWJs
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAg
IChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpzZXRFeHBvc2VkUmVjdCk6IEFkZGVkIGVtcHR5IGRlZmF1
bHQgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjptYWluRnJh
bWVTY3JvbGxhYmlsaXR5Q2hhbmdlZCk6IEFkZGVkIGVtcHR5IGRlZmF1bHQgaW1wbGVtZW50YXRp
b24uCisgICAgICAgIChEcmF3aW5nQXJlYSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp3aW5kb3dBbmRWaWV3RnJh
bWVzQ2hhbmdlZCk6IFdlIGRvbid0IG5lZWQgdGhlIFdlYkNvcmU6OiBuYW1lc3BhY2UuCisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnZpZXdFeHBvc2VkUmVjdENoYW5nZWQpOiBGb3J3YXJkIGV4
cG9zZWQgcmVjdCBjaGFuZ2VzIHRvIERyYXdpbmdBcmVhIChvbmx5IFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhIGNhcmVzLCBmb3Igbm93KS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKTogRm9yd2FyZCBzY3JvbGxhYmlsaXR5IGNoYW5nZXMg
dG8gRHJhd2luZ0FyZWEgYW5kIHRoZSBtYWluIEZyYW1lVmlldy4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKTogV2UgZG9uJ3QgbmVlZCB0aGUgV2ViQ29yZTo6IG5h
bWVzcGFjZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAoV2ViUGFnZSk6IEFkZCBtYWluRnJhbWVJc1Njcm9sbGFibGUsIHZpZXdFeHBvc2VkUmVjdENo
YW5nZWQsIHNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZSwgYW5kIHN0b3JhZ2UgZm9yIG1fbWFpbkZy
YW1lSXNTY3JvbGxhYmxlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptYWluRnJhbWVJc1Nj
cm9sbGFibGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluOiBBZGQgVmlld0V4cG9zZWRSZWN0Q2hhbmdlZCBhbmQgU2V0TWFpbkZyYW1lSXNTY3JvbGxh
YmxlIG1lc3NhZ2VzLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6c2V0RXhwb3NlZFJlY3QpOiBGb3J3YXJkIG5ldyBleHBvc2VkIHJlY3QgdG8g
VGlsZWRCYWNraW5nIChvbmx5IFRpbGVDYWNoZSBjYXJlcywgZm9yIG5vdykuCisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjptYWluRnJhbWVTY3JvbGxhYmls
aXR5Q2hhbmdlZCk6IEFzayBUaWxlZEJhY2tpbmcgdG8gY2xpcCB0byB0aGUgZXhwb3NlZFJlY3Qg
aWYgbWFpbiBmcmFtZSBzY3JvbGxpbmcgaXMgZGlzYWJsZWQuCisgICAgICAgIChXZWJLaXQ6OlRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeSk6IFVzZSBzaXplIGlu
c3RlYWQgb2Ygdmlld1NpemUgaW4gY2FzZSB3ZSd2ZSBjaGFuZ2VkIGl0IGJlY2F1c2Ugb2YgbV9t
aW5pbXVtTGF5b3V0V2lkdGguCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhOjpzZXRSb290Q29tcG9zaXRpbmdMYXllcik6IFVwZGF0ZSBleHBvc2VkUmVjdCBh
bmQgY2xpcHNUb0V4cG9zZWRSZWN0LgorCiAyMDEzLTAxLTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IHRpbGVkIFdLVmlld3MgdG8gaGF2
ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tCmluZGV4IGFkNTk4ZmMuLmM1NDcxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTIxMCw2ICsyMTAsNyBAQCBzdHJ1Y3QgV0tW
aWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAgICAgU3RyaW5nIF9wcm9taXNlZFVS
TDsKIAogICAgIE5TU2l6ZSBfaW50cmluc2ljQ29udGVudFNpemU7CisgICAgQk9PTCBfZXhwYW5k
c1RvRml0Q29udGVudDsKIH0KIAogQGVuZApAQCAtMzYyLDkgKzM2MywxMiBAQCBzdHJ1Y3QgV0tW
aWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAgICAgICAgIF9kYXRhLT5fd2luZG93
SGFzVmFsaWRCYWNraW5nU3RvcmUgPSBOTzsKIAogICAgIFtzdXBlciBzZXRGcmFtZVNpemU6c2l6
ZV07Ci0gICAgCi0gICAgaWYgKCFbc2VsZiBmcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRdKQorCisg
ICAgaWYgKCFbc2VsZiBmcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRdKSB7CisgICAgICAgIGlmIChf
ZGF0YS0+X2V4cGFuZHNUb0ZpdENvbnRlbnQpCisgICAgICAgICAgICBfZGF0YS0+X3BhZ2UtPnZp
ZXdFeHBvc2VkUmVjdENoYW5nZWQoZW5jbG9zaW5nSW50UmVjdChbc2VsZiB2aXNpYmxlUmVjdF0p
KTsKICAgICAgICAgW3NlbGYgX3NldERyYXdpbmdBcmVhU2l6ZTpzaXplXTsKKyAgICB9CiB9CiAK
IC0gKHZvaWQpX3VwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMKQEAgLTM3Nyw2ICszODEsOCBAQCBz
dHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAgICAgTlNQb2ludCBh
Y2Nlc3NpYmlsaXR5UG9zaXRpb24gPSBbW3NlbGYgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVl
Ok5TQWNjZXNzaWJpbGl0eVBvc2l0aW9uQXR0cmlidXRlXSBwb2ludFZhbHVlXTsKICAgICAKICAg
ICBfZGF0YS0+X3BhZ2UtPndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGVuY2xvc2luZ0ludFJl
Y3Qod2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzKSwgZW5jbG9zaW5nSW50UmVjdCh2aWV3
RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKSwgSW50UG9pbnQoYWNjZXNzaWJpbGl0eVBvc2l0aW9u
KSk7CisgICAgaWYgKF9kYXRhLT5fZXhwYW5kc1RvRml0Q29udGVudCkKKyAgICAgICAgX2RhdGEt
Pl9wYWdlLT52aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGVuY2xvc2luZ0ludFJlY3QoW3NlbGYgdmlz
aWJsZVJlY3RdKSk7CiB9CiAKIC0gKHZvaWQpcmVuZXdHU3RhdGUKQEAgLTI5NDQsNiArMjk1MCw3
IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJp
bmcgKnBhdGgpCiAjZW5kaWYKICAgICBfZGF0YS0+X21vdXNlRG93bkV2ZW50ID0gbmlsOwogICAg
IF9kYXRhLT5faWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMgPSBOTzsKKyAgICBfZGF0YS0+X2V4
cGFuZHNUb0ZpdENvbnRlbnQgPSBOTzsKIAogICAgIF9kYXRhLT5faW50cmluc2ljQ29udGVudFNp
emUgPSBOU01ha2VTaXplKE5TVmlld05vSW5zdHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnN0cmlu
c2ljTWV0cmljKTsKIApAQCAtMzAzMCw4ICszMDM3LDExIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0
aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgaWYgKCFfZGF0
YS0+X2ZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZENvdW50KQogICAgICAgICByZXR1cm47CiAgICAg
Ci0gICAgaWYgKCEoLS1fZGF0YS0+X2ZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZENvdW50KSkKKyAg
ICBpZiAoISgtLV9kYXRhLT5fZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVkQ291bnQpKSB7CisgICAg
ICAgIGlmIChfZGF0YS0+X2V4cGFuZHNUb0ZpdENvbnRlbnQpCisgICAgICAgICAgICBfZGF0YS0+
X3BhZ2UtPnZpZXdFeHBvc2VkUmVjdENoYW5nZWQoZW5jbG9zaW5nSW50UmVjdChbc2VsZiB2aXNp
YmxlUmVjdF0pKTsKICAgICAgICAgW3NlbGYgX3NldERyYXdpbmdBcmVhU2l6ZTpbc2VsZiBmcmFt
ZV0uc2l6ZV07CisgICAgfQogfQogCiAtIChCT09MKWZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZApA
QCAtMzA1NSwxMiArMzA2NSw0NCBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmls
ZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAtIChDR0Zsb2F0KW1pbmltdW1MYXlvdXRX
aWR0aAogeworICAgIHN0YXRpYyBCT09MIGxvZ2dlZERlcHJlY2F0aW9uV2FybmluZyA9IE5POwor
CisgICAgaWYgKCFsb2dnZWREZXByZWNhdGlvbldhcm5pbmcpIHsKKyAgICAgICAgTlNMb2coQCJQ
bGVhc2UgdXNlIG1pbmltdW1XaWR0aEZvckF1dG9MYXlvdXQgaW5zdGVhZCBvZiBtaW5pbXVtTGF5
b3V0V2lkdGguIik7CisgICAgICAgIGxvZ2dlZERlcHJlY2F0aW9uV2FybmluZyA9IFlFUzsKKyAg
ICB9CisKICAgICByZXR1cm4gX2RhdGEtPl9wYWdlLT5taW5pbXVtTGF5b3V0V2lkdGgoKTsKIH0K
IAogLSAodm9pZClzZXRNaW5pbXVtTGF5b3V0V2lkdGg6KENHRmxvYXQpbWluaW11bUxheW91dFdp
ZHRoCiB7Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRNaW5pbXVtTGF5b3V0V2lkdGgobWluaW11bUxh
eW91dFdpZHRoKTsKKyAgICBzdGF0aWMgQk9PTCBsb2dnZWREZXByZWNhdGlvbldhcm5pbmcgPSBO
TzsKKworICAgIGlmICghbG9nZ2VkRGVwcmVjYXRpb25XYXJuaW5nKSB7CisgICAgICAgIE5TTG9n
KEAiUGxlYXNlIHVzZSBtaW5pbXVtV2lkdGhGb3JBdXRvTGF5b3V0IGluc3RlYWQgb2YgbWluaW11
bUxheW91dFdpZHRoLiIpOworICAgICAgICBsb2dnZWREZXByZWNhdGlvbldhcm5pbmcgPSBZRVM7
CisgICAgfQorCisgICAgW3NlbGYgc2V0TWluaW11bVdpZHRoRm9yQXV0b0xheW91dDptaW5pbXVt
TGF5b3V0V2lkdGhdOworfQorCistIChDR0Zsb2F0KW1pbmltdW1XaWR0aEZvckF1dG9MYXlvdXQK
K3sKKyAgICByZXR1cm4gX2RhdGEtPl9wYWdlLT5taW5pbXVtTGF5b3V0V2lkdGgoKTsKK30KKwor
LSAodm9pZClzZXRNaW5pbXVtV2lkdGhGb3JBdXRvTGF5b3V0OihDR0Zsb2F0KW1pbmltdW1MYXlv
dXRXaWR0aAoreworICAgIEJPT0wgZXhwYW5kc1RvRml0ID0gbWluaW11bUxheW91dFdpZHRoID4g
MDsKKworICAgIF9kYXRhLT5fZXhwYW5kc1RvRml0Q29udGVudCA9IGV4cGFuZHNUb0ZpdDsKKyAg
ICBfZGF0YS0+X3BhZ2UtPnNldE1pbmltdW1MYXlvdXRXaWR0aChleHBhbmRzVG9GaXQgPyBtaW5p
bXVtTGF5b3V0V2lkdGggOiAwKTsKKworICAgIGlmIChleHBhbmRzVG9GaXQpCisgICAgICAgIF9k
YXRhLT5fcGFnZS0+dmlld0V4cG9zZWRSZWN0Q2hhbmdlZChlbmNsb3NpbmdJbnRSZWN0KFtzZWxm
IHZpc2libGVSZWN0XSkpOworCisgICAgX2RhdGEtPl9wYWdlLT5zZXRNYWluRnJhbWVJc1Njcm9s
bGFibGUoIWV4cGFuZHNUb0ZpdCk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlld1ByaXZhdGUuaAppbmRleCAyMTYxZWI3Li42YTQ2NzZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3UHJpdmF0ZS5o
CkBAIC01MSw1ICs1MSw2IEBACiArICh2b2lkKWhpZGVXb3JkRGVmaW5pdGlvbldpbmRvdzsKIAog
QHByb3BlcnR5IChyZWFkd3JpdGUpIENHRmxvYXQgbWluaW11bUxheW91dFdpZHRoOworQHByb3Bl
cnR5IChyZWFkd3JpdGUpIENHRmxvYXQgbWluaW11bVdpZHRoRm9yQXV0b0xheW91dDsKIAogQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDZlYWYyZmYuLjdm
OGI1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTM4OCw2
ICszODgsOCBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgdXBkYXRlV2lu
ZG93SXNWaXNpYmxlKGJvb2wgd2luZG93SXNWaXNpYmxlKTsKICAgICB2b2lkIHdpbmRvd0FuZFZp
ZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3Jl
ZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dD
b29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29v
cmRpbmF0ZXMpOworICAgIHZvaWQgdmlld0V4cG9zZWRSZWN0Q2hhbmdlZChjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBleHBvc2VkUmVjdCk7CisgICAgdm9pZCBzZXRNYWluRnJhbWVJc1Njcm9sbGFi
bGUoYm9vbCk7CiAKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYgdGV4dCwg
VmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzLCB1aW50NjRf
dCBzZWxlY3Rpb25TdGFydCwgdWludDY0X3Qgc2VsZWN0aW9uRW5kLCB1aW50NjRfdCByZXBsYWNl
bWVudFJhbmdlU3RhcnQsIHVpbnQ2NF90IHJlcGxhY2VtZW50UmFuZ2VFbmQpOwogICAgIHZvaWQg
Y29uZmlybUNvbXBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IDE1YzUwZjcuLmFmOTM2OGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC0xMzcsNiArMTM3
LDIyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25z
dCBJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuCiAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpXaW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZCh3aW5kb3dGcmFtZUluU2Ny
ZWVuQ29vcmRpbmF0ZXMsIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGFjY2Vzc2liaWxp
dHlWaWV3Q29vcmRpbmF0ZXMpLCBtX3BhZ2VJRCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojp2
aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGNvbnN0IEludFJlY3QmIGV4cG9zZWRSZWN0KQoreworICAg
IGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwcm9jZXNzKCktPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlZpZXdFeHBvc2VkUmVjdENoYW5nZWQoZXhwb3NlZFJlY3QpLCBt
X3BhZ2VJRCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRNYWluRnJhbWVJc1Njcm9sbGFi
bGUoYm9vbCBpc1Njcm9sbGFibGUpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0TWFpbkZy
YW1lSXNTY3JvbGxhYmxlKGlzU2Nyb2xsYWJsZSksIG1fcGFnZUlEKTsKK30KKwogdm9pZCBXZWJQ
YWdlUHJveHk6OnNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYgdGV4dCwgVmVjdG9yPENvbXBv
c2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzLCB1aW50NjRfdCBzZWxlY3Rpb25TdGFydCwgdWlu
dDY0X3Qgc2VsZWN0aW9uRW5kLCB1aW50NjRfdCByZXBsYWNlbWVudFJhbmdlU3RhcnQsIHVpbnQ2
NF90IHJlcGxhY2VtZW50UmFuZ2VFbmQpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZjc0NTQ3My4uYmM2ODk1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTEyMjgsMjYgKzEyMjgsMjkgQEAgdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgp
CiAgICAgYm9vbCBpc01haW5GcmFtZSA9IHdlYlBhZ2UtPm1haW5XZWJGcmFtZSgpID09IG1fZnJh
bWU7CiAgICAgYm9vbCBpc1RyYW5zcGFyZW50ID0gIXdlYlBhZ2UtPmRyYXdzQmFja2dyb3VuZCgp
OwogICAgIGJvb2wgc2hvdWxkVXNlRml4ZWRMYXlvdXQgPSBpc01haW5GcmFtZSAmJiB3ZWJQYWdl
LT51c2VGaXhlZExheW91dCgpOworICAgIGJvb2wgc2hvdWxkRGlzYWJsZVNjcm9sbGluZyA9IGlz
TWFpbkZyYW1lICYmICF3ZWJQYWdlLT5tYWluRnJhbWVJc1Njcm9sbGFibGUoKTsKKyAgICBib29s
IHNob3VsZEhpZGVTY3JvbGxiYXJzID0gc2hvdWxkVXNlRml4ZWRMYXlvdXQgfHwgc2hvdWxkRGlz
YWJsZVNjcm9sbGluZzsKICAgICBJbnRSZWN0IGN1cnJlbnRGaXhlZFZpc2libGVDb250ZW50UmVj
dCA9IG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCkgPyBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+
dmlldygpLT5maXhlZFZpc2libGVDb250ZW50UmVjdCgpIDogSW50UmVjdCgpOwogCiAgICAgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+bG9h
ZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCk7CiAgICAgbV9mcmFtZUhhc0N1c3Rv
bVJlcHJlc2VudGF0aW9uID0gaXNNYWluRnJhbWUgJiYgd2ViUGFnZS0+c2hvdWxkVXNlQ3VzdG9t
UmVwcmVzZW50YXRpb25Gb3JSZXNwb25zZShyZXNwb25zZSk7CiAgICAgbV9mcmFtZUNhbWVGcm9t
UGFnZUNhY2hlID0gZmFsc2U7CiAKKyAgICBTY3JvbGxiYXJNb2RlIGRlZmF1bHRTY3JvbGxiYXJN
b2RlID0gc2hvdWxkSGlkZVNjcm9sbGJhcnMgPyBTY3JvbGxiYXJBbHdheXNPZmYgOiBTY3JvbGxi
YXJBdXRvOworCisgICAgbV9mcmFtZS0+Y29yZUZyYW1lKCktPmNyZWF0ZVZpZXcod2ViUGFnZS0+
c2l6ZSgpLCBiYWNrZ3JvdW5kQ29sb3IsIGlzVHJhbnNwYXJlbnQsCisgICAgICAgIEludFNpemUo
KSwgY3VycmVudEZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0LCBzaG91bGRVc2VGaXhlZExheW91dCwK
KyAgICAgICAgZGVmYXVsdFNjcm9sbGJhck1vZGUsIC8qIGxvY2sgKi8gc2hvdWxkSGlkZVNjcm9s
bGJhcnMsIGRlZmF1bHRTY3JvbGxiYXJNb2RlLCAvKiBsb2NrICovIHNob3VsZEhpZGVTY3JvbGxi
YXJzKTsKKworICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCktPnNldFByb2hpYml0c1Nj
cm9sbGluZyhzaG91bGREaXNhYmxlU2Nyb2xsaW5nKTsKKwogI2lmIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQogICAgIGlmIChzaG91bGRVc2VGaXhlZExheW91dCkgewotICAgICAgICBtX2ZyYW1l
LT5jb3JlRnJhbWUoKS0+Y3JlYXRlVmlldyh3ZWJQYWdlLT5zaXplKCksIGJhY2tncm91bmRDb2xv
ciwgaXNUcmFuc3BhcmVudCwKLSAgICAgICAgICAgIEludFNpemUoKSwgY3VycmVudEZpeGVkVmlz
aWJsZUNvbnRlbnRSZWN0LCBzaG91bGRVc2VGaXhlZExheW91dCwKLSAgICAgICAgICAgIFNjcm9s
bGJhckFsd2F5c09mZiwgLyogbG9jayAqLyB0cnVlLCBTY3JvbGxiYXJBbHdheXNPZmYsIC8qIGxv
Y2sgKi8gdHJ1ZSk7Ci0KICAgICAgICAgbV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+c2V0
RGVsZWdhdGVzU2Nyb2xsaW5nKHNob3VsZFVzZUZpeGVkTGF5b3V0KTsKICAgICAgICAgbV9mcmFt
ZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+c2V0UGFpbnRzRW50aXJlQ29udGVudHMoc2hvdWxkVXNl
Rml4ZWRMYXlvdXQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCi0KLSAgICBtX2Zy
YW1lLT5jb3JlRnJhbWUoKS0+Y3JlYXRlVmlldyh3ZWJQYWdlLT5zaXplKCksIGJhY2tncm91bmRD
b2xvciwgaXNUcmFuc3BhcmVudCwKLSAgICAgICAgSW50U2l6ZSgpLCBjdXJyZW50Rml4ZWRWaXNp
YmxlQ29udGVudFJlY3QsIHNob3VsZFVzZUZpeGVkTGF5b3V0KTsKIH0KIAogdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlkU2F2ZVRvUGFnZUNhY2hlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggYTA1ZDAwMy4uOGNmZTI2NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgK
QEAgLTg0LDYgKzg0LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQcmVmZXJl
bmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1h
aW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgeyB9CiAK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0RXhwb3NlZFJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBtYWluRnJhbWVTY3JvbGxhYmlsaXR5Q2hhbmdlZChib29s
KSB7IH0KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIHsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCAyNTkwM2E4Li43NGJlYzU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yMzksNiArMjM5LDcgQEAg
V2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgLCBtX2FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxp
emF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMoZmFsc2UpCiAgICAgLCBtX2FydGlmaWNpYWxQbHVn
aW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChmYWxzZSkKICAgICAsIG1fc2Nyb2xsaW5nUGVy
Zm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmYWxzZSkKKyAgICAsIG1fbWFpbkZyYW1lSXNTY3JvbGxh
YmxlKHRydWUpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICwgbV9wZGZQbHVnaW5FbmFibGVkKGZh
bHNlKQogICAgICwgbV93aW5kb3dJc1Zpc2libGUoZmFsc2UpCkBAIC0yODk5LDcgKzI5MDAsNyBA
QCB2b2lkIFdlYlBhZ2U6OnNldFdpbmRvd0lzVmlzaWJsZShib29sIHdpbmRvd0lzVmlzaWJsZSkK
ICAgICAgICAgKCppdCktPnNldFdpbmRvd0lzVmlzaWJsZSh3aW5kb3dJc1Zpc2libGUpOwogfQog
Ci12b2lkIFdlYlBhZ2U6OndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpCit2b2lkIFdlYlBhZ2U6OndpbmRv
d0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IEludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5D
b29yZGluYXRlcywgY29uc3QgSW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywg
Y29uc3QgSW50UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpCiB7CiAgICAgbV93
aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMgPSB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRp
bmF0ZXM7CiAgICAgbV92aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID0gdmlld0ZyYW1lSW5X
aW5kb3dDb29yZGluYXRlczsKQEAgLTI5MTEsNiArMjkxMiwyMiBAQCB2b2lkIFdlYlBhZ2U6Ondp
bmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0Zy
YW1lSW5TYwogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUGFnZTo6dmlld0V4cG9zZWRSZWN0Q2hhbmdl
ZChjb25zdCBJbnRSZWN0JiBleHBvc2VkUmVjdCkKK3sKKyAgICBtX2RyYXdpbmdBcmVhLT5zZXRF
eHBvc2VkUmVjdChleHBvc2VkUmVjdCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6c2V0TWFpbkZyYW1l
SXNTY3JvbGxhYmxlKGJvb2wgaXNTY3JvbGxhYmxlKQoreworICAgIG1fbWFpbkZyYW1lSXNTY3Jv
bGxhYmxlID0gaXNTY3JvbGxhYmxlOworICAgIG1fZHJhd2luZ0FyZWEtPm1haW5GcmFtZVNjcm9s
bGFiaWxpdHlDaGFuZ2VkKGlzU2Nyb2xsYWJsZSk7CisKKyAgICBpZiAoRnJhbWVWaWV3KiBmcmFt
ZVZpZXcgPSBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKSkgeworICAgICAgICBmcmFt
ZVZpZXctPnNldENhbkhhdmVTY3JvbGxiYXJzKGlzU2Nyb2xsYWJsZSk7CisgICAgICAgIGZyYW1l
Vmlldy0+c2V0UHJvaGliaXRzU2Nyb2xsaW5nKCFpc1Njcm9sbGFibGUpOworICAgIH0KK30KKwog
Ym9vbCBXZWJQYWdlOjp3aW5kb3dJc0ZvY3VzZWQoKSBjb25zdAogewogICAgIHJldHVybiBtX3Bh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgpOwpAQCAtMzI4Myw3ICszMzAwLDcgQEAg
dm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBQcmludEluZm8mIHByaW50SW4KIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLXZvaWQgV2Vi
UGFnZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYg
cHJpbnRJbmZvLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBpbWFnZVNpemUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmRy
YXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bywgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXpl
LCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nl
c3M6OnNoYXJlZCgpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBm
cmFtZSA/IGZyYW1lLT5jb3JlRnJhbWUoKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxZWI2MzMyLi41OTIwMzBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTYwNCw2ICs2MDQsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzYXZlUERGVG9UZW1wb3JhcnlGb2xkZXJBbmRPcGVuV2l0aE5hdGl2
ZUFwcGxpY2F0aW9uKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHVuc2lnbmVkIGxv
bmcgc2l6ZSwgY29uc3QgU3RyaW5nJiBwZGZVVUlEKTsKICNlbmRpZgogCisgICAgYm9vbCBtYWlu
RnJhbWVJc1Njcm9sbGFibGUoKSB7IHJldHVybiBtX21haW5GcmFtZUlzU2Nyb2xsYWJsZTsgfQor
CiBwcml2YXRlOgogICAgIFdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJik7CiAKQEAgLTcyNCw2ICs3MjYsOSBAQCBwcml2YXRlOgogICAgIHZv
aWQgZHJhd1BhZ2VzVG9QREZGcm9tUERGRG9jdW1lbnQoQ0dDb250ZXh0UmVmLCBQREZEb2N1bWVu
dCAqLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQpOwog
I2VuZGlmCiAKKyAgICB2b2lkIHZpZXdFeHBvc2VkUmVjdENoYW5nZWQoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgZXhwb3NlZFJlY3QpOworICAgIHZvaWQgc2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxl
KGJvb2wpOworCiAgICAgdm9pZCB1bmFwcGx5RWRpdENvbW1hbmQodWludDY0X3QgY29tbWFuZElE
KTsKICAgICB2b2lkIHJlYXBwbHlFZGl0Q29tbWFuZCh1aW50NjRfdCBjb21tYW5kSUQpOwogICAg
IHZvaWQgZGlkUmVtb3ZlRWRpdENvbW1hbmQodWludDY0X3QgY29tbWFuZElEKTsKQEAgLTgxMSw2
ICs4MTYsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9n
Z2luZ0VuYWJsZWQ7CiAKKyAgICBib29sIG1fbWFpbkZyYW1lSXNTY3JvbGxhYmxlOworCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIGJvb2wgbV9wZGZQbHVnaW5FbmFibGVkOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IDAwY2RkZGQuLjk4NjFiMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yNTksNiArMjU5LDggQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZSB7CiAKICAgICBTZXRXaW5kb3dJc1Zpc2libGUoYm9vbCB3aW5kb3dJ
c1Zpc2libGUpCiAgICAgV2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoV2ViQ29yZTo6SW50UmVj
dCB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIFdlYkNvcmU6OkludFJlY3Qgdmlld0Zy
YW1lSW5XaW5kb3dDb29yZGluYXRlcywgV2ViQ29yZTo6SW50UG9pbnQgYWNjZXNzaWJpbGl0eVZp
ZXdDb29yZGluYXRlcykKKyAgICBWaWV3RXhwb3NlZFJlY3RDaGFuZ2VkKFdlYkNvcmU6OkludFJl
Y3QgZXhwb3NlZFJlY3QpCisgICAgU2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKGJvb2wgaXNTY3Jv
bGxhYmxlKQogICAgIFJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2VucyhDb3JlSVBD
OjpEYXRhUmVmZXJlbmNlIGVsZW1lblRva2VuLCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIHdpbmRv
d1Rva2VuKQogICAgIEdldFN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmQoKSAtPiAoV1RGOjpT
dHJpbmcgc3RyaW5nVmFsdWUpCiAgICAgR2V0RGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQoV1RG
OjpTdHJpbmcgcGFzdGVib2FyZFR5cGUpIC0+IChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxl
IGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEuaAppbmRleCBiNjlhZjU3Li5iYzU3MTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5oCkBAIC03MSw2ICs3MSw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKSBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBv
c2VkUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIG1haW5GcmFtZVNjcm9sbGFiaWxpdHlDaGFuZ2VkKGJvb2wpIE9WRVJSSURFOworCiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ1VwZGF0ZWRTY3JvbGxQb3NpdGlvbihj
b25zdCBGdW5jdGlvbjx2b2lkICgpPiYpIE9WRVJSSURFOwogCiAgICAgLy8gV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckNsaWVudApAQCAtMTEzLDYgKzExNiw4IEBAIHByaXZhdGU6CiAKICAgICBib29s
IG1faXNQYWludGluZ1N1c3BlbmRlZDsKIAorICAgIFdlYkNvcmU6OkludFJlY3QgbV9leHBvc2Vk
UmVjdDsKKwogICAgIGRvdWJsZSBtX21pbmltdW1MYXlvdXRXaWR0aDsKICAgICBXZWJDb3JlOjpJ
bnRTaXplIG1fbGFzdFNlbnRJbnRyaW5zaWNDb250ZW50U2l6ZTsKICAgICBib29sIG1faW5VcGRh
dGVHZW9tZXRyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmlu
ZGV4IGYwMjY0ZjguLmRmYWEzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5tbQpAQCAtMzQxLDYgKzM0MSwxNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhOjpyZXN1bWVQYWludGluZygpCiAgICAgICAgIG1fd2ViUGFnZS0+Y29yZVBhZ2Uo
KS0+cmVzdW1lU2NyaXB0ZWRBbmltYXRpb25zKCk7CiB9CiAKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OnNldEV4cG9zZWRSZWN0KGNvbnN0IEludFJlY3QmIGV4cG9zZWRSZWN0
KQoreworICAgIG1fZXhwb3NlZFJlY3QgPSBleHBvc2VkUmVjdDsKKyAgICBtYWluRnJhbWVUaWxl
ZEJhY2tpbmcoKS0+c2V0RXhwb3NlZFJlY3QoZXhwb3NlZFJlY3QpOworfQorCit2b2lkIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjptYWluRnJhbWVTY3JvbGxhYmlsaXR5Q2hhbmdlZChi
b29sIGlzU2Nyb2xsYWJsZSkKK3sKKyAgICBtYWluRnJhbWVUaWxlZEJhY2tpbmcoKS0+c2V0Q2xp
cHNUb0V4cG9zZWRSZWN0KCFpc1Njcm9sbGFibGUpOworfQorCiB2b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwg
ZG91YmxlIG1pbmltdW1MYXlvdXRXaWR0aCkKIHsKICAgICBtX2luVXBkYXRlR2VvbWV0cnkgPSB0
cnVlOwpAQCAtMzYyLDcgKzM3Myw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBkb3ViCiAgICAgbV93
ZWJQYWdlLT5sYXlvdXRJZk5lZWRlZCgpOwogCiAgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikK
LSAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXRTaXplKHZpZXdTaXplKTsKKyAgICAgICAg
bV9wYWdlT3ZlcmxheUxheWVyLT5zZXRTaXplKHNpemUpOwogCiAgICAgaWYgKCFtX2xheWVyVHJl
ZVN0YXRlSXNGcm96ZW4pCiAgICAgICAgIGZsdXNoTGF5ZXJzKCk7CkBAIC0zNzAsNyArMzgxLDcg
QEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29u
c3QgSW50U2l6ZSYgdmlld1NpemUsIGRvdWIKICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CiAg
ICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKIAotICAgIG1fcm9vdExh
eWVyLmdldCgpLmZyYW1lID0gQ0dSZWN0TWFrZSgwLCAwLCB2aWV3U2l6ZS53aWR0aCgpLCB2aWV3
U2l6ZS5oZWlnaHQoKSk7CisgICAgbV9yb290TGF5ZXIuZ2V0KCkuZnJhbWUgPSBDR1JlY3RNYWtl
KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7CiAKICAgICBbQ0FUcmFuc2FjdGlv
biBjb21taXRdOwogICAgIApAQCAtNDUwLDggKzQ2MSwxMSBAQCB2b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjpzZXRSb290Q29tcG9zaXRpbmdMYXllcihDQUxheWVyICpsYXllcikK
ICAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQogICAgICAgICBbbV9yb290TGF5ZXIuZ2V0KCkg
YWRkU3VibGF5ZXI6bV9wYWdlT3ZlcmxheUxheWVyLT5wbGF0Zm9ybUxheWVyKCldOwogCi0gICAg
aWYgKFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nID0gbWFpbkZyYW1lVGlsZWRCYWNraW5nKCkp
CisgICAgaWYgKFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nID0gbWFpbkZyYW1lVGlsZWRCYWNr
aW5nKCkpIHsKICAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRBZ2dyZXNzaXZlbHlSZXRhaW5zVGls
ZXMobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5hZ2dyZXNzaXZlVGlsZVJldGVu
dGlvbkVuYWJsZWQoKSk7CisgICAgICAgIHRpbGVkQmFja2luZy0+c2V0RXhwb3NlZFJlY3QobV9l
eHBvc2VkUmVjdCk7CisgICAgICAgIHRpbGVkQmFja2luZy0+c2V0Q2xpcHNUb0V4cG9zZWRSZWN0
KCFtX3dlYlBhZ2UtPm1haW5GcmFtZUlzU2Nyb2xsYWJsZSgpKTsKKyAgICB9CiAKICAgICB1cGRh
dGVEZWJ1Z0luZm9MYXllcihtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPnNob3dU
aWxlZFNjcm9sbGluZ0luZGljYXRvcigpKTsKIAo=
</data>
<flag name="review"
          id="201044"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>