<?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>12260</bug_id>
          
          <creation_ts>2007-01-13 21:54:42 -0800</creation_ts>
          <short_desc>Windows platform build is not maintained</short_desc>
          <delta_ts>2007-01-27 20:53:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>420+</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Laszlo Gombos">gombi.webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gombi.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>35149</commentid>
    <comment_count>0</comment_count>
    <who name="Laszlo Gombos">gombi.webkit</who>
    <bug_when>2007-01-13 21:54:42 -0800</bug_when>
    <thetext>Windows platform  build is not maintained</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35151</commentid>
    <comment_count>1</comment_count>
      <attachid>12422</attachid>
    <who name="Laszlo Gombos">gombi.webkit</who>
    <bug_when>2007-01-13 22:18:58 -0800</bug_when>
    <thetext>Created attachment 12422
Various fixes to make sure the Windows port compiles.

Various fixes to make sure the Windows port compiles. This still leaves some (~20) linking error unresolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35125</commentid>
    <comment_count>2</comment_count>
      <attachid>12422</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-01-14 01:09:47 -0800</bug_when>
    <thetext>Comment on attachment 12422
Various fixes to make sure the Windows port compiles.

 }
-
 void FrameLoader::submitForm(const FrameLoadRequest&amp; request, Event*)

    There should be blank lines between functions.

-        virtual bool canTakeFocus(FocusDirection) = 0;
-        virtual void takeFocus(FocusDirection) = 0;
+        virtual bool canTakeFocus(WebCore::FocusDirection) = 0;
+        virtual void takeFocus(WebCore::FocusDirection) = 0;

    The whole ChromeClient class declaration is in WebCore namespace, so this shouldn&apos;t be needed (same with ContextMenuClient).

+bool ChromeClientWin::canTakeFocus (WebCore::FocusDirection)

    There should be no space after canTakeFocus.

+    notImplemented();
+	return false;

    The patch has a lot of tabs - please replace them with spaces.

 }
 
+
+void WebFrameLoaderClient::assignIdentifierToInitialRequest(unsigned long, WebCore::DocumentLoader*, const WebCore::ResourceRequest&amp;)

    Why did you add this blank line?

    Please include a ChangeLog with the patch.

  r- for the style issues. What are the remaining link errors?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35043</commentid>
    <comment_count>3</comment_count>
      <attachid>12429</attachid>
    <who name="Laszlo Gombos">gombi.webkit</who>
    <bug_when>2007-01-14 09:04:46 -0800</bug_when>
    <thetext>Created attachment 12429
Various fixes to make sure the Windows port compiles

Thanks for the review. I made the suggested changes + some additional fixes I found.

The remaining link errors on Win platform:

webcore.lib(FrameLoader.obj) : error LNK2001: unresolved external symbol &quot;public: static void __cdecl WebCore::ResourceHandle::loadResourceSynchronously(struct WebCore::ResourceRequest const &amp;,class WebCore::ResourceError &amp;,class WebCore::ResourceResponse &amp;,class WTF::Vector&lt;char,0&gt; &amp;)&quot; (?loadResourceSynchronously@ResourceHandle@WebCore@@SAXABUResourceRequest@2@AAVResourceError@2@AAVResourceResponse@2@AAV?$Vector@D$0A@@WTF@@@Z)
webcore.lib(FrameLoader.obj) : error LNK2001: unresolved external symbol &quot;public: bool __thiscall WebCore::DocumentLoader::getResponseModifiedHeader(class WebCore::String &amp;)const &quot; (?getResponseModifiedHeader@DocumentLoader@WebCore@@QBE_NAAVString@2@@Z)
webcore.lib(SubresourceLoader.obj) : error LNK2001: unresolved external symbol &quot;public: unsigned int __thiscall WebCore::SharedBuffer::size(void)const &quot; (?size@SharedBuffer@WebCore@@QBEIXZ)
webcore.lib(SubresourceLoader.obj) : error LNK2001: unresolved external symbol &quot;public: char const * __thiscall WebCore::SharedBuffer::data(void)const &quot; (?data@SharedBuffer@WebCore@@QBEPBDXZ)
webcore.lib(RenderObject.obj) : error LNK2001: unresolved external symbol &quot;public: void __thiscall WebCore::GraphicsContext::clipOut(class WebCore::IntRect const &amp;)&quot; (?clipOut@GraphicsContext@WebCore@@QAEXABVIntRect@2@@Z)
webcore.lib(RenderObject.obj) : error LNK2001: unresolved external symbol &quot;public: void __thiscall WebCore::GraphicsContext::fillRoundedRect(class WebCore::IntRect const &amp;,class WebCore::IntSize const &amp;,class WebCore::IntSize const &amp;,class WebCore::IntSize const &amp;,class WebCore::IntSize const &amp;,class WebCore::Color const &amp;)&quot; (?fillRoundedRect@GraphicsContext@WebCore@@QAEXABVIntRect@2@ABVIntSize@2@111ABVColor@2@@Z)
webcore.lib(DocumentLoader.obj) : error LNK2001: unresolved external symbol &quot;public: void __thiscall WebCore::FrameLoader::didChangeTitle(class WebCore::DocumentLoader *)&quot; (?didChangeTitle@FrameLoader@WebCore@@QAEXPAVDocumentLoader@2@@Z)
webcore.lib(ResourceLoader.obj) : error LNK2001: unresolved external symbol &quot;public: void __thiscall WebCore::ResourceHandle::setDefersLoading(bool)&quot; (?setDefersLoading@ResourceHandle@WebCore@@QAEX_N@Z)
webcore.lib(ResourceLoader.obj) : error LNK2001: unresolved external symbol &quot;public: static bool __cdecl WebCore::ResourceHandle::supportsBufferedData(void)&quot; (?supportsBufferedData@ResourceHandle@WebCore@@SA_NXZ)
webcore.lib(ResourceLoader.obj) : error LNK2001: unresolved external symbol &quot;public: class WTF::PassRefPtr&lt;class WebCore::SharedBuffer&gt; __thiscall WebCore::ResourceHandle::bufferedData(void)&quot; (?bufferedData@ResourceHandle@WebCore@@QAE?AV?$PassRefPtr@VSharedBuffer@WebCore@@@WTF@@XZ)
webcore.lib(ResourceLoader.obj) : error LNK2001: unresolved external symbol &quot;public: void __thiscall WebCore::SharedBuffer::clear(void)&quot; (?clear@SharedBuffer@WebCore@@QAEXXZ)
webcore.lib(ResourceLoader.obj) : error LNK2001: unresolved external symbol &quot;public: void __thiscall WebCore::SharedBuffer::append(char const *,int)&quot; (?append@SharedBuffer@WebCore@@QAEXPBDH@Z)
webcore.lib(ResourceLoader.obj) : error LNK2001: unresolved external symbol &quot;public: __thiscall WebCore::SharedBuffer::SharedBuffer(char const *,int)&quot; (??0SharedBuffer@WebCore@@QAE@PBDH@Z)
webcore.lib(GraphicsContext.obj) : error LNK2001: unresolved external symbol &quot;public: void __thiscall WebCore::GraphicsContext::clipOutEllipseInRect(class WebCore::IntRect const &amp;)&quot; (?clipOutEllipseInRect@GraphicsContext@WebCore@@QAEXABVIntRect@2@@Z)
webcore.lib(ContextMenuController.obj) : error LNK2001: unresolved external symbol &quot;public: void __thiscall WebCore::ContextMenu::setPlatformDescription(struct HMENU__ *)&quot; (?setPlatformDescription@ContextMenu@WebCore@@QAEXPAUHMENU__@@@Z)
webcore.lib(ResourceHandle.obj) : error LNK2001: unresolved external symbol &quot;public: void __thiscall WebCore::AuthenticationChallenge::nullify(void)&quot; (?nullify@AuthenticationChallenge@WebCore@@QAEXXZ)
webcore.lib(ResourceHandle.obj) : error LNK2001: unresolved external symbol &quot;public: __thiscall WebCore::AuthenticationChallenge::AuthenticationChallenge(void)&quot; (??0AuthenticationChallenge@WebCore@@QAE@XZ)
G:\WebKitBuild\Release\WebKitWin\WebKit.dll : fatal error LNK1120: 17 unresolved externals</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32671</commentid>
    <comment_count>4</comment_count>
      <attachid>12429</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-01-26 01:57:11 -0800</bug_when>
    <thetext>Comment on attachment 12429
Various fixes to make sure the Windows port compiles

Looks good, although could be out of date by now. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31542</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-01-27 20:53:58 -0800</bug_when>
    <thetext>Committed revision 19195.  Removed tab from WebKit/COM/ChromeClientWin.h and added ChangeLogs.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12422</attachid>
            <date>2007-01-13 22:18:58 -0800</date>
            <delta_ts>2007-01-14 09:04:46 -0800</delta_ts>
            <desc>Various fixes to make sure the Windows port compiles.</desc>
            <filename>12260.patch</filename>
            <type>text/plain</type>
            <size>31610</size>
            <attacher name="Laszlo Gombos">gombi.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvbG9hZGVyL3dpbi9GcmFtZUxvYWRlcldpbi5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJDb3JlL2xvYWRlci93aW4vRnJhbWVMb2FkZXJXaW4uY3BwCShyZXZpc2lvbiAxODgz
