<?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>146873</bug_id>
          
          <creation_ts>2015-07-10 22:37:16 -0700</creation_ts>
          <short_desc>[WK2] Diagnostic logging messages are causing too much IPC</short_desc>
          <delta_ts>2015-07-10 23:56:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>barraclough</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1108889</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-10 22:37:16 -0700</bug_when>
    <thetext>Diagnostic logging messages are causing too much IPC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108890</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-10 22:37:44 -0700</bug_when>
    <thetext>rdar://problem/21779205</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108892</commentid>
    <comment_count>2</comment_count>
      <attachid>256644</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-10 22:48:41 -0700</bug_when>
    <thetext>Created attachment 256644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108903</commentid>
    <comment_count>3</comment_count>
      <attachid>256644</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-07-10 23:46:02 -0700</bug_when>
    <thetext>Comment on attachment 256644
Patch

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

&gt; Source/WebCore/page/DiagnosticLoggingClient.h:45
&gt; +    static bool shouldLogGivenSampling(ShouldSample);

I&apos;m not certain if this is the most descriptive name.  How about isLogSelectedInSample or shouldLogAfterSampling?

&gt; Source/WebCore/page/DiagnosticLoggingClient.h:56
&gt; +    // Log 5% of messages when sampling.

I don&apos;t think we need this comment.  The code speaks for itself.

&gt; Source/WebKit2/NetworkProcess/NetworkProcess.cpp:485
&gt; +    parentProcessConnection()-&gt;send(Messages::NetworkProcessProxy::LogPreSampledDiagnosticMessage(webPageID, message, description), 0);

I don&apos;t think it makes sense to call these PreSampled.  If anything, these are post sampling.
Why don&apos;t we simply call it LogSampledDiagnosticMessage?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108904</commentid>
    <comment_count>4</comment_count>
      <attachid>256649</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-10 23:54:23 -0700</bug_when>
    <thetext>Created attachment 256649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108906</commentid>
    <comment_count>5</comment_count>
      <attachid>256649</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-10 23:56:54 -0700</bug_when>
    <thetext>Comment on attachment 256649
Patch

Clearing flags on attachment: 256649

Committed r186707: &lt;http://trac.webkit.org/changeset/186707&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108907</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-10 23:56:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256644</attachid>
            <date>2015-07-10 22:48:41 -0700</date>
            <delta_ts>2015-07-10 23:54:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146873-20150710224742.patch</filename>
            <type>text/plain</type>
            <size>21166</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2Njk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI4M2I2NzdjMGY4NzEw
