<?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>232488</bug_id>
          
          <creation_ts>2021-10-29 08:59:56 -0700</creation_ts>
          <short_desc>Create constants for all special frame names used in anchor target attribute values and elsewhere</short_desc>
          <delta_ts>2021-10-29 13:55:09 -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>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>ayumi_kojima</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbarton</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>mifenton</cc>
    
    <cc>pangle</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1810096</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-29 08:59:56 -0700</bug_when>
    <thetext>Create constants for all special frame names used in anchor target attribute values and elsewhere</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810114</commentid>
    <comment_count>1</comment_count>
      <attachid>442828</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-29 10:00:35 -0700</bug_when>
    <thetext>Created attachment 442828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810142</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-29 10:27:32 -0700</bug_when>
    <thetext>Committed r285038 (243682@main): &lt;https://commits.webkit.org/243682@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810146</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-29 10:28:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/84813765&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810207</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-29 13:20:59 -0700</bug_when>
    <thetext>I see this on the EWS bots:

ASSERTION FAILED: toASCIILowerUnchecked(*letter) == *letter
/Volumes/Data/worker/macOS-AppleSilicon-Big-Sur-Debug-Build-EWS/build/WebKitBuild/Debug/usr/local/include/wtf/text/StringCommon.h(618) : bool WTF::hasPrefixWithLettersIgnoringASCIICaseCommon(const StringClass &amp;, const char *, unsigned int) [StringClass = WTF::StringView]
1   0x13bc99668 WTFCrash
2   0x119240250 WebCore::JSDOMConstructorBase::scriptExecutionContext() const
3   0x11a2123c8 bool WTF::hasPrefixWithLettersIgnoringASCIICaseCommon&lt;WTF::StringView&gt;(WTF::StringView const&amp;, char const*, unsigned int)
4   0x11a2122cc bool WTF::equalLettersIgnoringASCIICaseCommonWithoutLength&lt;WTF::StringView&gt;(WTF::StringView const&amp;, char const*)
5   0x11b4b7848 bool WTF::equalLettersIgnoringASCIICaseCommon&lt;WTF::StringView, 6u&gt;(WTF::StringView const&amp;, char const (&amp;) [6u])
6   0x11b4b77bc bool WTF::equalLettersIgnoringASCIICase&lt;6u&gt;(WTF::StringView, char const (&amp;) [6u])
7   0x11c61ad00 WebCore::isSelfTargetFrameName(WTF::StringView)
8   0x11c61a964 WebCore::FrameTree::find(WTF::AtomString const&amp;, WebCore::Frame&amp;) const
9   0x11c3b0d08 WebCore::FrameLoader::findFrameForNavigation(WTF::AtomString const&amp;, WebCore::Document*)
10  0x11c3b537c WebCore::FrameLoader::loadURL(WebCore::FrameLoadRequest&amp;&amp;, WTF::String const&amp;, WebCore::FrameLoadType, WebCore::Event*, WTF::RefPtr&lt;WebCore::FormState, WTF::RawPtrTraits&lt;WebCore::FormState&gt;, WTF::DefaultRefDerefTraits&lt;WebCore::FormState&gt; &gt;&amp;&amp;, std::__1::optional&lt;WebCore::PrivateClickMeasurement&gt;&amp;&amp;, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)
11  0x11c3b3fa8 WebCore::FrameLoader::loadURLIntoChildFrame(WTF::URL const&amp;, WTF::String const&amp;, WebCore::Frame*)
12  0x11c4679d8 WebCore::FrameLoader::SubframeLoader::loadSubframe(WebCore::HTMLFrameOwnerElement&amp;, WTF::URL const&amp;, WTF::String const&amp;, WTF::String const&amp;)
13  0x11c466844 WebCore::FrameLoader::SubframeLoader::loadOrRedirectSubframe(WebCore::HTMLFrameOwnerElement&amp;, WTF::URL const&amp;, WTF::AtomString const&amp;, WebCore::LockHistory, WebCore::LockBackForwardList)
14  0x11c466300 WebCore::FrameLoader::SubframeLoader::requestFrame(WebCore::HTMLFrameOwnerElement&amp;, WTF::String const&amp;, WTF::AtomString const&amp;, WebCore::LockHistory, WebCore::LockBackForwardList)
15  0x11bc20068 WebCore::HTMLFrameElementBase::openURL(WebCore::LockHistory, WebCore::LockBackForwardList)
16  0x11bc203e4 WebCore::HTMLFrameElementBase::didFinishInsertingNode()
17  0x11b64a3f4 void WebCore::executeNodeInsertionWithScriptAssertion&lt;WebCore::ContainerNode::parserAppendChild(WebCore::Node&amp;)::$_5&gt;(WebCore::ContainerNode&amp;, WebCore::Node&amp;, WebCore::ContainerNode::ChildChange::Source, WebCore::ReplacedAllChildren, WebCore::ContainerNode::parserAppendChild(WebCore::Node&amp;)::$_5)
18  0x11b6469b0 WebCore::ContainerNode::parserAppendChild(WebCore::Node&amp;)
19  0x11beb7b28 WebCore::insert(WebCore::HTMLConstructionSiteTask&amp;)
20  0x11beb7504 WebCore::executeInsertTask(WebCore::HTMLConstructionSiteTask&amp;)
21  0x11bea5120 WebCore::executeTask(WebCore::HTMLConstructionSiteTask&amp;)
22  0x11bea4fb0 WebCore::HTMLConstructionSite::executeQueuedTasks()
23  0x11bee7ea8 WebCore::HTMLTreeBuilder::constructTree(WebCore::AtomHTMLToken&amp;&amp;)
24  0x11beae054 WebCore::HTMLDocumentParser::constructTreeFromHTMLToken(WebCore::HTMLTokenizer::TokenPtr&amp;)
25  0x11beadddc WebCore::HTMLDocumentParser::pumpTokenizerLoop(WebCore::HTMLDocumentParser::SynchronousMode, bool, WebCore::PumpSession&amp;)
26  0x11bead064 WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode)
27  0x11beac8d0 WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode)
28  0x11beae838 WebCore::HTMLDocumentParser::append(WTF::RefPtr&lt;WTF::StringImpl, WTF::RawPtrTraits&lt;WTF::StringImpl&gt;, WTF::DefaultRefDerefTraits&lt;WTF::StringImpl&gt; &gt;&amp;&amp;, WebCore::HTMLDocumentParser::SynchronousMode)
29  0x11beae66c WebCore::HTMLDocumentParser::append(WTF::RefPtr&lt;WTF::StringImpl, WTF::RawPtrTraits&lt;WTF::StringImpl&gt;, WTF::DefaultRefDerefTraits&lt;WTF::StringImpl&gt; &gt;&amp;&amp;)
30  0x11b689974 WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter&amp;, unsigned char const*, unsigned long)
31  0x11c3389e4 WebCore::DocumentWriter::addData(unsigned char const*, unsigned long)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810213</commentid>
    <comment_count>5</comment_count>
    <who name="">ayumi_kojima</who>
    <bug_when>2021-10-29 13:30:35 -0700</bug_when>
    <thetext>Reverted r285038 for reason:

Reverting the commit because it broke the open source test runs and also caused an impanct on EWS queues

Committed r285046 (243689@main): &lt;https://commits.webkit.org/243689@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810224</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-29 13:51:14 -0700</bug_when>
    <thetext>Oops! Will re-land a fixed version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810227</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-29 13:55:09 -0700</bug_when>
    <thetext>Committed r285048 (243691@main): &lt;https://commits.webkit.org/243691@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442828</attachid>
            <date>2021-10-29 10:00:35 -0700</date>
            <delta_ts>2021-10-29 10:06:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232488-20211029100034.patch</filename>
            <type>text/plain</type>
            <size>26158</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdhYmY0ZGI0NjZlY2Y3Y2I1Mjg4YzAz