NikNCisrKyBXZWJDb3JlL2xvYWRlci93aW4vRnJhbWVMb2FkZXJXaW4uY3BwCSh3b3JraW5nIGNv
cHkpDQpAQCAtNDEsNyArNDEsNiBAQA0KICAgICBpZiAoZnJhbWVXaW4tPmNsaWVudCgpKQogICAg
ICAgICBmcmFtZVdpbi0+Y2xpZW50KCktPm9wZW5VUkwocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3Qo
KS51cmwoKS51cmwoKSwgcmVxdWVzdC5sb2NrSGlzdG9yeSgpKTsKIH0KLQogdm9pZCBGcmFtZUxv
YWRlcjo6c3VibWl0Rm9ybShjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBFdmVudCop
CiB7CiAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QgPSByZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpOwpAQCAtNTksMTAgKzU4LDQgQEANCiAKICAgICBjbGVhclJlY29y
ZGVkRm9ybVZhbHVlcygpOwogfQotCi12b2lkIEZyYW1lTG9hZGVyOjpzZXRUaXRsZShjb25zdCBT
dHJpbmcgJnRpdGxlKQotewotICAgIGRvY3VtZW50TG9hZGVyKCktPnNldFRpdGxlKHRpdGxlKTsK
IH0KLQotfQpJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiAxODgzNikNCisrKyBXZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkNCkBAIC00Nyw4ICs0Nyw4IEBA
DQogICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCB1bmZvY3VzKCkgPSAwOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoRm9j
dXNEaXJlY3Rpb24pID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhGb2N1c0Rp
cmVjdGlvbikgPSAwOworICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6
OkZvY3VzRGlyZWN0aW9uKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoV2Vi
Q29yZTo6Rm9jdXNEaXJlY3Rpb24pID0gMDsKIAogICAgICAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0
ZVdpbmRvdyhjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JikgPSAwOwogICAgICAgICB2aXJ0dWFsIFBh
Z2UqIGNyZWF0ZU1vZGFsRGlhbG9nKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmKSA9IDA7CkluZGV4
OiBXZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDbGllbnQuaA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNv
cmUvcGFnZS9Db250ZXh0TWVudUNsaWVudC5oCShyZXZpc2lvbiAxODgzNikNCisrKyBXZWJDb3Jl
L3BhZ2UvQ29udGV4dE1lbnVDbGllbnQuaAkod29ya2luZyBjb3B5KQ0KQEAgLTQxLDcgKzQxLDcg
QEANCiAgICAgICAgIHZpcnR1YWwgfkNvbnRleHRNZW51Q2xpZW50KCkgeyAgfQogICAgICAgICB2
aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQoKSA9IDA7CiAgICAgICAgIAotICAgICAg
ICB2aXJ0dWFsIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIGdldEN1c3RvbU1lbnVGcm9tRGVmYXVs
dEl0ZW1zKENvbnRleHRNZW51KikgPSAwOworICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsYXRm
b3JtTWVudURlc2NyaXB0aW9uIGdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKENvbnRleHRN
ZW51KikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQo
Q29udGV4dE1lbnVJdGVtKiwgY29uc3QgQ29udGV4dE1lbnUqKSA9IDA7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIGRvd25sb2FkVVJMKGNvbnN0IEtVUkwmIHVybCkgPSAwOwpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAko
cmV2aXNpb24gMTg4MzYpDQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJj
ZUhhbmRsZVdpbi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0yNSw2ICsyNSw3IEBADQogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJS
ZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZVdpbi5oIgogCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL3dpbi9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS93aW4vVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAkocmV2aXNpb24gMTg4MzYpDQorKysg
V2ViQ29yZS9wbGF0Zm9ybS93aW4vVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAkod29ya2luZyBjb3B5
KQ0KQEAgLTkzLDYgKzkzLDQyIEBADQogc3RhdGljIGludCBmcmFtZU51bWJlciA9IDA7CiBzdGF0
aWMgQ3Vyc29yIGxvY2FsQ3Vyc29yOwogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbkxp
bmtJbk5ld1dpbmRvdygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0
cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgp
IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVy
biBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rp
c2soKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkgeyBub3RJbXBsZW1lbnRlZCgpOyBy
ZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5l
d1dpbmRvdygpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnQ29weSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmlu
ZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkgeyBub3RJbXBsZW1lbnRl
ZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0Zvcndh
cmQoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1N0b3AoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsg
fQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpIHsgbm90SW1wbGVtZW50ZWQoKTsg
cmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkgeyBub3RJ
bXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdQYXN0ZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJl
dHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5n
KCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3Ry
aW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKSB7IG5vdEltcGxl
bWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0xv
b2tVcEluRGljdGlvbmFyeSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9
CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKSB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1t
YXIoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0
cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwgKGJv
b2wpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNr
U3BlbGxpbmcoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hl
Y2tHcmFtbWFyV2l0aFNwZWxsaW5nKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5n
KCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpIHsgbm90SW1wbGVtZW50
ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQm9sZCgp
IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnSXRhbGljKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0K
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKSB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKSB7
IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4g
U3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkg
eyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdMZWZ0VG9SaWdodCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygp
OyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKSB7IG5vdEltcGxlbWVu
dGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorCiB2b2lkIENoZWNrQ2FjaGVPYmplY3RTdGF0dXMo
RG9jTG9hZGVyKiwgQ2FjaGVkUmVzb3VyY2UqKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIGJvb2wg
Q2hlY2tJZlJlbG9hZGluZyhEb2NMb2FkZXIqKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBm
YWxzZTsgfQogU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuICJlbiI7IH0KQEAgLTEyNyw4ICsxNjMsNiBAQA0KIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXdU
aWxlZChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3Qm
LCBUaWxlUnVsZSwgVGlsZVJ1bGUsIENvbXBvc2l0ZU9wZXJhdG9yKSB7IG5vdEltcGxlbWVudGVk
KCk7IH0KIGJvb2wgQml0bWFwSW1hZ2U6OmdldEhCSVRNQVAoSEJJVE1BUCkgeyBub3RJbXBsZW1l
bnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZTo6c2V0QWxsRGF0
YShQbGF0Zm9ybURhdGEpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotCiBDb250ZXh0TWVudTo6Q29u
dGV4dE1lbnUoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KSA6IG1faGl0VGVzdFJlc3VsdChy
ZXN1bHQpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogQ29udGV4dE1lbnU6On5Db250ZXh0TWVudSgp
IHsgbm90SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBDb250ZXh0TWVudTo6c2hvdygpIHsgbm90SW1w
bGVtZW50ZWQoKTsgfQpAQCAtMTUwLDI5ICsxODQsMTAgQEANCiB2b2lkIENvbnRleHRNZW51SXRl
bTo6c2V0Q2hlY2tlZChib29sKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgQ29udGV4dE1l
bnVJdGVtOjpzZXRFbmFibGVkKGJvb2wpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCi12b2lkIERv
Y3VtZW50TG9hZGVyOjpzZXRGcmFtZShGcmFtZSopIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotRnJh
bWVMb2FkZXIqIERvY3VtZW50TG9hZGVyOjpmcmFtZUxvYWRlcigpIGNvbnN0IHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpOyB9CiBzdGF0aWMgUmVzb3VyY2VSZXF1
ZXN0IGVtcHR5UmVzb3VyY2VSZXF1ZXN0Rm9yRG9jdW1lbnRMb2FkZXI7Ci1jb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIERvY3VtZW50TG9hZGVyOjpvcmlnaW5hbFJlcXVlc3QoKSBjb25zdCB7IG5vdElt
cGxlbWVudGVkKCk7IHJldHVybiBlbXB0eVJlc291cmNlUmVxdWVzdEZvckRvY3VtZW50TG9hZGVy
OyB9Ci1jb25zdCBSZXNvdXJjZVJlcXVlc3QmIERvY3VtZW50TG9hZGVyOjpyZXF1ZXN0KCkgY29u
c3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZW1wdHlSZXNvdXJjZVJlcXVlc3RGb3JEb2N1
bWVudExvYWRlcjsgfQotUmVzb3VyY2VSZXF1ZXN0JiBEb2N1bWVudExvYWRlcjo6cmVxdWVzdCgp
IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGVtcHR5UmVzb3VyY2VSZXF1ZXN0Rm9yRG9jdW1l
bnRMb2FkZXI7IH0KIHN0YXRpYyBLVVJMIGVtcHR5S1VSTEZvckRvY3VtZW50TG9hZGVyOwotY29u
c3QgS1VSTCYgRG9jdW1lbnRMb2FkZXI6OlVSTCgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsg
cmV0dXJuIGVtcHR5S1VSTEZvckRvY3VtZW50TG9hZGVyOyB9CisKIGNvbnN0IEtVUkwgRG9jdW1l
bnRMb2FkZXI6OnVucmVhY2hhYmxlVVJMKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1
cm4gS1VSTCgpOyB9Ci1ib29sIERvY3VtZW50TG9hZGVyOjpnZXRSZXNwb25zZVJlZnJlc2hBbmRN
b2RpZmllZEhlYWRlcnMoU3RyaW5nJiByZWZyZXNoLCBTdHJpbmcmIG1vZGlmaWVkKSBjb25zdCB7
IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotdm9pZCBEb2N1bWVudExvYWRlcjo6
cmVwbGFjZVJlcXVlc3RVUkxGb3JBbmNob3JTY3JvbGwoY29uc3QgS1VSTCYpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgfQotdm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmcoKSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KLXZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldENvbW1pdHRlZChib29sKSB7IG5v
dEltcGxlbWVudGVkKCk7IH0KLWJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZygpIGNvbnN0
IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9Ci12b2lkIERvY3VtZW50TG9hZGVy
OjpzZXRMb2FkaW5nKGJvb2wpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBEb2N1bWVudExv
YWRlcjo6dXBkYXRlTG9hZGluZygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBEb2N1bWVu
dExvYWRlcjo6c2V0dXBGb3JSZXBsYWNlQnlNSU1FVHlwZShjb25zdCBTdHJpbmcmIG5ld01JTUVU
eXBlKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRG9jdW1lbnRMb2FkZXI6OnByZXBhcmVG
b3JMb2FkU3RhcnQoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLWJvb2wgRG9jdW1lbnRMb2FkZXI6
OmlzQ2xpZW50UmVkaXJlY3QoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxz
ZTsgfQotYm9vbCBEb2N1bWVudExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZSgpIGNvbnN0IHsg
bm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9Ci12b2lkIERvY3VtZW50TG9hZGVyOjpz
dG9wUmVjb3JkaW5nUmVzcG9uc2VzKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1TdHJpbmcgRG9j
dW1lbnRMb2FkZXI6OnRpdGxlKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3Ry
aW5nKCk7IH0KLUtVUkwgRG9jdW1lbnRMb2FkZXI6OnVybEZvckhpc3RvcnkoKSBjb25zdCB7IG5v
dEltcGxlbWVudGVkKCk7IHJldHVybiBLVVJMKCk7IH0KIAogdm9pZCBFZGl0b3I6Omlnbm9yZVNw
ZWxsaW5nKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIEVkaXRvcjo6bGVhcm5TcGVsbGlu
ZygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQpAQCAtMjA0LDI5ICsyMTksMTMgQEANCiAKIHZvaWQg
RnJhbWU6OnNldE5lZWRzUmVhcHBseVN0eWxlcygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCi12
b2lkIEZyYW1lTG9hZGVyOjpsb2FkKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBib29sIHVzZXJH
ZXN0dXJlLCBFdmVudCosIEhUTUxGb3JtRWxlbWVudCosIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+JiBmb3JtVmFsdWVzKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJhbWVMb2Fk
ZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYs
IEZyYW1lTG9hZFR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPikgeyBub3RJbXBsZW1lbnRlZCgp
OyB9Ci12b2lkIEZyYW1lTG9hZGVyOjpsb2FkKERvY3VtZW50TG9hZGVyKiwgRnJhbWVMb2FkVHlw
ZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJh
bWVMb2FkZXI6OmRpZEZpcnN0TGF5b3V0KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiBTdHJpbmcg
RnJhbWVMb2FkZXI6Om92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gU3RyaW5nKCk7IH0KIFdpZGdldCogRnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBs
ZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYsIEVsZW1lbnQqLCBjb25zdCBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiYpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KIHZvaWQgRnJhbWVMb2Fk
ZXI6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KLWludCBGcmFtZUxvYWRlcjo6Z2V0SGlzdG9yeUxlbmd0aCgpIHsgbm90SW1w
bGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KLVN0cmluZyBGcmFtZUxvYWRlcjo6cmVmZXJyZXIoKSBj
b25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQotS1VSTCBGcmFtZUxv
YWRlcjo6aGlzdG9yeVVSTChpbnQgZGlzdGFuY2UpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IEtVUkwoKTt9CiBGcmFtZSogRnJhbWVMb2FkZXI6OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIFVS
TCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBjb25zdCBTdHJp
bmcmIHJlZmVycmVyKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiB2b2lkIEZyYW1l
TG9hZGVyOjpwYXJ0Q2xlYXJlZEluQmVnaW4oKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLUtVUkwg
RnJhbWVMb2FkZXI6Om9yaWdpbmFsUmVxdWVzdFVSTCgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQo
KTsgcmV0dXJuIEtVUkwoKTsgfQotS1VSTCBGcmFtZUxvYWRlcjo6ZGF0YVVSTEJhc2VGcm9tUmVx
dWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0IHsgbm90SW1wbGVtZW50
ZWQoKTsgcmV0dXJuIEtVUkwoKTsgfQotYm9vbCBGcmFtZUxvYWRlcjo6Y2FuR29CYWNrT3JGb3J3
YXJkKGludCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KIE9iamVj
dENvbnRlbnRUeXBlIEZyYW1lTG9hZGVyOjpvYmplY3RDb250ZW50VHlwZShjb25zdCBLVVJMJiwg
Y29uc3QgU3RyaW5nJikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gT2JqZWN0Q29udGVudE5v
bmU7IH0KIFdpZGdldCogRnJhbWVMb2FkZXI6OmNyZWF0ZVBsdWdpbihFbGVtZW50KiwgY29uc3Qg
S1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25z
dCBTdHJpbmcmKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Ci12b2lkIEZyYW1lTG9h
ZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQotdm9pZCBGcmFtZUxvYWRlcjo6cmVsb2FkKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lk
IEZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYgciwgVmVjdG9yPGNoYXI+JiBkYXRhKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJhbWVMb2FkZXI6Om9wZW5lZCgpIHsgbm90SW1w
bGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlcjo6YXBwbHlVc2VyQWdlbnQoUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLQogdm9pZCBGcmFtZVZpZXc6
OnVwZGF0ZUJvcmRlcigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCiB2b2lkIEZyYW1lV2luOjpm
b2N1c1dpbmRvdygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQpAQCAtMzM2LDEyICszMzUsNiBAQA0K
IHVuc2lnbmVkIFBsdWdJbkluZm9TdG9yZTo6cGx1Z2luQ291bnQoKSBjb25zdCB7IG5vdEltcGxl
bWVudGVkKCk7IHJldHVybiAwOyB9CiBib29sIFBsdWdJbkluZm9TdG9yZTo6c3VwcG9ydHNNSU1F
VHlwZShjb25zdCBTdHJpbmcmKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQog
Ci1Qb2xpY3lDaGVjazo6UG9saWN5Q2hlY2soKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQg
UG9saWN5Q2hlY2s6OmNsZWFyKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIFBvbGljeUNo
ZWNrOjpjbGVhclJlcXVlc3QoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgUG9saWN5Q2hl
Y2s6OmNhbGwoYm9vbCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIFBvbGljeUNoZWNrOjpj
YWxsKFBvbGljeUFjdGlvbikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci0KIFBvcHVwTWVudTo6UG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCopIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogUG9wdXBNZW51
Ojp+UG9wdXBNZW51KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIFBvcHVwTWVudTo6c2hv
dyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KSB7IG5vdEltcGxlbWVudGVk
KCk7IH0KQEAgLTM1NSw4ICszNDgsNiBAQA0KIGJvb2wgUmVzb3VyY2VIYW5kbGU6OndpbGxMb2Fk
RnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZh
bHNlOyB9CiBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKSB7IG5vdEltcGxlbWVu
dGVkKCk7IHJldHVybiBmYWxzZTsgfQogCi12b2lkIFJlc291cmNlTG9hZGVyOjpjYW5jZWwoKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KLQogdm9pZCBTY3JvbGxWaWV3OjphZGRDaGlsZChXaWRnZXQq
KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgU2Nyb2xsVmlldzo6cmVtb3ZlQ2hpbGQoV2lk
Z2V0KikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbFBvaW50
UmVjdXJzaXZlbHkoaW50IHgsIGludCB5KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KSW5kZXg6IFdl
YktpdC9DT00vQ2hyb21lQ2xpZW50V2luLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9DT00v
Q2hyb21lQ2xpZW50V2luLmNwcAkocmV2aXNpb24gMTg4MzYpDQorKysgV2ViS2l0L0NPTS9DaHJv
bWVDbGllbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNzQsNiArNzQsMTcgQEANCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRXaW46OmNhblRha2VGb2N1
cyAoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKwly
ZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50V2luOjp0YWtlRm9jdXMoV2ViQ29y
ZTo6Rm9jdXNEaXJlY3Rpb24pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogV2ViQ29y
ZTo6UGFnZSogQ2hyb21lQ2xpZW50V2luOjpjcmVhdGVXaW5kb3coY29uc3QgV2ViQ29yZTo6RnJh
bWVMb2FkUmVxdWVzdCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5kZXg6IFdlYktpdC9D
T00vQ2hyb21lQ2xpZW50V2luLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvQ09NL0Nocm9tZUNs
aWVudFdpbi5oCShyZXZpc2lvbiAxODgzNikNCisrKyBXZWJLaXQvQ09NL0Nocm9tZUNsaWVudFdp
bi5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNDQsOCArNDQsMTEgQEANCiAKICAgICB2aXJ0dWFsIHZv
aWQgZm9jdXMoKTsKICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOworCQorCXZpcnR1YWwgYm9v
bCBjYW5UYWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pOworCXZpcnR1YWwgdm9pZCB0
YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pOwogCi0gICAgdmlydHVhbCBXZWJDb3Jl
OjpQYWdlKiBjcmVhdGVXaW5kb3coY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYpOwor
CXZpcnR1YWwgV2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93KGNvbnN0IFdlYkNvcmU6OkZyYW1l
TG9hZFJlcXVlc3QmKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZU1vZGFsRGlh
bG9nKGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2hvdygpOwogCkluZGV4OiBXZWJLaXQvQ09NL0NvbnRleHRNZW51Q2xpZW50V2luLmNwcA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFdlYktpdC9DT00vQ29udGV4dE1lbnVDbGllbnRXaW4uY3BwCShyZXZpc2lv
biAxODgzNikNCisrKyBXZWJLaXQvQ09NL0NvbnRleHRNZW51Q2xpZW50V2luLmNwcAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTQ0LDYgKzQ0LDExIEBADQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
K1dlYkNvcmU6OlBsYXRmb3JtTWVudURlc2NyaXB0aW9uIGdldEN1c3RvbU1lbnVGcm9tRGVmYXVs
dEl0ZW1zKFdlYkNvcmU6OkNvbnRleHRNZW51KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCiB2b2lkIENvbnRleHRNZW51Q2xpZW50V2luOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChX
ZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0qLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnUqKQogewpAQCAt
NjAsNiArNjUsMTEgQEANCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBDb250ZXh0
TWVudUNsaWVudFdpbjo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBXZWJDb3JlOjpGcmFtZSopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBDb250ZXh0TWVudUNsaWVudFdpbjo6
bG9va1VwSW5EaWN0aW9uYXJ5KFdlYkNvcmU6OkZyYW1lKikKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwpJbmRleDogV2ViS2l0L0NPTS9Db250ZXh0TWVudUNsaWVudFdpbi5oDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gV2ViS2l0L0NPTS9Db250ZXh0TWVudUNsaWVudFdpbi5oCShyZXZpc2lvbiAxODgzNikN
CisrKyBXZWJLaXQvQ09NL0NvbnRleHRNZW51Q2xpZW50V2luLmgJKHdvcmtpbmcgY29weSkNCkBA
IC0zNiwxMSArMzYsMTMgQEANCiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51RGVzdHJveWVk
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ3VzdG9tQ29udGV4dE1lbnVJdGVtcyhXZWJDb3Jl
OjpDb250ZXh0TWVudSopOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UGxhdGZvcm1NZW51RGVzY3Jp
cHRpb24gZ2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoV2ViQ29yZTo6Q29udGV4dE1lbnUq
KTsKICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoV2ViQ29yZTo6Q29u
dGV4dE1lbnVJdGVtKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnUqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb3dubG9h
ZFVSTChjb25zdCBXZWJDb3JlOjpLVVJMJik7CiAgICAgdmlydHVhbCB2b2lkIGNvcHlJbWFnZVRv
Q2xpcGJvYXJkKGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmKTsKKwl2aXJ0dWFsIHZvaWQg
c2VhcmNoV2l0aEdvb2dsZShjb25zdCBXZWJDb3JlOjpGcmFtZSopOwogICAgIHZpcnR1YWwgdm9p
ZCBsb29rVXBJbkRpY3Rpb25hcnkoV2ViQ29yZTo6RnJhbWUqKTsKICAgICB2aXJ0dWFsIHZvaWQg
c3BlYWsoY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BTcGVh
a2luZygpOwpJbmRleDogV2ViS2l0L0NPTS9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHANCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBXZWJLaXQvQ09NL1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24g
MTg4MzYpDQorKysgV2ViS2l0L0NPTS9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcg
Y29weSkNCkBAIC0xMzUsNiArMTM1LDUzIEBADQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
Kwordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6YXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJl
cXVlc3QodW5zaWduZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcsIGNvbnN0IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgICAgICAgIAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3Bv
bnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoRG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoRG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZUVycm9yJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCitib29sIGRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNh
Y2hlKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKwogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRIYW5kbGVP
bmxvYWRFdmVudHMoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0xNTEsNyArMTk4LDcg
QEANCiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdCgKLSAgICBjb25zdCBXZWJDb3JlOjpLVVJMJiwgZG91YmxlLCBkb3VibGUp
CisJY29uc3QgV2ViQ29yZTo6S1VSTCYsIGRvdWJsZSwgZG91YmxlKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CkBAIC0xODYsNiArMjMzLDE2IEBADQogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lv
bmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0
IFJlc291cmNlRXJyb3ImKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZCgpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKQEAgLTE5NiwzNyArMjUzLDY4IEBADQogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKK0ZyYW1lKiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCiB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3coKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TUlNRVR5cGUoRnJhbWVQb2xpY3lGdW5jdGlvbiwgY29uc3QgU3RyaW5nJiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihGcmFt
ZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oRnJhbWVQb2xpY3lGdW5jdGlvbiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsUG9saWN5Q2hlY2soKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2ls
bFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpG
b3JtU3RhdGU+KQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hVbmFibGVUb0lt
cGxlbWVudFBvbGljeShjb25zdCBSZXNvdXJjZUVycm9yJikKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRNYWlu
UmVzb3VyY2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKQordm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9u
LCAKKwkJCQkJCQkJCQkJCSAgUGFzc1JlZlB0cjxGb3JtU3RhdGU+KQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJldmVydFRvUHJvdmlz
aW9uYWxTdGF0ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopCit2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZExvYWRNYWluUmVzb3VyY2UoRG9jdW1lbnRMb2FkZXIqKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNs
ZWFyVW5hcmNoaXZpbmdTdGF0ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopCit2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpyZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGUoRG9jdW1lbnRMb2FkZXIq
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OnNldE1haW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VF
cnJvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Y2xlYXJVbmFyY2hpdmluZ1N0YXRlKERvY3VtZW50TG9hZGVyKikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm9ncmVz
c1N0YXJ0ZWQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0yMzcsMzEgKzMyNSw1NiBA
QA0KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBsb25nLCBjb25zdCBjaGFyKiwgaW50KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNvbXBsZXRlUHJvZ3Jlc3ModW5zaWduZWQgbG9uZykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzZXRNYWluRnJhbWVEb2N1bWVudFJl
YWR5KGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6d2lsbENoYW5nZVRpdGxlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikKK3Zv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnN0YXJ0RG93bmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaWRDaGFuZ2VUaXRsZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopCit2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50Ojp3aWxsQ2hhbmdlVGl0bGUoRG9jdW1lbnRMb2FkZXIqKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZp
bmlzaGVkTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciopCit2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaWRDaGFuZ2VUaXRsZShEb2N1bWVudExvYWRlciopCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZmluYWxTZXR1cEZv
clJlcGxhY2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKQordm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6Y29tbWl0dGVkTG9hZChEb2N1bWVudExvYWRlciosIGNvbnN0IGNoYXIqLCBpbnQpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZmluaXNoZWRMb2FkaW5nKERvY3VtZW50TG9hZGVyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5hbFNldHVwRm9yUmVwbGFjZShE
b2N1bWVudExvYWRlciopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6dXBkYXRlR2xvYmFsSGlzdG9yeUZvclN0YW5kYXJkTG9hZChjb25z
dCBXZWJDb3JlOjpLVVJMJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMjc4LDExICsz
OTEsNDggQEANCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitSZXNvdXJjZUVycm9yIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1Jlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1Jlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmludGVycnVwdEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVzb3VyY2VFcnJvciBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgc2hvdWxkRmFsbEJhY2so
Y29uc3QgUmVzb3VyY2VFcnJvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNldERlZmVyc0xvYWRp
bmcoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50Ojp3aWxsVXNlQXJjaGl2ZShSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IEtVUkwmKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojppc0FyY2hp
dmVMb2FkUGVuZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGNvbnN0CiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKQEAgLTM1NiwxMiArNTA2LDE3IEBADQogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNldFRpdGxlKGNvbnN0IFdlYkNv
cmU6OlN0cmluZyYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBX
ZWJDb3JlOjpLVVJMJikKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI+IGNyZWF0
ZURvY3VtZW50TG9hZGVyKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2V0VGl0
bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiwgCisJCQkJCQkJCQljb25zdCBXZWJDb3JlOjpLVVJM
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBXZWJDb3JlOjpTdHJpbmcgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OnVzZXJBZ2VudCgpCiB7CiAgICAgcmV0dXJuICJNb3ppbGxhLzUuMCAo
UEM7IFU7IEludGVsOyBXaW5kb3dzOyBlbikgQXBwbGVXZWJLaXQvNDIwKyAoS0hUTUwsIGxpa2Ug
R2Vja28pIjsKQEAgLTM3NywzICs1MzIsOCBAQA0KICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAg
IHJldHVybiBmYWxzZTsKIH0KKwordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZG93bmxvYWQo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQpJbmRleDogV2ViS2l0L0NPTS9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0NPTS9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiAxODgzNikNCisrKyBXZWJLaXQvQ09NL1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkNCkBAIC01OSw3MSArNTksMTA4IEBADQogCiAg
ICAgdmlydHVhbCB2b2lkIGxvYWRlZEZyb21QYWdlQ2FjaGUoKTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2ZW50cygpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpOwotICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KCk7Ci0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpL
VVJMJiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRvdWJsZSwgZG91YmxlKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VMb2Nh
dGlvbldpdGhpblBhZ2UoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsQ2xvc2UoKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpOwotICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCk7Ci0gICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpOwotICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEaWRGaW5pc2hMb2FkKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmlyc3RM
YXlvdXQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVl
c3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoU2hvdygpOworCXZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RS
ZXNwb25zZSk7CisJdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOworCXZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOyAgICAgICAgCisJdmlydHVhbCB2b2lkIGRpc3BhdGNo
RGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisJdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGhSZWNlaXZlZCk7CisJ
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExv
YWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CisJdmlydHVhbCB2b2lkIGRpc3BhdGNo
RGlkRmFpbExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKwl2aXJ0dWFsIGJvb2wg
ZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2Vs
UG9saWN5Q2hlY2soKTsKKwl2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRIYW5kbGVPbmxvYWRFdmVu
dHMoKTsKKwl2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWQoKTsKKwl2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRS
ZWRpcmVjdCgpOworCXZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgV2ViQ29yZTo6S1VSTCYsIGRvdWJsZSBpbnRlcnZhbCwgZG91YmxlIGZpcmVEYXRl
KTsKKwl2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UoKTsK
Kwl2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsQ2xvc2UoKTsKKwl2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEaWRSZWNlaXZlSWNvbigpOworCXZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkKCk7CisJdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0
IFdlYkNvcmU6OlN0cmluZyYgdGl0bGUpOworCXZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENvbW1p
dExvYWQoKTsKKwl2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKwl2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRG
YWlsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisJdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGlkRmluaXNoTG9hZCgpOworCXZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpcnN0TGF5
b3V0KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPik7CisJdmlydHVhbCBXZWJDb3Jl
OjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKCk7CisJdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hv
dygpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkTG9hZE1haW5SZXNvdXJjZShXZWJD
b3JlOjpEb2N1bWVudExvYWRlciopOwotICAgIHZpcnR1YWwgdm9pZCByZXZlcnRUb1Byb3Zpc2lv
bmFsU3RhdGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xl
YXJVbmFyY2hpdmluZ1N0YXRlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKik7CisJdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUoV2ViQ29yZTo6RnJhbWVQb2xpY3lG
dW5jdGlvbiwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0Jik7CisJdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IFdlYkNv
cmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBXZWJDb3JlOjpTdHJpbmcmIGZyYW1lTmFtZSk7CisJdmlydHVhbCB2b2lkIGRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0
aW9uLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0Jik7CisJdmlydHVhbCB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NTdGFydGVkKCk7Ci0gICAgdmlydHVhbCB2b2lkIHByb2dy
ZXNzQ29tcGxldGVkKCk7CisJdmlydHVhbCB2b2lkIGRpc3BhdGNoVW5hYmxlVG9JbXBsZW1lbnRQ
b2xpY3koY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwogCi0gICAgdmlydHVhbCB2b2lk
IHNldE1haW5GcmFtZURvY3VtZW50UmVhZHkoYm9vbCk7CisJdmlydHVhbCB2b2lkIGRpc3BhdGNo
V2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpGb3JtU3RhdGU+KTsKIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlVGl0bGUo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVGl0
bGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKTsKKwl2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRM
b2FkTWFpblJlc291cmNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKik7CisJdmlydHVhbCB2b2lk
IHJldmVydFRvUHJvdmlzaW9uYWxTdGF0ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOworCXZp
cnR1YWwgdm9pZCBzZXRNYWluRG9jdW1lbnRFcnJvcihXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKwl2aXJ0dWFsIHZvaWQgY2xlYXJVbmFy
Y2hpdmluZ1N0YXRlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKik7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgZmluaXNoZWRMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKik7Ci0gICAgdmlydHVh
bCB2b2lkIGZpbmFsU2V0dXBGb3JSZXBsYWNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKik7CisJ
dmlydHVhbCB2b2lkIHByb2dyZXNzU3RhcnRlZCgpOworCXZpcnR1YWwgdm9pZCBwcm9ncmVzc0Nv
bXBsZXRlZCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdsb2JhbEhpc3RvcnlGb3JTdGFu
ZGFyZExvYWQoY29uc3QgV2ViQ29yZTo6S1VSTCYpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVH
bG9iYWxIaXN0b3J5Rm9yUmVsb2FkKGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkR29Ub0hpc3RvcnlJdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKikgY29uc3Q7
CisJdmlydHVhbCB2b2lkIGluY3JlbWVudFByb2dyZXNzKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworCXZpcnR1YWwgdm9pZCBpbmNy
ZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IGNoYXIqLCBpbnQp
OworCXZpcnR1YWwgdm9pZCBjb21wbGV0ZVByb2dyZXNzKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
cik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKKwl2aXJ0dWFs
IHZvaWQgc2V0TWFpbkZyYW1lRG9jdW1lbnRSZWFkeShib29sKTsKIAotICAgIHZpcnR1YWwgYm9v
bCBpc0FyY2hpdmVMb2FkUGVuZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGNvbnN0Owot
ICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQZW5kaW5nQXJjaGl2ZUxvYWQoV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBcmNoaXZlZFJlc291cmNlcygpOwor
CXZpcnR1YWwgdm9pZCBzdGFydERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYpOwogCi0gICAgdmlydHVhbCBib29sIGNhbkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGNhblNob3dNSU1FVHlw
ZShjb25zdCBXZWJDb3JlOjpTdHJpbmcmKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgcmVwcmVz
ZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJikgY29uc3Q7
Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hl
bWUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJikgY29uc3Q7CisJdmlydHVhbCB2b2lkIHdpbGxDaGFu
Z2VUaXRsZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOworCXZpcnR1YWwgdm9pZCBkaWRDaGFu
Z2VUaXRsZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOwogCi0gICAgdmlydHVhbCB2b2lkIGZy
YW1lTG9hZENvbXBsZXRlZCgpOwotICAgIHZpcnR1YWwgdm9pZCBzYXZlU2Nyb2xsUG9zaXRpb25B
bmRWaWV3U3RhdGVUb0l0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKTsKLSAgICB2aXJ0dWFsIHZv
aWQgcmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCk7Ci0gICAgdmlydHVhbCB2b2lk
IHByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9h
ZCgpOwotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yRGF0YVNvdXJjZVJlcGxhY2VtZW50KCk7
CisJdmlydHVhbCB2b2lkIGNvbW1pdHRlZExvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBj
b25zdCBjaGFyKiwgaW50KTsKKwl2aXJ0dWFsIHZvaWQgZmluaXNoZWRMb2FkaW5nKFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyKik7CisJdmlydHVhbCB2b2lkIGZpbmFsU2V0dXBGb3JSZXBsYWNlKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29u
c3QgV2ViQ29yZTo6U3RyaW5nJiB0aXRsZSwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOworCXZpcnR1
YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5Rm9yU3RhbmRhcmRMb2FkKGNvbnN0IFdlYkNvcmU6
OktVUkwmKTsKKwl2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9yeUZvclJlbG9hZChjb25z
dCBXZWJDb3JlOjpLVVJMJik7CisJdmlydHVhbCBib29sIHNob3VsZEdvVG9IaXN0b3J5SXRlbShX
ZWJDb3JlOjpIaXN0b3J5SXRlbSopIGNvbnN0OwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpTdHJp
bmcgdXNlckFnZW50KCk7CisJdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbmNlbGxl
ZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworCXZpcnR1YWwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0Jik7CisJdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVycnVwdEZv
clBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCi0g
ICAgdmlydHVhbCB2b2lkIHNhdmVEb2N1bWVudFZpZXdUb1BhZ2VDYWNoZShXZWJDb3JlOjpQYWdl
Q2FjaGUqKTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CisJdmlydHVh
bCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKwl2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KTsKIAorCXZpcnR1YWwgYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJik7CisKKwl2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKKworCXZp
cnR1YWwgYm9vbCB3aWxsVXNlQXJjaGl2ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciosIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OktVUkwmIG9yaWdpbmFs
VVJMKSBjb25zdDsKKwl2aXJ0dWFsIGJvb2wgaXNBcmNoaXZlTG9hZFBlbmRpbmcoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXIqKSBjb25zdDsKKwl2aXJ0dWFsIHZvaWQgY2FuY2VsUGVuZGluZ0FyY2hp
dmVMb2FkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKik7CisJdmlydHVhbCB2b2lkIGNsZWFyQXJj
aGl2ZWRSZXNvdXJjZXMoKTsKKworCXZpcnR1YWwgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0OworCXZpcnR1YWwgYm9vbCBjYW5TaG93
TUlNRVR5cGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBNSU1FVHlwZSkgY29uc3Q7CisJdmlydHVh
bCBib29sIHJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFdlYkNvcmU6OlN0
cmluZyYgVVJMU2NoZW1lKSBjb25zdDsKKwl2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBnZW5lcmF0
ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25zdCBXZWJDb3JlOjpTdHJpbmcmIFVSTFNjaGVtZSkg
Y29uc3Q7CisKKwl2aXJ0dWFsIHZvaWQgZnJhbWVMb2FkQ29tcGxldGVkKCk7CisJdmlydHVhbCB2
b2lkIHNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShXZWJDb3JlOjpIaXN0b3J5
SXRlbSopOworCXZpcnR1YWwgdm9pZCByZXN0b3JlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUo
KTsKKwl2aXJ0dWFsIHZvaWQgcHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpOworCXZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkKCk7CisJdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEYXRhU291cmNlUmVw
bGFjZW1lbnQoKTsKKworCXZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpEb2N1bWVudExvYWRl
cj4gY3JlYXRlRG9jdW1lbnRMb2FkZXIoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7
CisJdmlydHVhbCB2b2lkIHNldFRpdGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgdGl0bGUsIGNv
bnN0IFdlYkNvcmU6OktVUkwmKTsKKworCXZpcnR1YWwgV2ViQ29yZTo6U3RyaW5nIHVzZXJBZ2Vu
dCgpOworCisJdmlydHVhbCB2b2lkIHNhdmVEb2N1bWVudFZpZXdUb1BhZ2VDYWNoZShXZWJDb3Jl
OjpQYWdlQ2FjaGUqKTsKKwl2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CisJdmly
dHVhbCB2b2lkIGRvd25sb2FkKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwor
CiBwcm90ZWN0ZWQ6CiAgICAgLy8gVGhlIFdlYkZyYW1lIHRoYXQgb3ducyB0aGlzIG9iamVjdCBh
bmQgbWFuYWdlcyBpdHMgbGlmZXRpbWUuIFRoZXJlZm9yZSwKICAgICAvLyB0aGUgd2ViIGZyYW1l
IG9iamVjdCBpcyBndWFyYW50ZWVkIHRvIGV4aXN0Lgo=
</data>
<flag name="review"
          id="4678"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12429</attachid>
            <date>2007-01-14 09:04:46 -0800</date>
            <delta_ts>2007-01-26 01:57:11 -0800</delta_ts>
            <desc>Various fixes to make sure the Windows port compiles</desc>
            <filename>12260-2.patch</filename>
            <type>text/plain</type>
            <size>26552</size>
            <attacher name="Laszlo Gombos">gombi.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvbG9hZGVyL3dpbi9GcmFtZUxvYWRlcldpbi5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBXZWJDb3JlL2xvYWRlci93aW4vRnJhbWVMb2FkZXJXaW4uY3BwCShyZXZpc2lvbiAxODgz
