<?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>143560</bug_id>
          
          <creation_ts>2015-04-09 02:04:29 -0700</creation_ts>
          <short_desc>Add a persistent, fixed scale factor to make it easy to scale down WK(Web)Views</short_desc>
          <delta_ts>2015-04-14 09:26:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>darin</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1083923</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-04-09 02:04:29 -0700</bug_when>
    <thetext>Add a persistent, fixed scale factor to make it easy to scale down WK(Web)Views</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083924</commentid>
    <comment_count>1</comment_count>
      <attachid>250429</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-04-09 02:07:26 -0700</bug_when>
    <thetext>Created attachment 250429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084011</commentid>
    <comment_count>2</comment_count>
      <attachid>250429</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-09 11:48:58 -0700</bug_when>
    <thetext>Comment on attachment 250429
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h:97
&gt; +@property (nonatomic, setter=_setAutomaticallyComputesFixedLayoutSizeFromViewScale:) BOOL _automaticallyComputesFixedLayoutSizeFromViewScale;

Please add a comment stating that this overrides _fixedLayoutSize. It looks like it also implicitly enables does _setFixedLayoutEnabled:YES? You should say that too.

Maybe we really need:

_setFixedLayoutMode:{NoFixedLayout, FixedLayoutBasedOnViewScale, FixedSizeLayout}

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:99
&gt; +- (void)_killWebContentProcess;

Why doesn&apos;t Mac get _didRelaunchProcess ?

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:547
&gt; +    [self _setFixedLayoutSize:NSMakeSize(self.frame.size.width * inverseScale, self.frame.size.height * inverseScale)];

Do we want explicit rounding/flooring of that size?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084490</commentid>
    <comment_count>3</comment_count>
      <attachid>250568</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-04-10 23:54:38 -0700</bug_when>
    <thetext>Created attachment 250568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084518</commentid>
    <comment_count>4</comment_count>
      <attachid>250568</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-11 08:39:20 -0700</bug_when>
    <thetext>Comment on attachment 250568
Patch

Do we need any range checking to avoid zeroes and infinities and other crazy values?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084905</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-04-13 12:23:18 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 250568 [details]
&gt; Patch
&gt; 
&gt; Do we need any range checking to avoid zeroes and infinities and other crazy
&gt; values?

Seems like a good idea. Will add and land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084983</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-04-13 15:34:26 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Comment on attachment 250568 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Do we need any range checking to avoid zeroes and infinities and other crazy
&gt; &gt; values?
&gt; 
&gt; Seems like a good idea. Will add and land.

Going to add an ASSERT in WebPageProxy and throw exceptions in WKView and WKWebView, after talking to Dan/Anders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085053</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-13 22:02:12 -0700</bug_when>
    <thetext>Several 32-bit build failures from this patch:

/Volumes/Data/slave/gala-production-archive/build/build-Production/WebKit2.roots/Sources/WebKit2/UIProcess/API/mac/WKView.mm:570:31: error: no viable conversion from &apos;NSSize&apos; (aka &apos;_NSSize&apos;) to &apos;CGSize&apos;

/Volumes/Data/slave/gala-production-archive/build/build-Production/WebKit2.roots/Sources/WebKit2/UIProcess/API/mac/WKView.mm:367:17: error: property &apos;_automaticallyComputesFixedLayoutSizeFromViewScale&apos; requires method &apos;_automaticallyComputesFixedLayoutSizeFromViewScale&apos; to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation [-Werror,-Wobjc-property-implementation]

/Volumes/Data/slave/gala-production-archive/build/build-Production/WebKit2.roots/Sources/WebKit2/UIProcess/API/mac/WKView.mm:367:17: error: property &apos;_automaticallyComputesFixedLayoutSizeFromViewScale&apos; requires method &apos;_setAutomaticallyComputesFixedLayoutSizeFromViewScale:&apos; to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation [-Werror,-Wobjc-property-implementation]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085054</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-04-13 22:12:43 -0700</bug_when>
    <thetext>Attempted fixes in r182781. Anyone willing to donate hardware for 32-bit EWS?

Tim&apos;s patch landed in r182772, so marking the bug as resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085156</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-14 09:26:13 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; Do we need any range checking to avoid zeroes and infinities and other crazy
&gt; &gt; values?
&gt; 
&gt; Seems like a good idea. Will add and land.

Slight refactoring suggestion on these. Instead of this:

    if (viewScale &lt;= 0 || isnan(viewScale) || isinf(viewScale))
        [NSException raise:NSInvalidArgumentException format:@&quot;View scale should be a positive number&quot;];

I suggest writing this:

    if (!(viewScale &gt; 0) || isinf(viewScale))
        [NSException raise:NSInvalidArgumentException format:@&quot;View scale should be a positive number&quot;];

I think it’s nice to take advantage of the natural property of NAN that it returns false when every you compare it to anything else. And the code ends up matching the exception string slightly more closely since it’s a check for a positive number rather than a check that it’s not zero or negative.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250429</attachid>
            <date>2015-04-09 02:07:26 -0700</date>
            <delta_ts>2015-04-10 23:54:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143560-20150409020634.patch</filename>
            <type>text/plain</type>
            <size>33395</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODU2ODU2NTJmZTcyZmNj
