<?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>51546</bug_id>
          
          <creation_ts>2010-12-23 11:22:42 -0800</creation_ts>
          <short_desc>WebKit2 needs to mirror the frame tree in the UIProcess</short_desc>
          <delta_ts>2010-12-24 22:11:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>326175</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-23 11:22:42 -0800</bug_when>
    <thetext>Unfortunately, it looks like we need to mirror the frame tree in the UIProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326188</commentid>
    <comment_count>1</comment_count>
      <attachid>77354</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-23 11:49:58 -0800</bug_when>
    <thetext>Created attachment 77354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326190</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-23 11:54:47 -0800</bug_when>
    <thetext>Attachment 77354 did not build on chromium:
Build output: http://queues.webkit.org/results/7322135</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326194</commentid>
    <comment_count>3</comment_count>
      <attachid>77354</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-23 12:00:16 -0800</bug_when>
    <thetext>Comment on attachment 77354
Patch

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

&gt; WebKit2/UIProcess/WebFrameProxy.cpp:184
&gt; +    ASSERT(child-&gt;page() == page());

Assert that child-&gt;m_parentFrame is 0?
Assert that child-&gt;m_nextSibling is 0?
Assert that child-&gt;m_previousSibling is 0?

&gt; WebKit2/UIProcess/WebFrameProxy.cpp:193
&gt; +        oldLast-&gt;m_nextSibling = child;

Assert that oldLast-&gt;m_nextSibling was 0?

&gt; WebKit2/UIProcess/WebFrameProxy.cpp:205
&gt; +    std::swap(newLocationForNext, child-&gt;m_nextSibling);
&gt; +    std::swap(newLocationForPrevious, child-&gt;m_previousSibling);

How about &quot;using namespace std&quot; at the top instead?

&gt; WebKit2/UIProcess/WebFrameProxy.cpp:226
&gt; +void WebFrameProxy::dumpFrameTree(unsigned indent)

It would be nicer if the name made it clear it’s a stdout-print type of dump. I like leaving this kind of function in the code as long as it’s obvious how to invoke it. If only someone had left an easy string-printing function in WTF::String!!!

&gt; WebKit2/UIProcess/WebFrameProxy.h:136
&gt; +    void removeAllChildFrames();

You mentioned we should remove this declaration for a function that is never used or defined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326202</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-23 12:10:23 -0800</bug_when>
    <thetext>Landed in r74571.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326280</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-23 14:23:20 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; Unfortunately, it looks like we need to mirror the frame tree in the UIProcess.

I&apos;m curious why you need to mirror the Frame tree.  Chrome gets away without doing that.  The equivalent of the UIProcess only understands the concept of a WebView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326754</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-24 14:33:19 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #0)
&gt; &gt; Unfortunately, it looks like we need to mirror the frame tree in the UIProcess.
&gt; 
&gt; I&apos;m curious why you need to mirror the Frame tree.  Chrome gets away without doing that.  The equivalent of the UIProcess only understands the concept of a WebView.

Safari uses the information in its Activity Window.  There are other ways to implement it however, so I will be trying to figure out if we can do something else efficiently enough that we can remove this.  I really want to remove this.  It sucks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326795</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-24 22:04:28 -0800</bug_when>
    <thetext>&gt; Safari uses the information in its Activity Window.  There are other ways to implement it however, so I will be trying to figure out if we can do something else efficiently enough that we can remove this.  I really want to remove this.  It sucks.

Ah, that makes sense.  Yeah, Chrome addresses this use case with the Web Inspector.  One of the design pressures we try to push back against is having the browser process (UIProcess) learn too much about WebKit internals.  Considerations might well be different in WebKit2, though, depending on how general a client you&apos;d like to support.  Thanks for satisfying my curiosity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326796</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-24 22:11:31 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; Safari uses the information in its Activity Window.  There are other ways to implement it however, so I will be trying to figure out if we can do something else efficiently enough that we can remove this.  I really want to remove this.  It sucks.
&gt; 
&gt; Ah, that makes sense.  Yeah, Chrome addresses this use case with the Web Inspector.  One of the design pressures we try to push back against is having the browser process (UIProcess) learn too much about WebKit internals.  Considerations might well be different in WebKit2, though, depending on how general a client you&apos;d like to support.  Thanks for satisfying my curiosity.

That is a goal of WebKit2 as well.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77354</attachid>
            <date>2010-12-23 11:49:58 -0800</date>
            <delta_ts>2010-12-23 12:00:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>frameTree1.diff</filename>
            <type>text/plain</type>
            <size>39010</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDUzMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMTItMjIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQy
IG5lZWRzIHRvIG1pcnJvciB0aGUgZnJhbWUgdHJlZSBpbiB0aGUgVUlQcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTU0NgorCisgICAgICAg
IC0gQWRkIGNsaWVudCBmdW5jdGlvbnMgdG8gbm90aWZ5IHRoYXQgYSBmcmFtZSBoYXMgYmVlbiBh
ZGRlZCBvcgorICAgICAgICAgIHJlbW92ZWQgZnJvbSB0aGUgcGFnZSBjYWNoZS4KKworICAgICAg
ICAqIGhpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRnJh
bWVCYXNlOjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZyYW1lOjpDYWNoZWRG
cmFtZSk6CisgICAgICAgICogaGlzdG9yeS9DYWNoZWRGcmFtZS5oOgorICAgICAgICAqIGxvYWRl
ci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2FkZXJDbGll
bnQ6OmRpZFNhdmVUb1BhZ2VDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSk6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMTAtMTItMjIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3
NDUwMy4KSW5kZXg6IFdlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAkocmV2aXNpb24gNzQ0MzApCisrKyBX
ZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5
OCw4IEBAIHZvaWQgQ2FjaGVkRnJhbWVCYXNlOjpyZXN0b3JlKCkKICAgICAvLyBjYWNoZWQgcGFn
ZS4KICAgICBmcmFtZS0+c2NyaXB0KCktPnVwZGF0ZVBsYXRmb3JtU2NyaXB0T2JqZWN0cygpOwog
CisgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUo
KTsKKwogICAgIC8vIFJlY29uc3RydWN0IHRoZSBGcmFtZVRyZWUKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV9jaGlsZEZyYW1lcy5zaXplKCk7ICsraSkKICAgICAgICAgZnJhbWUtPnRy
ZWUoKS0+YXBwZW5kQ2hpbGQobV9jaGlsZEZyYW1lc1tpXS0+dmlldygpLT5mcmFtZSgpKTsKQEAg
LTE1Nyw2ICsxNTksOCBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUqIGZyYW1lKQog
ICAgIGlmICghbV9pc01haW5GcmFtZSkKICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+ZGVjcmVtZW50
RnJhbWVDb3VudCgpOwogCisgICAgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkU2F2ZVRv
UGFnZUNhY2hlKCk7CisKICNpZm5kZWYgTkRFQlVHCiAgICAgaWYgKG1faXNNYWluRnJhbWUpCiAg
ICAgICAgIExPRyhQYWdlQ2FjaGUsICJGaW5pc2hlZCBjcmVhdGluZyBDYWNoZWRGcmFtZSBmb3Ig
bWFpbiBmcmFtZSB1cmwgJyVzJyBhbmQgRG9jdW1lbnRMb2FkZXIgJXBcbiIsIG1fdXJsLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCksIG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCkpOwpJbmRleDogV2ViQ29y
ZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9oaXN0b3J5L0Nh
Y2hlZEZyYW1lLmgJKHJldmlzaW9uIDc0NDMwKQorKysgV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZy
YW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDcgQEAgcHVibGljOgogCiAgICAgdXNp
bmcgQ2FjaGVkRnJhbWVCYXNlOjpkb2N1bWVudDsKICAgICB1c2luZyBDYWNoZWRGcmFtZUJhc2U6
OnZpZXc7CisgICAgdXNpbmcgQ2FjaGVkRnJhbWVCYXNlOjp1cmw7CiAgICAgRG9jdW1lbnRMb2Fk
ZXIqIGRvY3VtZW50TG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudExvYWRlci5nZXQo
KTsgfQogICAgIE5vZGUqIG1vdXNlUHJlc3NOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb3VzZVBy
ZXNzTm9kZS5nZXQoKTsgfQogCkluZGV4OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gNzQ0
MzApCisrKyBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAt
MzMzLDYgKzMzMyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29t
bWl0dGVkRnJvbUNhY2hlZEZyYW1lKENhY2hlZEZyYW1lKikgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKSB7IH0gICAgCiAKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlc3Rv
cmVGcm9tUGFnZUNhY2hlKCkgeyB9CisKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRCZWNv
bWVGcmFtZXNldChib29sKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0
b3J5KCkgeyB9CkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDc0
NDMwKQorKysgV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjI0LDYgKzIyNCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSop
ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1Bh
Z2UoKSA9IDA7CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpID0g
MDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgPSAwOwor
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpID0g
MDsgLy8gQ2FuIGNoYW5nZSBkdWUgdG8gbmF2aWdhdGlvbiBvciBET00gbW9kaWZpY2F0aW9uLgog
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdCA9IDA7CkluZGV4OiBX
ZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNp
b24gNzQ1MzEpCisrKyBXZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDY1IEBACisyMDEwLTEyLTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MiBuZWVkcyB0
byBtaXJyb3IgdGhlIGZyYW1lIHRyZWUgaW4gdGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE1NDYKKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0ZyYW1lLmNwcDoKKyAgICAgICAgKFdLRnJhbWVDb3B5Q2hpbGRGcmFtZXMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmg6CisgICAgICAgIEFkZCBBUEkg
dG8gZ2V0IHRoZSBjaGlsZCBmcmFtZXMgb2YgYSBmcmFtZS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6V2Vi
RnJhbWVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmRpc2Nvbm5lY3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVByb3h5OjphcHBlbmRDaGlsZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OnJlbW92ZUNoaWxkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVQcm94eTo6aXNEZXNjZW5kYW50T2YpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZVByb3h5OjpkdW1wRnJhbWVUcmVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6
ZGlkUmVtb3ZlRnJvbUhpZXJhcmNoeSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6
OmNoaWxkRnJhbWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZVByb3h5OjpwYXJlbnRGcmFtZSk6IEFkZCBnZXR0ZXIuCisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6Om5leHRTaWJsaW5nKTogQWRkIGdldHRlci4K
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6cHJldmlvdXNTaWJsaW5nKTogQWRkIGdl
dHRlci4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6Zmlyc3RDaGlsZCk6IEFkZCBn
ZXR0ZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6Omxhc3RDaGlsZCk6IEFkZCBn
ZXR0ZXIuCisgICAgICAgIE1ha2UgZnJhbWVzIGtlZXAgdHJhY2sgb2YgdGhlaXIgc3ViZnJhbWVz
LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUpOgorICAgICAgICBVc2UgdGhlIG5v
dyBwYXNzZWQgcGFyZW50SUQgdG8gaW5zZXJ0IHRoZSBmcmFtZSBpbnRvIHRoZSBoaWVyYXJjaHkK
KworICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFNhdmVGcmFtZVRvUGFnZUNhY2hl
KToKKyAgICAgICAgV2hlbiBhIGZyYW1lIGlzIGFkZGVkIHRvIHRoZSBwYWdlIGNhY2hlLCByZW1v
dmUgaXQgZnJvbSB0aGUgaGllcmFyY2h5LgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkUmVzdG9yZUZyYW1lRnJvbVBhZ2VDYWNoZSk6CisgICAgICAgIFdoZW4gYSBmcmFtZSBp
cyByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNhY2hlLCBhZGQgaXQgYmFjayB0byB0aGUgaGllcmFy
Y2h5LgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVtb3ZlRnJhbWVGcm9t
SGllcmFyY2h5KToKKyAgICAgICAgRGV0YWNoZWQgZnJhbWVzIHNob3VsZCBhbHNvIGJlIHJlbW92
ZWQgZnJvbSB0aGUgaGllcmFyY2h5LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICBBZGQgbmV3IGRlY2xhcmF0aW9ucyBmb3IgZGlkU2F2ZUZyYW1lVG9QYWdl
Q2FjaGUgYW5kIGRpZFJlc3RvcmVGcmFtZUZyb21QYWdlQ2FjaGUuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICBBZGQgbWVzc2FnZXMgZm9y
IERpZFNhdmVGcmFtZVRvUGFnZUNhY2hlIGFuZCBEaWRSZXN0b3JlRnJhbWVGcm9tUGFnZUNhY2hl
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpzYXZlUGxh
dGZvcm1EYXRhVG9DYWNoZWRGcmFtZSk6IAorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRl
ckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKToKKyAgICAgICAg
UmVtb3ZlIG5vdEltcGxlbWVudGVkLCB0aGVyZSBpcyBubyB3b3JrIHdlIG5lZWQgdG8gZG8gaGVy
ZS4KKworICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkU2F2ZVRvUGFn
ZUNhY2hlKTogCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0
b3JlRnJvbVBhZ2VDYWNoZSk6CisgICAgICAgIFNlbmQgbWVzc2FnZSB0byBVSVByb2Nlc3MgdG8g
aW5kaWNhdGUgdGhpcyBoYXBwZW5lZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlU3ViZnJh
bWUpOgorICAgICAgICBTZW5kIHBhcmVudCBmcmFtZUlEIGluIGFkZGl0aW9uIHRvIG91ciBvd24g
aW4gdGhlIG1lc3NhZ2UgdG8gVUlQcm9jZXNzLgorCiAyMDEwLTEyLTIyICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5p
Zy4KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCShyZXZpc2lvbiA3NDUyNykK
KysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MCw2ICs0MCwxMSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViRnJhbWVQcm94eTo6V2Vi
RnJhbWVQcm94eShXZWJQYWdlUHJveHkqIHBhZ2UsIHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgOiBt
X3BhZ2UocGFnZSkKKyAgICAsIG1fcGFyZW50RnJhbWUoMCkKKyAgICAsIG1fbmV4dFNpYmxpbmco
MCkKKyAgICAsIG1fcHJldmlvdXNTaWJsaW5nKDApCisgICAgLCBtX2ZpcnN0Q2hpbGQoMCkKKyAg
ICAsIG1fbGFzdENoaWxkKDApCiAgICAgLCBtX2xvYWRTdGF0ZShMb2FkU3RhdGVGaW5pc2hlZCkK
ICAgICAsIG1faXNGcmFtZVNldChmYWxzZSkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQpAQCAt
NTUsNiArNjAsMTIgQEAgV2ViRnJhbWVQcm94eTo6fldlYkZyYW1lUHJveHkoKQogdm9pZCBXZWJG
cmFtZVByb3h5OjpkaXNjb25uZWN0KCkKIHsKICAgICBtX3BhZ2UgPSAwOworICAgIG1fcGFyZW50
RnJhbWUgPSAwOworICAgIG1fbmV4dFNpYmxpbmcgPSAwOworICAgIG1fcHJldmlvdXNTaWJsaW5n
ID0gMDsKKyAgICBtX2ZpcnN0Q2hpbGQgPSAwOworICAgIG1fbGFzdENoaWxkID0gMDsKKwogICAg
IGlmIChtX2FjdGl2ZUxpc3RlbmVyKSB7CiAgICAgICAgIG1fYWN0aXZlTGlzdGVuZXItPmludmFs
aWRhdGUoKTsKICAgICAgICAgbV9hY3RpdmVMaXN0ZW5lciA9IDA7CkBAIC0xNjgsNiArMTc5LDgx
IEBAIHZvaWQgV2ViRnJhbWVQcm94eTo6ZGlkQ2hhbmdlVGl0bGUoY29uc3QKICAgICBtX3RpdGxl
ID0gdGl0bGU7CiB9CiAKK3ZvaWQgV2ViRnJhbWVQcm94eTo6YXBwZW5kQ2hpbGQoV2ViRnJhbWVQ
cm94eSogY2hpbGQpCit7CisgICAgQVNTRVJUKGNoaWxkLT5wYWdlKCkgPT0gcGFnZSgpKTsKKwor
ICAgIGNoaWxkLT5tX3BhcmVudEZyYW1lID0gdGhpczsKKworICAgIFdlYkZyYW1lUHJveHkqIG9s
ZExhc3QgPSBtX2xhc3RDaGlsZDsKKyAgICBtX2xhc3RDaGlsZCA9IGNoaWxkOworCisgICAgaWYg
KG9sZExhc3QpIHsKKyAgICAgICAgY2hpbGQtPm1fcHJldmlvdXNTaWJsaW5nID0gb2xkTGFzdDsK
KyAgICAgICAgb2xkTGFzdC0+bV9uZXh0U2libGluZyA9IGNoaWxkOworICAgIH0gZWxzZQorICAg
ICAgICBtX2ZpcnN0Q2hpbGQgPSBjaGlsZDsKK30KKwordm9pZCBXZWJGcmFtZVByb3h5OjpyZW1v
dmVDaGlsZChXZWJGcmFtZVByb3h5KiBjaGlsZCkKK3sKKyAgICBjaGlsZC0+bV9wYXJlbnRGcmFt
ZSA9IDA7CisKKyAgICBXZWJGcmFtZVByb3h5KiYgbmV3TG9jYXRpb25Gb3JOZXh0ID0gbV9maXJz
dENoaWxkID09IGNoaWxkID8gbV9maXJzdENoaWxkIDogY2hpbGQtPm1fcHJldmlvdXNTaWJsaW5n
LT5tX25leHRTaWJsaW5nOworICAgIFdlYkZyYW1lUHJveHkqJiBuZXdMb2NhdGlvbkZvclByZXZp
b3VzID0gbV9sYXN0Q2hpbGQgPT0gY2hpbGQgPyBtX2xhc3RDaGlsZCA6IGNoaWxkLT5tX25leHRT
aWJsaW5nLT5tX3ByZXZpb3VzU2libGluZzsKKyAgICBzdGQ6OnN3YXAobmV3TG9jYXRpb25Gb3JO
ZXh0LCBjaGlsZC0+bV9uZXh0U2libGluZyk7CisgICAgc3RkOjpzd2FwKG5ld0xvY2F0aW9uRm9y
UHJldmlvdXMsIGNoaWxkLT5tX3ByZXZpb3VzU2libGluZyk7CisgICAgY2hpbGQtPm1fcHJldmlv
dXNTaWJsaW5nID0gMDsKKyAgICBjaGlsZC0+bV9uZXh0U2libGluZyA9IDA7Cit9CisKK2Jvb2wg
V2ViRnJhbWVQcm94eTo6aXNEZXNjZW5kYW50T2YoY29uc3QgV2ViRnJhbWVQcm94eSogYW5jZXN0
b3IpIGNvbnN0Cit7CisgICAgaWYgKCFhbmNlc3RvcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKG1fcGFnZSAhPSBhbmNlc3Rvci0+bV9wYWdlKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBmb3IgKGNvbnN0IFdlYkZyYW1lUHJveHkqIGZyYW1lID0gdGhpczsgZnJhbWU7
IGZyYW1lID0gZnJhbWUtPm1fcGFyZW50RnJhbWUpIHsKKyAgICAgICAgaWYgKGZyYW1lID09IGFu
Y2VzdG9yKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIFdlYkZyYW1lUHJveHk6OmR1bXBGcmFtZVRyZWUodW5zaWduZWQgaW5k
ZW50KQoreworICAgIGlmICghaW5kZW50ICYmIG1fcGFyZW50RnJhbWUpCisgICAgICAgIHByaW50
ZigiTk9URTogUHJpbnRpbmcgc3VidHJlZS5cbiIpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGluZGVudDsgKytpKQorICAgICAgICBwcmludGYoIiAiKTsKKyAgICBwcmludGYoInwg
RlJBTUUgJWQgJXNcbiIsIChpbnQpbV9mcmFtZUlELCBtX3VybC51dGY4KCkuZGF0YSgpKTsKKwor
ICAgIGZvciAoV2ViRnJhbWVQcm94eSogY2hpbGQgPSBtX2ZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5tX25leHRTaWJsaW5nKQorICAgICAgICBjaGlsZC0+ZHVtcEZyYW1lVHJlZShp
bmRlbnQgKyA0KTsKK30KKwordm9pZCBXZWJGcmFtZVByb3h5OjpkaWRSZW1vdmVGcm9tSGllcmFy
Y2h5KCkKK3sKKyAgICBpZiAobV9wYXJlbnRGcmFtZSkKKyAgICAgICAgbV9wYXJlbnRGcmFtZS0+
cmVtb3ZlQ2hpbGQodGhpcyk7Cit9CisKK1Bhc3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IFdlYkZy
YW1lUHJveHk6OmNoaWxkRnJhbWVzKCkKK3sKKyAgICBpZiAoIW1fZmlyc3RDaGlsZCkKKyAgICAg
ICAgcmV0dXJuIEltbXV0YWJsZUFycmF5OjpjcmVhdGUoKTsKKworICAgIFZlY3RvcjxSZWZQdHI8
QVBJT2JqZWN0PiA+IHZlY3RvcjsKKyAgICBmb3IgKFdlYkZyYW1lUHJveHkqIGNoaWxkID0gbV9m
aXJzdENoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bV9uZXh0U2libGluZykKKyAgICAgICAg
dmVjdG9yLmFwcGVuZChjaGlsZCk7CisKKyAgICByZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmFkb3B0
KHZlY3Rvcik7Cit9CisKIHZvaWQgV2ViRnJhbWVQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lv
bihXZWJDb3JlOjpQb2xpY3lBY3Rpb24gYWN0aW9uLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewog
ICAgIGlmICghbV9wYWdlKQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAkocmV2aXNp
b24gNzQ1MjcpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV2ViRnJhbWVQcm94eV9oCiAKICNpbmNs
dWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgogI2luY2x1ZGUg
IkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIldlYkZyYW1lTGlzdGVuZXJQcm94eS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgpAQCAtNDIsNiArNDMsNyBAQCBu
YW1lc3BhY2UgQ29yZUlQQyB7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBJbW11dGFi
bGVBcnJheTsKIGNsYXNzIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgV2ViQ2VydGlm
aWNhdGVJbmZvOwogY2xhc3MgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5OwpAQCAtNTgs
NiArNjAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YkZyYW1lUHJveHkocGFnZSwgZnJhbWVJRCkpOwogICAgIH0KKwogICAgIHZpcnR1YWwgfldlYkZy
YW1lUHJveHkoKTsKIAogICAgIGVudW0gTG9hZFN0YXRlIHsKQEAgLTY5LDYgKzcyLDEyIEBAIHB1
YmxpYzoKICAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9
CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9CiAKKyAgICBXZWJG
cmFtZVByb3h5KiBwYXJlbnRGcmFtZSgpIHsgcmV0dXJuIG1fcGFyZW50RnJhbWU7IH0KKyAgICBX
ZWJGcmFtZVByb3h5KiBuZXh0U2libGluZygpIHsgcmV0dXJuIG1fbmV4dFNpYmxpbmc7IH0KKyAg
ICBXZWJGcmFtZVByb3h5KiBwcmV2aW91c1NpYmxpbmcoKSB7IHJldHVybiBtX3ByZXZpb3VzU2li
bGluZzsgfQorICAgIFdlYkZyYW1lUHJveHkqIGZpcnN0Q2hpbGQoKSB7IHJldHVybiBtX2ZpcnN0
Q2hpbGQ7IH0KKyAgICBXZWJGcmFtZVByb3h5KiBsYXN0Q2hpbGQoKSB7IHJldHVybiBtX2xhc3RD
aGlsZDsgfQorCiAgICAgdm9pZCBkaXNjb25uZWN0KCk7CiAKICAgICBib29sIGlzTWFpbkZyYW1l
KCkgY29uc3Q7CkBAIC0xMDgsNiArMTE3LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb24oY29uc3QgU3RyaW5nJik7IC8vIGVnLiBhbmNob3IgbmF2aWdhdGlv
biwgc2Vzc2lvbiBzdGF0ZSBjaGFuZ2UuCiAgICAgdm9pZCBkaWRDaGFuZ2VUaXRsZShjb25zdCBT
dHJpbmcmKTsKIAorICAgIC8vIEZyYW1lIHRyZWUgb3BlcmF0aW9ucy4KKyAgICB2b2lkIGFwcGVu
ZENoaWxkKFdlYkZyYW1lUHJveHkqKTsKKyAgICB2b2lkIHJlbW92ZUNoaWxkKFdlYkZyYW1lUHJv
eHkqKTsKKyAgICB2b2lkIGRpZFJlbW92ZUZyb21IaWVyYXJjaHkoKTsKKyAgICBQYXNzUmVmUHRy
PEltbXV0YWJsZUFycmF5PiBjaGlsZEZyYW1lcygpOworICAgIGJvb2wgaXNEZXNjZW5kYW50T2Yo
Y29uc3QgV2ViRnJhbWVQcm94eSogYW5jZXN0b3IpIGNvbnN0OworICAgIHZvaWQgZHVtcEZyYW1l
VHJlZSh1bnNpZ25lZCBpbmRlbnQgPSAwKTsKKworICAgIC8vIFBvbGljeSBvcGVyYXRpb25zLgog
ICAgIHZvaWQgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIHVp
bnQ2NF90IGxpc3RlbmVySUQpOwogICAgIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSogc2V0
VXBQb2xpY3lMaXN0ZW5lclByb3h5KHVpbnQ2NF90IGxpc3RlbmVySUQpOwogICAgIFdlYkZvcm1T
dWJtaXNzaW9uTGlzdGVuZXJQcm94eSogc2V0VXBGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHko
dWludDY0X3QgbGlzdGVuZXJJRCk7CkBAIC0xMTUsOSArMTMzLDE3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgV2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkqIHBhZ2UsIHVpbnQ2NF90IGZyYW1l
SUQpOwogCisgICAgdm9pZCByZW1vdmVBbGxDaGlsZEZyYW1lcygpOworCiAgICAgdmlydHVhbCBU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAgICBXZWJQYWdlUHJveHkq
IG1fcGFnZTsKKyAgICBXZWJGcmFtZVByb3h5KiBtX3BhcmVudEZyYW1lOworICAgIFdlYkZyYW1l
UHJveHkqIG1fbmV4dFNpYmxpbmc7CisgICAgV2ViRnJhbWVQcm94eSogbV9wcmV2aW91c1NpYmxp
bmc7CisgICAgV2ViRnJhbWVQcm94eSogbV9maXJzdENoaWxkOworICAgIFdlYkZyYW1lUHJveHkq
IG1fbGFzdENoaWxkOworCiAgICAgTG9hZFN0YXRlIG1fbG9hZFN0YXRlOwogICAgIFN0cmluZyBt
X3VybDsKICAgICBTdHJpbmcgbV9wcm92aXNpb25hbFVSTDsKSW5kZXg6IFdlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAkocmV2aXNpb24gNzQ1MjgpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MTIsMTUgKzkxMiw1MSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpCiAgICAgcHJvY2VzcygpLT5mcmFtZUNy
ZWF0ZWQoZnJhbWVJRCwgbV9tYWluRnJhbWUuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkQ3JlYXRlU3ViRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYXJlbnRGcmFt
ZUlEKQogewogICAgIE1FU1NBR0VfQ0hFQ0sobV9tYWluRnJhbWUpOworCisgICAgV2ViRnJhbWVQ
cm94eSogcGFyZW50RnJhbWUgPSBwcm9jZXNzKCktPndlYkZyYW1lKHBhcmVudEZyYW1lSUQpOwor
ICAgIE1FU1NBR0VfQ0hFQ0socGFyZW50RnJhbWUpOworICAgIE1FU1NBR0VfQ0hFQ0socGFyZW50
RnJhbWUtPmlzRGVzY2VuZGFudE9mKG1fbWFpbkZyYW1lLmdldCgpKSk7CisKICAgICBNRVNTQUdF
X0NIRUNLKHByb2Nlc3MoKS0+Y2FuQ3JlYXRlRnJhbWUoZnJhbWVJRCkpOwogICAgIAogICAgIFJl
ZlB0cjxXZWJGcmFtZVByb3h5PiBzdWJGcmFtZSA9IFdlYkZyYW1lUHJveHk6OmNyZWF0ZSh0aGlz
LCBmcmFtZUlEKTsKIAogICAgIC8vIEFkZCB0aGUgZnJhbWUgdG8gdGhlIHByb2Nlc3Mgd2lkZSBt
YXAuCiAgICAgcHJvY2VzcygpLT5mcmFtZUNyZWF0ZWQoZnJhbWVJRCwgc3ViRnJhbWUuZ2V0KCkp
OworCisgICAgLy8gSW5zZXJ0IHRoZSBmcmFtZSBpbnRvIHRoZSBmcmFtZSBoaWVyYXJjaHkuCisg
ICAgcGFyZW50RnJhbWUtPmFwcGVuZENoaWxkKHN1YkZyYW1lLmdldCgpKTsKK30KKwordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFNhdmVGcmFtZVRvUGFnZUNhY2hlKHVpbnQ2NF90IGZyYW1lSUQpCit7
CisgICAgTUVTU0FHRV9DSEVDSyhtX21haW5GcmFtZSk7CisKKyAgICBXZWJGcmFtZVByb3h5KiBz
dWJmcmFtZSA9IHByb2Nlc3MoKS0+d2ViRnJhbWUoZnJhbWVJRCk7CisgICAgTUVTU0FHRV9DSEVD
SyhzdWJmcmFtZSk7CisgICAgTUVTU0FHRV9DSEVDSyhzdWJmcmFtZS0+aXNEZXNjZW5kYW50T2Yo
bV9tYWluRnJhbWUuZ2V0KCkpKTsKKworICAgIHN1YmZyYW1lLT5kaWRSZW1vdmVGcm9tSGllcmFy
Y2h5KCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZXN0b3JlRnJhbWVGcm9tUGFnZUNh
Y2hlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpCit7CisgICAgTUVT
U0FHRV9DSEVDSyhtX21haW5GcmFtZSk7CisKKyAgICBXZWJGcmFtZVByb3h5KiBzdWJmcmFtZSA9
IHByb2Nlc3MoKS0+d2ViRnJhbWUoZnJhbWVJRCk7CisgICAgTUVTU0FHRV9DSEVDSyhzdWJmcmFt
ZSk7CisgICAgTUVTU0FHRV9DSEVDSyghc3ViZnJhbWUtPnBhcmVudEZyYW1lKCkpOworICAgIE1F
U1NBR0VfQ0hFQ0soc3ViZnJhbWUtPnBhZ2UoKSA9PSBtX21haW5GcmFtZS0+cGFnZSgpKTsKKwor
ICAgIFdlYkZyYW1lUHJveHkqIHBhcmVudEZyYW1lID0gcHJvY2VzcygpLT53ZWJGcmFtZShwYXJl
bnRGcmFtZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNLKHBhcmVudEZyYW1lKTsKKyAgICBNRVNTQUdF
X0NIRUNLKHBhcmVudEZyYW1lLT5pc0Rlc2NlbmRhbnRPZihtX21haW5GcmFtZS5nZXQoKSkpOwor
CisgICAgLy8gSW5zZXJ0IHRoZSBmcmFtZSBpbnRvIHRoZSBmcmFtZSBoaWVyYXJjaHkuCisgICAg
cGFyZW50RnJhbWUtPmFwcGVuZENoaWxkKHN1YmZyYW1lKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFN0YXJ0UHJvZ3Jlc3MoKQpAQCAtMTEyMCw2ICsxMTU2LDggQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlbW92ZUZyYW1lRnJvbUhpZQogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0g
cHJvY2VzcygpLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsK
IAorICAgIGZyYW1lLT5kaWRSZW1vdmVGcm9tSGllcmFyY2h5KCk7CisKICAgICBtX2xvYWRlckNs
aWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdl
dCgpKTsKIH0KIApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDc0NTI3
KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTMxMiw3ICszMTIsOSBAQCBwcml2YXRlOgogICAgIENvcmVJUEM6OlN5bmNSZXBseU1vZGUgZGlk
UmVjZWl2ZVN5bmNXZWJQYWdlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopOwogCiAgICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJh
bWVJRCk7Ci0gICAgdm9pZCBkaWRDcmVhdGVTdWJGcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKKyAg
ICB2b2lkIGRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhcmVu
dEZyYW1lSUQpOworICAgIHZvaWQgZGlkU2F2ZUZyYW1lVG9QYWdlQ2FjaGUodWludDY0X3QgZnJh
bWVJRCk7CisgICAgdm9pZCBkaWRSZXN0b3JlRnJhbWVGcm9tUGFnZUNhY2hlKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpOwogCiAgICAgdm9pZCBkaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIGJvb2wg
bG9hZGluZ1N1YnN0aXR1dGVEYXRhRm9yVW5yZWFjaGFibGVVUkwsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwogICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA3NDUyNykKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsOSBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBGcmFtZSBsaWZldGltZSBtZXNzYWdlcy4K
ICAgICBEaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRDcmVhdGVT
dWJGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIERpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpCisgICAgRGlkU2F2ZUZyYW1lVG9QYWdl
Q2FjaGUodWludDY0X3QgZnJhbWVJRCk7CisgICAgRGlkUmVzdG9yZUZyYW1lRnJvbVBhZ2VDYWNo
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYXJlbnRGcmFtZUlEKTsKIAogICAgICMgRnJh
bWUgbG9hZCBtZXNzYWdlcy4KICAgICBEaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgV1RGOjpTdHJpbmcgbWltZVR5cGUsIGJvb2wgaGFzQ3VzdG9tUmVwcmVzZW50YXRpb24s
IFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBXZWJLaXQ6
OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQpJbmRleDogV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tGcmFtZS5jcHAJKHJldmlzaW9uIDc0NTI3KQorKysgV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwLDYgKzkwLDExIEBA
IFdLUGFnZVJlZiBXS0ZyYW1lR2V0UGFnZShXS0ZyYW1lUmVmIGZyYW0KICAgICByZXR1cm4gdG9B
UEkodG9JbXBsKGZyYW1lUmVmKS0+cGFnZSgpKTsKIH0KIAorV0tBcnJheVJlZiBXS0ZyYW1lQ29w
eUNoaWxkRnJhbWVzKFdLRnJhbWVSZWYgZnJhbWVSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRv
SW1wbChmcmFtZVJlZiktPmNoaWxkRnJhbWVzKCkucmVsZWFzZVJlZigpKTsKK30KKwogV0tDZXJ0
aWZpY2F0ZUluZm9SZWYgV0tGcmFtZUdldENlcnRpZmljYXRlSW5mbyhXS0ZyYW1lUmVmIGZyYW1l
UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoZnJhbWVSZWYpLT5jZXJ0aWZpY2F0ZUlu
Zm8oKSk7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZS5oCShyZXZpc2lvbiA3NDUyNykK
KysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAt
NTYsNiArNTYsOCBAQCBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tGcmFtZUNvcHlUaXRsZShXCiAK
IFdLX0VYUE9SVCBXS1BhZ2VSZWYgV0tGcmFtZUdldFBhZ2UoV0tGcmFtZVJlZiBmcmFtZSk7CiAK
K1dLX0VYUE9SVCBXS0FycmF5UmVmIFdLRnJhbWVDb3B5Q2hpbGRGcmFtZXMoV0tGcmFtZVJlZiBm
cmFtZSk7CisKIFdLX0VYUE9SVCBXS0NlcnRpZmljYXRlSW5mb1JlZiBXS0ZyYW1lR2V0Q2VydGlm
aWNhdGVJbmZvKFdLRnJhbWVSZWYgZnJhbWUpOwogCiBXS19FWFBPUlQgYm9vbCBXS0ZyYW1lQ2Fu
UHJvdmlkZVNvdXJjZShXS0ZyYW1lUmVmIGZyYW1lKTsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAkocmV2aXNpb24gNzQ1MjcpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQzLDEyICsxMDQz
LDEwIEBAIFN0cmluZyBXZWJGcmFtZUxvYWRlckNsaWVudDo6dXNlckFnZW50KGMKIAogdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVBsYXRmb3JtRGF0YVRvQ2FjaGVkRnJhbWUoQ2FjaGVk
RnJhbWUqKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShDYWNoZWRGcmFt
ZSopCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCkBAIC0xMDc5LDYgKzEwNzcs
MzEgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQwogICAgIG1fZnJh
bWUtPmNvcmVGcmFtZSgpLT52aWV3KCktPnNldFRyYW5zcGFyZW50KCF3ZWJQYWdlLT5kcmF3c0Jh
Y2tncm91bmQoKSk7CiB9CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFNhdmVUb1Bh
Z2VDYWNoZSgpCit7CisgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAg
ICBpZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2ZyYW1lLT5pc01h
aW5GcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZFNhdmVGcmFtZVRvUGFnZUNhY2hlKG1fZnJhbWUtPmZyYW1lSUQo
KSkpOworfQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJvbVBhZ2VD
YWNoZSgpCit7CisgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBp
ZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2ZyYW1lLT5pc01haW5G
cmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJGcmFtZSogcGFyZW50RnJhbWUgPSBz
dGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KG1fZnJhbWUtPmNvcmVGcmFtZSgpLT50
cmVlKCktPnBhcmVudCgpLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOworICAgIHdl
YlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVzdG9yZUZyYW1lRnJvbVBh
Z2VDYWNoZShtX2ZyYW1lLT5mcmFtZUlEKCksIHBhcmVudEZyYW1lLT5mcmFtZUlEKCkpKTsKK30K
Kwogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChi
b29sIHZhbHVlKQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7Cklu
ZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gNzQ1MjcpCisrKyBXZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMTcyLDYgKzE3Miw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25U
b0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShXZWJDb3JlOjpDYWNoZWRGcmFtZSopOwogICAgIHZp
cnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCk7CiAKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlc3Rv
cmVGcm9tUGFnZUNhY2hlKCk7CisKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVG
cmFtZXNldChib29sKTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdDsK
SW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAJKHJldmlzaW9uIDc0
NTI3KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05MSw3ICs5MSw4IEBAIFBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpj
cmVhdGVTdWIKIHsKICAgICBSZWZQdHI8V2ViRnJhbWU+IGZyYW1lID0gY3JlYXRlKCk7CiAKLSAg
ICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZVN1YkZyYW1lKGZy
YW1lLT5mcmFtZUlEKCkpKTsKKyAgICBXZWJGcmFtZSogcGFyZW50RnJhbWUgPSBzdGF0aWNfY2Fz
dDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KG93bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUo
KS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKKyAgICBwYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZVN1YmZyYW1lKGZyYW1lLT5mcmFtZUlEKCksIHBh
cmVudEZyYW1lLT5mcmFtZUlEKCkpKTsKIAogICAgIGZyYW1lLT5pbml0KHBhZ2UsIGZyYW1lTmFt
ZSwgb3duZXJFbGVtZW50KTsKIApJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3NDUzMSkKKysr
IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBA
QAorMjAxMC0xMi0yMiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDIgbmVlZHMgdG8gbWly
cm9yIHRoZSBmcmFtZSB0cmVlIGluIHRoZSBVSVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNTQ2CisKKyAgICAgICAgLSBBZGQgY2xpZW50
IGZ1bmN0aW9ucyB0byBub3RpZnkgdGhhdCBhIGZyYW1lIGhhcyBiZWVuIGFkZGVkIG9yCisgICAg
ICAgICAgcmVtb3ZlZCBmcm9tIHRoZSBwYWdlIGNhY2hlLgorCisgICAgICAgICogc3JjL0ZyYW1l
TG9hZGVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50SW1wbDo6ZGlkU2F2ZVRvUGFnZUNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVM
b2FkZXJDbGllbnRJbXBsOjpkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSk6CisgICAgICAgICogc3Jj
L0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgorCiAyMDEwLTEyLTIyICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByNzQ1MDMuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50
SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNs
aWVudEltcGwuY3BwCShyZXZpc2lvbiA3NDQzMCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRnJh
bWVMb2FkZXJDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM0OSw2ICsxMzQ5LDE0
IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjp0cmFuc2l0aW9uVG8KICAgICBtYWtlRG9j
dW1lbnRWaWV3KCk7CiB9CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaWRTYXZl
VG9QYWdlQ2FjaGUoKQoreworfQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlk
UmVzdG9yZUZyb21QYWdlQ2FjaGUoKQoreworfQorCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1w
bDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKQogewogfQpJbmRleDogV2ViS2l0L2No
cm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCShyZXZpc2lvbiA3NDQzMCkKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE2OSw2ICsxNjksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNhdmVQbGF0
Zm9ybURhdGFUb0NhY2hlZEZyYW1lKFdlYkNvcmU6OkNhY2hlZEZyYW1lKik7CiAgICAgdmlydHVh
bCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShXZWJDb3JlOjpDYWNo
ZWRGcmFtZSopOwogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQ
YWdlKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBh
Z2UoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWQoCkluZGV4OiBXZWJLaXQvZWZs
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZWZsL0NoYW5nZUxvZwkocmV2aXNpb24g
NzQ1MzEpCisrKyBXZWJLaXQvZWZsL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE4IEBACisyMDEwLTEyLTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MiBuZWVkcyB0
byBtaXJyb3IgdGhlIGZyYW1lIHRyZWUgaW4gdGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE1NDYKKworICAgICAgICAtIEFkZCBj
bGllbnQgZnVuY3Rpb25zIHRvIG5vdGlmeSB0aGF0IGEgZnJhbWUgaGFzIGJlZW4gYWRkZWQgb3IK
KyAgICAgICAgICByZW1vdmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlkU2F2ZVRvUGFnZUNhY2hlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaDoKKwogMjAxMC0xMi0y
MiAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCkluZGV4OiBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAkocmV2aXNpb24gNzQ0MzApCisrKyBX
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTIzLDYgKzkyMywxNCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjp0
cmFuc2l0aW9uVG9DCiAgICAgICAgIGV3a192aWV3X2ZyYW1lX21haW5fY2xlYXJlZChtX3ZpZXcp
OwogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaWRTYXZlVG9QYWdlQ2FjaGUoKQor
eworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaWRSZXN0b3JlRnJvbVBhZ2VDYWNo
ZSgpCit7Cit9CisKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQmVjb21l
RnJhbWVzZXQoYm9vbCkKIHsKIH0KSW5kZXg6IFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRFZmwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgJKHJldmlzaW9uIDc0NDMwKQorKysgV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDAsNiArMjAwLDkgQEAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnRFZmwgOiBwdWJsaWMgRnJh
bQogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUo
Q2FjaGVkRnJhbWUqKTsKICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRm9y
TmV3UGFnZSgpOwogCisgICAgdmlydHVhbCB2b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpOworCiAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCk7CiAKICAgICB2aXJ0dWFsIGJvb2wg
Y2FuQ2FjaGVQYWdlKCkgY29uc3Q7CkluZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gNzQ1MzEpCisrKyBXZWJLaXQv
Z3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEwLTEyLTIy
ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MiBuZWVkcyB0byBtaXJyb3IgdGhlIGZyYW1l
IHRyZWUgaW4gdGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTE1NDYKKworICAgICAgICAtIEFkZCBjbGllbnQgZnVuY3Rpb25zIHRv
IG5vdGlmeSB0aGF0IGEgZnJhbWUgaGFzIGJlZW4gYWRkZWQgb3IKKyAgICAgICAgICByZW1vdmVk
IGZyb20gdGhlIHBhZ2UgY2FjaGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aWRTYXZlVG9QYWdlQ2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmg6CisKIDIwMTAtMTItMjIgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KSW5kZXg6IFdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
CShyZXZpc2lvbiA3NDQzMCkKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQxLDYgKzEzNDEsMTQgQEAgdm9p
ZCBGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbQogICAgIHBvc3RDb21taXRGcmFt
ZVZpZXdTZXR1cChtX2ZyYW1lLCBmcmFtZS0+dmlldygpLCB0cnVlKTsKIH0KIAordm9pZCBGcmFt
ZUxvYWRlckNsaWVudDo6ZGlkU2F2ZVRvUGFnZUNhY2hlKCkKK3sKK30KKwordm9pZCBGcmFtZUxv
YWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKQoreworfQorCiB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpCiB7CiB9CkluZGV4
OiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5o
CShyZXZpc2lvbiA3NDQzMCkKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuaAkod29ya2luZyBjb3B5KQpAQCAtMTgxLDYgKzE4MSw5IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRnJv
bUNhY2hlZEZyYW1lKFdlYkNvcmU6OkNhY2hlZEZyYW1lKik7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCk7CiAKKyAgICAgICAgdmlydHVhbCB2
b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzdG9y
ZUZyb21QYWdlQ2FjaGUoKTsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRCZWNv
bWVGcmFtZXNldChib29sKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkg
Y29uc3Q7CkluZGV4OiBXZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9oYWlrdS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc0NTMxKQorKysgV2ViS2l0L2hhaWt1L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEwLTEyLTIyICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViS2l0MiBuZWVkcyB0byBtaXJyb3IgdGhlIGZyYW1lIHRyZWUgaW4g
dGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTE1NDYKKworICAgICAgICAtIEFkZCBjbGllbnQgZnVuY3Rpb25zIHRvIG5vdGlmeSB0
aGF0IGEgZnJhbWUgaGFzIGJlZW4gYWRkZWQgb3IKKyAgICAgICAgICByZW1vdmVkIGZyb20gdGhl
IHBhZ2UgY2FjaGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50SGFpa3U6OmRp
ZFNhdmVUb1BhZ2VDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEhh
aWt1OjpkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRIYWlrdS5oOgorCiAyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8
bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCklu
ZGV4OiBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50SGFpa3UuY3BwCShyZXZpc2lvbiA3NDQzMCkKKysrIFdlYktpdC9oYWlrdS9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODU3
LDYgKzg1NywxNCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SGFpa3U6OnRyYW5zaXRpb25UCiAg
ICAgICAgIG1fZnJhbWUtPnZpZXcoKS0+c2V0U2Nyb2xsYmFyTW9kZXMob3duZXItPnNjcm9sbGlu
Z01vZGUoKSwgb3duZXItPnNjcm9sbGluZ01vZGUoKSk7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXJD
bGllbnRIYWlrdTo6ZGlkU2F2ZVRvUGFnZUNhY2hlKCkKK3sKK30KKwordm9pZCBGcmFtZUxvYWRl
ckNsaWVudEhhaWt1OjpkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpCit7Cit9CisKIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnRIYWlrdTo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKQogewog
fQpJbmRleDogV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFp
a3UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRIYWlrdS5oCShyZXZpc2lvbiA3NDQzMCkKKysrIFdlYktpdC9oYWlrdS9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEhhaWt1LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw2
ICsxNTEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFu
c2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoV2ViQ29yZTo6Q2FjaGVkRnJhbWUqKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKTsK
IAorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCk7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpOworCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpOwogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5KCk7CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNzQ1MzEpCisrKyBX
ZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEw
LTEyLTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MiBuZWVkcyB0byBtaXJyb3IgdGhl
IGZyYW1lIHRyZWUgaW4gdGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE1NDYKKworICAgICAgICAtIEFkZCBjbGllbnQgZnVuY3Rp
b25zIHRvIG5vdGlmeSB0aGF0IGEgZnJhbWUgaGFzIGJlZW4gYWRkZWQgb3IKKyAgICAgICAgICBy
ZW1vdmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFNhdmVU
b1BhZ2VDYWNoZSk6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZy
b21QYWdlQ2FjaGUpOgorCiAyMDEwLTEyLTIyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2
aXNpb24gNzQ0MzApCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsOSBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoV2ViQ29y
ZTo6Q2FjaGVkRnJhbWUqKTsKICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVk
Rm9yTmV3UGFnZSgpOwogCisgICAgdmlydHVhbCB2b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpOworCiAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCk7CiAKICAgICB2aXJ0dWFsIGJv
b2wgY2FuSGFuZGxlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25z
dDsKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbQkocmV2aXNpb24gNzQ0MzApCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUzLDYgKzEyNTMs
MTQgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQwogICAgIH0KIH0K
IAordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkU2F2ZVRvUGFnZUNhY2hlKCkKK3sKK30K
Kwordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKQor
eworfQorCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEJlY29tZUZyYW1l
c2V0KGJvb2wpCiB7CiB9CkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDc0NTMxKQorKysgV2ViS2l0L3F0L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEwLTEyLTIyICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViS2l0MiBuZWVkcyB0byBtaXJyb3IgdGhlIGZyYW1lIHRyZWUgaW4g
dGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTE1NDYKKworICAgICAgICAtIEFkZCBjbGllbnQgZnVuY3Rpb25zIHRvIG5vdGlmeSB0
aGF0IGEgZnJhbWUgaGFzIGJlZW4gYWRkZWQgb3IKKyAgICAgICAgICByZW1vdmVkIGZyb20gdGhl
IHBhZ2UgY2FjaGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpZFNhdmVU
b1BhZ2VDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpkaWRS
ZXN0b3JlRnJvbVBhZ2VDYWNoZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oOgorCiAyMDEwLTEyLTIwICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW4u
cG91bGFpbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4K
SW5kZXg6IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHAJKHJldmlzaW9uIDc0NDMwKQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTUsNiArMjk1LDE0IEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6dHJhbnNpdGlvblRvQ28KICAgICBtX2ZyYW1lLT52aWV3
KCktPnNldEFjdHVhbFZpc2libGVDb250ZW50UmVjdChJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCks
IGN1cnJlbnRWaXNpYmxlQ29udGVudFNpemUpKTsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNsaWVu
dFF0OjpkaWRTYXZlVG9QYWdlQ2FjaGUoKQoreworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OmRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkKK3sKK30KKwogdm9pZCBGcmFtZUxvYWRlckNs
aWVudFF0OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpCiB7CiB9CkluZGV4OiBXZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgJKHJldmlzaW9u
IDc0NDMwKQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQu
aAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDYgKzE5Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKFdlYkNvcmU6OkNhY2hl
ZEZyYW1lKik7CiAgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1Bh
Z2UoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBkaWRTYXZlVG9QYWdlQ2FjaGUoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKwogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpOwogCiAgICAgdmlydHVhbCBib29sIGNhbkNh
Y2hlUGFnZSgpIGNvbnN0OwpJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc0NTMxKQorKysgV2ViS2l0L3dpbi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0xMi0yMiAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYktpdDIgbmVlZHMgdG8gbWlycm9yIHRoZSBmcmFtZSB0cmVl
IGluIHRoZSBVSVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTUxNTQ2CisKKyAgICAgICAgLSBBZGQgY2xpZW50IGZ1bmN0aW9ucyB0byBub3Rp
ZnkgdGhhdCBhIGZyYW1lIGhhcyBiZWVuIGFkZGVkIG9yCisgICAgICAgICAgcmVtb3ZlZCBmcm9t
IHRoZSBwYWdlIGNhY2hlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFNhdmVUb1Bh
Z2VDYWNoZSk6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21Q
YWdlQ2FjaGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lmg6CisKIDIwMTAtMTItMjIgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBDaGFuZ2VkIFdlYktpdFRvb2xzIHRvIFRvb2xzLgpJbmRleDogV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHJldmlzaW9uIDc0
NDMwKQorKysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTcyMCw2ICs3MjAsMTQgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6dHJhbnNpdGlvblRvQwogICAgIGNvcmUobV93ZWJGcmFtZSktPmNyZWF0ZVZpZXco
SW50UmVjdChyZWN0KS5zaXplKCksIGJhY2tncm91bmRDb2xvciwgdHJhbnNwYXJlbnQsIEludFNp
emUoKSwgZmFsc2UpOwogfQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRTYXZlVG9Q
YWdlQ2FjaGUoKQoreworfQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0b3Jl
RnJvbVBhZ2VDYWNoZSgpCit7Cit9CisKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkKIHsKIH0KSW5kZXg6IFdlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDc0NDMwKQor
KysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0
cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoV2ViQ29yZTo6Q2FjaGVkRnJhbWUq
KTsKICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpOwog
CisgICAgdmlydHVhbCB2b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpOworCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
RGlkQmVjb21lRnJhbWVzZXQoYm9vbCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdl
KCkgY29uc3Q7CkluZGV4OiBXZWJLaXQvd2luY2UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC93aW5jZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc0NTMxKQorKysgV2ViS2l0L3dpbmNlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEwLTEyLTIyICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2ViS2l0MiBuZWVkcyB0byBtaXJyb3IgdGhlIGZyYW1lIHRyZWUg
aW4gdGhlIFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTE1NDYKKworICAgICAgICAtIEFkZCBjbGllbnQgZnVuY3Rpb25zIHRvIG5vdGlm
eSB0aGF0IGEgZnJhbWUgaGFzIGJlZW4gYWRkZWQgb3IKKyAgICAgICAgICByZW1vdmVkIGZyb20g
dGhlIHBhZ2UgY2FjaGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6
ZGlkU2F2ZVRvUGFnZUNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRX
aW5DRTo6ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaDoKKwogMjAxMC0xMC0yOCAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpJ
bmRleDogV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFdpbkNFLmNwcAkocmV2aXNpb24gNzQ0MzApCisrKyBXZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYz
MCw2ICs2MzAsMTQgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbkNFOjp0cmFuc2l0aW9uVAog
ICAgICAgICBtX2ZyYW1lLT5vd25lclJlbmRlcmVyKCktPnNldFdpZGdldChmcmFtZVZpZXcpOwog
fQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OmRpZFNhdmVUb1BhZ2VDYWNoZSgpCit7
Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6ZGlkUmVzdG9yZUZyb21QYWdlQ2Fj
aGUoKQoreworfQorCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OmRpc3BhdGNoRGlkQmVj
b21lRnJhbWVzZXQoYm9vbCkKIHsKIH0KSW5kZXg6IFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaAkocmV2aXNpb24gNzQ0MzApCisr
KyBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzUsNiArMTc1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoV2ViQ29yZTo6Q2FjaGVkRnJh
bWUqKTsKICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgp
OwogCisgICAgdmlydHVhbCB2b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpOworCiAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQ
YWdlKCkgY29uc3Q7CkluZGV4OiBXZWJLaXQvd3gvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC93eC9DaGFuZ2VMb2cJKHJldmlzaW9uIDc0NTMxKQorKysgV2ViS2l0L3d4L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEwLTEyLTIyICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViS2l0MiBuZWVkcyB0byBtaXJyb3IgdGhlIGZyYW1lIHRyZWUgaW4gdGhl
IFVJUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTE1NDYKKworICAgICAgICAtIEFkZCBjbGllbnQgZnVuY3Rpb25zIHRvIG5vdGlmeSB0aGF0
IGEgZnJhbWUgaGFzIGJlZW4gYWRkZWQgb3IKKyAgICAgICAgICByZW1vdmVkIGZyb20gdGhlIHBh
Z2UgY2FjaGUuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRXeDo6ZGlkU2F2ZVRvUGFn
ZUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50V3g6OmRpZFJlc3Rv
cmVGcm9tUGFnZUNhY2hlKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50V3guaDoKKwogMjAxMC0xMi0yMCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZC4KSW5kZXg6IFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCShyZXZpc2lvbiA3NDQzMCkKKysrIFdlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05
NjYsNiArOTY2LDE0IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRXeDo6dHJhbnNpdGlvblRvQ28K
ICAgICAgICAgbV9mcmFtZS0+Y3JlYXRlVmlldyhzaXplLCBiYWNrZ3JvdW5kQ29sb3IsIHRyYW5z
cGFyZW50LCBJbnRTaXplKCksIGZhbHNlKTsgCiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRX
eDo6ZGlkU2F2ZVRvUGFnZUNhY2hlKCkKK3sKK30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFd4
OjpkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpCit7Cit9CisKIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnRXeDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKQogewogfQpJbmRleDogV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaAkocmV2aXNpb24gNzQ0
MzApCisrKyBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmgJKHdv
cmtpbmcgY29weSkKQEAgLTE1MSw3ICsxNTEsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2F2ZVBsYXRmb3JtRGF0YVRvQ2FjaGVkRnJhbWUoV2ViQ29yZTo6
Q2FjaGVkRnJhbWUqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRl
ZEZyb21DYWNoZWRGcmFtZShXZWJDb3JlOjpDYWNoZWRGcmFtZSopOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpOwotICAgICAgICAKKworICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCk7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpOworCiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVHbG9iYWxIaXN0b3J5KCk7Cg==
</data>
<flag name="review"
          id="68453"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>