NDhmYzU1MDE4OWMzNjRiYTkuLmY0OGE4NWZlY2M0MDIzY2I4Yjg4NjY5MWI1ZGI1YWJjMjQyOGY2
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMjkgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIENyZWF0ZSBjb25zdGFudHMgZm9yIGFsbCBzcGVjaWFsIGZy
YW1lIG5hbWVzIHVzZWQgaW4gYW5jaG9yIHRhcmdldCBhdHRyaWJ1dGUgdmFsdWVzIGFuZCBlbHNl
d2hlcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MjQ4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL0ZvcndhcmQuaDogRGVjbGFyZSBBU0NJSUxpdGVyYWwuCisgICAgICAgICogd3RmL3RleHQv
QVNDSUlMaXRlcmFsLmg6IFVwZGF0ZSBmb3IgYWJvdmUuCisKIDIwMjEtMTAtMjggIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1RGXSBVc2Ug
bWNvbnRleHRfdCBvbiBPcGVuQlNECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IwMjY2MzIxODI2OGNkMDVlZjQ2
NjM5OGZmNzMwNTNmZDM1YzBlMi4uNmIyMDg4ZTNlMGEyMWRlNTljOGExY2E5YzVkMjliYmViYzk0
MzNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTEwLTI5ICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgY29uc3RhbnRzIGZvciBhbGwg
c3BlY2lhbCBmcmFtZSBuYW1lcyB1c2VkIGluIGFuY2hvciB0YXJnZXQgYXR0cmlidXRlIHZhbHVl
cyBhbmQgZWxzZXdoZXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzI0ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKTogVXNlIGlzQmxhbmtUYXJnZXRGcmFtZU5h
bWUuCisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEZvcm1FbGVtZW50OjpzdWJtaXQpOiBEaXR0by4KKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Om9wZW5VUkxFeHRlcm5hbGx5KTogVXNlCisgICAg
ICAgIGJsYW5rVGFyZ2V0RnJhbWVOYW1lIGFuZCBzZWxmVGFyZ2V0RnJhbWVOYW1lLgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6bmF2aWdhdGUpOiBEaXR0by4KKworICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
bG9hZFVSTEludG9DaGlsZEZyYW1lKTogVXNlIHNlbGZUYXJnZXRGcmFtZU5hbWUuCisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFVSTCk6IFVzZSBzZWxmVGFyZ2V0RnJhbWVOYW1l
IGFuZCBibGFua1RhcmdldEZyYW1lTmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpsb2FkUG9zdFJlcXVlc3QpOiBVc2UgYmxhbmtUYXJnZXRGcmFtZU5hbWUuCisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6IFVzZSBpc0JsYW5rVGFyZ2V0
RnJhbWVOYW1lLgorCisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVMb2NhdGlvbkNo
YW5nZSk6IFVzZSBzZWxmVGFyZ2V0RnJhbWVOYW1lLgorCisgICAgICAgICogbWF0aG1sL01hdGhN
TEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcik6IFVzZSBzZWxmVGFyZ2V0RnJhbWVOYW1lLgorCisgICAgICAgICogcGFnZS9E
T01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpjcmVhdGVXaW5kb3cp
OiBVc2Ugc2VsZlRhcmdldEZyYW1lTmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
b3Blbik6IFVzZSBpc1RvcFRhcmdldEZyYW1lTmFtZSBhbmQgaXNQYXJlbnRUYXJnZXRGcmFtZU5h
bWUuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVRyZWU6OnVuaXF1ZUNoaWxkTmFtZSBjb25zdCk6IFVzZSBpc0JsYW5rVGFyZ2V0RnJhbWVO
YW1lLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjpmaW5kIGNvbnN0KTogVXNlIGlzU2Vs
ZlRhcmdldEZyYW1lTmFtZSwgaXNUb3BUYXJnZXRGcmFtZU5hbWUsCisgICAgICAgIGlzUGFyZW50
VGFyZ2V0RnJhbWVOYW1lLCBhbmQgaXNCbGFua1RhcmdldEZyYW1lTmFtZS4KKyAgICAgICAgKFdl
YkNvcmU6OmJsYW5rVGFyZ2V0RnJhbWVOYW1lKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpz
ZWxmVGFyZ2V0RnJhbWVOYW1lKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjppc0JsYW5rVGFy
Z2V0RnJhbWVOYW1lKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjppc1BhcmVudFRhcmdldEZy
YW1lTmFtZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNTZWxmVGFyZ2V0RnJhbWVOYW1l
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjppc1RvcFRhcmdldEZyYW1lTmFtZSk6IEFkZGVk
LgorCisgICAgICAgICogcGFnZS9GcmFtZVRyZWUuaDogQWRkIGRlY2xhcmF0aW9ucy4KKworICAg
ICAgICAqIHN2Zy9TVkdBRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBRWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6IFVzZSBibGFua1RhcmdldEZyYW1lTmFtZS4KKwogMjAy
MS0xMC0yOSAgQXl1bWkgS29qaW1hICA8YXl1bWlfa29qaW1hQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI4NTAwNy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAppbmRleCBjYWVhOGFlYWQz
NmZhNTliM2RkMDE0MzdlN2UxMTcyOTVlZjVmZmQwLi4wZjU0NjdmNWY2MzlmM2Q0NTRiMTNmMTBm
ZjkzMzAzOGZhYzIzY2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKKysr
IGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCkBAIC0yNSw2ICsyNSw3IEBACiAKIG5hbWVzcGFj
ZSBXVEYgewogCitjbGFzcyBBU0NJSUxpdGVyYWw7CiBjbGFzcyBBYnN0cmFjdExvY2tlcjsKIGNs
YXNzIEF0b21TdHJpbmc7CiBjbGFzcyBBdG9tU3RyaW5nSW1wbDsKQEAgLTQ3LDggKzQ4LDggQEAg
Y2xhc3MgU3RyaW5nVmlldzsKIGNsYXNzIFN1c3BlbmRhYmxlV29ya1F1ZXVlOwogY2xhc3MgVGV4
dFBvc2l0aW9uOwogY2xhc3MgVGV4dFN0cmVhbTsKLWNsYXNzIFVuaXF1ZWRTdHJpbmdJbXBsOwog
Y2xhc3MgVVJMOworY2xhc3MgVW5pcXVlZFN0cmluZ0ltcGw7CiBjbGFzcyBXYWxsVGltZTsKIAog
c3RydWN0IEFueVRocmVhZHNBY2Nlc3NUcmFpdHM7CkBAIC0xMTgsNiArMTE5LDcgQEAgdGVtcGxh
dGU8Y2xhc3MsIGNsYXNzPiBjbGFzcyBleHBlY3RlZDsKIHRlbXBsYXRlPGNsYXNzPiBjbGFzcyB1
bmV4cGVjdGVkOwogfX19IC8vIG5hbWVzcGFjZSBzdGQ6OmV4cGVyaW1lbnRhbDo6ZnVuZGFtZW50
YWxzX3YzCiAKK3VzaW5nIFdURjo6QVNDSUlMaXRlcmFsOwogdXNpbmcgV1RGOjpBYnN0cmFjdExv
Y2tlcjsKIHVzaW5nIFdURjo6QXRvbVN0cmluZzsKIHVzaW5nIFdURjo6QXRvbVN0cmluZ0ltcGw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oIGIvU291cmNl
L1dURi93dGYvdGV4dC9BU0NJSUxpdGVyYWwuaAppbmRleCA2NDc0MDZmMGJhMjBkNzc1NDVlZDY3
NmFhYzg4ZTllOGZiNmEzMTAyLi5iNzgzM2JkZjExYTNiNjUzMjUzYjVmNmIyYmQ2MmI2ODdmYmFj
NmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdU
RiB7CkBAIC03OCw0ICs3OSwzIEBAIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgb3BlcmF0b3IiIiBf
cyhjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbikKIH0gLy8gbmFtZXNwYWNlIFdURgog
CiB1c2luZyBuYW1lc3BhY2UgV1RGOjpTdHJpbmdMaXRlcmFsczsKLXVzaW5nIFdURjo6QVNDSUlM
aXRlcmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA5
MzhiZDNlYjdjYzY4YTE0MzRiNTMzOWUwZGYzNDU1YTQxMmYxMTU2Li5hMDI5ZDQ2M2ZhMDg3Mzgz
MjAwYWMxYmJmNDhlMDM4OTdmMzNlMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcApAQCAtNTI4LDcgKzUyOCw3IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6
OmhhbmRsZUNsaWNrKEV2ZW50JiBldmVudCkKIAogICAgIGF1dG8gZWZmZWN0aXZlVGFyZ2V0ID0g
dGhpcy0+ZWZmZWN0aXZlVGFyZ2V0KCk7CiAgICAgTmV3RnJhbWVPcGVuZXJQb2xpY3kgbmV3RnJh
bWVPcGVuZXJQb2xpY3kgPSBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3c7Ci0gICAgaWYgKGhh
c1JlbChSZWxhdGlvbjo6Tm9PcGVuZXIpIHx8IGhhc1JlbChSZWxhdGlvbjo6Tm9SZWZlcnJlcikg
fHwgKCFoYXNSZWwoUmVsYXRpb246Ok9wZW5lcikgJiYgZG9jdW1lbnQoKS5zZXR0aW5ncygpLmJs
YW5rQW5jaG9yVGFyZ2V0SW1wbGllc05vT3BlbmVyRW5hYmxlZCgpICYmIGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UoZWZmZWN0aXZlVGFyZ2V0LCAiX2JsYW5rIikpKQorICAgIGlmIChoYXNSZWwoUmVs
YXRpb246Ok5vT3BlbmVyKSB8fCBoYXNSZWwoUmVsYXRpb246Ok5vUmVmZXJyZXIpIHx8ICghaGFz
UmVsKFJlbGF0aW9uOjpPcGVuZXIpICYmIGRvY3VtZW50KCkuc2V0dGluZ3MoKS5ibGFua0FuY2hv
clRhcmdldEltcGxpZXNOb09wZW5lckVuYWJsZWQoKSAmJiBpc0JsYW5rVGFyZ2V0RnJhbWVOYW1l
KGVmZmVjdGl2ZVRhcmdldCkpKQogICAgICAgICBuZXdGcmFtZU9wZW5lclBvbGljeSA9IE5ld0Zy
YW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzczsKIAogICAgIGF1dG8gcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQgPSBwYXJzZVByaXZhdGVDbGlja01lYXN1cmVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggOTc0MzRhNmE4Nzc2OGM1YzkwM2ZhNzQyNjU4Zjlm
YTFlZDViMGZkNi4uNTgzNWUwMDY1ZGVhMGUwOTg3NzQzMWMyZGZjYjMwM2JjOWIwNDVmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtNDI4LDcgKzQyOCw3IEBA
IHZvaWQgSFRNTEZvcm1FbGVtZW50OjpzdWJtaXQoRXZlbnQqIGV2ZW50LCBib29sIGFjdGl2YXRl
U3VibWl0QnV0dG9uLCBib29sIHByb2NlCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gcmVs
QXR0cmlidXRlcyA9IHBhcnNlRm9ybVJlbEF0dHJpYnV0ZXMoZ2V0QXR0cmlidXRlKEhUTUxOYW1l
czo6cmVsQXR0cikpOwotICAgIGlmIChyZWxBdHRyaWJ1dGVzLm5vb3BlbmVyIHx8IHJlbEF0dHJp
YnV0ZXMubm9yZWZlcnJlciB8fCAoIXJlbEF0dHJpYnV0ZXMub3BlbmVyICYmIGRvY3VtZW50KCku
c2V0dGluZ3MoKS5ibGFua0FuY2hvclRhcmdldEltcGxpZXNOb09wZW5lckVuYWJsZWQoKSAmJiBl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKGZvcm1TdWJtaXNzaW9uLT50YXJnZXQoKSwgIl9ibGFuayIp
KSkKKyAgICBpZiAocmVsQXR0cmlidXRlcy5ub29wZW5lciB8fCByZWxBdHRyaWJ1dGVzLm5vcmVm
ZXJyZXIgfHwgKCFyZWxBdHRyaWJ1dGVzLm9wZW5lciAmJiBkb2N1bWVudCgpLnNldHRpbmdzKCku
YmxhbmtBbmNob3JUYXJnZXRJbXBsaWVzTm9PcGVuZXJFbmFibGVkKCkgJiYgaXNCbGFua1Rhcmdl
dEZyYW1lTmFtZShmb3JtU3VibWlzc2lvbi0+dGFyZ2V0KCkpKSkKICAgICAgICAgZm9ybVN1Ym1p
c3Npb24tPnNldE5ld0ZyYW1lT3BlbmVyUG9saWN5KE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBw
cmVzcyk7CiAgICAgaWYgKHJlbEF0dHJpYnV0ZXMubm9yZWZlcnJlcikKICAgICAgICAgZm9ybVN1
Ym1pc3Npb24tPnNldFJlZmVycmVyUG9saWN5KFJlZmVycmVyUG9saWN5OjpOb1JlZmVycmVyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmNwcAppbmRleCA3YTI0YWEyMjcxZTk2M2FmNjc0MTEwYzQ2NmI4NjQ3YWFj
MTEzM2QzLi45ZGRmY2JiZjhiYjQ0OTdhYzcyZWI2OWIwYzA0NDczNGJlYjJhMDdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwuY3BwCkBAIC0yNjcsNyArMjY3LDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsOjpvcGVuVVJMRXh0ZXJuYWxseShjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBV
c2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3IgeyBQcm9jZXNzaW5nVXNlckdlc3R1cmUgfTsK
ICAgICBGcmFtZSYgbWFpbkZyYW1lID0gbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlci0+aW5zcGVj
dGVkUGFnZSgpLm1haW5GcmFtZSgpOwotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVx
dWVzdCB7ICptYWluRnJhbWUuZG9jdW1lbnQoKSwgbWFpbkZyYW1lLmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCksIHsgfSwgIl9ibGFuayJfcywgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25v
d24gfTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAqbWFpbkZyYW1l
LmRvY3VtZW50KCksIG1haW5GcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB7IH0s
IGJsYW5rVGFyZ2V0RnJhbWVOYW1lKCksIEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duIH07
CiAKICAgICBib29sIGNyZWF0ZWQ7CiAgICAgV2luZG93RmVhdHVyZXMgZmVhdHVyZXM7CkBAIC0y
ODAsNyArMjgwLDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpvcGVuVVJM
RXh0ZXJuYWxseShjb25zdCBTdHJpbmcmIHVybCkKIAogICAgIC8vIEZJWE1FOiBXaHkgZG8gd2Ug
Y29tcHV0ZSB0aGUgYWJzb2x1dGUgVVJMIHdpdGggcmVzcGVjdCB0byB8ZnJhbWV8IGluc3RlYWQg
b2YgfG1haW5GcmFtZXw/CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IGZy
YW1lLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpIH07Ci0gICAgRnJhbWVMb2FkUmVxdWVz
dCBmcmFtZUxvYWRSZXF1ZXN0MiB7ICptYWluRnJhbWUuZG9jdW1lbnQoKSwgbWFpbkZyYW1lLmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgIl9z
ZWxmIl9zLCBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93biB9OworICAgIEZyYW1lTG9hZFJl
cXVlc3QgZnJhbWVMb2FkUmVxdWVzdDIgeyAqbWFpbkZyYW1lLmRvY3VtZW50KCksIG1haW5GcmFt
ZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCks
IHNlbGZUYXJnZXRGcmFtZU5hbWUoKSwgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24gfTsK
ICAgICBmcmFtZS0+bG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oV1RGTW92ZShmcmFtZUxvYWRSZXF1
ZXN0MikpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggYzg5NDA2NzU4NWViMWUzZGM3OTI3NmQ5ZDBl
NGY3NTYyYzg0ZDgwMS4uMzM1N2JhMDFmZjlhYjM1ZWUwMTg0MDIzYTI1MDIwYjc1OTAxNjVmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcApAQCAtNDEzLDcgKzQxMyw3IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09y
PHZvaWQ+IEluc3BlY3RvclBhZ2VBZ2VudDo6bmF2aWdhdGUoY29uc3QgU3RyaW5nJiB1cmwpCiAg
ICAgRnJhbWUmIGZyYW1lID0gbV9pbnNwZWN0ZWRQYWdlLm1haW5GcmFtZSgpOwogCiAgICAgUmVz
b3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IGZyYW1lLmRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKHVybCkgfTsKLSAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAqZnJh
bWUuZG9jdW1lbnQoKSwgZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92
ZShyZXNvdXJjZVJlcXVlc3QpLCAiX3NlbGYiX3MsIEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtu
b3duIH07CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKmZyYW1lLmRv
Y3VtZW50KCksIGZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVz
b3VyY2VSZXF1ZXN0KSwgc2VsZlRhcmdldEZyYW1lTmFtZSgpLCBJbml0aWF0ZWRCeU1haW5GcmFt
ZTo6VW5rbm93biB9OwogICAgIGZyYW1lTG9hZFJlcXVlc3QuZGlzYWJsZU5hdmlnYXRpb25Ub0lu
dmFsaWRVUkwoKTsKICAgICBmcmFtZS5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihXVEZNb3ZlKGZy
YW1lTG9hZFJlcXVlc3QpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5k
ZXggZTVhNmNjMzAxYTk5Y2Q5MDQwYjAzYWIzN2E1NWM5NjJiMDk2ODRjZC4uMjA2M2VhZDk3YWFm
M2I0MWU1NDY4YWZlYmZjNDdjNDhhOTkzM2FmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCkBAIC05ODUsNyArOTg1LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTElu
dG9DaGlsZEZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVyZXIsIEYKICAg
ICBhdXRvKiBsZXhpY2FsRnJhbWUgPSBsZXhpY2FsRnJhbWVGcm9tQ29tbW9uVk0oKTsKICAgICBh
dXRvIGluaXRpYXRlZEJ5TWFpbkZyYW1lID0gbGV4aWNhbEZyYW1lICYmIGxleGljYWxGcmFtZS0+
aXNNYWluRnJhbWUoKSA/IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpZZXMgOiBJbml0aWF0ZWRCeU1h
aW5GcmFtZTo6VW5rbm93bjsKIAotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVz
dCB7ICptX2ZyYW1lLmRvY3VtZW50KCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKSwgeyB1cmwgfSwgIl9zZWxmIl9zLCBpbml0aWF0ZWRCeU1haW5GcmFtZSB9OworICAgIEZy
YW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICptX2ZyYW1lLmRvY3VtZW50KCksIG1f
ZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgeyB1cmwgfSwgc2VsZlRhcmdldEZy
YW1lTmFtZSgpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSB9OwogICAgIGZyYW1lTG9hZFJlcXVlc3Qu
c2V0TmV3RnJhbWVPcGVuZXJQb2xpY3koTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzKTsK
ICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tCYWNrRm9yd2FyZExpc3QoTG9ja0JhY2tGb3J3
YXJkTGlzdDo6WWVzKTsKICAgICBjaGlsZEZyYW1lLT5sb2FkZXIoKS5sb2FkVVJMKFdURk1vdmUo
ZnJhbWVMb2FkUmVxdWVzdCksIHJlZmVyZXIsIEZyYW1lTG9hZFR5cGU6OlJlZGlyZWN0V2l0aExv
Y2tlZEJhY2tGb3J3YXJkTGlzdCwgbnVsbHB0ciwgeyB9LCBzdGQ6Om51bGxvcHQsIFtdIHsgfSk7
CkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9h
ZFJlcXVlc3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZgogICAgIC8vIFRo
ZSBzZWFyY2ggZm9yIGEgdGFyZ2V0IGZyYW1lIGlzIGRvbmUgZWFybGllciBpbiB0aGUgY2FzZSBv
ZiBmb3JtIHN1Ym1pc3Npb24uCiAgICAgYXV0byB0YXJnZXRGcmFtZSA9IGlzRm9ybVN1Ym1pc3Np
b24gPyBudWxscHRyIDogUmVmUHRyIHsgZmluZEZyYW1lRm9yTmF2aWdhdGlvbihlZmZlY3RpdmVG
cmFtZU5hbWUpIH07CiAgICAgaWYgKHRhcmdldEZyYW1lICYmIHRhcmdldEZyYW1lICE9ICZtX2Zy
YW1lKSB7Ci0gICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0RnJhbWVOYW1lKCJfc2VsZiIpOwor
ICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldEZyYW1lTmFtZShzZWxmVGFyZ2V0RnJhbWVOYW1l
KCkpOwogICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZFVSTChXVEZNb3ZlKGZyYW1l
TG9hZFJlcXVlc3QpLCByZWZlcnJlciwgbmV3TG9hZFR5cGUsIGV2ZW50LCBXVEZNb3ZlKGZvcm1T
dGF0ZSksIFdURk1vdmUocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpLCBjb21wbGV0aW9uSGFuZGxl
ckNhbGxlci5yZWxlYXNlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTM3Niw3ICsx
Mzc2LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJh
bWVMb2FkUmVxdWVzdCwgY29uc3QgU3RyaW5nJiByZWYKIAogICAgICAgICAvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnLyN0aGUtcnVsZXMtZm9yLWNob29zaW5nLWEtYnJvd3NpbmctY29u
dGV4dC1naXZlbi1hLWJyb3dzaW5nLWNvbnRleHQtbmFtZSAoU3RlcCA4LjIpCiAgICAgICAgIGlm
IChmcmFtZUxvYWRSZXF1ZXN0LnJlcXVlc3RlcigpLnNob3VsZEZvcmNlTm9PcGVuZXJCYXNlZE9u
Q09PUCgpKSB7Ci0gICAgICAgICAgICBlZmZlY3RpdmVGcmFtZU5hbWUgPSAiX2JsYW5rIl9zOwor
ICAgICAgICAgICAgZWZmZWN0aXZlRnJhbWVOYW1lID0gYmxhbmtUYXJnZXRGcmFtZU5hbWUoKTsK
ICAgICAgICAgICAgIG9wZW5lclBvbGljeSA9IE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVz
czsKICAgICAgICAgfQogCkBAIC0zMDgyLDcgKzMwODIsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjps
b2FkUG9zdFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYg
cmVmZQogCiAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI3RoZS1ydWxl
cy1mb3ItY2hvb3NpbmctYS1icm93c2luZy1jb250ZXh0LWdpdmVuLWEtYnJvd3NpbmctY29udGV4
dC1uYW1lIChTdGVwIDguMikKICAgICAgICAgaWYgKHJlcXVlc3QucmVxdWVzdGVyKCkuc2hvdWxk
Rm9yY2VOb09wZW5lckJhc2VkT25DT09QKCkpIHsKLSAgICAgICAgICAgIGZyYW1lTmFtZSA9ICJf
YmxhbmsiX3M7CisgICAgICAgICAgICBmcmFtZU5hbWUgPSBibGFua1RhcmdldEZyYW1lTmFtZSgp
OwogICAgICAgICAgICAgb3BlbmVyUG9saWN5ID0gTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHBy
ZXNzOwogICAgICAgICB9CiAKQEAgLTM1NzQsNyArMzU3NCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzCiAgICAgaWYgKHNhbmRib3hGbGFncyAmIFNhbmRib3hQcm9wYWdhdGVzVG9BdXhpbGlh
cnlCcm93c2luZ0NvbnRleHRzKQogICAgICAgICBtYWluRnJhbWUtPmxvYWRlcigpLmZvcmNlU2Fu
ZGJveEZsYWdzKHNhbmRib3hGbGFncyk7CiAKLSAgICBpZiAoIWVxdWFsSWdub3JpbmdBU0NJSUNh
c2UoZnJhbWVOYW1lLCAiX2JsYW5rIikpCisgICAgaWYgKCFpc0JsYW5rVGFyZ2V0RnJhbWVOYW1l
KGZyYW1lTmFtZSkpCiAgICAgICAgIG1haW5GcmFtZS0+dHJlZSgpLnNldE5hbWUoZnJhbWVOYW1l
KTsKIAogICAgIG1haW5GcmFtZS0+cGFnZSgpLT5zZXRPcGVuZWRCeURPTSgpOwpAQCAtNDEwNSw5
ICs0MTA1LDkgQEAgUmVmUHRyPEZyYW1lPiBjcmVhdGVXaW5kb3coRnJhbWUmIG9wZW5lckZyYW1l
LCBGcmFtZSYgbG9va3VwRnJhbWUsIEZyYW1lTG9hZFJlcXUKICAgICBpZiAocmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzSmF2YVNjcmlwdCgpICYmICFvcGVuZXJGcmFt
ZS5kb2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dKYXZhU2NyaXB0VVJM
cyhvcGVuZXJGcmFtZS5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSwgeyB9LCByZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpLnVybCgpLnN0cmluZygpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICBpZiAoIXJlcXVlc3QuZnJhbWVOYW1lKCkuaXNFbXB0eSgpICYmICFlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKHJlcXVlc3QuZnJhbWVOYW1lKCksICJfYmxhbmsiKSkgeworICAgIGlmICgh
cmVxdWVzdC5mcmFtZU5hbWUoKS5pc0VtcHR5KCkgJiYgIWlzQmxhbmtUYXJnZXRGcmFtZU5hbWUo
cmVxdWVzdC5mcmFtZU5hbWUoKSkpIHsKICAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gZnJhbWUg
PSBsb29rdXBGcmFtZS5sb2FkZXIoKS5maW5kRnJhbWVGb3JOYXZpZ2F0aW9uKHJlcXVlc3QuZnJh
bWVOYW1lKCksIG9wZW5lckZyYW1lLmRvY3VtZW50KCkpKSB7Ci0gICAgICAgICAgICBpZiAoIWVx
dWFsSWdub3JpbmdBU0NJSUNhc2UocmVxdWVzdC5mcmFtZU5hbWUoKSwgIl9zZWxmIikpIHsKKyAg
ICAgICAgICAgIGlmICghaXNTZWxmVGFyZ2V0RnJhbWVOYW1lKHJlcXVlc3QuZnJhbWVOYW1lKCkp
KSB7CiAgICAgICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKQogICAg
ICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5mb2N1cygpOwogICAgICAgICAgICAgfQpA
QCAtNDExNyw3ICs0MTE3LDcgQEAgUmVmUHRyPEZyYW1lPiBjcmVhdGVXaW5kb3coRnJhbWUmIG9w
ZW5lckZyYW1lLCBGcmFtZSYgbG9va3VwRnJhbWUsIEZyYW1lTG9hZFJlcXUKIAogICAgIC8vIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI3RoZS1ydWxlcy1mb3ItY2hvb3NpbmctYS1icm93
c2luZy1jb250ZXh0LWdpdmVuLWEtYnJvd3NpbmctY29udGV4dC1uYW1lIChTdGVwIDguMikKICAg
ICBpZiAob3BlbmVyRnJhbWUuZG9jdW1lbnQoKS0+c2hvdWxkRm9yY2VOb09wZW5lckJhc2VkT25D
T09QKCkpIHsKLSAgICAgICAgcmVxdWVzdC5zZXRGcmFtZU5hbWUoIl9ibGFuayJfcyk7CisgICAg
ICAgIHJlcXVlc3Quc2V0RnJhbWVOYW1lKGJsYW5rVGFyZ2V0RnJhbWVOYW1lKCkpOwogICAgICAg
ICBmZWF0dXJlcy5ub29wZW5lciA9IHRydWU7CiAgICAgfQogCkBAIC00MTQ5LDcgKzQxNDksNyBA
QCBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhGcmFtZSYgb3BlbmVyRnJhbWUsIEZyYW1lJiBs
b29rdXBGcmFtZSwgRnJhbWVMb2FkUmVxdQogICAgIGlmIChpc0RvY3VtZW50U2FuZGJveGVkKG9w
ZW5lckZyYW1lLCBTYW5kYm94UHJvcGFnYXRlc1RvQXV4aWxpYXJ5QnJvd3NpbmdDb250ZXh0cykp
CiAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS5mb3JjZVNhbmRib3hGbGFncyhvcGVuZXJGcmFtZS5k
b2N1bWVudCgpLT5zYW5kYm94RmxhZ3MoKSk7CiAKLSAgICBpZiAoIWVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UocmVxdWVzdC5mcmFtZU5hbWUoKSwgIl9ibGFuayIpKQorICAgIGlmICghaXNCbGFua1Rh
cmdldEZyYW1lTmFtZShyZXF1ZXN0LmZyYW1lTmFtZSgpKSkKICAgICAgICAgZnJhbWUtPnRyZWUo
KS5zZXROYW1lKHJlcXVlc3QuZnJhbWVOYW1lKCkpOwogCiAgICAgcGFnZS0+Y2hyb21lKCkuc2V0
VG9vbGJhcnNWaXNpYmxlKGZlYXR1cmVzLnRvb2xCYXJWaXNpYmxlIHx8IGZlYXR1cmVzLmxvY2F0
aW9uQmFyVmlzaWJsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdh
dGlvblNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVk
dWxlci5jcHAKaW5kZXggNmQ3NGM3Y2QzOTNkYTVhNmY0NWUwZGQwZTU5YTE1N2ZhNjMzOTVjNS4u
ZjZiNTY4Y2YzZTZlNGIxYjc1ODA5ODVkMGIyZDQ2OGI5YWIyOWVmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcApAQCAtMTk0LDcgKzE5NCw3IEBA
IHB1YmxpYzoKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IHVybCgp
LCByZWZlcnJlcigpLCByZWZyZXNoID8gUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlbG9h
ZElnbm9yaW5nQ2FjaGVEYXRhIDogUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlVzZVByb3Rv
Y29sQ2FjaGVQb2xpY3kgfTsKICAgICAgICAgaWYgKGluaXRpYXRlZEJ5TWFpbkZyYW1lKCkgPT0g
SW5pdGlhdGVkQnlNYWluRnJhbWU6OlllcykKICAgICAgICAgICAgIHJlc291cmNlUmVxdWVzdC5z
ZXRSZXF1ZXN0ZXIoUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4pOwotICAgICAgICBG
cmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwg
KnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgIl9zZWxmIiwgaW5p
dGlhdGVkQnlNYWluRnJhbWUoKSB9OworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9h
ZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNlY3VyaXR5T3JpZ2luKCksIFdURk1v
dmUocmVzb3VyY2VSZXF1ZXN0KSwgc2VsZlRhcmdldEZyYW1lTmFtZSgpLCBpbml0aWF0ZWRCeU1h
aW5GcmFtZSgpIH07CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0hpc3RvcnkobG9j
a0hpc3RvcnkoKSk7CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0JhY2tGb3J3YXJk
TGlzdChsb2NrQmFja0ZvcndhcmRMaXN0KCkpOwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LmRp
c2FibGVOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMKCk7CkBAIC0yMjYsNyArMjI2LDcgQEAgcHVibGlj
OgogICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yIHsgdXNlckdl
c3R1cmVUb0ZvcndhcmQoKSB9OwogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJl
cXVlc3QgeyB1cmwoKSwgcmVmZXJyZXIoKSwgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlVz
ZVByb3RvY29sQ2FjaGVQb2xpY3kgfTsKLSAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxv
YWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0RvY3VtZW50KCksICpzZWN1cml0eU9yaWdpbigpLCBXVEZN
b3ZlKHJlc291cmNlUmVxdWVzdCksICJfc2VsZiIsIGluaXRpYXRlZEJ5TWFpbkZyYW1lKCkgfTsK
KyAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0Rv
Y3VtZW50KCksICpzZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIHNl
bGZUYXJnZXRGcmFtZU5hbWUoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9OwogICAgICAgICBm
cmFtZUxvYWRSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGxvY2tIaXN0b3J5KCkpOwogICAgICAgICBm
cmFtZUxvYWRSZXF1ZXN0LnNldExvY2tCYWNrRm9yd2FyZExpc3QobG9ja0JhY2tGb3J3YXJkTGlz
dCgpKTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5kaXNhYmxlTmF2aWdhdGlvblRvSW52YWxp
ZFVSTCgpOwpAQCAtMjUzLDcgKzI1Myw3IEBAIHB1YmxpYzoKICAgICAgICAgVXNlckdlc3R1cmVJ
bmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvciB7IHVzZXJHZXN0dXJlVG9Gb3J3YXJkKCkgfTsKIAog
ICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0IHsgdXJsKCksIHJlZmVycmVy
KCksIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5OjpSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSB9
OwotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5n
RG9jdW1lbnQoKSwgKnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwg
Il9zZWxmIiwgaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9OworICAgICAgICBGcmFtZUxvYWRSZXF1
ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNlY3VyaXR5T3Jp
Z2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgc2VsZlRhcmdldEZyYW1lTmFtZSgpLCBp
bml0aWF0ZWRCeU1haW5GcmFtZSgpIH07CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9j
a0hpc3RvcnkobG9ja0hpc3RvcnkoKSk7CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9j
a0JhY2tGb3J3YXJkTGlzdChsb2NrQmFja0ZvcndhcmRMaXN0KCkpOwogICAgICAgICBmcmFtZUxv
YWRSZXF1ZXN0LnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koc2hvdWxkT3BlbkV4dGVy
bmFsVVJMcygpKTsKQEAgLTI3Nyw3ICsyNzcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghbV9o
aXN0b3J5U3RlcHMpIHsKICAgICAgICAgICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgZ28oMCkgZnJv
bSBhIGZyYW1lIC0+IHJlbG9hZCBvbmx5IHRoZSBmcmFtZQogICAgICAgICAgICAgLy8gVG8gZm9s
bG93IEZpcmVmb3ggYW5kIElFJ3MgYmVoYXZpb3IsIGhpc3RvcnkgcmVsb2FkIGNhbiBvbmx5IG5h
dmlnYXRlIHRoZSBzZWxmIGZyYW1lLgotICAgICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdl
TG9jYXRpb24oZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCksICJfc2VsZiIsIDAsIFJlZmVycmVyUG9s
aWN5OjpFbXB0eVN0cmluZywgc2hvdWxkT3BlbkV4dGVybmFsVVJMcygpKTsKKyAgICAgICAgICAg
IGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKGZyYW1lLmRvY3VtZW50KCktPnVybCgpLCBz
ZWxmVGFyZ2V0RnJhbWVOYW1lKCksIDAsIFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZywgc2hv
dWxkT3BlbkV4dGVybmFsVVJMcygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgICAgICAKQEAgLTQ3MCw3ICs0NzAsNyBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNj
aGVkdWxlTG9jYXRpb25DaGFuZ2UoRG9jdW1lbnQmIGluaXRpYXRpbmdEb2N1bWVudCwgUwogICAg
ICAgICBhdXRvKiBmcmFtZSA9IGxleGljYWxGcmFtZUZyb21Db21tb25WTSgpOwogICAgICAgICBh
dXRvIGluaXRpYXRlZEJ5TWFpbkZyYW1lID0gZnJhbWUgJiYgZnJhbWUtPmlzTWFpbkZyYW1lKCkg
PyBJbml0aWF0ZWRCeU1haW5GcmFtZTo6WWVzIDogSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25v
d247CiAgICAgICAgIAotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3Qg
eyBpbml0aWF0aW5nRG9jdW1lbnQsIHNlY3VyaXR5T3JpZ2luLCBXVEZNb3ZlKHJlc291cmNlUmVx
dWVzdCksICJfc2VsZiJfcywgaW5pdGlhdGVkQnlNYWluRnJhbWUgfTsKKyAgICAgICAgRnJhbWVM
b2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0RvY3VtZW50LCBzZWN1cml0
eU9yaWdpbiwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBzZWxmVGFyZ2V0RnJhbWVOYW1lKCks
IGluaXRpYXRlZEJ5TWFpbkZyYW1lIH07CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9j
a0hpc3RvcnkobG9ja0hpc3RvcnkpOwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tC
YWNrRm9yd2FyZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCk7CiAgICAgICAgIGZyYW1lTG9hZFJl
cXVlc3QuZGlzYWJsZU5hdmlnYXRpb25Ub0ludmFsaWRVUkwoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxFbGVtZW50LmNwcAppbmRleCBiNWY0ZjUxMWE1MzdiMzYzOGE5NzJiMzFmY2ZiOTQx
YzRhZjI1ZmZkLi41MjMwYTY4ZGI2MTRlNjdlNjVkMTFhOGZlMTQ0ZWY5NjZmY2VlYzZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCkBAIC0xOTgsNyArMTk4LDcgQEAg
dm9pZCBNYXRoTUxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKICAg
ICAgICAgICAgIGNvbnN0IGF1dG8mIHVybCA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNw
YWNlcyhocmVmKTsKICAgICAgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAg
ICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgICAg
ICAgICAgZnJhbWUtPmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKGRvY3VtZW50KCkuY29tcGxldGVV
UkwodXJsKSwgIl9zZWxmIiwgJmV2ZW50LCBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcsIGRv
Y3VtZW50KCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkpOworICAg
ICAgICAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihkb2N1bWVudCgpLmNv
bXBsZXRlVVJMKHVybCksIHNlbGZUYXJnZXRGcmFtZU5hbWUoKSwgJmV2ZW50LCBSZWZlcnJlclBv
bGljeTo6RW1wdHlTdHJpbmcsIGRvY3VtZW50KCkuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eVRvUHJvcGFnYXRlKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDViOWVlYTA3NTIwMTRhZWRhM2U0MjliZWNl
ODE2MWU3YmM2MjJiODQuLjY0NmJjZjgzODAzODZjMDljY2Y4ZTM5MTM2NGYzOWM5MjliNjlhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTI1MzksNyArMjUzOSw3IEBAIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxGcmFtZT4+IERPTVdpbmRvdzo6Y3JlYXRlV2luZG93KGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nLCBjb25zCiAgICAgaWYgKGNyZWF0ZWQpIHsKICAgICAgICAgUmVzb3VyY2VS
ZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IGNvbXBsZXRlZFVSTCwgcmVmZXJyZXIsIFJlc291cmNl
UmVxdWVzdENhY2hlUG9saWN5OjpVc2VQcm90b2NvbENhY2hlUG9saWN5IH07CiAgICAgICAgIEZy
YW1lTG9hZGVyOjphZGRTYW1lU2l0ZUluZm9Ub1JlcXVlc3RJZk5lZWRlZChyZXNvdXJjZVJlcXVl
c3QsIG9wZW5lckZyYW1lLmRvY3VtZW50KCkpOwotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZy
YW1lTG9hZFJlcXVlc3QgeyAqYWN0aXZlV2luZG93LmRvY3VtZW50KCksIGFjdGl2ZVdpbmRvdy5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksICJf
c2VsZiJfcywgaW5pdGlhdGVkQnlNYWluRnJhbWUgfTsKKyAgICAgICAgRnJhbWVMb2FkUmVxdWVz
dCBmcmFtZUxvYWRSZXF1ZXN0IHsgKmFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLCBhY3RpdmVXaW5k
b3cuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3Qp
LCBzZWxmVGFyZ2V0RnJhbWVOYW1lKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lIH07CiAgICAgICAg
IGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShhY3RpdmVE
b2N1bWVudC0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkpOwogICAg
ICAgICBuZXdGcmFtZS0+bG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oV1RGTW92ZShmcmFtZUxvYWRS
ZXF1ZXN0KSk7CiAgICAgfSBlbHNlIGlmICghdXJsU3RyaW5nLmlzRW1wdHkoKSkgewpAQCAtMjYw
OCw5ICsyNjA4LDkgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPFdpbmRvd1Byb3h5Pj4gRE9NV2luZG93
OjpvcGVuKERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBET01XaW4KICAgICAvLyBHZXQgdGhlIHRh
cmdldCBmcmFtZSBmb3IgdGhlIHNwZWNpYWwgY2FzZXMgb2YgX3RvcCBhbmQgX3BhcmVudC4KICAg
ICAvLyBJbiB0aG9zZSBjYXNlcywgd2Ugc2NoZWR1bGUgYSBsb2NhdGlvbiBjaGFuZ2UgcmlnaHQg
bm93IGFuZCByZXR1cm4gZWFybHkuCiAgICAgUmVmUHRyPEZyYW1lPiB0YXJnZXRGcmFtZTsKLSAg
ICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShmcmFtZU5hbWUsICJfdG9wIikpCisgICAgaWYg
KGlzVG9wVGFyZ2V0RnJhbWVOYW1lKGZyYW1lTmFtZSkpCiAgICAgICAgIHRhcmdldEZyYW1lID0g
JmZyYW1lLT50cmVlKCkudG9wKCk7Ci0gICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShmcmFtZU5hbWUsICJfcGFyZW50IikpIHsKKyAgICBlbHNlIGlmIChpc1BhcmVudFRhcmdldEZy
YW1lTmFtZShmcmFtZU5hbWUpKSB7CiAgICAgICAgIGlmIChSZWZQdHIgcGFyZW50ID0gZnJhbWUt
PnRyZWUoKS5wYXJlbnQoKSkKICAgICAgICAgICAgIHRhcmdldEZyYW1lID0gcGFyZW50OwogICAg
ICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5kZXggYzJjN2QwZDEyZWQ2Y2Fk
NTUzN2U1NjY1OGZhOWE3MGI4YmZlMTlkYS4uNjUzZmUxNzVmMzZjNWJmYTAzNWY2YzExNzFhNmQz
NGQyYjRjODIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcApAQCAtMTAzLDcgKzEwMyw3
IEBAIHZvaWQgRnJhbWVUcmVlOjpyZW1vdmVDaGlsZChGcmFtZSYgY2hpbGQpCiBBdG9tU3RyaW5n
IEZyYW1lVHJlZTo6dW5pcXVlQ2hpbGROYW1lKGNvbnN0IEF0b21TdHJpbmcmIHJlcXVlc3RlZE5h
bWUpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhlIHJlcXVlc3RlZCBuYW1lICh0aGUgZnJhbWUncyAi
bmFtZSIgYXR0cmlidXRlKSBpcyB1bmlxdWUsIGp1c3QgdXNlIHRoYXQuCi0gICAgaWYgKCFyZXF1
ZXN0ZWROYW1lLmlzRW1wdHkoKSAmJiAhY2hpbGQocmVxdWVzdGVkTmFtZSkgJiYgIWVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UocmVxdWVzdGVkTmFtZSwgIl9ibGFuayIpKQorICAgIGlmICghcmVxdWVz
dGVkTmFtZS5pc0VtcHR5KCkgJiYgIWNoaWxkKHJlcXVlc3RlZE5hbWUpICYmICFpc0JsYW5rVGFy
Z2V0RnJhbWVOYW1lKHJlcXVlc3RlZE5hbWUpKQogICAgICAgICByZXR1cm4gcmVxdWVzdGVkTmFt
ZTsKIAogICAgIC8vIFRoZSAibmFtZSIgYXR0cmlidXRlIHdhcyBub3QgdW5pcXVlIG9yIGFic2Vu
dC4gR2VuZXJhdGUgYSBuYW1lIGJhc2VkIG9uIGEgY291bnRlciBvbiB0aGUgbWFpbiBmcmFtZSB0
aGF0IGdldHMgcmVzZXQKQEAgLTIzNywxOCArMjM3LDE3IEBAIHN0YXRpYyBib29sIGlzRnJhbWVG
YW1pbGlhcldpdGgoRnJhbWUmIGZyYW1lQSwgRnJhbWUmIGZyYW1lQikKIAogRnJhbWUqIEZyYW1l
VHJlZTo6ZmluZChjb25zdCBBdG9tU3RyaW5nJiBuYW1lLCBGcmFtZSYgYWN0aXZlRnJhbWUpIGNv
bnN0CiB7Ci0gICAgLy8gRklYTUU6IF9jdXJyZW50IGlzIG5vdCBwYXJ0IG9mIHRoZSBIVE1MIHNw
ZWNpZmljYXRpb24uCi0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIl9zZWxm
IikgfHwgbmFtZSA9PSAiX2N1cnJlbnQiIHx8IG5hbWUuaXNFbXB0eSgpKQorICAgIGlmIChpc1Nl
bGZUYXJnZXRGcmFtZU5hbWUobmFtZSkpCiAgICAgICAgIHJldHVybiAmbV90aGlzRnJhbWU7CiAg
ICAgCi0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIl90b3AiKSkKKyAgICBp
ZiAoaXNUb3BUYXJnZXRGcmFtZU5hbWUobmFtZSkpCiAgICAgICAgIHJldHVybiAmdG9wKCk7CiAg
ICAgCi0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIl9wYXJlbnQiKSkKKyAg
ICBpZiAoaXNQYXJlbnRUYXJnZXRGcmFtZU5hbWUobmFtZSkpCiAgICAgICAgIHJldHVybiBwYXJl
bnQoKSA/IHBhcmVudCgpIDogJm1fdGhpc0ZyYW1lOwogCi0gICAgLy8gU2luY2UgIl9ibGFuayIg
c2hvdWxkIG5ldmVyIGJlIGFueSBmcmFtZSdzIG5hbWUsIHRoZSBmb2xsb3dpbmcgaXMgb25seSBh
biBvcHRpbWl6YXRpb24uCi0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIl9i
bGFuayIpKQorICAgIC8vIFNpbmNlICJfYmxhbmsiIGNhbm5vdCBiZSBhIGZyYW1lJ3MgbmFtZSwg
dGhpcyBjaGVjayBpcyBhbiBvcHRpbWl6YXRpb24sIG5vdCBmb3IgY29ycmVjdG5lc3MuCisgICAg
aWYgKGlzQmxhbmtUYXJnZXRGcmFtZU5hbWUobmFtZSkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgLy8gU2VhcmNoIHN1YnRyZWUgc3RhcnRpbmcgd2l0aCB0aGlzIGZyYW1lIGZpcnN0
LgpAQCAtMjY0LDExICsyNjMsMTEgQEAgRnJhbWUqIEZyYW1lVHJlZTo6ZmluZChjb25zdCBBdG9t
U3RyaW5nJiBuYW1lLCBGcmFtZSYgYWN0aXZlRnJhbWUpIGNvbnN0CiAgICAgfQogCiAgICAgLy8g
U2VhcmNoIHRoZSBlbnRpcmUgdHJlZSBvZiBlYWNoIG9mIHRoZSBvdGhlciBwYWdlcyBpbiB0aGlz
IG5hbWVzcGFjZS4KLSAgICAvLyBGSVhNRTogSXMgcmFuZG9tIG9yZGVyIE9LPwogICAgIFBhZ2Uq
IHBhZ2UgPSBtX3RoaXNGcmFtZS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAKKyAgICAvLyBGSVhNRTogVGhlc2UgcGFnZXMgYXJlIHNlYXJjaGVk
IGluIHJhbmRvbSBvcmRlcjsgdGhhdCBkb2Vzbid0IHNlZW0gZ29vZC4gTWF5YmUgdXNlIG9yZGVy
IG9mIGNyZWF0aW9uPwogICAgIGZvciAoYXV0byYgb3RoZXJQYWdlIDogcGFnZS0+Z3JvdXAoKS5w
YWdlcygpKSB7CiAgICAgICAgIGlmICgmb3RoZXJQYWdlID09IHBhZ2UgfHwgb3RoZXJQYWdlLmlz
Q2xvc2luZygpKQogICAgICAgICAgICAgY29udGludWU7CkBAIC00NjAsNiArNDU5LDM4IEBAIEZy
YW1lJiBGcmFtZVRyZWU6OnRvcCgpIGNvbnN0CiAgICAgcmV0dXJuICpmcmFtZTsKIH0KIAorQVND
SUlMaXRlcmFsIGJsYW5rVGFyZ2V0RnJhbWVOYW1lKCkKK3sKKyAgICByZXR1cm4gIl9ibGFuayJf
czsKK30KKworLy8gRklYTUU6IElzIGl0IGltcG9ydGFudCB0byBoYXZlIHRoaXM/IENhbid0IHdl
IGp1c3QgdXNlIHRoZSBlbXB0eSBzdHJpbmcgZXZlcnl3aGVyZSB0aGlzIGlzIHVzZWQsIGluc3Rl
YWQ/CitBU0NJSUxpdGVyYWwgc2VsZlRhcmdldEZyYW1lTmFtZSgpCit7CisgICAgcmV0dXJuICJf
c2VsZiJfczsKK30KKworYm9vbCBpc0JsYW5rVGFyZ2V0RnJhbWVOYW1lKFN0cmluZ1ZpZXcgbmFt
ZSkKK3sKKyAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIl9i
bGFuayIpOworfQorCitib29sIGlzUGFyZW50VGFyZ2V0RnJhbWVOYW1lKFN0cmluZ1ZpZXcgbmFt
ZSkKK3sKKyAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIl9w
YXJlbnQiKTsKK30KKworYm9vbCBpc1NlbGZUYXJnZXRGcmFtZU5hbWUoU3RyaW5nVmlldyBuYW1l
KQoreworICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBzaG91bGQgcmVtb3ZlIF9jdXJyZW50LCB3
aGljaCBpcyBub3QgcGFydCBvZiB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uLgorICAgIHJldHVybiBu
YW1lLmlzRW1wdHkoKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiX3Nl
bGYiKSB8fCBuYW1lID09ICJfY3VycmVudCI7Cit9CisKK2Jvb2wgaXNUb3BUYXJnZXRGcmFtZU5h
bWUoU3RyaW5nVmlldyBuYW1lKQoreworICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiX3RvcCIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNp
Zm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaAppbmRleCAyMjliMWQ2OTJiM2YxNzNm
N2UzNDgwYjM2NzUwNWJhNWM3MWI0MTRlLi42NDBjYzllODczZTg5NjczYTNjZmRhNWIzOWFiMjcx
ZDY1YTlhZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKQEAgLTEwNyw2ICsxMDcsMTQgQEAg
cHJpdmF0ZToKICAgICBtdXRhYmxlIHVpbnQ2NF90IG1fZnJhbWVJREdlbmVyYXRvciB7IDAgfTsK
IH07CiAKK0FTQ0lJTGl0ZXJhbCBibGFua1RhcmdldEZyYW1lTmFtZSgpOworQVNDSUlMaXRlcmFs
IHNlbGZUYXJnZXRGcmFtZU5hbWUoKTsKKworYm9vbCBpc0JsYW5rVGFyZ2V0RnJhbWVOYW1lKFN0
cmluZ1ZpZXcpOworYm9vbCBpc1BhcmVudFRhcmdldEZyYW1lTmFtZShTdHJpbmdWaWV3KTsKK2Jv
b2wgaXNTZWxmVGFyZ2V0RnJhbWVOYW1lKFN0cmluZ1ZpZXcpOworYm9vbCBpc1RvcFRhcmdldEZy
YW1lTmFtZShTdHJpbmdWaWV3KTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjaWYgRU5B
QkxFKFRSRUVfREVCVUdHSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKaW5kZXggMWNk
NmNkODQ3N2E1NWFjNThhMGY5M2RhZDgyNjNjNzU0ZTE0YTUwZi4uYzNhNDA2ZTA4MTk0YjQxM2M5
OWQ0OGNlNjNiMmJhMjVkZmZhZjQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBA
IC0xMzYsNyArMTM2LDcgQEAgdm9pZCBTVkdBRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCYgZXZlbnQpCiAKICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSB0aGlzLT50YXJnZXQo
KTsKICAgICAgICAgICAgIGlmICh0YXJnZXQuaXNFbXB0eSgpICYmIGF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oWExpbmtOYW1lczo6c2hvd0F0dHIpID09ICJuZXciKQotICAgICAgICAg
ICAgICAgIHRhcmdldCA9ICJfYmxhbmsiOworICAgICAgICAgICAgICAgIHRhcmdldCA9IGJsYW5r
VGFyZ2V0RnJhbWVOYW1lKCk7CiAgICAgICAgICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgp
OwogCiAgICAgICAgICAgICBSZWZQdHIgZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7Cg==
</data>
<flag name="review"
          id="467396"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>