MTg1OGI2NmQxZmExNjcwZTE3NzE4NjAyMC4uY2NkODkwMTA4ODU3ZWE5MjJmZDBmMmY2MjY1YzYx
MjY0M2JmMDA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gRGlhZ25vc3RpYyBs
b2dnaW5nIG1lc3NhZ2VzIGFyZSBjYXVzaW5nIHRvbyBtdWNoIElQQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2ODczCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yMTc3OTIwNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNb3ZlIHNob3VsZExvZ0dpdmVuU2FtcGxpbmcoKSB1dGlsaXR5IGZ1bmN0aW9u
IHRvIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50CisgICAgICAgIHNvIGl0IGNhbiBiZSBlYXNpbHkg
cmV1c2VkLgorCisgICAgICAgICogcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OnNob3VsZExvZ0dpdmVuU2Ft
cGxpbmcpOgorCiAyMDE1LTA3LTEwICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkZWQgQVJJQSAxLjEgImNlbGwiIGFuZCAidGFibGUiIHJvbGVzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDBlMjM5Yjc4ODVkNmE5YTU4MDEyZWNlNmRkMGI0ZTIwNGM5Y2JiMDkuLjA4ZWQ4YWY5NWNm
NDRlMTk4MjBiYjdiNmNmYzAwNTE5NDQ0MmRlNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBA
QAorMjAxNS0wNy0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFtXSzJdIERpYWdub3N0aWMgbG9nZ2luZyBtZXNzYWdlcyBhcmUgY2F1c2luZyB0b28gbXVjaCBJ
UEMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Njg3
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjE3NzkyMDU+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGlhZ25vc3RpYyBsb2dnaW5nIG1lc3NhZ2Vz
IGFyZSBjYXVzaW5nIHRvbyBtdWNoIElQQy4gVG8gYWRkcmVzcyB0aGUKKyAgICAgICAgcHJvYmxl
bSwgd2Ugbm93IGRvIHRoZSBzYW1wbGluZyBvZiB0aGUgc2VuZGVycycgc2lkZSAoV2ViQ29udGVu
dAorICAgICAgICBwcm9jZXNzIGFuZCBOZXR3b3JraW5nIHByb2Nlc3MpIGluc3RlYWQgb2YgdGhl
IHJlY2VpdmVyJ3Mgc2lkZQorICAgICAgICAoVUlQcm9jZXNzKS4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ1ByZVNhbXBsZWREaWFnbm9zdGljTWVzc2Fn
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ1ByZVNhbXBsZWRE
aWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5Ojpsb2dQcmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2dQcmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvZ1ByZVNhbXBsZWREaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvZ1ByZVNh
bXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWUpOgorCiAyMDE1LTA3LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBDb3JlQW5pbWF0aW9uIGZlbmNlcyBpbnN0ZWFkIG9m
IHN5bmNocm9ub3VzIElQQyB0byBzeW5jaHJvbml6ZSByZXNpemUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAppbmRleCBiNGZmNWQ0MjFmZDNmMGU3NzYz
MWQ0OGRhMjU3ZDNiNTlmZTRlOTY3Li4yNzVmMTc0NmZhY2E4ZGEyMmI2Y2I3NjQyZmY3MWMyNmFj
OTZkOTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ1Jlc3Vs
dFR5cGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9SYW5kb21O
dW1iZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MSwxMCArNDIsMjIgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIG1haW5GcmFtZURlc3Ryb3llZCgpID0gMDsKIAorICAg
IHN0YXRpYyBib29sIHNob3VsZExvZ0dpdmVuU2FtcGxpbmcoU2hvdWxkU2FtcGxlKTsKKwogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgfkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkgeyB9CiB9Owog
CitpbmxpbmUgYm9vbCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6c2hvdWxkTG9nR2l2ZW5TYW1w
bGluZyhTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQoreworICAgIGlmIChzaG91bGRTYW1wbGUg
PT0gU2hvdWxkU2FtcGxlOjpObykKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBMb2cg
NSUgb2YgbWVzc2FnZXMgd2hlbiBzYW1wbGluZy4KKyAgICBzdGF0aWMgY29uc3QgZG91YmxlIHNl
bGVjdGlvblByb2JhYmlsaXR5ID0gMC4wNTsKKyAgICByZXR1cm4gcmFuZG9tTnVtYmVyKCkgPD0g
c2VsZWN0aW9uUHJvYmFiaWxpdHk7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggODg0OTI5ZDEwOTRm
MmIwM2NkM2ZhNTBjZTQ5MjlhY2VhYTc3N2M2Mi4uZThjYWU2YTI1YmM1OTdmZjEzNjc4MjcwNDlm
NjhhMWUxOTkwZGM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIldlYkNvb2tpZU1h
bmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2Vic2l0ZURhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBA
IC00NzgsMTcgKzQ3OSwyNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpnZXROZXR3b3JrUHJvY2Vz
c1N0YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCkKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6
bG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBz
aG91bGRTYW1wbGUpCiB7Ci0gICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2Uod2ViUGFnZUlE
LCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgc2hvdWxkU2FtcGxlID09IFNob3VsZFNhbXBsZTo6WWVz
KSwgMCk7CisgICAgaWYgKCFEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6c2hvdWxkTG9nR2l2ZW5T
YW1wbGluZyhzaG91bGRTYW1wbGUpKQorICAgICAgICByZXR1cm47CisKKyAgICBwYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dQ
cmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2Uod2ViUGFnZUlELCBtZXNzYWdlLCBkZXNjcmlwdGlv
biksIDApOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhSZXN1bHQodWludDY0X3Qgd2ViUGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlw
ZSByZXN1bHQsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCiB7Ci0gICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHdlYlBhZ2VJRCwgbWVzc2FnZSwgZGVz
Y3JpcHRpb24sIHJlc3VsdCwgc2hvdWxkU2FtcGxlID09IFNob3VsZFNhbXBsZTo6WWVzKSwgMCk7
CisgICAgaWYgKCFEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6c2hvdWxkTG9nR2l2ZW5TYW1wbGlu
ZyhzaG91bGRTYW1wbGUpKQorICAgICAgICByZXR1cm47CisKKyAgICBwYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dQcmVTYW1w
bGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHdlYlBhZ2VJRCwgbWVzc2FnZSwgZGVzY3Jp
cHRpb24sIHJlc3VsdCksIDApOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgV2Vi
Q29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIHsKLSAgICBwYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZSh3ZWJQYWdlSUQsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1
ZSwgc2hvdWxkU2FtcGxlID09IFNob3VsZFNhbXBsZTo6WWVzKSwgMCk7CisgICAgaWYgKCFEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudDo6c2hvdWxkTG9nR2l2ZW5TYW1wbGluZyhzaG91bGRTYW1wbGUp
KQorICAgICAgICByZXR1cm47CisKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dQcmVTYW1wbGVkRGlhZ25vc3RpY01l
c3NhZ2VXaXRoVmFsdWUod2ViUGFnZUlELCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUpLCAw
KTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6dGVybWluYXRlKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
aW5kZXggMDk4ZTQ1ZWUyZDE2ZGYwYmY5OTIzMThmZDA4ZmMzZGQ5MzE1MTQxMC4uMzdmYzM2YTAx
YThhMGZhZTM2ZTU0MWMxM2VhNDMwNDdhNjgxODllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTI4
NSw3ICsyODUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGlu
ZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbgogI2VuZGlmCiB9CiAKLXZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3QgcGFnZUlE
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wg
c2hvdWxkU2FtcGxlKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dQcmVTYW1wbGVkRGlh
Z25vc3RpY01lc3NhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24pCiB7CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2Vi
UHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CiAgICAgLy8gRklYTUU6IFdlIGRvIHRoaXMg
bnVsbC1jaGVjayBiZWNhdXNlIGJ5IHRoZSB0aW1lIHRoZSBkZWNpc2lvbiB0byBsb2cgaXMgbWFk
ZSwgdGhlIHBhZ2UgbWF5IGJlIGdvbmUuIFdlIHNob3VsZCByZWZhY3RvciB0byBhdm9pZCB0aGlz
LApAQCAtMjkzLDEwICsyOTMsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dEaWFn
bm9zdGljTWVzc2FnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWUKICAgICBpZiAo
IXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhZ2UtPmxvZ0RpYWdub3N0aWNNZXNzYWdl
KG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCBzaG91bGRTYW1wbGUpOworICAgIHBhZ2UtPmxvZ1ByZVNh
bXBsZWREaWFnbm9zdGljTWVzc2FnZShtZXNzYWdlLCBkZXNjcmlwdGlvbik7CiB9CiAKLXZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2
NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCB1aW50MzJfdCByZXN1bHQsIGJvb2wgc2hvdWxkU2FtcGxlKQordm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5Ojpsb2dQcmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2
NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCB1aW50MzJfdCByZXN1bHQpCiB7CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJv
Y2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7CiAgICAgLy8gRklYTUU6IFdlIGRvIHRoaXMgbnVs
bC1jaGVjayBiZWNhdXNlIGJ5IHRoZSB0aW1lIHRoZSBkZWNpc2lvbiB0byBsb2cgaXMgbWFkZSwg
dGhlIHBhZ2UgbWF5IGJlIGdvbmUuIFdlIHNob3VsZCByZWZhY3RvciB0byBhdm9pZCB0aGlzLApA
QCAtMzA0LDEwICszMDQsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBjb25zdAogICAgIGlmICghcGFn
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
UmVzdWx0KG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCByZXN1bHQsIHNob3VsZFNhbXBsZSk7CisgICAg
cGFnZS0+bG9nUHJlU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChtZXNzYWdlLCBk
ZXNjcmlwdGlvbiwgcmVzdWx0KTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwg
Ym9vbCBzaG91bGRTYW1wbGUpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ1ByZVNhbXBs
ZWREaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2Uo
cGFnZUlEKTsKICAgICAvLyBGSVhNRTogV2UgZG8gdGhpcyBudWxsLWNoZWNrIGJlY2F1c2UgYnkg
dGhlIHRpbWUgdGhlIGRlY2lzaW9uIHRvIGxvZyBpcyBtYWRlLCB0aGUgcGFnZSBtYXkgYmUgZ29u
ZS4gV2Ugc2hvdWxkIHJlZmFjdG9yIHRvIGF2b2lkIHRoaXMsCkBAIC0zMTUsNyArMzE1LDcgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1
aW50NjRfdCBwYWdlSUQsIGNvbnN0IFMKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHBhZ2UtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKG1lc3NhZ2UsIGRlc2Ny
aXB0aW9uLCB2YWx1ZSwgc2hvdWxkU2FtcGxlKTsKKyAgICBwYWdlLT5sb2dQcmVTYW1wbGVkRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUobWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlKTsKIH0K
IAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5l
bnRseSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNmJkNWJmMjQ1Nzk2NGY2YTE3MjZmNDlhYjNhYzkxZjlj
MjAzYTNiNS4uY2FhZTE2NmU2ZTZkZTNhZmU3OThiMTRhMTY4M2NiODJiNjBmMTNmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaApAQCAtMTA5LDkgKzEwOSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGZXRjaFdl
YnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFdlYnNpdGVEYXRhJik7CiAgICAg
dm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lk
IGRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAg
ICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBib29sIHNob3VsZFNhbXBsZSk7
Ci0gICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlE
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQz
Ml90IHJlc3VsdCwgYm9vbCBzaG91bGRTYW1wbGUpOwotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgc2hvdWxk
U2FtcGxlKTsKKyAgICB2b2lkIGxvZ1ByZVNhbXBsZWREaWFnbm9zdGljTWVzc2FnZSh1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlv
bik7CisgICAgdm9pZCBsb2dQcmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVp
bnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCB1aW50MzJfdCByZXN1bHQpOworICAgIHZvaWQgbG9nUHJlU2FtcGxlZERpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKIAogICAg
IC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExh
dW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNTY4MjkwODNkNDQ4
NzllMDhlYjRiODJmNmQyNDc3YWY5MmY3NmM5OC4uY2NjNmY4NjY3OGZlMzgyYjlmMjhjNWExOGMz
NTFkMWM1OTUzMjhiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNiw5
ICszNiw5IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIFNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMp
CiAKICAgICAjIERpYWdub3N0aWMgbWVzc2FnZXMgbG9nZ2luZwotICAgIExvZ0RpYWdub3N0aWNN
ZXNzYWdlKHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlv
biwgYm9vbCBzaG91bGRTYW1wbGUpCi0gICAgTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgdWlu
dDMyX3QgcmVzdWx0LCBib29sIHNob3VsZFNhbXBsZSkKLSAgICBMb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3Jp
cHRpb24sIFN0cmluZyB2YWx1ZSwgYm9vbCBzaG91bGRTYW1wbGUpCisgICAgTG9nUHJlU2FtcGxl
ZERpYWdub3N0aWNNZXNzYWdlKHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmlu
ZyBkZXNjcmlwdGlvbikKKyAgICBMb2dQcmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVz
dWx0KHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwg
dWludDMyX3QgcmVzdWx0KQorICAgIExvZ1ByZVNhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZSh1aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24s
IFN0cmluZyB2YWx1ZSkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGVhNTlkNzAzMzM4
MzY4NWI5ZDFmZGZjNzcwY2YxNWU3NDkwZGNjZWIuLmEzNGJiNjFhODMzMDI5YzhiMjcxMjM4ZDAx
YjJjOTI2ZmJlZDQ2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0xMDEsNiArMTAxLDcgQEAKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0JpdG1hcEltYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KQEAgLTEx
NCw3ICsxMTUsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KICNpbmNs
dWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUg
PHd0Zi9SYW5kb21OdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAK
ICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpAQCAtNDcxNywzMSArNDcxNyw0MyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6bWFjaFNlbmRSaWdodENhbGxiYWNrKGNvbnN0IE1hY2hTZW5kUmlnaHQm
IHNlbmRSaWdodCwgdWludDY0XwogfQogI2VuZGlmCiAKLXN0YXRpYyBib29sIHNob3VsZExvZ0Rp
YWdub3N0aWNNZXNzYWdlKGJvb2wgc2hvdWxkU2FtcGxlKQotewotICAgIGlmICghc2hvdWxkU2Ft
cGxlKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAvLyBMb2cgNSUgb2YgbWVzc2FnZXMgd2hl
biBzYW1wbGluZy4KLSAgICBzdGF0aWMgY29uc3QgZG91YmxlIHNlbGVjdGlvblByb2JhYmlsaXR5
ID0gMC4wNTsKLSAgICByZXR1cm4gcmFuZG9tTnVtYmVyKCkgPD0gc2VsZWN0aW9uUHJvYmFiaWxp
dHk7Ci19Ci0KIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGJvb2wgc2hvdWxkU2Ft
cGxlKQogewotICAgIGlmIChzaG91bGRMb2dEaWFnbm9zdGljTWVzc2FnZShzaG91bGRTYW1wbGUp
KQotICAgICAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2Fn
ZSh0aGlzLCBtZXNzYWdlLCBkZXNjcmlwdGlvbik7CisgICAgaWYgKCFEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDo6c2hvdWxkTG9nR2l2ZW5TYW1wbGluZyhzaG91bGRTYW1wbGUgPyBTaG91bGRTYW1w
bGU6OlllcyA6IFNob3VsZFNhbXBsZTo6Tm8pKQorICAgICAgICByZXR1cm47CisKKyAgICBsb2dQ
cmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2UobWVzc2FnZSwgZGVzY3JpcHRpb24pOwogfQogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0
LCBib29sIHNob3VsZFNhbXBsZSkKIHsKLSAgICBpZiAoc2hvdWxkTG9nRGlhZ25vc3RpY01lc3Nh
Z2Uoc2hvdWxkU2FtcGxlKSkKLSAgICAgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGU+KHJlc3VsdCkp
OworICAgIGlmICghRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OnNob3VsZExvZ0dpdmVuU2FtcGxp
bmcoc2hvdWxkU2FtcGxlID8gU2hvdWxkU2FtcGxlOjpZZXMgOiBTaG91bGRTYW1wbGU6Ok5vKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbG9nUHJlU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0
aFJlc3VsdChtZXNzYWdlLCBkZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RGlhZ25v
c3RpY0xvZ2dpbmdSZXN1bHRUeXBlPihyZXN1bHQpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6
OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBzaG91bGRT
YW1wbGUpCiB7Ci0gICAgaWYgKHNob3VsZExvZ0RpYWdub3N0aWNNZXNzYWdlKHNob3VsZFNhbXBs
ZSkpCi0gICAgICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlKHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSk7CisgICAgaWYg
KCFEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6c2hvdWxkTG9nR2l2ZW5TYW1wbGluZyhzaG91bGRT
YW1wbGUgPyBTaG91bGRTYW1wbGU6OlllcyA6IFNob3VsZFNhbXBsZTo6Tm8pKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBsb2dQcmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUobWVz
c2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmxvZ1By
ZVNhbXBsZWREaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24pCit7CisgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9n
RGlhZ25vc3RpY01lc3NhZ2UodGhpcywgbWVzc2FnZSwgZGVzY3JpcHRpb24pOworfQorCit2b2lk
IFdlYlBhZ2VQcm94eTo6bG9nUHJlU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90
IHJlc3VsdCkKK3sKKyAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQodGhpcywgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHN0YXRpY19jYXN0
PFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZT4ocmVzdWx0KSk7Cit9CisKK3Zv
aWQgV2ViUGFnZVByb3h5Ojpsb2dQcmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBT
dHJpbmcmIHZhbHVlKQoreworICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSk7
CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpyZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VDYWxsYmFjayhj
b25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIGFjdHVhbFJhbmdlLCB1aW50
NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDczMDJhOWUzNjA4ODZlNDI2YTNlN2Y3OTM5N2Y1ODc2ZDUyZDhiOTEuLmRlMmM5NTNlMDI5
YjNmN2NkNDE4YjZlNGJlMzgzZGFlZTc1MWEwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTEwNjAsNiArMTA2MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgYm9vbCBzaG91bGRTYW1wbGUpOwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBib29sIHNob3VsZFNhbXBsZSk7CiAgICAgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgc2hvdWxkU2Ft
cGxlKTsKKyAgICB2b2lkIGxvZ1ByZVNhbXBsZWREaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pOworICAgIHZvaWQgbG9nUHJl
U2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCk7CisgICAgdm9pZCBs
b2dQcmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKIAog
I2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1MpCiAg
ICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA5
NWQzODRiZjU5ZDAxYjlkNjk5NzUwNTJiZDc1Mjc5Y2JmNzBkZDlhLi5hMmU1MGYwYTQ1ZmUwNzFm
NTdhZGI4Y2Y1N2Y1NjBhZjVjZDQ3OTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyNiw5ICsyMjYsOSBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgIEV4ZWN1dGVVbmRvUmVkbyh1aW50MzJfdCBhY3Rpb24p
IC0+IChib29sIHJlc3VsdCkKIAogICAgICMgRGlhZ25vc3RpYyBtZXNzYWdlcyBsb2dnaW5nCi0g
ICAgTG9nRGlhZ25vc3RpY01lc3NhZ2UoU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlv
biwgYm9vbCBzaG91bGRTYW1wbGUpCi0gICAgTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCwgYm9v
bCBzaG91bGRTYW1wbGUpCi0gICAgTG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoU3RyaW5n
IG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgU3RyaW5nIHZhbHVlLCBib29sIHNob3VsZFNh
bXBsZSkKKyAgICBMb2dQcmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2UoU3RyaW5nIG1lc3NhZ2Us
IFN0cmluZyBkZXNjcmlwdGlvbikKKyAgICBMb2dQcmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VX
aXRoUmVzdWx0KFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJl
c3VsdCkKKyAgICBMb2dQcmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoU3RyaW5n
IG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlwdGlvbiwgU3RyaW5nIHZhbHVlKQogCiAgICAgIyBFZGl0
b3Igbm90aWZpY2F0aW9ucwogICAgIEVkaXRvclN0YXRlQ2hhbmdlZChzdHJ1Y3QgV2ViS2l0OjpF
ZGl0b3JTdGF0ZSBlZGl0b3JTdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5jcHAKaW5kZXggNmMwMDZmZWExNjEwNGM3MzdjYWJiOTMyNzU1NDVmNjQzZTI5Nzhh
My4uMmNkOTQ2NzY0MzkxNTRkYmZmNTNkMWQzNjMyMmE5OTdmNmU2ZWU0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKQEAgLTQzLDMyICs0MywzOCBAQCBX
ZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6fldlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkK
IAogdm9pZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2Uo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3Jl
OjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogewotICAgIGlmICghbV9wYWdlLmNvcmVQYWdl
KCkgfHwgIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5h
YmxlZCgpKQorICAgIEFTU0VSVCghbV9wYWdlLmNvcmVQYWdlKCkgfHwgbV9wYWdlLmNvcmVQYWdl
KCktPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpOworCisgICAgaWYgKCFz
aG91bGRMb2dHaXZlblNhbXBsaW5nKHNob3VsZFNhbXBsZSkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBpbmplY3RlZCBidW5kbGUgQVBJLgogICAgIG1fcGFn
ZS5pbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01l
c3NhZ2UoJm1fcGFnZSwgbWVzc2FnZSwgZGVzY3JpcHRpb24pOwotICAgIG1fcGFnZS5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvZ0RpYWdub3N0aWNNZXNzYWdlKG1lc3NhZ2UsIGRlc2Ny
aXB0aW9uLCBzaG91bGRTYW1wbGUgPT0gV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpKTsKKyAg
ICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dQcmVTYW1wbGVkRGlhZ25v
c3RpY01lc3NhZ2UobWVzc2FnZSwgZGVzY3JpcHRpb24pKTsKIH0KIAogdm9pZCBXZWJEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25v
c3RpY0xvZ2dpbmdSZXN1bHRUeXBlIHJlc3VsdCwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3Vs
ZFNhbXBsZSkKIHsKLSAgICBpZiAoIW1fcGFnZS5jb3JlUGFnZSgpIHx8ICFtX3BhZ2UuY29yZVBh
Z2UoKS0+c2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSkKKyAgICBBU1NFUlQo
IW1fcGFnZS5jb3JlUGFnZSgpIHx8IG1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdu
b3N0aWNMb2dnaW5nRW5hYmxlZCgpKTsKKworICAgIGlmICghc2hvdWxkTG9nR2l2ZW5TYW1wbGlu
ZyhzaG91bGRTYW1wbGUpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhNRTogUmVtb3Zl
IHRoaXMgaW5qZWN0ZWQgYnVuZGxlIEFQSS4KICAgICBtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCgmbV9w
YWdlLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgcmVzdWx0KTsKLSAgICBtX3BhZ2Uuc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQobWVzc2Fn
ZSwgZGVzY3JpcHRpb24sIHJlc3VsdCwgc2hvdWxkU2FtcGxlID09IFdlYkNvcmU6OlNob3VsZFNh
bXBsZTo6WWVzKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9n
UHJlU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChtZXNzYWdlLCBkZXNjcmlwdGlv
biwgcmVzdWx0KSk7CiB9CiAKIHZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgV2ViQ29yZTo6U2hvdWxkU2Ft
cGxlIHNob3VsZFNhbXBsZSkKIHsKLSAgICBpZiAoIW1fcGFnZS5jb3JlUGFnZSgpIHx8ICFtX3Bh
Z2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSkKKyAg
ICBBU1NFUlQoIW1fcGFnZS5jb3JlUGFnZSgpIHx8IG1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5n
cygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCgpKTsKKworICAgIGlmICghc2hvdWxkTG9nR2l2
ZW5TYW1wbGluZyhzaG91bGRTYW1wbGUpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgaW5qZWN0ZWQgYnVuZGxlIEFQSS4KICAgICBtX3BhZ2UuaW5qZWN0ZWRC
dW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlKCZtX3BhZ2UsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSk7Ci0gICAgbV9wYWdlLnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUo
bWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlLCBzaG91bGRTYW1wbGUgPT0gV2ViQ29yZTo6U2hv
dWxkU2FtcGxlOjpZZXMpKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpMb2dQcmVTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUobWVzc2FnZSwgZGVzY3Jp
cHRpb24sIHZhbHVlKSk7CiB9CiAKIHZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6Om1h
aW5GcmFtZURlc3Ryb3llZCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256649</attachid>
            <date>2015-07-10 23:54:23 -0700</date>
            <delta_ts>2015-07-10 23:56:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146873-20150710235320.patch</filename>
            <type>text/plain</type>
            <size>21012</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2Njk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI4M2I2NzdjMGY4NzEw