MGVjMTFkNzdmOTg0NTExMmY2M2Q0YzI1ZC4uZGRiOWVlOGJiMjA0ZTI3NGIwZWQzNTc0MjZkOGY5
YjViOTIwMmVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAxNS0wNC0wOCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBwZXJz
aXN0ZW50LCBmaXhlZCBzY2FsZSBmYWN0b3IgdG8gbWFrZSBpdCBlYXN5IHRvIHNjYWxlIGRvd24g
V0soV2ViKVZpZXdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDM1NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2MzAyMDQ3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyAidmlldyIg
c2NhbGUgZmFjdG9yIHRvIFdLVmlldyBhbmQgV0tXZWJWaWV3LgorCisgICAgICAgIFVubGlrZSBw
YWdlIHNjYWxlIChvciAibWFnbmlmaWNhdGlvbiIgaW4gdGhlIEFQSSksIHZpZXcgc2NhbGU6Cisg
ICAgICAgICAgICAtIHBlcnNpc3RzIGJldHdlZW4gcGFnZSBsb2FkcworICAgICAgICAgICAgLSBw
ZXJzaXN0cyBiZXR3ZWVuIFdlYiBwcm9jZXNzIGNyYXNoZXMKKyAgICAgICAgICAgIC0gaXMgbm90
IHVzZXIgYWRqdXN0YWJsZQorICAgICAgICAgICAgLSBjYW4gcmVsaWFibHkgYmUgPCAxCisKKyAg
ICAgICAgVGhlIHBhZ2Ugc2NhbGUgYW5kIHZpZXcgc2NhbGUgYXJlIG11bHRpcGxpZWQgdG9nZXRo
ZXIgd2hlbmV2ZXIgd2UgcHVzaAorICAgICAgICBhIG5ldyBwYWdlIHNjYWxlIGRvd24gaW50byBX
ZWJDb3JlLCBzbyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdmlldyBzY2FsZQorICAgICAgICBpcyB0
cmFuc3BhcmVudCB0byBXZWJDb3JlLCBhbmQgYWN0cyBlZmZlY3RpdmVseSBhcyBhIGNvbnN0YW50
IG11bHRpcGxpZXIKKyAgICAgICAgZm9yIHRoZSAodXNlci1hZGp1c3RhYmxlKSBwYWdlIHNjYWxl
IGZhY3Rvci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNjYWxlVmlldyk6CisgICAgICAgIEFkZCBzY2FsZVZp
ZXcsIHdoaWNoIHVwZGF0ZXMgb3VyIGNhY2hlZCB2aWV3U2NhbGVGYWN0b3IgYW5kIHB1c2hlcyBp
dCB0byB0aGUgV2ViIHByb2Nlc3MuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpj
cmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICBQbHVtYiB2aWV3U2NhbGVGYWN0b3IgdGhyb3Vn
aCB0aGUgcGFnZSBjcmVhdGlvbiBwYXJhbWV0ZXJzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnZpZXdTY2FsZUZh
Y3Rvcik6IEFkZGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgSWYgdGhlIHZp
ZXdTY2FsZUZhY3RvciBpcyBub3QgMSBhdCBjcmVhdGlvbiB0aW1lLCBjYWxsIHNjYWxlUGFnZSB3
aXRoIGEgcGFnZSBzY2FsZSBvZiAxLgorICAgICAgICBJbnRlcm5hbGx5LCBzY2FsZVBhZ2Ugd2ls
bCBtdWx0aXBseSBpbiB0aGUgdmlld1NjYWxlRmFjdG9yIGFuZCBwdXNoIGl0IGFsbCB0byB0aGUg
V2ViIHByb2Nlc3MuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2NhbGVQYWdlKToKKyAg
ICAgICAgTXVsdGlwbHkgdGhlIHBhZ2Ugc2NhbGUgZmFjdG9yIGJ5IHRoZSB2aWV3IHNjYWxlIGZh
Y3RvciBiZWZvcmUgcGFzc2luZyBpdCB0byBXZWJDb3JlLgorCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNjYWxlUGFnZUluVmlld0Nvb3JkaW5hdGVzKToKKyAgICAgICAgRWFybHkgcmV0dXJu
cyBuZWVkIHRvIGNoZWNrIHRoZSB0b3RhbCBzY2FsZSwgbm90IGp1c3QgdGhlIG5ldyBwYWdlIHNj
YWxlLgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRvdGFsU2NhbGVGYWN0b3IpOgorICAg
ICAgICBUaGUgc2NhbGUgdGhhdCB3ZSBnZXQgYmFjayBmcm9tIFdlYkNvcmU6OlBhZ2U6OnBhZ2VT
Y2FsZUZhY3RvciBpcyB0aGUgcHJvZHVjdAorICAgICAgICBvZiBXZWJLaXQyJ3MgdmlldyBhbmQg
cGFnZSBzY2FsZXMuIFNvLCBoZXJlIHdlJ2xsIGNhbGwgdGhhdCB0aGUgdG90YWxTY2FsZUZhY3Rv
ci4KKyAgICAgICAgKE1pZ2h0IG5lZWQgYSBkaWZmZXJlbnQgbmFtZSBiZWNhdXNlIGl0IHNlZW1z
IGxpa2UgInRvdGFsIiBzaG91bGQgaW5jbHVkZSBkZXZpY2VTY2FsZSB0b28pLgorCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIFdlYktpdDIncyBu
b3Rpb24gb2YgdGhlIHBhZ2VTY2FsZUZhY3RvciBkb2VzIG5vdCBpbmNsdWRlIHRoZSB2aWV3IHNj
YWxlLCBzbworICAgICAgICBkaXZpZGUgaXQgb3V0IG9mIFdlYkNvcmUncyBwYWdlIHNjYWxlLgor
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjYWxlVmlldyk6CisgICAgICAgIEFwcGx5IGEg
bmV3IHZpZXcgc2NhbGUsIG1haW50YWluaW5nIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbi4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnZpZXdTY2FsZUZhY3Rvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
aDoKKyAgICAgICAgUGx1bWIgdmlld1NjYWxlRmFjdG9yIHRocm91Z2ggdGhlIHBhZ2UgY3JlYXRp
b24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3ZpZXdTY2FsZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dFZpZXdTY2FsZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06Cisg
ICAgICAgICgtW1dLVmlldyBfdmlld1NjYWxlXSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0Vmll
d1NjYWxlOl0pOgorICAgICAgICBQdXNoIHRoZSBuZXcgdmlldyBzY2FsZSB0byBXZWJQYWdlLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAg
ICAgIE1vdmUgX2tpbGxXZWJDb250ZW50UHJvY2VzcyBvdXQgb2YgdGhlIGlPUy1vbmx5IGJsb2Nr
LiBJdCdzIGltcGxlbWVudGVkIG9uIGJvdGggcGxhdGZvcm1zLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0QXV0
b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRTaXplRnJvbVZpZXdTY2FsZTpdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9hdXRvbWF0aWNhbGx5Q29tcHV0ZXNGaXhlZExheW91dFNpemVGcm9t
Vmlld1NjYWxlXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1ZpZXcgc2V0RnJhbWVTaXplOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3VwZGF0
ZUF1dG9tYXRpY2FsbHlDb21wdXRlZEZpeGVkTGF5b3V0U2l6ZV0pOgorICAgICAgICAoLVtXS1Zp
ZXcgX3NldEF1dG9tYXRpY2FsbHlDb21wdXRlc0ZpeGVkTGF5b3V0U2l6ZUZyb21WaWV3U2NhbGU6
XSk6CisgICAgICAgICgtW1dLVmlldyBfYXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRT
aXplRnJvbVZpZXdTY2FsZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0lu
dGVybmFsLmg6CisgICAgICAgIEFkZCBhIHByb3BlcnR5IG9uIFdLVmlldyBhbmQgV0tXZWJWaWV3
LCBfYXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRTaXplRnJvbVZpZXdTY2FsZSwKKyAg
ICAgICAgd2hpY2ggdHVybnMgb24gZml4ZWQgbGF5b3V0IHNpemUgbW9kZSwgYW5kIHNldHMgdGhl
IGZpeGVkIGxheW91dCBzaXplCisgICAgICAgIGJhc2VkIG9uIHRoZSB2aWV3J3MgZnJhbWUgYW5k
IHZpZXcgc2NhbGUuIFRoZSBmaXhlZCBsYXlvdXQgc2l6ZSBpcyBtYWludGFpbmVkCisgICAgICAg
IGFzIHRoZSBmcmFtZSBvZiB0aGUgdmlldyBzY2FsZWQgYnkgdGhlIGludmVyc2Ugb2YgdGhlIHZp
ZXcgc2NhbGUuIFRoaXMKKyAgICAgICAgbWFrZXMgaXQgdmVyeSBlYXN5IHRvIG1haW50YWluIGEg
V0soV2ViKVZpZXcgdGhhdCBpcyBzY2FsZWQgZG93biBieQorICAgICAgICBhIGNvbnN0YW50IGFt
b3VudCwgYnV0IGlzIGxhaWQgb3V0IGFzIGlmIGl0IHdlcmUgbm90LgorICAgICAgICAKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6YWRq
dXN0VHJhbnNpZW50Wm9vbSk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhOjpjb21taXRUcmFuc2llbnRab29tKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFwcGx5VHJhbnNpZW50Wm9vbVRvUGFnZSk6CisgICAg
ICAgIEJlY2F1c2UgdGhlIHRyYW5zaWVudCB6b29tIG1lY2hhbmlzbSB0b3VjaGVzIGxheWVycyB0
aGF0IFdlYkNvcmUgb3ducywKKyAgICAgICAgaXQgbW9zdGx5IG5lZWQgdG8gb3BlcmF0ZSB3aXRo
IHRvdGFsU2NhbGVGYWN0b3IsIGJlY2F1c2UgdGhhdCBpcyB3aGF0IFdlYkNvcmUgc2Vlcy4KKwog
MjAxNS0wNC0wNyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGaXggdGhlIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDZhZjkxYWVkYzBmOWI4MDRlYWU0NGIzOWE4
MDFlYzI5MDQ2ZGQwYWQuLjFlZGIzNjU5YTY5MTFkMDk5YzkwM2VmMTI1MTAwYTJmMGEzMWFiNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5jcHAKQEAgLTU4LDYgKzU4LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CiAgICAgZW5jb2RlciA8PCBjYW5S
dW5Nb2RhbDsKICAgICBlbmNvZGVyIDw8IGRldmljZVNjYWxlRmFjdG9yOworICAgIGVuY29kZXIg
PDwgdmlld1NjYWxlRmFjdG9yOwogICAgIGVuY29kZXIgPDwgdG9wQ29udGVudEluc2V0OwogICAg
IGVuY29kZXIgPDwgbWVkaWFWb2x1bWU7CiAgICAgZW5jb2RlciA8PCBtdXRlZDsKQEAgLTEzNSw2
ICsxMzYsOCBAQCBib29sIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUGFnZUNyZQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmRldmljZVNjYWxlRmFjdG9yKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy52aWV3U2NhbGVGYWN0b3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLnRvcENvbnRlbnRJbnNldCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMubWVkaWFWb2x1bWUpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
aW5kZXggYmMxMjg5NzRiNWE3NjU3MDU5M2E5NTY0NDQzMGU4OGIwMzkzMTM0Yy4uYzkyMzA5NWJl
MTFlMDEyNzEzNGU0ZTEwZjJmNjgxYTJjYjBmZTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC05Myw2ICs5Myw3IEBAIHN0
cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIGNhblJ1bk1vZGFsOwog
CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3I7CisgICAgZmxvYXQgdmlld1NjYWxlRmFjdG9y
OwogCiAgICAgZmxvYXQgdG9wQ29udGVudEluc2V0OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAppbmRleCBiYTU0MzRlYmJj
Yjk3MTBiNGIxYzlhY2NhNjk5ZjI0Y2FkYTFiNzYyLi44MmNjOWM2ZTY3MDIwOTdmMzIwMzE2ZjRh
MDc0MjJmMGFkMTA2OWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVmlld1ByaXZhdGUuaApAQCAtOTMsNiArOTMsOSBAQAogQHByb3BlcnR5IChub25h
dG9taWMsIGdldHRlcj1faXNGaXhlZExheW91dEVuYWJsZWQsIHNldHRlcj1fc2V0Rml4ZWRMYXlv
dXRFbmFibGVkOikgQk9PTCBfZml4ZWRMYXlvdXRFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0Rml4ZWRMYXlvdXRTaXplOikgQ0dTaXplIF9maXhlZExheW91dFNpemU7
CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFZpZXdTY2FsZTopIENHRmxvYXQg
X3ZpZXdTY2FsZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEF1dG9tYXRpY2Fs
bHlDb21wdXRlc0ZpeGVkTGF5b3V0U2l6ZUZyb21WaWV3U2NhbGU6KSBCT09MIF9hdXRvbWF0aWNh
bGx5Q29tcHV0ZXNGaXhlZExheW91dFNpemVGcm9tVmlld1NjYWxlOworCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yOikgQ0dGbG9hdCBf
b3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvciBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOwog
CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggZmU4OTBi
OGVhNzdkN2E2OTE0NTJiNGJiYmE2NTZjOGQ1ZjBjNTRjZi4uOTRjMjIyYTg5NGE2NzQzODk2ZGY3
NzVlMTgwMzc0ZGVlOGUwY2Q0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTIyNTIsNiArMjI1MiwyMCBAQCBzdGF0aWMgaW5saW5l
IFdlYktpdDo6RmluZE9wdGlvbnMgdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmRP
cHRpb25zKQogICAgIF9wYWdlLT5zZXRGaXhlZExheW91dFNpemUoV2ViQ29yZTo6ZXhwYW5kZWRJ
bnRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZShmaXhlZExheW91dFNpemUpKSk7CiB9CiAKKy0gKENH
RmxvYXQpX3ZpZXdTY2FsZQoreworICAgIHJldHVybiBfcGFnZS0+dmlld1NjYWxlRmFjdG9yKCk7
Cit9CisKKy0gKHZvaWQpX3NldFZpZXdTY2FsZTooQ0dGbG9hdCl2aWV3U2NhbGUKK3sKKyAgICBf
cGFnZS0+c2NhbGVWaWV3KHZpZXdTY2FsZSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmIChz
ZWxmLl9hdXRvbWF0aWNhbGx5Q29tcHV0ZXNGaXhlZExheW91dFNpemVGcm9tVmlld1NjYWxlKQor
ICAgICAgICBbX3drVmlldyBfdXBkYXRlQXV0b21hdGljYWxseUNvbXB1dGVkRml4ZWRMYXlvdXRT
aXplXTsKKyNlbmRpZgorfQorCiAjcHJhZ21hIG1hcmsgc2Nyb2xscGVyZiBtZXRob2RzCiAKIC0g
KHZvaWQpX3NldFNjcm9sbFBlcmZvcm1hbmNlRGF0YUNvbGxlY3Rpb25FbmFibGVkOihCT09MKWVu
YWJsZWQKQEAgLTI3MjEsNiArMjczNSwxNiBAQCBzdGF0aWMgaW5saW5lIFdlYktpdDo6RmluZE9w
dGlvbnMgdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmRPcHRpb25zKQogCiAjZW5k
aWYKIAorLSAodm9pZClfc2V0QXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRTaXplRnJv
bVZpZXdTY2FsZTooQk9PTClhdXRvbWF0aWNhbGx5Q29tcHV0ZXNGaXhlZExheW91dFNpemVGcm9t
Vmlld1NjYWxlCit7CisgICAgW193a1ZpZXcgX3NldEF1dG9tYXRpY2FsbHlDb21wdXRlc0ZpeGVk
TGF5b3V0U2l6ZUZyb21WaWV3U2NhbGU6YXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRT
aXplRnJvbVZpZXdTY2FsZV07Cit9CisKKy0gKEJPT0wpX2F1dG9tYXRpY2FsbHlDb21wdXRlc0Zp
eGVkTGF5b3V0U2l6ZUZyb21WaWV3U2NhbGUKK3sKKyAgICByZXR1cm4gW193a1ZpZXcgX2F1dG9t
YXRpY2FsbHlDb21wdXRlc0ZpeGVkTGF5b3V0U2l6ZUZyb21WaWV3U2NhbGVdOworfQorCiAjZW5k
aWYKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBmMjdjOGEzNThjZjViYzA4NjcwZjEzYmU5YjIzYjhi
YmM4YWRlNGQ0Li4zMTc5ZWVjY2NiOTVjMjk5NmRhOWQ2MzcwMDkwY2MyZDA4MzdiZjg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaApAQCAtOTQsNiArOTQsMTAgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dL
UGFnaW5hdGlvbk1vZGUpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzRml4ZWRM
YXlvdXRFbmFibGVkLCBzZXR0ZXI9X3NldEZpeGVkTGF5b3V0RW5hYmxlZDopIEJPT0wgX2ZpeGVk
TGF5b3V0RW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZpeGVkTGF5
b3V0U2l6ZTopIENHU2l6ZSBfZml4ZWRMYXlvdXRTaXplOwogCitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRWaWV3U2NhbGU6KSBDR0Zsb2F0IF92aWV3U2NhbGU7CisKKy0gKHZvaWQp
X2tpbGxXZWJDb250ZW50UHJvY2VzczsKKwogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC8vIERFUkVD
QVRFRDogVGhlIHNldHRlcnMgb2YgdGhlIHRocmVlIGZvbGxvd2luZyBmdW5jdGlvbiBhcmUgZGVw
cmVjYXRlZCwgcGxlYXNlIHVzZSBvdmVycmlkZUxheW91dFBhcmFtZXRlcnMuCiAvLyBEZWZpbmUg
dGhlIHNtYWxsZXN0IHNpemUgYSBwYWdlIHRha2Ugd2l0aCBhIHJlZ3VsYXIgdmlld3BvcnQuCkBA
IC0xNDAsNyArMTQ0LDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUGFnaW5hdGlv
bk1vZGUpIHsKIAogLSAodm9pZClfc2V0T3ZlcmxhaWRBY2Nlc3NvcnlWaWV3c0luc2V0OihDR1Np
emUpaW5zZXQ7CiAKLS0gKHZvaWQpX2tpbGxXZWJDb250ZW50UHJvY2VzczsKIC0gKHZvaWQpX2Rp
ZFJlbGF1bmNoUHJvY2VzczsKIAogLy8gUHV0cyB0aGUgdmlldyBpbnRvIGEgc3RhdGUgd2hlcmUg
YmVpbmcgdGFrZW4gb3V0IG9mIHRoZSB2aWV3IGhpZXJhcmNoeSBhbmQgcmVzaWduaW5nIGZpcnN0
IHJlc3BvbmRlcgpAQCAtMTU4LDYgKzE2MSw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS1BhZ2luYXRpb25Nb2RlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRB
dXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM6KSBCT09MIF9hdXRvbWF0aWNhbGx5QWRq
dXN0c0NvbnRlbnRJbnNldHM7CiAjZW5kaWYKIAorQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0QXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRTaXplRnJvbVZpZXdTY2FsZTop
IEJPT0wgX2F1dG9tYXRpY2FsbHlDb21wdXRlc0ZpeGVkTGF5b3V0U2l6ZUZyb21WaWV3U2NhbGU7
CisKIC8vIERlZmF1bHQgdmFsdWUgaXMgMC4gQSB2YWx1ZSBvZiAwIG1lYW5zIHRoZSB3aW5kb3cn
cyBiYWNraW5nIHNjYWxlIGZhY3RvciB3aWxsIGJlIHVzZWQgYW5kIGF1dG9tYXRpY2FsbHkgdXBk
YXRlIHdoZW4gdGhlIHdpbmRvdyBtb3ZlcyBzY3JlZW5zLgogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjopIENHRmxvYXQgX292ZXJyaWRl
RGV2aWNlU2NhbGVGYWN0b3IgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDcxYmMzMzBj
ZWNlZjhlMWZmZGVjMDA2OTk2YzRmZDgwZGJmOTIwYWMuLjczYTQxOGUwMWUyMWQ3ODFkYWVlMWUz
MTM3YzU5MzA2ZTQ3NDhjYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW0KQEAgLTI2Myw2ICsyNjMsNyBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZl
bnRzUGFyYW1ldGVycyB7CiAgICAgQk9PTCBfaWdub3Jlc05vbldoZWVsRXZlbnRzOwogICAgIEJP
T0wgX2lnbm9yZXNBbGxFdmVudHM7CiAgICAgQk9PTCBfYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0
aW9uR2VzdHVyZXM7CisgICAgQk9PTCBfYXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRT
aXplRnJvbVZpZXdTY2FsZTsKIAogICAgIFJldGFpblB0cjxDQUxheWVyPiBfcm9vdExheWVyOwog
CkBAIC01MzQsOSArNTM1LDE4IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJh
bWV0ZXJzIHsKICAgICAgICAgaWYgKF9kYXRhLT5fY2xpcHNUb1Zpc2libGVSZWN0KQogICAgICAg
ICAgICAgW3NlbGYgX3VwZGF0ZVZpZXdFeHBvc2VkUmVjdF07CiAgICAgICAgIFtzZWxmIF9zZXRE
cmF3aW5nQXJlYVNpemU6c2l6ZV07CisgICAgICAgIGlmIChfZGF0YS0+X2F1dG9tYXRpY2FsbHlD
b21wdXRlc0ZpeGVkTGF5b3V0U2l6ZUZyb21WaWV3U2NhbGUpCisgICAgICAgICAgICBbc2VsZiBf
dXBkYXRlQXV0b21hdGljYWxseUNvbXB1dGVkRml4ZWRMYXlvdXRTaXplXTsKICAgICB9CiB9CiAK
Ky0gKHZvaWQpX3VwZGF0ZUF1dG9tYXRpY2FsbHlDb21wdXRlZEZpeGVkTGF5b3V0U2l6ZQorewor
ICAgIEFTU0VSVChfZGF0YS0+X2F1dG9tYXRpY2FsbHlDb21wdXRlc0ZpeGVkTGF5b3V0U2l6ZUZy
b21WaWV3U2NhbGUpOworICAgIENHRmxvYXQgaW52ZXJzZVNjYWxlID0gMSAvIF9kYXRhLT5fcGFn
ZS0+dmlld1NjYWxlRmFjdG9yKCk7CisgICAgW3NlbGYgX3NldEZpeGVkTGF5b3V0U2l6ZTpOU01h
a2VTaXplKHNlbGYuZnJhbWUuc2l6ZS53aWR0aCAqIGludmVyc2VTY2FsZSwgc2VsZi5mcmFtZS5z
aXplLmhlaWdodCAqIGludmVyc2VTY2FsZSldOworfQorCiAtICh2b2lkKV91cGRhdGVXaW5kb3dB
bmRWaWV3RnJhbWVzCiB7CiAgICAgaWYgKF9kYXRhLT5fY2xpcHNUb1Zpc2libGVSZWN0KQpAQCAt
NDM0Miw2ICs0MzUyLDE3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFt
ZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgX2RhdGEtPl9wYWdlLT5zZXRGaXhlZExheW91
dFNpemUoZXhwYW5kZWRJbnRTaXplKEZsb2F0U2l6ZShmaXhlZExheW91dFNpemUpKSk7CiB9CiAK
Ky0gKENHRmxvYXQpX3ZpZXdTY2FsZQoreworICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPnZpZXdT
Y2FsZUZhY3RvcigpOworfQorCistICh2b2lkKV9zZXRWaWV3U2NhbGU6KENHRmxvYXQpdmlld1Nj
YWxlCit7CisgICAgX2RhdGEtPl9wYWdlLT5zY2FsZVZpZXcodmlld1NjYWxlKTsKKyAgICBbc2Vs
ZiBfdXBkYXRlQXV0b21hdGljYWxseUNvbXB1dGVkRml4ZWRMYXlvdXRTaXplXTsKK30KKwogLSAo
dm9pZClfZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXQKIHsKICAgICBpZiAoIV9kYXRhLT5fZGlk
U2NoZWR1bGVTZXRUb3BDb250ZW50SW5zZXQpCkBAIC00NjA4LDYgKzQ2MjksMjUgQEAgc3RhdGlj
IE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkK
IAogI2VuZGlmCiAKKy0gKHZvaWQpX3NldEF1dG9tYXRpY2FsbHlDb21wdXRlc0ZpeGVkTGF5b3V0
U2l6ZUZyb21WaWV3U2NhbGU6KEJPT0wpYXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRT
aXplRnJvbVZpZXdTY2FsZQoreworICAgIGlmIChfZGF0YS0+X2F1dG9tYXRpY2FsbHlDb21wdXRl
c0ZpeGVkTGF5b3V0U2l6ZUZyb21WaWV3U2NhbGUgPT0gYXV0b21hdGljYWxseUNvbXB1dGVzRml4
ZWRMYXlvdXRTaXplRnJvbVZpZXdTY2FsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgX2RhdGEt
Pl9hdXRvbWF0aWNhbGx5Q29tcHV0ZXNGaXhlZExheW91dFNpemVGcm9tVmlld1NjYWxlID0gYXV0
b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRTaXplRnJvbVZpZXdTY2FsZTsKKworICAgIGlm
ICghX2RhdGEtPl9hdXRvbWF0aWNhbGx5Q29tcHV0ZXNGaXhlZExheW91dFNpemVGcm9tVmlld1Nj
YWxlKQorICAgICAgICByZXR1cm47CisKKyAgICBbc2VsZiBfc2V0Rml4ZWRMYXlvdXRFbmFibGVk
OllFU107CisgICAgW3NlbGYgX3VwZGF0ZUF1dG9tYXRpY2FsbHlDb21wdXRlZEZpeGVkTGF5b3V0
U2l6ZV07Cit9CisKKy0gKEJPT0wpX2F1dG9tYXRpY2FsbHlDb21wdXRlc0ZpeGVkTGF5b3V0U2l6
ZUZyb21WaWV3U2NhbGUKK3sKKyAgICByZXR1cm4gX2RhdGEtPl9hdXRvbWF0aWNhbGx5Q29tcHV0
ZXNGaXhlZExheW91dFNpemVGcm9tVmlld1NjYWxlOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRh
dGlvbiBXS1Jlc3BvbmRlckNoYWluU2luawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKaW5kZXggZTUzZDkxOGFmNGU1ODQ0ZDI0OTE2ZDFj
N2M4NWEzOGExNjk1NTY5Yi4uZDgxNDFjYWFlZWIwM2E3ZDc3NWI5ODhiOTcyZTU2MjdmMGU1ZmU4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRl
cm5hbC5oCkBAIC0xNDcsNCArMTQ3LDYgQEAgc3RydWN0IFdlYlBhZ2VDb25maWd1cmF0aW9uOwog
CiBAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1dpbmRvdyAqX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVw
YXJhdGlvbjsKIAorLSAodm9pZClfdXBkYXRlQXV0b21hdGljYWxseUNvbXB1dGVkRml4ZWRMYXlv
dXRTaXplOworCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDI3NTUxYWE4OTViNTc4ZjM5YWU1YzJiNzE5MmY3NDEwMWI4NDhhMjMuLjdjZjY1ZWRk
YzQyYmY2YzlmOTE5NWM4NWRkZGI1NTAyNmI1MDg3ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMjI3LDYgKzIyMjcsMTUgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNjYWxlUGFnZUluVmlld0Nvb3JkaW5hdGVzKGRvdWJsZSBzY2FsZSwgY29uc3QgSW50
UG9pbnQmIGNlbnQKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNjYWxl
UGFnZUluVmlld0Nvb3JkaW5hdGVzKHNjYWxlLCBjZW50ZXJJblZpZXdDb29yZGluYXRlcyksIG1f
cGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNjYWxlVmlldyhkb3VibGUgc2NhbGUp
Cit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdmlld1Nj
YWxlRmFjdG9yID0gc2NhbGU7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpTY2FsZVZpZXcoc2NhbGUpLCBtX3BhZ2VJRCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKIHsKICAgICBp
ZiAobV9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvciA9PSBzY2FsZUZhY3RvcikKQEAgLTQ4NzIs
NiArNDg4MSw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVh
dGlvblBhcmFtZXRlcnMoKQogICAgIHBhcmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsID0gbV91aUNsaWVudC0+Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7CiAg
ICAgcGFyYW1ldGVycy5jYW5SdW5Nb2RhbCA9IG1fY2FuUnVuTW9kYWw7CiAgICAgcGFyYW1ldGVy
cy5kZXZpY2VTY2FsZUZhY3RvciA9IGRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgcGFyYW1ldGVy
cy52aWV3U2NhbGVGYWN0b3IgPSBtX3ZpZXdTY2FsZUZhY3RvcjsKICAgICBwYXJhbWV0ZXJzLnRv
cENvbnRlbnRJbnNldCA9IG1fdG9wQ29udGVudEluc2V0OwogICAgIHBhcmFtZXRlcnMubWVkaWFW
b2x1bWUgPSBtX21lZGlhVm9sdW1lOwogICAgIHBhcmFtZXRlcnMubXV0ZWQgPSBtX211dGVkOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDdkMTEwMjEyNzU5ZTI1
Y2UzZThlYzFiMTJmMDU4NGI1NDI2MzVmMmUuLjljNzRlOWZkMWMzOGQ5ZjBjNTI0YzdlNDYwMGE0
YjkzOGFkZTdkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTYzOSw2ICs2MzksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY2FsZVBhZ2UoZG91YmxlIHNjYWxl
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgb3JpZ2luKTsKICAgICB2b2lkIHNjYWxlUGFnZUlu
Vmlld0Nvb3JkaW5hdGVzKGRvdWJsZSBzY2FsZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNl
bnRlckluVmlld0Nvb3JkaW5hdGVzKTsKICAgICBkb3VibGUgcGFnZVNjYWxlRmFjdG9yKCkgY29u
c3Q7CisgICAgZG91YmxlIHZpZXdTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1Nj
YWxlRmFjdG9yOyB9CisgICAgdm9pZCBzY2FsZVZpZXcoZG91YmxlIHNjYWxlKTsKIAogICAgIGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRJbnRyaW5zaWNEZXZp
Y2VTY2FsZUZhY3RvcihmbG9hdCk7CkBAIC0xNTMzLDYgKzE1MzUsNyBAQCBwcml2YXRlOgogICAg
IGRvdWJsZSBtX3BhZ2VTY2FsZUZhY3RvcjsKICAgICBkb3VibGUgbV9wbHVnaW5ab29tRmFjdG9y
OwogICAgIGRvdWJsZSBtX3BsdWdpblNjYWxlRmFjdG9yOworICAgIGRvdWJsZSBtX3ZpZXdTY2Fs
ZUZhY3RvciB7IDEgfTsKICAgICBmbG9hdCBtX2ludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yOwog
ICAgIGZsb2F0IG1fY3VzdG9tRGV2aWNlU2NhbGVGYWN0b3I7CiAgICAgZmxvYXQgbV90b3BDb250
ZW50SW5zZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggNzJlNDI5YjMxYTc4MDQxZjQyODVlZTk5NzcyOTIxYWMyZmVmN2FhZi4uMmYxODI1
M2M1OWM2NmY1MTUwYzI5MmZkZTlkNmViZjdkZDdhZWUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzM3LDYgKzMzNyw3IEBAIFdlYlBh
Z2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogICAgICwgbV9wcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKHRydWUp
CiAgICAgLCBtX3VzZXJBY3Rpdml0eSgiUHJvY2VzcyBzdXBwcmVzc2lvbiBkaXNhYmxlZCBmb3Ig
cGFnZS4iKQogICAgICwgbV9wZW5kaW5nTmF2aWdhdGlvbklEKDApCisgICAgLCBtX3ZpZXdTY2Fs
ZUZhY3RvcihwYXJhbWV0ZXJzLnZpZXdTY2FsZUZhY3RvcikKICNpZiBFTkFCTEUoV0VCR0wpCiAg
ICAgLCBtX3N5c3RlbVdlYkdMUG9saWN5KFdlYkdMQWxsb3dDcmVhdGlvbikKICNlbmRpZgpAQCAt
NTA2LDYgKzUwNyw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICAgICBtX3BhZ2UtPnNl
dHRpbmdzKCkuc2V0TWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeShtYW5hZ2VyLT5tZWRpYUtleVN0
b3JhZ2VEaXJlY3RvcnkoKSk7CiAjZW5kaWYKICAgICBtX3BhZ2UtPnNldHRpbmdzKCkuc2V0QXBw
bGVNYWlsUGFnaW5hdGlvblF1aXJrRW5hYmxlZChwYXJhbWV0ZXJzLmFwcGxlTWFpbFBhZ2luYXRp
b25RdWlya0VuYWJsZWQpOworCisgICAgaWYgKG1fdmlld1NjYWxlRmFjdG9yICE9IDEpCisgICAg
ICAgIHNjYWxlUGFnZSgxLCBJbnRQb2ludCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpyZWluaXRp
YWxpemVXZWJQYWdlKGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMp
CkBAIC0xMzY5LDcgKzEzNzMsOCBAQCB2b2lkIFdlYlBhZ2U6OndpbmRvd1NjcmVlbkRpZENoYW5n
ZSh1aW50MzJfdCBkaXNwbGF5SUQpCiAKIHZvaWQgV2ViUGFnZTo6c2NhbGVQYWdlKGRvdWJsZSBz
Y2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbikKIHsKLSAgICBib29sIHdpbGxDaGFuZ2VTY2Fs
ZUZhY3RvciA9IHNjYWxlICE9IHBhZ2VTY2FsZUZhY3RvcigpOworICAgIGRvdWJsZSB0b3RhbFNj
YWxlID0gc2NhbGUgKiBtX3ZpZXdTY2FsZUZhY3RvcjsKKyAgICBib29sIHdpbGxDaGFuZ2VTY2Fs
ZUZhY3RvciA9IHRvdGFsU2NhbGUgIT0gdG90YWxTY2FsZUZhY3RvcigpOwogCiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIGlmICh3aWxsQ2hhbmdlU2NhbGVGYWN0b3IpIHsKQEAgLTEzODAsMTEgKzEz
ODUsMTEgQEAgdm9pZCBXZWJQYWdlOjpzY2FsZVBhZ2UoZG91YmxlIHNjYWxlLCBjb25zdCBJbnRQ
b2ludCYgb3JpZ2luKQogI2VuZGlmCiAgICAgUGx1Z2luVmlldyogcGx1Z2luVmlldyA9IHBsdWdp
blZpZXdGb3JGcmFtZSgmbV9wYWdlLT5tYWluRnJhbWUoKSk7CiAgICAgaWYgKHBsdWdpblZpZXcg
JiYgcGx1Z2luVmlldy0+aGFuZGxlc1BhZ2VTY2FsZUZhY3RvcigpKSB7Ci0gICAgICAgIHBsdWdp
blZpZXctPnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZSwgb3JpZ2luKTsKKyAgICAgICAgcGx1Z2lu
Vmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yKHRvdGFsU2NhbGUsIG9yaWdpbik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBtX3BhZ2UtPnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZSwgb3Jp
Z2luKTsKKyAgICBtX3BhZ2UtPnNldFBhZ2VTY2FsZUZhY3Rvcih0b3RhbFNjYWxlLCBvcmlnaW4p
OwogCiAgICAgLy8gV2UgY2FuJ3QgZWFybHkgcmV0dXJuIGJlZm9yZSBzZXRQYWdlU2NhbGVGYWN0
b3IgYmVjYXVzZSB0aGUgb3JpZ2luIG1pZ2h0IGJlIGRpZmZlcmVudC4KICAgICBpZiAoIXdpbGxD
aGFuZ2VTY2FsZUZhY3RvcikKQEAgLTE0MDEsNyArMTQwNiw4IEBAIHZvaWQgV2ViUGFnZTo6c2Nh
bGVQYWdlKGRvdWJsZSBzY2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbikKIAogdm9pZCBXZWJQ
YWdlOjpzY2FsZVBhZ2VJblZpZXdDb29yZGluYXRlcyhkb3VibGUgc2NhbGUsIEludFBvaW50IGNl
bnRlckluVmlld0Nvb3JkaW5hdGVzKQogewotICAgIGlmIChzY2FsZSA9PSBwYWdlU2NhbGVGYWN0
b3IoKSkKKyAgICBkb3VibGUgdG90YWxTY2FsZSA9IHNjYWxlICogbV92aWV3U2NhbGVGYWN0b3I7
CisgICAgaWYgKHRvdGFsU2NhbGUgPT0gdG90YWxTY2FsZUZhY3RvcigpKQogICAgICAgICByZXR1
cm47CiAKICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbkF0TmV3U2NhbGUgPSBtYWluRnJhbWVW
aWV3KCktPnJvb3RWaWV3VG9Db250ZW50cygtY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMpOwpAQCAt
MTQxMCw3ICsxNDE2LDcgQEAgdm9pZCBXZWJQYWdlOjpzY2FsZVBhZ2VJblZpZXdDb29yZGluYXRl
cyhkb3VibGUgc2NhbGUsIEludFBvaW50IGNlbnRlckluVmlld0Nvb3IKICAgICBzY2FsZVBhZ2Uo
c2NhbGUsIHNjcm9sbFBvc2l0aW9uQXROZXdTY2FsZSk7CiB9CiAKLWRvdWJsZSBXZWJQYWdlOjpw
YWdlU2NhbGVGYWN0b3IoKSBjb25zdAorZG91YmxlIFdlYlBhZ2U6OnRvdGFsU2NhbGVGYWN0b3Io
KSBjb25zdAogewogICAgIFBsdWdpblZpZXcqIHBsdWdpblZpZXcgPSBwbHVnaW5WaWV3Rm9yRnJh
bWUoJm1fcGFnZS0+bWFpbkZyYW1lKCkpOwogICAgIGlmIChwbHVnaW5WaWV3ICYmIHBsdWdpblZp
ZXctPmhhbmRsZXNQYWdlU2NhbGVGYWN0b3IoKSkKQEAgLTE0MTksNiArMTQyNSwyNyBAQCBkb3Vi
bGUgV2ViUGFnZTo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdlLT5w
YWdlU2NhbGVGYWN0b3IoKTsKIH0KIAorZG91YmxlIFdlYlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHRvdGFsU2NhbGVGYWN0b3IoKSAvIG1fdmlld1NjYWxlRmFj
dG9yOworfQorCit2b2lkIFdlYlBhZ2U6OnNjYWxlVmlldyhkb3VibGUgc2NhbGUpCit7CisgICAg
ZmxvYXQgcGFnZVNjYWxlID0gcGFnZVNjYWxlRmFjdG9yKCk7CisKKyAgICBkb3VibGUgc2NhbGVS
YXRpbyA9IHNjYWxlIC8gbV92aWV3U2NhbGVGYWN0b3I7CisKKyAgICBJbnRQb2ludCBzY3JvbGxQ
b3NpdGlvbkF0TmV3U2NhbGU7CisgICAgaWYgKEZyYW1lVmlldyogbWFpbkZyYW1lVmlldyA9IG1f
cGFnZS0+bWFpbkZyYW1lKCkudmlldygpKSB7CisgICAgICAgIHNjcm9sbFBvc2l0aW9uQXROZXdT
Y2FsZSA9IG1haW5GcmFtZVZpZXctPnNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAgIHNjcm9sbFBv
c2l0aW9uQXROZXdTY2FsZS5zY2FsZShzY2FsZVJhdGlvLCBzY2FsZVJhdGlvKTsKKyAgICB9CisK
KyAgICBtX3ZpZXdTY2FsZUZhY3RvciA9IHNjYWxlOworICAgIHNjYWxlUGFnZShwYWdlU2NhbGUs
IHNjcm9sbFBvc2l0aW9uQXROZXdTY2FsZSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6c2V0RGV2aWNl
U2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiB7CiAgICAgaWYgKHNjYWxlRmFjdG9yID09
IG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGMzYTYzODUwMDRiYzU0Y2Y3ZjY2YjE5NjMzNWNkM2Jk
ZDdmMGRhNWQuLjMyYjk4MWU1Y2E1ZDFmMjRkM2YxODY3MDY1ZTY4N2NmNWNiZTVmZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzU1LDYgKzM1
NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjYWxlUGFnZShkb3VibGUgc2NhbGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBvcmlnaW4pOwogICAgIHZvaWQgc2NhbGVQYWdlSW5WaWV3Q29vcmRp
bmF0ZXMoZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpJbnRQb2ludCBjZW50ZXJJblZpZXdDb29yZGlu
YXRlcyk7CiAgICAgZG91YmxlIHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OworICAgIGRvdWJsZSB0
b3RhbFNjYWxlRmFjdG9yKCkgY29uc3Q7CisgICAgZG91YmxlIHZpZXdTY2FsZUZhY3RvcigpIGNv
bnN0IHsgcmV0dXJuIG1fdmlld1NjYWxlRmFjdG9yOyB9CisgICAgdm9pZCBzY2FsZVZpZXcoZG91
YmxlIHNjYWxlKTsKIAogICAgIHZvaWQgc2V0VXNlRml4ZWRMYXlvdXQoYm9vbCk7CiAgICAgYm9v
bCB1c2VGaXhlZExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlRml4ZWRMYXlvdXQ7IH0KQEAg
LTEzNDAsNiArMTM0Myw4IEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRfdCBtX3BlbmRpbmdOYXZp
Z2F0aW9uSUQ7CiAKKyAgICBkb3VibGUgbV92aWV3U2NhbGVGYWN0b3IgeyAxIH07CisKICNpZiBF
TkFCTEUoV0VCR0wpCiAgICAgV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5IG1fc3lzdGVtV2ViR0xQ
b2xpY3k7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMDAyMjc4MmE0MTQ5OTM0NDk3ODAwYzZiOWI2
OTY1M2FlZGI3YWI3Yy4uYTRjM2E5NjQxNzlmMGU3ODQ1YzBhNjNlZTRlZDI2MWM3NGYyZTdhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KQEAgLTE5Niw2ICsxOTYsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2Fj
eVJlY2VpdmVyIHsKIAogICAgIFNjYWxlUGFnZShkb3VibGUgc2NhbGUsIFdlYkNvcmU6OkludFBv
aW50IG9yaWdpbikKICAgICBTY2FsZVBhZ2VJblZpZXdDb29yZGluYXRlcyhkb3VibGUgc2NhbGUs
IFdlYkNvcmU6OkludFBvaW50IGNlbnRlckluVmlld0Nvb3JkaW5hdGVzKQorICAgIFNjYWxlVmll
dyhkb3VibGUgc2NhbGUpCiAKICAgICBTZXRVc2VGaXhlZExheW91dChib29sIGZpeGVkKQogICAg
IFNldEZpeGVkTGF5b3V0U2l6ZShXZWJDb3JlOjpJbnRTaXplIHNpemUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQppbmRleCBmMDc1OWYyYTIyYzljMDZlZmFjNDk3
NGFiZDMyMmU3YTA5NzRjZTNkLi5kNzMxMDRmMjA1NzM2NzljZGI4ZGIwZTNkNmQ5OTk1ODU2NjJm
YTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Rp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTYx
Niw5ICs2MTYsMTEgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6YXBwbHlU
cmFuc2llbnRab29tVG9MYXllcnMoZG91YmxlIHNjYWxlLCBGbG8KIAogdm9pZCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6YWRqdXN0VHJhbnNpZW50Wm9vbShkb3VibGUgc2NhbGUsIEZs
b2F0UG9pbnQgb3JpZ2luKQogeworICAgIHNjYWxlICo9IG1fd2ViUGFnZS52aWV3U2NhbGVGYWN0
b3IoKTsKKwogICAgIGFwcGx5VHJhbnNpZW50Wm9vbVRvTGF5ZXJzKHNjYWxlLCBvcmlnaW4pOwog
Ci0gICAgZG91YmxlIGN1cnJlbnRQYWdlU2NhbGUgPSBtX3dlYlBhZ2UucGFnZVNjYWxlRmFjdG9y
KCk7CisgICAgZG91YmxlIGN1cnJlbnRQYWdlU2NhbGUgPSBtX3dlYlBhZ2UudG90YWxTY2FsZUZh
Y3RvcigpOwogICAgIGlmIChzY2FsZSA+IGN1cnJlbnRQYWdlU2NhbGUpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtNjQ0LDYgKzY0Niw4IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlv
bj4gdHJhbnNpZW50Wm9vbVNuYXBBbmltYXRpb25Gb3JLZXlQYXRoKFN0cmluZyBrCiAKIHZvaWQg
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmNvbW1pdFRyYW5zaWVudFpvb20oZG91Ymxl
IHNjYWxlLCBGbG9hdFBvaW50IG9yaWdpbikKIHsKKyAgICBzY2FsZSAqPSBtX3dlYlBhZ2Uudmll
d1NjYWxlRmFjdG9yKCk7CisKICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldyA9ICptX3dlYlBhZ2Uu
bWFpbkZyYW1lVmlldygpOwogICAgIEZsb2F0UmVjdCB2aXNpYmxlQ29udGVudFJlY3QgPSBmcmFt
ZVZpZXcudmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkaW5nU2Nyb2xsYmFycygpOwogCkBAIC02NTEs
NyArNjU1LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Y29tbWl0VHJh
bnNpZW50Wm9vbShkb3VibGUgc2NhbGUsIEZsb2F0UG9pbnQKICAgICBjb25zdHJhaW5lZE9yaWdp
bi5tb3ZlQnkoLW9yaWdpbik7CiAKICAgICBJbnRTaXplIHNjYWxlZFRvdGFsQ29udGVudHNTaXpl
ID0gZnJhbWVWaWV3LnRvdGFsQ29udGVudHNTaXplKCk7Ci0gICAgc2NhbGVkVG90YWxDb250ZW50
c1NpemUuc2NhbGUoc2NhbGUgLyBtX3dlYlBhZ2UucGFnZVNjYWxlRmFjdG9yKCkpOworICAgIHNj
YWxlZFRvdGFsQ29udGVudHNTaXplLnNjYWxlKHNjYWxlIC8gbV93ZWJQYWdlLnRvdGFsU2NhbGVG
YWN0b3IoKSk7CiAKICAgICAvLyBTY2FsaW5nIG1heSBoYXZlIGV4cG9zZWQgdGhlIG92ZXJoYW5n
IGFyZWEsIHNvIHdlIG5lZWQgdG8gY29uc3RyYWluIHRoZSBmaW5hbAogICAgIC8vIGxheWVyIHBv
c2l0aW9uIGV4YWN0bHkgbGlrZSBzY3JvbGxpbmcgd2lsbCBvbmNlIGl0J3MgY29tbWl0dGVkLCB0
byBlbnN1cmUgdGhhdApAQCAtNzMwLDcgKzczNCw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OmFwcGx5VHJhbnNpZW50Wm9vbVRvUGFnZShkb3VibGUgc2NhbGUsIEZsb2F0
CiAgICAgRmxvYXRQb2ludCB1bnNjcm9sbGVkT3JpZ2luKG9yaWdpbik7CiAgICAgRmxvYXRSZWN0
IHVub2JzY3VyZWRDb250ZW50UmVjdCA9IGZyYW1lVmlldy51bm9ic2N1cmVkQ29udGVudFJlY3RJ
bmNsdWRpbmdTY3JvbGxiYXJzKCk7CiAgICAgdW5zY3JvbGxlZE9yaWdpbi5tb3ZlQnkoLXVub2Jz
Y3VyZWRDb250ZW50UmVjdC5sb2NhdGlvbigpKTsKLSAgICBtX3dlYlBhZ2Uuc2NhbGVQYWdlKHNj
YWxlLCByb3VuZGVkSW50UG9pbnQoLXVuc2Nyb2xsZWRPcmlnaW4pKTsKKyAgICBtX3dlYlBhZ2Uu
c2NhbGVQYWdlKHNjYWxlIC8gbV93ZWJQYWdlLnZpZXdTY2FsZUZhY3RvcigpLCByb3VuZGVkSW50
UG9pbnQoLXVuc2Nyb2xsZWRPcmlnaW4pKTsKICAgICBtX3RyYW5zaWVudFpvb21TY2FsZSA9IDE7
CiAgICAgZmx1c2hMYXllcnMoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA2NzgxMDZmZjQ1M2QzNDA3YjFiNGY4ODg1NzhhMGZlYWQ1YWZh
ODQyLi41NTlkN2NhN2UzZGUxMTNhMzUyMzdmY2IzNzkxNWM3YjQ2OWUxNGE0IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTUtMDQtMDggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIGEgcGVyc2lzdGVudCwgZml4ZWQgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgZWFz
eSB0byBzY2FsZSBkb3duIFdLKFdlYilWaWV3cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzNTYwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjMw
MjA0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IE1pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5oOgorICAgICAgICAqIE1p
bmlCcm93c2VyL21hYy9NYWluTWVudS54aWI6CisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL1dL
MUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm06CisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5kb3dD
b250cm9sbGVyIHNldFNjYWxlOl0pOgorICAgICAgICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJv
bGxlciBjcmFzaFdlYlByb2Nlc3M6XSk6CisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5kb3dDb250
cm9sbGVyIHZhbGlkYXRlTWVudUl0ZW06XSk6CisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL1dL
MkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm06CisgICAgICAgICh2aWV3U2NhbGVGb3JNZW51SXRl
bVRhZyk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHNldFNjYWxlOl0p
OgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciBjcmFzaFdlYlByb2Nlc3M6
XSk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHZhbGlkYXRlTWVudUl0
ZW06XSk6CisgICAgICAgIEFkZCBhICJDcmFzaCBXZWIgUHJvY2VzcyIgbWVudSBpdGVtLgorICAg
ICAgICBBZGQgYSBzdWJtZW51IHdpdGggZm91ciB2aWV3IHNjYWxlIG9wdGlvbnM6IDEwMCUsIDc1
JSwgNTAlLCBhbmQgMjUlLgorICAgICAgICBXaGVuIGluIHVzZSwgd2UgcmVzaXplIHRoZSB3aW5k
b3cgc28gdGhhdCB0aGUgdmlldyBmaXRzIGNvcnJlY3RseSwgYW5kCisgICAgICAgIHVzZSBhdXRv
bWF0aWNhbGx5Q29tcHV0ZXNGaXhlZGxheW91dFNpemVGcm9tVmlld1NjYWxlIHNvIHRoYXQgdGhl
IHBhZ2UncworICAgICAgICBsYXlvdXQgc2l6ZSB3aWxsIG5vdCBjaGFuZ2Ugd2hlbiBzY2FsaW5n
IGRvd24gKGJ1dCB3aWxsIHVwZGF0ZSBhcHByb3ByaWF0ZWx5CisgICAgICAgIHdoZW4gdGhlIHZp
ZXcgaXMgcmVzaXplZCkuCisKIDIwMTUtMDQtMDcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIGFuZCB0ZXN0IGZpeGVkTGF5b3V0U2l6ZSB2
aWEgbW9kZXJuIFdlYktpdCBTUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9C
cm93c2VyV2luZG93Q29udHJvbGxlci5oIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJX
aW5kb3dDb250cm9sbGVyLmgKaW5kZXggMWQ4YWQ3NjA5ZjlhMDA2YjVmNGY0YmE2MzM4Yjc4NDAz
OTdhMjFlMi4uMGUyMTk5NzgxM2FmNGU3ZTY3NjY0MzQ0MWJhNGE5MDA5NjI0Nzg0ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgKKysr
IGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgKQEAgLTQ1
LDYgKzQ1LDEwIEBACiAKIC0gKElCQWN0aW9uKXRvZ2dsZVpvb21Nb2RlOihpZClzZW5kZXI7CiAK
Ky0gKElCQWN0aW9uKXNldFNjYWxlOihpZClzZW5kZXI7CisKKy0gKElCQWN0aW9uKWNyYXNoV2Vi
UHJvY2VzczooaWQpc2VuZGVyOworCiAtIChJQkFjdGlvbilkdW1wU291cmNlVG9Db25zb2xlOihp
ZClzZW5kZXI7CiAtIChJQkFjdGlvbilmaW5kOihpZClzZW5kZXI7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL01pbmlCcm93c2VyL21hYy9NYWluTWVudS54aWIgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMv
TWFpbk1lbnUueGliCmluZGV4IDZlODM3YjBhNDFkYzllYzE2NTdhMzAwNzRhMThkYTViMWMzY2Y2
Y2EuLjU2ZDg3OWFlMTA3NDJhODA0MDllMWVmMTgwYjhkOThiODI0ZTYxMmYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL01pbmlCcm93c2VyL21hYy9NYWluTWVudS54aWIKKysrIGIvVG9vbHMvTWluaUJyb3dz
ZXIvbWFjL01haW5NZW51LnhpYgpAQCAtMSw3ICsxLDggQEAKIDw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/PgotPGRvY3VtZW50IHR5cGU9ImNvbS5h
cHBsZS5JbnRlcmZhY2VCdWlsZGVyMy5Db2NvYS5YSUIiIHZlcnNpb249IjMuMCIgdG9vbHNWZXJz
aW9uPSI3NTA0LjIiIHN5c3RlbVZlcnNpb249IjE0RDg5IiB0YXJnZXRSdW50aW1lPSJNYWNPU1gu
Q29jb2EiIHByb3BlcnR5QWNjZXNzQ29udHJvbD0ibm9uZSI+Cis8ZG9jdW1lbnQgdHlwZT0iY29t
LmFwcGxlLkludGVyZmFjZUJ1aWxkZXIzLkNvY29hLlhJQiIgdmVyc2lvbj0iMy4wIiB0b29sc1Zl
cnNpb249IjgwNTIuNCIgc3lzdGVtVmVyc2lvbj0iMTVBMTQxIiB0YXJnZXRSdW50aW1lPSJNYWNP
U1guQ29jb2EiIHByb3BlcnR5QWNjZXNzQ29udHJvbD0ibm9uZSI+CiAgICAgPGRlcGVuZGVuY2ll
cz4KLSAgICAgICAgPHBsdWdJbiBpZGVudGlmaWVyPSJjb20uYXBwbGUuSW50ZXJmYWNlQnVpbGRl
ci5Db2NvYVBsdWdpbiIgdmVyc2lvbj0iNzUwNC4yIi8+CisgICAgICAgIDxkZXBsb3ltZW50IGlk
ZW50aWZpZXI9Im1hY29zeCIvPgorICAgICAgICA8cGx1Z0luIGlkZW50aWZpZXI9ImNvbS5hcHBs
ZS5JbnRlcmZhY2VCdWlsZGVyLkNvY29hUGx1Z2luIiB2ZXJzaW9uPSI4MDUyLjQiLz4KICAgICA8
L2RlcGVuZGVuY2llcz4KICAgICA8b2JqZWN0cz4KICAgICAgICAgPGN1c3RvbU9iamVjdCBpZD0i
LTIiIHVzZXJMYWJlbD0iRmlsZSdzIE93bmVyIiBjdXN0b21DbGFzcz0iTlNBcHBsaWNhdGlvbiI+
CkBAIC0zODIsNiArMzgzLDMzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8YWN0aW9uIHNlbGVjdG9yPSJ0b2dnbGVab29tTW9kZToiIHRhcmdldD0iLTEiIGlkPSI1NjQi
Lz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxtZW51SXRlbSB0aXRsZT0iVmlldyBTY2FsZSIgaWQ9IjhVWS1Qai1IMTMiPgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZh
bGVudE1vZGlmaWVyTWFzayIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVu
dSBrZXk9InN1Ym1lbnUiIHRpdGxlPSJWaWV3IFNjYWxlIiBpZD0iTWw4LW1rLWZmdSI+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aXRlbXM+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSIxMDAlIiBzdGF0ZT0ib24i
IHRhZz0iMSIga2V5RXF1aXZhbGVudD0iMSIgaWQ9IkVBbS1Ybi1WckMiPgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJz
ZXRTY2FsZToiIHRhcmdldD0iLTEiIGlkPSJhYVctVkUtbHh1Ii8+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9Ijc1JSIgdGFnPSIyIiBrZXlF
cXVpdmFsZW50PSIyIiBpZD0iamNBLUkxLUNicSI+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InNldFNjYWxlOiIgdGFy
Z2V0PSItMSIgaWQ9InZvYy0zVy1wcGciLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iNTAlIiB0YWc9IjMiIGtleUVxdWl2YWxlbnQ9IjMi
IGlkPSJCUk0tRDUtWU5PIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0ic2V0U2NhbGU6IiB0YXJnZXQ9Ii0xIiBpZD0i
c2ZZLTZOLUVlUyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1l
bnVJdGVtIHRpdGxlPSIyNSUiIHRhZz0iNCIga2V5RXF1aXZhbGVudD0iNCIgaWQ9Imd6ay1ZSy14
MFciPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVj
dGlvbnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
YWN0aW9uIHNlbGVjdG9yPSJzZXRTY2FsZToiIHRhcmdldD0iLTEiIGlkPSJXUHEtUm0tQ1ZBIi8+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlv
bnM+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaXRlbXM+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvbWVudT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L21lbnVJdGVtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpc1Nl
cGFyYXRvckl0ZW09IllFUyIgaWQ9IjU4MSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxtZW51SXRlbSB0aXRsZT0iUmVsb2FkIFBhZ2UiIGtleUVxdWl2YWxlbnQ9InIiIGlkPSI1Nzki
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CkBAIC00NDks
NiArNDc3LDEyIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9u
IHNlbGVjdG9yPSJyZW1vdmVSZWluc2VydFdlYlZpZXc6IiB0YXJnZXQ9Ii0xIiBpZD0iNTUxIi8+
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bWVudUl0ZW0gdGl0bGU9IkNyYXNoIFdlYiBQcm9jZXNzIiBpZD0iY1VMLW93LTJZQSI+
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlF
cXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rp
b24gc2VsZWN0b3I9ImNyYXNoV2ViUHJvY2VzczoiIHRhcmdldD0iLTEiIGlkPSJFYXotQWUtZ2Vw
Ii8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSI1NTMiLz4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkR1bXAgU291cmNlIFRvIENv
bnNvbGUiIGlkPSI1NjYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZp
ZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgpkaWZmIC0tZ2l0IGEvVG9v
bHMvTWluaUJyb3dzZXIvbWFjL1dLMUJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9N
aW5pQnJvd3Nlci9tYWMvV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCAyM2Y1M2M0
ZjdmMDVmNDZjZjZiYjU4MzAyMTNmNTMxMTUxYTNkZTMyLi43OTQ1ZjhjODY3NGE5OGU1M2JiYjNl
Y2U0NTAzNGZmMDRjNDFmOTBmIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0sx
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0sx
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtMTAwLDYgKzEwMCwxNiBAQCAtIChJQkFjdGlv
bilyZW1vdmVSZWluc2VydFdlYlZpZXc6KGlkKXNlbmRlcgogICAgIH0KIH0KIAorLSAoSUJBY3Rp
b24pc2V0U2NhbGU6KGlkKXNlbmRlcgoreworICAgIAorfQorCistIChJQkFjdGlvbiljcmFzaFdl
YlByb2Nlc3M6KGlkKXNlbmRlcgoreworCit9CisKIC0gKElCQWN0aW9uKXJlbG9hZDooaWQpc2Vu
ZGVyCiB7CiAgICAgW193ZWJWaWV3IHJlbG9hZDpzZW5kZXJdOwpAQCAtMTM4LDYgKzE0OCw5IEBA
IC0gKEJPT0wpdmFsaWRhdGVNZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtCiAgICAgZWxz
ZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVab29tTW9kZTopKQogICAgICAgICBbbWVu
dUl0ZW0gc2V0U3RhdGU6X3pvb21UZXh0T25seSA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwog
CisgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IoY3Jhc2hXZWJQcm9jZXNzOikpCisgICAgICAg
IHJldHVybiBOTzsKKwogICAgIHJldHVybiBZRVM7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL01p
bmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tIGIvVG9vbHMvTWluaUJy
b3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KaW5kZXggMDg1MDRlYjBlNjA4
M2FjM2ZjYjU3MjMxNTY3Njk2YzcyMjE4MjNjNi4uNDBjY2I2OTI1NjM4NjI0MzEwMmU3YTVkMTRh
M2QxNmFkZGE2Yjg5YSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dz
ZXJXaW5kb3dDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dz
ZXJXaW5kb3dDb250cm9sbGVyLm0KQEAgLTMzLDcgKzMzLDYgQEAKICNpbXBvcnQgPFdlYktpdC9X
S05hdmlnYXRpb25EZWxlZ2F0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2
YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVSURlbGVnYXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQv
V0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZh
dGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV2ViTlNVUkxFeHRyYXMuaD4KQEAgLTEyNCw2ICsxMjMsNDEgQEAgLSAoSUJBY3Rpb24pcmVt
b3ZlUmVpbnNlcnRXZWJWaWV3OihpZClzZW5kZXIKICAgICB9CiB9CiAKK3N0YXRpYyBDR0Zsb2F0
IHZpZXdTY2FsZUZvck1lbnVJdGVtVGFnKE5TSW50ZWdlciB0YWcpCit7CisgICAgaWYgKHRhZyA9
PSAxKQorICAgICAgICByZXR1cm4gMTsKKyAgICBpZiAodGFnID09IDIpCisgICAgICAgIHJldHVy
biAwLjc1OworICAgIGlmICh0YWcgPT0gMykKKyAgICAgICAgcmV0dXJuIDAuNTsKKyAgICBpZiAo
dGFnID09IDQpCisgICAgICAgIHJldHVybiAwLjI1OworCisgICAgcmV0dXJuIDE7Cit9CisKKy0g
KElCQWN0aW9uKXNldFNjYWxlOihpZClzZW5kZXIKK3sKKyAgICBDR0Zsb2F0IHNjYWxlID0gdmll
d1NjYWxlRm9yTWVudUl0ZW1UYWcoW3NlbmRlciB0YWddKTsKKyAgICBDR0Zsb2F0IG9sZFNjYWxl
ID0gW193ZWJWaWV3IF92aWV3U2NhbGVdOworCisgICAgaWYgKHNjYWxlID09IG9sZFNjYWxlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBbX3dlYlZpZXcgX3NldEF1dG9tYXRpY2FsbHlDb21wdXRl
c0ZpeGVkTGF5b3V0U2l6ZUZyb21WaWV3U2NhbGU6WUVTXTsKKworICAgIE5TUmVjdCBvbGRGcmFt
ZSA9IHNlbGYud2luZG93LmZyYW1lOworICAgIE5TU2l6ZSBuZXdGcmFtZVNpemUgPSBOU01ha2VT
aXplKG9sZEZyYW1lLnNpemUud2lkdGggKiAoc2NhbGUgLyBvbGRTY2FsZSksIG9sZEZyYW1lLnNp
emUuaGVpZ2h0ICogKHNjYWxlIC8gb2xkU2NhbGUpKTsKKyAgICBbc2VsZi53aW5kb3cgc2V0RnJh
bWU6TlNNYWtlUmVjdChvbGRGcmFtZS5vcmlnaW4ueCwgb2xkRnJhbWUub3JpZ2luLnkgLSAobmV3
RnJhbWVTaXplLmhlaWdodCAtIG9sZEZyYW1lLnNpemUuaGVpZ2h0KSwgbmV3RnJhbWVTaXplLndp
ZHRoLCBuZXdGcmFtZVNpemUuaGVpZ2h0KSBkaXNwbGF5Ok5PIGFuaW1hdGU6Tk9dOworICAgIFtf
d2ViVmlldyBfc2V0Vmlld1NjYWxlOnNjYWxlXTsKK30KKworLSAoSUJBY3Rpb24pY3Jhc2hXZWJQ
cm9jZXNzOihpZClzZW5kZXIKK3sKKyAgICBbX3dlYlZpZXcgX2tpbGxXZWJDb250ZW50UHJvY2Vz
c107Cit9CisKIC0gKEJPT0wpdmFsaWRhdGVNZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVt
CiB7CiAgICAgU0VMIGFjdGlvbiA9IFttZW51SXRlbSBhY3Rpb25dOwpAQCAtMTQ4LDYgKzE4Miw5
IEBAIC0gKEJPT0wpdmFsaWRhdGVNZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtCiAgICAg
ZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVab29tTW9kZTopKQogICAgICAgICBb
bWVudUl0ZW0gc2V0U3RhdGU6X3pvb21UZXh0T25seSA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVd
OwogCisgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3Ioc2V0U2NhbGU6KSkKKyAgICAgICAgW21l
bnVJdGVtIHNldFN0YXRlOltfd2ViVmlldyBfdmlld1NjYWxlXSA9PSB2aWV3U2NhbGVGb3JNZW51
SXRlbVRhZyhbbWVudUl0ZW0gdGFnXSldOworCiAgICAgcmV0dXJuIFlFUzsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250568</attachid>
            <date>2015-04-10 23:54:38 -0700</date>
            <delta_ts>2015-04-11 08:39:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143560-20150410235345.patch</filename>
            <type>text/plain</type>
            <size>33742</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjdjNTZjZjAzNGVmNzQ3
Njg5M2QwYmNmY2QzNTNjNDVlZDZkZWJhNi4uYmI4YWEwZjdhYzQwNDY1MWVkYTg5Y2VkN2FiZDc0
M2M0ODhiMDE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEwMiBAQAogMjAxNS0wNC0xMCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgYSBwZXJz
aXN0ZW50LCBmaXhlZCBzY2FsZSBmYWN0b3IgdG8gbWFrZSBpdCBlYXN5IHRvIHNjYWxlIGRvd24g
V0soV2ViKVZpZXdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDM1NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2MzAyMDQ3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyAidmlldyIg
c2NhbGUgZmFjdG9yIHRvIFdLVmlldyBhbmQgV0tXZWJWaWV3LgorCisgICAgICAgIFVubGlrZSBw
YWdlIHNjYWxlIChvciAibWFnbmlmaWNhdGlvbiIgaW4gdGhlIEFQSSksIHZpZXcgc2NhbGU6Cisg
ICAgICAgICAgICAtIHBlcnNpc3RzIGJldHdlZW4gcGFnZSBsb2FkcworICAgICAgICAgICAgLSBw
ZXJzaXN0cyBiZXR3ZWVuIFdlYiBwcm9jZXNzIGNyYXNoZXMKKyAgICAgICAgICAgIC0gaXMgbm90
IHVzZXIgYWRqdXN0YWJsZQorICAgICAgICAgICAgLSBjYW4gcmVsaWFibHkgYmUgPCAxCisKKyAg
ICAgICAgVGhlIHBhZ2Ugc2NhbGUgYW5kIHZpZXcgc2NhbGUgYXJlIG11bHRpcGxpZWQgdG9nZXRo
ZXIgd2hlbmV2ZXIgd2UgcHVzaAorICAgICAgICBhIG5ldyBwYWdlIHNjYWxlIGRvd24gaW50byBX
ZWJDb3JlLCBzbyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdmlldyBzY2FsZQorICAgICAgICBpcyB0
cmFuc3BhcmVudCB0byBXZWJDb3JlLCBhbmQgYWN0cyBlZmZlY3RpdmVseSBhcyBhIGNvbnN0YW50
IG11bHRpcGxpZXIKKyAgICAgICAgZm9yIHRoZSAodXNlci1hZGp1c3RhYmxlKSBwYWdlIHNjYWxl
IGZhY3Rvci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNjYWxlVmlldyk6CisgICAgICAgIEFkZCBzY2FsZVZp
ZXcsIHdoaWNoIHVwZGF0ZXMgb3VyIGNhY2hlZCB2aWV3U2NhbGVGYWN0b3IgYW5kIHB1c2hlcyBp
dCB0byB0aGUgV2ViIHByb2Nlc3MuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpj
cmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICBQbHVtYiB2aWV3U2NhbGVGYWN0b3IgdGhyb3Vn
aCB0aGUgcGFnZSBjcmVhdGlvbiBwYXJhbWV0ZXJzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnZpZXdTY2FsZUZh
Y3Rvcik6IEFkZGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgSWYgdGhlIHZp
ZXdTY2FsZUZhY3RvciBpcyBub3QgMSBhdCBjcmVhdGlvbiB0aW1lLCBjYWxsIHNjYWxlUGFnZSB3
aXRoIGEgcGFnZSBzY2FsZSBvZiAxLgorICAgICAgICBJbnRlcm5hbGx5LCBzY2FsZVBhZ2Ugd2ls
bCBtdWx0aXBseSBpbiB0aGUgdmlld1NjYWxlRmFjdG9yIGFuZCBwdXNoIGl0IGFsbCB0byB0aGUg
V2ViIHByb2Nlc3MuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2NhbGVQYWdlKToKKyAg
ICAgICAgTXVsdGlwbHkgdGhlIHBhZ2Ugc2NhbGUgZmFjdG9yIGJ5IHRoZSB2aWV3IHNjYWxlIGZh
Y3RvciBiZWZvcmUgcGFzc2luZyBpdCB0byBXZWJDb3JlLgorCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNjYWxlUGFnZUluVmlld0Nvb3JkaW5hdGVzKToKKyAgICAgICAgRWFybHkgcmV0dXJu
cyBuZWVkIHRvIGNoZWNrIHRoZSB0b3RhbCBzY2FsZSwgbm90IGp1c3QgdGhlIG5ldyBwYWdlIHNj
YWxlLgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRvdGFsU2NhbGVGYWN0b3IpOgorICAg
ICAgICBUaGUgc2NhbGUgdGhhdCB3ZSBnZXQgYmFjayBmcm9tIFdlYkNvcmU6OlBhZ2U6OnBhZ2VT
Y2FsZUZhY3RvciBpcyB0aGUgcHJvZHVjdAorICAgICAgICBvZiBXZWJLaXQyJ3MgdmlldyBhbmQg
cGFnZSBzY2FsZXMuIFNvLCBoZXJlIHdlJ2xsIGNhbGwgdGhhdCB0aGUgdG90YWxTY2FsZUZhY3Rv
ci4KKyAgICAgICAgKE1pZ2h0IG5lZWQgYSBkaWZmZXJlbnQgbmFtZSBiZWNhdXNlIGl0IHNlZW1z
IGxpa2UgInRvdGFsIiBzaG91bGQgaW5jbHVkZSBkZXZpY2VTY2FsZSB0b28pLgorCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIFdlYktpdDIncyBu
b3Rpb24gb2YgdGhlIHBhZ2VTY2FsZUZhY3RvciBkb2VzIG5vdCBpbmNsdWRlIHRoZSB2aWV3IHNj
YWxlLCBzbworICAgICAgICBkaXZpZGUgaXQgb3V0IG9mIFdlYkNvcmUncyBwYWdlIHNjYWxlLgor
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjYWxlVmlldyk6CisgICAgICAgIEFwcGx5IGEg
bmV3IHZpZXcgc2NhbGUsIG1haW50YWluaW5nIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbi4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnZpZXdTY2FsZUZhY3Rvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
aDoKKyAgICAgICAgUGx1bWIgdmlld1NjYWxlRmFjdG9yIHRocm91Z2ggdGhlIHBhZ2UgY3JlYXRp
b24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3ZpZXdTY2FsZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dFZpZXdTY2FsZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06Cisg
ICAgICAgICgtW1dLVmlldyBfdmlld1NjYWxlXSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0Vmll
d1NjYWxlOl0pOgorICAgICAgICBQdXNoIHRoZSBuZXcgdmlldyBzY2FsZSB0byBXZWJQYWdlLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2V0QXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRTaXplRnJvbVZpZXdTY2Fs
ZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9hdXRvbWF0aWNhbGx5Q29tcHV0ZXNGaXhlZExh
eW91dFNpemVGcm9tVmlld1NjYWxlXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgc2V0RnJhbWVTaXplOl0pOgorICAgICAgICAoLVtX
S1ZpZXcgX3VwZGF0ZUF1dG9tYXRpY2FsbHlDb21wdXRlZEZpeGVkTGF5b3V0U2l6ZV0pOgorICAg
ICAgICAoLVtXS1ZpZXcgX3NldEF1dG9tYXRpY2FsbHlDb21wdXRlc0ZpeGVkTGF5b3V0U2l6ZUZy
b21WaWV3U2NhbGU6XSk6CisgICAgICAgICgtW1dLVmlldyBfYXV0b21hdGljYWxseUNvbXB1dGVz
Rml4ZWRMYXlvdXRTaXplRnJvbVZpZXdTY2FsZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlld0ludGVybmFsLmg6CisgICAgICAgIEFkZCBhIG5ldyBsYXlvdXQgbW9kZSwgIkR5
bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlIiwKKyAgICAgICAgd2hpY2ggdHVybnMgb24g
Zml4ZWQgbGF5b3V0IHNpemUgbW9kZSwgYW5kIHNldHMgdGhlIGZpeGVkIGxheW91dCBzaXplCisg
ICAgICAgIGJhc2VkIG9uIHRoZSB2aWV3J3MgZnJhbWUgYW5kIHZpZXcgc2NhbGUuIFRoZSBmaXhl
ZCBsYXlvdXQgc2l6ZSBpcyBtYWludGFpbmVkCisgICAgICAgIGFzIHRoZSBmcmFtZSBvZiB0aGUg
dmlldyBzY2FsZWQgYnkgdGhlIGludmVyc2Ugb2YgdGhlIHZpZXcgc2NhbGUuIFRoaXMKKyAgICAg
ICAgbWFrZXMgaXQgdmVyeSBlYXN5IHRvIG1haW50YWluIGEgV0soV2ViKVZpZXcgdGhhdCBpcyBz
Y2FsZWQgZG93biBieQorICAgICAgICBhIGNvbnN0YW50IGFtb3VudCwgYnV0IGlzIGxhaWQgb3V0
IGFzIGlmIGl0IHdlcmUgbm90LgorICAgICAgICAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0
OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6YWRqdXN0VHJhbnNpZW50Wm9vbSk6Cisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpjb21taXRUcmFu
c2llbnRab29tKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OmFwcGx5VHJhbnNpZW50Wm9vbVRvUGFnZSk6CisgICAgICAgIEJlY2F1c2UgdGhlIHRyYW5z
aWVudCB6b29tIG1lY2hhbmlzbSB0b3VjaGVzIGxheWVycyB0aGF0IFdlYkNvcmUgb3ducywKKyAg
ICAgICAgaXQgbW9zdGx5IG5lZWQgdG8gb3BlcmF0ZSB3aXRoIHRvdGFsU2NhbGVGYWN0b3IsIGJl
Y2F1c2UgdGhhdCBpcyB3aGF0IFdlYkNvcmUgc2Vlcy4KKworMjAxNS0wNC0xMCAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKwogICAgICAgICBSZXBsYWNlIHNldEZpeGVk
TGF5b3V0U2l6ZUVuYWJsZWQ6IHdpdGggYW4gZW51bSBvZiBsYXlvdXQgbW9kZXMKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzU3NgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5k
ZXggNmFmOTFhZWRjMGY5YjgwNGVhZTQ0YjM5YTgwMWVjMjkwNDZkZDBhZC4uMWVkYjM2NTlhNjkx
MWQwOTljOTAzZWYxMjUxMDBhMmYwYTMxYWI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNTgsNiArNTgsNyBAQCB2
b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGNhblJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbDsKICAgICBlbmNvZGVyIDw8IGNhblJ1bk1vZGFsOwogICAgIGVuY29kZXIgPDwgZGV2
aWNlU2NhbGVGYWN0b3I7CisgICAgZW5jb2RlciA8PCB2aWV3U2NhbGVGYWN0b3I7CiAgICAgZW5j
b2RlciA8PCB0b3BDb250ZW50SW5zZXQ7CiAgICAgZW5jb2RlciA8PCBtZWRpYVZvbHVtZTsKICAg
ICBlbmNvZGVyIDw8IG11dGVkOwpAQCAtMTM1LDYgKzEzNiw4IEBAIGJvb2wgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJQ
YWdlQ3JlCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMuZGV2aWNlU2NhbGVGYWN0b3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnZpZXdTY2FsZUZhY3RvcikpCisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudG9wQ29u
dGVudEluc2V0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5tZWRpYVZvbHVtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBiYzEyODk3NGI1YTc2NTcwNTkzYTk1
NjQ0NDMwZTg4YjAzOTMxMzRjLi5jOTIzMDk1YmUxMWUwMTI3MTM0ZTRlMTBmMmY2ODFhMmNiMGZl
NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKQEAgLTkzLDYgKzkzLDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMgewogICAgIGJvb2wgY2FuUnVuTW9kYWw7CiAKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
cjsKKyAgICBmbG9hdCB2aWV3U2NhbGVGYWN0b3I7CiAKICAgICBmbG9hdCB0b3BDb250ZW50SW5z
ZXQ7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tM
YXlvdXRNb2RlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tMYXlvdXRNb2Rl
LmgKaW5kZXggZjRhNGYxNzhjYTViY2QwMzg3Yzc4ZWZmOWU4MjlhOTY3NWI2ZGY2Zi4uNmQ2NmE4
YTE0MDM4MmI4YjRlYzdiYjk0NWVkOWFlNWJhZmIxZDJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTGF5b3V0TW9kZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0xheW91dE1vZGUuaApAQCAtMzUsNiArMzUsNyBAQCBleHRlcm4g
IkMiIHsKIGVudW0gewogICAgIGtXS0xheW91dE1vZGVWaWV3U2l6ZSwKICAgICBrV0tMYXlvdXRN
b2RlRml4ZWRTaXplLAorICAgIGtXS0xheW91dE1vZGVEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbVZp
ZXdTY2FsZQogfTsKIHR5cGVkZWYgdWludDMyX3QgV0tMYXlvdXRNb2RlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oCmluZGV4IDQx
N2QxMmNmMWY4NDczYWUzMjdhODIyNWFmNWZiMWYwZjQ4NGJmMDAuLjgzM2NlM2YwMGZhNGI0YzMy
OTFhMTA3OGZiOTRkN2Y1ZjM5MmQyNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oCkBAIC05NCw2ICs5NCw4IEBACiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMYXlvdXRNb2RlOikgV0tMYXlvdXRNb2RlIF9sYXlv
dXRNb2RlOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Rml4ZWRMYXlvdXRTaXpl
OikgQ0dTaXplIF9maXhlZExheW91dFNpemU7CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFZpZXdTY2FsZTopIENHRmxvYXQgX3ZpZXdTY2FsZTsKKwogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjopIENHRmxvYXQgX292
ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKIAog
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDc5MDI5NWEz
NjE0ZTQyOTgxOWI4MjI5ZDNkYzY1MDQyNWU4NDhlMmIuLjhmNWIyZTI0MzI3MmYxM2Y5NGM0NjA5
NTMyYWViNjEzYWE0MjRhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0yMjQ0LDEyICsyMjQ0LDIzIEBAIHN0YXRpYyBpbmxpbmUg
V2ViS2l0OjpGaW5kT3B0aW9ucyB0b0ZpbmRPcHRpb25zKF9XS0ZpbmRPcHRpb25zIHdrRmluZE9w
dGlvbnMpCiAKIC0gKF9XS0xheW91dE1vZGUpX2xheW91dE1vZGUKIHsKLSAgICByZXR1cm4gX3Bh
Z2UtPnVzZUZpeGVkTGF5b3V0KCkgPyBfV0tMYXlvdXRNb2RlRml4ZWRTaXplIDogX1dLTGF5b3V0
TW9kZVZpZXdTaXplOworICAgIGlmIChfcGFnZS0+dXNlRml4ZWRMYXlvdXQoKSkgeworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICAgICAgaWYgKFtfd2tWaWV3IF9hdXRvbWF0aWNhbGx5Q29tcHV0ZXNG
aXhlZExheW91dFNpemVGcm9tVmlld1NjYWxlXSkKKyAgICAgICAgICAgIHJldHVybiBfV0tMYXlv
dXRNb2RlRHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGU7CisjZW5kaWYKKyAgICAgICAg
cmV0dXJuIF9XS0xheW91dE1vZGVGaXhlZFNpemU7CisgICAgfQorICAgIHJldHVybiBfV0tMYXlv
dXRNb2RlVmlld1NpemU7CiB9CiAKIC0gKHZvaWQpX3NldExheW91dE1vZGU6KF9XS0xheW91dE1v
ZGUpbGF5b3V0TW9kZQogewotICAgIF9wYWdlLT5zZXRVc2VGaXhlZExheW91dChsYXlvdXRNb2Rl
ID09IF9XS0xheW91dE1vZGVGaXhlZFNpemUpOworICAgIF9wYWdlLT5zZXRVc2VGaXhlZExheW91
dChsYXlvdXRNb2RlID09IF9XS0xheW91dE1vZGVGaXhlZFNpemUgfHwgbGF5b3V0TW9kZSA9PSBf
V0tMYXlvdXRNb2RlRHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGUpOworCisjaWYgUExB
VEZPUk0oTUFDKQorICAgIFtfd2tWaWV3IF9zZXRBdXRvbWF0aWNhbGx5Q29tcHV0ZXNGaXhlZExh
eW91dFNpemVGcm9tVmlld1NjYWxlOihsYXlvdXRNb2RlID09IF9XS0xheW91dE1vZGVEeW5hbWlj
U2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZSldOworI2VuZGlmCiB9CiAKIC0gKENHU2l6ZSlfZml4
ZWRMYXlvdXRTaXplCkBAIC0yMjYyLDYgKzIyNzMsMjEgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6
OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykK
ICAgICBfcGFnZS0+c2V0Rml4ZWRMYXlvdXRTaXplKFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6ZShX
ZWJDb3JlOjpGbG9hdFNpemUoZml4ZWRMYXlvdXRTaXplKSkpOwogfQogCistIChDR0Zsb2F0KV92
aWV3U2NhbGUKK3sKKyAgICByZXR1cm4gX3BhZ2UtPnZpZXdTY2FsZUZhY3RvcigpOworfQorCist
ICh2b2lkKV9zZXRWaWV3U2NhbGU6KENHRmxvYXQpdmlld1NjYWxlCit7CisgICAgX3BhZ2UtPnNj
YWxlVmlldyh2aWV3U2NhbGUpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmIChbX3drVmll
dyBfYXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRTaXplRnJvbVZpZXdTY2FsZV0pCisg
ICAgICAgIFtfd2tWaWV3IF91cGRhdGVBdXRvbWF0aWNhbGx5Q29tcHV0ZWRGaXhlZExheW91dFNp
emVdOworI2VuZGlmCit9CisKICNwcmFnbWEgbWFyayBzY3JvbGxwZXJmIG1ldGhvZHMKIAogLSAo
dm9pZClfc2V0U2Nyb2xsUGVyZm9ybWFuY2VEYXRhQ29sbGVjdGlvbkVuYWJsZWQ6KEJPT0wpZW5h
YmxlZApAQCAtMjI3Nyw4ICsyMzAzLDggQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRp
b25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykKIC0gKE5TQXJy
YXkgKilfc2Nyb2xsUGVyZm9ybWFuY2VEYXRhCiB7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGlm
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YSogc2Nyb2xs
UGVmRGF0YSA9IF9wYWdlLT5zY3JvbGxpbmdQZXJmb3JtYW5jZURhdGEoKSkKLSAgICAgICAgcmV0
dXJuIHNjcm9sbFBlZkRhdGEtPmRhdGEoKTsKKyAgICBpZiAoV2ViS2l0OjpSZW1vdGVMYXllclRy
ZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGEqIHNjcm9sbFBlcmZEYXRhID0gX3BhZ2UtPnNjcm9s
bGluZ1BlcmZvcm1hbmNlRGF0YSgpKQorICAgICAgICByZXR1cm4gc2Nyb2xsUGVyZkRhdGEtPmRh
dGEoKTsKICNlbmRpZgogICAgIHJldHVybiBuaWw7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDM2NTA0NDIx
ZWI0NGRiYjE2NGNjMjVhNDVjMjNkMmI2MjVlYjg4YzkuLjEyMWZiZDAzMTU2MmM5YTc3ZWUzMzIy
MjY4NmQ5Y2IxODUxZTZjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC05NSw2ICs5NSw4IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS1BhZ2luYXRpb25Nb2RlKSB7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRMYXlvdXRNb2RlOikgX1dLTGF5b3V0TW9kZSBfbGF5b3V0TW9kZTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZpeGVkTGF5b3V0U2l6ZTopIENHU2l6
ZSBfZml4ZWRMYXlvdXRTaXplOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRW
aWV3U2NhbGU6KSBDR0Zsb2F0IF92aWV3U2NhbGU7CisKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAv
LyBERVJFQ0FURUQ6IFRoZSBzZXR0ZXJzIG9mIHRoZSB0aHJlZSBmb2xsb3dpbmcgZnVuY3Rpb24g
YXJlIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2Ugb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzLgogLy8g
RGVmaW5lIHRoZSBzbWFsbGVzdCBzaXplIGEgcGFnZSB0YWtlIHdpdGggYSByZWd1bGFyIHZpZXdw
b3J0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tM
YXlvdXRNb2RlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0xheW91
dE1vZGUuaAppbmRleCAwNzdkYWMxYTQzODRiNzRkYjJlZjQ4NjIxNjZmNzE1OGI4NTlhYmZiLi5l
ZWM2YWJhNDRkMTg5ODdlOTY4ODRhNWI5OTE2NTk2ZWNkY2Q4Y2Y4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0xheW91dE1vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0xheW91dE1vZGUuaApAQCAtMzAsNiAr
MzAsNyBAQAogdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0xheW91dE1vZGUpIHsKICAg
ICBfV0tMYXlvdXRNb2RlVmlld1NpemUsCiAgICAgX1dLTGF5b3V0TW9kZUZpeGVkU2l6ZSwKKyAg
ICBfV0tMYXlvdXRNb2RlRHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGUKIH0gV0tfRU5V
TV9BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGI0Nzc4YjYwY2MyM2ZlNDcw
ZTY2MjEwODlkYjQ3YTE4NDlkNTU1ZTUuLmM5MDQ5NDY4YWRmNmFlNGY3MWYyMjFkYjcyY2VmMGRj
MDU1OWJmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
QEAgLTI2Nyw2ICsyNjcsNyBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1l
dGVycyB7CiAgICAgQk9PTCBfaWdub3Jlc05vbldoZWVsRXZlbnRzOwogICAgIEJPT0wgX2lnbm9y
ZXNBbGxFdmVudHM7CiAgICAgQk9PTCBfYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVy
ZXM7CisgICAgQk9PTCBfYXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRTaXplRnJvbVZp
ZXdTY2FsZTsKIAogICAgIFJldGFpblB0cjxDQUxheWVyPiBfcm9vdExheWVyOwogCkBAIC01NTYs
OSArNTU3LDE4IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsK
ICAgICAgICAgaWYgKF9kYXRhLT5fY2xpcHNUb1Zpc2libGVSZWN0KQogICAgICAgICAgICAgW3Nl
bGYgX3VwZGF0ZVZpZXdFeHBvc2VkUmVjdF07CiAgICAgICAgIFtzZWxmIF9zZXREcmF3aW5nQXJl
YVNpemU6c2l6ZV07CisgICAgICAgIGlmIChfZGF0YS0+X2F1dG9tYXRpY2FsbHlDb21wdXRlc0Zp
eGVkTGF5b3V0U2l6ZUZyb21WaWV3U2NhbGUpCisgICAgICAgICAgICBbc2VsZiBfdXBkYXRlQXV0
b21hdGljYWxseUNvbXB1dGVkRml4ZWRMYXlvdXRTaXplXTsKICAgICB9CiB9CiAKKy0gKHZvaWQp
X3VwZGF0ZUF1dG9tYXRpY2FsbHlDb21wdXRlZEZpeGVkTGF5b3V0U2l6ZQoreworICAgIEFTU0VS
VChfZGF0YS0+X2F1dG9tYXRpY2FsbHlDb21wdXRlc0ZpeGVkTGF5b3V0U2l6ZUZyb21WaWV3U2Nh
bGUpOworICAgIENHRmxvYXQgaW52ZXJzZVNjYWxlID0gMSAvIF9kYXRhLT5fcGFnZS0+dmlld1Nj
YWxlRmFjdG9yKCk7CisgICAgW3NlbGYgX3NldEZpeGVkTGF5b3V0U2l6ZTpOU01ha2VTaXplKHNl
bGYuZnJhbWUuc2l6ZS53aWR0aCAqIGludmVyc2VTY2FsZSwgc2VsZi5mcmFtZS5zaXplLmhlaWdo
dCAqIGludmVyc2VTY2FsZSldOworfQorCiAtICh2b2lkKV91cGRhdGVXaW5kb3dBbmRWaWV3RnJh
bWVzCiB7CiAgICAgaWYgKF9kYXRhLT5fY2xpcHNUb1Zpc2libGVSZWN0KQpAQCAtNDM0NiwxMiAr
NDM1NiwyMyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRo
KE5TU3RyaW5nICpwYXRoKQogCiAtIChXS0xheW91dE1vZGUpX2xheW91dE1vZGUKIHsKLSAgICBy
ZXR1cm4gX2RhdGEtPl9wYWdlLT51c2VGaXhlZExheW91dCgpID8ga1dLTGF5b3V0TW9kZUZpeGVk
U2l6ZSA6IGtXS0xheW91dE1vZGVWaWV3U2l6ZTsKKyAgICBpZiAoX2RhdGEtPl9wYWdlLT51c2VG
aXhlZExheW91dCgpKSB7CisjaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBpZiAoc2VsZi5fYXV0
b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRTaXplRnJvbVZpZXdTY2FsZSkKKyAgICAgICAg
ICAgIHJldHVybiBrV0tMYXlvdXRNb2RlRHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGU7
CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIGtXS0xheW91dE1vZGVGaXhlZFNpemU7CisgICAgfQor
ICAgIHJldHVybiBrV0tMYXlvdXRNb2RlVmlld1NpemU7CiB9CiAKIC0gKHZvaWQpX3NldExheW91
dE1vZGU6KFdLTGF5b3V0TW9kZSlsYXlvdXRNb2RlCiB7Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRV
c2VGaXhlZExheW91dChsYXlvdXRNb2RlID09IGtXS0xheW91dE1vZGVGaXhlZFNpemUpOworICAg
IF9kYXRhLT5fcGFnZS0+c2V0VXNlRml4ZWRMYXlvdXQobGF5b3V0TW9kZSA9PSBrV0tMYXlvdXRN
b2RlRml4ZWRTaXplIHx8IGxheW91dE1vZGUgPT0ga1dLTGF5b3V0TW9kZUR5bmFtaWNTaXplQ29t
cHV0ZWRGcm9tVmlld1NjYWxlKTsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBzZWxmLl9hdXRv
bWF0aWNhbGx5Q29tcHV0ZXNGaXhlZExheW91dFNpemVGcm9tVmlld1NjYWxlID0gKGxheW91dE1v
ZGUgPT0ga1dLTGF5b3V0TW9kZUR5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlKTsKKyNl
bmRpZgogfQogCiAtIChDR1NpemUpX2ZpeGVkTGF5b3V0U2l6ZQpAQCAtNDM2NCw2ICs0Mzg1LDE3
IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJp
bmcgKnBhdGgpCiAgICAgX2RhdGEtPl9wYWdlLT5zZXRGaXhlZExheW91dFNpemUoZXhwYW5kZWRJ
bnRTaXplKEZsb2F0U2l6ZShmaXhlZExheW91dFNpemUpKSk7CiB9CiAKKy0gKENHRmxvYXQpX3Zp
ZXdTY2FsZQoreworICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPnZpZXdTY2FsZUZhY3RvcigpOwor
fQorCistICh2b2lkKV9zZXRWaWV3U2NhbGU6KENHRmxvYXQpdmlld1NjYWxlCit7CisgICAgX2Rh
dGEtPl9wYWdlLT5zY2FsZVZpZXcodmlld1NjYWxlKTsKKyAgICBbc2VsZiBfdXBkYXRlQXV0b21h
dGljYWxseUNvbXB1dGVkRml4ZWRMYXlvdXRTaXplXTsKK30KKwogLSAodm9pZClfZGlzcGF0Y2hT
ZXRUb3BDb250ZW50SW5zZXQKIHsKICAgICBpZiAoIV9kYXRhLT5fZGlkU2NoZWR1bGVTZXRUb3BD
b250ZW50SW5zZXQpCkBAIC00NjMwLDYgKzQ2NjIsMjQgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRo
V2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogI2VuZGlmCiAKKy0g
KHZvaWQpX3NldEF1dG9tYXRpY2FsbHlDb21wdXRlc0ZpeGVkTGF5b3V0U2l6ZUZyb21WaWV3U2Nh
bGU6KEJPT0wpYXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRTaXplRnJvbVZpZXdTY2Fs
ZQoreworICAgIGlmIChfZGF0YS0+X2F1dG9tYXRpY2FsbHlDb21wdXRlc0ZpeGVkTGF5b3V0U2l6
ZUZyb21WaWV3U2NhbGUgPT0gYXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRTaXplRnJv
bVZpZXdTY2FsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgX2RhdGEtPl9hdXRvbWF0aWNhbGx5
Q29tcHV0ZXNGaXhlZExheW91dFNpemVGcm9tVmlld1NjYWxlID0gYXV0b21hdGljYWxseUNvbXB1
dGVzRml4ZWRMYXlvdXRTaXplRnJvbVZpZXdTY2FsZTsKKworICAgIGlmICghX2RhdGEtPl9hdXRv
bWF0aWNhbGx5Q29tcHV0ZXNGaXhlZExheW91dFNpemVGcm9tVmlld1NjYWxlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBbc2VsZiBfdXBkYXRlQXV0b21hdGljYWxseUNvbXB1dGVkRml4ZWRMYXlv
dXRTaXplXTsKK30KKworLSAoQk9PTClfYXV0b21hdGljYWxseUNvbXB1dGVzRml4ZWRMYXlvdXRT
aXplRnJvbVZpZXdTY2FsZQoreworICAgIHJldHVybiBfZGF0YS0+X2F1dG9tYXRpY2FsbHlDb21w
dXRlc0ZpeGVkTGF5b3V0U2l6ZUZyb21WaWV3U2NhbGU7Cit9CisKIEBlbmQKIAogQGltcGxlbWVu
dGF0aW9uIFdLUmVzcG9uZGVyQ2hhaW5TaW5rCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAppbmRleCBlNTNkOTE4YWY0ZTU4NDRkMjQ5MTZk
MWM3Yzg1YTM4YTE2OTU1NjliLi43MzI4Yjg2ZjY3MjY1ODM1ODlkZDJhNDg0MDEwZmM2YTZmYTlj
OGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJ
bnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0lu
dGVybmFsLmgKQEAgLTE0Nyw0ICsxNDcsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNvbmZpZ3VyYXRpb247
CiAKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIE5TV2luZG93ICpfdGFyZ2V0V2luZG93Rm9yTW92ZVBy
ZXBhcmF0aW9uOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdXRvbWF0aWNh
bGx5Q29tcHV0ZXNGaXhlZExheW91dFNpemVGcm9tVmlld1NjYWxlOikgQk9PTCBfYXV0b21hdGlj
YWxseUNvbXB1dGVzRml4ZWRMYXlvdXRTaXplRnJvbVZpZXdTY2FsZTsKKy0gKHZvaWQpX3VwZGF0
ZUF1dG9tYXRpY2FsbHlDb21wdXRlZEZpeGVkTGF5b3V0U2l6ZTsKKwogQGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA0MWRhMmM3ZjY4NWE2OTQ5OTgw
MTAxNWRhNTEzMjk4OTViZDc5MDE4Li5hNWRlMzU4MzgxN2RmYTgzNjRjOThkNTdmOWI5OTBlNDgw
Y2E5MGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MjIzMiw2ICsyMjMyLDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzY2FsZVBhZ2VJblZpZXdDb29y
ZGluYXRlcyhkb3VibGUgc2NhbGUsIGNvbnN0IEludFBvaW50JiBjZW50CiAgICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTY2FsZVBhZ2VJblZpZXdDb29yZGluYXRlcyhzY2Fs
ZSwgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMpLCBtX3BhZ2VJRCk7CiB9CiAKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpzY2FsZVZpZXcoZG91YmxlIHNjYWxlKQoreworICAgIGlmICghaXNWYWxpZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3ZpZXdTY2FsZUZhY3RvciA9IHNjYWxlOworICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2NhbGVWaWV3KHNjYWxlKSwgbV9wYWdl
SUQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0
b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiB7CiAgICAgaWYgKG1faW50cmluc2ljRGV2aWNlU2NhbGVG
YWN0b3IgPT0gc2NhbGVGYWN0b3IpCkBAIC00ODkzLDYgKzQ5MDIsNyBAQCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKCkKICAgICBwYXJh
bWV0ZXJzLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCA9IG1fdWlDbGllbnQtPmNhblJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwogICAgIHBhcmFtZXRlcnMuY2FuUnVuTW9kYWwg
PSBtX2NhblJ1bk1vZGFsOwogICAgIHBhcmFtZXRlcnMuZGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZp
Y2VTY2FsZUZhY3RvcigpOworICAgIHBhcmFtZXRlcnMudmlld1NjYWxlRmFjdG9yID0gbV92aWV3
U2NhbGVGYWN0b3I7CiAgICAgcGFyYW1ldGVycy50b3BDb250ZW50SW5zZXQgPSBtX3RvcENvbnRl
bnRJbnNldDsKICAgICBwYXJhbWV0ZXJzLm1lZGlhVm9sdW1lID0gbV9tZWRpYVZvbHVtZTsKICAg
ICBwYXJhbWV0ZXJzLm11dGVkID0gbV9tdXRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCA0NjhmNzQ3OGRkNjUzODRhNWUxNmFmZTg5OGE5N2EyNTU0MGYwYjc1
Li4wMTk0MTIwMzI1MTM4NjI3YzNkNjE1YmFkMTM0NjkzYTM4NjNmZGQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02MzksNiArNjM5LDggQEAgcHVibGljOgog
ICAgIHZvaWQgc2NhbGVQYWdlKGRvdWJsZSBzY2FsZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IG9yaWdpbik7CiAgICAgdm9pZCBzY2FsZVBhZ2VJblZpZXdDb29yZGluYXRlcyhkb3VibGUgc2Nh
bGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjZW50ZXJJblZpZXdDb29yZGluYXRlcyk7CiAg
ICAgZG91YmxlIHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OworICAgIGRvdWJsZSB2aWV3U2NhbGVG
YWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdTY2FsZUZhY3RvcjsgfQorICAgIHZvaWQgc2Nh
bGVWaWV3KGRvdWJsZSBzY2FsZSk7CiAKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNv
bnN0OwogICAgIHZvaWQgc2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwpAQCAt
MTUzMyw2ICsxNTM1LDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9wYWdlU2NhbGVGYWN0b3I7
CiAgICAgZG91YmxlIG1fcGx1Z2luWm9vbUZhY3RvcjsKICAgICBkb3VibGUgbV9wbHVnaW5TY2Fs
ZUZhY3RvcjsKKyAgICBkb3VibGUgbV92aWV3U2NhbGVGYWN0b3IgeyAxIH07CiAgICAgZmxvYXQg
bV9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcjsKICAgICBmbG9hdCBtX2N1c3RvbURldmljZVNj
YWxlRmFjdG9yOwogICAgIGZsb2F0IG1fdG9wQ29udGVudEluc2V0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDEzNjg3ZTBhMjAzM2Y1MjQ3
OGU5N2Q1NzliOTA4NTc5YTE3NDRiZWEuLjJlMTM0NWExMDEyMGZjYTU1ZjI3Y2RiNWExNDAxOGI0
OTQzNDM1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTMzOCw2ICszMzgsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICAsIG1f
cHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCh0cnVlKQogICAgICwgbV91c2VyQWN0aXZpdHkoIlBy
b2Nlc3Mgc3VwcHJlc3Npb24gZGlzYWJsZWQgZm9yIHBhZ2UuIikKICAgICAsIG1fcGVuZGluZ05h
dmlnYXRpb25JRCgwKQorICAgICwgbV92aWV3U2NhbGVGYWN0b3IocGFyYW1ldGVycy52aWV3U2Nh
bGVGYWN0b3IpCiAjaWYgRU5BQkxFKFdFQkdMKQogICAgICwgbV9zeXN0ZW1XZWJHTFBvbGljeShX
ZWJHTEFsbG93Q3JlYXRpb24pCiAjZW5kaWYKQEAgLTUwNCw2ICs1MDUsOSBAQCBXZWJQYWdlOjpX
ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYg
cGFyYW1ldGVycykKICAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldE1lZGlhS2V5c1N0b3Jh
Z2VEaXJlY3RvcnkobWFuYWdlci0+bWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5KCkpOwogI2VuZGlm
CiAgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldEFwcGxlTWFpbFBhZ2luYXRpb25RdWlya0VuYWJs
ZWQocGFyYW1ldGVycy5hcHBsZU1haWxQYWdpbmF0aW9uUXVpcmtFbmFibGVkKTsKKworICAgIGlm
IChtX3ZpZXdTY2FsZUZhY3RvciAhPSAxKQorICAgICAgICBzY2FsZVBhZ2UoMSwgSW50UG9pbnQo
KSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6cmVpbml0aWFsaXplV2ViUGFnZShjb25zdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpAQCAtMTM2Nyw3ICsxMzcxLDggQEAgdm9p
ZCBXZWJQYWdlOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UodWludDMyX3QgZGlzcGxheUlEKQogCiB2
b2lkIFdlYlBhZ2U6OnNjYWxlUGFnZShkb3VibGUgc2NhbGUsIGNvbnN0IEludFBvaW50JiBvcmln
aW4pCiB7Ci0gICAgYm9vbCB3aWxsQ2hhbmdlU2NhbGVGYWN0b3IgPSBzY2FsZSAhPSBwYWdlU2Nh
bGVGYWN0b3IoKTsKKyAgICBkb3VibGUgdG90YWxTY2FsZSA9IHNjYWxlICogbV92aWV3U2NhbGVG
YWN0b3I7CisgICAgYm9vbCB3aWxsQ2hhbmdlU2NhbGVGYWN0b3IgPSB0b3RhbFNjYWxlICE9IHRv
dGFsU2NhbGVGYWN0b3IoKTsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAod2lsbENoYW5n
ZVNjYWxlRmFjdG9yKSB7CkBAIC0xMzc4LDExICsxMzgzLDExIEBAIHZvaWQgV2ViUGFnZTo6c2Nh
bGVQYWdlKGRvdWJsZSBzY2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbikKICNlbmRpZgogICAg
IFBsdWdpblZpZXcqIHBsdWdpblZpZXcgPSBwbHVnaW5WaWV3Rm9yRnJhbWUoJm1fcGFnZS0+bWFp
bkZyYW1lKCkpOwogICAgIGlmIChwbHVnaW5WaWV3ICYmIHBsdWdpblZpZXctPmhhbmRsZXNQYWdl
U2NhbGVGYWN0b3IoKSkgewotICAgICAgICBwbHVnaW5WaWV3LT5zZXRQYWdlU2NhbGVGYWN0b3Io
c2NhbGUsIG9yaWdpbik7CisgICAgICAgIHBsdWdpblZpZXctPnNldFBhZ2VTY2FsZUZhY3Rvcih0
b3RhbFNjYWxlLCBvcmlnaW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wYWdl
LT5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGUsIG9yaWdpbik7CisgICAgbV9wYWdlLT5zZXRQYWdl
U2NhbGVGYWN0b3IodG90YWxTY2FsZSwgb3JpZ2luKTsKIAogICAgIC8vIFdlIGNhbid0IGVhcmx5
IHJldHVybiBiZWZvcmUgc2V0UGFnZVNjYWxlRmFjdG9yIGJlY2F1c2UgdGhlIG9yaWdpbiBtaWdo
dCBiZSBkaWZmZXJlbnQuCiAgICAgaWYgKCF3aWxsQ2hhbmdlU2NhbGVGYWN0b3IpCkBAIC0xMzk5
LDcgKzE0MDQsOCBAQCB2b2lkIFdlYlBhZ2U6OnNjYWxlUGFnZShkb3VibGUgc2NhbGUsIGNvbnN0
IEludFBvaW50JiBvcmlnaW4pCiAKIHZvaWQgV2ViUGFnZTo6c2NhbGVQYWdlSW5WaWV3Q29vcmRp
bmF0ZXMoZG91YmxlIHNjYWxlLCBJbnRQb2ludCBjZW50ZXJJblZpZXdDb29yZGluYXRlcykKIHsK
LSAgICBpZiAoc2NhbGUgPT0gcGFnZVNjYWxlRmFjdG9yKCkpCisgICAgZG91YmxlIHRvdGFsU2Nh
bGUgPSBzY2FsZSAqIG1fdmlld1NjYWxlRmFjdG9yOworICAgIGlmICh0b3RhbFNjYWxlID09IHRv
dGFsU2NhbGVGYWN0b3IoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgSW50UG9pbnQgc2Nyb2xs
UG9zaXRpb25BdE5ld1NjYWxlID0gbWFpbkZyYW1lVmlldygpLT5yb290Vmlld1RvQ29udGVudHMo
LWNlbnRlckluVmlld0Nvb3JkaW5hdGVzKTsKQEAgLTE0MDgsNyArMTQxNCw3IEBAIHZvaWQgV2Vi
UGFnZTo6c2NhbGVQYWdlSW5WaWV3Q29vcmRpbmF0ZXMoZG91YmxlIHNjYWxlLCBJbnRQb2ludCBj
ZW50ZXJJblZpZXdDb29yCiAgICAgc2NhbGVQYWdlKHNjYWxlLCBzY3JvbGxQb3NpdGlvbkF0TmV3
U2NhbGUpOwogfQogCi1kb3VibGUgV2ViUGFnZTo6cGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKK2Rv
dWJsZSBXZWJQYWdlOjp0b3RhbFNjYWxlRmFjdG9yKCkgY29uc3QKIHsKICAgICBQbHVnaW5WaWV3
KiBwbHVnaW5WaWV3ID0gcGx1Z2luVmlld0ZvckZyYW1lKCZtX3BhZ2UtPm1haW5GcmFtZSgpKTsK
ICAgICBpZiAocGx1Z2luVmlldyAmJiBwbHVnaW5WaWV3LT5oYW5kbGVzUGFnZVNjYWxlRmFjdG9y
KCkpCkBAIC0xNDE3LDYgKzE0MjMsMjcgQEAgZG91YmxlIFdlYlBhZ2U6OnBhZ2VTY2FsZUZhY3Rv
cigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKK2Rv
dWJsZSBXZWJQYWdlOjpwYWdlU2NhbGVGYWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiB0b3Rh
bFNjYWxlRmFjdG9yKCkgLyBtX3ZpZXdTY2FsZUZhY3RvcjsKK30KKwordm9pZCBXZWJQYWdlOjpz
Y2FsZVZpZXcoZG91YmxlIHNjYWxlKQoreworICAgIGZsb2F0IHBhZ2VTY2FsZSA9IHBhZ2VTY2Fs
ZUZhY3RvcigpOworCisgICAgZG91YmxlIHNjYWxlUmF0aW8gPSBzY2FsZSAvIG1fdmlld1NjYWxl
RmFjdG9yOworCisgICAgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb25BdE5ld1NjYWxlOworICAgIGlm
IChGcmFtZVZpZXcqIG1haW5GcmFtZVZpZXcgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKSkg
eworICAgICAgICBzY3JvbGxQb3NpdGlvbkF0TmV3U2NhbGUgPSBtYWluRnJhbWVWaWV3LT5zY3Jv
bGxQb3NpdGlvbigpOworICAgICAgICBzY3JvbGxQb3NpdGlvbkF0TmV3U2NhbGUuc2NhbGUoc2Nh
bGVSYXRpbywgc2NhbGVSYXRpbyk7CisgICAgfQorCisgICAgbV92aWV3U2NhbGVGYWN0b3IgPSBz
Y2FsZTsKKyAgICBzY2FsZVBhZ2UocGFnZVNjYWxlLCBzY3JvbGxQb3NpdGlvbkF0TmV3U2NhbGUp
OworfQorCiB2b2lkIFdlYlBhZ2U6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFj
dG9yKQogewogICAgIGlmIChzY2FsZUZhY3RvciA9PSBtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9y
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA5
YmMzM2Y3MGM0ZmQ4MjEzNTczZGY0YjZiNzk4OTQxNzhlYmQ2OTMwLi5jZTQzOGQyMDQyOWE2Mzk0
ZjU5ZTZhMDBhYjM3ODViZmI1OTFmNjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTM1Nyw2ICszNTcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
Y2FsZVBhZ2UoZG91YmxlIHNjYWxlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgb3JpZ2luKTsK
ICAgICB2b2lkIHNjYWxlUGFnZUluVmlld0Nvb3JkaW5hdGVzKGRvdWJsZSBzY2FsZSwgV2ViQ29y
ZTo6SW50UG9pbnQgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMpOwogICAgIGRvdWJsZSBwYWdlU2Nh
bGVGYWN0b3IoKSBjb25zdDsKKyAgICBkb3VibGUgdG90YWxTY2FsZUZhY3RvcigpIGNvbnN0Owor
ICAgIGRvdWJsZSB2aWV3U2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdTY2FsZUZh
Y3RvcjsgfQorICAgIHZvaWQgc2NhbGVWaWV3KGRvdWJsZSBzY2FsZSk7CiAKICAgICB2b2lkIHNl
dFVzZUZpeGVkTGF5b3V0KGJvb2wpOwogICAgIGJvb2wgdXNlRml4ZWRMYXlvdXQoKSBjb25zdCB7
IHJldHVybiBtX3VzZUZpeGVkTGF5b3V0OyB9CkBAIC0xMzQyLDYgKzEzNDUsOCBAQCBwcml2YXRl
OgogCiAgICAgdWludDY0X3QgbV9wZW5kaW5nTmF2aWdhdGlvbklEOwogCisgICAgZG91YmxlIG1f
dmlld1NjYWxlRmFjdG9yIHsgMSB9OworCiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIFdlYkNvcmU6
OldlYkdMTG9hZFBvbGljeSBtX3N5c3RlbVdlYkdMUG9saWN5OwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IDQ5YTI0ZTEzY2QwN2ZlM2Q2N2I0MDk0ZmU5NmU2YjM1MzRhNWZmNjkuLjhmZGQ2OGQxNDQ2
OWJmNjU2ZTdlMGRlNDE4OTY3NDVhYzViMjUxNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xOTYsNiArMTk2
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBTY2FsZVBh
Z2UoZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpJbnRQb2ludCBvcmlnaW4pCiAgICAgU2NhbGVQYWdl
SW5WaWV3Q29vcmRpbmF0ZXMoZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpJbnRQb2ludCBjZW50ZXJJ
blZpZXdDb29yZGluYXRlcykKKyAgICBTY2FsZVZpZXcoZG91YmxlIHNjYWxlKQogCiAgICAgU2V0
VXNlRml4ZWRMYXlvdXQoYm9vbCBmaXhlZCkKICAgICBTZXRGaXhlZExheW91dFNpemUoV2ViQ29y
ZTo6SW50U2l6ZSBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
bW0KaW5kZXggZjA3NTlmMmEyMmM5YzA2ZWZhYzQ5NzRhYmQzMjJlN2EwOTc0Y2UzZC4uZDczMTA0
ZjIwNTczNjc5Y2RiOGRiMGUzZDZkOTk5NTg1NjYyZmE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBAIC02MTYsOSArNjE2LDExIEBAIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFwcGx5VHJhbnNpZW50Wm9vbVRvTGF5ZXJzKGRvdWJs
ZSBzY2FsZSwgRmxvCiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFkanVz
dFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBGbG9hdFBvaW50IG9yaWdpbikKIHsKKyAgICBz
Y2FsZSAqPSBtX3dlYlBhZ2Uudmlld1NjYWxlRmFjdG9yKCk7CisKICAgICBhcHBseVRyYW5zaWVu
dFpvb21Ub0xheWVycyhzY2FsZSwgb3JpZ2luKTsKIAotICAgIGRvdWJsZSBjdXJyZW50UGFnZVNj
YWxlID0gbV93ZWJQYWdlLnBhZ2VTY2FsZUZhY3RvcigpOworICAgIGRvdWJsZSBjdXJyZW50UGFn
ZVNjYWxlID0gbV93ZWJQYWdlLnRvdGFsU2NhbGVGYWN0b3IoKTsKICAgICBpZiAoc2NhbGUgPiBj
dXJyZW50UGFnZVNjYWxlKQogICAgICAgICByZXR1cm47CiAKQEAgLTY0NCw2ICs2NDYsOCBAQCBz
dGF0aWMgUmV0YWluUHRyPENBQmFzaWNBbmltYXRpb24+IHRyYW5zaWVudFpvb21TbmFwQW5pbWF0
aW9uRm9yS2V5UGF0aChTdHJpbmcgawogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpjb21taXRUcmFuc2llbnRab29tKGRvdWJsZSBzY2FsZSwgRmxvYXRQb2ludCBvcmlnaW4p
CiB7CisgICAgc2NhbGUgKj0gbV93ZWJQYWdlLnZpZXdTY2FsZUZhY3RvcigpOworCiAgICAgRnJh
bWVWaWV3JiBmcmFtZVZpZXcgPSAqbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKTsKICAgICBGbG9h
dFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0ID0gZnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdElu
Y2x1ZGluZ1Njcm9sbGJhcnMoKTsKIApAQCAtNjUxLDcgKzY1NSw3IEBAIHZvaWQgVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWE6OmNvbW1pdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBG
bG9hdFBvaW50CiAgICAgY29uc3RyYWluZWRPcmlnaW4ubW92ZUJ5KC1vcmlnaW4pOwogCiAgICAg
SW50U2l6ZSBzY2FsZWRUb3RhbENvbnRlbnRzU2l6ZSA9IGZyYW1lVmlldy50b3RhbENvbnRlbnRz
U2l6ZSgpOwotICAgIHNjYWxlZFRvdGFsQ29udGVudHNTaXplLnNjYWxlKHNjYWxlIC8gbV93ZWJQ
YWdlLnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICBzY2FsZWRUb3RhbENvbnRlbnRzU2l6ZS5zY2Fs
ZShzY2FsZSAvIG1fd2ViUGFnZS50b3RhbFNjYWxlRmFjdG9yKCkpOwogCiAgICAgLy8gU2NhbGlu
ZyBtYXkgaGF2ZSBleHBvc2VkIHRoZSBvdmVyaGFuZyBhcmVhLCBzbyB3ZSBuZWVkIHRvIGNvbnN0
cmFpbiB0aGUgZmluYWwKICAgICAvLyBsYXllciBwb3NpdGlvbiBleGFjdGx5IGxpa2Ugc2Nyb2xs
aW5nIHdpbGwgb25jZSBpdCdzIGNvbW1pdHRlZCwgdG8gZW5zdXJlIHRoYXQKQEAgLTczMCw3ICs3
MzQsNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphcHBseVRyYW5zaWVu
dFpvb21Ub1BhZ2UoZG91YmxlIHNjYWxlLCBGbG9hdAogICAgIEZsb2F0UG9pbnQgdW5zY3JvbGxl
ZE9yaWdpbihvcmlnaW4pOwogICAgIEZsb2F0UmVjdCB1bm9ic2N1cmVkQ29udGVudFJlY3QgPSBm
cmFtZVZpZXcudW5vYnNjdXJlZENvbnRlbnRSZWN0SW5jbHVkaW5nU2Nyb2xsYmFycygpOwogICAg
IHVuc2Nyb2xsZWRPcmlnaW4ubW92ZUJ5KC11bm9ic2N1cmVkQ29udGVudFJlY3QubG9jYXRpb24o
KSk7Ci0gICAgbV93ZWJQYWdlLnNjYWxlUGFnZShzY2FsZSwgcm91bmRlZEludFBvaW50KC11bnNj
cm9sbGVkT3JpZ2luKSk7CisgICAgbV93ZWJQYWdlLnNjYWxlUGFnZShzY2FsZSAvIG1fd2ViUGFn
ZS52aWV3U2NhbGVGYWN0b3IoKSwgcm91bmRlZEludFBvaW50KC11bnNjcm9sbGVkT3JpZ2luKSk7
CiAgICAgbV90cmFuc2llbnRab29tU2NhbGUgPSAxOwogICAgIGZsdXNoTGF5ZXJzKCk7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzMxNDY0
YzE4YzhlZjhiZjAxNTAyZGNlZjVmZDAxYjk4MDIyNDA0Mi4uZWQxNDQzMzVmYmY3MTFiZmMwMTM0
MWZkYjQ0MTRiZmM4YWY3ZjgwNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE1LTA0LTEwICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCisgICAgICAgIEFkZCBhIHBlcnNpc3RlbnQsIGZp
eGVkIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGVhc3kgdG8gc2NhbGUgZG93biBXSyhXZWIpVmll
d3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzU2
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTYzMDIwNDc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvQnJvd3Nlcldp
bmRvd0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvTWFpbk1lbnUueGli
OgorICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9XSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5t
OgorICAgICAgICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciBzZXRTY2FsZTpdKToKKyAg
ICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubToKKyAg
ICAgICAgKHZpZXdTY2FsZUZvck1lbnVJdGVtVGFnKToKKyAgICAgICAgKC1bV0syQnJvd3Nlcldp
bmRvd0NvbnRyb2xsZXIgc2V0U2NhbGU6XSk6CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dD
b250cm9sbGVyIHZhbGlkYXRlTWVudUl0ZW06XSk6CisgICAgICAgIEFkZCBhIHN1Ym1lbnUgd2l0
aCBmb3VyIHZpZXcgc2NhbGUgb3B0aW9uczogMTAwJSwgNzUlLCA1MCUsIGFuZCAyNSUuCisgICAg
ICAgIFdoZW4gaW4gdXNlLCB3ZSByZXNpemUgdGhlIHdpbmRvdyBzbyB0aGF0IHRoZSB2aWV3IGZp
dHMgY29ycmVjdGx5LCBhbmQKKyAgICAgICAgdXNlIGF1dG9tYXRpY2FsbHlDb21wdXRlc0ZpeGVk
bGF5b3V0U2l6ZUZyb21WaWV3U2NhbGUgc28gdGhhdCB0aGUgcGFnZSdzCisgICAgICAgIGxheW91
dCBzaXplIHdpbGwgbm90IGNoYW5nZSB3aGVuIHNjYWxpbmcgZG93biAoYnV0IHdpbGwgdXBkYXRl
IGFwcHJvcHJpYXRlbHkKKyAgICAgICAgd2hlbiB0aGUgdmlldyBpcyByZXNpemVkKS4KKworMjAx
NS0wNC0xMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKwogICAgICAg
ICBSZXBsYWNlIHNldEZpeGVkTGF5b3V0U2l6ZUVuYWJsZWQ6IHdpdGggYW4gZW51bSBvZiBsYXlv
dXQgbW9kZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0MzU3NgogCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIuaCBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJv
bGxlci5oCmluZGV4IDFkOGFkNzYwOWY5YTAwNmI1ZjRmNGJhNjMzOGI3ODQwMzk3YTIxZTIuLjRi
Y2RlODA4ODE2NzM5Y2U4MTAyNTJjOWRjZTcxOTZlZmE0NTdkZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL01p
bmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5oCkBAIC00NSw2ICs0NSw4IEBA
CiAKIC0gKElCQWN0aW9uKXRvZ2dsZVpvb21Nb2RlOihpZClzZW5kZXI7CiAKKy0gKElCQWN0aW9u
KXNldFNjYWxlOihpZClzZW5kZXI7CisKIC0gKElCQWN0aW9uKWR1bXBTb3VyY2VUb0NvbnNvbGU6
KGlkKXNlbmRlcjsKIC0gKElCQWN0aW9uKWZpbmQ6KGlkKXNlbmRlcjsKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvTWluaUJyb3dzZXIvbWFjL01haW5NZW51LnhpYiBiL1Rvb2xzL01pbmlCcm93c2VyL21h
Yy9NYWluTWVudS54aWIKaW5kZXggNmU4MzdiMGE0MWRjOWVjMTY1N2EzMDA3NGExOGRhNWIxYzNj
ZjZjYS4uYzMyOWM4NWVkZWE2MzdkMGIxZjNkZGUxYjdiZWVkZGY0NzUwMDhkMSAxMDA2NDQKLS0t
IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL01haW5NZW51LnhpYgorKysgYi9Ub29scy9NaW5pQnJv
d3Nlci9tYWMvTWFpbk1lbnUueGliCkBAIC0xLDcgKzEsNyBAQAogPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Ci08ZG9jdW1lbnQgdHlwZT0iY29t
LmFwcGxlLkludGVyZmFjZUJ1aWxkZXIzLkNvY29hLlhJQiIgdmVyc2lvbj0iMy4wIiB0b29sc1Zl
cnNpb249Ijc1MDQuMiIgc3lzdGVtVmVyc2lvbj0iMTREODkiIHRhcmdldFJ1bnRpbWU9Ik1hY09T
WC5Db2NvYSIgcHJvcGVydHlBY2Nlc3NDb250cm9sPSJub25lIj4KKzxkb2N1bWVudCB0eXBlPSJj
b20uYXBwbGUuSW50ZXJmYWNlQnVpbGRlcjMuQ29jb2EuWElCIiB2ZXJzaW9uPSIzLjAiIHRvb2xz
VmVyc2lvbj0iODA0MC4xIiBzeXN0ZW1WZXJzaW9uPSIxNEQxMDYiIHRhcmdldFJ1bnRpbWU9Ik1h
Y09TWC5Db2NvYSIgcHJvcGVydHlBY2Nlc3NDb250cm9sPSJub25lIj4KICAgICA8ZGVwZW5kZW5j
aWVzPgotICAgICAgICA8cGx1Z0luIGlkZW50aWZpZXI9ImNvbS5hcHBsZS5JbnRlcmZhY2VCdWls
ZGVyLkNvY29hUGx1Z2luIiB2ZXJzaW9uPSI3NTA0LjIiLz4KKyAgICAgICAgPHBsdWdJbiBpZGVu
dGlmaWVyPSJjb20uYXBwbGUuSW50ZXJmYWNlQnVpbGRlci5Db2NvYVBsdWdpbiIgdmVyc2lvbj0i
ODA0MC4xIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+CiAgICAgPG9iamVjdHM+CiAgICAgICAgIDxj
dXN0b21PYmplY3QgaWQ9Ii0yIiB1c2VyTGFiZWw9IkZpbGUncyBPd25lciIgY3VzdG9tQ2xhc3M9
Ik5TQXBwbGljYXRpb24iPgpAQCAtMzgyLDYgKzM4MiwzMyBAQAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0idG9nZ2xlWm9vbU1vZGU6IiB0YXJn
ZXQ9Ii0xIiBpZD0iNTY0Ii8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29u
bmVjdGlvbnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlZpZXcgU2NhbGUiIGlkPSI4
VVktUGotSDEzIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFz
ayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1hc2siLz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgPG1lbnUga2V5PSJzdWJtZW51IiB0aXRsZT0iVmlldyBTY2FsZSIgaWQ9Ik1s
OC1tay1mZnUiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGl0ZW1zPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0i
MTAwJSIgc3RhdGU9Im9uIiB0YWc9IjEiIGtleUVxdWl2YWxlbnQ9IjEiIGlkPSJFQW0tWG4tVnJD
Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rp
b25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFj
dGlvbiBzZWxlY3Rvcj0ic2V0U2NhbGU6IiB0YXJnZXQ9Ii0xIiBpZD0iYWFXLVZFLWx4dSIvPgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25z
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWVudUl0ZW0+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxlPSI3
NSUiIHRhZz0iMiIga2V5RXF1aXZhbGVudD0iMiIgaWQ9ImpjQS1JMS1DYnEiPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9y
PSJzZXRTY2FsZToiIHRhcmdldD0iLTEiIGlkPSJ2b2MtM1ctcHBnIi8+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IjUwJSIgdGFnPSIzIiBr
ZXlFcXVpdmFsZW50PSIzIiBpZD0iQlJNLUQ1LVlOTyI+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InNldFNjYWxlOiIg
dGFyZ2V0PSItMSIgaWQ9InNmWS02Ti1FZVMiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iMjUlIiB0YWc9IjQiIGtleUVxdWl2YWxlbnQ9
IjQiIGlkPSJnemstWUsteDBXIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPGNvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0ic2V0U2NhbGU6IiB0YXJnZXQ9Ii0xIiBp
ZD0iV1BxLVJtLUNWQSIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L2Nvbm5lY3Rpb25zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvbWVudUl0ZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2l0
ZW1zPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnU+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC9tZW51SXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8bWVudUl0ZW0gaXNTZXBhcmF0b3JJdGVtPSJZRVMiIGlkPSI1ODEiLz4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IlJlbG9hZCBQYWdlIiBrZXlFcXVpdmFs
ZW50PSJyIiBpZD0iNTc5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5l
Y3Rpb25zPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMUJyb3dzZXJXaW5k
b3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0sxQnJvd3NlcldpbmRvd0Nv
bnRyb2xsZXIubQppbmRleCAyM2Y1M2M0ZjdmMDVmNDZjZjZiYjU4MzAyMTNmNTMxMTUxYTNkZTMy
Li45ZjA2ZjY2NTkxMzUxNGQ1YmY1MjhjNTk3YzUyYmExMWIyMjg0NGYxIDEwMDY0NAotLS0gYS9U
b29scy9NaW5pQnJvd3Nlci9tYWMvV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9U
b29scy9NaW5pQnJvd3Nlci9tYWMvV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtMTAw
LDYgKzEwMCwxMSBAQCAtIChJQkFjdGlvbilyZW1vdmVSZWluc2VydFdlYlZpZXc6KGlkKXNlbmRl
cgogICAgIH0KIH0KIAorLSAoSUJBY3Rpb24pc2V0U2NhbGU6KGlkKXNlbmRlcgoreworICAgIAor
fQorCiAtIChJQkFjdGlvbilyZWxvYWQ6KGlkKXNlbmRlcgogewogICAgIFtfd2ViVmlldyByZWxv
YWQ6c2VuZGVyXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2Vy
V2luZG93Q29udHJvbGxlci5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5k
b3dDb250cm9sbGVyLm0KaW5kZXggMDg1MDRlYjBlNjA4M2FjM2ZjYjU3MjMxNTY3Njk2YzcyMjE4
MjNjNi4uMGNmYzIwMTRkNjY2NGMxMWZjNWU4ZGMxYWZhODVlYjUxY2M3NzY5ZCAxMDA2NDQKLS0t
IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KKysr
IGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KQEAg
LTMzLDcgKzMzLDYgQEAKICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oPgog
I2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tVSURlbGVnYXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViTlNVUkxFeHRyYXMuaD4KQEAg
LTEyNCw2ICsxMjMsMzYgQEAgLSAoSUJBY3Rpb24pcmVtb3ZlUmVpbnNlcnRXZWJWaWV3OihpZClz
ZW5kZXIKICAgICB9CiB9CiAKK3N0YXRpYyBDR0Zsb2F0IHZpZXdTY2FsZUZvck1lbnVJdGVtVGFn
KE5TSW50ZWdlciB0YWcpCit7CisgICAgaWYgKHRhZyA9PSAxKQorICAgICAgICByZXR1cm4gMTsK
KyAgICBpZiAodGFnID09IDIpCisgICAgICAgIHJldHVybiAwLjc1OworICAgIGlmICh0YWcgPT0g
MykKKyAgICAgICAgcmV0dXJuIDAuNTsKKyAgICBpZiAodGFnID09IDQpCisgICAgICAgIHJldHVy
biAwLjI1OworCisgICAgcmV0dXJuIDE7Cit9CisKKy0gKElCQWN0aW9uKXNldFNjYWxlOihpZClz
ZW5kZXIKK3sKKyAgICBDR0Zsb2F0IHNjYWxlID0gdmlld1NjYWxlRm9yTWVudUl0ZW1UYWcoW3Nl
bmRlciB0YWddKTsKKyAgICBDR0Zsb2F0IG9sZFNjYWxlID0gW193ZWJWaWV3IF92aWV3U2NhbGVd
OworCisgICAgaWYgKHNjYWxlID09IG9sZFNjYWxlKQorICAgICAgICByZXR1cm47CisKKyAgICBb
X3dlYlZpZXcgX3NldExheW91dE1vZGU6X1dLTGF5b3V0TW9kZUR5bmFtaWNTaXplQ29tcHV0ZWRG
cm9tVmlld1NjYWxlXTsKKworICAgIE5TUmVjdCBvbGRGcmFtZSA9IHNlbGYud2luZG93LmZyYW1l
OworICAgIE5TU2l6ZSBuZXdGcmFtZVNpemUgPSBOU01ha2VTaXplKG9sZEZyYW1lLnNpemUud2lk
dGggKiAoc2NhbGUgLyBvbGRTY2FsZSksIG9sZEZyYW1lLnNpemUuaGVpZ2h0ICogKHNjYWxlIC8g
b2xkU2NhbGUpKTsKKyAgICBbc2VsZi53aW5kb3cgc2V0RnJhbWU6TlNNYWtlUmVjdChvbGRGcmFt
ZS5vcmlnaW4ueCwgb2xkRnJhbWUub3JpZ2luLnkgLSAobmV3RnJhbWVTaXplLmhlaWdodCAtIG9s
ZEZyYW1lLnNpemUuaGVpZ2h0KSwgbmV3RnJhbWVTaXplLndpZHRoLCBuZXdGcmFtZVNpemUuaGVp
Z2h0KSBkaXNwbGF5Ok5PIGFuaW1hdGU6Tk9dOworICAgIFtfd2ViVmlldyBfc2V0Vmlld1NjYWxl
OnNjYWxlXTsKK30KKwogLSAoQk9PTCl2YWxpZGF0ZU1lbnVJdGVtOihOU01lbnVJdGVtICopbWVu
dUl0ZW0KIHsKICAgICBTRUwgYWN0aW9uID0gW21lbnVJdGVtIGFjdGlvbl07CkBAIC0xNDgsNiAr
MTc3LDkgQEAgLSAoQk9PTCl2YWxpZGF0ZU1lbnVJdGVtOihOU01lbnVJdGVtICopbWVudUl0ZW0K
ICAgICBlbHNlIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZVpvb21Nb2RlOikpCiAgICAg
ICAgIFttZW51SXRlbSBzZXRTdGF0ZTpfem9vbVRleHRPbmx5ID8gTlNPblN0YXRlIDogTlNPZmZT
dGF0ZV07CiAKKyAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihzZXRTY2FsZTopKQorICAgICAg
ICBbbWVudUl0ZW0gc2V0U3RhdGU6W193ZWJWaWV3IF92aWV3U2NhbGVdID09IHZpZXdTY2FsZUZv
ck1lbnVJdGVtVGFnKFttZW51SXRlbSB0YWddKV07CisKICAgICByZXR1cm4gWUVTOwogfQogCg==
</data>
<flag name="review"
          id="275352"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>