<?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>176474</bug_id>
          
          <creation_ts>2017-09-06 12:45:06 -0700</creation_ts>
          <short_desc>Add WKUIDelegatePrivate equivalent of WKPageUIClient&apos;s pinnedStateDidChange</short_desc>
          <delta_ts>2018-01-27 10:14:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>mitz</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1346048</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-06 12:45:06 -0700</bug_when>
    <thetext>Add WKUIDelegatePrivate equivalent of WKPageUIClient&apos;s pinnedStateDidChange</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346051</commentid>
    <comment_count>1</comment_count>
      <attachid>320049</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-06 12:50:14 -0700</bug_when>
    <thetext>Created attachment 320049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346052</commentid>
    <comment_count>2</comment_count>
      <attachid>320049</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-09-06 12:55:48 -0700</bug_when>
    <thetext>Comment on attachment 320049
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:5284
&gt; +- (_WKRectEdge) _pinnedState

No space after the )

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:5289
&gt; +- (_WKRectEdge) _rubberBandState

etc.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:5294
&gt; +- (void) _setRubberBandState:(_WKRectEdge)state

This really isn&apos;t state, I wonder if we should take this opportunity to rename it to rubberBandingEnabled or rubberBandableEdges (please no) or something :P

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:83
&gt; +typedef NS_OPTIONS(NSInteger, _WKRectEdge) {

It would be pretty nice if this were a NSRectEdge or UIRectEdge typedef, wouldn&apos;t it? As it stands people are going to have to do silly things to use this API where they probably have platform edges in their code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346056</commentid>
    <comment_count>3</comment_count>
      <attachid>320051</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-06 12:57:29 -0700</bug_when>
    <thetext>Created attachment 320051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346060</commentid>
    <comment_count>4</comment_count>
      <attachid>320054</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-06 13:04:59 -0700</bug_when>
    <thetext>Created attachment 320054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346066</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-06 13:16:02 -0700</bug_when>
    <thetext>http://trac.webkit.org/r221694</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346090</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-06 13:54:38 -0700</bug_when>
    <thetext>Reverted r221694 for reason:

broke build

Committed r221702: &lt;http://trac.webkit.org/changeset/221702&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346116</commentid>
    <comment_count>7</comment_count>
      <attachid>320066</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-06 15:23:35 -0700</bug_when>
    <thetext>Created attachment 320066
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346146</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-06 16:27:59 -0700</bug_when>
    <thetext>http://trac.webkit.org/r221707</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353588</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:40:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693736&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393862</commentid>
    <comment_count>10</comment_count>
      <attachid>320066</attachid>
    <who name="">mitz</who>
    <bug_when>2018-01-27 10:14:15 -0800</bug_when>
    <thetext>Comment on attachment 320066
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:83
&gt; +typedef NS_OPTIONS(NSInteger, _WKRectEdge) {

Options should be NSUInteger.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:252
&gt; +@property (nonatomic, readonly) _WKRectEdge _pinnedState;
&gt; +@property (nonatomic, setter=_setRubberBandingEnabled:) _WKRectEdge _rubberBandingEnabled;

Missing availability.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320049</attachid>
            <date>2017-09-06 12:50:14 -0700</date>
            <delta_ts>2017-09-06 12:57:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176474-20170906125013.patch</filename>
            <type>text/plain</type>
            <size>12576</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE2NzIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE3LTA5LTA2ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxl
Z2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIHBpbm5lZFN0YXRlRGlk
Q2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzY0NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
YXRoZXIgdGhhbiB0ZWxsaW5nIHRoZSBVSUNsaWVudCB0aGF0IHRoZSBwaW5uZWQgc3RhdGUgY2hh
bmdlZCBhbmQgaGF2aW5nIHRoZSBhcHBsaWNhdGlvbiBjaGVjayA0IGJvb2xzCisgICAgICAgIGxp
a2Ugd2UgZG8gd2l0aCBXS1BhZ2UsIEkgbWFkZSBhIEtWTyBwcm9wZXJ0eSBvbiB0aGUgV0tXZWJW
aWV3LiAgSSBpbnRyb2R1Y2UgX1dLUmVjdEVkZ2UgZm9yIHRoaXMgcHVycG9zZSwKKyAgICAgICAg
d2hpY2ggaXMgbGlrZSBVSVJlY3RFZGdlIGJ1dCB1bmZvcnR1bmF0ZWx5IE5TUmVjdEVkZ2UgYW5k
IENHUmVjdEVkZ2UgY2Fubm90IGJlIHVzZWQgYXMgTlNfT1BUSU9OUy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Bp
bm5lZFN0YXRlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfcnViYmVyQmFuZFN0YXRlXSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfc2V0UnViYmVyQmFuZFN0YXRlOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBpbm5lZFN0YXRlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJ1YmJlckJhbmRTdGF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRSdWJiZXJCYW5kU3RhdGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnBpbm5lZFN0
YXRlV2lsbENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnBpbm5lZFN0YXRl
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VTY3JvbGxPZmZzZXRQaW5uaW5nRm9y
TWFpbkZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnBpbm5lZFN0YXRlV2lsbENoYW5nZSk6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpwaW5uZWRTdGF0ZURpZENoYW5nZSk6CisKIDIwMTct
MDktMDYgIEZyw6lkw6lyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW50
cm9kdWNlIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MgdG8gc2hhcmUgY29k
ZSBiZXR3ZWVuIG92ZXJmbG93IGFuZCBmcmFtZSBzY3JvbGxpbmcKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDIyMTY3MikKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQ2LDYgKzM0Niw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRpb1dpbGxDaGFuZ2UoKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBwaW5uZWRTdGF0ZVdpbGxDaGFuZ2UoKSB7IH07CisgICAgdmlydHVhbCB2b2lkIHBpbm5l
ZFN0YXRlRGlkQ2hhbmdlKCkgeyB9OwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwg
dm9pZCBkaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdChjb25zdCBXZWJIaXRUZXN0UmVz
dWx0RGF0YSYsIGJvb2wgY29udGVudFByZXZlbnRzRGVmYXVsdCwgQVBJOjpPYmplY3QqKSA9IDA7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9u
IDIyMTY3MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU5NjYsMTAgKzU5NjYsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZENoYW5nZVNjcm9sbGJhcnNGbwogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlU2Nyb2xs
T2Zmc2V0UGlubmluZ0Zvck1haW5GcmFtZShib29sIHBpbm5lZFRvTGVmdFNpZGUsIGJvb2wgcGlu
bmVkVG9SaWdodFNpZGUsIGJvb2wgcGlubmVkVG9Ub3BTaWRlLCBib29sIHBpbm5lZFRvQm90dG9t
U2lkZSkKIHsKKyAgICBtX3BhZ2VDbGllbnQucGlubmVkU3RhdGVXaWxsQ2hhbmdlKCk7CiAgICAg
bV9tYWluRnJhbWVJc1Bpbm5lZFRvTGVmdFNpZGUgPSBwaW5uZWRUb0xlZnRTaWRlOwogICAgIG1f
bWFpbkZyYW1lSXNQaW5uZWRUb1JpZ2h0U2lkZSA9IHBpbm5lZFRvUmlnaHRTaWRlOwogICAgIG1f
bWFpbkZyYW1lSXNQaW5uZWRUb1RvcFNpZGUgPSBwaW5uZWRUb1RvcFNpZGU7CiAgICAgbV9tYWlu
RnJhbWVJc1Bpbm5lZFRvQm90dG9tU2lkZSA9IHBpbm5lZFRvQm90dG9tU2lkZTsKKyAgICBtX3Bh
Z2VDbGllbnQucGlubmVkU3RhdGVEaWRDaGFuZ2UoKTsKIAogICAgIG1fdWlDbGllbnQtPnBpbm5l
ZFN0YXRlRGlkQ2hhbmdlKCp0aGlzKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjIxNjcyKQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpA
QCAtNTI4MSw2ICs1MjgxLDIxIEBAIC0gKE5TQ29sb3IgKilfcGFnZUV4dGVuZGVkQmFja2dyb3Vu
ZENvbG8KICAgICByZXR1cm4gX2ltcGwtPnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpOwog
fQogCistIChfV0tSZWN0RWRnZSkgX3Bpbm5lZFN0YXRlCit7CisgICAgcmV0dXJuIF9pbXBsLT5w
aW5uZWRTdGF0ZSgpOworfQorCistIChfV0tSZWN0RWRnZSkgX3J1YmJlckJhbmRTdGF0ZQorewor
ICAgIHJldHVybiBfaW1wbC0+cnViYmVyQmFuZFN0YXRlKCk7Cit9CisKKy0gKHZvaWQpIF9zZXRS
dWJiZXJCYW5kU3RhdGU6KF9XS1JlY3RFZGdlKXN0YXRlCit7CisgICAgX2ltcGwtPnNldFJ1YmJl
ckJhbmRTdGF0ZShzdGF0ZSk7Cit9CisKIC0gKGlkKV9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25D
b250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDooX1dLSGl0VGVzdFJlc3VsdCAqKWhpdFRlc3RSZXN1
bHQgd2l0aFR5cGU6KF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpdHlwZSB1c2VyRGF0YTooaWQ8TlNT
ZWN1cmVDb2Rpbmc+KXVzZXJEYXRhCiB7CiAgICAgcmV0dXJuIG5pbDsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAko
cmV2aXNpb24gMjIxNjcyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtODAsNiArODAsMTUgQEAgdHlwZWRl
ZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogICAgIF9XS0ltbWVkaWF0ZUFjdGlv
blRlbExpbmsKIH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKIAordHlwZWRlZiBO
U19PUFRJT05TKE5TSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKKyAgICBfV0tSZWN0RWRnZU5vbmUg
PSAwLAorICAgIF9XS1JlY3RFZGdlTGVmdCA9IDEgPDwgQ0dSZWN0TWluWEVkZ2UsCisgICAgX1dL
UmVjdEVkZ2VUb3AgPSAxIDw8IENHUmVjdE1pbllFZGdlLAorICAgIF9XS1JlY3RFZGdlUmlnaHQg
PSAxIDw8IENHUmVjdE1heFhFZGdlLAorICAgIF9XS1JlY3RFZGdlQm90dG9tID0gMSA8PCBDR1Jl
Y3RNYXhZRWRnZSwKKyAgICBfV0tSZWN0RWRnZUFsbCA9IF9XS1JlY3RFZGdlTGVmdCB8IF9XS1Jl
Y3RFZGdlVG9wIHwgX1dLUmVjdEVkZ2VSaWdodCB8IF9XS1JlY3RFZGdlQm90dG9tLAorfSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CisKICNlbmRpZgogCiBAY2xhc3MgV0tC
cm93c2luZ0NvbnRleHRIYW5kbGU7CkBAIC0yMzgsNiArMjQ3LDEwIEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlEaWRHZXRT
cGVha1NlbGVjdGlvbkNvbnRlbnQ6KE5TU3RyaW5nICopY29udGVudCBXS19BUElfQVZBSUxBQkxF
KGlvcyhXS19JT1NfVEJBKSk7CiAKICNlbHNlCisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgX1dLUmVjdEVkZ2UgX3Bpbm5lZFN0YXRlOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0UnViYmVyQmFuZFN0YXRlOikgX1dLUmVjdEVkZ2UgX3J1YmJlckJhbmRTdGF0ZTsK
KwogQHByb3BlcnR5IChyZWFkb25seSkgTlNDb2xvciAqX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRD
b2xvcjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERyYXdzQmFja2dyb3VuZDop
IEJPT0wgX2RyYXdzQmFja2dyb3VuZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFRvcENvbnRlbnRJbnNldDopIENHRmxvYXQgX3RvcENvbnRlbnRJbnNldDsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAkocmV2aXNpb24gMjIxNjcy
KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKLSNpZm5kZWYgV2ViVmlld0ltcGxfaAotI2RlZmluZSBXZWJWaWV3SW1wbF9o
CisjcHJhZ21hIG9uY2UKIAogI2lmIFBMQVRGT1JNKE1BQykKIApAQCAtNDIsNiArNDEsOCBAQAog
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKK3VzaW5nIF9XS1JlY3RFZGdlID0gTlNJbnRlZ2VyOworCiBPQkpDX0NMQVNTIE5TQWNjZXNz
aWJpbGl0eVJlbW90ZVVJRWxlbWVudDsKIE9CSkNfQ0xBU1MgTlNJbW1lZGlhdGVBY3Rpb25HZXN0
dXJlUmVjb2duaXplcjsKIE9CSkNfQ0xBU1MgTlNUZXh0SW5wdXRDb250ZXh0OwpAQCAtMjM2LDYg
KzIzNywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVbmRlcmxheUNvbG9yKE5TQ29sb3IgKik7
CiAgICAgTlNDb2xvciAqdW5kZXJsYXlDb2xvcigpIGNvbnN0OwogICAgIE5TQ29sb3IgKnBhZ2VF
eHRlbmRlZEJhY2tncm91bmRDb2xvcigpIGNvbnN0OworICAgIAorICAgIF9XS1JlY3RFZGdlIHBp
bm5lZFN0YXRlKCk7CisgICAgX1dLUmVjdEVkZ2UgcnViYmVyQmFuZFN0YXRlKCk7CisgICAgdm9p
ZCBzZXRSdWJiZXJCYW5kU3RhdGUoX1dLUmVjdEVkZ2UpOwogCiAgICAgdm9pZCBzZXRPdmVybGF5
U2Nyb2xsYmFyU3R5bGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JvbGxiYXJPdmVybGF5U3R5
bGU+IHNjcm9sbGJhclN0eWxlKTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcm9sbGJh
ck92ZXJsYXlTdHlsZT4gb3ZlcmxheVNjcm9sbGJhclN0eWxlKCkgY29uc3Q7CkBAIC03MzIsNSAr
NzM3LDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQotCi0jZW5kaWYgLy8gV2ViVmlld0ltcGxfaApJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0JKHJldmlzaW9uIDIyMTY3MikKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC01Nyw3ICs1Nyw3IEBACiAjaW1wb3J0ICJXS1ByaW50aW5nVmlldy5oIgogI2ltcG9y
dCAiV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1ZpZXdMYXlvdXRT
dHJhdGVneS5oIgotI2ltcG9ydCAiV0tXZWJWaWV3LmgiCisjaW1wb3J0ICJXS1dlYlZpZXdQcml2
YXRlLmgiCiAjaW1wb3J0ICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKICNpbXBvcnQgIldlYkVkaXRD
b21tYW5kUHJveHkuaCIKICNpbXBvcnQgIldlYkV2ZW50RmFjdG9yeS5oIgpAQCAtNDg0NCw2ICs0
ODQ0LDQyIEBAIHZvaWQgV2ViVmlld0ltcGw6Om1vdXNlTW92ZWQoTlNFdmVudCAqZXYKICAgICBt
b3VzZU1vdmVkSW50ZXJuYWwoZXZlbnQpOwogfQogCitfV0tSZWN0RWRnZSBXZWJWaWV3SW1wbDo6
cGlubmVkU3RhdGUoKQoreworICAgIF9XS1JlY3RFZGdlIHN0YXRlID0gX1dLUmVjdEVkZ2VOb25l
OworICAgIGlmIChtX3BhZ2UtPmlzUGlubmVkVG9MZWZ0U2lkZSgpKQorICAgICAgICBzdGF0ZSB8
PSBfV0tSZWN0RWRnZUxlZnQ7CisgICAgaWYgKG1fcGFnZS0+aXNQaW5uZWRUb1JpZ2h0U2lkZSgp
KQorICAgICAgICBzdGF0ZSB8PSBfV0tSZWN0RWRnZVJpZ2h0OworICAgIGlmIChtX3BhZ2UtPmlz
UGlubmVkVG9Ub3BTaWRlKCkpCisgICAgICAgIHN0YXRlIHw9IF9XS1JlY3RFZGdlVG9wOworICAg
IGlmIChtX3BhZ2UtPmlzUGlubmVkVG9Cb3R0b21TaWRlKCkpCisgICAgICAgIHN0YXRlIHw9IF9X
S1JlY3RFZGdlQm90dG9tOworICAgIHJldHVybiBzdGF0ZTsKK30KKworX1dLUmVjdEVkZ2UgV2Vi
Vmlld0ltcGw6OnJ1YmJlckJhbmRTdGF0ZSgpCit7CisgICAgX1dLUmVjdEVkZ2Ugc3RhdGUgPSBf
V0tSZWN0RWRnZU5vbmU7CisgICAgaWYgKG1fcGFnZS0+cnViYmVyQmFuZHNBdExlZnQoKSkKKyAg
ICAgICAgc3RhdGUgfD0gX1dLUmVjdEVkZ2VMZWZ0OworICAgIGlmIChtX3BhZ2UtPnJ1YmJlckJh
bmRzQXRSaWdodCgpKQorICAgICAgICBzdGF0ZSB8PSBfV0tSZWN0RWRnZVJpZ2h0OworICAgIGlm
IChtX3BhZ2UtPnJ1YmJlckJhbmRzQXRUb3AoKSkKKyAgICAgICAgc3RhdGUgfD0gX1dLUmVjdEVk
Z2VUb3A7CisgICAgaWYgKG1fcGFnZS0+cnViYmVyQmFuZHNBdEJvdHRvbSgpKQorICAgICAgICBz
dGF0ZSB8PSBfV0tSZWN0RWRnZUJvdHRvbTsKKyAgICByZXR1cm4gc3RhdGU7Cit9CisKK3ZvaWQg
V2ViVmlld0ltcGw6OnNldFJ1YmJlckJhbmRTdGF0ZShfV0tSZWN0RWRnZSBzdGF0ZSkKK3sKKyAg
ICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRMZWZ0KHN0YXRlICYgX1dLUmVjdEVkZ2VMZWZ0KTsK
KyAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRSaWdodChzdGF0ZSAmIF9XS1JlY3RFZGdlUmln
aHQpOworICAgIG1fcGFnZS0+c2V0UnViYmVyQmFuZHNBdFRvcChzdGF0ZSAmIF9XS1JlY3RFZGdl
VG9wKTsKKyAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRCb3R0b20oc3RhdGUgJiBfV0tSZWN0
RWRnZUJvdHRvbSk7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6Om1vdXNlRG93bihOU0V2ZW50ICpl
dmVudCkKIHsKICAgICBpZiAobV9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAkocmV2aXNpb24g
MjIxNjcyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExNyw2ICsxMTcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JikgPSAwOwogI2VuZGlmCiAKKyAgICB2b2lkIHBpbm5lZFN0YXRlV2ls
bENoYW5nZSgpIGZpbmFsOworICAgIHZvaWQgcGlubmVkU3RhdGVEaWRDaGFuZ2UoKSBmaW5hbDsK
KwogICAgIENHUmVjdCBib3VuZHNPZkxheWVySW5MYXllckJhY2tlZFdpbmRvd0Nvb3JkaW5hdGVz
KENBTGF5ZXIgKikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRvbmVXaXRoS2V5RXZlbnQo
Y29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKSBvdmVy
cmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMubW0JKHJldmlzaW9uIDIyMTY3MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDAyLDYgKzQwMiwy
MCBAQCBGbG9hdFJlY3QgUGFnZUNsaWVudEltcGw6OmNvbnZlcnRUb1VzZXJTCiAgICAgcmV0dXJu
IHRvVXNlclNwYWNlKHJlY3QsIFttX3ZpZXcgd2luZG93XSk7CiB9CiAKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnBpbm5lZFN0YXRlV2lsbENoYW5nZSgpCit7CisjaWYgV0tfQVBJX0VOQUJMRUQKKyAg
ICBbbV93ZWJWaWV3IHdpbGxDaGFuZ2VWYWx1ZUZvcktleTpAIl9waW5uZWRTdGF0ZSJdOworI2Vu
ZGlmCit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnBpbm5lZFN0YXRlRGlkQ2hhbmdlKCkKK3sK
KyNpZiBXS19BUElfRU5BQkxFRAorICAgIFttX3dlYlZpZXcgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6
QCJfcGlubmVkU3RhdGUiXTsKKyNlbmRpZgorfQorICAgIAogSW50UG9pbnQgUGFnZUNsaWVudElt
cGw6OnNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewogI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIHB1c2gKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMTY5MCkKKysrIFRvb2xzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA5LTA2ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxlZ2F0
ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIHBpbm5lZFN0YXRlRGlkQ2hh
bmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY0
NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1b
UGlubmVkU3RhdGVPYnNlcnZlciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5n
ZTpjb250ZXh0Ol0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMTctMDktMDYgIE15bGVzIEMuIE1h
eGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBXU0wgc2hvdWxkIHN1cHBv
cnQgdGhlIGJvb2wgdHlwZQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9VSURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjIxNjcyKQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0yNDksNiArMjQ5LDMyIEBAIFRFU1QoV2ViS2l0LCBDbGlja0F1dG9GaWxsQnV0dG9u
KQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKK0BpbnRlcmZhY2Ug
UGlubmVkU3RhdGVPYnNlcnZlciA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgorQGVu
ZAorCitAaW1wbGVtZW50YXRpb24gUGlubmVkU3RhdGVPYnNlcnZlcgorCistICh2b2lkKW9ic2Vy
dmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0
IGNoYW5nZTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWNoYW5nZSBjb250ZXh0Oih2
b2lkICopY29udGV4dAoreworICAgIEVYUEVDVF9UUlVFKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmlu
ZzpOU1N0cmluZ0Zyb21TZWxlY3RvcihAc2VsZWN0b3IoX3Bpbm5lZFN0YXRlKSldKTsKKyAgICBF
WFBFQ1RfVFJVRShbW29iamVjdCBjbGFzc10gaXNFcXVhbDpbVGVzdFdLV2ViVmlldyBjbGFzc11d
KTsKKyAgICBFWFBFQ1RfRVEoW1tjaGFuZ2Ugb2JqZWN0Rm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VP
bGRLZXldIGludGVnZXJWYWx1ZV0sIF9XS1JlY3RFZGdlQWxsKTsKKyAgICBFWFBFQ1RfRVEoW1tj
aGFuZ2Ugb2JqZWN0Rm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOZXdLZXldIGludGVnZXJWYWx1ZV0s
IF9XS1JlY3RFZGdlTGVmdCB8IF9XS1JlY3RFZGdlUmlnaHQpOworICAgIEVYUEVDVF9UUlVFKGNv
bnRleHQgPT0gbnVsbHB0cik7CisgICAgZG9uZSA9IHRydWU7Cit9CisKK0BlbmQKKworVEVTVChX
ZWJLaXQsIFBpbm5lZFN0YXRlKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDAp
XSk7CisgICAgYXV0byBvYnNlcnZlciA9IGFkb3B0TlMoW1tQaW5uZWRTdGF0ZU9ic2VydmVyIGFs
bG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgYWRkT2JzZXJ2ZXI6b2JzZXJ2ZXIuZ2V0KCkgZm9y
S2V5UGF0aDpAIl9waW5uZWRTdGF0ZSIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9u
TmV3IHwgTlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk9sZCBjb250ZXh0Om5pbF07CisgICAgW3dl
YlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBvbmxvYWQ9J3Njcm9sbCgxMDAsIDEwMCknIHN0
eWxlPSdoZWlnaHQ6MTAwMDB2aDsnLz4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJo
dHRwOi8vZXhhbXBsZS5jb20vIl1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7Cit9CisKIHN0YXRpYyBOU0V2ZW50ICp0YWJFdmVudChOU1dpbmRvdyAqd2luZG93LCBOU0V2
ZW50VHlwZSB0eXBlLCBOU0V2ZW50TW9kaWZpZXJGbGFncyBmbGFncykKIHsKICAgICByZXR1cm4g
W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTp0eXBlIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUp
IG1vZGlmaWVyRmxhZ3M6ZmxhZ3MgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5k
b3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0
IGN1cnJlbnRDb250ZXh0XSBjaGFyYWN0ZXJzOkAiXHQiIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlm
aWVyczpAIlx0IiBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTowXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320051</attachid>
            <date>2017-09-06 12:57:29 -0700</date>
            <delta_ts>2017-09-06 13:04:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176474-20170906125729.patch</filename>
            <type>text/plain</type>
            <size>12758</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE2NzIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA5LTA2ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxl
Z2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIHBpbm5lZFN0YXRlRGlk
Q2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzY0NzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5MjcwMDM1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJhdGhlciB0aGFuIHRlbGxpbmcgdGhl
IFVJQ2xpZW50IHRoYXQgdGhlIHBpbm5lZCBzdGF0ZSBjaGFuZ2VkIGFuZCBoYXZpbmcgdGhlIGFw
cGxpY2F0aW9uIGNoZWNrIDQgYm9vbHMKKyAgICAgICAgbGlrZSB3ZSBkbyB3aXRoIFdLUGFnZSwg
SSBtYWRlIGEgS1ZPIHByb3BlcnR5IG9uIHRoZSBXS1dlYlZpZXcuICBJIGludHJvZHVjZSBfV0tS
ZWN0RWRnZSBmb3IgdGhpcyBwdXJwb3NlLAorICAgICAgICB3aGljaCBpcyBsaWtlIFVJUmVjdEVk
Z2UgYnV0IHVuZm9ydHVuYXRlbHkgTlNSZWN0RWRnZSBhbmQgQ0dSZWN0RWRnZSBjYW5ub3QgYmUg
dXNlZCBhcyBOU19PUFRJT05TL2ZsYWdzLgorICAgICAgICBUaGlzIHNhbWUgc3RydWN0dXJlIGlz
IHVzZWQgZm9yIHJ1YmJlciBiYW5kIHN0YXRlLgorICAgICAgICAKKyAgICAgICAgQ292ZXJlZCBi
eSBhIG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Bpbm5lZFN0YXRlXSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfcnViYmVyQmFuZFN0YXRlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0
UnViYmVyQmFuZFN0YXRlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnBpbm5lZFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnJ1YmJlckJhbmRTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRS
dWJiZXJCYW5kU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnBpbm5lZFN0YXRlV2lsbENoYW5nZSk6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnBpbm5lZFN0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRDaGFuZ2VTY3JvbGxPZmZzZXRQaW5uaW5nRm9yTWFpbkZyYW1lKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OnBpbm5lZFN0YXRlV2lsbENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpwaW5uZWRTdGF0ZURpZENoYW5nZSk6CisKIDIwMTctMDktMDYgIEZyw6lkw6lyaWMgV2FuZyAg
PGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1MgdG8gc2hhcmUgY29kZSBiZXR3ZWVuIG92ZXJmbG93IGFuZCBm
cmFtZSBzY3JvbGxpbmcKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJl
dmlzaW9uIDIyMTY3MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzQ2LDYgKzM0Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc1Bs
YXlpbmdBdWRpb1dpbGxDaGFuZ2UoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ0F1
ZGlvRGlkQ2hhbmdlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwaW5uZWRTdGF0ZVdpbGxDaGFu
Z2UoKSB7IH07CisgICAgdmlydHVhbCB2b2lkIHBpbm5lZFN0YXRlRGlkQ2hhbmdlKCkgeyB9Owog
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtSW1tZWRpYXRl
QWN0aW9uSGl0VGVzdChjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYsIGJvb2wgY29udGVudFBy
ZXZlbnRzRGVmYXVsdCwgQVBJOjpPYmplY3QqKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDIyMTY3MikKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5NjYsMTAg
KzU5NjYsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVNjcm9sbGJhcnNGbwogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0UGlubmluZ0Zvck1haW5GcmFt
ZShib29sIHBpbm5lZFRvTGVmdFNpZGUsIGJvb2wgcGlubmVkVG9SaWdodFNpZGUsIGJvb2wgcGlu
bmVkVG9Ub3BTaWRlLCBib29sIHBpbm5lZFRvQm90dG9tU2lkZSkKIHsKKyAgICBtX3BhZ2VDbGll
bnQucGlubmVkU3RhdGVXaWxsQ2hhbmdlKCk7CiAgICAgbV9tYWluRnJhbWVJc1Bpbm5lZFRvTGVm
dFNpZGUgPSBwaW5uZWRUb0xlZnRTaWRlOwogICAgIG1fbWFpbkZyYW1lSXNQaW5uZWRUb1JpZ2h0
U2lkZSA9IHBpbm5lZFRvUmlnaHRTaWRlOwogICAgIG1fbWFpbkZyYW1lSXNQaW5uZWRUb1RvcFNp
ZGUgPSBwaW5uZWRUb1RvcFNpZGU7CiAgICAgbV9tYWluRnJhbWVJc1Bpbm5lZFRvQm90dG9tU2lk
ZSA9IHBpbm5lZFRvQm90dG9tU2lkZTsKKyAgICBtX3BhZ2VDbGllbnQucGlubmVkU3RhdGVEaWRD
aGFuZ2UoKTsKIAogICAgIG1fdWlDbGllbnQtPnBpbm5lZFN0YXRlRGlkQ2hhbmdlKCp0aGlzKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQkocmV2aXNpb24gMjIxNjcyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTI4MSw2ICs1MjgxLDIxIEBAIC0g
KE5TQ29sb3IgKilfcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG8KICAgICByZXR1cm4gX2ltcGwt
PnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpOwogfQogCistIChfV0tSZWN0RWRnZSkgX3Bp
bm5lZFN0YXRlCit7CisgICAgcmV0dXJuIF9pbXBsLT5waW5uZWRTdGF0ZSgpOworfQorCistIChf
V0tSZWN0RWRnZSkgX3J1YmJlckJhbmRTdGF0ZQoreworICAgIHJldHVybiBfaW1wbC0+cnViYmVy
QmFuZFN0YXRlKCk7Cit9CisKKy0gKHZvaWQpIF9zZXRSdWJiZXJCYW5kU3RhdGU6KF9XS1JlY3RF
ZGdlKXN0YXRlCit7CisgICAgX2ltcGwtPnNldFJ1YmJlckJhbmRTdGF0ZShzdGF0ZSk7Cit9CisK
IC0gKGlkKV9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3Vs
dDooX1dLSGl0VGVzdFJlc3VsdCAqKWhpdFRlc3RSZXN1bHQgd2l0aFR5cGU6KF9XS0ltbWVkaWF0
ZUFjdGlvblR5cGUpdHlwZSB1c2VyRGF0YTooaWQ8TlNTZWN1cmVDb2Rpbmc+KXVzZXJEYXRhCiB7
CiAgICAgcmV0dXJuIG5pbDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkocmV2aXNpb24gMjIxNjcyKQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtODAsNiArODAsMTUgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dL
SW1tZWRpYXRlQQogICAgIF9XS0ltbWVkaWF0ZUFjdGlvblRlbExpbmsKIH0gV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTIpKTsKIAordHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgX1dL
UmVjdEVkZ2UpIHsKKyAgICBfV0tSZWN0RWRnZU5vbmUgPSAwLAorICAgIF9XS1JlY3RFZGdlTGVm
dCA9IDEgPDwgQ0dSZWN0TWluWEVkZ2UsCisgICAgX1dLUmVjdEVkZ2VUb3AgPSAxIDw8IENHUmVj
dE1pbllFZGdlLAorICAgIF9XS1JlY3RFZGdlUmlnaHQgPSAxIDw8IENHUmVjdE1heFhFZGdlLAor
ICAgIF9XS1JlY3RFZGdlQm90dG9tID0gMSA8PCBDR1JlY3RNYXhZRWRnZSwKKyAgICBfV0tSZWN0
RWRnZUFsbCA9IF9XS1JlY3RFZGdlTGVmdCB8IF9XS1JlY3RFZGdlVG9wIHwgX1dLUmVjdEVkZ2VS
aWdodCB8IF9XS1JlY3RFZGdlQm90dG9tLAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSk7CisKICNlbmRpZgogCiBAY2xhc3MgV0tCcm93c2luZ0NvbnRleHRIYW5kbGU7CkBA
IC0yMzgsNiArMjQ3LDEwIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0
ZUEKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlEaWRHZXRTcGVha1NlbGVjdGlvbkNvbnRlbnQ6KE5T
U3RyaW5nICopY29udGVudCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKICNl
bHNlCisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLUmVjdEVkZ2UgX3Bpbm5l
ZFN0YXRlOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UnViYmVyQmFuZFN0YXRl
OikgX1dLUmVjdEVkZ2UgX3J1YmJlckJhbmRTdGF0ZTsKKwogQHByb3BlcnR5IChyZWFkb25seSkg
TlNDb2xvciAqX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcjsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldERyYXdzQmFja2dyb3VuZDopIEJPT0wgX2RyYXdzQmFja2dyb3VuZDsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRvcENvbnRlbnRJbnNldDopIENHRmxv
YXQgX3RvcENvbnRlbnRJbnNldDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaAkocmV2aXNpb24gMjIxNjcyKQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsNyBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2Vi
Vmlld0ltcGxfaAotI2RlZmluZSBXZWJWaWV3SW1wbF9oCisjcHJhZ21hIG9uY2UKIAogI2lmIFBM
QVRGT1JNKE1BQykKIApAQCAtNDIsNiArNDEsOCBAQAogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK3VzaW5nIF9XS1JlY3RFZGdlID0g
TlNJbnRlZ2VyOworCiBPQkpDX0NMQVNTIE5TQWNjZXNzaWJpbGl0eVJlbW90ZVVJRWxlbWVudDsK
IE9CSkNfQ0xBU1MgTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplcjsKIE9CSkNfQ0xB
U1MgTlNUZXh0SW5wdXRDb250ZXh0OwpAQCAtMjM2LDYgKzIzNywxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRVbmRlcmxheUNvbG9yKE5TQ29sb3IgKik7CiAgICAgTlNDb2xvciAqdW5kZXJsYXlD
b2xvcigpIGNvbnN0OwogICAgIE5TQ29sb3IgKnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigp
IGNvbnN0OworICAgIAorICAgIF9XS1JlY3RFZGdlIHBpbm5lZFN0YXRlKCk7CisgICAgX1dLUmVj
dEVkZ2UgcnViYmVyQmFuZFN0YXRlKCk7CisgICAgdm9pZCBzZXRSdWJiZXJCYW5kU3RhdGUoX1dL
UmVjdEVkZ2UpOwogCiAgICAgdm9pZCBzZXRPdmVybGF5U2Nyb2xsYmFyU3R5bGUoc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTY3JvbGxiYXJPdmVybGF5U3R5bGU+IHNjcm9sbGJhclN0eWxlKTsKICAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcm9sbGJhck92ZXJsYXlTdHlsZT4gb3ZlcmxheVNj
cm9sbGJhclN0eWxlKCkgY29uc3Q7CkBAIC03MzIsNSArNzM3LDMgQEAgcHJpdmF0ZToKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotCi0jZW5kaWYgLy8g
V2ViVmlld0ltcGxfaApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0JKHJldmlzaW9uIDIyMTY3MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBACiAj
aW1wb3J0ICJXS1ByaW50aW5nVmlldy5oIgogI2ltcG9ydCAiV0tUZXh0SW5wdXRXaW5kb3dDb250
cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1ZpZXdMYXlvdXRTdHJhdGVneS5oIgotI2ltcG9ydCAiV0tX
ZWJWaWV3LmgiCisjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJCYWNr
Rm9yd2FyZExpc3QuaCIKICNpbXBvcnQgIldlYkVkaXRDb21tYW5kUHJveHkuaCIKICNpbXBvcnQg
IldlYkV2ZW50RmFjdG9yeS5oIgpAQCAtNDg0NCw2ICs0ODQ0LDQyIEBAIHZvaWQgV2ViVmlld0lt
cGw6Om1vdXNlTW92ZWQoTlNFdmVudCAqZXYKICAgICBtb3VzZU1vdmVkSW50ZXJuYWwoZXZlbnQp
OwogfQogCitfV0tSZWN0RWRnZSBXZWJWaWV3SW1wbDo6cGlubmVkU3RhdGUoKQoreworICAgIF9X
S1JlY3RFZGdlIHN0YXRlID0gX1dLUmVjdEVkZ2VOb25lOworICAgIGlmIChtX3BhZ2UtPmlzUGlu
bmVkVG9MZWZ0U2lkZSgpKQorICAgICAgICBzdGF0ZSB8PSBfV0tSZWN0RWRnZUxlZnQ7CisgICAg
aWYgKG1fcGFnZS0+aXNQaW5uZWRUb1JpZ2h0U2lkZSgpKQorICAgICAgICBzdGF0ZSB8PSBfV0tS
ZWN0RWRnZVJpZ2h0OworICAgIGlmIChtX3BhZ2UtPmlzUGlubmVkVG9Ub3BTaWRlKCkpCisgICAg
ICAgIHN0YXRlIHw9IF9XS1JlY3RFZGdlVG9wOworICAgIGlmIChtX3BhZ2UtPmlzUGlubmVkVG9C
b3R0b21TaWRlKCkpCisgICAgICAgIHN0YXRlIHw9IF9XS1JlY3RFZGdlQm90dG9tOworICAgIHJl
dHVybiBzdGF0ZTsKK30KKworX1dLUmVjdEVkZ2UgV2ViVmlld0ltcGw6OnJ1YmJlckJhbmRTdGF0
ZSgpCit7CisgICAgX1dLUmVjdEVkZ2Ugc3RhdGUgPSBfV0tSZWN0RWRnZU5vbmU7CisgICAgaWYg
KG1fcGFnZS0+cnViYmVyQmFuZHNBdExlZnQoKSkKKyAgICAgICAgc3RhdGUgfD0gX1dLUmVjdEVk
Z2VMZWZ0OworICAgIGlmIChtX3BhZ2UtPnJ1YmJlckJhbmRzQXRSaWdodCgpKQorICAgICAgICBz
dGF0ZSB8PSBfV0tSZWN0RWRnZVJpZ2h0OworICAgIGlmIChtX3BhZ2UtPnJ1YmJlckJhbmRzQXRU
b3AoKSkKKyAgICAgICAgc3RhdGUgfD0gX1dLUmVjdEVkZ2VUb3A7CisgICAgaWYgKG1fcGFnZS0+
cnViYmVyQmFuZHNBdEJvdHRvbSgpKQorICAgICAgICBzdGF0ZSB8PSBfV0tSZWN0RWRnZUJvdHRv
bTsKKyAgICByZXR1cm4gc3RhdGU7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFJ1YmJlckJh
bmRTdGF0ZShfV0tSZWN0RWRnZSBzdGF0ZSkKK3sKKyAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRz
QXRMZWZ0KHN0YXRlICYgX1dLUmVjdEVkZ2VMZWZ0KTsKKyAgICBtX3BhZ2UtPnNldFJ1YmJlckJh
bmRzQXRSaWdodChzdGF0ZSAmIF9XS1JlY3RFZGdlUmlnaHQpOworICAgIG1fcGFnZS0+c2V0UnVi
YmVyQmFuZHNBdFRvcChzdGF0ZSAmIF9XS1JlY3RFZGdlVG9wKTsKKyAgICBtX3BhZ2UtPnNldFJ1
YmJlckJhbmRzQXRCb3R0b20oc3RhdGUgJiBfV0tSZWN0RWRnZUJvdHRvbSk7Cit9CisKIHZvaWQg
V2ViVmlld0ltcGw6Om1vdXNlRG93bihOU0V2ZW50ICpldmVudCkKIHsKICAgICBpZiAobV9pZ25v
cmVzTm9uV2hlZWxFdmVudHMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMuaAkocmV2aXNpb24gMjIxNjcyKQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTEx
Nyw2ICsxMTcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCByb290
Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOwog
I2VuZGlmCiAKKyAgICB2b2lkIHBpbm5lZFN0YXRlV2lsbENoYW5nZSgpIGZpbmFsOworICAgIHZv
aWQgcGlubmVkU3RhdGVEaWRDaGFuZ2UoKSBmaW5hbDsKKwogICAgIENHUmVjdCBib3VuZHNPZkxh
eWVySW5MYXllckJhY2tlZFdpbmRvd0Nvb3JkaW5hdGVzKENBTGF5ZXIgKikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIGRvbmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudCYsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0JKHJldmlzaW9uIDIy
MTY3MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5t
bQkod29ya2luZyBjb3B5KQpAQCAtNDAyLDYgKzQwMiwyMCBAQCBGbG9hdFJlY3QgUGFnZUNsaWVu
dEltcGw6OmNvbnZlcnRUb1VzZXJTCiAgICAgcmV0dXJuIHRvVXNlclNwYWNlKHJlY3QsIFttX3Zp
ZXcgd2luZG93XSk7CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnBpbm5lZFN0YXRlV2lsbENo
YW5nZSgpCit7CisjaWYgV0tfQVBJX0VOQUJMRUQKKyAgICBbbV93ZWJWaWV3IHdpbGxDaGFuZ2VW
YWx1ZUZvcktleTpAIl9waW5uZWRTdGF0ZSJdOworI2VuZGlmCit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnBpbm5lZFN0YXRlRGlkQ2hhbmdlKCkKK3sKKyNpZiBXS19BUElfRU5BQkxFRAorICAg
IFttX3dlYlZpZXcgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6QCJfcGlubmVkU3RhdGUiXTsKKyNlbmRp
ZgorfQorICAgIAogSW50UG9pbnQgUGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcoY29u
c3QgSW50UG9pbnQmIHBvaW50KQogewogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKSW5k
ZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDIyMTY5MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE1IEBACisyMDE3LTA5LTA2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxlZ2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBX
S1BhZ2VVSUNsaWVudCdzIHBpbm5lZFN0YXRlRGlkQ2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY0NzQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI5MjcwMDM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tOgor
ICAgICAgICAoLVtQaW5uZWRTdGF0ZU9ic2VydmVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZP
YmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAgIChURVNUKToKKwogMjAxNy0wOS0wNiAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFdTTCBz
aG91bGQgc3VwcG9ydCB0aGUgYm9vbCB0eXBlCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCShyZXZpc2lvbiAyMjE2NzIp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0J
KHdvcmtpbmcgY29weSkKQEAgLTI0OSw2ICsyNDksMzIgQEAgVEVTVChXZWJLaXQsIENsaWNrQXV0
b0ZpbGxCdXR0b24pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KIAor
QGludGVyZmFjZSBQaW5uZWRTdGF0ZU9ic2VydmVyIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBQaW5uZWRTdGF0ZU9ic2VydmVyCisKKy0g
KHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0
OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopY2hhbmdl
IGNvbnRleHQ6KHZvaWQgKiljb250ZXh0Cit7CisgICAgRVhQRUNUX1RSVUUoW2tleVBhdGggaXNF
cXVhbFRvU3RyaW5nOk5TU3RyaW5nRnJvbVNlbGVjdG9yKEBzZWxlY3RvcihfcGlubmVkU3RhdGUp
KV0pOworICAgIEVYUEVDVF9UUlVFKFtbb2JqZWN0IGNsYXNzXSBpc0VxdWFsOltUZXN0V0tXZWJW
aWV3IGNsYXNzXV0pOworICAgIEVYUEVDVF9FUShbW2NoYW5nZSBvYmplY3RGb3JLZXk6TlNLZXlW
YWx1ZUNoYW5nZU9sZEtleV0gaW50ZWdlclZhbHVlXSwgX1dLUmVjdEVkZ2VBbGwpOworICAgIEVY
UEVDVF9FUShbW2NoYW5nZSBvYmplY3RGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5ld0tleV0gaW50
ZWdlclZhbHVlXSwgX1dLUmVjdEVkZ2VMZWZ0IHwgX1dLUmVjdEVkZ2VSaWdodCk7CisgICAgRVhQ
RUNUX1RSVUUoY29udGV4dCA9PSBudWxscHRyKTsKKyAgICBkb25lID0gdHJ1ZTsKK30KKworQGVu
ZAorCitURVNUKFdlYktpdCwgUGlubmVkU3RhdGUpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAw
LCA4MDAsIDYwMCldKTsKKyAgICBhdXRvIG9ic2VydmVyID0gYWRvcHROUyhbW1Bpbm5lZFN0YXRl
T2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBhZGRPYnNlcnZlcjpvYnNlcnZl
ci5nZXQoKSBmb3JLZXlQYXRoOkAiX3Bpbm5lZFN0YXRlIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNl
cnZpbmdPcHRpb25OZXcgfCBOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uT2xkIGNvbnRleHQ6bmls
XTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxib2R5IG9ubG9hZD0nc2Nyb2xsKDEw
MCwgMTAwKScgc3R5bGU9J2hlaWdodDoxMDAwMHZoOycvPiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKK30KKwogc3RhdGljIE5TRXZlbnQgKnRhYkV2ZW50KE5TV2luZG93ICp3
aW5kb3csIE5TRXZlbnRUeXBlIHR5cGUsIE5TRXZlbnRNb2RpZmllckZsYWdzIGZsYWdzKQogewog
ICAgIHJldHVybiBbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOnR5cGUgbG9jYXRpb246TlNNYWtl
UG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczpmbGFncyB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50
VGltZSgpIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpbTlNHcmFw
aGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGNoYXJhY3RlcnM6QCJcdCIgY2hhcmFjdGVyc0ln
bm9yaW5nTW9kaWZpZXJzOkAiXHQiIGlzQVJlcGVhdDpOTyBrZXlDb2RlOjBdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320054</attachid>
            <date>2017-09-06 13:04:59 -0700</date>
            <delta_ts>2017-09-06 15:23:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176474-20170906130458.patch</filename>
            <type>text/plain</type>
            <size>12797</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE2NzIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA5LTA2ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxl
Z2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIHBpbm5lZFN0YXRlRGlk
Q2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzY0NzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5MjcwMDM1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmF0aGVyIHRoYW4gdGVsbGluZyB0aGUgVUlD
bGllbnQgdGhhdCB0aGUgcGlubmVkIHN0YXRlIGNoYW5nZWQgYW5kIGhhdmluZyB0aGUgYXBwbGlj
YXRpb24gY2hlY2sgNCBib29scworICAgICAgICBsaWtlIHdlIGRvIHdpdGggV0tQYWdlLCBJIG1h
ZGUgYSBLVk8gcHJvcGVydHkgb24gdGhlIFdLV2ViVmlldy4gIEkgaW50cm9kdWNlIF9XS1JlY3RF
ZGdlIGZvciB0aGlzIHB1cnBvc2UsCisgICAgICAgIHdoaWNoIGlzIGxpa2UgVUlSZWN0RWRnZSBi
dXQgdW5mb3J0dW5hdGVseSBOU1JlY3RFZGdlIGFuZCBDR1JlY3RFZGdlIGNhbm5vdCBiZSB1c2Vk
IGFzIE5TX09QVElPTlMvZmxhZ3MuCisgICAgICAgIFRoaXMgc2FtZSBzdHJ1Y3R1cmUgaXMgdXNl
ZCBmb3IgcnViYmVyIGJhbmQgc3RhdGUuCisgICAgICAgIAorICAgICAgICBDb3ZlcmVkIGJ5IGEg
bmV3IEFQSSB0ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dLV2ViVmlldyBfcGlubmVkU3RhdGVdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9ydWJiZXJCYW5kU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRSdWJi
ZXJCYW5kU3RhdGU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6cGlubmVkU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
cnViYmVyQmFuZFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFJ1YmJl
ckJhbmRTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudDo6cGlubmVkU3RhdGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudDo6cGlubmVkU3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZENoYW5nZVNjcm9sbE9mZnNldFBpbm5pbmdGb3JNYWluRnJhbWUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cGlu
bmVkU3RhdGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnBp
bm5lZFN0YXRlRGlkQ2hhbmdlKToKKwogMjAxNy0wOS0wNiAgRnLDqWTDqXJpYyBXYW5nICA8Zndh
bmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUyB0byBzaGFyZSBjb2RlIGJldHdlZW4gb3ZlcmZsb3cgYW5kIGZyYW1l
IHNjcm9sbGluZwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkocmV2aXNp
b24gMjIxNjcyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNDYsNiArMzQ2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBk
aWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWlu
Z0F1ZGlvV2lsbENoYW5nZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nQXVkaW9E
aWRDaGFuZ2UoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpbm5lZFN0YXRlV2lsbENoYW5nZSgp
IHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgcGlubmVkU3RhdGVEaWRDaGFuZ2UoKSB7IH07CiAKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rp
b25IaXRUZXN0KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiwgYm9vbCBjb250ZW50UHJldmVu
dHNEZWZhdWx0LCBBUEk6Ok9iamVjdCopID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjIxNjcyKQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTk2NiwxMCArNTk2
NiwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlU2Nyb2xsYmFyc0ZvCiAKIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VTY3JvbGxPZmZzZXRQaW5uaW5nRm9yTWFpbkZyYW1lKGJv
b2wgcGlubmVkVG9MZWZ0U2lkZSwgYm9vbCBwaW5uZWRUb1JpZ2h0U2lkZSwgYm9vbCBwaW5uZWRU
b1RvcFNpZGUsIGJvb2wgcGlubmVkVG9Cb3R0b21TaWRlKQogeworICAgIG1fcGFnZUNsaWVudC5w
aW5uZWRTdGF0ZVdpbGxDaGFuZ2UoKTsKICAgICBtX21haW5GcmFtZUlzUGlubmVkVG9MZWZ0U2lk
ZSA9IHBpbm5lZFRvTGVmdFNpZGU7CiAgICAgbV9tYWluRnJhbWVJc1Bpbm5lZFRvUmlnaHRTaWRl
ID0gcGlubmVkVG9SaWdodFNpZGU7CiAgICAgbV9tYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZSA9
IHBpbm5lZFRvVG9wU2lkZTsKICAgICBtX21haW5GcmFtZUlzUGlubmVkVG9Cb3R0b21TaWRlID0g
cGlubmVkVG9Cb3R0b21TaWRlOworICAgIG1fcGFnZUNsaWVudC5waW5uZWRTdGF0ZURpZENoYW5n
ZSgpOwogCiAgICAgbV91aUNsaWVudC0+cGlubmVkU3RhdGVEaWRDaGFuZ2UoKnRoaXMpOwogfQpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CShyZXZpc2lvbiAyMjE2NzIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MjgxLDYgKzUyODEsMjEgQEAgLSAoTlND
b2xvciAqKV9wYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sbwogICAgIHJldHVybiBfaW1wbC0+cGFn
ZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCk7CiB9CiAKKy0gKF9XS1JlY3RFZGdlKV9waW5uZWRT
dGF0ZQoreworICAgIHJldHVybiBfaW1wbC0+cGlubmVkU3RhdGUoKTsKK30KKworLSAoX1dLUmVj
dEVkZ2UpX3J1YmJlckJhbmRpbmdFbmFibGVkCit7CisgICAgcmV0dXJuIF9pbXBsLT5ydWJiZXJC
YW5kaW5nRW5hYmxlZCgpOworfQorCistICh2b2lkKV9zZXRSdWJiZXJCYW5kaW5nRW5hYmxlZDoo
X1dLUmVjdEVkZ2Upc3RhdGUKK3sKKyAgICBfaW1wbC0+c2V0UnViYmVyQmFuZGluZ0VuYWJsZWQo
c3RhdGUpOworfQorCiAtIChpZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZv
ckhpdFRlc3RSZXN1bHQ6KF9XS0hpdFRlc3RSZXN1bHQgKiloaXRUZXN0UmVzdWx0IHdpdGhUeXBl
OihfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKXR5cGUgdXNlckRhdGE6KGlkPE5TU2VjdXJlQ29kaW5n
Pil1c2VyRGF0YQogewogICAgIHJldHVybiBuaWw7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIy
MTY3MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTgwLDYgKzgwLDE1IEBAIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKICAgICBfV0tJbW1lZGlhdGVBY3Rpb25UZWxMaW5rCiB9
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSk7CiAKK3R5cGVkZWYgTlNfT1BUSU9OUyhO
U0ludGVnZXIsIF9XS1JlY3RFZGdlKSB7CisgICAgX1dLUmVjdEVkZ2VOb25lID0gMCwKKyAgICBf
V0tSZWN0RWRnZUxlZnQgPSAxIDw8IENHUmVjdE1pblhFZGdlLAorICAgIF9XS1JlY3RFZGdlVG9w
ID0gMSA8PCBDR1JlY3RNaW5ZRWRnZSwKKyAgICBfV0tSZWN0RWRnZVJpZ2h0ID0gMSA8PCBDR1Jl
Y3RNYXhYRWRnZSwKKyAgICBfV0tSZWN0RWRnZUJvdHRvbSA9IDEgPDwgQ0dSZWN0TWF4WUVkZ2Us
CisgICAgX1dLUmVjdEVkZ2VBbGwgPSBfV0tSZWN0RWRnZUxlZnQgfCBfV0tSZWN0RWRnZVRvcCB8
IF9XS1JlY3RFZGdlUmlnaHQgfCBfV0tSZWN0RWRnZUJvdHRvbSwKK30gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSkpOworCiAjZW5kaWYKIAogQGNsYXNzIFdLQnJvd3NpbmdDb250
ZXh0SGFuZGxlOwpAQCAtMjM4LDYgKzI0NywxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBfV0tJbW1lZGlhdGVBCiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5RGlkR2V0U3BlYWtTZWxlY3Rp
b25Db250ZW50OihOU1N0cmluZyAqKWNvbnRlbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9T
X1RCQSkpOwogCiAjZWxzZQorCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1Jl
Y3RFZGdlIF9waW5uZWRTdGF0ZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJ1
YmJlckJhbmRpbmdFbmFibGVkOikgX1dLUmVjdEVkZ2UgX3J1YmJlckJhbmRpbmdFbmFibGVkOwor
CiBAcHJvcGVydHkgKHJlYWRvbmx5KSBOU0NvbG9yICpfcGFnZUV4dGVuZGVkQmFja2dyb3VuZENv
bG9yOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RHJhd3NCYWNrZ3JvdW5kOikg
Qk9PTCBfZHJhd3NCYWNrZ3JvdW5kOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
VG9wQ29udGVudEluc2V0OikgQ0dGbG9hdCBfdG9wQ29udGVudEluc2V0OwpJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCShyZXZpc2lvbiAyMjE2NzIp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotI2lmbmRlZiBXZWJWaWV3SW1wbF9oCi0jZGVmaW5lIFdlYlZpZXdJbXBsX2gK
KyNwcmFnbWEgb25jZQogCiAjaWYgUExBVEZPUk0oTUFDKQogCkBAIC00Miw2ICs0MSw4IEBACiAj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAordXNpbmcgX1dLUmVjdEVkZ2UgPSBOU0ludGVnZXI7CisKIE9CSkNfQ0xBU1MgTlNBY2Nlc3Np
YmlsaXR5UmVtb3RlVUlFbGVtZW50OwogT0JKQ19DTEFTUyBOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1
cmVSZWNvZ25pemVyOwogT0JKQ19DTEFTUyBOU1RleHRJbnB1dENvbnRleHQ7CkBAIC0yMzYsNiAr
MjM3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVuZGVybGF5Q29sb3IoTlNDb2xvciAqKTsK
ICAgICBOU0NvbG9yICp1bmRlcmxheUNvbG9yKCkgY29uc3Q7CiAgICAgTlNDb2xvciAqcGFnZUV4
dGVuZGVkQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CisgICAgCisgICAgX1dLUmVjdEVkZ2UgcGlu
bmVkU3RhdGUoKTsKKyAgICBfV0tSZWN0RWRnZSBydWJiZXJCYW5kaW5nRW5hYmxlZCgpOworICAg
IHZvaWQgc2V0UnViYmVyQmFuZGluZ0VuYWJsZWQoX1dLUmVjdEVkZ2UpOwogCiAgICAgdm9pZCBz
ZXRPdmVybGF5U2Nyb2xsYmFyU3R5bGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JvbGxiYXJP
dmVybGF5U3R5bGU+IHNjcm9sbGJhclN0eWxlKTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlNjcm9sbGJhck92ZXJsYXlTdHlsZT4gb3ZlcmxheVNjcm9sbGJhclN0eWxlKCkgY29uc3Q7CkBA
IC03MzIsNSArNzM3LDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYgLy8gUExBVEZPUk0oTUFDKQotCi0jZW5kaWYgLy8gV2ViVmlld0ltcGxfaApJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0JKHJldmlzaW9uIDIy
MTY3MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBACiAjaW1wb3J0ICJXS1ByaW50aW5nVmlldy5o
IgogI2ltcG9ydCAiV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1Zp
ZXdMYXlvdXRTdHJhdGVneS5oIgotI2ltcG9ydCAiV0tXZWJWaWV3LmgiCisjaW1wb3J0ICJXS1dl
YlZpZXdQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKICNpbXBvcnQg
IldlYkVkaXRDb21tYW5kUHJveHkuaCIKICNpbXBvcnQgIldlYkV2ZW50RmFjdG9yeS5oIgpAQCAt
NDg0NCw2ICs0ODQ0LDQyIEBAIHZvaWQgV2ViVmlld0ltcGw6Om1vdXNlTW92ZWQoTlNFdmVudCAq
ZXYKICAgICBtb3VzZU1vdmVkSW50ZXJuYWwoZXZlbnQpOwogfQogCitfV0tSZWN0RWRnZSBXZWJW
aWV3SW1wbDo6cGlubmVkU3RhdGUoKQoreworICAgIF9XS1JlY3RFZGdlIHN0YXRlID0gX1dLUmVj
dEVkZ2VOb25lOworICAgIGlmIChtX3BhZ2UtPmlzUGlubmVkVG9MZWZ0U2lkZSgpKQorICAgICAg
ICBzdGF0ZSB8PSBfV0tSZWN0RWRnZUxlZnQ7CisgICAgaWYgKG1fcGFnZS0+aXNQaW5uZWRUb1Jp
Z2h0U2lkZSgpKQorICAgICAgICBzdGF0ZSB8PSBfV0tSZWN0RWRnZVJpZ2h0OworICAgIGlmICht
X3BhZ2UtPmlzUGlubmVkVG9Ub3BTaWRlKCkpCisgICAgICAgIHN0YXRlIHw9IF9XS1JlY3RFZGdl
VG9wOworICAgIGlmIChtX3BhZ2UtPmlzUGlubmVkVG9Cb3R0b21TaWRlKCkpCisgICAgICAgIHN0
YXRlIHw9IF9XS1JlY3RFZGdlQm90dG9tOworICAgIHJldHVybiBzdGF0ZTsKK30KKworX1dLUmVj
dEVkZ2UgV2ViVmlld0ltcGw6OnJ1YmJlckJhbmRpbmdFbmFibGVkKCkKK3sKKyAgICBfV0tSZWN0
RWRnZSBzdGF0ZSA9IF9XS1JlY3RFZGdlTm9uZTsKKyAgICBpZiAobV9wYWdlLT5ydWJiZXJCYW5k
c0F0TGVmdCgpKQorICAgICAgICBzdGF0ZSB8PSBfV0tSZWN0RWRnZUxlZnQ7CisgICAgaWYgKG1f
cGFnZS0+cnViYmVyQmFuZHNBdFJpZ2h0KCkpCisgICAgICAgIHN0YXRlIHw9IF9XS1JlY3RFZGdl
UmlnaHQ7CisgICAgaWYgKG1fcGFnZS0+cnViYmVyQmFuZHNBdFRvcCgpKQorICAgICAgICBzdGF0
ZSB8PSBfV0tSZWN0RWRnZVRvcDsKKyAgICBpZiAobV9wYWdlLT5ydWJiZXJCYW5kc0F0Qm90dG9t
KCkpCisgICAgICAgIHN0YXRlIHw9IF9XS1JlY3RFZGdlQm90dG9tOworICAgIHJldHVybiBzdGF0
ZTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0UnViYmVyQmFuZGluZ0VuYWJsZWQoX1dLUmVj
dEVkZ2Ugc3RhdGUpCit7CisgICAgbV9wYWdlLT5zZXRSdWJiZXJCYW5kc0F0TGVmdChzdGF0ZSAm
IF9XS1JlY3RFZGdlTGVmdCk7CisgICAgbV9wYWdlLT5zZXRSdWJiZXJCYW5kc0F0UmlnaHQoc3Rh
dGUgJiBfV0tSZWN0RWRnZVJpZ2h0KTsKKyAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRUb3Ao
c3RhdGUgJiBfV0tSZWN0RWRnZVRvcCk7CisgICAgbV9wYWdlLT5zZXRSdWJiZXJCYW5kc0F0Qm90
dG9tKHN0YXRlICYgX1dLUmVjdEVkZ2VCb3R0b20pOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpt
b3VzZURvd24oTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgaWYgKG1faWdub3Jlc05vbldoZWVsRXZl
bnRzKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsTWFjLmgJKHJldmlzaW9uIDIyMTY3MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNiArMTE3LDkgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2li
aWxpdHlTY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKICNlbmRpZgogCisgICAg
dm9pZCBwaW5uZWRTdGF0ZVdpbGxDaGFuZ2UoKSBmaW5hbDsKKyAgICB2b2lkIHBpbm5lZFN0YXRl
RGlkQ2hhbmdlKCkgZmluYWw7CisKICAgICBDR1JlY3QgYm91bmRzT2ZMYXllckluTGF5ZXJCYWNr
ZWRXaW5kb3dDb29yZGluYXRlcyhDQUxheWVyICopIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9p
ZCBkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sIHdh
c0V2ZW50SGFuZGxlZCkgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCShyZXZpc2lvbiAyMjE2NzIpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTQwMiw2ICs0MDIsMjAgQEAgRmxvYXRSZWN0IFBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0
VG9Vc2VyUwogICAgIHJldHVybiB0b1VzZXJTcGFjZShyZWN0LCBbbV92aWV3IHdpbmRvd10pOwog
fQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwaW5uZWRTdGF0ZVdpbGxDaGFuZ2UoKQoreworI2lm
IFdLX0FQSV9FTkFCTEVECisgICAgW21fd2ViVmlldyB3aWxsQ2hhbmdlVmFsdWVGb3JLZXk6QCJf
cGlubmVkU3RhdGUiXTsKKyNlbmRpZgorfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwaW5uZWRT
dGF0ZURpZENoYW5nZSgpCit7CisjaWYgV0tfQVBJX0VOQUJMRUQKKyAgICBbbV93ZWJWaWV3IGRp
ZENoYW5nZVZhbHVlRm9yS2V5OkAiX3Bpbm5lZFN0YXRlIl07CisjZW5kaWYKK30KKyAgICAKIElu
dFBvaW50IFBhZ2VDbGllbnRJbXBsOjpzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JiBw
b2ludCkKIHsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCkluZGV4OiBUb29scy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE2OTApCisr
KyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0w
OS0wNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAg
ICAgIEFkZCBXS1VJRGVsZWdhdGVQcml2YXRlIGVxdWl2YWxlbnQgb2YgV0tQYWdlVUlDbGllbnQn
cyBwaW5uZWRTdGF0ZURpZENoYW5nZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc2NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTI3MDAzNT4K
KworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoLVtQaW5uZWRT
dGF0ZU9ic2VydmVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRl
eHQ6XSk6CisgICAgICAgIChURVNUKToKKwogMjAxNy0wOS0wNiAgTXlsZXMgQy4gTWF4ZmllbGQg
IDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFdTTCBzaG91bGQgc3VwcG9ydCB0aGUg
Ym9vbCB0eXBlCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJ
RGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9VSURlbGVnYXRlLm1tCShyZXZpc2lvbiAyMjE2NzIpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAg
LTI0OSw2ICsyNDksMzIgQEAgVEVTVChXZWJLaXQsIENsaWNrQXV0b0ZpbGxCdXR0b24pCiAgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KIAorQGludGVyZmFjZSBQaW5uZWRT
dGF0ZU9ic2VydmVyIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+CitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBQaW5uZWRTdGF0ZU9ic2VydmVyCisKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVl
Rm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdl
OihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQgKilj
b250ZXh0Cit7CisgICAgRVhQRUNUX1RSVUUoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOk5TU3Ry
aW5nRnJvbVNlbGVjdG9yKEBzZWxlY3RvcihfcGlubmVkU3RhdGUpKV0pOworICAgIEVYUEVDVF9U
UlVFKFtbb2JqZWN0IGNsYXNzXSBpc0VxdWFsOltUZXN0V0tXZWJWaWV3IGNsYXNzXV0pOworICAg
IEVYUEVDVF9FUShbW2NoYW5nZSBvYmplY3RGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU9sZEtleV0g
aW50ZWdlclZhbHVlXSwgX1dLUmVjdEVkZ2VBbGwpOworICAgIEVYUEVDVF9FUShbW2NoYW5nZSBv
YmplY3RGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5ld0tleV0gaW50ZWdlclZhbHVlXSwgX1dLUmVj
dEVkZ2VMZWZ0IHwgX1dLUmVjdEVkZ2VSaWdodCk7CisgICAgRVhQRUNUX1RSVUUoY29udGV4dCA9
PSBudWxscHRyKTsKKyAgICBkb25lID0gdHJ1ZTsKK30KKworQGVuZAorCitURVNUKFdlYktpdCwg
UGlubmVkU3RhdGUpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCldKTsKKyAg
ICBhdXRvIG9ic2VydmVyID0gYWRvcHROUyhbW1Bpbm5lZFN0YXRlT2JzZXJ2ZXIgYWxsb2NdIGlu
aXRdKTsKKyAgICBbd2ViVmlldyBhZGRPYnNlcnZlcjpvYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRo
OkAiX3Bpbm5lZFN0YXRlIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgfCBO
U0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uT2xkIGNvbnRleHQ6bmlsXTsKKyAgICBbd2ViVmlldyBs
b2FkSFRNTFN0cmluZzpAIjxib2R5IG9ubG9hZD0nc2Nyb2xsKDEwMCwgMTAwKScgc3R5bGU9J2hl
aWdodDoxMDAwMHZoOycvPiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly9l
eGFtcGxlLmNvbS8iXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30K
Kwogc3RhdGljIE5TRXZlbnQgKnRhYkV2ZW50KE5TV2luZG93ICp3aW5kb3csIE5TRXZlbnRUeXBl
IHR5cGUsIE5TRXZlbnRNb2RpZmllckZsYWdzIGZsYWdzKQogewogICAgIHJldHVybiBbTlNFdmVu
dCBrZXlFdmVudFdpdGhUeXBlOnR5cGUgbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZp
ZXJGbGFnczpmbGFncyB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJl
cjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVu
dENvbnRleHRdIGNoYXJhY3RlcnM6QCJcdCIgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOkAi
XHQiIGlzQVJlcGVhdDpOTyBrZXlDb2RlOjBdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320066</attachid>
            <date>2017-09-06 15:23:35 -0700</date>
            <delta_ts>2017-09-06 15:24:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176474-20170906152334.patch</filename>
            <type>text/plain</type>
            <size>12903</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjE3MDIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA5LTA2ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdLVUlEZWxl
Z2F0ZVByaXZhdGUgZXF1aXZhbGVudCBvZiBXS1BhZ2VVSUNsaWVudCdzIHBpbm5lZFN0YXRlRGlk
Q2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzY0NzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5MjcwMDM1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmF0aGVyIHRoYW4gdGVsbGluZyB0aGUgVUlD
bGllbnQgdGhhdCB0aGUgcGlubmVkIHN0YXRlIGNoYW5nZWQgYW5kIGhhdmluZyB0aGUgYXBwbGlj
YXRpb24gY2hlY2sgNCBib29scworICAgICAgICBsaWtlIHdlIGRvIHdpdGggV0tQYWdlLCBJIG1h
ZGUgYSBLVk8gcHJvcGVydHkgb24gdGhlIFdLV2ViVmlldy4gIEkgaW50cm9kdWNlIF9XS1JlY3RF
ZGdlIGZvciB0aGlzIHB1cnBvc2UsCisgICAgICAgIHdoaWNoIGlzIGxpa2UgVUlSZWN0RWRnZSBi
dXQgdW5mb3J0dW5hdGVseSBOU1JlY3RFZGdlIGFuZCBDR1JlY3RFZGdlIGNhbm5vdCBiZSB1c2Vk
IGFzIE5TX09QVElPTlMvZmxhZ3MuCisgICAgICAgIFRoaXMgc2FtZSBzdHJ1Y3R1cmUgaXMgdXNl
ZCBmb3IgcnViYmVyIGJhbmQgc3RhdGUuCisgICAgICAgIAorICAgICAgICBDb3ZlcmVkIGJ5IGEg
bmV3IEFQSSB0ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dLV2ViVmlldyBfcGlubmVkU3RhdGVdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9ydWJiZXJCYW5kU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRSdWJi
ZXJCYW5kU3RhdGU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6cGlubmVkU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
cnViYmVyQmFuZFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFJ1YmJl
ckJhbmRTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudDo6cGlubmVkU3RhdGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudDo6cGlubmVkU3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZENoYW5nZVNjcm9sbE9mZnNldFBpbm5pbmdGb3JNYWluRnJhbWUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cGlu
bmVkU3RhdGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnBp
bm5lZFN0YXRlRGlkQ2hhbmdlKToKKwogMjAxNy0wOS0wNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMjE2OTQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCShyZXZpc2lv
biAyMjE3MDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM0Niw2ICszNDYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZENoYW5nZUJhY2tncm91bmRDb2xvcigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5n
QXVkaW9XaWxsQ2hhbmdlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRpb0Rp
ZENoYW5nZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGlubmVkU3RhdGVXaWxsQ2hhbmdlKCkg
eyB9OworICAgIHZpcnR1YWwgdm9pZCBwaW5uZWRTdGF0ZURpZENoYW5nZSgpIHsgfTsKIAogI2lm
IFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlv
bkhpdFRlc3QoY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmLCBib29sIGNvbnRlbnRQcmV2ZW50
c0RlZmF1bHQsIEFQSTo6T2JqZWN0KikgPSAwOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyMjE3MDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OTY2LDEwICs1OTY2
LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VTY3JvbGxiYXJzRm8KIAogdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZENoYW5nZVNjcm9sbE9mZnNldFBpbm5pbmdGb3JNYWluRnJhbWUoYm9v
bCBwaW5uZWRUb0xlZnRTaWRlLCBib29sIHBpbm5lZFRvUmlnaHRTaWRlLCBib29sIHBpbm5lZFRv
VG9wU2lkZSwgYm9vbCBwaW5uZWRUb0JvdHRvbVNpZGUpCiB7CisgICAgbV9wYWdlQ2xpZW50LnBp
bm5lZFN0YXRlV2lsbENoYW5nZSgpOwogICAgIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0xlZnRTaWRl
ID0gcGlubmVkVG9MZWZ0U2lkZTsKICAgICBtX21haW5GcmFtZUlzUGlubmVkVG9SaWdodFNpZGUg
PSBwaW5uZWRUb1JpZ2h0U2lkZTsKICAgICBtX21haW5GcmFtZUlzUGlubmVkVG9Ub3BTaWRlID0g
cGlubmVkVG9Ub3BTaWRlOwogICAgIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0JvdHRvbVNpZGUgPSBw
aW5uZWRUb0JvdHRvbVNpZGU7CisgICAgbV9wYWdlQ2xpZW50LnBpbm5lZFN0YXRlRGlkQ2hhbmdl
KCk7CiAKICAgICBtX3VpQ2xpZW50LT5waW5uZWRTdGF0ZURpZENoYW5nZSgqdGhpcyk7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0J
KHJldmlzaW9uIDIyMTcwMikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTUyODEsNiArNTI4MSwyMSBAQCAtIChOU0Nv
bG9yICopX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvCiAgICAgcmV0dXJuIF9pbXBsLT5wYWdl
RXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IoKTsKIH0KIAorLSAoX1dLUmVjdEVkZ2UpX3Bpbm5lZFN0
YXRlCit7CisgICAgcmV0dXJuIF9pbXBsLT5waW5uZWRTdGF0ZSgpOworfQorCistIChfV0tSZWN0
RWRnZSlfcnViYmVyQmFuZGluZ0VuYWJsZWQKK3sKKyAgICByZXR1cm4gX2ltcGwtPnJ1YmJlckJh
bmRpbmdFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpX3NldFJ1YmJlckJhbmRpbmdFbmFibGVkOihf
V0tSZWN0RWRnZSlzdGF0ZQoreworICAgIF9pbXBsLT5zZXRSdWJiZXJCYW5kaW5nRW5hYmxlZChz
dGF0ZSk7Cit9CisKIC0gKGlkKV9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9y
SGl0VGVzdFJlc3VsdDooX1dLSGl0VGVzdFJlc3VsdCAqKWhpdFRlc3RSZXN1bHQgd2l0aFR5cGU6
KF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpdHlwZSB1c2VyRGF0YTooaWQ8TlNTZWN1cmVDb2Rpbmc+
KXVzZXJEYXRhCiB7CiAgICAgcmV0dXJuIG5pbDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkocmV2aXNpb24gMjIx
NzAyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtODAsNiArODAsMTUgQEAgdHlwZWRlZiBOU19FTlVNKE5T
SW50ZWdlciwgX1dLSW1tZWRpYXRlQQogICAgIF9XS0ltbWVkaWF0ZUFjdGlvblRlbExpbmsKIH0g
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKIAordHlwZWRlZiBOU19PUFRJT05TKE5T
SW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKKyAgICBfV0tSZWN0RWRnZU5vbmUgPSAwLAorICAgIF9X
S1JlY3RFZGdlTGVmdCA9IDEgPDwgQ0dSZWN0TWluWEVkZ2UsCisgICAgX1dLUmVjdEVkZ2VUb3Ag
PSAxIDw8IENHUmVjdE1pbllFZGdlLAorICAgIF9XS1JlY3RFZGdlUmlnaHQgPSAxIDw8IENHUmVj
dE1heFhFZGdlLAorICAgIF9XS1JlY3RFZGdlQm90dG9tID0gMSA8PCBDR1JlY3RNYXhZRWRnZSwK
KyAgICBfV0tSZWN0RWRnZUFsbCA9IF9XS1JlY3RFZGdlTGVmdCB8IF9XS1JlY3RFZGdlVG9wIHwg
X1dLUmVjdEVkZ2VSaWdodCB8IF9XS1JlY3RFZGdlQm90dG9tLAorfSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSk7CisKICNlbmRpZgogCiBAY2xhc3MgV0tCcm93c2luZ0NvbnRl
eHRIYW5kbGU7CkBAIC0yMzgsNiArMjQ3LDEwIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS0ltbWVkaWF0ZUEKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlEaWRHZXRTcGVha1NlbGVjdGlv
bkNvbnRlbnQ6KE5TU3RyaW5nICopY29udGVudCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1Nf
VEJBKSk7CiAKICNlbHNlCisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLUmVj
dEVkZ2UgX3Bpbm5lZFN0YXRlOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UnVi
YmVyQmFuZGluZ0VuYWJsZWQ6KSBfV0tSZWN0RWRnZSBfcnViYmVyQmFuZGluZ0VuYWJsZWQ7CisK
IEBwcm9wZXJ0eSAocmVhZG9ubHkpIE5TQ29sb3IgKl9wYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29s
b3I7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREcmF3c0JhY2tncm91bmQ6KSBC
T09MIF9kcmF3c0JhY2tncm91bmQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRU
b3BDb250ZW50SW5zZXQ6KSBDR0Zsb2F0IF90b3BDb250ZW50SW5zZXQ7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDIyMTcwMikK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi0jaWZuZGVmIFdlYlZpZXdJbXBsX2gKLSNkZWZpbmUgV2ViVmlld0ltcGxfaAor
I3ByYWdtYSBvbmNlCiAKICNpZiBQTEFURk9STShNQUMpCiAKQEAgLTQyLDYgKzQxLDggQEAKICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
Cit1c2luZyBfV0tSZWN0RWRnZSA9IE5TSW50ZWdlcjsKKwogT0JKQ19DTEFTUyBOU0FjY2Vzc2li
aWxpdHlSZW1vdGVVSUVsZW1lbnQ7CiBPQkpDX0NMQVNTIE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXI7CiBPQkpDX0NMQVNTIE5TVGV4dElucHV0Q29udGV4dDsKQEAgLTIzNiw2ICsy
MzcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VW5kZXJsYXlDb2xvcihOU0NvbG9yICopOwog
ICAgIE5TQ29sb3IgKnVuZGVybGF5Q29sb3IoKSBjb25zdDsKICAgICBOU0NvbG9yICpwYWdlRXh0
ZW5kZWRCYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsKKyAgICAKKyAgICBfV0tSZWN0RWRnZSBwaW5u
ZWRTdGF0ZSgpOworICAgIF9XS1JlY3RFZGdlIHJ1YmJlckJhbmRpbmdFbmFibGVkKCk7CisgICAg
dm9pZCBzZXRSdWJiZXJCYW5kaW5nRW5hYmxlZChfV0tSZWN0RWRnZSk7CiAKICAgICB2b2lkIHNl
dE92ZXJsYXlTY3JvbGxiYXJTdHlsZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcm9sbGJhck92
ZXJsYXlTdHlsZT4gc2Nyb2xsYmFyU3R5bGUpOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
U2Nyb2xsYmFyT3ZlcmxheVN0eWxlPiBvdmVybGF5U2Nyb2xsYmFyU3R5bGUoKSBjb25zdDsKQEAg
LTczMiw1ICs3MzcsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCi0KLSNlbmRpZiAvLyBXZWJWaWV3SW1wbF9oCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQkocmV2aXNpb24gMjIx
NzAyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0JKHdv
cmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAKICNpbXBvcnQgIldLUHJpbnRpbmdWaWV3Lmgi
CiAjaW1wb3J0ICJXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLVmll
d0xheW91dFN0cmF0ZWd5LmgiCi0jaW1wb3J0ICJXS1dlYlZpZXcuaCIKKyNpbXBvcnQgIldLV2Vi
Vmlld1ByaXZhdGUuaCIKICNpbXBvcnQgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgogI2ltcG9ydCAi
V2ViRWRpdENvbW1hbmRQcm94eS5oIgogI2ltcG9ydCAiV2ViRXZlbnRGYWN0b3J5LmgiCkBAIC00
ODQ0LDYgKzQ4NDQsNTQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6bW91c2VNb3ZlZChOU0V2ZW50ICpl
dgogICAgIG1vdXNlTW92ZWRJbnRlcm5hbChldmVudCk7CiB9CiAKK19XS1JlY3RFZGdlIFdlYlZp
ZXdJbXBsOjpwaW5uZWRTdGF0ZSgpCit7CisjaWYgV0tfQVBJX0VOQUJMRUQKKyAgICBfV0tSZWN0
RWRnZSBzdGF0ZSA9IF9XS1JlY3RFZGdlTm9uZTsKKyAgICBpZiAobV9wYWdlLT5pc1Bpbm5lZFRv
TGVmdFNpZGUoKSkKKyAgICAgICAgc3RhdGUgfD0gX1dLUmVjdEVkZ2VMZWZ0OworICAgIGlmICht
X3BhZ2UtPmlzUGlubmVkVG9SaWdodFNpZGUoKSkKKyAgICAgICAgc3RhdGUgfD0gX1dLUmVjdEVk
Z2VSaWdodDsKKyAgICBpZiAobV9wYWdlLT5pc1Bpbm5lZFRvVG9wU2lkZSgpKQorICAgICAgICBz
dGF0ZSB8PSBfV0tSZWN0RWRnZVRvcDsKKyAgICBpZiAobV9wYWdlLT5pc1Bpbm5lZFRvQm90dG9t
U2lkZSgpKQorICAgICAgICBzdGF0ZSB8PSBfV0tSZWN0RWRnZUJvdHRvbTsKKyAgICByZXR1cm4g
c3RhdGU7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK19XS1JlY3RFZGdlIFdl
YlZpZXdJbXBsOjpydWJiZXJCYW5kaW5nRW5hYmxlZCgpCit7CisjaWYgV0tfQVBJX0VOQUJMRUQK
KyAgICBfV0tSZWN0RWRnZSBzdGF0ZSA9IF9XS1JlY3RFZGdlTm9uZTsKKyAgICBpZiAobV9wYWdl
LT5ydWJiZXJCYW5kc0F0TGVmdCgpKQorICAgICAgICBzdGF0ZSB8PSBfV0tSZWN0RWRnZUxlZnQ7
CisgICAgaWYgKG1fcGFnZS0+cnViYmVyQmFuZHNBdFJpZ2h0KCkpCisgICAgICAgIHN0YXRlIHw9
IF9XS1JlY3RFZGdlUmlnaHQ7CisgICAgaWYgKG1fcGFnZS0+cnViYmVyQmFuZHNBdFRvcCgpKQor
ICAgICAgICBzdGF0ZSB8PSBfV0tSZWN0RWRnZVRvcDsKKyAgICBpZiAobV9wYWdlLT5ydWJiZXJC
YW5kc0F0Qm90dG9tKCkpCisgICAgICAgIHN0YXRlIHw9IF9XS1JlY3RFZGdlQm90dG9tOworICAg
IHJldHVybiBzdGF0ZTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwordm9pZCBX
ZWJWaWV3SW1wbDo6c2V0UnViYmVyQmFuZGluZ0VuYWJsZWQoX1dLUmVjdEVkZ2Ugc3RhdGUpCit7
CisjaWYgV0tfQVBJX0VOQUJMRUQKKyAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRMZWZ0KHN0
YXRlICYgX1dLUmVjdEVkZ2VMZWZ0KTsKKyAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRzQXRSaWdo
dChzdGF0ZSAmIF9XS1JlY3RFZGdlUmlnaHQpOworICAgIG1fcGFnZS0+c2V0UnViYmVyQmFuZHNB
dFRvcChzdGF0ZSAmIF9XS1JlY3RFZGdlVG9wKTsKKyAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRz
QXRCb3R0b20oc3RhdGUgJiBfV0tSZWN0RWRnZUJvdHRvbSk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShzdGF0ZSk7CisjZW5kaWYKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6bW91c2VEb3duKE5T
RXZlbnQgKmV2ZW50KQogewogICAgIGlmIChtX2lnbm9yZXNOb25XaGVlbEV2ZW50cykKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCShy
ZXZpc2lvbiAyMjE3MDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDYgKzExNyw5IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVu
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAjZW5kaWYKIAorICAgIHZvaWQgcGlubmVk
U3RhdGVXaWxsQ2hhbmdlKCkgZmluYWw7CisgICAgdm9pZCBwaW5uZWRTdGF0ZURpZENoYW5nZSgp
IGZpbmFsOworCiAgICAgQ0dSZWN0IGJvdW5kc09mTGF5ZXJJbkxheWVyQmFja2VkV2luZG93Q29v
cmRpbmF0ZXMoQ0FMYXllciAqKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgZG9uZVdpdGhL
ZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRs
ZWQpIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbE1hYy5tbQkocmV2aXNpb24gMjIxNzAyKQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MDIs
NiArNDAyLDIwIEBAIEZsb2F0UmVjdCBQYWdlQ2xpZW50SW1wbDo6Y29udmVydFRvVXNlclMKICAg
ICByZXR1cm4gdG9Vc2VyU3BhY2UocmVjdCwgW21fdmlldyB3aW5kb3ddKTsKIH0KIAordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cGlubmVkU3RhdGVXaWxsQ2hhbmdlKCkKK3sKKyNpZiBXS19BUElfRU5B
QkxFRAorICAgIFttX3dlYlZpZXcgd2lsbENoYW5nZVZhbHVlRm9yS2V5OkAiX3Bpbm5lZFN0YXRl
Il07CisjZW5kaWYKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cGlubmVkU3RhdGVEaWRDaGFu
Z2UoKQoreworI2lmIFdLX0FQSV9FTkFCTEVECisgICAgW21fd2ViVmlldyBkaWRDaGFuZ2VWYWx1
ZUZvcktleTpAIl9waW5uZWRTdGF0ZSJdOworI2VuZGlmCit9CisgICAgCiBJbnRQb2ludCBQYWdl
Q2xpZW50SW1wbDo6c2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjIxNzAyKQorKysgVG9vbHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDktMDYgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgV0tV
SURlbGVnYXRlUHJpdmF0ZSBlcXVpdmFsZW50IG9mIFdLUGFnZVVJQ2xpZW50J3MgcGlubmVkU3Rh
dGVEaWRDaGFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NjQ3NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjkyNzAwMzU+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bUGlubmVkU3RhdGVPYnNlcnZl
ciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAg
ICAgICAoVEVTVCk6CisKIDIwMTctMDktMDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjIxNjk0
LgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRl
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VUlEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjIxNzAyKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNDksNiAr
MjQ5LDMyIEBAIFRFU1QoV2ViS2l0LCBDbGlja0F1dG9GaWxsQnV0dG9uKQogICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKK0BpbnRlcmZhY2UgUGlubmVkU3RhdGVPYnNl
cnZlciA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgorQGVuZAorCitAaW1wbGVtZW50
YXRpb24gUGlubmVkU3RhdGVPYnNlcnZlcgorCistICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBh
dGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0
aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAor
eworICAgIEVYUEVDVF9UUlVFKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpOU1N0cmluZ0Zyb21T
ZWxlY3RvcihAc2VsZWN0b3IoX3Bpbm5lZFN0YXRlKSldKTsKKyAgICBFWFBFQ1RfVFJVRShbW29i
amVjdCBjbGFzc10gaXNFcXVhbDpbVGVzdFdLV2ViVmlldyBjbGFzc11dKTsKKyAgICBFWFBFQ1Rf
RVEoW1tjaGFuZ2Ugb2JqZWN0Rm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VPbGRLZXldIGludGVnZXJW
YWx1ZV0sIF9XS1JlY3RFZGdlQWxsKTsKKyAgICBFWFBFQ1RfRVEoW1tjaGFuZ2Ugb2JqZWN0Rm9y
S2V5Ok5TS2V5VmFsdWVDaGFuZ2VOZXdLZXldIGludGVnZXJWYWx1ZV0sIF9XS1JlY3RFZGdlTGVm
dCB8IF9XS1JlY3RFZGdlUmlnaHQpOworICAgIEVYUEVDVF9UUlVFKGNvbnRleHQgPT0gbnVsbHB0
cik7CisgICAgZG9uZSA9IHRydWU7Cit9CisKK0BlbmQKKworVEVTVChXZWJLaXQsIFBpbm5lZFN0
YXRlKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApXSk7CisgICAgYXV0byBv
YnNlcnZlciA9IGFkb3B0TlMoW1tQaW5uZWRTdGF0ZU9ic2VydmVyIGFsbG9jXSBpbml0XSk7Cisg
ICAgW3dlYlZpZXcgYWRkT2JzZXJ2ZXI6b2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAIl9waW5u
ZWRTdGF0ZSIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IHwgTlNLZXlWYWx1
ZU9ic2VydmluZ09wdGlvbk9sZCBjb250ZXh0Om5pbF07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6QCI8Ym9keSBvbmxvYWQ9J3Njcm9sbCgxMDAsIDEwMCknIHN0eWxlPSdoZWlnaHQ6MTAw
MDB2aDsnLz4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5j
b20vIl1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKIHN0YXRp
YyBOU0V2ZW50ICp0YWJFdmVudChOU1dpbmRvdyAqd2luZG93LCBOU0V2ZW50VHlwZSB0eXBlLCBO
U0V2ZW50TW9kaWZpZXJGbGFncyBmbGFncykKIHsKICAgICByZXR1cm4gW05TRXZlbnQga2V5RXZl
bnRXaXRoVHlwZTp0eXBlIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6
ZmxhZ3MgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6W3dpbmRv
dyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0
XSBjaGFyYWN0ZXJzOkAiXHQiIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpAIlx0IiBpc0FS
ZXBlYXQ6Tk8ga2V5Q29kZTowXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>