MTg1OGI2NmQxZmExNjcwZTE3NzE4NjAyMC4uM2U0YmVjYzhkNjFmNGQzY2NiOTY3M2IzYjU2OTI4
OGQxYjU4Mjg3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gRGlhZ25vc3RpYyBs
b2dnaW5nIG1lc3NhZ2VzIGFyZSBjYXVzaW5nIHRvbyBtdWNoIElQQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2ODczCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yMTc3OTIwNT4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisK
KyAgICAgICAgTW92ZSBzaG91bGRMb2dBZnRlclNhbXBsaW5nKCkgdXRpbGl0eSBmdW5jdGlvbiB0
byBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudAorICAgICAgICBzbyBpdCBjYW4gYmUgZWFzaWx5IHJl
dXNlZC4KKworICAgICAgICAqIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBs
aW5nKToKKwogMjAxNS0wNy0xMCAgTmFuIFdhbmcgIDxuX3dhbmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZGVkIEFSSUEgMS4xICJjZWxsIiBhbmQgInRhYmxlIiByb2xlcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCAwZTIzOWI3ODg1ZDZhOWE1ODAxMmVjZTZkZDBiNGUyMDRjOWNiYjA5Li4yMmYwMGRlMDQzN2Mz
YTEyNjk5ZWFjZTE3NjM2NjEzYjU0NjQ1OThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAK
KzIwMTUtMDctMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBb
V0syXSBEaWFnbm9zdGljIGxvZ2dpbmcgbWVzc2FnZXMgYXJlIGNhdXNpbmcgdG9vIG11Y2ggSVBD
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY4NzMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIxNzc5MjA1PgorCisgICAgICAgIFJldmlld2VkIGJ5
IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBEaWFnbm9zdGljIGxvZ2dpbmcgbWVzc2FnZXMgYXJl
IGNhdXNpbmcgdG9vIG11Y2ggSVBDLiBUbyBhZGRyZXNzIHRoZQorICAgICAgICBwcm9ibGVtLCB3
ZSBub3cgZG8gdGhlIHNhbXBsaW5nIG9mIHRoZSBzZW5kZXJzJyBzaWRlIChXZWJDb250ZW50Cisg
ICAgICAgIHByb2Nlc3MgYW5kIE5ldHdvcmtpbmcgcHJvY2VzcykgaW5zdGVhZCBvZiB0aGUgcmVj
ZWl2ZXIncyBzaWRlCisgICAgICAgIChVSVByb2Nlc3MpLgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6bG9nRGlhZ25vc3RpY01lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nU2FtcGxlZERpYWdub3N0aWNN
ZXNzYWdlV2l0aFJlc3VsdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9n
RGlhZ25vc3RpY01lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6bG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdl
V2l0aFZhbHVlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0RpYWdub3N0aWNNZXNz
YWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OmxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSk6CisKIDIwMTUt
MDctMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
VXNlIENvcmVBbmltYXRpb24gZmVuY2VzIGluc3RlYWQgb2Ygc3luY2hyb25vdXMgSVBDIHRvIHN5
bmNocm9uaXplIHJlc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oCmluZGV4IGI0ZmY1ZDQyMWZkM2YwZTc3NjMxZDQ4ZGEyNTdkM2I1OWZlNGU5Njcu
LjUwMzc5MjM1MjRiYWFhMmMxNzU3ODI2ZjI4ZWI3ODE4MjhkMzY3ZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAK
IAogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JhbmRvbU51bWJlci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTQxLDEwICs0MiwyMSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgbWFpbkZyYW1lRGVzdHJveWVkKCkgPSAwOwogCisgICAgc3RhdGljIGJvb2wgc2hvdWxkTG9n
QWZ0ZXJTYW1wbGluZyhTaG91bGRTYW1wbGUpOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSB7IH0KIH07CiAKK2lubGluZSBib29sIERpYWdub3N0
aWNMb2dnaW5nQ2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBsaW5nKFNob3VsZFNhbXBsZSBzaG91
bGRTYW1wbGUpCit7CisgICAgaWYgKHNob3VsZFNhbXBsZSA9PSBTaG91bGRTYW1wbGU6Ok5vKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHN0YXRpYyBjb25zdCBkb3VibGUgc2VsZWN0aW9u
UHJvYmFiaWxpdHkgPSAwLjA1OworICAgIHJldHVybiByYW5kb21OdW1iZXIoKSA8PSBzZWxlY3Rp
b25Qcm9iYWJpbGl0eTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA4ODQ5MjlkMTA5NGYyYjAzY2Qz
ZmE1MGNlNDkyOWFjZWFhNzc3YzYyLi4zY2QxNGJkMzY1NzljMjhiMDEwYzE2MWFkMjBlODFkZWI4
MTU1ZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJzaXRl
RGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29v
a2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTQ3OCwx
NyArNDc5LDI2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmdldE5ldHdvcmtQcm9jZXNzU3RhdGlz
dGljcyh1aW50NjRfdCBjYWxsYmFja0lEKQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dEaWFn
bm9zdGljTWVzc2FnZSh1aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNh
bXBsZSkKIHsKLSAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZSh3ZWJQYWdlSUQsIG1lc3Nh
Z2UsIGRlc2NyaXB0aW9uLCBzaG91bGRTYW1wbGUgPT0gU2hvdWxkU2FtcGxlOjpZZXMpLCAwKTsK
KyAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBsaW5n
KHNob3VsZFNhbXBsZSkpCisgICAgICAgIHJldHVybjsKKworICAgIHBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkxvZ1NhbXBsZWRE
aWFnbm9zdGljTWVzc2FnZSh3ZWJQYWdlSUQsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uKSwgMCk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1
aW50NjRfdCB3ZWJQYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbiwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlIHJlc3VsdCwg
V2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIHsKLSAgICBwYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpMb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhSZXN1bHQod2ViUGFnZUlELCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwg
cmVzdWx0LCBzaG91bGRTYW1wbGUgPT0gU2hvdWxkU2FtcGxlOjpZZXMpLCAwKTsKKyAgICBpZiAo
IURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNh
bXBsZSkpCisgICAgICAgIHJldHVybjsKKworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkxvZ1NhbXBsZWREaWFnbm9zdGlj
TWVzc2FnZVdpdGhSZXN1bHQod2ViUGFnZUlELCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgcmVzdWx0
KSwgMCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKHVpbnQ2NF90IHdlYlBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBXZWJDb3JlOjpTaG91bGRT
YW1wbGUgc2hvdWxkU2FtcGxlKQogewotICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKHdlYlBhZ2VJRCwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlLCBzaG91bGRTYW1w
bGUgPT0gU2hvdWxkU2FtcGxlOjpZZXMpLCAwKTsKKyAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OkxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh3
ZWJQYWdlSUQsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCB2YWx1ZSksIDApOwogfQogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjp0ZXJtaW5hdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwOThlNDVlZTJk
MTZkZjBiZjk5MjMxOGZkMDhmYzNkZDkzMTUxNDEwLi4wOGQxZTUxODdkNmE4NTI5MzU4YTBhNGQ2
YTljNWE1ZjY3ZmU4ZDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjg1LDcgKzI4NSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hl
ciogbGF1bmNoZXIsIElQQzo6Q29uCiAjZW5kaWYKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBzaG91bGRTYW1wbGUpCit2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZSh1aW50
NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbikKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBh
Z2UocGFnZUlEKTsKICAgICAvLyBGSVhNRTogV2UgZG8gdGhpcyBudWxsLWNoZWNrIGJlY2F1c2Ug
YnkgdGhlIHRpbWUgdGhlIGRlY2lzaW9uIHRvIGxvZyBpcyBtYWRlLCB0aGUgcGFnZSBtYXkgYmUg
Z29uZS4gV2Ugc2hvdWxkIHJlZmFjdG9yIHRvIGF2b2lkIHRoaXMsCkBAIC0yOTMsMTAgKzI5Mywx
MCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKHVpbnQ2
NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZQogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2UobWVzc2FnZSwgZGVzY3JpcHRp
b24sIHNob3VsZFNhbXBsZSk7CisgICAgcGFnZS0+bG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdl
KG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojps
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCwg
Ym9vbCBzaG91bGRTYW1wbGUpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ1NhbXBsZWRE
aWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCkKIHsK
ICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlE
KTsKICAgICAvLyBGSVhNRTogV2UgZG8gdGhpcyBudWxsLWNoZWNrIGJlY2F1c2UgYnkgdGhlIHRp
bWUgdGhlIGRlY2lzaW9uIHRvIGxvZyBpcyBtYWRlLCB0aGUgcGFnZSBtYXkgYmUgZ29uZS4gV2Ug
c2hvdWxkIHJlZmFjdG9yIHRvIGF2b2lkIHRoaXMsCkBAIC0zMDQsMTAgKzMwNCwxMCBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdCh1aW50
NjRfdCBwYWdlSUQsIGNvbnN0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQobWVzc2FnZSwgZGVzY3JpcHRp
b24sIHJlc3VsdCwgc2hvdWxkU2FtcGxlKTsKKyAgICBwYWdlLT5sb2dTYW1wbGVkRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoUmVzdWx0KG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCByZXN1bHQpOwogfQogCi12
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVp
bnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHNob3VsZFNhbXBsZSkKK3ZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6bG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVp
bnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9
IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOwogICAgIC8vIEZJWE1FOiBXZSBkbyB0
aGlzIG51bGwtY2hlY2sgYmVjYXVzZSBieSB0aGUgdGltZSB0aGUgZGVjaXNpb24gdG8gbG9nIGlz
IG1hZGUsIHRoZSBwYWdlIG1heSBiZSBnb25lLiBXZSBzaG91bGQgcmVmYWN0b3IgdG8gYXZvaWQg
dGhpcywKQEAgLTMxNSw3ICszMTUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgUwogICAgIGlm
ICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWUobWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlLCBzaG91bGRTYW1wbGUpOwor
ICAgIHBhZ2UtPmxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShtZXNzYWdlLCBk
ZXNjcmlwdGlvbiwgdmFsdWUpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQ
cm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA2YmQ1YmYyNDU3
OTY0ZjZhMTcyNmY0OWFiM2FjOTFmOWMyMDNhM2I1Li4zMjQ5NjhmM2VlYzFjMjc4ZDhhNjMxYjZm
YmRlYTMwMWI3MmNhYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xMDksOSArMTA5LDkgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgY29u
c3QgV2Vic2l0ZURhdGEmKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90
IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0
X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIGJvb2wgc2hvdWxkU2FtcGxlKTsKLSAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFJlc3VsdCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBib29sIHNob3VsZFNhbXBsZSk7Ci0g
ICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgYm9vbCBzaG91bGRTYW1wbGUpOworICAgIHZvaWQgbG9nU2FtcGxlZERpYWdu
b3N0aWNNZXNzYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKKyAgICB2b2lkIGxvZ1NhbXBsZWREaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVpbnQzMl90IHJlc3VsdCk7CisgICAgdm9pZCBsb2dT
YW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFnZUlELCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYg
dmFsdWUpOwogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKICAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllcikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRl
eCA1NjgyOTA4M2Q0NDg3OWUwOGViNGI4MmY2ZDI0NzdhZjkyZjc2Yzk4Li4zNzhmZjc5MDRhNDRj
NTJiNGM3NWUwZWI0YmMwN2VhZjQwMDZjN2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTM2LDkgKzM2LDkgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRp
bmdMb2NrZWRGaWxlcykKIAogICAgICMgRGlhZ25vc3RpYyBtZXNzYWdlcyBsb2dnaW5nCi0gICAg
TG9nRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3QgcGFnZUlELCBTdHJpbmcgbWVzc2FnZSwgU3Ry
aW5nIGRlc2NyaXB0aW9uLCBib29sIHNob3VsZFNhbXBsZSkKLSAgICBMb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRl
c2NyaXB0aW9uLCB1aW50MzJfdCByZXN1bHQsIGJvb2wgc2hvdWxkU2FtcGxlKQotICAgIExvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2Us
IFN0cmluZyBkZXNjcmlwdGlvbiwgU3RyaW5nIHZhbHVlLCBib29sIHNob3VsZFNhbXBsZSkKKyAg
ICBMb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3QgcGFnZUlELCBTdHJpbmcgbWVz
c2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uKQorICAgIExvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2Fn
ZVdpdGhSZXN1bHQodWludDY0X3QgcGFnZUlELCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2Ny
aXB0aW9uLCB1aW50MzJfdCByZXN1bHQpCisgICAgTG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdl
V2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlw
dGlvbiwgU3RyaW5nIHZhbHVlKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWE1OWQ3
MDMzMzgzNjg1YjlkMWZkZmM3NzBjZjE1ZTc0OTBkY2NlYi4uYjBmYWNkOGEwOGE4YTdmMTI1YTQ5
ZmQ2Zjg3Y2FjYjhmNzlkOGQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTEwMSw2ICsxMDEsNyBAQAogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQml0bWFwSW1hZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dn
aW5nQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQ29udHJvbGxlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgpA
QCAtMTE0LDcgKzExNSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgog
I2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5j
bHVkZSA8d3RmL1JhbmRvbU51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcu
aD4KIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCkBAIC00NzE3LDMxICs0NzE3LDQzIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjptYWNoU2VuZFJpZ2h0Q2FsbGJhY2soY29uc3QgTWFjaFNlbmRS
aWdodCYgc2VuZFJpZ2h0LCB1aW50NjRfCiB9CiAjZW5kaWYKIAotc3RhdGljIGJvb2wgc2hvdWxk
TG9nRGlhZ25vc3RpY01lc3NhZ2UoYm9vbCBzaG91bGRTYW1wbGUpCi17Ci0gICAgaWYgKCFzaG91
bGRTYW1wbGUpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIC8vIExvZyA1JSBvZiBtZXNzYWdl
cyB3aGVuIHNhbXBsaW5nLgotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgc2VsZWN0aW9uUHJvYmFi
aWxpdHkgPSAwLjA1OwotICAgIHJldHVybiByYW5kb21OdW1iZXIoKSA8PSBzZWxlY3Rpb25Qcm9i
YWJpbGl0eTsKLX0KLQogdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgYm9vbCBzaG91
bGRTYW1wbGUpCiB7Ci0gICAgaWYgKHNob3VsZExvZ0RpYWdub3N0aWNNZXNzYWdlKHNob3VsZFNh
bXBsZSkpCi0gICAgICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNN
ZXNzYWdlKHRoaXMsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uKTsKKyAgICBpZiAoIURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSA/IFNob3Vs
ZFNhbXBsZTo6WWVzIDogU2hvdWxkU2FtcGxlOjpObykpCisgICAgICAgIHJldHVybjsKKworICAg
IGxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZShtZXNzYWdlLCBkZXNjcmlwdGlvbik7CiB9CiAK
IHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCB1aW50MzJfdCByZXN1
bHQsIGJvb2wgc2hvdWxkU2FtcGxlKQogewotICAgIGlmIChzaG91bGRMb2dEaWFnbm9zdGljTWVz
c2FnZShzaG91bGRTYW1wbGUpKQotICAgICAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5s
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodGhpcywgbWVzc2FnZSwgZGVzY3JpcHRpb24s
IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZT4ocmVzdWx0
KSk7CisgICAgaWYgKCFEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6c2hvdWxkTG9nQWZ0ZXJTYW1w
bGluZyhzaG91bGRTYW1wbGUgPyBTaG91bGRTYW1wbGU6OlllcyA6IFNob3VsZFNhbXBsZTo6Tm8p
KQorICAgICAgICByZXR1cm47CisKKyAgICBsb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRo
UmVzdWx0KG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEaWFnbm9z
dGljTG9nZ2luZ1Jlc3VsdFR5cGU+KHJlc3VsdCkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHNob3VsZFNh
bXBsZSkKIHsKLSAgICBpZiAoc2hvdWxkTG9nRGlhZ25vc3RpY01lc3NhZ2Uoc2hvdWxkU2FtcGxl
KSkKLSAgICAgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWUodGhpcywgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlKTsKKyAgICBpZiAo
IURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzaG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNh
bXBsZSA/IFNob3VsZFNhbXBsZTo6WWVzIDogU2hvdWxkU2FtcGxlOjpObykpCisgICAgICAgIHJl
dHVybjsKKworICAgIGxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShtZXNzYWdl
LCBkZXNjcmlwdGlvbiwgdmFsdWUpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9nU2FtcGxl
ZERpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbikKK3sKKyAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9z
dGljTWVzc2FnZSh0aGlzLCBtZXNzYWdlLCBkZXNjcmlwdGlvbik7Cit9CisKK3ZvaWQgV2ViUGFn
ZVByb3h5Ojpsb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KQor
eworICAgIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQtPmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFJlc3VsdCh0aGlzLCBtZXNzYWdlLCBkZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
RGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlPihyZXN1bHQpKTsKK30KKwordm9pZCBXZWJQYWdl
UHJveHk6OmxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUp
Cit7CisgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWUodGhpcywgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlKTsKIH0KIAogdm9pZCBX
ZWJQYWdlUHJveHk6OnJlY3RGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrKGNvbnN0IEludFJlY3Qm
IHJlY3QsIGNvbnN0IEVkaXRpbmdSYW5nZSYgYWN0dWFsUmFuZ2UsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNzMwMmE5ZTM2
MDg4NmU0MjZhM2U3Zjc5Mzk3ZjU4NzZkNTJkOGI5MS4uMDJiYTY5MGMwNjdkYWQwZDE2YjQwOWIx
OGY5NjAxZGE4YmFjOTRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtMTA2MCw2ICsxMDYwLDkgQEAgcHVibGljOgogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01l
c3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBi
b29sIHNob3VsZFNhbXBsZSk7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1
bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCB1aW50
MzJfdCByZXN1bHQsIGJvb2wgc2hvdWxkU2FtcGxlKTsKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBzaG91bGRTYW1wbGUpOworICAgIHZv
aWQgbG9nU2FtcGxlZERpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZXNjcmlwdGlvbik7CisgICAgdm9pZCBsb2dTYW1wbGVkRGlhZ25vc3RpY01l
c3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KTsKKyAgICB2b2lkIGxvZ1NhbXBsZWREaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVz
Y3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIGFkZFBsYXliYWNrVGFy
Z2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDk1ZDM4NGJmNTlkMDFiOWQ2OTk3NTA1
MmJkNzUyNzljYmY3MGRkOWEuLjIzYzY0ZGY0NTg4Y2JjMDEyZmQyMDk1YWM0NTg0NjBlZDQ3N2Uw
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMjI2LDkgKzIyNiw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAg
ICAgRXhlY3V0ZVVuZG9SZWRvKHVpbnQzMl90IGFjdGlvbikgLT4gKGJvb2wgcmVzdWx0KQogCiAg
ICAgIyBEaWFnbm9zdGljIG1lc3NhZ2VzIGxvZ2dpbmcKLSAgICBMb2dEaWFnbm9zdGljTWVzc2Fn
ZShTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCBib29sIHNob3VsZFNhbXBsZSkK
LSAgICBMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoU3RyaW5nIG1lc3NhZ2UsIFN0cmlu
ZyBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBib29sIHNob3VsZFNhbXBsZSkKLSAgICBM
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2Ny
aXB0aW9uLCBTdHJpbmcgdmFsdWUsIGJvb2wgc2hvdWxkU2FtcGxlKQorICAgIExvZ1NhbXBsZWRE
aWFnbm9zdGljTWVzc2FnZShTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uKQorICAg
IExvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoU3RyaW5nIG1lc3NhZ2UsIFN0
cmluZyBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0KQorICAgIExvZ1NhbXBsZWREaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2NyaXB0aW9uLCBT
dHJpbmcgdmFsdWUpCiAKICAgICAjIEVkaXRvciBub3RpZmljYXRpb25zCiAgICAgRWRpdG9yU3Rh
dGVDaGFuZ2VkKHN0cnVjdCBXZWJLaXQ6OkVkaXRvclN0YXRlIGVkaXRvclN0YXRlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAppbmRleCA2YzAwNmZlYTE2MTA0
YzczN2NhYmI5MzI3NTU0NWY2NDNlMjk3OGEzLi5mM2JiNGRiNzQyYWY2M2VjYjk0OWMxMWQzYWNh
ZDA3OWIwY2I5YTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LmNwcApAQCAtNDMsMzIgKzQzLDM4IEBAIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojp+V2Vi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKQogCiB2b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCiB7
Ci0gICAgaWYgKCFtX3BhZ2UuY29yZVBhZ2UoKSB8fCAhbV9wYWdlLmNvcmVQYWdlKCktPnNldHRp
bmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpCisgICAgQVNTRVJUKCFtX3BhZ2UuY29y
ZVBhZ2UoKSB8fCBtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2lu
Z0VuYWJsZWQoKSk7CisKKyAgICBpZiAoIXNob3VsZExvZ0FmdGVyU2FtcGxpbmcoc2hvdWxkU2Ft
cGxlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIGluamVj
dGVkIGJ1bmRsZSBBUEkuCiAgICAgbV9wYWdlLmluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZSgmbV9wYWdlLCBtZXNzYWdlLCBkZXNjcmlw
dGlvbik7Ci0gICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9nRGlhZ25v
c3RpY01lc3NhZ2UobWVzc2FnZSwgZGVzY3JpcHRpb24sIHNob3VsZFNhbXBsZSA9PSBXZWJDb3Jl
OjpTaG91bGRTYW1wbGU6OlllcykpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZShtZXNzYWdlLCBkZXNjcmlwdGlvbikp
OwogfQogCiB2b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUgcmVzdWx0LCBXZWJD
b3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogewotICAgIGlmICghbV9wYWdlLmNvcmVQ
YWdlKCkgfHwgIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5n
RW5hYmxlZCgpKQorICAgIEFTU0VSVCghbV9wYWdlLmNvcmVQYWdlKCkgfHwgbV9wYWdlLmNvcmVQ
YWdlKCktPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpOworCisgICAgaWYg
KCFzaG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBpbmplY3RlZCBidW5kbGUgQVBJLgogICAgIG1f
cGFnZS5pbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoUmVzdWx0KCZtX3BhZ2UsIG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCByZXN1bHQp
OwotICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvZ0RpYWdub3N0aWNN
ZXNzYWdlV2l0aFJlc3VsdChtZXNzYWdlLCBkZXNjcmlwdGlvbiwgcmVzdWx0LCBzaG91bGRTYW1w
bGUgPT0gV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpZZXMpKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpMb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KG1lc3NhZ2UsIGRlc2NyaXB0aW9uLCByZXN1bHQpKTsKIH0KIAogdm9pZCBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVl
LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogewotICAgIGlmICghbV9wYWdl
LmNvcmVQYWdlKCkgfHwgIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmRpYWdub3N0aWNM
b2dnaW5nRW5hYmxlZCgpKQorICAgIEFTU0VSVCghbV9wYWdlLmNvcmVQYWdlKCkgfHwgbV9wYWdl
LmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkpOworCisg
ICAgaWYgKCFzaG91bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBpbmplY3RlZCBidW5kbGUgQVBJLgog
ICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoJm1fcGFnZSwgbWVzc2FnZSwgZGVzY3JpcHRpb24sIHZh
bHVlKTsKLSAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUsIHNob3VsZFNh
bXBsZSA9PSBXZWJDb3JlOjpTaG91bGRTYW1wbGU6OlllcykpOworICAgIG1fcGFnZS5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1
ZShtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUpKTsKIH0KIAogdm9pZCBXZWJEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDo6bWFpbkZyYW1lRGVzdHJveWVkKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>