NikNCisrKyBXZWJDb3JlL2xvYWRlci93aW4vRnJhbWVMb2FkZXJXaW4uY3BwCSh3b3JraW5nIGNv
cHkpDQpAQCAtNjAsOSArNjAsNCBAQA0KICAgICBjbGVhclJlY29yZGVkRm9ybVZhbHVlcygpOwog
fQogCi12b2lkIEZyYW1lTG9hZGVyOjpzZXRUaXRsZShjb25zdCBTdHJpbmcgJnRpdGxlKQotewot
ICAgIGRvY3VtZW50TG9hZGVyKCktPnNldFRpdGxlKHRpdGxlKTsKIH0KLQotfQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHANCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNw
cAkocmV2aXNpb24gMTg4MzYpDQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNv
dXJjZUhhbmRsZVdpbi5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0yNSw2ICsyNSw3IEBADQogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRl
ICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJu
YWwuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZVdpbi5oIgogCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL3dpbi9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAkocmV2aXNpb24gMTg4MzYpDQor
KysgV2ViQ29yZS9wbGF0Zm9ybS93aW4vVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAkod29ya2luZyBj
b3B5KQ0KQEAgLTkzLDYgKzkzLDQyIEBADQogc3RhdGljIGludCBmcmFtZU51bWJlciA9IDA7CiBz
dGF0aWMgQ3Vyc29yIGxvY2FsQ3Vyc29yOwogCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Bl
bkxpbmtJbk5ld1dpbmRvdygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2Fy
ZCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKSB7IG5vdEltcGxlbWVudGVkKCk7IHJl
dHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VU
b0Rpc2soKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJ
bk5ld1dpbmRvdygpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnQ29weSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0
cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkgeyBub3RJbXBsZW1l
bnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0Zv
cndhcmQoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1N0b3AoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmco
KTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpIHsgbm90SW1wbGVtZW50ZWQo
KTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ3V0KCkgeyBu
b3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdQYXN0ZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnTm9HdWVzc2VzRm91bmQoKSB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZVNwZWxs
aW5nKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4g
U3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKSB7IG5vdElt
cGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0xvb2tVcEluRGljdGlvbmFyeSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygp
OyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKSB7IG5vdEltcGxlbWVudGVk
KCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdy
YW1tYXIoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwg
KGJvb2wpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0No
ZWNrU3BlbGxpbmcoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZygpIHsgbm90SW1w
bGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Q2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3Ry
aW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQm9s
ZCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9CitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnSXRhbGljKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7
IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKSB7IG5vdEltcGxlbWVudGVk
KCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUo
KSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1
cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9u
KCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KK1N0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmlu
ZygpOyB9CitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQoKSB7IG5vdEltcGxl
bWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQorCiB2b2lkIENoZWNrQ2FjaGVPYmplY3RTdGF0
dXMoRG9jTG9hZGVyKiwgQ2FjaGVkUmVzb3VyY2UqKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIGJv
b2wgQ2hlY2tJZlJlbG9hZGluZyhEb2NMb2FkZXIqKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVy
biBmYWxzZTsgfQogU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsg
cmV0dXJuICJlbiI7IH0KQEAgLTEyNyw4ICsxNjMsNiBAQA0KIHZvaWQgQml0bWFwSW1hZ2U6OmRy
YXdUaWxlZChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJl
Y3QmLCBUaWxlUnVsZSwgVGlsZVJ1bGUsIENvbXBvc2l0ZU9wZXJhdG9yKSB7IG5vdEltcGxlbWVu
dGVkKCk7IH0KIGJvb2wgQml0bWFwSW1hZ2U6OmdldEhCSVRNQVAoSEJJVE1BUCkgeyBub3RJbXBs
ZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZTo6c2V0QWxs
RGF0YShQbGF0Zm9ybURhdGEpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotCiBDb250ZXh0TWVudTo6
Q29udGV4dE1lbnUoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KSA6IG1faGl0VGVzdFJlc3Vs
dChyZXN1bHQpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogQ29udGV4dE1lbnU6On5Db250ZXh0TWVu
dSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBDb250ZXh0TWVudTo6c2hvdygpIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQpAQCAtMTUwLDI5ICsxODQsOSBAQA0KIHZvaWQgQ29udGV4dE1lbnVJ
dGVtOjpzZXRDaGVja2VkKGJvb2wpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBDb250ZXh0
TWVudUl0ZW06OnNldEVuYWJsZWQoYm9vbCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAKLXZvaWQg
RG9jdW1lbnRMb2FkZXI6OnNldEZyYW1lKEZyYW1lKikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1G
cmFtZUxvYWRlciogRG9jdW1lbnRMb2FkZXI6OmZyYW1lTG9hZGVyKCkgY29uc3QgeyBub3RJbXBs
ZW1lbnRlZCgpOyByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCk7IH0KIHN0YXRpYyBSZXNvdXJjZVJl
cXVlc3QgZW1wdHlSZXNvdXJjZVJlcXVlc3RGb3JEb2N1bWVudExvYWRlcjsKLWNvbnN0IFJlc291
cmNlUmVxdWVzdCYgRG9jdW1lbnRMb2FkZXI6Om9yaWdpbmFsUmVxdWVzdCgpIGNvbnN0IHsgbm90
SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGVtcHR5UmVzb3VyY2VSZXF1ZXN0Rm9yRG9jdW1lbnRMb2Fk
ZXI7IH0KLWNvbnN0IFJlc291cmNlUmVxdWVzdCYgRG9jdW1lbnRMb2FkZXI6OnJlcXVlc3QoKSBj
b25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBlbXB0eVJlc291cmNlUmVxdWVzdEZvckRv
Y3VtZW50TG9hZGVyOyB9Ci1SZXNvdXJjZVJlcXVlc3QmIERvY3VtZW50TG9hZGVyOjpyZXF1ZXN0
KCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZW1wdHlSZXNvdXJjZVJlcXVlc3RGb3JEb2N1
bWVudExvYWRlcjsgfQogc3RhdGljIEtVUkwgZW1wdHlLVVJMRm9yRG9jdW1lbnRMb2FkZXI7Ci1j
b25zdCBLVVJMJiBEb2N1bWVudExvYWRlcjo6VVJMKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gZW1wdHlLVVJMRm9yRG9jdW1lbnRMb2FkZXI7IH0KIGNvbnN0IEtVUkwgRG9jdW1l
bnRMb2FkZXI6OnVucmVhY2hhYmxlVVJMKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1
cm4gS1VSTCgpOyB9Ci1ib29sIERvY3VtZW50TG9hZGVyOjpnZXRSZXNwb25zZVJlZnJlc2hBbmRN
b2RpZmllZEhlYWRlcnMoU3RyaW5nJiByZWZyZXNoLCBTdHJpbmcmIG1vZGlmaWVkKSBjb25zdCB7
IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotdm9pZCBEb2N1bWVudExvYWRlcjo6
cmVwbGFjZVJlcXVlc3RVUkxGb3JBbmNob3JTY3JvbGwoY29uc3QgS1VSTCYpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgfQotdm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmcoKSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KLXZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldENvbW1pdHRlZChib29sKSB7IG5v
dEltcGxlbWVudGVkKCk7IH0KLWJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZygpIGNvbnN0
IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9Ci12b2lkIERvY3VtZW50TG9hZGVy
OjpzZXRMb2FkaW5nKGJvb2wpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBEb2N1bWVudExv
YWRlcjo6dXBkYXRlTG9hZGluZygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBEb2N1bWVu
dExvYWRlcjo6c2V0dXBGb3JSZXBsYWNlQnlNSU1FVHlwZShjb25zdCBTdHJpbmcmIG5ld01JTUVU
eXBlKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRG9jdW1lbnRMb2FkZXI6OnByZXBhcmVG
b3JMb2FkU3RhcnQoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLWJvb2wgRG9jdW1lbnRMb2FkZXI6
OmlzQ2xpZW50UmVkaXJlY3QoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxz
ZTsgfQotYm9vbCBEb2N1bWVudExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZSgpIGNvbnN0IHsg
bm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9Ci12b2lkIERvY3VtZW50TG9hZGVyOjpz
dG9wUmVjb3JkaW5nUmVzcG9uc2VzKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1TdHJpbmcgRG9j
dW1lbnRMb2FkZXI6OnRpdGxlKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3Ry
aW5nKCk7IH0KLUtVUkwgRG9jdW1lbnRMb2FkZXI6OnVybEZvckhpc3RvcnkoKSBjb25zdCB7IG5v
dEltcGxlbWVudGVkKCk7IHJldHVybiBLVVJMKCk7IH0KIAogdm9pZCBFZGl0b3I6Omlnbm9yZVNw
ZWxsaW5nKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIEVkaXRvcjo6bGVhcm5TcGVsbGlu
ZygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQpAQCAtMjA0LDI5ICsyMTgsMTMgQEANCiAKIHZvaWQg
RnJhbWU6OnNldE5lZWRzUmVhcHBseVN0eWxlcygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCi12
b2lkIEZyYW1lTG9hZGVyOjpsb2FkKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBib29sIHVzZXJH
ZXN0dXJlLCBFdmVudCosIEhUTUxGb3JtRWxlbWVudCosIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+JiBmb3JtVmFsdWVzKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJhbWVMb2Fk
ZXI6OmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYs
IEZyYW1lTG9hZFR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPikgeyBub3RJbXBsZW1lbnRlZCgp
OyB9Ci12b2lkIEZyYW1lTG9hZGVyOjpsb2FkKERvY3VtZW50TG9hZGVyKiwgRnJhbWVMb2FkVHlw
ZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJh
bWVMb2FkZXI6OmRpZEZpcnN0TGF5b3V0KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiBTdHJpbmcg
RnJhbWVMb2FkZXI6Om92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gU3RyaW5nKCk7IH0KIFdpZGdldCogRnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBs
ZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYsIEVsZW1lbnQqLCBjb25zdCBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiYpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KIHZvaWQgRnJhbWVMb2Fk
ZXI6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KLWludCBGcmFtZUxvYWRlcjo6Z2V0SGlzdG9yeUxlbmd0aCgpIHsgbm90SW1w
bGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KLVN0cmluZyBGcmFtZUxvYWRlcjo6cmVmZXJyZXIoKSBj
b25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQotS1VSTCBGcmFtZUxv
YWRlcjo6aGlzdG9yeVVSTChpbnQgZGlzdGFuY2UpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IEtVUkwoKTt9CiBGcmFtZSogRnJhbWVMb2FkZXI6OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIFVS
TCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBjb25zdCBTdHJp
bmcmIHJlZmVycmVyKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiB2b2lkIEZyYW1l
TG9hZGVyOjpwYXJ0Q2xlYXJlZEluQmVnaW4oKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLUtVUkwg
RnJhbWVMb2FkZXI6Om9yaWdpbmFsUmVxdWVzdFVSTCgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQo
KTsgcmV0dXJuIEtVUkwoKTsgfQotS1VSTCBGcmFtZUxvYWRlcjo6ZGF0YVVSTEJhc2VGcm9tUmVx
dWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0IHsgbm90SW1wbGVtZW50
ZWQoKTsgcmV0dXJuIEtVUkwoKTsgfQotYm9vbCBGcmFtZUxvYWRlcjo6Y2FuR29CYWNrT3JGb3J3
YXJkKGludCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KIE9iamVj
dENvbnRlbnRUeXBlIEZyYW1lTG9hZGVyOjpvYmplY3RDb250ZW50VHlwZShjb25zdCBLVVJMJiwg
Y29uc3QgU3RyaW5nJikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gT2JqZWN0Q29udGVudE5v
bmU7IH0KIFdpZGdldCogRnJhbWVMb2FkZXI6OmNyZWF0ZVBsdWdpbihFbGVtZW50KiwgY29uc3Qg
S1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25z
dCBTdHJpbmcmKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Ci12b2lkIEZyYW1lTG9h
ZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQotdm9pZCBGcmFtZUxvYWRlcjo6cmVsb2FkKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lk
IEZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYgciwgVmVjdG9yPGNoYXI+JiBkYXRhKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJhbWVMb2FkZXI6Om9wZW5lZCgpIHsgbm90SW1w
bGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlcjo6YXBwbHlVc2VyQWdlbnQoUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLQogdm9pZCBGcmFtZVZpZXc6
OnVwZGF0ZUJvcmRlcigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCiB2b2lkIEZyYW1lV2luOjpm
b2N1c1dpbmRvdygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQpAQCAtMzM2LDEyICszMzQsNiBAQA0K
IHVuc2lnbmVkIFBsdWdJbkluZm9TdG9yZTo6cGx1Z2luQ291bnQoKSBjb25zdCB7IG5vdEltcGxl
bWVudGVkKCk7IHJldHVybiAwOyB9CiBib29sIFBsdWdJbkluZm9TdG9yZTo6c3VwcG9ydHNNSU1F
VHlwZShjb25zdCBTdHJpbmcmKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQog
Ci1Qb2xpY3lDaGVjazo6UG9saWN5Q2hlY2soKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQg
UG9saWN5Q2hlY2s6OmNsZWFyKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIFBvbGljeUNo
ZWNrOjpjbGVhclJlcXVlc3QoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgUG9saWN5Q2hl
Y2s6OmNhbGwoYm9vbCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIFBvbGljeUNoZWNrOjpj
YWxsKFBvbGljeUFjdGlvbikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci0KIFBvcHVwTWVudTo6UG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCopIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogUG9wdXBNZW51
Ojp+UG9wdXBNZW51KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIFBvcHVwTWVudTo6c2hv
dyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50IGluZGV4KSB7IG5vdEltcGxlbWVudGVk
KCk7IH0KQEAgLTM1NSw4ICszNDcsNiBAQA0KIGJvb2wgUmVzb3VyY2VIYW5kbGU6OndpbGxMb2Fk
RnJvbUNhY2hlKFJlc291cmNlUmVxdWVzdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZh
bHNlOyB9CiBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKSB7IG5vdEltcGxlbWVu
dGVkKCk7IHJldHVybiBmYWxzZTsgfQogCi12b2lkIFJlc291cmNlTG9hZGVyOjpjYW5jZWwoKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KLQogdm9pZCBTY3JvbGxWaWV3OjphZGRDaGlsZChXaWRnZXQq
KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgU2Nyb2xsVmlldzo6cmVtb3ZlQ2hpbGQoV2lk
Z2V0KikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbFBvaW50
UmVjdXJzaXZlbHkoaW50IHgsIGludCB5KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KSW5kZXg6IFdl
YktpdC9DT00vQ2hyb21lQ2xpZW50V2luLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9DT00v
Q2hyb21lQ2xpZW50V2luLmNwcAkocmV2aXNpb24gMTg4MzYpDQorKysgV2ViS2l0L0NPTS9DaHJv
bWVDbGllbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNzQsNiArNzQsMTcgQEANCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBDaHJvbWVDbGllbnRXaW46OmNhblRha2VGb2N1
cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRXaW46OnRha2VGb2N1cyhXZWJD
b3JlOjpGb2N1c0RpcmVjdGlvbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBXZWJD
b3JlOjpQYWdlKiBDaHJvbWVDbGllbnRXaW46OmNyZWF0ZVdpbmRvdyhjb25zdCBXZWJDb3JlOjpG
cmFtZUxvYWRSZXF1ZXN0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogV2ViS2l0
L0NPTS9DaHJvbWVDbGllbnRXaW4uaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYktpdC9DT00vQ2hyb21l
Q2xpZW50V2luLmgJKHJldmlzaW9uIDE4ODM2KQ0KKysrIFdlYktpdC9DT00vQ2hyb21lQ2xpZW50
V2luLmgJKHdvcmtpbmcgY29weSkNCkBAIC00NCw2ICs0NCw5IEBADQogCiAgICAgdmlydHVhbCB2
b2lkIGZvY3VzKCk7CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsKKwkKKyAgICB2aXJ0dWFs
IGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKKyAgICB2aXJ0dWFs
IHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKIAogICAgIHZpcnR1YWwg
V2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93KGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVl
c3QmKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZU1vZGFsRGlhbG9nKGNvbnN0
IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmKTsKSW5kZXg6IFdlYktpdC9DT00vQ29udGV4dE1l
bnVDbGllbnRXaW4uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0NPTS9Db250ZXh0TWVudUNs
aWVudFdpbi5jcHAJKHJldmlzaW9uIDE4ODM2KQ0KKysrIFdlYktpdC9DT00vQ29udGV4dE1lbnVD
bGllbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNDQsNiArNDQsMTEgQEANCiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAorV2ViQ29yZTo6UGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29u
dGV4dE1lbnVDbGllbnRXaW46OmdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKFdlYkNvcmU6
OkNvbnRleHRNZW51KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIENvbnRl
eHRNZW51Q2xpZW50V2luOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW0qLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnUqKQogewpAQCAtNjAsNiArNjUsMTEgQEAN
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBDb250ZXh0TWVudUNsaWVudFdpbjo6
c2VhcmNoV2l0aEdvb2dsZShjb25zdCBXZWJDb3JlOjpGcmFtZSopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwogdm9pZCBDb250ZXh0TWVudUNsaWVudFdpbjo6bG9va1VwSW5EaWN0aW9u
YXJ5KFdlYkNvcmU6OkZyYW1lKikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogV2Vi
S2l0L0NPTS9Db250ZXh0TWVudUNsaWVudFdpbi5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L0NP
TS9Db250ZXh0TWVudUNsaWVudFdpbi5oCShyZXZpc2lvbiAxODgzNikNCisrKyBXZWJLaXQvQ09N
L0NvbnRleHRNZW51Q2xpZW50V2luLmgJKHdvcmtpbmcgY29weSkNCkBAIC0zNiwxMSArMzYsMTMg
QEANCiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51RGVzdHJveWVkKCk7CiAKICAgICB2aXJ0
dWFsIHZvaWQgYWRkQ3VzdG9tQ29udGV4dE1lbnVJdGVtcyhXZWJDb3JlOjpDb250ZXh0TWVudSop
OworICAgIHZpcnR1YWwgV2ViQ29yZTo6UGxhdGZvcm1NZW51RGVzY3JpcHRpb24gZ2V0Q3VzdG9t
TWVudUZyb21EZWZhdWx0SXRlbXMoV2ViQ29yZTo6Q29udGV4dE1lbnUqKTsKICAgICB2aXJ0dWFs
IHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtKiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViQ29yZTo6
Q29udGV4dE1lbnUqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb3dubG9hZFVSTChjb25zdCBXZWJD
b3JlOjpLVVJMJik7CiAgICAgdmlydHVhbCB2b2lkIGNvcHlJbWFnZVRvQ2xpcGJvYXJkKGNvbnN0
IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VhcmNoV2l0aEdv
b2dsZShjb25zdCBXZWJDb3JlOjpGcmFtZSopOwogICAgIHZpcnR1YWwgdm9pZCBsb29rVXBJbkRp
Y3Rpb25hcnkoV2ViQ29yZTo6RnJhbWUqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3BlYWsoY29uc3Qg
V2ViQ29yZTo6U3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BTcGVha2luZygpOwpJbmRl
eDogV2ViS2l0L0NPTS9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHANCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBX
ZWJLaXQvQ09NL1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gMTg4MzYpDQorKysg
V2ViS2l0L0NPTS9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0x
MzUsNiArMTM1LDUzIEBADQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKKwordm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6YXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWdu
ZWQgbG9uZywgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyKiwgdW5zaWduZWQgbG9uZywgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBjb25z
dCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVk
IGxvbmcsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgICAgICAgIAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5z
aWduZWQgbG9uZywgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRSZWNlaXZlQ29udGVudExlbmd0aChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVk
IGxvbmcsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqLCB1bnNpZ25lZCBsb25nKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShXZWJDb3JlOjpE
b2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkSGFu
ZGxlT25sb2FkRXZlbnRzKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMTg2LDYgKzIz
MywxNiBAQA0KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWQoKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CkBAIC0xOTYsMTYgKzI1Myw0MiBAQA0KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitG
cmFtZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZSgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hTaG93KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBl
KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
ZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiwgY29uc3QgV2ViQ29y
ZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OlN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IFdlYkNvcmU6Ok5hdmln
YXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbFBv
bGljeUNoZWNrKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJh
bWVQb2xpY3lGdW5jdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+KQogewpAQCAtMjIyLDYg
KzMwNSwxMSBAQA0KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpzZXRNYWluRG9jdW1lbnRFcnJvcihXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNsZWFyVW5hcmNoaXZpbmdTdGF0ZShX
ZWJDb3JlOjpEb2N1bWVudExvYWRlciopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTIz
NywxMSArMzI1LDMxIEBADQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmluY3JlbWVudFByb2dyZXNzKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmluY3JlbWVudFByb2dyZXNzKHVuc2lnbmVkIGxv
bmcsIGNvbnN0IGNoYXIqLCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29tcGxldGVQcm9ncmVzcyh1bnNpZ25lZCBsb25nKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnNldE1haW5GcmFtZURvY3VtZW50UmVhZHkoYm9vbCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzdGFydERvd25sb2FkKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwog
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6d2lsbENoYW5nZVRpdGxlKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMjUyLDYgKzM2MCwxMSBA
QA0KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
Ojpjb21taXR0ZWRMb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgY2hhciosIGlu
dCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpmaW5pc2hlZExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CkBAIC0yNzgsMTEgKzM5MSw0OCBAQA0KICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK1Jlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxlZEVycm9y
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd1VS
TEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworUmVzb3VyY2VFcnJvciBXZWJGcmFtZUxvYWRlckNsaWVudDo6aW50ZXJy
dXB0Rm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitSZXNvdXJjZUVycm9yIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitSZXNvdXJjZUVycm9y
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNldERlZmVyc0xvYWRpbmcoYm9vbCkK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50
Ojp3aWxsVXNlQXJjaGl2ZShSZXNvdXJjZUxvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OktVUkwmKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50
Ojppc0FyY2hpdmVMb2FkUGVuZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGNvbnN0CiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTM1Niw2ICs1MDYsMTEgQEANCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAorUGFzc1JlZlB0cjxXZWJDb3JlOjpEb2N1bWVudExvYWRlcj4gV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZURvY3VtZW50TG9hZGVyKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6c2V0VGl0bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYkNvcmU6OktVUkwmKQogewpA
QCAtMzc3LDMgKzUzMiw4IEBADQogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpkb3dubG9hZChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9Cklu
ZGV4OiBXZWJLaXQvQ09NL1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBX
ZWJLaXQvQ09NL1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDE4ODM2KQ0KKysrIFdl
YktpdC9DT00vV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQ0KQEAgLTU5LDM5
ICs1OSw2NCBAQA0KIAogICAgIHZpcnR1YWwgdm9pZCBsb2FkZWRGcm9tUGFnZUNhY2hlKCk7CiAK
KyAgICB2aXJ0dWFsIHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpOworCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNl
bmRSZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJik7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7ICAgICAgICAK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlQ29u
dGVudExlbmd0aChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgaW50IGxlbmd0aFJlY2VpdmVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRG
aW5pc2hMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaERpZExvYWRSZXNv
dXJjZUZyb21NZW1vcnlDYWNoZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBp
bnQgbGVuZ3RoKTsKKwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2
ZW50cygpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENhbmNl
bENsaWVudFJlZGlyZWN0KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpLVVJMJiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSwgZG91YmxlKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFdlYkNvcmU6
OktVUkwmLCBkb3VibGUgaW50ZXJ2YWwsIGRvdWJsZSBmaXJlRGF0ZSk7CiAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKCk7CiAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoV2lsbENsb3NlKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVj
ZWl2ZUljb24oKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFs
TG9hZCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBX
ZWJDb3JlOjpTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0
bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiB0aXRsZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkQ29tbWl0TG9hZCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92
aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCk7CiAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkRmlyc3RMYXlvdXQoKTsKIAorICAgIHZpcnR1YWwgV2ViQ29yZTo6RnJh
bWUqIGRpc3BhdGNoQ3JlYXRlUGFnZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3co
KTsKIAorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBlKFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgTUlNRVR5
cGUsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZVBvbGlj
eUZ1bmN0aW9uLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBmcmFtZU5hbWUpOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
V2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFj
dGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHZpcnR1YWwgdm9p
ZCBjYW5jZWxQb2xpY3lDaGVjaygpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFN1
Ym1pdEZvcm0oV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4pOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImKTsKIAorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxT
dWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6Rm9ybVN0YXRlPik7CisKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRMb2FkTWFpblJl
c291cmNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKik7CiAgICAgdmlydHVhbCB2b2lkIHJldmVy
dFRvUHJvdmlzaW9uYWxTdGF0ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOworICAgIHZpcnR1
YWwgdm9pZCBzZXRNYWluRG9jdW1lbnRFcnJvcihXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJVbmFy
Y2hpdmluZ1N0YXRlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgcHJvZ3Jlc3NTdGFydGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHByb2dyZXNzQ29tcGxldGVk
KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgaW5jcmVtZW50UHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdmlydHVh
bCB2b2lkIGluY3JlbWVudFByb2dyZXNzKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
Y2hhciosIGludCk7CisgICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlUHJvZ3Jlc3ModW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKTsKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRNYWluRnJhbWVEb2N1bWVu
dFJlYWR5KGJvb2wpOwogCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0RG93bmxvYWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZVRp
dGxlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5n
ZVRpdGxlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY29t
bWl0dGVkTG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IGNoYXIqLCBpbnQpOwog
ICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hlZExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxTZXR1cEZvclJlcGxhY2UoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqKTsKIApAQCAtOTksMTYgKzEyNCwyNiBAQA0KICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlR2xvYmFsSGlzdG9yeUZvclJlbG9hZChjb25zdCBXZWJDb3JlOjpLVVJMJik7CiAgICAgdmly
dHVhbCBib29sIHNob3VsZEdvVG9IaXN0b3J5SXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSopIGNv
bnN0OwogCisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9y
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0Jik7CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVycnVwdEZv
clBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworCisg
ICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9y
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
OlJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKTsKKworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9h
ZGluZyhib29sKTsKIAorICAgIHZpcnR1YWwgYm9vbCB3aWxsVXNlQXJjaGl2ZShXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OktVUkwmIG9yaWdpbmFsVVJMKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBcmNo
aXZlTG9hZFBlbmRpbmcoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqKSBjb25zdDsKICAgICB2aXJ0
dWFsIHZvaWQgY2FuY2VsUGVuZGluZ0FyY2hpdmVMb2FkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
Kik7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQXJjaGl2ZWRSZXNvdXJjZXMoKTsKIAogICAgIHZp
cnR1YWwgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3QgV2ViQ29y
ZTo6U3RyaW5nJikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHJlcHJlc2VudGF0aW9uRXhpc3Rz
Rm9yVVJMU2NoZW1lKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpIGNvbnN0OwotICAgIHZpcnR1YWwg
V2ViQ29yZTo6U3RyaW5nIGdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKGNvbnN0IFdlYkNv
cmU6OlN0cmluZyYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29u
c3QgV2ViQ29yZTo6U3RyaW5nJiBNSU1FVHlwZSkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHJl
cHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgVVJM
U2NoZW1lKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlN0cmluZyBnZW5lcmF0ZWRNSU1F
VHlwZUZvclVSTFNjaGVtZShjb25zdCBXZWJDb3JlOjpTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3Q7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVMb2FkQ29tcGxldGVkKCk7CiAgICAgdmlydHVhbCB2
b2lkIHNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShXZWJDb3JlOjpIaXN0b3J5
SXRlbSopOwpAQCAtMTE3LDEyICsxNTIsMTQgQEANCiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlz
aExvYWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVu
dCgpOwogCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyPiBj
cmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiB0aXRsZSwgY29u
c3QgV2ViQ29yZTo6S1VSTCYpOwogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpTdHJpbmcgdXNlckFn
ZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2F2ZURvY3VtZW50Vmlld1RvUGFnZUNhY2hlKFdl
YkNvcmU6OlBhZ2VDYWNoZSopOwogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWQoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJik7CiAKIHByb3RlY3RlZDoKICAgICAvLyBUaGUgV2ViRnJhbWUgdGhhdCBvd25zIHRo
aXMgb2JqZWN0IGFuZCBtYW5hZ2VzIGl0cyBsaWZldGltZS4gVGhlcmVmb3JlLAo=
</data>
<flag name="review"
          id="4682"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>